@atiproto/lexicons 1.0.0 → 2.0.0-beta.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.
Files changed (93) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +3459 -2459
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.mjs +3456 -2459
  5. package/dist/index.mjs.map +1 -1
  6. package/dist/lexicons/com/atiproto/authCreateCart.d.ts +2 -0
  7. package/dist/lexicons/com/atiproto/authCreateCart.defs.d.ts +5 -0
  8. package/dist/lexicons/com/atiproto/authCreatePayment.d.ts +2 -0
  9. package/dist/lexicons/com/atiproto/authCreatePayment.defs.d.ts +5 -0
  10. package/dist/lexicons/com/atiproto/authReadCart.d.ts +2 -0
  11. package/dist/lexicons/com/atiproto/authReadCart.defs.d.ts +5 -0
  12. package/dist/lexicons/com/atiproto/authReadEntitlements.d.ts +2 -0
  13. package/dist/lexicons/com/atiproto/authReadEntitlements.defs.d.ts +5 -0
  14. package/dist/lexicons/com/atiproto/authReadPayments.d.ts +2 -0
  15. package/dist/lexicons/com/atiproto/authReadPayments.defs.d.ts +5 -0
  16. package/dist/lexicons/com/atiproto/authReadPublic.d.ts +2 -0
  17. package/dist/lexicons/com/atiproto/authReadPublic.defs.d.ts +5 -0
  18. package/dist/lexicons/com/atiproto/authReadRecipient.d.ts +2 -0
  19. package/dist/lexicons/com/atiproto/authReadRecipient.defs.d.ts +5 -0
  20. package/dist/lexicons/com/atiproto/authWriteProfile.d.ts +2 -0
  21. package/dist/lexicons/com/atiproto/authWriteProfile.defs.d.ts +5 -0
  22. package/dist/lexicons/com/atiproto/cart.defs.d.ts +277 -112
  23. package/dist/lexicons/com/atiproto/item.defs.d.ts +97 -202
  24. package/dist/lexicons/com/atiproto/payment/cart/checkout.d.ts +2 -0
  25. package/dist/lexicons/com/atiproto/payment/cart/checkout.defs.d.ts +69 -0
  26. package/dist/lexicons/com/atiproto/payment/cart/create.defs.d.ts +11 -21
  27. package/dist/lexicons/com/atiproto/payment/cart/get.defs.d.ts +7 -39
  28. package/dist/lexicons/com/atiproto/payment/cart/list.defs.d.ts +17 -20
  29. package/dist/lexicons/com/atiproto/payment/cart/put.defs.d.ts +3 -13
  30. package/dist/lexicons/com/atiproto/payment/cart.d.ts +1 -1
  31. package/dist/lexicons/com/atiproto/payment/item/create.defs.d.ts +19 -53
  32. package/dist/lexicons/com/atiproto/payment/item/get.defs.d.ts +5 -17
  33. package/dist/lexicons/com/atiproto/payment/item/list.defs.d.ts +1 -7
  34. package/dist/lexicons/com/atiproto/payment/item/put.defs.d.ts +1 -1
  35. package/dist/lexicons/com/atiproto/payment/item.d.ts +0 -1
  36. package/dist/lexicons/com/atiproto/payment/subscription/cancel.defs.d.ts +1 -7
  37. package/dist/lexicons/com/atiproto/payment/subscription/create.defs.d.ts +22 -45
  38. package/dist/lexicons/com/atiproto/payment/subscription/get.defs.d.ts +5 -11
  39. package/dist/lexicons/com/atiproto/payment/subscription/list.defs.d.ts +7 -1
  40. package/dist/lexicons/com/atiproto/payment/subscription/put.defs.d.ts +1 -1
  41. package/dist/lexicons/com/atiproto/payment/subscription.d.ts +0 -1
  42. package/dist/lexicons/com/atiproto/payment.d.ts +0 -1
  43. package/dist/lexicons/com/atiproto/profile.defs.d.ts +26 -143
  44. package/dist/lexicons/com/atiproto/recipient/payment/cart/get.defs.d.ts +7 -33
  45. package/dist/lexicons/com/atiproto/recipient/payment/cart/list.defs.d.ts +23 -20
  46. package/dist/lexicons/com/atiproto/recipient/payment/item/get.defs.d.ts +5 -17
  47. package/dist/lexicons/com/atiproto/recipient/payment/item/list.defs.d.ts +3 -3
  48. package/dist/lexicons/com/atiproto/recipient/payment/item.d.ts +0 -1
  49. package/dist/lexicons/com/atiproto/recipient/payment/subscription/get.defs.d.ts +5 -11
  50. package/dist/lexicons/com/atiproto/recipient/payment/subscription/list.defs.d.ts +13 -1
  51. package/dist/lexicons/com/atiproto/recipient/payment/subscription.d.ts +0 -1
  52. package/dist/lexicons/com/atiproto/recipient/profile/get.defs.d.ts +39 -19
  53. package/dist/lexicons/com/atiproto/repo/item/count.defs.d.ts +3 -9
  54. package/dist/lexicons/com/atiproto/repo/profile/get.defs.d.ts +6 -0
  55. package/dist/lexicons/com/atiproto/repo/subscription/count.defs.d.ts +5 -5
  56. package/dist/lexicons/com/atiproto/subscription.defs.d.ts +90 -157
  57. package/dist/lexicons/com/atiproto.d.ts +8 -2
  58. package/dist/lexicons/com/atproto/repo/strongRef.d.ts +2 -0
  59. package/dist/lexicons/com/atproto/repo/strongRef.defs.d.ts +56 -0
  60. package/dist/lexicons/com/atproto/repo.d.ts +1 -0
  61. package/dist/lexicons/com/atproto.d.ts +1 -0
  62. package/dist/lexicons/com.d.ts +1 -0
  63. package/dist/lexicons/index.d.ts +1 -0
  64. package/dist/lexicons/network/attested/entitlement.d.ts +2 -0
  65. package/dist/lexicons/network/attested/entitlement.defs.d.ts +185 -0
  66. package/dist/lexicons/network/attested/payment/initiate.d.ts +2 -0
  67. package/dist/lexicons/network/attested/payment/initiate.defs.d.ts +102 -0
  68. package/dist/lexicons/network/attested/payment/status.d.ts +2 -0
  69. package/dist/lexicons/network/attested/payment/status.defs.d.ts +56 -0
  70. package/dist/lexicons/network/attested/payment.d.ts +4 -0
  71. package/dist/lexicons/network/attested/payment.defs.d.ts +156 -0
  72. package/dist/lexicons/network/attested/proof.d.ts +2 -0
  73. package/dist/lexicons/network/attested/proof.defs.d.ts +172 -0
  74. package/dist/lexicons/network/attested/signature.d.ts +2 -0
  75. package/dist/lexicons/network/attested/signature.defs.d.ts +230 -0
  76. package/dist/lexicons/network/attested/verify.d.ts +2 -0
  77. package/dist/lexicons/network/attested/verify.defs.d.ts +41 -0
  78. package/dist/lexicons/network/attested.d.ts +5 -0
  79. package/dist/lexicons/network.d.ts +1 -0
  80. package/dist/schemas.d.ts +2 -0
  81. package/package.json +6 -2
  82. package/dist/lexicons/com/atiproto/payment/cart/clone.d.ts +0 -2
  83. package/dist/lexicons/com/atiproto/payment/cart/clone.defs.d.ts +0 -54
  84. package/dist/lexicons/com/atiproto/payment/item/validate.d.ts +0 -2
  85. package/dist/lexicons/com/atiproto/payment/item/validate.defs.d.ts +0 -50
  86. package/dist/lexicons/com/atiproto/payment/list.d.ts +0 -2
  87. package/dist/lexicons/com/atiproto/payment/list.defs.d.ts +0 -32
  88. package/dist/lexicons/com/atiproto/payment/subscription/validate.d.ts +0 -2
  89. package/dist/lexicons/com/atiproto/payment/subscription/validate.defs.d.ts +0 -44
  90. package/dist/lexicons/com/atiproto/recipient/payment/item/validate.d.ts +0 -2
  91. package/dist/lexicons/com/atiproto/recipient/payment/item/validate.defs.d.ts +0 -50
  92. package/dist/lexicons/com/atiproto/recipient/payment/subscription/validate.d.ts +0 -2
  93. package/dist/lexicons/com/atiproto/recipient/payment/subscription/validate.defs.d.ts +0 -44
