@capxul/sandbox 4.20.0-beta.16 → 4.20.0-beta.17

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 (2) hide show
  1. package/dist/main.mjs +405 -60
  2. package/package.json +2 -2
package/dist/main.mjs CHANGED
@@ -15371,6 +15371,7 @@ const CAPXUL_OPERATIONS = {
15371
15371
  moneyExecution: {
15372
15372
  abandonPaymentExecution: "moneyExecution.abandonPaymentExecution",
15373
15373
  prepareOrganizationPaymentExecution: "moneyExecution.prepareOrganizationPaymentExecution",
15374
+ prepareRequestPaymentExecution: "moneyExecution.prepareRequestPaymentExecution",
15374
15375
  preparePaymentExecution: "moneyExecution.preparePaymentExecution",
15375
15376
  preparePaymentLifecycleExecution: "moneyExecution.preparePaymentLifecycleExecution",
15376
15377
  prepareInvitationConfiguration: "moneyExecution.prepareInvitationConfiguration",
@@ -15388,6 +15389,7 @@ const CAPXUL_OPERATIONS = {
15388
15389
  },
15389
15390
  inbox: {
15390
15391
  approve: "inbox.approve",
15392
+ fulfill: "inbox.fulfill",
15391
15393
  decline: "inbox.decline",
15392
15394
  list: "inbox.list"
15393
15395
  },
@@ -17317,6 +17319,7 @@ const CAPXUL_FUNCTIONS = {
17317
17319
  cancel: "financialOps/requestsInbox:cancel",
17318
17320
  decline: "financialOps/requestsInbox:decline",
17319
17321
  get: "financialOps/requestsInbox:get",
17322
+ getByLink: "financialOps/requestsInbox:getByLink",
17320
17323
  inboxList: "financialOps/requestsInbox:inboxList",
17321
17324
  issue: "financialOps/requestsInbox:issue",
17322
17325
  list: "financialOps/requestsInbox:list"
@@ -17352,6 +17355,7 @@ const CAPXUL_FUNCTIONS = {
17352
17355
  preparePaymentLifecycleExecution: "moneyExecution/paymentCommandActions:preparePaymentLifecycleExecution",
17353
17356
  prepareScopedPaymentLifecycleExecution: "moneyExecution/paymentCommandActions:prepareScopedPaymentLifecycleExecution",
17354
17357
  prepareOrganizationPaymentExecution: "moneyExecution/paymentCommandActions:prepareOrganizationPaymentExecution",
17358
+ prepareRequestPaymentExecution: "moneyExecution/paymentCommandActions:prepareRequestPaymentExecution",
17355
17359
  submitPaymentCommandExecution: "moneyExecution/paymentCommandActions:submitPaymentCommandExecution"
17356
17360
  },
17357
17361
  "moneyExecution/providerSendWitness": { read: "moneyExecution/providerSendWitness:read" },
@@ -17725,6 +17729,23 @@ const PaymentDocumentEnvelopeV3Schema = Union([
17725
17729
  signature: optional(SignatureV3Schema)
17726
17730
  })
17727
17731
  ]);
17732
+ const PAYMENT_DOCUMENT_V4_SALT = "0x9fcb24a0f8fe0f0d90d5c0be51afbed1dc31d4d27bf4d189be42f34f897f1c0d";
17733
+ const SupportedPaymentDocumentEnvelopeSchema = Union([PaymentDocumentEnvelopeV3Schema, Struct({
17734
+ protocol: Literal("capxul.payment-document"),
17735
+ version: Literal(4),
17736
+ domain: Struct({
17737
+ ...PaymentDocumentDomainV3Schema.fields,
17738
+ version: Literal("4"),
17739
+ salt: Literal(PAYMENT_DOCUMENT_V4_SALT)
17740
+ }),
17741
+ primaryType: Literal("Invoice"),
17742
+ message: Struct({
17743
+ ...InvoiceV3Schema.fields,
17744
+ note: NoteV3Schema,
17745
+ discountMinor: Uint256StringSchema$1
17746
+ }),
17747
+ signature: optional(SignatureV3Schema)
17748
+ })]);
17728
17749
  function decodedBase64Size(value) {
17729
17750
  const padding = value.endsWith("==") ? 2 : value.endsWith("=") ? 1 : 0;
17730
17751
  return value.length / 4 * 3 - padding;
@@ -17736,6 +17757,8 @@ const InvoiceDraftSchema = Struct({
17736
17757
  payerRef: AssertionV3Schema,
17737
17758
  payeeRef: AssertionV3Schema,
17738
17759
  dueAt: Uint64V3Schema,
17760
+ note: optional(NoteV3Schema),
17761
+ discountMinor: optional(Uint256StringSchema$1),
17739
17762
  lineItems: ArraySchema(LineItemV3Schema).check(makeFilter((items) => items.length <= 100))
17740
17763
  });
17741
17764
  const PaymentInstructionInputSchema = Union([
@@ -17784,7 +17807,11 @@ const DocumentRefV3Schema = Struct({
17784
17807
  "payslip",
17785
17808
  "receipt"
17786
17809
  ]),
17787
- format: Literals(["envelope-v3", "artifact"]),
17810
+ format: Literals([
17811
+ "envelope-v3",
17812
+ "envelope-v4",
17813
+ "artifact"
17814
+ ]),
17788
17815
  role: Literals([
17789
17816
  "instruction",
17790
17817
  "movement",
@@ -17844,7 +17871,7 @@ Union([
17844
17871
  ]);
17845
17872
  const PaymentDocumentBundleV3Schema = Struct({
17846
17873
  originId: CanonicalBytes32V3Schema,
17847
- envelope: PaymentDocumentEnvelopeV3Schema,
17874
+ envelope: SupportedPaymentDocumentEnvelopeSchema,
17848
17875
  lineItems: optional(ArraySchema(LineItemV3Schema).check(makeFilter((items) => items.length <= 100))),
17849
17876
  adjustments: optional(ArraySchema(AdjustmentV3Schema).check(makeFilter((items) => items.length <= 100))),
17850
17877
  supportingDocuments: ArraySchema(DocumentRefV3Schema)
@@ -18155,10 +18182,11 @@ const AccountActorRefSchema = Struct({
18155
18182
  kind: Literal("account"),
18156
18183
  accountId: nonEmpty("accountId")
18157
18184
  });
18158
- const ActorRefSchema = Union([AccountActorRefSchema, Struct({
18185
+ const OrganizationActorRefSchema = Struct({
18159
18186
  kind: Literal("organization"),
18160
18187
  orgId: nonEmpty("orgId")
18161
- })]);
18188
+ });
18189
+ const ActorRefSchema = Union([AccountActorRefSchema, OrganizationActorRefSchema]);
18162
18190
  const hasActorBoundPermission = (actor, orgId, permissionId) => actor.kind === "organization" ? orgId === actor.orgId && permissionId !== void 0 : orgId === void 0 && permissionId === void 0;
18163
18191
  const ActorOrDestinationRefSchema = Union([ActorRefSchema, Struct({
18164
18192
  kind: Literal("destination"),
@@ -19214,19 +19242,50 @@ const PrepareOrganizationPaymentExecutionInputSchema = Struct({
19214
19242
  items: ArraySchema(OrganizationPaymentExecutionItemSchema).check(makeFilter((items) => is(PaymentDocumentOptionsBatchSchema)(items))),
19215
19243
  lineage: optional(PaymentCommandLineageSchema)
19216
19244
  });
19245
+ const RequestPaymentConfirmationFields = {
19246
+ requestId: nonEmpty("requestId"),
19247
+ release: ReleaseTermsSchema,
19248
+ issuerSafe: SafeAddressSchema,
19249
+ amount: FinancialOpsAssetAmount,
19250
+ instruction: DocumentRefV3Schema
19251
+ };
19252
+ const RequestPaymentConfirmationSchema = Union([Struct({
19253
+ ...RequestPaymentConfirmationFields,
19254
+ payer: Struct({ kind: Literal("account") }),
19255
+ permissionId: optional(Never)
19256
+ }), Struct({
19257
+ ...RequestPaymentConfirmationFields,
19258
+ payer: OrganizationActorRefSchema,
19259
+ permissionId: PermissionIdSchema
19260
+ })]);
19261
+ Struct({
19262
+ confirmation: RequestPaymentConfirmationSchema,
19263
+ signerAddress: AddressSchema
19264
+ });
19265
+ const RequestPaymentExecutionEvidenceSchema = Struct({
19266
+ kind: Literal("payment_request"),
19267
+ confirmation: RequestPaymentConfirmationSchema,
19268
+ actor: ActorRefSchema,
19269
+ requestKey: nonEmpty("requestKey"),
19270
+ items: ArraySchema(PaymentBirthItemSchema)
19271
+ });
19217
19272
  const PreparedPaymentCommandExecutionSchema = Struct({
19218
19273
  recipientObservations: ArraySchema(RecipientObservationSchema),
19219
19274
  emitPaymentInitiated: Boolean$1,
19220
19275
  executionId: MoneyExecutionIdSchema,
19221
19276
  commandId: PaymentCommandIdSchema,
19222
19277
  paymentIds: ArraySchema(PaymentIdSchema),
19223
- request: Union([PaymentLifecycleExecutionIntentSchema, Struct({
19224
- orgId: nonEmpty("orgId"),
19225
- permissionId: PermissionIdSchema,
19226
- requestKey: nonEmpty("requestKey"),
19227
- items: ArraySchema(OrganizationPaymentExecutionItemSchema),
19228
- lineage: optional(PaymentCommandLineageSchema)
19229
- })]),
19278
+ request: Union([
19279
+ RequestPaymentExecutionEvidenceSchema,
19280
+ PaymentLifecycleExecutionIntentSchema,
19281
+ Struct({
19282
+ orgId: nonEmpty("orgId"),
19283
+ permissionId: PermissionIdSchema,
19284
+ requestKey: nonEmpty("requestKey"),
19285
+ items: ArraySchema(OrganizationPaymentExecutionItemSchema),
19286
+ lineage: optional(PaymentCommandLineageSchema)
19287
+ })
19288
+ ]),
19230
19289
  chainId: BaseSepoliaChainIdSchema,
19231
19290
  signerAddress: AddressSchema,
19232
19291
  userOpSenderSafe: SafeAddressSchema,
@@ -19244,7 +19303,26 @@ const PreparedPaymentCommandExecutionSchema = Struct({
19244
19303
  documentHash: NonzeroDocumentHashSchema
19245
19304
  })),
19246
19305
  documentBundles: optional(ArraySchema(PaymentDocumentBundleV3Schema))
19247
- });
19306
+ }).check(makeFilter((execution) => {
19307
+ if (!("kind" in execution.request) || execution.request.kind !== "payment_request") return true;
19308
+ const source = execution.sourceCommand;
19309
+ const prepared = execution.preparedCommand;
19310
+ if (source?.kind !== "birth" || prepared === void 0 || source.lineage?.kind !== "payment_request") return false;
19311
+ if (source.lineage.requestId !== execution.request.confirmation.requestId || source.requestKey !== execution.request.requestKey || source.requestKey !== execution.request.confirmation.requestId || execution.userOperation === void 0) return false;
19312
+ if ([
19313
+ source.items.length,
19314
+ execution.request.items.length,
19315
+ execution.paymentIds.length,
19316
+ execution.sourcePaymentIds?.length,
19317
+ execution.sourceRecipientSafes?.length,
19318
+ execution.documentBundles?.length,
19319
+ prepared.items.length,
19320
+ prepared.documentBundles?.length,
19321
+ prepared.instructionDocuments?.length
19322
+ ].some((length) => length !== 1)) return false;
19323
+ const item = prepared.items[0];
19324
+ return "recipientSafe" in item && item.operation === source.items[0].operation && item.operation === execution.request.items[0].operation && item.paymentId === execution.paymentIds[0] && item.paymentId === execution.sourcePaymentIds?.[0] && item.recipientSafe === execution.sourceRecipientSafes?.[0];
19325
+ }));
19248
19326
  const StoredPermissionIntentSchema = Union([Struct({
19249
19327
  type: Literal("budget"),
19250
19328
  asset: AssetIdSchema,
@@ -19817,6 +19895,240 @@ Struct({
19817
19895
  decimals: nonNegativeInteger("decimals"),
19818
19896
  effectiveFrom: nonNegativeInteger("effectiveFrom")
19819
19897
  });
19898
+ /** Version 3 field order is fixed by the accepted Documents contract. */
19899
+ const PAYMENT_DOCUMENT_V3_EIP712_TYPES = {
19900
+ EIP712Domain: [
19901
+ {
19902
+ name: "name",
19903
+ type: "string"
19904
+ },
19905
+ {
19906
+ name: "version",
19907
+ type: "string"
19908
+ },
19909
+ {
19910
+ name: "chainId",
19911
+ type: "uint256"
19912
+ },
19913
+ {
19914
+ name: "salt",
19915
+ type: "bytes32"
19916
+ }
19917
+ ],
19918
+ ExactAssetV3: [
19919
+ {
19920
+ name: "asset",
19921
+ type: "string"
19922
+ },
19923
+ {
19924
+ name: "minorUnits",
19925
+ type: "uint256"
19926
+ },
19927
+ {
19928
+ name: "decimals",
19929
+ type: "uint8"
19930
+ }
19931
+ ],
19932
+ ReceiptAmountV3: [
19933
+ {
19934
+ name: "denomination",
19935
+ type: "uint8"
19936
+ },
19937
+ {
19938
+ name: "currency",
19939
+ type: "string"
19940
+ },
19941
+ {
19942
+ name: "asset",
19943
+ type: "string"
19944
+ },
19945
+ {
19946
+ name: "minorUnits",
19947
+ type: "uint256"
19948
+ },
19949
+ {
19950
+ name: "decimals",
19951
+ type: "uint8"
19952
+ }
19953
+ ],
19954
+ Memo: [
19955
+ {
19956
+ name: "kind",
19957
+ type: "uint8"
19958
+ },
19959
+ {
19960
+ name: "originId",
19961
+ type: "bytes32"
19962
+ },
19963
+ {
19964
+ name: "issuedAt",
19965
+ type: "uint64"
19966
+ },
19967
+ {
19968
+ name: "basis",
19969
+ type: "uint8"
19970
+ },
19971
+ {
19972
+ name: "reference",
19973
+ type: "string"
19974
+ },
19975
+ {
19976
+ name: "note",
19977
+ type: "string"
19978
+ },
19979
+ {
19980
+ name: "amount",
19981
+ type: "ExactAssetV3"
19982
+ },
19983
+ {
19984
+ name: "source",
19985
+ type: "address"
19986
+ },
19987
+ {
19988
+ name: "destination",
19989
+ type: "address"
19990
+ },
19991
+ {
19992
+ name: "movementRef",
19993
+ type: "string"
19994
+ }
19995
+ ],
19996
+ Invoice: [
19997
+ {
19998
+ name: "kind",
19999
+ type: "uint8"
20000
+ },
20001
+ {
20002
+ name: "originId",
20003
+ type: "bytes32"
20004
+ },
20005
+ {
20006
+ name: "issuedAt",
20007
+ type: "uint64"
20008
+ },
20009
+ {
20010
+ name: "invoiceNumber",
20011
+ type: "string"
20012
+ },
20013
+ {
20014
+ name: "payerRef",
20015
+ type: "string"
20016
+ },
20017
+ {
20018
+ name: "payeeRef",
20019
+ type: "string"
20020
+ },
20021
+ {
20022
+ name: "amount",
20023
+ type: "ExactAssetV3"
20024
+ },
20025
+ {
20026
+ name: "target",
20027
+ type: "address"
20028
+ },
20029
+ {
20030
+ name: "dueAt",
20031
+ type: "uint64"
20032
+ },
20033
+ {
20034
+ name: "lineItemsHash",
20035
+ type: "bytes32"
20036
+ }
20037
+ ],
20038
+ Payslip: [
20039
+ {
20040
+ name: "kind",
20041
+ type: "uint8"
20042
+ },
20043
+ {
20044
+ name: "originId",
20045
+ type: "bytes32"
20046
+ },
20047
+ {
20048
+ name: "issuedAt",
20049
+ type: "uint64"
20050
+ },
20051
+ {
20052
+ name: "runId",
20053
+ type: "string"
20054
+ },
20055
+ {
20056
+ name: "itemIndex",
20057
+ type: "uint64"
20058
+ },
20059
+ {
20060
+ name: "employerRef",
20061
+ type: "string"
20062
+ },
20063
+ {
20064
+ name: "employeeRef",
20065
+ type: "string"
20066
+ },
20067
+ {
20068
+ name: "periodStart",
20069
+ type: "uint64"
20070
+ },
20071
+ {
20072
+ name: "periodEnd",
20073
+ type: "uint64"
20074
+ },
20075
+ {
20076
+ name: "gross",
20077
+ type: "ExactAssetV3"
20078
+ },
20079
+ {
20080
+ name: "net",
20081
+ type: "ExactAssetV3"
20082
+ },
20083
+ {
20084
+ name: "target",
20085
+ type: "address"
20086
+ },
20087
+ {
20088
+ name: "adjustmentsHash",
20089
+ type: "bytes32"
20090
+ }
20091
+ ],
20092
+ Receipt: [
20093
+ {
20094
+ name: "kind",
20095
+ type: "uint8"
20096
+ },
20097
+ {
20098
+ name: "originId",
20099
+ type: "bytes32"
20100
+ },
20101
+ {
20102
+ name: "issuedAt",
20103
+ type: "uint64"
20104
+ },
20105
+ {
20106
+ name: "reference",
20107
+ type: "string"
20108
+ },
20109
+ {
20110
+ name: "issuerRef",
20111
+ type: "string"
20112
+ },
20113
+ {
20114
+ name: "recipientRef",
20115
+ type: "string"
20116
+ },
20117
+ {
20118
+ name: "amount",
20119
+ type: "ReceiptAmountV3"
20120
+ },
20121
+ {
20122
+ name: "paidAt",
20123
+ type: "uint64"
20124
+ },
20125
+ {
20126
+ name: "note",
20127
+ type: "string"
20128
+ }
20129
+ ]
20130
+ };
20131
+ ({ ...PAYMENT_DOCUMENT_V3_EIP712_TYPES }), [...PAYMENT_DOCUMENT_V3_EIP712_TYPES.Invoice];
19820
20132
  ArraySchema(LineItemV3Schema).check(makeFilter((items) => items.length <= 100));
19821
20133
  ArraySchema(AdjustmentV3Schema).check(makeFilter((items) => items.length <= 100));
19822
20134
  //#endregion
@@ -20005,50 +20317,83 @@ ArraySchema(Struct({
20005
20317
  amount: AmountV2Schema
20006
20318
  }));
20007
20319
  `
20008
- .capxul-doc{--ink:#1d1d1f;--muted:#6e6e73;--line:#e7e7ea;--accent:#0a7d4b;--bg:#fff;
20009
- font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,sans-serif;
20010
- color:var(--ink);background:var(--bg);max-width:44rem;margin:0 auto;padding:2.75rem 3rem;
20011
- border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 2px rgba(0,0,0,.04),0 12px 32px rgba(0,0,0,.06);
20012
- line-height:1.5;font-size:15px;overflow-wrap:anywhere;word-break:break-word}
20320
+ @page{size:A4;margin:14mm}
20321
+ .capxul-doc{--ink:#171717;--muted:#737373;--line:#e5e5e5;--accent:#f97316;
20322
+ box-sizing:border-box;font-family:Geist,Arial,sans-serif;color:var(--ink);background:#fafafa;
20323
+ width:100%;max-width:550px;min-height:778px;margin:0 auto;padding:8px;
20324
+ border:1px solid #d4d4d4;border-radius:16px;line-height:1.4;font-size:10px;
20325
+ overflow-wrap:anywhere;word-break:break-word}
20013
20326
  .capxul-doc *{box-sizing:border-box;min-width:0}
20014
- .capxul-doc .doc-header{display:flex;flex-direction:column;gap:1.25rem;padding-bottom:1.5rem;border-bottom:1px solid var(--line);margin-bottom:1.75rem}
20015
- .capxul-doc .doc-brand{display:flex;align-items:center;gap:.5rem;color:var(--accent);font-weight:600}
20016
- .capxul-doc .doc-brand-mark{font-size:1.1rem}
20017
- .capxul-doc .doc-brand-name{letter-spacing:.02em}
20018
- .capxul-doc .doc-headline{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}
20019
- .capxul-doc .doc-title{font-size:1.9rem;font-weight:700;letter-spacing:-.02em;margin:0}
20020
- .capxul-doc .doc-badge{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;
20021
- color:var(--accent);background:rgba(10,125,75,.1);padding:.3rem .6rem;border-radius:999px;max-width:100%;text-align:right}
20022
- .capxul-doc .doc-parties{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:1.75rem}
20023
- .capxul-doc .doc-party{display:flex;flex-direction:column;gap:.15rem}
20024
- .capxul-doc .doc-party-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
20025
- .capxul-doc .doc-party-name{font-weight:600}
20026
- .capxul-doc .doc-meta{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.75rem}
20027
- .capxul-doc .doc-meta-row{display:flex;justify-content:space-between;gap:1rem;font-size:.92rem}
20028
- .capxul-doc .doc-meta-label{color:var(--muted);flex-shrink:0}
20029
- .capxul-doc .doc-meta-value{font-weight:500;text-align:right}
20030
- .capxul-doc time{color:var(--ink);font-variant-numeric:tabular-nums}
20031
- .capxul-doc .doc-line-items{width:100%;border-collapse:collapse;margin:.5rem 0 1.5rem;font-size:.92rem}
20032
- .capxul-doc .doc-line-items th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;
20033
- color:var(--muted);font-weight:600;padding:.5rem .25rem;border-bottom:1px solid var(--line)}
20034
- .capxul-doc .doc-line-items td{padding:.7rem .25rem;border-bottom:1px solid var(--line)}
20035
- .capxul-doc .doc-li-qty,.capxul-doc .doc-li-unit,.capxul-doc .doc-li-total{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
20036
- .capxul-doc .doc-li-desc{width:100%}
20037
- .capxul-doc .doc-totals{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}
20038
- .capxul-doc .doc-total-line{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
20039
- .capxul-doc .doc-total-label{color:var(--muted)}
20040
- .capxul-doc .doc-total-deduction .doc-amount-value{color:var(--muted)}
20041
- .capxul-doc .doc-total-grand{border-top:2px solid var(--ink);margin-top:.5rem;padding-top:.75rem;font-size:1.15rem}
20042
- .capxul-doc .doc-total-grand .doc-amount-value{font-weight:700}
20043
- .capxul-doc .doc-amount-value{font-variant-numeric:tabular-nums;font-weight:600}
20044
- .capxul-doc .doc-hero{text-align:center;padding:1.5rem 0 2rem}
20045
- .capxul-doc .doc-hero-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
20046
- .capxul-doc .doc-hero-amount{font-size:2.6rem;font-weight:700;letter-spacing:-.02em;margin-top:.35rem}
20047
- .capxul-doc .doc-note{color:var(--ink);background:#f7f7f8;border-radius:10px;padding:.9rem 1.1rem;margin:0}
20048
- .capxul-doc .doc-dest-address{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem}
20049
- .capxul-doc .doc-footer{margin-top:1.75rem;padding-top:1.25rem;border-top:1px solid var(--line);color:var(--muted);font-size:.9rem}
20050
- .capxul-doc code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;color:var(--muted);word-break:break-all}
20051
- @media (max-width:540px){.capxul-doc{padding:1.75rem 1.25rem}.capxul-doc .doc-parties{grid-template-columns:1fr}}
20327
+ .capxul-doc .doc-header{display:flex;align-items:flex-start;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--line)}
20328
+ .capxul-doc .doc-brand{display:flex;gap:4px;align-items:center;color:var(--accent);font-weight:600}
20329
+ .capxul-doc .doc-brand-mark{font-size:16px}
20330
+ .capxul-doc .doc-headline{flex:1}
20331
+ .capxul-doc .doc-title{font-size:16px;font-weight:500;margin:0 0 4px}
20332
+ .capxul-doc .doc-badge{color:var(--muted);font-size:10px}
20333
+ .capxul-doc .doc-header-meta{display:flex;gap:16px;max-width:50%;font-size:10px}
20334
+ .capxul-doc .doc-header-meta .doc-meta-row{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
20335
+ .capxul-doc .doc-parties{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:8px 0;margin-bottom:16px;border-bottom:1px solid var(--line);break-inside:avoid}
20336
+ .capxul-doc .doc-party{padding:8px;display:flex;flex-direction:column;gap:8px}
20337
+ .capxul-doc .doc-party:first-child{background:rgba(234,88,12,.03);border-radius:8px}
20338
+ .capxul-doc .doc-party-label,.capxul-doc .doc-meta-label,.capxul-doc .doc-total-label,.capxul-doc .doc-hero-label{color:var(--muted);font-size:10px}
20339
+ .capxul-doc .doc-party-name{font-size:16px;font-weight:500}
20340
+ .capxul-doc .doc-meta{margin:16px 8px}
20341
+ .capxul-doc .doc-meta-row{display:flex;justify-content:space-between;gap:16px;margin-bottom:6px}
20342
+ .capxul-doc .doc-meta-value{text-align:right}
20343
+ .capxul-doc .doc-line-items{width:100%;border-collapse:collapse;table-layout:fixed;margin:8px 0 16px}
20344
+ .capxul-doc .doc-line-items thead{display:table-header-group}
20345
+ .capxul-doc .doc-line-items tr{break-inside:avoid}
20346
+ .capxul-doc .doc-line-items th{font-weight:500;font-size:10px;color:var(--muted);text-align:right;padding:8px}
20347
+ .capxul-doc .doc-line-items th:first-child{text-align:left;width:46%}
20348
+ .capxul-doc .doc-line-items td{padding:12px 8px;border-bottom:1px solid var(--line);vertical-align:top}
20349
+ .capxul-doc .doc-li-qty,.capxul-doc .doc-li-unit,.capxul-doc .doc-li-total{text-align:right;font-variant-numeric:tabular-nums}
20350
+ .capxul-doc .doc-summary{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;margin-bottom:16px}
20351
+ .capxul-doc .doc-body{padding:8px}
20352
+ .capxul-doc .doc-section-title{font-size:12px;font-weight:500;margin:0 0 8px}
20353
+ .capxul-doc .doc-note{margin:0;white-space:pre-wrap;line-height:1.6}
20354
+ .capxul-doc .doc-totals{grid-column:2;padding:8px;break-inside:avoid}
20355
+ .capxul-doc .doc-total-line{display:flex;justify-content:space-between;gap:12px;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--line)}
20356
+ .capxul-doc .doc-total-label{flex-shrink:0}
20357
+ .capxul-doc .doc-total-grand{border:0;font-size:14px}
20358
+ .capxul-doc .doc-amount-value{font-weight:500;font-variant-numeric:tabular-nums;text-align:right}
20359
+ .capxul-doc .doc-payment{padding:12px;background:#f5f5f5;border-radius:8px;break-inside:avoid}
20360
+ .capxul-doc .doc-hero{padding:16px;background:#f5f5f5;border-radius:8px;margin-bottom:16px;break-inside:avoid}
20361
+ .capxul-doc .doc-hero-amount{font-size:24px;margin-top:4px;font-weight:500}
20362
+ .capxul-doc .doc-footer{padding:8px;margin-top:16px;border-top:1px solid var(--line);color:var(--muted)}
20363
+ .capxul-doc code,.capxul-doc .doc-dest-address{font-family:Geist,Arial,sans-serif;font-size:10px;word-break:break-all}
20364
+ .capxul-doc--invoice .doc-header{padding:8px;gap:24px}
20365
+ .capxul-doc--invoice .doc-title{font-size:10px;color:var(--muted);margin:0 0 2px}
20366
+ .capxul-doc--invoice .doc-badge{color:var(--ink);font-weight:500}
20367
+ .capxul-doc--invoice .doc-header-meta{gap:24px}
20368
+ .capxul-doc--invoice{display:flex;flex-direction:column;gap:8px;font-weight:500}
20369
+ .capxul-doc--invoice .doc-header{border:0}
20370
+ .capxul-doc--invoice .doc-parties{gap:8px;padding:0;margin:0;border-top:1px solid var(--line);min-height:189px}
20371
+ .capxul-doc--invoice .doc-party{justify-content:flex-start}
20372
+ .capxul-doc--invoice .doc-header .doc-meta-row{margin-bottom:0}
20373
+ .capxul-doc--invoice .doc-party + .doc-party{border-left:1px solid var(--line)}
20374
+ .capxul-doc .doc-party-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid #d4d4d4;border-radius:8px;background:#fafafa}
20375
+ .capxul-doc .doc-party-icon img{width:20px;height:20px}
20376
+ .capxul-doc--invoice .doc-line-items{margin:0}
20377
+ .capxul-doc--invoice .doc-summary{gap:8px;margin:0}
20378
+ .capxul-doc--invoice .doc-section-title{font-size:10px;color:#525252;margin-bottom:6px}
20379
+ .capxul-doc--invoice .doc-note{font-weight:400;color:var(--muted)}
20380
+ .capxul-doc--invoice .doc-total-grand{font-size:12px}
20381
+ .capxul-doc--invoice .doc-payment{margin-top:auto;padding:8px}
20382
+ .capxul-doc .doc-powered{border-top:1px solid var(--line);padding-top:8px;color:var(--muted);font-size:10px}
20383
+ .capxul-doc .doc-powered span{color:var(--accent)}
20384
+ .capxul-doc--invoice .doc-payment-heading{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:12px}
20385
+ .capxul-doc--invoice .doc-payment-heading h2{margin:0;font-size:12px;font-weight:500;color:#525252}
20386
+ .capxul-doc--invoice .doc-payment-content{display:grid;grid-template-columns:minmax(0,1fr) 149px;gap:8px;align-items:center;margin-bottom:12px}
20387
+ .capxul-doc--invoice .doc-payment-fields{display:flex;flex-direction:column;gap:12px;padding-right:8px}
20388
+ .capxul-doc--invoice .doc-payment-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
20389
+ .capxul-doc--invoice .doc-payment-selection{display:flex;align-items:center;gap:4px;padding:8px 12px;border:1px solid #d4d4d4;border-radius:8px;background:#fafafa;color:#525252;box-shadow:0 1px 4px #0000001a}
20390
+ .capxul-doc--invoice .doc-payment-selection .doc-chevron{margin-left:auto}
20391
+ .capxul-doc--invoice .doc-payment-address{display:flex;flex-direction:column;gap:4px;align-self:start;padding-top:4px}
20392
+ .capxul-doc--invoice .doc-payment-address>span{color:var(--accent)}
20393
+ .capxul-doc--invoice .doc-party-reference{display:flex;flex-direction:column;font-size:10px;color:var(--muted);gap:0}
20394
+ .capxul-doc--invoice .doc-party-email{font-size:12px;color:#525252;margin-bottom:8px}
20395
+ @media screen and (max-width:440px){.capxul-doc .doc-header{flex-wrap:wrap}.capxul-doc .doc-header-meta{max-width:100%}}
20396
+ @media print{.capxul-doc{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
20052
20397
  `.trim();
20053
20398
  //#endregion
20054
20399
  //#region ../../packages/wire/src/client-authorization.ts
@@ -20880,11 +21225,8 @@ function statusFromAccount(account, requirement) {
20880
21225
  }
20881
21226
  };
20882
21227
  }
20883
- makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/addressBook"].list), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/addressBook"].get), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/addressBook"].add), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/addressBook"].hide), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/addressBook"].unhide), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/addressBook"].label), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/requestsInbox"].issue), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/requestsInbox"].list), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/requestsInbox"].get), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/requestsInbox"].cancel), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/requestsInbox"].inboxList), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/requestsInbox"].approve), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/requestsInbox"].decline);
20884
- makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].me), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].depositInstructions), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].resolveRecipient), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/destinations"].add), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/destinations"].list), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/destinations"].remove), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].listPayments), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].getPayment), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].listOrganizationPayments), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].getOrganizationPayment), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].previewOrganizationPaymentRetry), makeFunctionReference(CAPXUL_FUNCTIONS["movement/activity"].list), makeFunctionReference(CAPXUL_FUNCTIONS["movement/activity"].summary), makeFunctionReference(CAPXUL_FUNCTIONS["movement/activity"].get), makeFunctionReference(CAPXUL_FUNCTIONS["movement/activity"].annotate), makeFunctionReference(CAPXUL_FUNCTIONS["movement/annotations"].overlay), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].getPaymentDocument), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].verifyPaymentDocument), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].renderStoredDocument);
20885
- makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/actions"].preparePermissionReplacementExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/actions"].abandonPaymentExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/actions"].prepareInvitationConfiguration), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/actions"].preparePermissionExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/actions"].preparePaymentExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/paymentCommandActions"].prepareOrganizationPaymentExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/paymentCommandActions"].preparePaymentLifecycleExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/paymentCommandActions"].prepareScopedPaymentLifecycleExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/actions"].submitPaymentExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/actions"].submitInvitationConfigurationExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/actions"].submitPermissionExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/paymentCommandActions"].submitPaymentCommandExecution);
20886
- TaggedError("IndexerReadError");
20887
- Service()("@capxul/sdk/ports/IndexerReadPort");
21228
+ makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/addressBook"].list), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/addressBook"].get), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/addressBook"].add), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/addressBook"].hide), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/addressBook"].unhide), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/addressBook"].label), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/requestsInbox"].issue), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/requestsInbox"].list), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/requestsInbox"].get), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/requestsInbox"].getByLink), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/requestsInbox"].cancel), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/requestsInbox"].inboxList), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/requestsInbox"].approve), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/requestsInbox"].decline);
21229
+ makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/paymentCommandActions"].prepareRequestPaymentExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/actions"].preparePermissionReplacementExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/actions"].abandonPaymentExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/actions"].prepareInvitationConfiguration), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/actions"].preparePermissionExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/actions"].preparePaymentExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/paymentCommandActions"].prepareOrganizationPaymentExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/paymentCommandActions"].preparePaymentLifecycleExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/paymentCommandActions"].prepareScopedPaymentLifecycleExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/actions"].submitPaymentExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/actions"].submitInvitationConfigurationExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/actions"].submitPermissionExecution), makeFunctionReference(CAPXUL_FUNCTIONS["moneyExecution/paymentCommandActions"].submitPaymentCommandExecution);
20888
21230
  //#endregion
