@xyo-network/payment-payload-plugins 2.97.0 → 2.97.1

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,2 +1,546 @@
1
- "use strict";var M=Object.defineProperty;var Z=Object.getOwnPropertyDescriptor;var ee=Object.getOwnPropertyNames;var re=Object.prototype.hasOwnProperty;var te=(r,e)=>{for(var t in e)M(r,t,{get:e[t],enumerable:!0})},se=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ee(e))!re.call(r,o)&&o!==t&&M(r,o,{get:()=>e[o],enumerable:!(s=Z(e,o))||s.enumerable});return r};var oe=r=>se(M({},"__esModule",{value:!0}),r);var Qe={};te(Qe,{BillingAddressSchema:()=>E,BillingSchema:()=>O,EscrowSchema:()=>H,EscrowTermsSchema:()=>V,PaymentCardSchema:()=>W,PaymentInstrumentSchema:()=>R,PaymentSchema:()=>l,PaymentStatusSchema:()=>A,PurchaseSchema:()=>$,ReceiptSchema:()=>b,appraisalAuthoritiesExistValidator:()=>Ee,appraisalsExistValidator:()=>he,assetsExistValidator:()=>We,buyerExistsValidator:()=>Ae,buyerSecretExistsValidator:()=>$e,createEscrowIntent:()=>ce,createEscrowIntentWithSecret:()=>le,getAppraisalAuthoritiesAllowedValidator:()=>ge,getAppraisalsForAllAssetsValidator:()=>we,getAppraisalsFromValidAuthoritiesValidator:()=>Se,getAppraisalsValidValidator:()=>Pe,getBuyerSecretSignedValidator:()=>Ve,getBuyerSecretSuppliedValidator:()=>be,getEscrowAgentAllowedValidator:()=>fe,getEscrowSecret:()=>me,getNbfExpValidator:()=>Be,getPaymentAuthoritiesAllowedValidator:()=>Me,getSellerSecretSignedValidator:()=>ve,getSellerSecretSuppliedValidator:()=>He,isBillingAddress:()=>ae,isBillingAddressWithMeta:()=>ne,isBillingAddressWithSources:()=>ie,isEscrowTerms:()=>pe,isEscrowTermsWithMeta:()=>ue,isEscrowTermsWithSources:()=>de,isPayment:()=>je,isPaymentCard:()=>Ne,isPaymentCardWithMeta:()=>Re,isPaymentCardWithSources:()=>Ce,isPaymentStatus:()=>De,isPaymentStatusWithMeta:()=>_e,isPaymentStatusWithSources:()=>Ue,isPaymentWithMeta:()=>ke,isPaymentWithSources:()=>Le,isPurchase:()=>ze,isPurchaseWithMeta:()=>qe,isPurchaseWithSources:()=>Ye,isReceipt:()=>Ge,isReceiptWithMeta:()=>Ke,isReceiptWithSources:()=>Je,moduleIdentifiersContainsAllOf:()=>g,moduleIdentifiersContainsOneOf:()=>v,sellerExistsValidator:()=>Oe,sellerSecretExistsValidator:()=>Ie,validateWithinWindow:()=>N});module.exports=oe(Qe);var y=require("@xyo-network/payload-model");var m="network.xyo.payments";var O=`${m}.billing`;var E=`${O}.address`;var ae=(0,y.isPayloadOfSchemaType)(E),ie=(0,y.isPayloadOfSchemaTypeWithSources)(E),ne=(0,y.isPayloadOfSchemaTypeWithMeta)(E);var I=require("@xyo-network/boundwitness-builder"),ce=async(r,e)=>await new I.BoundWitnessBuilder({accounts:[e]}).payloads([...r]).build(),le=async(r,e,t)=>await new I.BoundWitnessBuilder({accounts:[t]}).payloads([r,e]).build();var j=require("@xylabs/crypto"),L=require("@xyo-network/id-payload-plugin"),me=()=>({salt:j.Crypto.randomUUID(),schema:L.IdSchema});var H="network.xyo.escrow";var f=require("@xyo-network/payload-model");var V=`${H}.terms`,pe=(0,f.isPayloadOfSchemaType)(V),de=(0,f.isPayloadOfSchemaTypeWithSources)(V),ue=(0,f.isPayloadOfSchemaTypeWithMeta)(V);var v=(r,e,t,s=!0)=>{let o=e(r);return o===void 0?!s:Array.isArray(o)?o.some(i=>t.includes(i)):t.includes(o)},g=(r,e,t,s=!0)=>{let o=e(r);return o===void 0?!s:Array.isArray(o)?o.every(i=>t.includes(i)):t.includes(o)};var N=(r,e,t=Date.now())=>!(r.nbf===void 0||r.nbf>t||r.exp===void 0||r.exp<e);var ye="EscrowTerms.escrowAgent",fe=r=>e=>{let t=v(e,s=>s.escrowAgent,[r],!0);return t||console.log(`${ye}: Escrow agent not allowed: ${e.escrowAgent}`),t};var T=require("@xylabs/assert"),k=require("@xyo-network/boundwitness-model"),D=require("@xyo-network/diviner-hash-lease");var c="EscrowTerms.appraisal",he=r=>{let e=r.appraisals;return!e||e.length===0?(console.log(`${c}: No appraisals: ${r.appraisals}`),!1):!0},Se=r=>e=>{let t=(0,T.assertEx)(e.appraisals,()=>`${c}: No appraisals: ${e.appraisals}`),s=(0,T.assertEx)(e.appraisalAuthorities,()=>`${c}: No appraisalAuthorities: ${e.appraisalAuthorities}`),o=Object.fromEntries(t.map(i=>[i,[]]));for(let i of Object.values(r).filter(k.isBoundWitnessWithMeta))for(let n of t)i.payload_hashes.includes(n)&&i.addresses.some(a=>s.includes(a))&&o[n].push(i);for(let[i,n]of Object.entries(o))if(n.length===0)return console.log(`${c}: No valid appraisals for ${i}`),!1;return!0},Pe=(r,e)=>t=>{let s=U(t,r),i=Date.now()+e;for(let[n,a]of Object.entries(s))for(let u of a)if(!xe(u,i))return console.log(`${c}: Invalid estimate for asset ${n}: ${u}`),!1;return!0},we=r=>e=>{let t=U(e,r),s=(0,T.assertEx)(e.assets,()=>`${c}: No assets: ${e.assets}`);return Object.keys(t).length!==s.length?(console.log(`${c}: Missing appraisals for all assets: ${s}`),!1):!0},xe=(r,e)=>!(!N(r,e)||r.currency!=="USD"||r.price<=0),U=(r,e)=>{let t=(0,T.assertEx)(r.assets,()=>`${c}: No assets: ${r.assets}`),s=Object.values(e).filter(D.isHashLeaseEstimateWithSources),o={};for(let i of s){let{sources:n}=i;if(n===void 0||n.length===0){console.log(`${c}: No sources: ${i}`);continue}for(let a of t)n.includes(a)&&(o[a]||(o[a]=[]),o[a].push(i))}return o};var _=require("@xylabs/hex");var C="EscrowTerms.appraisalAuthorities",Ee=r=>{let e=r.appraisalAuthorities;return!e||e.length===0?(console.log(`${C}: No appraisalAuthorities: ${r.appraisalAuthorities}`),!1):e.map(t=>(0,_.asAddress)(t)).length!==e.length?(console.log(`${C}: Invalid address: ${r.appraisalAuthorities}`),!1):!0},ge=r=>e=>{let t=g(e,s=>s.appraisalAuthorities,r,!0);return t||console.log(`${C}: Appraisal authority not allowed: ${e.appraisalAuthorities}`),t};var Te="EscrowTerms.assets",We=r=>{let e=r.assets;return!e||e.length===0?(console.log(`${Te}: No assets: ${r.assets}`),!1):!0};var Y=require("@xylabs/hex"),z="EscrowTerms.buyer",Ae=r=>{let e=r.buyer;return!e||e.length===0?(console.log(`${z}: No buyer: ${r.buyer}`),!1):e.map(t=>(0,Y.asAddress)(t)).length!==e.length?(console.log(`${z}: Invalid address: ${r.buyer}`),!1):!0};var B=require("@xylabs/assert"),q=require("@xyo-network/boundwitness-model"),G=require("@xyo-network/boundwitness-validator"),p="EscrowTerms.buyerSecret",$e=r=>{let e=r.buyerSecret;return!e||e.length===0?(console.log(`${p}: No buyerSecret: ${r.buyerSecret}`),!1):!0},be=r=>e=>{let t=(0,B.assertEx)(e.buyerSecret,()=>`${p}: No buyerSecret: ${e.buyerSecret}`);return r[t]?!0:(console.log(`${p}: Payload not supplied for buyerSecret: ${t}`),!1)},Ve=r=>async e=>{let t=(0,B.assertEx)(e.buyer,()=>`${p}: No buyer: ${e.buyer}`),s=(0,B.assertEx)(e.buyerSecret,()=>`${p}: No buyerSecret: ${e.buyerSecret}`),o=Object.values(r).filter(q.isBoundWitnessWithMeta).filter(a=>a.payload_hashes.includes(s)).filter(a=>t.every(u=>a.addresses.includes(u)));return o.length===0?(console.log(`${p}: No BoundWitnesses supplied for buyerSecret: ${s}`),!1):(await Promise.all(o.map(a=>new G.BoundWitnessValidator(a).validate()))).every(a=>a.length===0)?!0:(console.log(`${p}: Invalid BoundWitnesses supplied for buyerSecret: ${s}`),!1)};var Be=(r,e)=>{let t=r+e;return s=>{let{exp:o,nbf:i}=s;return i===void 0||i<r?(console.log(`EscrowTerms.nbf: invalid nbf ${s.nbf}`),!1):o===void 0||o<t||i>o?(console.log(`EscrowTerms.exp: invalid exp ${s.exp}`),!1):!0}};var Fe="EscrowTerms.paymentAuthorities",Me=r=>e=>{let t=g(e,s=>s.paymentAuthorities,r,!0);return t||console.log(`${Fe}: Payment authority not allowed: ${e.paymentAuthorities}`),t};var K=require("@xylabs/hex"),J="EscrowTerms.seller",Oe=r=>{let e=r.seller;return!e||e.length===0?(console.log(`${J}: No seller: ${r.seller}`),!1):e.map(t=>(0,K.asAddress)(t)).length!==e.length?(console.log(`${J}: Invalid address: ${r.seller}`),!1):!0};var F=require("@xylabs/assert"),Q=require("@xyo-network/boundwitness-model"),X=require("@xyo-network/boundwitness-validator"),d="EscrowTerms.sellerSecret",Ie=r=>{let e=r.sellerSecret;return!e||e.length===0?(console.log(`${d}: No sellerSecret: ${r.sellerSecret}`),!1):!0},He=r=>e=>{let t=(0,F.assertEx)(e.sellerSecret,()=>`${d}: No sellerSecret: ${e.sellerSecret}`);return r[t]?!0:(console.log(`${d}: Payload not supplied for sellerSecret: ${t}`),!1)},ve=r=>async e=>{let t=(0,F.assertEx)(e.seller,()=>`${d}: No seller: ${e.seller}`),s=(0,F.assertEx)(e.sellerSecret,()=>`${d}: No sellerSecret: ${e.sellerSecret}`),o=Object.values(r).filter(Q.isBoundWitnessWithMeta).filter(a=>a.payload_hashes.includes(s)).filter(a=>t.every(u=>a.addresses.includes(u)));return o.length===0?(console.log(`${d}: No BoundWitnesses supplied for sellerSecret: ${s}`),!1):(await Promise.all(o.map(a=>new X.BoundWitnessValidator(a).validate()))).every(a=>a.length===0)?!0:(console.log(`${d}: Invalid BoundWitnesses supplied for sellerSecret: ${s}`),!1)};var h=require("@xyo-network/payload-model");var l=`${m}.payment`;var R=`${l}.instrument`;var W=`${R}.card`;var Ne=(0,h.isPayloadOfSchemaType)(W),Ce=(0,h.isPayloadOfSchemaTypeWithSources)(W),Re=(0,h.isPayloadOfSchemaTypeWithMeta)(W);var S=require("@xyo-network/payload-model");var je=(0,S.isPayloadOfSchemaType)(l),Le=(0,S.isPayloadOfSchemaTypeWithSources)(l),ke=(0,S.isPayloadOfSchemaTypeWithMeta)(l);var P=require("@xyo-network/payload-model");var A=`${l}.status`;var De=(0,P.isPayloadOfSchemaType)(A),Ue=(0,P.isPayloadOfSchemaTypeWithSources)(A),_e=(0,P.isPayloadOfSchemaTypeWithMeta)(A);var w=require("@xyo-network/payload-model");var $=`${m}.purchase`;var ze=(0,w.isPayloadOfSchemaType)($),Ye=(0,w.isPayloadOfSchemaTypeWithSources)($),qe=(0,w.isPayloadOfSchemaTypeWithMeta)($);var x=require("@xyo-network/payload-model");var b=`${m}.receipt`;var Ge=(0,x.isPayloadOfSchemaType)(b),Je=(0,x.isPayloadOfSchemaTypeWithSources)(b),Ke=(0,x.isPayloadOfSchemaTypeWithMeta)(b);0&&(module.exports={BillingAddressSchema,BillingSchema,EscrowSchema,EscrowTermsSchema,PaymentCardSchema,PaymentInstrumentSchema,PaymentSchema,PaymentStatusSchema,PurchaseSchema,ReceiptSchema,appraisalAuthoritiesExistValidator,appraisalsExistValidator,assetsExistValidator,buyerExistsValidator,buyerSecretExistsValidator,createEscrowIntent,createEscrowIntentWithSecret,getAppraisalAuthoritiesAllowedValidator,getAppraisalsForAllAssetsValidator,getAppraisalsFromValidAuthoritiesValidator,getAppraisalsValidValidator,getBuyerSecretSignedValidator,getBuyerSecretSuppliedValidator,getEscrowAgentAllowedValidator,getEscrowSecret,getNbfExpValidator,getPaymentAuthoritiesAllowedValidator,getSellerSecretSignedValidator,getSellerSecretSuppliedValidator,isBillingAddress,isBillingAddressWithMeta,isBillingAddressWithSources,isEscrowTerms,isEscrowTermsWithMeta,isEscrowTermsWithSources,isPayment,isPaymentCard,isPaymentCardWithMeta,isPaymentCardWithSources,isPaymentStatus,isPaymentStatusWithMeta,isPaymentStatusWithSources,isPaymentWithMeta,isPaymentWithSources,isPurchase,isPurchaseWithMeta,isPurchaseWithSources,isReceipt,isReceiptWithMeta,isReceiptWithSources,moduleIdentifiersContainsAllOf,moduleIdentifiersContainsOneOf,sellerExistsValidator,sellerSecretExistsValidator,validateWithinWindow});
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name10 in all)
8
+ __defProp(target, name10, { get: all[name10], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var src_exports = {};
22
+ __export(src_exports, {
23
+ BillingAddressSchema: () => BillingAddressSchema,
24
+ BillingSchema: () => BillingSchema,
25
+ EscrowSchema: () => EscrowSchema,
26
+ EscrowTermsSchema: () => EscrowTermsSchema,
27
+ PaymentCardSchema: () => PaymentCardSchema,
28
+ PaymentInstrumentSchema: () => PaymentInstrumentSchema,
29
+ PaymentSchema: () => PaymentSchema,
30
+ PaymentStatusSchema: () => PaymentStatusSchema,
31
+ PurchaseSchema: () => PurchaseSchema,
32
+ ReceiptSchema: () => ReceiptSchema,
33
+ appraisalAuthoritiesExistValidator: () => appraisalAuthoritiesExistValidator,
34
+ appraisalsExistValidator: () => appraisalsExistValidator,
35
+ assetsExistValidator: () => assetsExistValidator,
36
+ buyerExistsValidator: () => buyerExistsValidator,
37
+ buyerSecretExistsValidator: () => buyerSecretExistsValidator,
38
+ createEscrowIntent: () => createEscrowIntent,
39
+ createEscrowIntentWithSecret: () => createEscrowIntentWithSecret,
40
+ getAppraisalAuthoritiesAllowedValidator: () => getAppraisalAuthoritiesAllowedValidator,
41
+ getAppraisalsForAllAssetsValidator: () => getAppraisalsForAllAssetsValidator,
42
+ getAppraisalsFromValidAuthoritiesValidator: () => getAppraisalsFromValidAuthoritiesValidator,
43
+ getAppraisalsValidValidator: () => getAppraisalsValidValidator,
44
+ getBuyerSecretSignedValidator: () => getBuyerSecretSignedValidator,
45
+ getBuyerSecretSuppliedValidator: () => getBuyerSecretSuppliedValidator,
46
+ getEscrowAgentAllowedValidator: () => getEscrowAgentAllowedValidator,
47
+ getEscrowSecret: () => getEscrowSecret,
48
+ getNbfExpValidator: () => getNbfExpValidator,
49
+ getPaymentAuthoritiesAllowedValidator: () => getPaymentAuthoritiesAllowedValidator,
50
+ getSellerSecretSignedValidator: () => getSellerSecretSignedValidator,
51
+ getSellerSecretSuppliedValidator: () => getSellerSecretSuppliedValidator,
52
+ isBillingAddress: () => isBillingAddress,
53
+ isBillingAddressWithMeta: () => isBillingAddressWithMeta,
54
+ isBillingAddressWithSources: () => isBillingAddressWithSources,
55
+ isEscrowTerms: () => isEscrowTerms,
56
+ isEscrowTermsWithMeta: () => isEscrowTermsWithMeta,
57
+ isEscrowTermsWithSources: () => isEscrowTermsWithSources,
58
+ isPayment: () => isPayment,
59
+ isPaymentCard: () => isPaymentCard,
60
+ isPaymentCardWithMeta: () => isPaymentCardWithMeta,
61
+ isPaymentCardWithSources: () => isPaymentCardWithSources,
62
+ isPaymentStatus: () => isPaymentStatus,
63
+ isPaymentStatusWithMeta: () => isPaymentStatusWithMeta,
64
+ isPaymentStatusWithSources: () => isPaymentStatusWithSources,
65
+ isPaymentWithMeta: () => isPaymentWithMeta,
66
+ isPaymentWithSources: () => isPaymentWithSources,
67
+ isPurchase: () => isPurchase,
68
+ isPurchaseWithMeta: () => isPurchaseWithMeta,
69
+ isPurchaseWithSources: () => isPurchaseWithSources,
70
+ isReceipt: () => isReceipt,
71
+ isReceiptWithMeta: () => isReceiptWithMeta,
72
+ isReceiptWithSources: () => isReceiptWithSources,
73
+ moduleIdentifiersContainsAllOf: () => moduleIdentifiersContainsAllOf,
74
+ moduleIdentifiersContainsOneOf: () => moduleIdentifiersContainsOneOf,
75
+ sellerExistsValidator: () => sellerExistsValidator,
76
+ sellerSecretExistsValidator: () => sellerSecretExistsValidator,
77
+ validateWithinWindow: () => validateWithinWindow
78
+ });
79
+ module.exports = __toCommonJS(src_exports);
80
+
81
+ // src/Billing/Address/Address.ts
82
+ var import_payload_model = require("@xyo-network/payload-model");
83
+
84
+ // src/Schema.ts
85
+ var PaymentsSchema = "network.xyo.payments";
86
+
87
+ // src/Billing/Schema.ts
88
+ var BillingSchema = `${PaymentsSchema}.billing`;
89
+
90
+ // src/Billing/Address/Schema.ts
91
+ var BillingAddressSchema = `${BillingSchema}.address`;
92
+
93
+ // src/Billing/Address/Address.ts
94
+ var isBillingAddress = (0, import_payload_model.isPayloadOfSchemaType)(BillingAddressSchema);
95
+ var isBillingAddressWithSources = (0, import_payload_model.isPayloadOfSchemaTypeWithSources)(BillingAddressSchema);
96
+ var isBillingAddressWithMeta = (0, import_payload_model.isPayloadOfSchemaTypeWithMeta)(BillingAddressSchema);
97
+
98
+ // src/Escrow/createEscrowIntent.ts
99
+ var import_boundwitness_builder = require("@xyo-network/boundwitness-builder");
100
+ var createEscrowIntent = async (terms, account) => {
101
+ const result = await new import_boundwitness_builder.BoundWitnessBuilder({ accounts: [account] }).payloads([...terms]).build();
102
+ return result;
103
+ };
104
+ var createEscrowIntentWithSecret = async (terms, secret, account) => {
105
+ const result = await new import_boundwitness_builder.BoundWitnessBuilder({ accounts: [account] }).payloads([terms, secret]).build();
106
+ return result;
107
+ };
108
+
109
+ // src/Escrow/getEscrowSecret.ts
110
+ var import_crypto = require("@xylabs/crypto");
111
+ var import_id_payload_plugin = require("@xyo-network/id-payload-plugin");
112
+ var getEscrowSecret = () => {
113
+ return { salt: import_crypto.Crypto.randomUUID(), schema: import_id_payload_plugin.IdSchema };
114
+ };
115
+
116
+ // src/Escrow/Schema.ts
117
+ var EscrowSchema = "network.xyo.escrow";
118
+
119
+ // src/Escrow/Terms.ts
120
+ var import_payload_model2 = require("@xyo-network/payload-model");
121
+ var EscrowTermsSchema = `${EscrowSchema}.terms`;
122
+ var isEscrowTerms = (0, import_payload_model2.isPayloadOfSchemaType)(EscrowTermsSchema);
123
+ var isEscrowTermsWithSources = (0, import_payload_model2.isPayloadOfSchemaTypeWithSources)(EscrowTermsSchema);
124
+ var isEscrowTermsWithMeta = (0, import_payload_model2.isPayloadOfSchemaTypeWithMeta)(EscrowTermsSchema);
125
+
126
+ // src/Escrow/validators/common/ModuleInstanceValidators/moduleInstanceValidators.ts
127
+ var moduleIdentifiersContainsOneOf = (escrowTerms, propertyExpression, moduleIdentifiers, required = true) => {
128
+ const termsValue = propertyExpression(escrowTerms);
129
+ if (termsValue === void 0) {
130
+ return required ? false : true;
131
+ } else {
132
+ return Array.isArray(termsValue) ? termsValue.some((address) => moduleIdentifiers.includes(address)) : moduleIdentifiers.includes(termsValue);
133
+ }
134
+ };
135
+ var moduleIdentifiersContainsAllOf = (escrowTerms, selector, moduleIdentifiers, required = true) => {
136
+ const termsValue = selector(escrowTerms);
137
+ if (termsValue === void 0) {
138
+ return required ? false : true;
139
+ } else {
140
+ return Array.isArray(termsValue) ? termsValue.every((address) => moduleIdentifiers.includes(address)) : moduleIdentifiers.includes(termsValue);
141
+ }
142
+ };
143
+
144
+ // src/Escrow/validators/common/TemporalValidators/validateWithinWindow.ts
145
+ var validateWithinWindow = (value, exp, nbf = Date.now()) => {
146
+ if (value.nbf === void 0 || value.nbf > nbf) return false;
147
+ if (value.exp === void 0 || value.exp < exp) return false;
148
+ return true;
149
+ };
150
+
151
+ // src/Escrow/validators/escrow/agent.ts
152
+ var name = "EscrowTerms.escrowAgent";
153
+ var getEscrowAgentAllowedValidator = (allowedEscrowAgent) => {
154
+ return (terms) => {
155
+ const result = moduleIdentifiersContainsOneOf(terms, (t) => t.escrowAgent, [allowedEscrowAgent], true);
156
+ if (!result) {
157
+ console.log(`${name}: Escrow agent not allowed: ${terms.escrowAgent}`);
158
+ }
159
+ return result;
160
+ };
161
+ };
162
+
163
+ // src/Escrow/validators/escrow/appraisal.ts
164
+ var import_assert = require("@xylabs/assert");
165
+ var import_boundwitness_model = require("@xyo-network/boundwitness-model");
166
+ var import_diviner_hash_lease = require("@xyo-network/diviner-hash-lease");
167
+ var name2 = "EscrowTerms.appraisal";
168
+ var appraisalsExistValidator = (terms) => {
169
+ const appraisals = terms.appraisals;
170
+ if (!appraisals || appraisals.length === 0) {
171
+ console.log(`${name2}: No appraisals: ${terms.appraisals}`);
172
+ return false;
173
+ }
174
+ return true;
175
+ };
176
+ var getAppraisalsFromValidAuthoritiesValidator = (dictionary) => {
177
+ return (terms) => {
178
+ const appraisals = (0, import_assert.assertEx)(terms.appraisals, () => `${name2}: No appraisals: ${terms.appraisals}`);
179
+ const appraisalAuthorities = (0, import_assert.assertEx)(terms.appraisalAuthorities, () => `${name2}: No appraisalAuthorities: ${terms.appraisalAuthorities}`);
180
+ const appraisalBWsValid = Object.fromEntries(
181
+ appraisals.map((hash) => [hash, []])
182
+ );
183
+ for (const bw of Object.values(dictionary).filter(import_boundwitness_model.isBoundWitnessWithMeta)) {
184
+ for (const appraisal of appraisals) {
185
+ if (bw.payload_hashes.includes(appraisal) && bw.addresses.some((address) => appraisalAuthorities.includes(address))) {
186
+ appraisalBWsValid[appraisal].push(bw);
187
+ }
188
+ }
189
+ }
190
+ for (const [appraisal, bws] of Object.entries(appraisalBWsValid)) {
191
+ if (bws.length === 0) {
192
+ console.log(`${name2}: No valid appraisals for ${appraisal}`);
193
+ return false;
194
+ }
195
+ }
196
+ return true;
197
+ };
198
+ };
199
+ var getAppraisalsValidValidator = (dictionary, minimumExp) => {
200
+ return (terms) => {
201
+ const estimatesByAsset = getEstimatesByAsset(terms, dictionary);
202
+ const now = Date.now();
203
+ const exp = now + minimumExp;
204
+ for (const [asset, estimates] of Object.entries(estimatesByAsset)) {
205
+ for (const estimate of estimates) {
206
+ if (!validateEstimate(estimate, exp)) {
207
+ console.log(`${name2}: Invalid estimate for asset ${asset}: ${estimate}`);
208
+ return false;
209
+ }
210
+ }
211
+ }
212
+ return true;
213
+ };
214
+ };
215
+ var getAppraisalsForAllAssetsValidator = (dictionary) => {
216
+ return (terms) => {
217
+ const estimatesByAsset = getEstimatesByAsset(terms, dictionary);
218
+ const assets = (0, import_assert.assertEx)(terms.assets, () => `${name2}: No assets: ${terms.assets}`);
219
+ if (Object.keys(estimatesByAsset).length !== assets.length) {
220
+ console.log(`${name2}: Missing appraisals for all assets: ${assets}`);
221
+ return false;
222
+ }
223
+ return true;
224
+ };
225
+ };
226
+ var validateEstimate = (estimate, exp) => {
227
+ if (!validateWithinWindow(estimate, exp)) return false;
228
+ if (estimate.currency !== "USD") return false;
229
+ if (estimate.price <= 0) return false;
230
+ return true;
231
+ };
232
+ var getEstimatesByAsset = (terms, dictionary) => {
233
+ const assets = (0, import_assert.assertEx)(terms.assets, () => `${name2}: No assets: ${terms.assets}`);
234
+ const estimates = Object.values(dictionary).filter(import_diviner_hash_lease.isHashLeaseEstimateWithSources);
235
+ const estimatesByAsset = {};
236
+ for (const estimate of estimates) {
237
+ const { sources } = estimate;
238
+ if (sources === void 0 || sources.length === 0) {
239
+ console.log(`${name2}: No sources: ${estimate}`);
240
+ continue;
241
+ }
242
+ for (const asset of assets) {
243
+ if (sources.includes(asset)) {
244
+ if (!estimatesByAsset[asset]) estimatesByAsset[asset] = [];
245
+ estimatesByAsset[asset].push(estimate);
246
+ }
247
+ }
248
+ }
249
+ return estimatesByAsset;
250
+ };
251
+
252
+ // src/Escrow/validators/escrow/appraisalAuthorities.ts
253
+ var import_hex = require("@xylabs/hex");
254
+ var name3 = "EscrowTerms.appraisalAuthorities";
255
+ var appraisalAuthoritiesExistValidator = (terms) => {
256
+ const appraisalAuthorities = terms.appraisalAuthorities;
257
+ if (!appraisalAuthorities || appraisalAuthorities.length === 0) {
258
+ console.log(`${name3}: No appraisalAuthorities: ${terms.appraisalAuthorities}`);
259
+ return false;
260
+ }
261
+ if (appraisalAuthorities.map((x) => (0, import_hex.asAddress)(x)).length !== appraisalAuthorities.length) {
262
+ console.log(`${name3}: Invalid address: ${terms.appraisalAuthorities}`);
263
+ return false;
264
+ }
265
+ return true;
266
+ };
267
+ var getAppraisalAuthoritiesAllowedValidator = (allowed) => {
268
+ return (terms) => {
269
+ const result = moduleIdentifiersContainsAllOf(terms, (t) => t.appraisalAuthorities, allowed, true);
270
+ if (!result) {
271
+ console.log(`${name3}: Appraisal authority not allowed: ${terms.appraisalAuthorities}`);
272
+ }
273
+ return result;
274
+ };
275
+ };
276
+
277
+ // src/Escrow/validators/escrow/assets.ts
278
+ var name4 = "EscrowTerms.assets";
279
+ var assetsExistValidator = (terms) => {
280
+ const assets = terms.assets;
281
+ if (!assets || assets.length === 0) {
282
+ console.log(`${name4}: No assets: ${terms.assets}`);
283
+ return false;
284
+ }
285
+ return true;
286
+ };
287
+
288
+ // src/Escrow/validators/escrow/buyer.ts
289
+ var import_hex2 = require("@xylabs/hex");
290
+ var name5 = "EscrowTerms.buyer";
291
+ var buyerExistsValidator = (terms) => {
292
+ const buyer = terms.buyer;
293
+ if (!buyer || buyer.length === 0) {
294
+ console.log(`${name5}: No buyer: ${terms.buyer}`);
295
+ return false;
296
+ }
297
+ if (buyer.map((x) => (0, import_hex2.asAddress)(x)).length !== buyer.length) {
298
+ console.log(`${name5}: Invalid address: ${terms.buyer}`);
299
+ return false;
300
+ }
301
+ return true;
302
+ };
303
+
304
+ // src/Escrow/validators/escrow/buyerSecret.ts
305
+ var import_assert2 = require("@xylabs/assert");
306
+ var import_boundwitness_model2 = require("@xyo-network/boundwitness-model");
307
+ var import_boundwitness_validator = require("@xyo-network/boundwitness-validator");
308
+ var name6 = "EscrowTerms.buyerSecret";
309
+ var buyerSecretExistsValidator = (terms) => {
310
+ const buyerSecret = terms.buyerSecret;
311
+ if (!buyerSecret || buyerSecret.length === 0) {
312
+ console.log(`${name6}: No buyerSecret: ${terms.buyerSecret}`);
313
+ return false;
314
+ }
315
+ return true;
316
+ };
317
+ var getBuyerSecretSuppliedValidator = (dictionary) => {
318
+ return (terms) => {
319
+ const buyerSecret = (0, import_assert2.assertEx)(terms.buyerSecret, () => `${name6}: No buyerSecret: ${terms.buyerSecret}`);
320
+ if (!dictionary[buyerSecret]) {
321
+ console.log(`${name6}: Payload not supplied for buyerSecret: ${buyerSecret}`);
322
+ return false;
323
+ }
324
+ return true;
325
+ };
326
+ };
327
+ var getBuyerSecretSignedValidator = (dictionary) => {
328
+ return async (terms) => {
329
+ const buyer = (0, import_assert2.assertEx)(terms.buyer, () => `${name6}: No buyer: ${terms.buyer}`);
330
+ const buyerSecret = (0, import_assert2.assertEx)(terms.buyerSecret, () => `${name6}: No buyerSecret: ${terms.buyerSecret}`);
331
+ const buyerSecretBWs = Object.values(dictionary).filter(import_boundwitness_model2.isBoundWitnessWithMeta).filter((bw) => bw.payload_hashes.includes(buyerSecret)).filter((bw) => buyer.every((buyerAddress) => bw.addresses.includes(buyerAddress)));
332
+ if (buyerSecretBWs.length === 0) {
333
+ console.log(`${name6}: No BoundWitnesses supplied for buyerSecret: ${buyerSecret}`);
334
+ return false;
335
+ }
336
+ const errors = await Promise.all(buyerSecretBWs.map((bw) => new import_boundwitness_validator.BoundWitnessValidator(bw).validate()));
337
+ const validBoundWitnesses = errors.every((errors2) => errors2.length === 0);
338
+ if (!validBoundWitnesses) {
339
+ console.log(`${name6}: Invalid BoundWitnesses supplied for buyerSecret: ${buyerSecret}`);
340
+ return false;
341
+ }
342
+ return true;
343
+ };
344
+ };
345
+
346
+ // src/Escrow/validators/escrow/nbfExp.ts
347
+ var getNbfExpValidator = (now, minRequiredDuration) => {
348
+ const minExp = now + minRequiredDuration;
349
+ return (terms) => {
350
+ const { exp, nbf } = terms;
351
+ if (nbf === void 0 || nbf < now) {
352
+ console.log(`EscrowTerms.nbf: invalid nbf ${terms.nbf}`);
353
+ return false;
354
+ }
355
+ if (exp === void 0 || exp < minExp || nbf > exp) {
356
+ console.log(`EscrowTerms.exp: invalid exp ${terms.exp}`);
357
+ return false;
358
+ }
359
+ return true;
360
+ };
361
+ };
362
+
363
+ // src/Escrow/validators/escrow/paymentAuthorities.ts
364
+ var name7 = "EscrowTerms.paymentAuthorities";
365
+ var getPaymentAuthoritiesAllowedValidator = (allowed) => {
366
+ return (terms) => {
367
+ const result = moduleIdentifiersContainsAllOf(terms, (t) => t.paymentAuthorities, allowed, true);
368
+ if (!result) {
369
+ console.log(`${name7}: Payment authority not allowed: ${terms.paymentAuthorities}`);
370
+ }
371
+ return result;
372
+ };
373
+ };
374
+
375
+ // src/Escrow/validators/escrow/seller.ts
376
+ var import_hex3 = require("@xylabs/hex");
377
+ var name8 = "EscrowTerms.seller";
378
+ var sellerExistsValidator = (terms) => {
379
+ const seller = terms.seller;
380
+ if (!seller || seller.length === 0) {
381
+ console.log(`${name8}: No seller: ${terms.seller}`);
382
+ return false;
383
+ }
384
+ if (seller.map((x) => (0, import_hex3.asAddress)(x)).length !== seller.length) {
385
+ console.log(`${name8}: Invalid address: ${terms.seller}`);
386
+ return false;
387
+ }
388
+ return true;
389
+ };
390
+
391
+ // src/Escrow/validators/escrow/sellerSecret.ts
392
+ var import_assert3 = require("@xylabs/assert");
393
+ var import_boundwitness_model3 = require("@xyo-network/boundwitness-model");
394
+ var import_boundwitness_validator2 = require("@xyo-network/boundwitness-validator");
395
+ var name9 = "EscrowTerms.sellerSecret";
396
+ var sellerSecretExistsValidator = (terms) => {
397
+ const sellerSecret = terms.sellerSecret;
398
+ if (!sellerSecret || sellerSecret.length === 0) {
399
+ console.log(`${name9}: No sellerSecret: ${terms.sellerSecret}`);
400
+ return false;
401
+ }
402
+ return true;
403
+ };
404
+ var getSellerSecretSuppliedValidator = (dictionary) => {
405
+ return (terms) => {
406
+ const sellerSecret = (0, import_assert3.assertEx)(terms.sellerSecret, () => `${name9}: No sellerSecret: ${terms.sellerSecret}`);
407
+ if (!dictionary[sellerSecret]) {
408
+ console.log(`${name9}: Payload not supplied for sellerSecret: ${sellerSecret}`);
409
+ return false;
410
+ }
411
+ return true;
412
+ };
413
+ };
414
+ var getSellerSecretSignedValidator = (dictionary) => {
415
+ return async (terms) => {
416
+ const seller = (0, import_assert3.assertEx)(terms.seller, () => `${name9}: No seller: ${terms.seller}`);
417
+ const sellerSecret = (0, import_assert3.assertEx)(terms.sellerSecret, () => `${name9}: No sellerSecret: ${terms.sellerSecret}`);
418
+ const sellerSecretBWs = Object.values(dictionary).filter(import_boundwitness_model3.isBoundWitnessWithMeta).filter((bw) => bw.payload_hashes.includes(sellerSecret)).filter((bw) => seller.every((sellerAddress) => bw.addresses.includes(sellerAddress)));
419
+ if (sellerSecretBWs.length === 0) {
420
+ console.log(`${name9}: No BoundWitnesses supplied for sellerSecret: ${sellerSecret}`);
421
+ return false;
422
+ }
423
+ const errors = await Promise.all(sellerSecretBWs.map((bw) => new import_boundwitness_validator2.BoundWitnessValidator(bw).validate()));
424
+ const validBoundWitnesses = errors.every((errors2) => errors2.length === 0);
425
+ if (!validBoundWitnesses) {
426
+ console.log(`${name9}: Invalid BoundWitnesses supplied for sellerSecret: ${sellerSecret}`);
427
+ return false;
428
+ }
429
+ return true;
430
+ };
431
+ };
432
+
433
+ // src/Payment/Instrument/Card/Payload.ts
434
+ var import_payload_model3 = require("@xyo-network/payload-model");
435
+
436
+ // src/Payment/Schema.ts
437
+ var PaymentSchema = `${PaymentsSchema}.payment`;
438
+
439
+ // src/Payment/Instrument/Schema.ts
440
+ var PaymentInstrumentSchema = `${PaymentSchema}.instrument`;
441
+
442
+ // src/Payment/Instrument/Card/Schema.ts
443
+ var PaymentCardSchema = `${PaymentInstrumentSchema}.card`;
444
+
445
+ // src/Payment/Instrument/Card/Payload.ts
446
+ var isPaymentCard = (0, import_payload_model3.isPayloadOfSchemaType)(PaymentCardSchema);
447
+ var isPaymentCardWithSources = (0, import_payload_model3.isPayloadOfSchemaTypeWithSources)(PaymentCardSchema);
448
+ var isPaymentCardWithMeta = (0, import_payload_model3.isPayloadOfSchemaTypeWithMeta)(PaymentCardSchema);
449
+
450
+ // src/Payment/Payload.ts
451
+ var import_payload_model4 = require("@xyo-network/payload-model");
452
+ var isPayment = (0, import_payload_model4.isPayloadOfSchemaType)(PaymentSchema);
453
+ var isPaymentWithSources = (0, import_payload_model4.isPayloadOfSchemaTypeWithSources)(PaymentSchema);
454
+ var isPaymentWithMeta = (0, import_payload_model4.isPayloadOfSchemaTypeWithMeta)(PaymentSchema);
455
+
456
+ // src/Payment/Status/Payload.ts
457
+ var import_payload_model5 = require("@xyo-network/payload-model");
458
+
459
+ // src/Payment/Status/Schema.ts
460
+ var PaymentStatusSchema = `${PaymentSchema}.status`;
461
+
462
+ // src/Payment/Status/Payload.ts
463
+ var isPaymentStatus = (0, import_payload_model5.isPayloadOfSchemaType)(PaymentStatusSchema);
464
+ var isPaymentStatusWithSources = (0, import_payload_model5.isPayloadOfSchemaTypeWithSources)(PaymentStatusSchema);
465
+ var isPaymentStatusWithMeta = (0, import_payload_model5.isPayloadOfSchemaTypeWithMeta)(PaymentStatusSchema);
466
+
467
+ // src/Purchase/Payload.ts
468
+ var import_payload_model6 = require("@xyo-network/payload-model");
469
+
470
+ // src/Purchase/Schema.ts
471
+ var PurchaseSchema = `${PaymentsSchema}.purchase`;
472
+
473
+ // src/Purchase/Payload.ts
474
+ var isPurchase = (0, import_payload_model6.isPayloadOfSchemaType)(PurchaseSchema);
475
+ var isPurchaseWithSources = (0, import_payload_model6.isPayloadOfSchemaTypeWithSources)(PurchaseSchema);
476
+ var isPurchaseWithMeta = (0, import_payload_model6.isPayloadOfSchemaTypeWithMeta)(PurchaseSchema);
477
+
478
+ // src/Receipt/Payload.ts
479
+ var import_payload_model7 = require("@xyo-network/payload-model");
480
+
481
+ // src/Receipt/Schema.ts
482
+ var ReceiptSchema = `${PaymentsSchema}.receipt`;
483
+
484
+ // src/Receipt/Payload.ts
485
+ var isReceipt = (0, import_payload_model7.isPayloadOfSchemaType)(ReceiptSchema);
486
+ var isReceiptWithSources = (0, import_payload_model7.isPayloadOfSchemaTypeWithSources)(ReceiptSchema);
487
+ var isReceiptWithMeta = (0, import_payload_model7.isPayloadOfSchemaTypeWithMeta)(ReceiptSchema);
488
+ // Annotate the CommonJS export names for ESM import in node:
489
+ 0 && (module.exports = {
490
+ BillingAddressSchema,
491
+ BillingSchema,
492
+ EscrowSchema,
493
+ EscrowTermsSchema,
494
+ PaymentCardSchema,
495
+ PaymentInstrumentSchema,
496
+ PaymentSchema,
497
+ PaymentStatusSchema,
498
+ PurchaseSchema,
499
+ ReceiptSchema,
500
+ appraisalAuthoritiesExistValidator,
501
+ appraisalsExistValidator,
502
+ assetsExistValidator,
503
+ buyerExistsValidator,
504
+ buyerSecretExistsValidator,
505
+ createEscrowIntent,
506
+ createEscrowIntentWithSecret,
507
+ getAppraisalAuthoritiesAllowedValidator,
508
+ getAppraisalsForAllAssetsValidator,
509
+ getAppraisalsFromValidAuthoritiesValidator,
510
+ getAppraisalsValidValidator,
511
+ getBuyerSecretSignedValidator,
512
+ getBuyerSecretSuppliedValidator,
513
+ getEscrowAgentAllowedValidator,
514
+ getEscrowSecret,
515
+ getNbfExpValidator,
516
+ getPaymentAuthoritiesAllowedValidator,
517
+ getSellerSecretSignedValidator,
518
+ getSellerSecretSuppliedValidator,
519
+ isBillingAddress,
520
+ isBillingAddressWithMeta,
521
+ isBillingAddressWithSources,
522
+ isEscrowTerms,
523
+ isEscrowTermsWithMeta,
524
+ isEscrowTermsWithSources,
525
+ isPayment,
526
+ isPaymentCard,
527
+ isPaymentCardWithMeta,
528
+ isPaymentCardWithSources,
529
+ isPaymentStatus,
530
+ isPaymentStatusWithMeta,
531
+ isPaymentStatusWithSources,
532
+ isPaymentWithMeta,
533
+ isPaymentWithSources,
534
+ isPurchase,
535
+ isPurchaseWithMeta,
536
+ isPurchaseWithSources,
537
+ isReceipt,
538
+ isReceiptWithMeta,
539
+ isReceiptWithSources,
540
+ moduleIdentifiersContainsAllOf,
541
+ moduleIdentifiersContainsOneOf,
542
+ sellerExistsValidator,
543
+ sellerSecretExistsValidator,
544
+ validateWithinWindow
545
+ });
2
546
  //# sourceMappingURL=index.cjs.map