@@ -1,314 +1,209 @@
1
1
  import { l } from '@atproto/lex';
2
+ import * as RepoStrongRef from '../atproto/repo/strongRef.defs.js';
3
+ import * as AttestedSignature from '../../network/attested/signature.defs.js';
2
4
  declare const $nsid = "com.atiproto.item";
3
5
  export { $nsid };
4
- /** A record representing a item given by one user to another */
5
6
  type Main = {
6
7
  $type: 'com.atiproto.item';
7
8
  /**
8
- * DID of the user receiving the item
9
+ * Reference to the entity being paid for. Either a `com.atproto.repo.strongRef` (a specific record, e.g. a post) or a `#userRef` (a thin wrapper carrying a did string for the user being paid). Absent when marked as private.
9
10
  */
10
- subject?: l.DidString;
11
+ subject?: l.$Typed<RepoStrongRef.Main> | l.$Typed<UserRef> | l.Unknown$TypedObject;
11
12
  /**
12
- * AT-URI of specific record being tipped
13
- */
14
- recordUri?: l.AtUriString;
15
- /**
16
- * Tip amount in cents (0 when recipient allows zero items)
13
+ * Per-unit amount in the smallest unit of the cart's `currency` (0 when the recipient permits zero-value items). Multiply by `quantity` for the line total.
17
14
  */
18
15
  amount: number;
19
16
  /**
20
- * ISO 4217 currency code
17
+ * Number of units of this item. Defaults to 1.
21
18
  */
22
- currency: string;
19
+ quantity: number;
23
20
  /**
24
- * Tip status
21
+ * Implementation-defined status string. PoS does not enforce or interpret this value; payment / cart state lives on the cart's `status` field.
25
22
  */
26
- status: 'pending' | 'authorized' | 'completed' | 'failed' | 'refunded';
23
+ status: string;
27
24
  /**
28
- * Optional message (max 500 chars)
25
+ * Optional message attached to the item.
29
26
  */
30
27
  message?: string;
31
- /**
32
- * Creation timestamp
33
- */
34
28
  createdAt: l.DatetimeString;
29
+ completedAt?: l.DatetimeString;
35
30
  /**
36
- * Completion timestamp
31
+ * PoS + recipient AppView attestations. Each entry is either an inline `network.attested.signature` or a `com.atproto.repo.strongRef` pointing at a remote `network.attested.proof` record. The canonical signing payload covers `amount`, `quantity`, `status`, `createdAt`, plus `subject`, `message`, and `completedAt` when present. Mutating any of those fields invalidates every signature in this array.
37
32
  */
38
- completedAt?: l.DatetimeString;
33
+ signatures: (l.$Typed<AttestedSignature.Main> | l.$Typed<RepoStrongRef.Main> | l.Unknown$TypedObject)[];
39
34
  };
40
35
  export type { Main };