20889
21231
  //#region ../../packages/sdk/src/surface/_shared/money-telemetry.ts
20890
21232
  /** Fire-and-forget emit through an optional port; never throws. */
@@ -20912,6 +21254,9 @@ function reportMoneyTelemetryFailure(kind, name, cause) {
20912
21254
  function isMoneyTelemetryDebugEnabled() {
20913
21255
  return globalThis.process?.env?.CAPXUL_DEBUG_TELEMETRY === "1";
20914
21256
  }
21257
+ makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].me), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].depositInstructions), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].resolveRecipient), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/destinations"].add), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/destinations"].list), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/destinations"].remove), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].listPayments), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].getPayment), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].listOrganizationPayments), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].getOrganizationPayment), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].previewOrganizationPaymentRetry), makeFunctionReference(CAPXUL_FUNCTIONS["movement/activity"].list), makeFunctionReference(CAPXUL_FUNCTIONS["movement/activity"].summary), makeFunctionReference(CAPXUL_FUNCTIONS["movement/activity"].get), makeFunctionReference(CAPXUL_FUNCTIONS["movement/activity"].annotate), makeFunctionReference(CAPXUL_FUNCTIONS["movement/annotations"].overlay), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].getPaymentDocument), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].verifyPaymentDocument), makeFunctionReference(CAPXUL_FUNCTIONS["financialOps/queries"].renderStoredDocument);
21258
+ TaggedError("IndexerReadError");
21259
+ Service()("@capxul/sdk/ports/IndexerReadPort");
20915
21260
  Struct({
20916
21261
  orgId: String$1,
20917
21262
  payment: Unknown
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capxul/sandbox",
3
- "version": "4.20.0-beta.16",
3
+ "version": "4.20.0-beta.17",
4
4
  "private": false,
5
5
  "description": "Capxul sandbox CLI for canonical quickstart keys and testnet faucet funds.",
6
6
  "keywords": [
@@ -42,7 +42,7 @@
42
42
  "typescript": "npm:@typescript/typescript6@6.0.2",
43
43
  "vite": "npm:@voidzero-dev/vite-plus-core@0.3.0",
44
44
  "vite-plus": "0.3.0",
45
- "@capxul/sdk": "4.20.0-beta.16",
45
+ "@capxul/sdk": "4.20.0-beta.17",
46
46
  "@capxul/typescript-config": "0.0.0"
47
47
  },
48
48
  "scripts": {