@extenshi/cli 0.20.0 → 0.22.0
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.
- package/README.md +4 -0
- package/dist/amo-source-detect.d.ts +18 -0
- package/dist/amo-source-detect.d.ts.map +1 -0
- package/dist/amo-source-detect.js +41 -0
- package/dist/amo-source-detect.js.map +1 -0
- package/dist/amo-source.d.ts +41 -0
- package/dist/amo-source.d.ts.map +1 -0
- package/dist/amo-source.js +240 -0
- package/dist/amo-source.js.map +1 -0
- package/dist/amowebstore-md.d.ts +38 -0
- package/dist/amowebstore-md.d.ts.map +1 -0
- package/dist/amowebstore-md.js +118 -0
- package/dist/amowebstore-md.js.map +1 -0
- package/dist/auto-evidence.d.ts +100 -0
- package/dist/auto-evidence.d.ts.map +1 -0
- package/dist/auto-evidence.js +197 -0
- package/dist/auto-evidence.js.map +1 -0
- package/dist/cli.js +320 -8
- package/dist/cli.js.map +1 -1
- package/dist/edgewebstore-md.d.ts +26 -0
- package/dist/edgewebstore-md.d.ts.map +1 -0
- package/dist/edgewebstore-md.js +95 -0
- package/dist/edgewebstore-md.js.map +1 -0
- package/dist/evidence-ingest.d.ts +60 -0
- package/dist/evidence-ingest.d.ts.map +1 -0
- package/dist/evidence-ingest.js +141 -0
- package/dist/evidence-ingest.js.map +1 -0
- package/dist/expected-error.d.ts +9 -0
- package/dist/expected-error.d.ts.map +1 -1
- package/dist/expected-error.js +16 -1
- package/dist/expected-error.js.map +1 -1
- package/dist/firefox-rdp.d.ts +55 -0
- package/dist/firefox-rdp.d.ts.map +1 -0
- package/dist/firefox-rdp.js +203 -0
- package/dist/firefox-rdp.js.map +1 -0
- package/dist/gecko-id.d.ts +55 -0
- package/dist/gecko-id.d.ts.map +1 -0
- package/dist/gecko-id.js +132 -0
- package/dist/gecko-id.js.map +1 -0
- package/dist/generate-listing.d.ts +19 -8
- package/dist/generate-listing.d.ts.map +1 -1
- package/dist/generate-listing.js +66 -18
- package/dist/generate-listing.js.map +1 -1
- package/dist/icon.d.ts +18 -0
- package/dist/icon.d.ts.map +1 -1
- package/dist/icon.js +29 -20
- package/dist/icon.js.map +1 -1
- package/dist/json-ld.d.ts +89 -0
- package/dist/json-ld.d.ts.map +1 -0
- package/dist/json-ld.js +118 -0
- package/dist/json-ld.js.map +1 -0
- package/dist/landing-page.d.ts +123 -0
- package/dist/landing-page.d.ts.map +1 -0
- package/dist/landing-page.js +405 -0
- package/dist/landing-page.js.map +1 -0
- package/dist/media.d.ts +42 -0
- package/dist/media.d.ts.map +1 -0
- package/dist/media.js +96 -0
- package/dist/media.js.map +1 -0
- package/dist/package.d.ts +163 -0
- package/dist/package.d.ts.map +1 -0
- package/dist/package.js +500 -0
- package/dist/package.js.map +1 -0
- package/dist/page.d.ts +141 -0
- package/dist/page.d.ts.map +1 -0
- package/dist/page.js +227 -0
- package/dist/page.js.map +1 -0
- package/dist/pay-contract.d.ts +20 -13
- package/dist/pay-contract.d.ts.map +1 -1
- package/dist/pay-contract.js +20 -11
- package/dist/pay-contract.js.map +1 -1
- package/dist/pay-test-cycle.d.ts +40 -0
- package/dist/pay-test-cycle.d.ts.map +1 -0
- package/dist/pay-test-cycle.js +207 -0
- package/dist/pay-test-cycle.js.map +1 -0
- package/dist/pay.d.ts +1 -1
- package/dist/pay.d.ts.map +1 -1
- package/dist/pay.js +1 -0
- package/dist/pay.js.map +1 -1
- package/dist/project.d.ts +39 -1
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +231 -20
- package/dist/project.js.map +1 -1
- package/dist/publish.d.ts +33 -0
- package/dist/publish.d.ts.map +1 -1
- package/dist/publish.js +113 -2
- package/dist/publish.js.map +1 -1
- package/dist/review-checks.d.ts +13 -0
- package/dist/review-checks.d.ts.map +1 -1
- package/dist/review-checks.js.map +1 -1
- package/dist/review-risk.d.ts +10 -1
- package/dist/review-risk.d.ts.map +1 -1
- package/dist/review-risk.js +1 -0
- package/dist/review-risk.js.map +1 -1
- package/dist/scan.d.ts +3 -2
- package/dist/scan.d.ts.map +1 -1
- package/dist/scan.js +4 -2
- package/dist/scan.js.map +1 -1
- package/dist/screenshots-scenes.d.ts +1383 -0
- package/dist/screenshots-scenes.d.ts.map +1 -0
- package/dist/screenshots-scenes.js +276 -0
- package/dist/screenshots-scenes.js.map +1 -0
- package/dist/screenshots.d.ts +145 -0
- package/dist/screenshots.d.ts.map +1 -0
- package/dist/screenshots.js +557 -0
- package/dist/screenshots.js.map +1 -0
- package/dist/smoke.d.ts +81 -0
- package/dist/smoke.d.ts.map +1 -0
- package/dist/smoke.js +491 -0
- package/dist/smoke.js.map +1 -0
- package/dist/store-assets.d.ts +139 -0
- package/dist/store-assets.d.ts.map +1 -0
- package/dist/store-assets.js +582 -0
- package/dist/store-assets.js.map +1 -0
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +3 -0
- package/dist/telemetry.js.map +1 -1
- package/dist/zip.d.ts +57 -0
- package/dist/zip.d.ts.map +1 -0
- package/dist/zip.js +134 -0
- package/dist/zip.js.map +1 -0
- package/package.json +4 -3
package/dist/pay-contract.js
CHANGED
|
@@ -24,6 +24,7 @@ export const paySchemas = {
|
|
|
24
24
|
.strict(),
|
|
25
25
|
getPayApp: app,
|
|
26
26
|
getPayReadiness: app,
|
|
27
|
+
getPayPaymentEvidence: app,
|
|
27
28
|
linkPayApp: app.extend({ projectId: z.string().uuid() }),
|
|
28
29
|
unlinkPayApp: app,
|
|
29
30
|
archivePayApp: app,
|
|
@@ -69,7 +70,7 @@ export const PAY_OPERATIONS = [
|
|
|
69
70
|
'list',
|
|
70
71
|
'payApp.list',
|
|
71
72
|
false,
|
|
72
|
-
'List your independent Pay applications. No development project required.
|
|
73
|
+
'List your independent Pay applications. No development project required. Paginated: nextCursor is set while more results exist.',
|
|
73
74
|
],
|
|
74
75
|
[
|
|
75
76
|
'createPayApp',
|
|
@@ -77,7 +78,7 @@ export const PAY_OPERATIONS = [
|
|
|
77
78
|
'create',
|
|
78
79
|
'payApp.create',
|
|
79
80
|
true,
|
|
80
|
-
'Create an independent Pay application; linking a development project is optional.
|
|
81
|
+
'Create an independent Pay application; linking a development project is optional. Not idempotent: each call creates a new application, including a call repeated after a timeout.',
|
|
81
82
|
],
|
|
82
83
|
[
|
|
83
84
|
'getPayApp',
|
|
@@ -95,6 +96,14 @@ export const PAY_OPERATIONS = [
|
|
|
95
96
|
false,
|
|
96
97
|
'Check current checkout and launch prerequisites. A passing checkout check does not prove a live external purchase or SDK publication.',
|
|
97
98
|
],
|
|
99
|
+
[
|
|
100
|
+
'getPayPaymentEvidence',
|
|
101
|
+
'get_pay_payment_evidence',
|
|
102
|
+
'payment-evidence',
|
|
103
|
+
'payApp.paymentEvidence',
|
|
104
|
+
false,
|
|
105
|
+
"Read what Extenshi's own payment ledger proves about this application's payment path, per mode: checkout completed, license issued, an installation received the signed license, restored on a second installation, refund revoked. Derived from provider-signed webhooks, not from any report; opaque IDs and timestamps only, no buyer data. Only a live-mode purchase can satisfy a release's payment requirement; test-mode purchases are listed without satisfying it.",
|
|
106
|
+
],
|
|
98
107
|
[
|
|
99
108
|
'linkPayApp',
|
|
100
109
|
'link_pay_app',
|
|
@@ -117,7 +126,7 @@ export const PAY_OPERATIONS = [
|
|
|
117
126
|
'archive',
|
|
118
127
|
'payApp.archive',
|
|
119
128
|
true,
|
|
120
|
-
'Archive your application and stop new checkout.
|
|
129
|
+
'Archive your application and stop new checkout. Payment records and existing entitlements are preserved.',
|
|
121
130
|
],
|
|
122
131
|
[
|
|
123
132
|
'exportPayData',
|
|
@@ -125,7 +134,7 @@ export const PAY_OPERATIONS = [
|
|
|
125
134
|
'export',
|
|
126
135
|
'payApp.export',
|
|
127
136
|
false,
|
|
128
|
-
'Export one page of
|
|
137
|
+
'Export one page of one resource (offers, payments, subscriptions, entitlements or customers). nextCursor is null on the last page. The output contains sensitive customer and payment data.',
|
|
129
138
|
],
|
|
130
139
|
[
|
|
131
140
|
'getPaySeller',
|
|
@@ -133,7 +142,7 @@ export const PAY_OPERATIONS = [
|
|
|
133
142
|
'seller',
|
|
134
143
|
'paySeller.get',
|
|
135
144
|
false,
|
|
136
|
-
'Read seller connection, public profile, offers
|
|
145
|
+
'Read seller connection, public profile, offers, the publishable SDK key and the public entitlement verification key. Those two keys are the ones meant to be embedded in extension code; secret keys are not part of the response. Agreement signing and KYC take place in the browser.',
|
|
137
146
|
],
|
|
138
147
|
[
|
|
139
148
|
'connectPaySeller',
|
|
@@ -141,7 +150,7 @@ export const PAY_OPERATIONS = [
|
|
|
141
150
|
'connect',
|
|
142
151
|
'paySeller.connect',
|
|
143
152
|
true,
|
|
144
|
-
'Start Stripe Connect onboarding and return a browser action URL.
|
|
153
|
+
'Start Stripe Connect onboarding and return a browser action URL. KYC and legal acceptance are completed by the author at that URL; this tool does not perform them.',
|
|
145
154
|
],
|
|
146
155
|
[
|
|
147
156
|
'refreshPaySeller',
|
|
@@ -157,7 +166,7 @@ export const PAY_OPERATIONS = [
|
|
|
157
166
|
'profile',
|
|
158
167
|
'paySeller.setPublicProfile',
|
|
159
168
|
true,
|
|
160
|
-
'Save
|
|
169
|
+
'Save the public seller profile: display name, support URL or email, and terms URL. The values are stored as provided and are publicly visible.',
|
|
161
170
|
],
|
|
162
171
|
[
|
|
163
172
|
'upsertPayOffer',
|
|
@@ -165,7 +174,7 @@ export const PAY_OPERATIONS = [
|
|
|
165
174
|
'offer-upsert',
|
|
166
175
|
'paySeller.upsertOffer',
|
|
167
176
|
true,
|
|
168
|
-
'Create or update an offer by stable SKU. Price is in minor currency units.
|
|
177
|
+
'Create or update an offer keyed by a stable SKU. Price is in minor currency units. Subscriptions keep the given billing interval; one-time and lifetime offers store no interval. Price and features are stored as provided.',
|
|
169
178
|
],
|
|
170
179
|
[
|
|
171
180
|
'archivePayOffer',
|
|
@@ -173,7 +182,7 @@ export const PAY_OPERATIONS = [
|
|
|
173
182
|
'offer-archive',
|
|
174
183
|
'paySeller.archiveOffer',
|
|
175
184
|
true,
|
|
176
|
-
'Stop offering a SKU for new checkout;
|
|
185
|
+
'Stop offering a SKU for new checkout; historical purchases are preserved.',
|
|
177
186
|
],
|
|
178
187
|
[
|
|
179
188
|
'setPayEnabled',
|
|
@@ -181,7 +190,7 @@ export const PAY_OPERATIONS = [
|
|
|
181
190
|
'enable',
|
|
182
191
|
'paySeller.setEnabled',
|
|
183
192
|
true,
|
|
184
|
-
'
|
|
193
|
+
'Enable or disable new payments for the application; requires a connected payment provider. Enabling re-reads the seller status from the provider (charges and payouts). It does not verify the public profile, agreement or offer sync: buyers can check out only when every readiness check reported by get_pay_readiness passes. Enabling is a live commerce change.',
|
|
185
194
|
],
|
|
186
195
|
[
|
|
187
196
|
'rotatePayKey',
|
|
@@ -189,7 +198,7 @@ export const PAY_OPERATIONS = [
|
|
|
189
198
|
'rotate-key',
|
|
190
199
|
'paySeller.rotatePublishableKey',
|
|
191
200
|
true,
|
|
192
|
-
'Generate a new publishable SDK key. Prior keys remain accepted for installed extension builds; this
|
|
201
|
+
'Generate a new publishable SDK key. Not idempotent: each call issues another key. Prior keys remain accepted for installed extension builds; this does not revoke any secret.',
|
|
193
202
|
],
|
|
194
203
|
];
|
|
195
204
|
/** The legacy seller API uses projectId as the payment namespace. Never substitute a linked project ID. */
|
package/dist/pay-contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pay-contract.js","sourceRoot":"","sources":["../src/pay-contract.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pay-contract.js","sourceRoot":"","sources":["../src/pay-contract.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAA;AAC3D,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;AAC1D,MAAM,SAAS,GAAG,CAAC;KACjB,MAAM,EAAE;KACR,IAAI,EAAE;KACN,GAAG,CAAC,IAAI,CAAC;KACT,GAAG,EAAE;KACL,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;IACjB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;IAC1B,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAA;AACnE,CAAC,EAAE,sCAAsC,CAAC,CAAA;AAC3C,MAAM,CAAC,MAAM,UAAU,GAAG;IACzB,WAAW,EAAE,CAAC;SACZ,MAAM,CAAC;QACP,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QACvC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;KAClD,CAAC;SACD,MAAM,EAAE;IACV,YAAY,EAAE,CAAC;SACb,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;SAClG,MAAM,EAAE;IACV,SAAS,EAAE,GAAG;IACd,eAAe,EAAE,GAAG;IACpB,qBAAqB,EAAE,GAAG;IAC1B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;IACxD,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;IAClB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC;QACzB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;QACtF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;KAClD,CAAC;IACF,YAAY,EAAE,GAAG;IACjB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC;QAC5B,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC/C,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;KAChE,CAAC;IACF,gBAAgB,EAAE,GAAG;IACrB,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC;QAC/B,OAAO,EAAE,CAAC;aACR,MAAM,CAAC;YACP,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YAC9C,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACpE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE;SAC9B,CAAC;aACD,MAAM,EAAE;KACV,CAAC;IACF,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC;QAC1B,GAAG;QACH,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;QACtD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAC5D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;QACtD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAChE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QACvE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;KACvD,CAAC;IACF,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IACpC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;IACnD,YAAY,EAAE,GAAG;CACR,CAAA;AAGV,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B;QACC,aAAa;QACb,eAAe;QACf,MAAM;QACN,aAAa;QACb,KAAK;QACL,iIAAiI;KACjI;IACD;QACC,cAAc;QACd,gBAAgB;QAChB,QAAQ;QACR,eAAe;QACf,IAAI;QACJ,mLAAmL;KACnL;IACD;QACC,WAAW;QACX,aAAa;QACb,KAAK;QACL,YAAY;QACZ,KAAK;QACL,sDAAsD;KACtD;IACD;QACC,iBAAiB;QACjB,mBAAmB;QACnB,WAAW;QACX,kBAAkB;QAClB,KAAK;QACL,uIAAuI;KACvI;IACD;QACC,uBAAuB;QACvB,0BAA0B;QAC1B,kBAAkB;QAClB,wBAAwB;QACxB,KAAK;QACL,6cAA6c;KAC7c;IACD;QACC,YAAY;QACZ,cAAc;QACd,MAAM;QACN,aAAa;QACb,IAAI;QACJ,mHAAmH;KACnH;IACD;QACC,cAAc;QACd,gBAAgB;QAChB,QAAQ;QACR,eAAe;QACf,IAAI;QACJ,yEAAyE;KACzE;IACD;QACC,eAAe;QACf,iBAAiB;QACjB,SAAS;QACT,gBAAgB;QAChB,IAAI;QACJ,0GAA0G;KAC1G;IACD;QACC,eAAe;QACf,iBAAiB;QACjB,QAAQ;QACR,eAAe;QACf,KAAK;QACL,6LAA6L;KAC7L;IACD;QACC,cAAc;QACd,gBAAgB;QAChB,QAAQ;QACR,eAAe;QACf,KAAK;QACL,yRAAyR;KACzR;IACD;QACC,kBAAkB;QAClB,oBAAoB;QACpB,SAAS;QACT,mBAAmB;QACnB,IAAI;QACJ,qKAAqK;KACrK;IACD;QACC,kBAAkB;QAClB,oBAAoB;QACpB,SAAS;QACT,yBAAyB;QACzB,IAAI;QACJ,sGAAsG;KACtG;IACD;QACC,qBAAqB;QACrB,wBAAwB;QACxB,SAAS;QACT,4BAA4B;QAC5B,IAAI;QACJ,gJAAgJ;KAChJ;IACD;QACC,gBAAgB;QAChB,kBAAkB;QAClB,cAAc;QACd,uBAAuB;QACvB,IAAI;QACJ,8NAA8N;KAC9N;IACD;QACC,iBAAiB;QACjB,mBAAmB;QACnB,eAAe;QACf,wBAAwB;QACxB,IAAI;QACJ,2EAA2E;KAC3E;IACD;QACC,eAAe;QACf,iBAAiB;QACjB,QAAQ;QACR,sBAAsB;QACtB,IAAI;QACJ,wWAAwW;KACxW;IACD;QACC,cAAc;QACd,gBAAgB;QAChB,YAAY;QACZ,gCAAgC;QAChC,IAAI;QACJ,+KAA+K;KAC/K;CACQ,CAAA;AAEV,2GAA2G;AAC3G,MAAM,UAAU,YAAY,CAAC,MAAiB,EAAE,KAA8B;IAC7E,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAA;IAC/F,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;IAChC,OAAO,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;AACrC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
|
+
import { loadConfig } from './config.js';
|
|
3
|
+
type Config = Awaited<ReturnType<typeof loadConfig>>;
|
|
4
|
+
/** Stripe's universal "payment succeeds" test card. */
|
|
5
|
+
export declare const TEST_CARD = "4242 4242 4242 4242";
|
|
6
|
+
/** Byte-identical to shared-types/pay.ts canonicalJson (pinned by test): the signed form. */
|
|
7
|
+
export declare function canonicalJson(value: unknown): string;
|
|
8
|
+
export interface TestCycleIo {
|
|
9
|
+
/** Human progress and the checkout URL; stdout stays machine-readable. */
|
|
10
|
+
note: (message: string) => void;
|
|
11
|
+
sleep: (ms: number) => Promise<void>;
|
|
12
|
+
now: () => number;
|
|
13
|
+
env: Record<string, string | undefined>;
|
|
14
|
+
}
|
|
15
|
+
export interface TestCycleOptions {
|
|
16
|
+
appId: string;
|
|
17
|
+
sku?: string;
|
|
18
|
+
refundKeyEnv?: string;
|
|
19
|
+
timeoutMinutes: number;
|
|
20
|
+
pollMs: number;
|
|
21
|
+
}
|
|
22
|
+
export declare function runPayTestCycle(config: Config, options: TestCycleOptions, io: TestCycleIo): Promise<{
|
|
23
|
+
ok: boolean;
|
|
24
|
+
appId: string;
|
|
25
|
+
mode: "test";
|
|
26
|
+
satisfiesReleasePayment: boolean;
|
|
27
|
+
note: string;
|
|
28
|
+
cycle: {
|
|
29
|
+
checkoutId: string;
|
|
30
|
+
sku: string;
|
|
31
|
+
grantSignatureVerified: boolean;
|
|
32
|
+
grantStatus: string;
|
|
33
|
+
refund: "skipped" | "revoked";
|
|
34
|
+
revocationSignatureVerified: boolean | null;
|
|
35
|
+
};
|
|
36
|
+
ledger: unknown;
|
|
37
|
+
}>;
|
|
38
|
+
export declare function registerPayTestCycle(pay: Command): void;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=pay-test-cycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pay-test-cycle.d.ts","sourceRoot":"","sources":["../src/pay-test-cycle.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAGxC,KAAK,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAA;AAEpD,uDAAuD;AACvD,eAAO,MAAM,SAAS,wBAAwB,CAAA;AAG9C,6FAA6F;AAC7F,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOpD;AAWD,MAAM,WAAW,WAAW;IAC3B,0EAA0E;IAC1E,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,GAAG,EAAE,MAAM,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CACvC;AACD,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;CACd;AA6DD,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE,WAAW;;;;;;;;;;;gBAmEzE,SAAS,GAAG,SAAS;qCACL,OAAO,GAAG,IAAI;;;GAkCpD;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,QAyChD"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `extenshi pay test-cycle`: one Stripe TEST-mode purchase through the same
|
|
3
|
+
* public pay.* surface an installed extension uses, then the evidence the
|
|
4
|
+
* platform's payment ledger recorded for it.
|
|
5
|
+
*
|
|
6
|
+
* paySeller.get (pay.read) refuse unless the seller is livemode=false
|
|
7
|
+
* pay.getOffer checkout ready + entitlement verification key
|
|
8
|
+
* pay.createCheckout refuse unless Stripe returned a cs_test_ session
|
|
9
|
+
* (browser) the author or their agent pays with 4242 4242 4242 4242
|
|
10
|
+
* pay.claimSession the CLI acts as the installation; signature verified
|
|
11
|
+
* refund (optional) Stripe TEST secret from an env var, test keys only
|
|
12
|
+
* pay.getEntitlement revocation reaches the signed projection
|
|
13
|
+
* payApp.paymentEvidence what the ledger proves, per stage
|
|
14
|
+
*
|
|
15
|
+
* Nothing here can touch live money: the seller mode, the Checkout id and the
|
|
16
|
+
* refund key are each checked for test mode before they are used, and the
|
|
17
|
+
* Checkout URL is printed only after it has been confirmed to be a test session.
|
|
18
|
+
* Test-mode evidence never satisfies a release's payment requirement.
|
|
19
|
+
*/
|
|
20
|
+
import { createPublicKey, randomUUID, verify } from 'node:crypto';
|
|
21
|
+
import { loadConfig } from './config.js';
|
|
22
|
+
import { payRequest } from './pay.js';
|
|
23
|
+
/** Stripe's universal "payment succeeds" test card. */
|
|
24
|
+
export const TEST_CARD = '4242 4242 4242 4242';
|
|
25
|
+
const ED25519_SPKI_PREFIX = Buffer.from('302a300506032b6570032100', 'hex');
|
|
26
|
+
/** Byte-identical to shared-types/pay.ts canonicalJson (pinned by test): the signed form. */
|
|
27
|
+
export function canonicalJson(value) {
|
|
28
|
+
if (value === null || typeof value !== 'object')
|
|
29
|
+
return JSON.stringify(value);
|
|
30
|
+
if (Array.isArray(value))
|
|
31
|
+
return `[${value.map((item) => canonicalJson(item)).join(',')}]`;
|
|
32
|
+
const entries = Object.entries(value)
|
|
33
|
+
.filter(([, v]) => v !== undefined)
|
|
34
|
+
.sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0));
|
|
35
|
+
return `{${entries.map(([k, v]) => `${JSON.stringify(k)}:${canonicalJson(v)}`).join(',')}}`;
|
|
36
|
+
}
|
|
37
|
+
async function publicCall(bffUrl, procedure, input, mutation = false) {
|
|
38
|
+
const url = new URL(`${bffUrl}/api/trpc/${procedure}`);
|
|
39
|
+
const body = JSON.stringify(input);
|
|
40
|
+
if (!mutation)
|
|
41
|
+
url.searchParams.set('input', body);
|
|
42
|
+
const response = await fetch(url, {
|
|
43
|
+
method: mutation ? 'POST' : 'GET',
|
|
44
|
+
headers: { 'content-type': 'application/json' },
|
|
45
|
+
body: mutation ? body : undefined,
|
|
46
|
+
signal: AbortSignal.timeout(30_000),
|
|
47
|
+
}).catch(() => {
|
|
48
|
+
throw new Error(`${procedure} unreachable.`);
|
|
49
|
+
});
|
|
50
|
+
const envelope = (await response.json().catch(() => null));
|
|
51
|
+
// Never echo server error bodies: provider messages may carry account data.
|
|
52
|
+
if (!response.ok || !envelope?.result)
|
|
53
|
+
throw new Error(`${procedure} failed (${response.status}).`);
|
|
54
|
+
return envelope.result.data;
|
|
55
|
+
}
|
|
56
|
+
function verifySigned(entitlement, publicKeyBase64) {
|
|
57
|
+
if (entitlement.alg !== 'ed25519' || !entitlement.signature)
|
|
58
|
+
return false;
|
|
59
|
+
const raw = Buffer.from(publicKeyBase64, 'base64');
|
|
60
|
+
if (raw.length !== 32)
|
|
61
|
+
return false;
|
|
62
|
+
const key = createPublicKey({ key: Buffer.concat([ED25519_SPKI_PREFIX, raw]), format: 'der', type: 'spki' });
|
|
63
|
+
return verify(null, Buffer.from(canonicalJson(entitlement.payload)), key, Buffer.from(entitlement.signature, 'base64'));
|
|
64
|
+
}
|
|
65
|
+
const statusOf = (e, sku) => e.payload.entitlements.find((item) => item.sku === sku)?.status ?? 'none';
|
|
66
|
+
async function refundTestCharge(key, providerSessionId) {
|
|
67
|
+
const auth = { Authorization: `Bearer ${key}` };
|
|
68
|
+
const session = await fetch(`https://api.stripe.com/v1/checkout/sessions/${encodeURIComponent(providerSessionId)}`, { headers: auth, signal: AbortSignal.timeout(30_000) });
|
|
69
|
+
if (!session.ok)
|
|
70
|
+
throw new Error(`Stripe session lookup failed (${session.status}).`);
|
|
71
|
+
const body = (await session.json());
|
|
72
|
+
if (body.livemode !== false)
|
|
73
|
+
throw new Error('Refusing to refund a Checkout session that is not in test mode.');
|
|
74
|
+
if (!body.payment_intent)
|
|
75
|
+
throw new Error('The test Checkout session has no payment to refund.');
|
|
76
|
+
const refund = await fetch('https://api.stripe.com/v1/refunds', {
|
|
77
|
+
method: 'POST',
|
|
78
|
+
headers: { ...auth, 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
79
|
+
body: new URLSearchParams({ payment_intent: body.payment_intent }),
|
|
80
|
+
signal: AbortSignal.timeout(30_000),
|
|
81
|
+
});
|
|
82
|
+
if (!refund.ok)
|
|
83
|
+
throw new Error(`Stripe test refund failed (${refund.status}).`);
|
|
84
|
+
}
|
|
85
|
+
export async function runPayTestCycle(config, options, io) {
|
|
86
|
+
// Resolve and vet the refund key before any checkout exists.
|
|
87
|
+
const refundKey = options.refundKeyEnv ? io.env[options.refundKeyEnv] : undefined;
|
|
88
|
+
if (options.refundKeyEnv && !refundKey)
|
|
89
|
+
throw new Error(`${options.refundKeyEnv} is not set.`);
|
|
90
|
+
if (refundKey && !/^(sk|rk)_test_/.test(refundKey))
|
|
91
|
+
throw new Error(`${options.refundKeyEnv} is not a Stripe test-mode key; refusing to run.`);
|
|
92
|
+
const current = (await payRequest(config, 'getPaySeller', { appId: options.appId }));
|
|
93
|
+
if (!current.seller)
|
|
94
|
+
throw new Error('No payment provider is connected to this Pay application.');
|
|
95
|
+
if (current.seller.livemode !== false)
|
|
96
|
+
throw new Error('Refusing: this Pay application sells in live mode (or the backend does not report its mode). ' +
|
|
97
|
+
'test-cycle only runs against a test-mode seller.');
|
|
98
|
+
const active = (current.offers ?? []).filter((o) => o.active && o.providerPriceRef);
|
|
99
|
+
const sku = options.sku ?? (active.length === 1 ? active[0].sku : undefined);
|
|
100
|
+
if (!sku)
|
|
101
|
+
throw new Error(active.length ? 'Several offers are active; choose one with --sku.' : 'No active synced offer to buy.');
|
|
102
|
+
const publishableKey = current.seller.publishableKey;
|
|
103
|
+
const offer = await publicCall(config.bffUrl, 'pay.getOffer', { publishableKey });
|
|
104
|
+
if (!offer.checkoutEnabled)
|
|
105
|
+
throw new Error('Checkout is not enabled yet; read `extenshi pay readiness`.');
|
|
106
|
+
if (!offer.entitlementPublicKey)
|
|
107
|
+
throw new Error('The backend does not sign entitlements; nothing to verify.');
|
|
108
|
+
const endUserRef = randomUUID();
|
|
109
|
+
const created = await publicCall(config.bffUrl, 'pay.createCheckout', { publishableKey, sku, endUserRef }, true);
|
|
110
|
+
const checkoutUrl = new URL(created.url);
|
|
111
|
+
const providerSessionId = checkoutUrl.pathname.match(/\bcs_test_[A-Za-z0-9]+\b/)?.[0];
|
|
112
|
+
if (checkoutUrl.origin !== 'https://checkout.stripe.com' || !providerSessionId)
|
|
113
|
+
throw new Error('Refusing: the provider did not return a Stripe test-mode Checkout session.');
|
|
114
|
+
io.note(`Open this Stripe TEST checkout and pay with card ${TEST_CARD}, any future expiry and any CVC:\n${created.url}`);
|
|
115
|
+
const deadline = io.now() + options.timeoutMinutes * 60_000;
|
|
116
|
+
let claim = { state: 'pending' };
|
|
117
|
+
while (claim.state === 'pending') {
|
|
118
|
+
if (io.now() > deadline)
|
|
119
|
+
throw new Error('Timed out waiting for the payment webhook.');
|
|
120
|
+
await io.sleep(options.pollMs);
|
|
121
|
+
claim = await publicCall(config.bffUrl, 'pay.claimSession', {
|
|
122
|
+
publishableKey,
|
|
123
|
+
sessionId: created.sessionId,
|
|
124
|
+
endUserRef,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
if (claim.state !== 'complete')
|
|
128
|
+
throw new Error(`Checkout ended as ${claim.state}.`);
|
|
129
|
+
const granted = claim.entitlement;
|
|
130
|
+
const cycle = {
|
|
131
|
+
checkoutId: created.sessionId,
|
|
132
|
+
sku,
|
|
133
|
+
// The CLI played the installation: it held the endUserRef and claimed the grant.
|
|
134
|
+
grantSignatureVerified: verifySigned(granted, offer.entitlementPublicKey),
|
|
135
|
+
grantStatus: statusOf(granted, sku),
|
|
136
|
+
refund: 'skipped',
|
|
137
|
+
revocationSignatureVerified: null,
|
|
138
|
+
};
|
|
139
|
+
if (granted.payload.endUserRef !== endUserRef)
|
|
140
|
+
throw new Error('The grant names another installation.');
|
|
141
|
+
if (refundKey) {
|
|
142
|
+
io.note('Refunding the test charge…');
|
|
143
|
+
await refundTestCharge(refundKey, providerSessionId);
|
|
144
|
+
let revoked = null;
|
|
145
|
+
while (!revoked) {
|
|
146
|
+
if (io.now() > deadline)
|
|
147
|
+
throw new Error('Timed out waiting for the refund to revoke access.');
|
|
148
|
+
await io.sleep(options.pollMs);
|
|
149
|
+
const e = await publicCall(config.bffUrl, 'pay.getEntitlement', {
|
|
150
|
+
publishableKey,
|
|
151
|
+
endUserRef,
|
|
152
|
+
});
|
|
153
|
+
if (!['active', 'grace'].includes(statusOf(e, sku)))
|
|
154
|
+
revoked = e;
|
|
155
|
+
}
|
|
156
|
+
cycle.refund = 'revoked';
|
|
157
|
+
cycle.revocationSignatureVerified = verifySigned(revoked, offer.entitlementPublicKey);
|
|
158
|
+
}
|
|
159
|
+
const ledger = await payRequest(config, 'getPayPaymentEvidence', { appId: options.appId });
|
|
160
|
+
return {
|
|
161
|
+
ok: cycle.grantSignatureVerified &&
|
|
162
|
+
cycle.grantStatus === 'active' &&
|
|
163
|
+
(cycle.refund === 'skipped' || cycle.revocationSignatureVerified === true),
|
|
164
|
+
appId: options.appId,
|
|
165
|
+
mode: 'test',
|
|
166
|
+
satisfiesReleasePayment: false,
|
|
167
|
+
note: 'Test-mode purchases are recorded and shown; they do not satisfy a release payment requirement.',
|
|
168
|
+
cycle,
|
|
169
|
+
ledger,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
export function registerPayTestCycle(pay) {
|
|
173
|
+
pay
|
|
174
|
+
.command('test-cycle')
|
|
175
|
+
.description('Run one Stripe TEST-mode purchase against a test-mode Pay application and print the evidence its payment ledger recorded. Refuses live sellers.')
|
|
176
|
+
.requiredOption('--app <appId>', 'Pay application with a test-mode (livemode=false) seller')
|
|
177
|
+
.option('--sku <sku>', 'Offer to buy when several are active')
|
|
178
|
+
.option('--refund-key-env <name>', 'Environment variable holding the Stripe TEST secret of the account that owns the charge; refunds and checks revocation')
|
|
179
|
+
.option('--timeout-minutes <n>', 'How long to wait for payment and webhooks', '10')
|
|
180
|
+
.action(async (options) => {
|
|
181
|
+
try {
|
|
182
|
+
const timeoutMinutes = Number(options.timeoutMinutes);
|
|
183
|
+
if (!Number.isFinite(timeoutMinutes) || timeoutMinutes < 1 || timeoutMinutes > 30)
|
|
184
|
+
throw new Error('--timeout-minutes must be between 1 and 30.');
|
|
185
|
+
const result = await runPayTestCycle(await loadConfig(), {
|
|
186
|
+
appId: options.app,
|
|
187
|
+
sku: options.sku,
|
|
188
|
+
refundKeyEnv: options.refundKeyEnv,
|
|
189
|
+
timeoutMinutes,
|
|
190
|
+
pollMs: 3_000,
|
|
191
|
+
}, {
|
|
192
|
+
note: (message) => console.error(message),
|
|
193
|
+
sleep: (ms) => new Promise((resolve) => setTimeout(resolve, ms)),
|
|
194
|
+
now: () => Date.now(),
|
|
195
|
+
env: process.env,
|
|
196
|
+
});
|
|
197
|
+
console.log(JSON.stringify(result, null, 2));
|
|
198
|
+
if (!result.ok)
|
|
199
|
+
process.exitCode = 1;
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
console.error(error instanceof Error ? error.message : 'Pay test cycle failed.');
|
|
203
|
+
process.exitCode = 1;
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=pay-test-cycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pay-test-cycle.js","sourceRoot":"","sources":["../src/pay-test-cycle.ts"],"names":[],"mappings":"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"}
|
package/dist/pay.d.ts
CHANGED
|
@@ -13,6 +13,6 @@ export declare function exportPayFile(config: Config, input: {
|
|
|
13
13
|
rows: number;
|
|
14
14
|
pages: number;
|
|
15
15
|
}>;
|
|
16
|
-
export declare function registerPayCommands(program: Command):
|
|
16
|
+
export declare function registerPayCommands(program: Command): Command;
|
|
17
17
|
export {};
|
|
18
18
|
//# sourceMappingURL=pay.d.ts.map
|
package/dist/pay.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pay.d.ts","sourceRoot":"","sources":["../src/pay.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAkB,KAAK,SAAS,EAA4B,MAAM,mBAAmB,CAAA;AAE5F,KAAK,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAA;AACpD,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAwCvG;AAED,2FAA2F;AAC3F,wBAAsB,aAAa,CAClC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;IACN,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,QAAQ,GAAG,UAAU,GAAG,eAAe,GAAG,cAAc,GAAG,WAAW,CAAA;IAChF,KAAK,CAAC,EAAE,MAAM,CAAA;CACd,EACD,IAAI,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAwCxD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"pay.d.ts","sourceRoot":"","sources":["../src/pay.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAkB,KAAK,SAAS,EAA4B,MAAM,mBAAmB,CAAA;AAE5F,KAAK,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAA;AACpD,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAwCvG;AAED,2FAA2F;AAC3F,wBAAsB,aAAa,CAClC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;IACN,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,QAAQ,GAAG,UAAU,GAAG,eAAe,GAAG,cAAc,GAAG,WAAW,CAAA;IAChF,KAAK,CAAC,EAAE,MAAM,CAAA;CACd,EACD,IAAI,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAwCxD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAoD7D"}
|
package/dist/pay.js
CHANGED
package/dist/pay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../src/pay.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,cAAc,EAAkB,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAG5F,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAc,EAAE,MAAiB,EAAE,QAAiB;IACpF,IAAI,CAAC,MAAM,CAAC,MAAM;QACjB,MAAM,IAAI,KAAK,CACd,6FAA6F,CAC7F,CAAA;IACF,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAChD,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,CAAA;IAChE,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IACxD,MAAM,CAAC,EAAE,AAAD,EAAG,AAAD,EAAG,SAAS,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAA;IAC7C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,aAAa,SAAS,EAAE,CAAC,CAAA;IAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;IACxD,IAAI,CAAC,QAAQ;QAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAClD,IAAI,QAAkB,CAAA;IACtB,IAAI,CAAC;QACJ,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;YACjC,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YACzF,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACjC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SACnC,CAAC,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAA;IAC/F,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAGjD,CAAA;IACR,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAC1D,MAAM,MAAM,GACX,QAAQ,CAAC,MAAM,KAAK,GAAG;YACtB,CAAC,CAAC,4GAA4G;YAC9G,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG;gBACxB,CAAC,CAAC,kGAAkG;gBACpG,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG;oBACxB,CAAC,CAAC,mEAAmE;oBACrE,CAAC,CAAC,gEAAgE,CAAA;QACtE,sEAAsE;QACtE,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,CAAC,MAAM,MAAM,MAAM,EAAE,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAA;AAC5B,CAAC;AAED,2FAA2F;AAC3F,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,MAAc,EACd,KAIC,EACD,IAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAC5C,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,IAAI,CAAC;QACJ,IAAI,MAA0B,CAAA;QAC9B,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;QAC9B,GAAG,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,MAAM,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,CAM5E,CAAA;YACD,IACC,IAAI,CAAC,aAAa,KAAK,CAAC;gBACxB,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;gBAC1B,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;gBAChC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBACzB,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC;gBAElE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;YACrE,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACnD,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;YACxB,KAAK,IAAI,CAAC,CAAA;YACV,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,SAAS,CAAA;YACrC,IAAI,MAAM,EAAE,CAAC;gBACZ,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;gBAC/F,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACjB,CAAC;QACF,CAAC,QAAQ,MAAM,EAAC;QAChB,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QACnB,QAAQ,GAAG,IAAI,CAAA;QACf,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IAC7B,CAAC;YAAS,CAAC;QACV,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QACpB,IAAI,CAAC,QAAQ;YAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/C,CAAC;AACF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IACnD,MAAM,GAAG,GAAG,OAAO;SACjB,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,mFAAmF,CAAC,CAAA;IAClG,KAAK,MAAM,CAAC,MAAM,EAAE,AAAD,EAAG,OAAO,EAAE,AAAD,EAAG,QAAQ,EAAE,WAAW,CAAC,IAAI,cAAc,EAAE,CAAC;QAC3E,MAAM,MAAM,GAAG,GAAG;aAChB,OAAO,CAAC,OAAO,CAAC;aAChB,WAAW,CAAC,WAAW,CAAC;aACxB,MAAM,CAAC,gBAAgB,EAAE,kEAAkE,EAAE,IAAI,CAAC;aAClG,MAAM,CAAC,qBAAqB,EAAE,qDAAqD,CAAC,CAAA;QACtF,IAAI,QAAQ;YAAE,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,wDAAwD,CAAC,CAAA;QAChG,IAAI,MAAM,KAAK,eAAe;YAC7B,MAAM,CAAC,MAAM,CACZ,iBAAiB,EACjB,0EAA0E,CAC1E,CAAA;QACF,MAAM,CAAC,MAAM,CACZ,KAAK,EAAE,OAAgF,EAAE,EAAE;YAC1F,IAAI,CAAC;gBACJ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACrB,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAC7E,CAAA;gBACD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC3C,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK;oBAC7B,MAAM,IAAI,KAAK,CACd,wFAAwF,CACxF,CAAA;gBACF,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;gBACjC,IAAI,MAAM,KAAK,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;oBAClD,MAAM,SAAS,GAAG,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;oBACvD,IAAI,SAAS,CAAC,MAAM;wBAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;oBACjF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;gBAC7F,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;gBAC9E,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,8EAA8E;gBAC9E,OAAO,CAAC,KAAK,CACZ,KAAK,YAAY,WAAW;oBAC3B,CAAC,CAAC,qBAAqB;oBACvB,CAAC,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;wBACpD,CAAC,CAAC,sEAAsE;wBACxE,CAAC,CAAC,KAAK,YAAY,KAAK;4BACvB,CAAC,CAAC,KAAK,CAAC,OAAO;4BACf,CAAC,CAAC,qBAAqB,CAC1B,CAAA;gBACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;YACrB,CAAC;QACF,CAAC,CACD,CAAA;IACF,CAAC;
|
|
1
|
+
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../src/pay.ts"],"names":[],"mappings":"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"}
|
package/dist/project.d.ts
CHANGED
|
@@ -6,12 +6,50 @@ export declare class ProjectApiError extends Error {
|
|
|
6
6
|
readonly category: string;
|
|
7
7
|
readonly status: number;
|
|
8
8
|
readonly code?: string | undefined;
|
|
9
|
-
|
|
9
|
+
/** The server's own reason for a 4xx refusal (e.g. why an image was refused). */
|
|
10
|
+
readonly detail?: string | undefined;
|
|
11
|
+
constructor(category: string, status: number, code?: string | undefined,
|
|
12
|
+
/** The server's own reason for a 4xx refusal (e.g. why an image was refused). */
|
|
13
|
+
detail?: string | undefined);
|
|
10
14
|
}
|
|
11
15
|
export declare function projectRequest(config: Awaited<ReturnType<typeof loadConfig>>, method: string, input?: unknown, mutation?: boolean): Promise<Json>;
|
|
12
16
|
export declare const metadataDigest: (value: unknown) => string;
|
|
13
17
|
export declare function atomicJson(file: string, value: unknown): Promise<void>;
|
|
14
18
|
export declare function localProvenance(cwd: string): Promise<Json>;
|
|
19
|
+
/** What a command knows about one piece of evidence; the project, key and provenance are added here. */
|
|
20
|
+
export interface EvidenceRecord {
|
|
21
|
+
kind: string;
|
|
22
|
+
browser: string;
|
|
23
|
+
locale?: string;
|
|
24
|
+
artifactDigest: string;
|
|
25
|
+
inputDigest: string;
|
|
26
|
+
status: 'passed' | 'failed';
|
|
27
|
+
/** Finding counts + check ids behind the status (additive contract field). */
|
|
28
|
+
summary?: {
|
|
29
|
+
findingCount: number;
|
|
30
|
+
blockingCount: number;
|
|
31
|
+
findingIds: string[];
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export declare function evidenceSummarySupported(config: Awaited<ReturnType<typeof loadConfig>>): Promise<boolean>;
|
|
35
|
+
/** Test hook: forget the cached capability answer. */
|
|
36
|
+
export declare function resetEvidenceSummarySupport(): void;
|
|
37
|
+
/**
|
|
38
|
+
* Record evidence for the project bound in `cwd` (`extenshi project bind`),
|
|
39
|
+
* exactly as `evidence push` does — same schema, queue and flush — but from the
|
|
40
|
+
* command that produced the result, so no report file is hand-authored.
|
|
41
|
+
*
|
|
42
|
+
* Readiness counts evidence whose artifact and input digests match the prepared
|
|
43
|
+
* release; provenance (observed here, after the command wrote its outputs)
|
|
44
|
+
* records which commit produced it. Source is always `local` — CI evidence
|
|
45
|
+
* arrives only through the verified ingest.
|
|
46
|
+
*/
|
|
47
|
+
export declare function recordAgentEvidence(cwd: string, records: EvidenceRecord[]): Promise<{
|
|
48
|
+
status: 'recorded' | 'pending-sync';
|
|
49
|
+
projectId: string;
|
|
50
|
+
records: number;
|
|
51
|
+
summaries: boolean;
|
|
52
|
+
}>;
|
|
15
53
|
export declare function registerProjectCommands(program: Command): void;
|
|
16
54
|
export {};
|
|
17
55
|
//# sourceMappingURL=project.d.ts.map
|
package/dist/project.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AAAA,2FAA2F;
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAkB3F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAKxC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAE/B,qBAAa,eAAgB,SAAQ,KAAK;IAExC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IACtB,iFAAiF;IACjF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;gBAJf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,YAAA;IACtB,iFAAiF;IACxE,MAAM,CAAC,EAAE,MAAM,YAAA;CAMzB;AAeD,wBAAsB,cAAc,CACnC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,EAC9C,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,OAAY,EACnB,QAAQ,UAAQ,GACd,OAAO,CAAC,IAAI,CAAC,CAkDf;AAED,eAAO,MAAM,cAAc,4BAAe,CAAA;AAK1C,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,iBAe5D;AACD,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyDhE;AAoGD,wGAAwG;AACxG,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC3B,8EAA8E;IAC9E,OAAO,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAC/E;AAUD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAMzG;AACD,sDAAsD;AACtD,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AAED;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CACxC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,cAAc,EAAE,GACvB,OAAO,CAAC;IAAE,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAkB1G;AAoCD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,QAyoBvD"}
|