41
- /** A record representing a item given by one user to another */
42
36
  declare const main: l.RecordSchema<"any", "com.atiproto.item", l.Validator<Omit<Main, "$type">, Omit<Main, "$type">>>;
43
37
  export { main };
44
38
  export declare const $isTypeOf: <TValue extends {
45
39
  $type?: unknown;
46
40
  }>(value: TValue) => value is l.TypedRecord<"com.atiproto.item", TValue>, $build: {
47
41
  (input: Omit<Omit<Main, "$type">, "$type">): {
48
- message?: string
49
- /**
50
- * Creation timestamp
51
- */
52
- | undefined;
53
- recordUri?: l.AtUriString
54
- /**
55
- * Tip amount in cents (0 when recipient allows zero items)
56
- */
57
- | undefined;
58
- currency: string;
59
- status: "pending" | "authorized" | "completed" | "failed" | "refunded";
42
+ message?: string | undefined;
43
+ subject?: (l.$Typed<RepoStrongRef.Main> | l.$Typed<UserRef> | l.Unknown$TypedObject) | undefined;
44
+ status: string;
60
45
  createdAt: l.DatetimeString;
61
- completedAt?: l.DatetimeString | undefined;
62
- subject?: l.DidString
46
+ completedAt?: l.DatetimeString
63
47
  /**
64
- * AT-URI of specific record being tipped
48
+ * PoS + recipient AppView attestations. Each entry is either an inline `network.attested.signature` or a `com.atproto.repo.strongRef` pointing at a remote `network.attested.proof` record. The canonical signing payload covers `amount`, `quantity`, `status`, `createdAt`, plus `subject`, `message`, and `completedAt` when present. Mutating any of those fields invalidates every signature in this array.
65
49
  */
66
50
  | undefined;
51
+ signatures: (l.$Typed<AttestedSignature.Main> | l.$Typed<RepoStrongRef.Main> | l.Unknown$TypedObject)[];
67
52
  amount: number;
53
+ quantity: number;
68
54
  $type: "com.atiproto.item";
69
55
  };
70
56
  (input: Omit<Omit<Main, "$type">, "$type">): {
71
- message?: string
72
- /**
73
- * Creation timestamp
74
- */
75
- | undefined;
76
- recordUri?: l.AtUriString
77
- /**
78
- * Tip amount in cents (0 when recipient allows zero items)
79
- */
80
- | undefined;
81
- currency: string;
82
- status: "pending" | "authorized" | "completed" | "failed" | "refunded";
57
+ message?: string | undefined;
58
+ subject?: (l.$Typed<RepoStrongRef.Main> | l.$Typed<UserRef> | l.Unknown$TypedObject) | undefined;
59
+ status: string;
83
60
  createdAt: l.DatetimeString;
84
- completedAt?: l.DatetimeString | undefined;
85
- subject?: l.DidString
61
+ completedAt?: l.DatetimeString
86
62
  /**
87
- * AT-URI of specific record being tipped
63
+ * PoS + recipient AppView attestations. Each entry is either an inline `network.attested.signature` or a `com.atproto.repo.strongRef` pointing at a remote `network.attested.proof` record. The canonical signing payload covers `amount`, `quantity`, `status`, `createdAt`, plus `subject`, `message`, and `completedAt` when present. Mutating any of those fields invalidates every signature in this array.
88
64
  */
89
65
  | undefined;
66
+ signatures: (l.$Typed<AttestedSignature.Main> | l.$Typed<RepoStrongRef.Main> | l.Unknown$TypedObject)[];
90
67
  amount: number;
68
+ quantity: number;
91
69
  $type: "com.atiproto.item";
92
70
  };
93
71
  }, $type: "com.atiproto.item";
