palbase 0.6.2 → 0.8.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/dist/ai/index.js +2 -14
- package/dist/backend/engine.js +2 -2
- package/dist/backend/env.js +1 -1
- package/dist/backend/index.js +9 -9
- package/dist/backend/stack.js +1 -1
- package/dist/backend/test.js +2 -2
- package/dist/chunks/5VTGMNPL.js +20 -0
- package/dist/chunks/{SXH5AIQX.js → BO5KR2EQ.js} +2 -2
- package/dist/chunks/{AYY4J3B2.js → BRBCWPR3.js} +1 -1
- package/dist/chunks/DB3SIBKB.js +2 -0
- package/dist/chunks/EGNEXFTZ.js +2 -0
- package/dist/chunks/{VP7V7YRH.js → FZ3MQOVA.js} +2 -2
- package/dist/chunks/{A3CDCPXX.js → JSJVV43D.js} +1 -1
- package/dist/chunks/K6RRNI23.js +4 -0
- package/dist/chunks/{SUX2BJG4.js → KDWDPSL2.js} +1 -1
- package/dist/chunks/P4Z5E6ZI.js +2 -0
- package/dist/chunks/PDOHT46N.js +2 -0
- package/dist/chunks/PGPQGKH2.js +18 -0
- package/dist/chunks/{DRTZ33XF.js → RBA6V3UO.js} +2 -2
- package/dist/chunks/{KLANM6M6.js → RO5Y5YU4.js} +1 -1
- package/dist/chunks/{53FS342F.js → TUGRIOFX.js} +2 -2
- package/dist/chunks/WEI32SAJ.js +13 -0
- package/dist/chunks/{GVFZM4BI.js → WINBISC2.js} +3 -3
- package/dist/chunks/Z5JVQNAZ.js +2 -0
- package/dist/cli.js +140 -139
- package/dist/refuse/ai.js +1 -1
- package/dist/refuse/backend.js +1 -1
- package/dist/refuse/server.js +1 -1
- package/dist/server/index.js +2 -2
- package/dist/server/testing.js +2 -2
- package/dist/web/index.js +2 -2
- package/dist/web/palbe.js +2 -2
- package/dist/web/paywall.js +2 -2
- package/dist/web/ssr.js +2 -2
- package/dist/web/vite.js +2 -2
- package/package.json +2 -2
- package/types/ai/src/ai.d.ts +46 -19
- package/types/ai/src/chats.d.ts +478 -18
- package/types/ai/src/index.d.ts +4 -4
- package/types/ai/src/tools.d.ts +161 -29
- package/types/backend/src/bootstrap.d.ts +8 -0
- package/types/backend/src/container.d.ts +11 -2
- package/types/backend/src/database.d.ts +17 -2
- package/types/backend/src/engine.d.ts +3 -4
- package/types/backend/src/gateways.d.ts +269 -0
- package/types/backend/src/index.d.ts +3 -2
- package/types/backend/src/openapi.d.ts +3 -6
- package/types/backend/src/runtime.d.ts +51 -2
- package/types/backend/src/testing/unit.d.ts +3 -1
- package/types/internal/src/chat.d.ts +168 -35
- package/types/internal/src/modules/ai.d.ts +1826 -545
- package/types/internal/src/modules/auth.d.ts +14 -2
- package/types/internal/src/modules/events.d.ts +2 -2
- package/types/internal/src/modules/machines.d.ts +57 -1
- package/types/internal/src/modules/notify.d.ts +6 -6
- package/types/internal/src/modules/purchases.d.ts +357 -13
- package/types/internal/src/modules/realtime.d.ts +45 -1
- package/types/internal/src/modules/stores.d.ts +259 -22
- package/types/internal/src/transport.d.ts +5 -0
- package/types/server/src/auth/jwt.d.ts +1 -6
- package/types/web/src/auth.d.ts +15 -4
- package/types/web/src/backends.d.ts +20 -13
- package/types/web/src/chat.d.ts +329 -0
- package/types/web/src/client.d.ts +28 -3
- package/types/web/src/gateways.d.ts +90 -0
- package/types/web/src/index.d.ts +5 -4
- package/types/web/src/session.d.ts +11 -1
- package/types/web/src/socket.d.ts +18 -2
- package/types/web/src/voice.d.ts +36 -0
- package/dist/chunks/2RG3I7LX.js +0 -6
- package/dist/chunks/A76UZBAF.js +0 -2
- package/dist/chunks/AD5LBZAB.js +0 -4
- package/dist/chunks/DRGYTL6T.js +0 -20
- package/dist/chunks/IVEAUFGE.js +0 -13
- package/dist/chunks/IYCW6PWG.js +0 -2
- package/dist/chunks/KL7FIRII.js +0 -2
- package/dist/chunks/U4OZ4HOF.js +0 -2
- package/types/backend/src/channels.d.ts +0 -81
- package/types/backend/src/rooms.d.ts +0 -178
- package/types/web/src/ai.d.ts +0 -224
- package/types/web/src/rooms.d.ts +0 -61
|
@@ -59,6 +59,58 @@ export type AppleAccount = {
|
|
|
59
59
|
status?: "active" | "refused";
|
|
60
60
|
xcode_certificate?: XcodeCertificate;
|
|
61
61
|
};
|
|
62
|
+
/**
|
|
63
|
+
* The environment's Google Play purchases.
|
|
64
|
+
*/
|
|
65
|
+
export type GoogleAccount = {
|
|
66
|
+
/**
|
|
67
|
+
* What the person has to do next.
|
|
68
|
+
*/
|
|
69
|
+
action?: string;
|
|
70
|
+
/**
|
|
71
|
+
* The registry's id of the Android app purchases are made in.
|
|
72
|
+
*/
|
|
73
|
+
app_id?: string;
|
|
74
|
+
/**
|
|
75
|
+
* Google Play purchases are connected for one of the environment's Android apps.
|
|
76
|
+
*/
|
|
77
|
+
connected: boolean;
|
|
78
|
+
connected_at?: string;
|
|
79
|
+
connected_by?: string;
|
|
80
|
+
/**
|
|
81
|
+
* Where Pub/Sub pushes the notifications for this environment.
|
|
82
|
+
*/
|
|
83
|
+
notification_url?: string;
|
|
84
|
+
/**
|
|
85
|
+
* Its package name.
|
|
86
|
+
*/
|
|
87
|
+
package_name?: string;
|
|
88
|
+
/**
|
|
89
|
+
* What Play last let the connection's account reach (the stores module's check).
|
|
90
|
+
*/
|
|
91
|
+
play_status?: "invited" | "active" | "refused";
|
|
92
|
+
/**
|
|
93
|
+
* The project's Play connection's account (the stores module made it; its Play Console invites it): the account purchases are read and acknowledged as. Absent while the project has no Play connection.
|
|
94
|
+
*/
|
|
95
|
+
service_account?: string;
|
|
96
|
+
/**
|
|
97
|
+
* The topic the app's Play Console names for real-time developer notifications (Monetize with Play › Monetization setup), in Palbase's Cloud project: Play's own account may publish to it. Every environment of the project selling in the app reads it.
|
|
98
|
+
*/
|
|
99
|
+
topic?: string;
|
|
100
|
+
/**
|
|
101
|
+
* When a test notification arrived (Play Console's Send test notification): the topic is set.
|
|
102
|
+
*/
|
|
103
|
+
verified_at?: string;
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* The Android app Google Play purchases are made in.
|
|
107
|
+
*/
|
|
108
|
+
export type GoogleConnectRequest = {
|
|
109
|
+
/**
|
|
110
|
+
* One of the environment's Android apps (the registry's id).
|
|
111
|
+
*/
|
|
112
|
+
app_id: string;
|
|
113
|
+
};
|
|
62
114
|
/**
|
|
63
115
|
* What names the customer to the App Store without saying who they are.
|
|
64
116
|
*/
|
|
@@ -68,6 +120,15 @@ export type AppleAccountToken = {
|
|
|
68
120
|
*/
|
|
69
121
|
app_account_token: string;
|
|
70
122
|
};
|
|
123
|
+
/**
|
|
124
|
+
* What names the customer to Google Play without saying who they are.
|
|
125
|
+
*/
|
|
126
|
+
export type GoogleAccountID = {
|
|
127
|
+
/**
|
|
128
|
+
* The customer's, for the connected app: pass it to the billing flow (BillingFlowParams.Builder.setObfuscatedAccountId). Play's answers carry it back, and the purchase is the customer's before their app reports it.
|
|
129
|
+
*/
|
|
130
|
+
obfuscated_account_id: string;
|
|
131
|
+
};
|
|
71
132
|
/**
|
|
72
133
|
* What the stores module answered of a plan's App Store part once it was confirmed: absent until it answers.
|
|
73
134
|
*/
|
|
@@ -124,6 +185,12 @@ export type AppleNotification = {
|
|
|
124
185
|
signedPayload: string;
|
|
125
186
|
[key: string]: unknown;
|
|
126
187
|
};
|
|
188
|
+
/**
|
|
189
|
+
* Pub/Sub's push of a Play real-time developer notification, as Pub/Sub sends it: its message's data is the notification (DeveloperNotification, base64), its messageId the push's own.
|
|
190
|
+
*/
|
|
191
|
+
export type GooglePush = {
|
|
192
|
+
[key: string]: unknown;
|
|
193
|
+
};
|
|
127
194
|
/**
|
|
128
195
|
* Where the App Store reports the app's purchases, and whether it does.
|
|
129
196
|
*/
|
|
@@ -205,6 +272,47 @@ export type AppleStepResult = {
|
|
|
205
272
|
*/
|
|
206
273
|
store_id: string;
|
|
207
274
|
};
|
|
275
|
+
/**
|
|
276
|
+
* What the stores module answered of a plan's Google Play part, once it wrote it (pending until then): Play's state, step by step.
|
|
277
|
+
*/
|
|
278
|
+
export type GoogleCatalogResult = {
|
|
279
|
+
plan_id: string;
|
|
280
|
+
/**
|
|
281
|
+
* The app it was written for.
|
|
282
|
+
*/
|
|
283
|
+
package_name: string;
|
|
284
|
+
/**
|
|
285
|
+
* The stores module has not answered yet.
|
|
286
|
+
*/
|
|
287
|
+
pending?: boolean;
|
|
288
|
+
/**
|
|
289
|
+
* Every step was written.
|
|
290
|
+
*/
|
|
291
|
+
ok: boolean;
|
|
292
|
+
/**
|
|
293
|
+
* Why it was not, in Play's words.
|
|
294
|
+
*/
|
|
295
|
+
error?: string;
|
|
296
|
+
steps: GoogleStepResult[];
|
|
297
|
+
};
|
|
298
|
+
/**
|
|
299
|
+
* A step of the Google Play part as Play holds it now.
|
|
300
|
+
*/
|
|
301
|
+
export type GoogleStepResult = {
|
|
302
|
+
op: string;
|
|
303
|
+
/**
|
|
304
|
+
* The product's id at Play.
|
|
305
|
+
*/
|
|
306
|
+
store_id: string;
|
|
307
|
+
/**
|
|
308
|
+
* Its state at Play (a base plan's: ACTIVE, DRAFT; a one-time product's).
|
|
309
|
+
*/
|
|
310
|
+
state?: string;
|
|
311
|
+
/**
|
|
312
|
+
* Why it was not written, in Play's words.
|
|
313
|
+
*/
|
|
314
|
+
error?: string;
|
|
315
|
+
};
|
|
208
316
|
/**
|
|
209
317
|
* What StoreKit gave the customer's app.
|
|
210
318
|
*/
|
|
@@ -222,6 +330,36 @@ export type AppleTransactionReport = {
|
|
|
222
330
|
*/
|
|
223
331
|
transactions: string[];
|
|
224
332
|
};
|
|
333
|
+
/**
|
|
334
|
+
* What Play Billing gave the customer's app.
|
|
335
|
+
*/
|
|
336
|
+
export type GooglePurchaseReport = {
|
|
337
|
+
/**
|
|
338
|
+
* The purchases: one just made (PurchasesUpdatedListener), or every one queryPurchasesAsync returns on a restore.
|
|
339
|
+
*/
|
|
340
|
+
purchases: GoogleReported[];
|
|
341
|
+
/**
|
|
342
|
+
* The customer asked to restore their purchases: each moves to them from the customer that has it — never an account's by a guest's restore, and one purchase 3 times in 30 days at most; one that stays is answered (403, 409) once the rest is applied. Without it, a purchase another customer has stays theirs.
|
|
343
|
+
*/
|
|
344
|
+
restore?: boolean;
|
|
345
|
+
};
|
|
346
|
+
/**
|
|
347
|
+
* A purchase Play Billing gave the app.
|
|
348
|
+
*/
|
|
349
|
+
export type GoogleReported = {
|
|
350
|
+
/**
|
|
351
|
+
* Its product (Purchase.getProducts()).
|
|
352
|
+
*/
|
|
353
|
+
product_id: string;
|
|
354
|
+
/**
|
|
355
|
+
* Its token (Purchase.getPurchaseToken()).
|
|
356
|
+
*/
|
|
357
|
+
purchase_token: string;
|
|
358
|
+
/**
|
|
359
|
+
* It is a subscription's (ProductType.SUBS); a one-time product's otherwise.
|
|
360
|
+
*/
|
|
361
|
+
subscription?: boolean;
|
|
362
|
+
};
|
|
225
363
|
/**
|
|
226
364
|
* What the Stripe account holds of the catalog once a plan was written, read back from Stripe; null maps when the plan failed before reading it.
|
|
227
365
|
*/
|
|
@@ -295,7 +433,7 @@ export type Catalog = {
|
|
|
295
433
|
products: Product[];
|
|
296
434
|
};
|
|
297
435
|
/**
|
|
298
|
-
* purchases.catalog.applied: a plan's Stripe part was written (applied) or failed; or the stores module answered of its App Store part.
|
|
436
|
+
* purchases.catalog.applied: a plan's Stripe part was written (applied) or failed; or the stores module answered of its App Store or Google Play part.
|
|
299
437
|
*/
|
|
300
438
|
export type CatalogAppliedEvent = {
|
|
301
439
|
/**
|
|
@@ -313,7 +451,7 @@ export type CatalogAppliedEvent = {
|
|
|
313
451
|
/**
|
|
314
452
|
* The store written.
|
|
315
453
|
*/
|
|
316
|
-
store: "stripe" | "app_store";
|
|
454
|
+
store: "stripe" | "app_store" | "play_store";
|
|
317
455
|
};
|
|
318
456
|
/**
|
|
319
457
|
* purchases.catalog.changed: a new revision of the catalog was saved; plans of older ones went stale.
|
|
@@ -417,6 +555,7 @@ export type CatalogPlan = {
|
|
|
417
555
|
*/
|
|
418
556
|
error?: string;
|
|
419
557
|
google: StorePlan;
|
|
558
|
+
google_result?: GoogleCatalogResult;
|
|
420
559
|
/**
|
|
421
560
|
* The plan's id.
|
|
422
561
|
*/
|
|
@@ -654,7 +793,7 @@ export type ChartDefinition = {
|
|
|
654
793
|
window: boolean;
|
|
655
794
|
};
|
|
656
795
|
/**
|
|
657
|
-
* What a chart is segmented or filtered by.
|
|
796
|
+
* What a chart is segmented or filtered by, with the values a filter can name in this project.
|
|
658
797
|
*/
|
|
659
798
|
export type ChartDimension = {
|
|
660
799
|
/**
|
|
@@ -665,6 +804,10 @@ export type ChartDimension = {
|
|
|
665
804
|
* The dimension.
|
|
666
805
|
*/
|
|
667
806
|
key: "store" | "platform" | "country" | "product" | "plan" | "duration" | "sandbox" | "paywall" | "experiment";
|
|
807
|
+
/**
|
|
808
|
+
* What a filter can name, each with what it is called: all of a closed dimension's values (store, platform, sandbox); the current catalog's products, plans and billing periods (with unmapped, one_time and unknown, what a chart gives what matches none); the project's paywalls and its experiments' variants (<experiment_id>:<variant>), with none. A country lists none: it is any ISO 3166-1 alpha-2 code, or unknown.
|
|
809
|
+
*/
|
|
810
|
+
values?: ChartValue[];
|
|
668
811
|
};
|
|
669
812
|
/**
|
|
670
813
|
* A value a dimension is filtered to.
|
|
@@ -846,6 +989,10 @@ export type Checkout = {
|
|
|
846
989
|
* Where the customer pays.
|
|
847
990
|
*/
|
|
848
991
|
url: string;
|
|
992
|
+
/**
|
|
993
|
+
* With the app's key alone: the key the success page asks the buyer's redemption link with (POST /purchases/stripe/checkout/redemption). Keep it in the page's own storage, never in a URL: whoever holds it and the session's id is shown the link.
|
|
994
|
+
*/
|
|
995
|
+
redemption_key?: string;
|
|
849
996
|
};
|
|
850
997
|
/**
|
|
851
998
|
* The error envelope of a refused checkout, with where the customer already has it when that is why (`already_entitled`): buying it again would charge twice for one thing.
|
|
@@ -881,7 +1028,7 @@ export type CheckoutConflictError = {
|
|
|
881
1028
|
store?: "app_store" | "play_store" | "stripe";
|
|
882
1029
|
};
|
|
883
1030
|
/**
|
|
884
|
-
* What the
|
|
1031
|
+
* What is bought on the web, and where it was opened.
|
|
885
1032
|
*/
|
|
886
1033
|
export type CheckoutRequest = {
|
|
887
1034
|
/**
|
|
@@ -897,9 +1044,10 @@ export type CheckoutRequest = {
|
|
|
897
1044
|
*/
|
|
898
1045
|
product: string;
|
|
899
1046
|
/**
|
|
900
|
-
* Where Stripe sends the
|
|
1047
|
+
* Where Stripe sends the buyer back once paid: a registered web app's origin, or a native app's own scheme. Stripe replaces `{CHECKOUT_SESSION_ID}` in it with the session's id: the page asks the redemption link with it.
|
|
901
1048
|
*/
|
|
902
1049
|
success_url: string;
|
|
1050
|
+
source?: CheckoutSource;
|
|
903
1051
|
};
|
|
904
1052
|
/**
|
|
905
1053
|
* What calling a leader takes — every variant seen by min_viewers subjects, the leader's chance to win min_chance — and what the results still lack, reason by reason: none, they are confident.
|
|
@@ -4490,6 +4638,14 @@ export type Settings = {
|
|
|
4490
4638
|
* When the settings were last changed; absent while they are the defaults.
|
|
4491
4639
|
*/
|
|
4492
4640
|
updated_at?: string | null;
|
|
4641
|
+
/**
|
|
4642
|
+
* What the App Store takes of a web purchase bought through a link out of an iOS app in its United States storefront (a checkout whose source is ios, USA), which the charts' proceeds take off: its share in basis points of the price net of tax (0 unless set: it takes nothing today, Guideline 3.1.1(a); a court is deciding what it may), up to 3000.
|
|
4643
|
+
*/
|
|
4644
|
+
app_store_link_fee_bps: number;
|
|
4645
|
+
/**
|
|
4646
|
+
* For how many days after the link a purchase owes the App Store its fee (7 unless set), 1 to 90: a subscription's renewals past them owe none.
|
|
4647
|
+
*/
|
|
4648
|
+
app_store_link_attribution_days: number;
|
|
4493
4649
|
};
|
|
4494
4650
|
/**
|
|
4495
4651
|
* A change of the settings: the fields given change, the others stay.
|
|
@@ -4531,6 +4687,14 @@ export type SettingsUpdate = {
|
|
|
4531
4687
|
* Where the quotas' calendar windows (a day, a month) begin: an IANA name such as Europe/Istanbul.
|
|
4532
4688
|
*/
|
|
4533
4689
|
time_zone?: string;
|
|
4690
|
+
/**
|
|
4691
|
+
* What the App Store takes of a web purchase bought through a link out of an iOS app in its United States storefront (a checkout whose source is ios, USA), which the charts' proceeds take off: its share in basis points of the price net of tax (0 unless set: it takes nothing today, Guideline 3.1.1(a); a court is deciding what it may), up to 3000.
|
|
4692
|
+
*/
|
|
4693
|
+
app_store_link_fee_bps?: number;
|
|
4694
|
+
/**
|
|
4695
|
+
* For how many days after the link a purchase owes the App Store its fee (7 unless set), 1 to 90: a subscription's renewals past them owe none.
|
|
4696
|
+
*/
|
|
4697
|
+
app_store_link_attribution_days?: number;
|
|
4534
4698
|
};
|
|
4535
4699
|
/**
|
|
4536
4700
|
* What a commit, an extension or a reversal takes; a release takes nothing.
|
|
@@ -4619,7 +4783,7 @@ export type SpendReceipt = {
|
|
|
4619
4783
|
*/
|
|
4620
4784
|
export type SpendRequest = CreditSpendRequest | QuotaSpendRequest;
|
|
4621
4785
|
/**
|
|
4622
|
-
* purchases.store.changed: the project's Stripe account or In-App Purchase key
|
|
4786
|
+
* purchases.store.changed: the project's Stripe account or In-App Purchase key or Google Play purchases were connected, disconnected, verified (a test notification arrived), or (Stripe) checked and Stripe's answer changed (active, refused). Never the key.
|
|
4623
4787
|
*/
|
|
4624
4788
|
export type StoreChangedEvent = {
|
|
4625
4789
|
/**
|
|
@@ -4633,15 +4797,19 @@ export type StoreChangedEvent = {
|
|
|
4633
4797
|
/**
|
|
4634
4798
|
* What happened.
|
|
4635
4799
|
*/
|
|
4636
|
-
change: "connected" | "active" | "refused" | "disconnected";
|
|
4800
|
+
change: "connected" | "active" | "refused" | "disconnected" | "verified";
|
|
4637
4801
|
/**
|
|
4638
4802
|
* Whether the key is a live one (Stripe's, connected).
|
|
4639
4803
|
*/
|
|
4640
4804
|
livemode?: boolean;
|
|
4805
|
+
/**
|
|
4806
|
+
* The Android app Google Play purchases are connected for (Play's).
|
|
4807
|
+
*/
|
|
4808
|
+
package_name?: string;
|
|
4641
4809
|
/**
|
|
4642
4810
|
* The store.
|
|
4643
4811
|
*/
|
|
4644
|
-
store: "stripe" | "app_store";
|
|
4812
|
+
store: "stripe" | "app_store" | "play_store";
|
|
4645
4813
|
};
|
|
4646
4814
|
/**
|
|
4647
4815
|
* One store's part of a plan.
|
|
@@ -4979,10 +5147,100 @@ export type XcodeCertificateRequest = {
|
|
|
4979
5147
|
*/
|
|
4980
5148
|
certificate: string;
|
|
4981
5149
|
};
|
|
5150
|
+
/**
|
|
5151
|
+
* A value of a dimension, as a filter names it, and what it is called.
|
|
5152
|
+
*/
|
|
5153
|
+
export type ChartValue = {
|
|
5154
|
+
/**
|
|
5155
|
+
* The value a filter names (filter=dimension:key).
|
|
5156
|
+
*/
|
|
5157
|
+
key: string;
|
|
5158
|
+
/**
|
|
5159
|
+
* What it is called: a store's or a product's name, a paywall's, an experiment's and its variant's.
|
|
5160
|
+
*/
|
|
5161
|
+
label: string;
|
|
5162
|
+
};
|
|
5163
|
+
/**
|
|
5164
|
+
* Where a checkout was opened: an app linking out to buy on the web says its platform and its store's storefront. Kept with the checkout as the record of the link.
|
|
5165
|
+
*/
|
|
5166
|
+
export type CheckoutSource = {
|
|
5167
|
+
/**
|
|
5168
|
+
* The app's platform.
|
|
5169
|
+
*/
|
|
5170
|
+
platform: "ios" | "android" | "web";
|
|
5171
|
+
/**
|
|
5172
|
+
* The store's storefront the app runs in, ISO 3166-1 alpha-3 (StoreKit's Storefront.countryCode: USA).
|
|
5173
|
+
*/
|
|
5174
|
+
storefront?: string;
|
|
5175
|
+
};
|
|
5176
|
+
/**
|
|
5177
|
+
* A one-time link to redeem a purchase made on the web by a buyer without an account: opened on the phone with the app, it hands the app its token (`<scheme>://palbase/redeem?token=…`), and the app's user redeems it.
|
|
5178
|
+
*/
|
|
5179
|
+
export type RedemptionLink = {
|
|
5180
|
+
/**
|
|
5181
|
+
* The link's page (/purchases/redeem?token=…).
|
|
5182
|
+
*/
|
|
5183
|
+
url: string;
|
|
5184
|
+
/**
|
|
5185
|
+
* When it stops working; opened after, it sends a new one to the buyer's email. An emailed link's hour starts when it is sent.
|
|
5186
|
+
*/
|
|
5187
|
+
expires_at: string;
|
|
5188
|
+
};
|
|
5189
|
+
/**
|
|
5190
|
+
* A redemption link to redeem.
|
|
5191
|
+
*/
|
|
5192
|
+
export type RedeemRequest = {
|
|
5193
|
+
/**
|
|
5194
|
+
* The link's token: what the app was handed (`token` of `<scheme>://palbase/redeem?token=…`).
|
|
5195
|
+
*/
|
|
5196
|
+
token: string;
|
|
5197
|
+
};
|
|
5198
|
+
/**
|
|
5199
|
+
* The error envelope of an expired redemption link: `resent` says a new one went to the address the buyer gave at checkout.
|
|
5200
|
+
*/
|
|
5201
|
+
export type RedemptionExpiredError = {
|
|
5202
|
+
/**
|
|
5203
|
+
* Machine-readable error code (snake_case)
|
|
5204
|
+
*/
|
|
5205
|
+
error: string;
|
|
5206
|
+
/**
|
|
5207
|
+
* Human-readable explanation
|
|
5208
|
+
*/
|
|
5209
|
+
error_description: string;
|
|
5210
|
+
/**
|
|
5211
|
+
* Correlation ID for log/audit lookup
|
|
5212
|
+
*/
|
|
5213
|
+
request_id: string;
|
|
5214
|
+
/**
|
|
5215
|
+
* A new link was sent to the buyer's email: with `redemption_expired`.
|
|
5216
|
+
*/
|
|
5217
|
+
resent?: boolean;
|
|
5218
|
+
/**
|
|
5219
|
+
* Seconds to wait before retrying; present on a refusal that ends with time.
|
|
5220
|
+
*/
|
|
5221
|
+
retry_after?: number;
|
|
5222
|
+
/**
|
|
5223
|
+
* HTTP status code (mirrors the response status)
|
|
5224
|
+
*/
|
|
5225
|
+
status: number;
|
|
5226
|
+
};
|
|
5227
|
+
/**
|
|
5228
|
+
* A checkout's redemption link to show: the checkout's session, and the key its opener was given — the project's secret key asks with none.
|
|
5229
|
+
*/
|
|
5230
|
+
export type RedemptionRequest = {
|
|
5231
|
+
/**
|
|
5232
|
+
* The Checkout session's id (Stripe's `{CHECKOUT_SESSION_ID}`).
|
|
5233
|
+
*/
|
|
5234
|
+
session_id: string;
|
|
5235
|
+
/**
|
|
5236
|
+
* The checkout's `redemption_key`.
|
|
5237
|
+
*/
|
|
5238
|
+
key?: string;
|
|
5239
|
+
};
|
|
4982
5240
|
/** The events this module sends the project's webhooks (x-palbase-events), by type: each one's payload, the event's data. */
|
|
4983
5241
|
export interface Events {
|
|
4984
5242
|
/**
|
|
4985
|
-
* purchases.catalog.applied: a plan's Stripe part was written (applied) or failed; or the stores module answered of its App Store part.
|
|
5243
|
+
* purchases.catalog.applied: a plan's Stripe part was written (applied) or failed; or the stores module answered of its App Store or Google Play part.
|
|
4986
5244
|
*/
|
|
4987
5245
|
"purchases.catalog.applied": CatalogAppliedEvent;
|
|
4988
5246
|
/**
|
|
@@ -5038,7 +5296,7 @@ export interface Events {
|
|
|
5038
5296
|
*/
|
|
5039
5297
|
"purchases.refund.changed": RefundChangedEvent;
|
|
5040
5298
|
/**
|
|
5041
|
-
* purchases.store.changed: the project's Stripe account or In-App Purchase key
|
|
5299
|
+
* purchases.store.changed: the project's Stripe account or In-App Purchase key or Google Play purchases were connected, disconnected, verified (a test notification arrived), or (Stripe) checked and Stripe's answer changed (active, refused). Never the key.
|
|
5042
5300
|
*/
|
|
5043
5301
|
"purchases.store.changed": StoreChangedEvent;
|
|
5044
5302
|
/**
|
|
@@ -5120,6 +5378,23 @@ export declare function client(t: Transport): {
|
|
|
5120
5378
|
body: AppleTransactionReport; /** Stops the call: the request in flight, a wait before a retry, a proof-of-work being solved. */
|
|
5121
5379
|
signal?: AbortSignal;
|
|
5122
5380
|
}): Promise<Reply<200, CustomerInfo>>;
|
|
5381
|
+
/**
|
|
5382
|
+
* Get the customer's obfuscated account id
|
|
5383
|
+
*
|
|
5384
|
+
* The signed-in customer's obfuscated account id for the connected app — a guest's too: random, made the first time it is asked for, the same afterwards. The app passes it to Play Billing's billing flow; Play's answers carry it back, so a purchase is the customer's before the app reports it, and nothing personal goes to Google. A guest's goes with it when it merges into an account.
|
|
5385
|
+
*/
|
|
5386
|
+
getGoogleAccountId(input?: {
|
|
5387
|
+
signal?: AbortSignal;
|
|
5388
|
+
}): Promise<Reply<200, GoogleAccountID>>;
|
|
5389
|
+
/**
|
|
5390
|
+
* Report Play Billing's purchases
|
|
5391
|
+
*
|
|
5392
|
+
* The signed-in customer's app — a guest's too: a guest buys in the app — reports the purchases Play Billing gave it: one just made, or on a restore every one queryPurchasesAsync returns. Nothing of the device's word is taken: each is read from Play by its token, as the project's Play connection account, and applied to the ledger. Whose a purchase is: one nobody has becomes the customer's its obfuscated account id names, or the reporter's; one another customer has stays theirs — unless `restore`, which moves it to the reporter (an account's is never taken by a guest's restore, and one purchase moves 3 times in 30 days at most); one that stays is answered once the rest is applied (403 `restore_account_owned`, 409 `restore_limit`). A purchase the catalog maps is acknowledged — a consumable's consumed — once the ledger has it (Play refunds one not acknowledged in three days); one it does not map gives nothing and is not acknowledged.
|
|
5393
|
+
*/
|
|
5394
|
+
reportGooglePurchases(input: {
|
|
5395
|
+
body: GooglePurchaseReport; /** Stops the call: the request in flight, a wait before a retry, a proof-of-work being solved. */
|
|
5396
|
+
signal?: AbortSignal;
|
|
5397
|
+
}): Promise<Reply<200, CustomerInfo>>;
|
|
5123
5398
|
/**
|
|
5124
5399
|
* Take Xcode's StoreKit Testing purchases
|
|
5125
5400
|
*
|
|
@@ -5143,6 +5418,37 @@ export declare function client(t: Transport): {
|
|
|
5143
5418
|
}; /** Stops the call: the request in flight, a wait before a retry, a proof-of-work being solved. */
|
|
5144
5419
|
signal?: AbortSignal;
|
|
5145
5420
|
}): Promise<Reply<204, undefined>>;
|
|
5421
|
+
/**
|
|
5422
|
+
* Read the Google Play purchases
|
|
5423
|
+
*
|
|
5424
|
+
* The environment's Google Play purchases: the project's Play connection (the stores module's; its account reads and acknowledges purchases), the Android app they are made in, the topic its Play Console names, and whether a test notification proved it — with what to do next.
|
|
5425
|
+
*/
|
|
5426
|
+
getGoogleAccount(input?: {
|
|
5427
|
+
signal?: AbortSignal;
|
|
5428
|
+
}): Promise<Reply<200, GoogleAccount>>;
|
|
5429
|
+
/**
|
|
5430
|
+
* Connect Google Play purchases
|
|
5431
|
+
*
|
|
5432
|
+
* Sells in one of the environment's Android apps on Google Play: the app's topic is made in Palbase's Cloud project (Play's own account may publish to it; every environment of the project selling in the app shares it) and this environment's push subscription of it, to its own address, signed. The project's Play connection must exist (the stores module's: palbase stores:google:connect). Connected again for the same app, nothing changes. Then, in Play Console: Monetize with Play › Monetization setup, the topic, Send test notification. Emits `purchases.store.changed` (connected).
|
|
5433
|
+
*/
|
|
5434
|
+
connectGoogle(input: {
|
|
5435
|
+
headers?: {
|
|
5436
|
+
"Idempotency-Key"?: string;
|
|
5437
|
+
};
|
|
5438
|
+
body: GoogleConnectRequest; /** Stops the call: the request in flight, a wait before a retry, a proof-of-work being solved. */
|
|
5439
|
+
signal?: AbortSignal;
|
|
5440
|
+
}): Promise<Reply<200, GoogleAccount> | Reply<201, GoogleAccount>>;
|
|
5441
|
+
/**
|
|
5442
|
+
* Disconnect Google Play purchases
|
|
5443
|
+
*
|
|
5444
|
+
* Deletes this environment's push subscription and forgets the app: Play's notifications stop reaching it, and the apps' reports are refused. Purchases already made stay in the ledger. The app's topic stays (another environment of the project may read it). Emits `purchases.store.changed` (disconnected).
|
|
5445
|
+
*/
|
|
5446
|
+
disconnectGoogle(input?: {
|
|
5447
|
+
headers?: {
|
|
5448
|
+
"Idempotency-Key"?: string;
|
|
5449
|
+
}; /** Stops the call: the request in flight, a wait before a retry, a proof-of-work being solved. */
|
|
5450
|
+
signal?: AbortSignal;
|
|
5451
|
+
}): Promise<Reply<204, undefined>>;
|
|
5146
5452
|
/**
|
|
5147
5453
|
* Read the catalog
|
|
5148
5454
|
*
|
|
@@ -5238,7 +5544,7 @@ export declare function client(t: Transport): {
|
|
|
5238
5544
|
/**
|
|
5239
5545
|
* Read the charts' overview
|
|
5240
5546
|
*
|
|
5241
|
-
* The project's figures at a glance: MRR, active subscriptions and active trials now; revenue (of revenue_type), new customers and active customers over the last 28 days, today included — each as its chart counts it. Money is in the reporting currency (or currency); an amount in a currency the European Central Bank does not publish is left out and named (unconverted). A replica computes two charts (the overview among them) at once and one of a project; another is refused at once as busy (503 `charts_busy`, Retry-After), and so is one that takes longer than 15 seconds. The same request within a minute is answered from the replica's cache (a change of the project's settings drops it there). A replica computes
|
|
5547
|
+
* The project's figures at a glance: MRR, active subscriptions and active trials now; revenue (of revenue_type), new customers and active customers over the last 28 days, today included — each as its chart counts it. Money is in the reporting currency (or currency); an amount in a currency the European Central Bank does not publish is left out and named (unconverted). A replica computes two charts (the overview among them) at once and one of a project; another is refused at once as busy (503 `charts_busy`, Retry-After), and so is one that takes longer than 15 seconds. The same request within a minute is answered from the replica's cache (a change of the project's settings drops it there). A replica computes 20 charts of a project in a row, then one each 2 seconds (30 a minute); past that a chart is refused (429 `too_many_charts`, Retry-After) — an answer from the cache is not counted.
|
|
5242
5548
|
*/
|
|
5243
5549
|
getChartsOverview(input?: {
|
|
5244
5550
|
query?: {
|
|
@@ -5251,7 +5557,7 @@ export declare function client(t: Transport): {
|
|
|
5251
5557
|
/**
|
|
5252
5558
|
* Read a chart
|
|
5253
5559
|
*
|
|
5254
|
-
* One chart of the project's ledger, period by period (GET /purchases/charts says what each counts). Periods are UTC days, ISO weeks (Monday to Sunday) or calendar months, the first and the last cut to `from` and `to` (both included, at most two years apart; `to` later than today is today). A flow counts what happened in the period, a snapshot is the state at its end (now, for the period now is in), a ratio divides its measures, a cohort follows what began in the period over its ages. The ledger is read whole each time: a refund arriving later, a renewal, a product change, a guest merged into an account and a change of the settings are in the next answer. Money is converted to the reporting currency (or `currency`) at the European Central Bank's reference rate of the day it was paid; what is in a currency it does not publish is left out and named (`unconverted`). A store's test purchases count only with sandbox=true. `segment` splits a segmentable chart by a dimension: the 20 largest values each a segment, the rest together in one keyed `(other)` (the segments' sum is the whole; a subscription changing segment is churned in one and moved in to the other); `filter` (repeated, one dimension:value each) keeps what has one of the values given for each dimension named. The paywall and experiment dimensions attribute
|
|
5560
|
+
* One chart of the project's ledger, period by period (GET /purchases/charts says what each counts). Periods are UTC days, ISO weeks (Monday to Sunday) or calendar months, the first and the last cut to `from` and `to` (both included, at most two years apart; `to` later than today is today). A flow counts what happened in the period, a snapshot is the state at its end (now, for the period now is in), a ratio divides its measures, a cohort follows what began in the period over its ages. The ledger is read whole each time: a refund arriving later, a renewal, a product change, a guest merged into an account and a change of the settings are in the next answer. Money is converted to the reporting currency (or `currency`) at the European Central Bank's reference rate of the day it was paid; what is in a currency it does not publish is left out and named (`unconverted`). A store's test purchases count only with sandbox=true. `segment` splits a segmentable chart by a dimension: the 20 largest values each a segment, the rest together in one keyed `(other)` (the segments' sum is the whole; a subscription changing segment is churned in one and moved in to the other); `filter` (repeated, one dimension:value each) keeps what has one of the values given for each dimension named. The paywall and experiment dimensions attribute each subscription once, when its first purchase is recorded: to the paywall (and the experiment's variant) its owner — or a guest merged into the owner — saw first within the 7 days before that purchase, as the experiments' results count it; one that followed none is `none`, its renewals in any later days included. A cohort chart follows at most 120 cohorts (by day, 120 days). Answered as CSV when the request accepts text/csv first: a row a segment and period (and age, for a cohort), its value, its measures. The ledger is read customer by customer, never held whole. A customer holding more than 20,000 transactions is refused (422 `chart_too_large`). The same request within a minute is answered from the replica's cache (a change of the project's settings drops it there). A replica computes two charts at once and one of a project; another is refused at once as busy (503 `charts_busy`, Retry-After), and so is one whose reading and computing take longer than 15 seconds. A replica computes 20 charts of a project in a row, then one each 2 seconds (30 a minute); past that a chart is refused (429 `too_many_charts`, Retry-After) — an answer from the cache is not counted.
|
|
5255
5561
|
*/
|
|
5256
5562
|
getChart(input: {
|
|
5257
5563
|
path: {
|
|
@@ -6001,12 +6307,41 @@ export declare function client(t: Transport): {
|
|
|
6001
6307
|
/**
|
|
6002
6308
|
* Buy on the web
|
|
6003
6309
|
*
|
|
6004
|
-
* Opens a Stripe Checkout session
|
|
6310
|
+
* Opens a Stripe Checkout session to buy one of the catalog's products sold on the web, at the plan's price on the project's Stripe account: send the buyer to `url`. Stripe sends them back to `success_url` or `cancel_url`, which go back to one of the project's registered apps — a web app's origin, or a native app's own scheme — and nowhere else. With a customer's session — a guest's as well: what a guest buys is theirs, and goes with them to the account they sign in to — the purchase is that customer's; a customer who already has the product, or a subscription of its group, from any store is refused (409 `already_entitled`, naming the store to manage it in): nothing is charged twice. Credits can always be bought again. A free trial is given once per customer, across every channel, and not to a guest: a new one is free to make. With the app's key alone (no session) the buyer is no one yet: Checkout asks their email, no free trial is given, and what they buy waits for the app user who redeems it — its link is shown on the success page to the holder of `redemption_key` (POST /purchases/stripe/checkout/redemption) and sent to that email. Checkouts are limited per address and per project with the app's key alone, per customer and per address with a session (429 `too_many_checkouts`). `source` records where the checkout was opened: an app linking out to buy on the web (the App Store's United States storefront allows it, Guideline 3.1.1(a)) says its platform and storefront, and the charts take the App Store's link fee (settings) off what it brings. The checkout is kept as the record of it. The purchase is applied once Stripe reports it (POST /purchases/webhooks/stripe).
|
|
6005
6311
|
*/
|
|
6006
6312
|
createCheckout(input: {
|
|
6007
6313
|
body: CheckoutRequest; /** Stops the call: the request in flight, a wait before a retry, a proof-of-work being solved. */
|
|
6008
6314
|
signal?: AbortSignal;
|
|
6009
6315
|
}): Promise<Reply<201, Checkout>>;
|
|
6316
|
+
/**
|
|
6317
|
+
* A web purchase's redemption link
|
|
6318
|
+
*
|
|
6319
|
+
* The link a checkout's success page shows its buyer, who has no account (a checkout opened with the app's key alone): to the holder of the key the checkout's opener was given (`redemption_key`), a new one each time asked, ten at most, within an hour of the payment — past it the link is the email's alone. A session Stripe has not reported yet is read from Stripe. The project's secret key — its support, for a buyer whose email went astray — is shown one at any time, with no key. Limited per address and per project with the app's key alone, per customer and per address with a session. Closed to an environment's token (403 `token_out_of_scope`): the link hands a purchase to whoever opens it.
|
|
6320
|
+
*/
|
|
6321
|
+
createCheckoutRedemption(input: {
|
|
6322
|
+
body: RedemptionRequest; /** Stops the call: the request in flight, a wait before a retry, a proof-of-work being solved. */
|
|
6323
|
+
signal?: AbortSignal;
|
|
6324
|
+
}): Promise<Reply<201, RedemptionLink>>;
|
|
6325
|
+
/**
|
|
6326
|
+
* Redeem a web purchase
|
|
6327
|
+
*
|
|
6328
|
+
* Redeems a link to a purchase made on the web by a buyer without an account: the purchase becomes the session's customer's — a guest's goes with them to the account they sign in to, as all a guest has. A link works once, for an hour; once one of a purchase's links is redeemed, all of them are spent. An expired link sends a new one to the address the buyer gave at checkout (410 `redemption_expired`, `resent`), once. Limited per customer and per address. Answers what the customer has now.
|
|
6329
|
+
*/
|
|
6330
|
+
redeemPurchase(input: {
|
|
6331
|
+
body: RedeemRequest; /** Stops the call: the request in flight, a wait before a retry, a proof-of-work being solved. */
|
|
6332
|
+
signal?: AbortSignal;
|
|
6333
|
+
}): Promise<Reply<200, CustomerInfo>>;
|
|
6334
|
+
/**
|
|
6335
|
+
* The redemption page
|
|
6336
|
+
*
|
|
6337
|
+
* The page a redemption link opens: a button per app of the project's that hands the app the link (`<scheme>://palbase/redeem?token=…`), and the link as a QR code to scan with the phone when it is opened elsewhere. It reads nothing of the link: the app redeems it (POST /purchases/redemptions/redeem). No credential: the link is the authorization; its token is a query's, which no request log keeps.
|
|
6338
|
+
*/
|
|
6339
|
+
getRedemptionPage(input: {
|
|
6340
|
+
query: {
|
|
6341
|
+
token: string;
|
|
6342
|
+
}; /** Stops the call: the request in flight, a wait before a retry, a proof-of-work being solved. */
|
|
6343
|
+
signal?: AbortSignal;
|
|
6344
|
+
}): Promise<Reply<200, Response>>;
|
|
6010
6345
|
/**
|
|
6011
6346
|
* Grant a key's connection
|
|
6012
6347
|
*
|
|
@@ -6036,6 +6371,15 @@ export declare function client(t: Transport): {
|
|
|
6036
6371
|
body: AppleNotification; /** Stops the call: the request in flight, a wait before a retry, a proof-of-work being solved. */
|
|
6037
6372
|
signal?: AbortSignal;
|
|
6038
6373
|
}): Promise<Reply<200, undefined>>;
|
|
6374
|
+
/**
|
|
6375
|
+
* Receive a Google Play notification
|
|
6376
|
+
*
|
|
6377
|
+
* Where Pub/Sub pushes the connected app's real-time developer notifications — no key: the push carries an OIDC token Google minted for Palbase's push account, for this environment's own address, and anything else is refused. A notification only says something changed: what it is, is read from Play by its token as the project's Play connection account and applied to the ledger; a voided purchase's, by reading the app's voided purchases. Each push is kept once, sealed, by its message id: one pushed again is answered and not applied twice. A test notification proves the topic (`verified_at`). Another app's notification is taken and ignored. Pub/Sub hears 204 once that is written; a 503 (Google unreachable), and it pushes it again.
|
|
6378
|
+
*/
|
|
6379
|
+
receiveGoogleNotification(input: {
|
|
6380
|
+
body: GooglePush; /** Stops the call: the request in flight, a wait before a retry, a proof-of-work being solved. */
|
|
6381
|
+
signal?: AbortSignal;
|
|
6382
|
+
}): Promise<Reply<204, undefined>>;
|
|
6039
6383
|
/**
|
|
6040
6384
|
* Take Stripe's notification
|
|
6041
6385
|
*
|
|
@@ -56,6 +56,14 @@ export type ChannelRule = {
|
|
|
56
56
|
* A public channel's subscribers may write its state.
|
|
57
57
|
*/
|
|
58
58
|
state_write?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* The channel keeps its broadcasts, numbered, and a member that was away is given what it missed, in order and once, when it rejoins after the number it had (phx_join config.log.after; the join's reply says the number it starts after, log_seq). A broadcast's number (seq) is its channel's own — the time it was written, in microseconds, rising in the channel — and says nothing of other channels. Kept a day unless log_keep_seconds says how long. What a project's durable channels write is held to a budget an hour, each message weighed by the hours it is kept: past it a durable broadcast is refused (log_budget) until the next hour.
|
|
61
|
+
*/
|
|
62
|
+
durable?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* How long a durable channel keeps its broadcasts, in seconds: 1 to 604800 (a week). Naming it makes the channel durable.
|
|
65
|
+
*/
|
|
66
|
+
log_keep_seconds?: number;
|
|
59
67
|
};
|
|
60
68
|
export type ChannelSubscribers = {
|
|
61
69
|
/**
|
|
@@ -160,6 +168,33 @@ export type RealtimeStats = {
|
|
|
160
168
|
*/
|
|
161
169
|
window_seconds: number;
|
|
162
170
|
};
|
|
171
|
+
/**
|
|
172
|
+
* The memberships to decide again: a topic, or a pattern and the values of some of its captures.
|
|
173
|
+
*/
|
|
174
|
+
export type Revalidation = {
|
|
175
|
+
/**
|
|
176
|
+
* With a topic and no user: the channel is over — every member dropped unasked, its log forgotten.
|
|
177
|
+
*/
|
|
178
|
+
end?: boolean;
|
|
179
|
+
/**
|
|
180
|
+
* Values of the pattern's captures: a capture not named is any value.
|
|
181
|
+
*/
|
|
182
|
+
params?: {
|
|
183
|
+
[key: string]: string;
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* A gateway's pattern, as chat:{chatId}:user:{userId}.
|
|
187
|
+
*/
|
|
188
|
+
pattern?: string;
|
|
189
|
+
/**
|
|
190
|
+
* One channel of the project's.
|
|
191
|
+
*/
|
|
192
|
+
topic?: string;
|
|
193
|
+
/**
|
|
194
|
+
* Only this user's memberships.
|
|
195
|
+
*/
|
|
196
|
+
user?: string;
|
|
197
|
+
};
|
|
163
198
|
export type StateApplied = {
|
|
164
199
|
/**
|
|
165
200
|
* The operations applied.
|
|
@@ -255,7 +290,7 @@ export declare function client(t: Transport): {
|
|
|
255
290
|
/**
|
|
256
291
|
* Broadcast as the server
|
|
257
292
|
*
|
|
258
|
-
* Publishes events on the project's channels, to every subscriber on every replica, as the project's server (1 to 100 events). Delivered at most once, like every broadcast.
|
|
293
|
+
* Publishes events on the project's channels, to every subscriber on every replica, as the project's server (1 to 100 events). Delivered at most once, like every broadcast — but on a durable channel, kept and given to its members in order and once. A durable channel's event past the project's hourly budget is refused with 429 log_budget and when to try again (Retry-After); the events before it were published.
|
|
259
294
|
*/
|
|
260
295
|
broadcast(input: {
|
|
261
296
|
body: BroadcastBatch; /** Stops the call: the request in flight, a wait before a retry, a proof-of-work being solved. */
|
|
@@ -295,6 +330,15 @@ export declare function client(t: Transport): {
|
|
|
295
330
|
body: RealtimeLimitsWrite; /** Stops the call: the request in flight, a wait before a retry, a proof-of-work being solved. */
|
|
296
331
|
signal?: AbortSignal;
|
|
297
332
|
}): Promise<Reply<200, RealtimeLimits>>;
|
|
333
|
+
/**
|
|
334
|
+
* Decide a channel's members again
|
|
335
|
+
*
|
|
336
|
+
* Decides again, on every replica, who may be on the project's channels it names, and drops the members no longer allowed: the project's server says a decision its machine made may no longer hold — a member taken out of a chat, a team changed. A channel (topic), or every channel of a gateway's pattern whose named captures have the values given (pattern, params); only one user's memberships (user); or, with a topic, the channel's end (end): every member dropped unasked, and its log forgotten. A dropped member's client is told the channel closed, and its rejoin is decided on the merits.
|
|
337
|
+
*/
|
|
338
|
+
revalidate(input: {
|
|
339
|
+
body: Revalidation; /** Stops the call: the request in flight, a wait before a retry, a proof-of-work being solved. */
|
|
340
|
+
signal?: AbortSignal;
|
|
341
|
+
}): Promise<Reply<202, undefined>>;
|
|
298
342
|
/**
|
|
299
343
|
* Write state as the server
|
|
300
344
|
*
|