94
72
  export declare const $assert: (input: unknown, options?: l.ValidateOptions) => asserts input is {
95
- message?: string
96
- /**
97
- * Creation timestamp
98
- */
99
- | undefined;
100
- recordUri?: l.AtUriString
101
- /**
102
- * Tip amount in cents (0 when recipient allows zero items)
103
- */
104
- | undefined;
105
- currency: string;
106
- status: "pending" | "authorized" | "completed" | "failed" | "refunded";
73
+ message?: string | undefined;
74
+ subject?: (l.$Typed<RepoStrongRef.Main> | l.$Typed<UserRef> | l.Unknown$TypedObject) | undefined;
75
+ status: string;
107
76
  createdAt: l.DatetimeString;
108
- completedAt?: l.DatetimeString | undefined;
109
- subject?: l.DidString
77
+ completedAt?: l.DatetimeString
110
78
  /**
111
- * AT-URI of specific record being tipped
79
+ * PoS + recipient AppView attestations. Each entry is either an inline `network.attested.signature` or a `com.atproto.repo.strongRef` pointing at a remote `network.attested.proof` record. The canonical signing payload covers `amount`, `quantity`, `status`, `createdAt`, plus `subject`, `message`, and `completedAt` when present. Mutating any of those fields invalidates every signature in this array.
112
80
  */
113
81
  | undefined;
82
+ signatures: (l.$Typed<AttestedSignature.Main> | l.$Typed<RepoStrongRef.Main> | l.Unknown$TypedObject)[];
114
83
  amount: number;
84
+ quantity: number;
115
85
  $type: "com.atiproto.item";
116
86
  }, $check: (input: unknown, options?: l.ValidateOptions) => void, $cast: <I>(input: I, options?: l.ValidateOptions) => I & {
117
- message?: string
118
- /**
119
- * Creation timestamp
120
- */
121
- | undefined;
122
- recordUri?: l.AtUriString
123
- /**
124
- * Tip amount in cents (0 when recipient allows zero items)
125
- */
126
- | undefined;
127
- currency: string;
128
- status: "pending" | "authorized" | "completed" | "failed" | "refunded";
87
+ message?: string | undefined;
88
+ subject?: (l.$Typed<RepoStrongRef.Main> | l.$Typed<UserRef> | l.Unknown$TypedObject) | undefined;
89
+ status: string;
129
90
  createdAt: l.DatetimeString;
130
- completedAt?: l.DatetimeString | undefined;
131
- subject?: l.DidString
91
+ completedAt?: l.DatetimeString
132
92
  /**
133
- * AT-URI of specific record being tipped
93
+ * PoS + recipient AppView attestations. Each entry is either an inline `network.attested.signature` or a `com.atproto.repo.strongRef` pointing at a remote `network.attested.proof` record. The canonical signing payload covers `amount`, `quantity`, `status`, `createdAt`, plus `subject`, `message`, and `completedAt` when present. Mutating any of those fields invalidates every signature in this array.
134
94
  */
135
95
  | undefined;
96
+ signatures: (l.$Typed<AttestedSignature.Main> | l.$Typed<RepoStrongRef.Main> | l.Unknown$TypedObject)[];
136
97
  amount: number;
98
+ quantity: number;
137
99
  $type: "com.atiproto.item";
138
100
  }, $ifMatches: <I>(input: I, options?: l.ValidateOptions) => (I & {
139
- message?: string
140
- /**
141
- * Creation timestamp
142
- */
143
- | undefined;
144
- recordUri?: l.AtUriString
145
- /**
146
- * Tip amount in cents (0 when recipient allows zero items)
147
- */
148
- | undefined;
149
- currency: string;
150
- status: "pending" | "authorized" | "completed" | "failed" | "refunded";
101
+ message?: string | undefined;
102
+ subject?: (l.$Typed<RepoStrongRef.Main> | l.$Typed<UserRef> | l.Unknown$TypedObject) | undefined;
103
+ status: string;
151
104
  createdAt: l.DatetimeString;
152
- completedAt?: l.DatetimeString | undefined;
153
- subject?: l.DidString
105
+ completedAt?: l.DatetimeString
154
106
  /**
155
- * AT-URI of specific record being tipped
107
+ * PoS + recipient AppView attestations. Each entry is either an inline `network.attested.signature` or a `com.atproto.repo.strongRef` pointing at a remote `network.attested.proof` record. The canonical signing payload covers `amount`, `quantity`, `status`, `createdAt`, plus `subject`, `message`, and `completedAt` when present. Mutating any of those fields invalidates every signature in this array.
156
108
  */
157
109
  | undefined;
110
+ signatures: (l.$Typed<AttestedSignature.Main> | l.$Typed<RepoStrongRef.Main> | l.Unknown$TypedObject)[];
158
111
  amount: number;
112
+ quantity: number;
159
113
  $type: "com.atiproto.item";
160
114
  }) | undefined, $matches: <I>(input: I, options?: l.ValidateOptions) => input is I & {
161
- message?: string
162
- /**
163
- * Creation timestamp
164
- */
165
- | undefined;
166
- recordUri?: l.AtUriString
167
- /**
168
- * Tip amount in cents (0 when recipient allows zero items)
169
- */
170
- | undefined;
171
- currency: string;
172
- status: "pending" | "authorized" | "completed" | "failed" | "refunded";
115
+ message?: string | undefined;
116
+ subject?: (l.$Typed<RepoStrongRef.Main> | l.$Typed<UserRef> | l.Unknown$TypedObject) | undefined;
117
+ status: string;
173
118
  createdAt: l.DatetimeString;
174
- completedAt?: l.DatetimeString | undefined;
175
- subject?: l.DidString
119
+ completedAt?: l.DatetimeString
176
120
  /**
177
- * AT-URI of specific record being tipped
121
+ * PoS + recipient AppView attestations. Each entry is either an inline `network.attested.signature` or a `com.atproto.repo.strongRef` pointing at a remote `network.attested.proof` record. The canonical signing payload covers `amount`, `quantity`, `status`, `createdAt`, plus `subject`, `message`, and `completedAt` when present. Mutating any of those fields invalidates every signature in this array.
178
122
  */
179
123
  | undefined;
124
+ signatures: (l.$Typed<AttestedSignature.Main> | l.$Typed<RepoStrongRef.Main> | l.Unknown$TypedObject)[];
180
125
  amount: number;
126
+ quantity: number;
181
127
  $type: "com.atiproto.item";
182
128
  }, $parse: (input: unknown, options?: l.ParseOptions) => {
183
- message?: string
184
- /**
185
- * Creation timestamp
186
- */
187
- | undefined;
188
- recordUri?: l.AtUriString
189
- /**
190
- * Tip amount in cents (0 when recipient allows zero items)
191
- */
192
- | undefined;
193
- currency: string;
194
- status: "pending" | "authorized" | "completed" | "failed" | "refunded";
129
+ message?: string | undefined;
130
+ subject?: (l.$Typed<RepoStrongRef.Main> | l.$Typed<UserRef> | l.Unknown$TypedObject) | undefined;
131
+ status: string;
195
132
  createdAt: l.DatetimeString;
196
- completedAt?: l.DatetimeString | undefined;
197
- subject?: l.DidString
133
+ completedAt?: l.DatetimeString
198
134
  /**
199
- * AT-URI of specific record being tipped
135
+ * PoS + recipient AppView attestations. Each entry is either an inline `network.attested.signature` or a `com.atproto.repo.strongRef` pointing at a remote `network.attested.proof` record. The canonical signing payload covers `amount`, `quantity`, `status`, `createdAt`, plus `subject`, `message`, and `completedAt` when present. Mutating any of those fields invalidates every signature in this array.
200
136
  */
201
137
  | undefined;
138
+ signatures: (l.$Typed<AttestedSignature.Main> | l.$Typed<RepoStrongRef.Main> | l.Unknown$TypedObject)[];
202
139
  amount: number;
140
+ quantity: number;
203
141
  $type: "com.atiproto.item";
204
142
  }, $safeParse: (input: unknown, options?: l.ParseOptions) => l.ValidationResult<{
205
- message?: string
206
- /**
207
- * Creation timestamp
208
- */
209
- | undefined;
210
- recordUri?: l.AtUriString
211
- /**
212
- * Tip amount in cents (0 when recipient allows zero items)
213
- */
214
- | undefined;
215
- currency: string;
216
- status: "pending" | "authorized" | "completed" | "failed" | "refunded";
143
+ message?: string | undefined;
144
+ subject?: (l.$Typed<RepoStrongRef.Main> | l.$Typed<UserRef> | l.Unknown$TypedObject) | undefined;
145
+ status: string;
217
146
  createdAt: l.DatetimeString;
218
- completedAt?: l.DatetimeString | undefined;
219
- subject?: l.DidString
147
+ completedAt?: l.DatetimeString
220
148
  /**
221
- * AT-URI of specific record being tipped
149
+ * PoS + recipient AppView attestations. Each entry is either an inline `network.attested.signature` or a `com.atproto.repo.strongRef` pointing at a remote `network.attested.proof` record. The canonical signing payload covers `amount`, `quantity`, `status`, `createdAt`, plus `subject`, `message`, and `completedAt` when present. Mutating any of those fields invalidates every signature in this array.
222
150
  */
223
151
  | undefined;
152
+ signatures: (l.$Typed<AttestedSignature.Main> | l.$Typed<RepoStrongRef.Main> | l.Unknown$TypedObject)[];
224
153
  amount: number;
154
+ quantity: number;
225
155
  $type: "com.atiproto.item";
226
156
  }>, $validate: <I>(input: I, options?: l.ValidateOptions) => I & {
227
- message?: string
228
- /**
229
- * Creation timestamp
230
- */
231
- | undefined;
232
- recordUri?: l.AtUriString
233
- /**
234
- * Tip amount in cents (0 when recipient allows zero items)
235
- */
236
- | undefined;
237
- currency: string;
238
- status: "pending" | "authorized" | "completed" | "failed" | "refunded";
157
+ message?: string | undefined;
158
+ subject?: (l.$Typed<RepoStrongRef.Main> | l.$Typed<UserRef> | l.Unknown$TypedObject) | undefined;
159
+ status: string;
239
160
  createdAt: l.DatetimeString;
240
- completedAt?: l.DatetimeString | undefined;
241
- subject?: l.DidString
161
+ completedAt?: l.DatetimeString
242
162
  /**
243
- * AT-URI of specific record being tipped
163
+ * PoS + recipient AppView attestations. Each entry is either an inline `network.attested.signature` or a `com.atproto.repo.strongRef` pointing at a remote `network.attested.proof` record. The canonical signing payload covers `amount`, `quantity`, `status`, `createdAt`, plus `subject`, `message`, and `completedAt` when present. Mutating any of those fields invalidates every signature in this array.
244
164
  */
245
165
  | undefined;
166
+ signatures: (l.$Typed<AttestedSignature.Main> | l.$Typed<RepoStrongRef.Main> | l.Unknown$TypedObject)[];
246
167
  amount: number;
168
+ quantity: number;
247
169
  $type: "com.atiproto.item";
248
170
  }, $safeValidate: <I>(input: I, options?: l.ValidateOptions) => l.ValidationResult<I & {
249
- message?: string
250
- /**
251
- * Creation timestamp
252
- */
253
- | undefined;
254
- recordUri?: l.AtUriString
255
- /**
256
- * Tip amount in cents (0 when recipient allows zero items)
257
- */
258
- | undefined;
259
- currency: string;
260
- status: "pending" | "authorized" | "completed" | "failed" | "refunded";
171
+ message?: string | undefined;
172
+ subject?: (l.$Typed<RepoStrongRef.Main> | l.$Typed<UserRef> | l.Unknown$TypedObject) | undefined;
173
+ status: string;
261
174
  createdAt: l.DatetimeString;
262
- completedAt?: l.DatetimeString | undefined;
263
- subject?: l.DidString
175
+ completedAt?: l.DatetimeString
264
176
  /**
265
- * AT-URI of specific record being tipped
177
+ * PoS + recipient AppView attestations. Each entry is either an inline `network.attested.signature` or a `com.atproto.repo.strongRef` pointing at a remote `network.attested.proof` record. The canonical signing payload covers `amount`, `quantity`, `status`, `createdAt`, plus `subject`, `message`, and `completedAt` when present. Mutating any of those fields invalidates every signature in this array.
266
178
  */
267
179
  | undefined;
180
+ signatures: (l.$Typed<AttestedSignature.Main> | l.$Typed<RepoStrongRef.Main> | l.Unknown$TypedObject)[];
268
181
  amount: number;
182
+ quantity: number;
269
183
  $type: "com.atiproto.item";
270
184
  }>;
271
- /** View of a item record for use in API responses */
272
185
  type View = {
273
186
  $type?: 'com.atiproto.item#view';
274
- /**
275
- * AT-URI of the item record
276
- */
277
187
  uri: l.AtUriString;
278
- /**
279
- * DID of the user receiving the item
280
- */
281
- subject?: l.DidString;
282
- /**
283
- * AT-URI of specific record being tipped
284
- */
285
- recordUri?: l.AtUriString;
286
- /**
287
- * Tip amount in cents (0 when recipient allows zero items)
288
- */
188
+ cid?: l.CidString;
189
+ subject?: l.$Typed<RepoStrongRef.Main> | l.$Typed<UserRef> | l.Unknown$TypedObject;
289
190
  amount: number;
290
- /**
291
- * ISO 4217 currency code
292
- */
293
- currency: string;
294
- /**
295
- * Tip status
296
- */
297
- status: 'pending' | 'authorized' | 'completed' | 'failed' | 'refunded';
298
- /**
299
- * Optional message (max 500 chars)
300
- */
191
+ quantity: number;
192
+ status: string;
301
193
  message?: string;
302
- /**
303
- * Creation timestamp
304
- */
305
194
  createdAt: l.DatetimeString;
306
- /**
307
- * Completion timestamp
308
- */
309
195
  completedAt?: l.DatetimeString;
196
+ signatures?: (l.$Typed<AttestedSignature.Main> | l.$Typed<RepoStrongRef.Main> | l.Unknown$TypedObject)[];
310
197
  };
311
198
  export type { View };
312
- /** View of a item record for use in API responses */
313
199
  declare const view: l.TypedObjectSchema<"com.atiproto.item#view", l.Validator<View, View>>;
314
200
  export { view };
201
+ /** Thin wrapper that carries a bare did string for the user being paid. The wire shape is `{ "$type": "com.atiproto.item#userRef", "did": "did:plc:..." }`; pair with `com.atproto.repo.strongRef` in a `subject` union to express either-or. */
202
+ type UserRef = {
203
+ $type?: 'com.atiproto.item#userRef';
204
+ did: l.DidString;
205
+ };
206
+ export type { UserRef };
207
+ /** Thin wrapper that carries a bare did string for the user being paid. The wire shape is `{ "$type": "com.atiproto.item#userRef", "did": "did:plc:..." }`; pair with `com.atproto.repo.strongRef` in a `subject` union to express either-or. */
208
+ declare const userRef: l.TypedObjectSchema<"com.atiproto.item#userRef", l.Validator<UserRef, UserRef>>;
209
+ export { userRef };
@@ -0,0 +1,2 @@
1
+ export * from './checkout.defs.js';
2
+ export * as $defs from './checkout.defs.js';
@@ -0,0 +1,69 @@
1
+ import { l } from '@atproto/lex';
2
+ import * as AtiprotoActions from '../../actions.defs.js';
3
+ import * as RepoStrongRef from '../../../atproto/repo/strongRef.defs.js';
4
+ import * as PaymentInitiate from '../../../../network/attested/payment/initiate.defs.js';
5
+ declare const $nsid = "com.atiproto.payment.cart.checkout";
6
+ export { $nsid };
7
+ /** Check out an existing cart. The cart record already carries subject, items, currency, and total; this procedure only needs the cart uri. When a `broker` is pre-seeded, the PoS runs the broker's `network.attested.payment.initiate` (today via outbound workflow, in the future direct) and the response carries `checkoutUrl` plus a strongRef `payment`. When no broker is pre-seeded, `payment` carries an `#initiateRequest` shape the caller can use to invoke a broker themselves. Callers inspect `$type` on `payment` to discriminate the two cases. */
8
+ declare const main: l.Procedure<"com.atiproto.payment.cart.checkout", l.ParamsSchema<{}>, l.Payload<"application/json", l.ObjectSchema<{
9
+ cart: l.StringSchema<{
10
+ readonly format: "at-uri";
11
+ }>;
12
+ broker: l.OptionalSchema<l.StringSchema<{
13
+ readonly format: "did";
14
+ }>>;
15
+ redirectUrl: l.OptionalSchema<l.StringSchema<{
16
+ readonly format: "uri";
17
+ }>>;
18
+ workflow: l.OptionalSchema<l.RefSchema<l.Validator<AtiprotoActions.InboundWorkflow, AtiprotoActions.InboundWorkflow>>>;
19
+ }>>, l.Payload<"application/json", l.ObjectSchema<{
20
+ workflow: l.OptionalSchema<l.RefSchema<l.Validator<AtiprotoActions.OutboundWorkflow, AtiprotoActions.OutboundWorkflow>>>;
21
+ checkoutUrl: l.OptionalSchema<l.StringSchema<{
22
+ readonly format: "uri";
23
+ }>>;
24
+ payment: l.TypedUnionSchema<readonly [l.TypedRefSchema<l.TypedObjectValidator<RepoStrongRef.Main, RepoStrongRef.Main>>, l.TypedRefSchema<l.TypedObjectValidator<InitiateRequest, InitiateRequest>>], false>;
25
+ }>>, undefined>;
26
+ export { main };
27
+ export type $Params = l.InferMethodParams<typeof main>;
28
+ export type $Input<B = l.BinaryData> = l.InferMethodInput<typeof main, B>;
29
+ export type $InputBody<B = l.BinaryData> = l.InferMethodInputBody<typeof main, B>;
30
+ export type $Output<B = l.BinaryData> = l.InferMethodOutput<typeof main, B>;
31
+ export type $OutputBody<B = l.BinaryData> = l.InferMethodOutputBody<typeof main, B>;
32
+ export declare const $lxm: "com.atiproto.payment.cart.checkout", $params: l.ParamsSchema<{}>, $input: l.Payload<"application/json", l.ObjectSchema<{
33
+ cart: l.StringSchema<{
34
+ readonly format: "at-uri";
35
+ }>;
36
+ broker: l.OptionalSchema<l.StringSchema<{
37
+ readonly format: "did";
38
+ }>>;
39
+ redirectUrl: l.OptionalSchema<l.StringSchema<{
40
+ readonly format: "uri";
41
+ }>>;
42
+ workflow: l.OptionalSchema<l.RefSchema<l.Validator<AtiprotoActions.InboundWorkflow, AtiprotoActions.InboundWorkflow>>>;
43
+ }>>, $output: l.Payload<"application/json", l.ObjectSchema<{
44
+ workflow: l.OptionalSchema<l.RefSchema<l.Validator<AtiprotoActions.OutboundWorkflow, AtiprotoActions.OutboundWorkflow>>>;
45
+ checkoutUrl: l.OptionalSchema<l.StringSchema<{
46
+ readonly format: "uri";
47
+ }>>;
48
+ payment: l.TypedUnionSchema<readonly [l.TypedRefSchema<l.TypedObjectValidator<RepoStrongRef.Main, RepoStrongRef.Main>>, l.TypedRefSchema<l.TypedObjectValidator<InitiateRequest, InitiateRequest>>], false>;
49
+ }>>;
50
+ /** Unfilled `network.attested.payment.initiate` input. Returned in the `payment` field when the caller did not pre-seed a broker; the caller fills in their chosen broker and invokes initiate, then uses `payment.cart.put` to attach the resulting payment ref. */
51
+ type InitiateRequest = {
52
+ $type?: 'com.atiproto.payment.cart.checkout#initiateRequest';
53
+ /**
54
+ * DID of the payment recipient (mirrors the cart's subject).
55
+ */
56
+ subject: l.DidString;
57
+ /**
58
+ * Line items derived from the cart, ready to forward to a broker's `network.attested.payment.initiate`.
59
+ */
60
+ items: (l.$Typed<PaymentInitiate.OneTime> | l.$Typed<PaymentInitiate.Recurring> | l.Unknown$TypedObject)[];
61
+ /**
62
+ * URI the processor should redirect to after checkout completion or cancellation, when the caller is ready to provide one.
63
+ */
64
+ redirectUrl?: l.UriString;
65
+ };
66
+ export type { InitiateRequest };
67
+ /** Unfilled `network.attested.payment.initiate` input. Returned in the `payment` field when the caller did not pre-seed a broker; the caller fills in their chosen broker and invokes initiate, then uses `payment.cart.put` to attach the resulting payment ref. */
68
+ declare const initiateRequest: l.TypedObjectSchema<"com.atiproto.payment.cart.checkout#initiateRequest", l.Validator<InitiateRequest, InitiateRequest>>;
69
+ export { initiateRequest };
@@ -3,24 +3,19 @@ import * as AtiprotoActions from '../../actions.defs.js';
3
3
  import * as AtiprotoCart from '../../cart.defs.js';
4
4
  declare const $nsid = "com.atiproto.payment.cart.create";
5
5
  export { $nsid };
6
- /** Create a new empty cart */
6
+ /** Create a new, empty cart on the PoS. The PoS signs the cart record and returns it via the standard workflow envelope so the agent can write the stripped form to the payer's PDS. Distinct from `payment.cart.checkout`: this only builds the cart, no broker is contacted and no `checkoutUrl` is issued. */
7
7
  declare const main: l.Procedure<"com.atiproto.payment.cart.create", l.ParamsSchema<{}>, l.Payload<"application/json", l.ObjectSchema<{
8
+ subject: l.StringSchema<{
9
+ readonly format: "did";
10
+ }>;
8
11
  currency: l.StringSchema<{
9
12
  readonly maxLength: 3;
10
13
  }>;
11
- redirectUrl: l.OptionalSchema<l.StringSchema<{
12
- readonly format: "uri";
13
- }>>;
14
+ private: l.OptionalSchema<l.WithDefaultSchema<l.BooleanSchema>>;
14
15
  workflow: l.OptionalSchema<l.RefSchema<l.Validator<AtiprotoActions.InboundWorkflow, AtiprotoActions.InboundWorkflow>>>;
15
16
  }>>, l.Payload<"application/json", l.ObjectSchema<{
16
17
  workflow: l.OptionalSchema<l.RefSchema<l.Validator<AtiprotoActions.OutboundWorkflow, AtiprotoActions.OutboundWorkflow>>>;
17
- cart: l.OptionalSchema<l.RefSchema<l.Validator<AtiprotoCart.View, AtiprotoCart.View>>>;
18
- cartUri: l.OptionalSchema<l.StringSchema<{
19
- readonly format: "at-uri";
20
- }>>;
21
- checkoutUrl: l.OptionalSchema<l.StringSchema<{
22
- readonly format: "uri";
23
- }>>;
18
+ cart: l.RefSchema<l.Validator<AtiprotoCart.View, AtiprotoCart.View>>;
24
19
  }>>, undefined>;
25
20
  export { main };
26
21
  export type $Params = l.InferMethodParams<typeof main>;
@@ -29,20 +24,15 @@ export type $InputBody<B = l.BinaryData> = l.InferMethodInputBody<typeof main, B
29
24
  export type $Output<B = l.BinaryData> = l.InferMethodOutput<typeof main, B>;
30
25
  export type $OutputBody<B = l.BinaryData> = l.InferMethodOutputBody<typeof main, B>;
31
26
  export declare const $lxm: "com.atiproto.payment.cart.create", $params: l.ParamsSchema<{}>, $input: l.Payload<"application/json", l.ObjectSchema<{
27
+ subject: l.StringSchema<{
28
+ readonly format: "did";
29
+ }>;
32
30
  currency: l.StringSchema<{
33
31
  readonly maxLength: 3;
34
32
  }>;
35
- redirectUrl: l.OptionalSchema<l.StringSchema<{
36
- readonly format: "uri";
37
- }>>;
33
+ private: l.OptionalSchema<l.WithDefaultSchema<l.BooleanSchema>>;
38
34
  workflow: l.OptionalSchema<l.RefSchema<l.Validator<AtiprotoActions.InboundWorkflow, AtiprotoActions.InboundWorkflow>>>;
39
35
  }>>, $output: l.Payload<"application/json", l.ObjectSchema<{
40
36
  workflow: l.OptionalSchema<l.RefSchema<l.Validator<AtiprotoActions.OutboundWorkflow, AtiprotoActions.OutboundWorkflow>>>;
41
- cart: l.OptionalSchema<l.RefSchema<l.Validator<AtiprotoCart.View, AtiprotoCart.View>>>;
42
- cartUri: l.OptionalSchema<l.StringSchema<{
43
- readonly format: "at-uri";
44
- }>>;
45
- checkoutUrl: l.OptionalSchema<l.StringSchema<{
46
- readonly format: "uri";
47
- }>>;
37
+ cart: l.RefSchema<l.Validator<AtiprotoCart.View, AtiprotoCart.View>>;
48
38
  }>>;
@@ -4,56 +4,24 @@ import * as AtiprotoItem from '../../item.defs.js';
4
4
  import * as AtiprotoSubscription from '../../subscription.defs.js';
5
5
  declare const $nsid = "com.atiproto.payment.cart.get";
6
6
  export { $nsid };
7
- /** Get a specific cart sent by the authenticated user, including resolved item and subscription records. One of `uri`, `itemUri`, or `subscriptionUri` is required. */
7
+ /** Hydrate a cart by uri. Includes the resolved item and subscription records that the cart references. Broker payment state is reflected on the cart's own `status` field (snapshot maintained by the recipient AppView), so no separate payment lookup is needed. */
8
8
  declare const main: l.Query<"com.atiproto.payment.cart.get", l.ParamsSchema<{
9
- readonly uri: l.OptionalSchema<l.StringSchema<{
10
- readonly format: "at-uri";
11
- }>>;
12
- readonly itemUri: l.OptionalSchema<l.StringSchema<{
13
- readonly format: "at-uri";
14
- }>>;
15
- readonly subscriptionUri: l.OptionalSchema<l.StringSchema<{
16
- readonly format: "at-uri";
17
- }>>;
18
- }>, l.Payload<"application/json", l.ObjectSchema<{
19
- uri: l.StringSchema<{
9
+ readonly uri: l.StringSchema<{
20
10
  readonly format: "at-uri";
21
11
  }>;
22
- cid: l.OptionalSchema<l.StringSchema<{
23
- readonly format: "cid";
24
- }>>;
12
+ }>, l.Payload<"application/json", l.ObjectSchema<{
25
13
  cart: l.RefSchema<l.Validator<AtiprotoCart.View, AtiprotoCart.View>>;
26
- checkoutUrl: l.OptionalSchema<l.StringSchema<{
27
- readonly format: "uri";
28
- }>>;
29
- items: l.ArraySchema<l.RefSchema<l.Validator<AtiprotoItem.View, AtiprotoItem.View>>>;
30
- subscriptions: l.ArraySchema<l.RefSchema<l.Validator<AtiprotoSubscription.View, AtiprotoSubscription.View>>>;
14
+ items: l.ArraySchema<l.TypedUnionSchema<readonly [l.TypedRefSchema<l.TypedObjectValidator<AtiprotoItem.View, AtiprotoItem.View>>, l.TypedRefSchema<l.TypedObjectValidator<AtiprotoSubscription.View, AtiprotoSubscription.View>>], false>>;
31
15
  }>>, undefined>;
32
16
  export { main };
33
17
  export type $Params = l.InferMethodParams<typeof main>;
34
18
  export type $Output<B = l.BinaryData> = l.InferMethodOutput<typeof main, B>;
35
19
  export type $OutputBody<B = l.BinaryData> = l.InferMethodOutputBody<typeof main, B>;
36
20
  export declare const $lxm: "com.atiproto.payment.cart.get", $params: l.ParamsSchema<{
37
- readonly uri: l.OptionalSchema<l.StringSchema<{
38
- readonly format: "at-uri";
39
- }>>;
40
- readonly itemUri: l.OptionalSchema<l.StringSchema<{
41
- readonly format: "at-uri";
42
- }>>;
43
- readonly subscriptionUri: l.OptionalSchema<l.StringSchema<{
44
- readonly format: "at-uri";
45
- }>>;
46
- }>, $output: l.Payload<"application/json", l.ObjectSchema<{
47
- uri: l.StringSchema<{
21
+ readonly uri: l.StringSchema<{
48
22
  readonly format: "at-uri";
49
23
  }>;
50
- cid: l.OptionalSchema<l.StringSchema<{
51
- readonly format: "cid";
52
- }>>;
24
+ }>, $output: l.Payload<"application/json", l.ObjectSchema<{
53
25
  cart: l.RefSchema<l.Validator<AtiprotoCart.View, AtiprotoCart.View>>;
54
- checkoutUrl: l.OptionalSchema<l.StringSchema<{
55
- readonly format: "uri";
56
- }>>;
57
- items: l.ArraySchema<l.RefSchema<l.Validator<AtiprotoItem.View, AtiprotoItem.View>>>;
58
- subscriptions: l.ArraySchema<l.RefSchema<l.Validator<AtiprotoSubscription.View, AtiprotoSubscription.View>>>;
26
+ items: l.ArraySchema<l.TypedUnionSchema<readonly [l.TypedRefSchema<l.TypedObjectValidator<AtiprotoItem.View, AtiprotoItem.View>>, l.TypedRefSchema<l.TypedObjectValidator<AtiprotoSubscription.View, AtiprotoSubscription.View>>], false>>;
59
27
  }>>;