oblien 2.7.0 → 2.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/README.md +1 -0
- package/dist/billing.d.ts +47 -8
- package/dist/billing.d.ts.map +1 -1
- package/dist/billing.js +54 -7
- package/dist/billing.js.map +1 -1
- package/dist/cli/commands/desktop.d.ts.map +1 -1
- package/dist/cli/commands/desktop.js +35 -4
- package/dist/cli/commands/desktop.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/resources/desktop.d.ts +14 -1
- package/dist/resources/desktop.d.ts.map +1 -1
- package/dist/resources/desktop.js +12 -2
- package/dist/resources/desktop.js.map +1 -1
- package/dist/runtime/desktop-tunnel.d.ts +1 -0
- package/dist/runtime/desktop-tunnel.d.ts.map +1 -1
- package/dist/runtime/desktop-tunnel.js +2 -1
- package/dist/runtime/desktop-tunnel.js.map +1 -1
- package/dist/runtime/desktop.d.ts +18 -2
- package/dist/runtime/desktop.d.ts.map +1 -1
- package/dist/runtime/desktop.js +24 -5
- package/dist/runtime/desktop.js.map +1 -1
- package/dist/runtime.d.ts +1 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js.map +1 -1
- package/dist/types/billing.d.ts +256 -13
- package/dist/types/billing.d.ts.map +1 -1
- package/dist/types/desktop.d.ts +51 -0
- package/dist/types/desktop.d.ts.map +1 -0
- package/dist/types/desktop.js +6 -0
- package/dist/types/desktop.js.map +1 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/webhooks.d.ts +1 -1
- package/dist/types/webhooks.d.ts.map +1 -1
- package/docs/billing.md +110 -8
- package/docs/desktop.md +82 -93
- package/docs/namespaces.md +12 -6
- package/docs/releases/2.8.0.md +19 -0
- package/docs/webhooks.md +5 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -56,6 +56,7 @@ The client wraps every part of the platform. Each feature has a deep-dive page i
|
|
|
56
56
|
| **Desktop** | `runtime.desktop` | Live access, browser viewer and native VNC tunnel through the gateway | [docs/desktop](./docs/desktop.md) |
|
|
57
57
|
| **Pages** | `client.pages` | Deploy static files to the edge CDN with automatic TLS | [docs/pages](./docs/pages.md) |
|
|
58
58
|
| **Namespaces** | `client.namespaces` | Group workspaces; resource limits, quotas, per-namespace usage | [docs/namespaces](./docs/namespaces.md) |
|
|
59
|
+
| **Billing** | `client.billing` | Capped PAYG, prepaid monthly capacity, reseller subscriptions, transfer packs and saved usage comparisons | [docs/billing](./docs/billing.md) |
|
|
59
60
|
| **Domains** | `client.domain` | Slug/DNS pre-flight, route listing, SSL certs + auto-renew | [docs/domains](./docs/domains.md) |
|
|
60
61
|
| **Edge Proxy** | `client.edgeProxy` | Reverse-proxy subdomains to *verified* external upstreams | [docs/edge-proxy](./docs/edge-proxy.md) |
|
|
61
62
|
| **Edge Tunnel** | `client.edgeTunnel` | Expose a local port to the internet (ngrok-style) | [docs/edge-tunnel](./docs/edge-tunnel.md) |
|
package/dist/billing.d.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import type { HttpClient } from './http.js';
|
|
2
|
-
import type { BillingBalance, BillingCatalog, BillingDefaults, BillingDefaultsParams, BillingPolicy, BillingPolicyParams, CheckoutParams, CheckoutResponse, BillingCheckoutResponse, Entitlement, PortalParams, PortalResponse, BillingSubscriptionResponse, PreviewPlanChangeParams, BillingPlanChangeQuoteResponse, ChangePlanParams, BillingPlanChangeResponse, CancelPlanChangeParams, ResetQuotaParams, ResetQuotaResponse } from './types/billing.js';
|
|
2
|
+
import type { BillingBalance, BillingCatalog, BillingDefaults, BillingDefaultsParams, BillingPolicy, BillingPolicyParams, CheckoutParams, CheckoutResponse, BillingCheckoutResponse, Entitlement, PortalParams, PortalResponse, BillingSubscriptionResponse, PreviewPlanChangeParams, BillingPlanChangeQuoteResponse, ChangePlanParams, BillingPlanChangeResponse, CancelPlanChangeParams, ResetQuotaParams, ResetQuotaResponse, CapacityCatalog, CapacityResponse, CapacityQuoteResponse, PreviewCapacityParams, ConfirmCapacityParams, CapacityCheckoutParams, CapacityCheckoutResponse, BillingSavings } from './types/billing.js';
|
|
3
3
|
/**
|
|
4
|
-
* Billing — namespace-bound subscriptions,
|
|
4
|
+
* Billing — namespace-bound PAYG/monthly capacity, subscriptions, funding and entitlement.
|
|
5
5
|
*
|
|
6
6
|
* Oblien is the payment engine: it runs Stripe internally, meters usage, enforces
|
|
7
7
|
* quotas and suspends namespaces. You never touch Stripe and never re-implement quota
|
|
8
8
|
* math.
|
|
9
9
|
*
|
|
10
10
|
* **The namespace is the unit of billing.** Every subscription, quota, entitlement and
|
|
11
|
-
* suspension is per-namespace. The owner's wallet
|
|
11
|
+
* suspension is per-namespace. The owner's wallet funds payment; a purchased capacity
|
|
12
|
+
* pool belongs only to its namespace. That is what
|
|
12
13
|
* makes this usable for multi-tenant products: give each of your customers a namespace
|
|
13
14
|
* and they are billed independently.
|
|
14
15
|
*
|
|
@@ -35,7 +36,7 @@ import type { BillingBalance, BillingCatalog, BillingDefaults, BillingDefaultsPa
|
|
|
35
36
|
* the browser coming back. Poll {@link Billing.entitlement} or listen for
|
|
36
37
|
* `payment.succeeded`.
|
|
37
38
|
*
|
|
38
|
-
* ###
|
|
39
|
+
* ### Existing metered allowance integrations
|
|
39
40
|
*
|
|
40
41
|
* - **Mode B (above)** — Oblien hosts the payment against its own catalog. Use
|
|
41
42
|
* {@link Billing.catalog}, {@link Billing.checkout}, {@link Billing.portal}.
|
|
@@ -43,8 +44,12 @@ import type { BillingBalance, BillingCatalog, BillingDefaults, BillingDefaultsPa
|
|
|
43
44
|
* Skip checkout entirely and set the ceiling directly with {@link Billing.setPolicy}
|
|
44
45
|
* (or {@link Billing.setDefaults} for a template applied to every new namespace).
|
|
45
46
|
*
|
|
47
|
+
* Current compute uses {@link Billing.capacityCatalog}, {@link Billing.previewCapacity}
|
|
48
|
+
* and {@link Billing.confirmCapacity}; hosted monthly offers also use checkout with
|
|
49
|
+
* billingMode: 'monthly', capacity and credits: 0. See docs/billing.md for both flows.
|
|
50
|
+
*
|
|
46
51
|
* **Requires an `admin`- or `billing`-scoped API key** for everything except
|
|
47
|
-
* {@link Billing.catalog}. Namespace- and workspace-scoped tokens — the lightweight ones
|
|
52
|
+
* {@link Billing.catalog} and {@link Billing.capacityCatalog}. Namespace- and workspace-scoped tokens — the lightweight ones
|
|
48
53
|
* you hand to end-users — are refused on every billing route by design.
|
|
49
54
|
*/
|
|
50
55
|
export declare class Billing {
|
|
@@ -53,6 +58,36 @@ export declare class Billing {
|
|
|
53
58
|
constructor(client: {
|
|
54
59
|
_http: HttpClient;
|
|
55
60
|
});
|
|
61
|
+
/** Backend prices for both compute modes. Dollar amounts on quotes are cents. */
|
|
62
|
+
capacityCatalog(): Promise<CapacityCatalog>;
|
|
63
|
+
/** Paid-through coverage, effective pool, network extras and recorded savings. */
|
|
64
|
+
capacity(namespace: string): Promise<CapacityResponse>;
|
|
65
|
+
/** Quote a new pool or a wallet-funded change. Existing Stripe subscriptions
|
|
66
|
+
* use previewPlanChange/changePlan, preserving their saved prices. */
|
|
67
|
+
previewCapacity(namespace: string, params: PreviewCapacityParams): Promise<CapacityQuoteResponse>;
|
|
68
|
+
/** Atomically redeem eligible paid wallet funds and apply the saved quote.
|
|
69
|
+
* Namespace allowance numbers are not redeemable wallet money. */
|
|
70
|
+
confirmCapacity(namespace: string, params: ConfirmCapacityParams): Promise<CapacityResponse>;
|
|
71
|
+
/** Open Stripe for a saved monthly quote. Read capacity or signed events for
|
|
72
|
+
* fulfillment; returning from the browser is never proof of payment. */
|
|
73
|
+
capacityCheckout(namespace: string, params: CapacityCheckoutParams): Promise<CapacityCheckoutResponse>;
|
|
74
|
+
cancelCapacityChange(namespace: string, params: ConfirmCapacityParams): Promise<CapacityResponse>;
|
|
75
|
+
/** Wallet renewal only; hosted subscriptions use cancelSubscription/resumeSubscription. */
|
|
76
|
+
setCapacityAutoRenew(namespace: string, params: {
|
|
77
|
+
autoRenew: boolean;
|
|
78
|
+
idempotencyKey: string;
|
|
79
|
+
}): Promise<CapacityResponse>;
|
|
80
|
+
/** A separately funded proxy-transfer pack. Confirm with confirmCapacity. */
|
|
81
|
+
previewNetworkTopup(namespace: string, params: {
|
|
82
|
+
unitAmount: number;
|
|
83
|
+
idempotencyKey: string;
|
|
84
|
+
}): Promise<CapacityQuoteResponse>;
|
|
85
|
+
/** Saved metering comparisons, not a forecast or a refund. Amounts are USD. */
|
|
86
|
+
savings(params?: {
|
|
87
|
+
namespace?: string;
|
|
88
|
+
workspaceId?: string;
|
|
89
|
+
month?: string;
|
|
90
|
+
}): Promise<BillingSavings>;
|
|
56
91
|
/**
|
|
57
92
|
* Plans and credit packs on offer. Public — no authentication.
|
|
58
93
|
*
|
|
@@ -67,7 +102,7 @@ export declare class Billing {
|
|
|
67
102
|
/**
|
|
68
103
|
* Create a hosted checkout bound to a namespace, and get the URL to redirect to.
|
|
69
104
|
*
|
|
70
|
-
*
|
|
105
|
+
* Catalog credit products support two kinds:
|
|
71
106
|
*
|
|
72
107
|
* - `kind: 'topup'` + `packId` — adds the pack's credits to that namespace's ceiling.
|
|
73
108
|
* Unused purchased credits survive renewal and stack, so this unblocks a namespace that
|
|
@@ -97,6 +132,8 @@ export declare class Billing {
|
|
|
97
132
|
* For reseller pricing, send `offer` instead of planTierId/packId. A $10 offer with
|
|
98
133
|
* `credits: 100` funds 1000 wallet credits at the current standard rate and grants
|
|
99
134
|
* only 100 namespace credits. The offer name/description appears in checkout.
|
|
135
|
+
* A monthly capacity offer instead uses billingMode: 'monthly', capacity,
|
|
136
|
+
* credits: 0 and no credit policy; the saved provider fee is deducted from funding.
|
|
100
137
|
* Stripe-hosted checkout with native code entry is the default. Set
|
|
101
138
|
* `allowPromotionCodes: false` to disable codes, or `checkoutMode: 'oblien'`
|
|
102
139
|
* for the custom page with scoped, capped administrator promotions.
|
|
@@ -154,7 +191,9 @@ export declare class Billing {
|
|
|
154
191
|
* // ent.quota → { limit, used, balance } ← limit INCLUDES purchased top-ups
|
|
155
192
|
* ```
|
|
156
193
|
*
|
|
157
|
-
*
|
|
194
|
+
* A capacity contract returns billingMode, computeCovered and capacity; its quota
|
|
195
|
+
* uses null limit/balance for compatibility. Read coverage and actual pool limits.
|
|
196
|
+
* For a metered contract, quota.limit === null means no finite credit allowance.
|
|
158
197
|
*/
|
|
159
198
|
entitlement(namespace: string): Promise<Entitlement>;
|
|
160
199
|
/**
|
|
@@ -165,7 +204,7 @@ export declare class Billing {
|
|
|
165
204
|
* if (blocking) return showTopUpPrompt();
|
|
166
205
|
* ```
|
|
167
206
|
*
|
|
168
|
-
* `blocking`
|
|
207
|
+
* `blocking` reflects the applicable contract's suspension, expiry and funding. You do not
|
|
169
208
|
* have to enforce it yourself — Oblien already refuses creates, starts, resumes and
|
|
170
209
|
* wakes for a blocked namespace — but checking lets you show a useful message instead
|
|
171
210
|
* of surfacing an error.
|
package/dist/billing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../src/billing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,uBAAuB,EACvB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,2BAA2B,EAC3B,uBAAuB,EACvB,8BAA8B,EAC9B,gBAAgB,EAChB,yBAAyB,EACzB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../src/billing.ts"],"names":[],"mappings":"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"}
|
package/dist/billing.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Billing — namespace-bound subscriptions,
|
|
2
|
+
* Billing — namespace-bound PAYG/monthly capacity, subscriptions, funding and entitlement.
|
|
3
3
|
*
|
|
4
4
|
* Oblien is the payment engine: it runs Stripe internally, meters usage, enforces
|
|
5
5
|
* quotas and suspends namespaces. You never touch Stripe and never re-implement quota
|
|
6
6
|
* math.
|
|
7
7
|
*
|
|
8
8
|
* **The namespace is the unit of billing.** Every subscription, quota, entitlement and
|
|
9
|
-
* suspension is per-namespace. The owner's wallet
|
|
9
|
+
* suspension is per-namespace. The owner's wallet funds payment; a purchased capacity
|
|
10
|
+
* pool belongs only to its namespace. That is what
|
|
10
11
|
* makes this usable for multi-tenant products: give each of your customers a namespace
|
|
11
12
|
* and they are billed independently.
|
|
12
13
|
*
|
|
@@ -33,7 +34,7 @@
|
|
|
33
34
|
* the browser coming back. Poll {@link Billing.entitlement} or listen for
|
|
34
35
|
* `payment.succeeded`.
|
|
35
36
|
*
|
|
36
|
-
* ###
|
|
37
|
+
* ### Existing metered allowance integrations
|
|
37
38
|
*
|
|
38
39
|
* - **Mode B (above)** — Oblien hosts the payment against its own catalog. Use
|
|
39
40
|
* {@link Billing.catalog}, {@link Billing.checkout}, {@link Billing.portal}.
|
|
@@ -41,8 +42,12 @@
|
|
|
41
42
|
* Skip checkout entirely and set the ceiling directly with {@link Billing.setPolicy}
|
|
42
43
|
* (or {@link Billing.setDefaults} for a template applied to every new namespace).
|
|
43
44
|
*
|
|
45
|
+
* Current compute uses {@link Billing.capacityCatalog}, {@link Billing.previewCapacity}
|
|
46
|
+
* and {@link Billing.confirmCapacity}; hosted monthly offers also use checkout with
|
|
47
|
+
* billingMode: 'monthly', capacity and credits: 0. See docs/billing.md for both flows.
|
|
48
|
+
*
|
|
44
49
|
* **Requires an `admin`- or `billing`-scoped API key** for everything except
|
|
45
|
-
* {@link Billing.catalog}. Namespace- and workspace-scoped tokens — the lightweight ones
|
|
50
|
+
* {@link Billing.catalog} and {@link Billing.capacityCatalog}. Namespace- and workspace-scoped tokens — the lightweight ones
|
|
46
51
|
* you hand to end-users — are refused on every billing route by design.
|
|
47
52
|
*/
|
|
48
53
|
export class Billing {
|
|
@@ -51,6 +56,44 @@ export class Billing {
|
|
|
51
56
|
constructor(client) {
|
|
52
57
|
this._http = client._http;
|
|
53
58
|
}
|
|
59
|
+
/** Backend prices for both compute modes. Dollar amounts on quotes are cents. */
|
|
60
|
+
async capacityCatalog() {
|
|
61
|
+
return this._http.request({ method: 'GET', path: '/billing/capacity/catalog' });
|
|
62
|
+
}
|
|
63
|
+
/** Paid-through coverage, effective pool, network extras and recorded savings. */
|
|
64
|
+
async capacity(namespace) {
|
|
65
|
+
return this._http.request({ method: 'GET', path: '/billing/capacity', query: { namespace } });
|
|
66
|
+
}
|
|
67
|
+
/** Quote a new pool or a wallet-funded change. Existing Stripe subscriptions
|
|
68
|
+
* use previewPlanChange/changePlan, preserving their saved prices. */
|
|
69
|
+
async previewCapacity(namespace, params) {
|
|
70
|
+
return this._http.request({ method: 'POST', path: '/billing/capacity/preview', body: { ...params, namespace } });
|
|
71
|
+
}
|
|
72
|
+
/** Atomically redeem eligible paid wallet funds and apply the saved quote.
|
|
73
|
+
* Namespace allowance numbers are not redeemable wallet money. */
|
|
74
|
+
async confirmCapacity(namespace, params) {
|
|
75
|
+
return this._http.request({ method: 'POST', path: '/billing/capacity/confirm', body: { ...params, namespace } });
|
|
76
|
+
}
|
|
77
|
+
/** Open Stripe for a saved monthly quote. Read capacity or signed events for
|
|
78
|
+
* fulfillment; returning from the browser is never proof of payment. */
|
|
79
|
+
async capacityCheckout(namespace, params) {
|
|
80
|
+
return this._http.request({ method: 'POST', path: '/billing/capacity/checkout', body: { ...params, namespace } });
|
|
81
|
+
}
|
|
82
|
+
async cancelCapacityChange(namespace, params) {
|
|
83
|
+
return this._http.request({ method: 'POST', path: '/billing/capacity/change/cancel', body: { ...params, namespace } });
|
|
84
|
+
}
|
|
85
|
+
/** Wallet renewal only; hosted subscriptions use cancelSubscription/resumeSubscription. */
|
|
86
|
+
async setCapacityAutoRenew(namespace, params) {
|
|
87
|
+
return this._http.request({ method: 'POST', path: '/billing/capacity/renewal', body: { ...params, namespace } });
|
|
88
|
+
}
|
|
89
|
+
/** A separately funded proxy-transfer pack. Confirm with confirmCapacity. */
|
|
90
|
+
async previewNetworkTopup(namespace, params) {
|
|
91
|
+
return this._http.request({ method: 'POST', path: '/billing/capacity/network/preview', body: { ...params, namespace } });
|
|
92
|
+
}
|
|
93
|
+
/** Saved metering comparisons, not a forecast or a refund. Amounts are USD. */
|
|
94
|
+
async savings(params = {}) {
|
|
95
|
+
return this._http.request({ method: 'GET', path: '/billing/savings', query: params });
|
|
96
|
+
}
|
|
54
97
|
/**
|
|
55
98
|
* Plans and credit packs on offer. Public — no authentication.
|
|
56
99
|
*
|
|
@@ -70,7 +113,7 @@ export class Billing {
|
|
|
70
113
|
/**
|
|
71
114
|
* Create a hosted checkout bound to a namespace, and get the URL to redirect to.
|
|
72
115
|
*
|
|
73
|
-
*
|
|
116
|
+
* Catalog credit products support two kinds:
|
|
74
117
|
*
|
|
75
118
|
* - `kind: 'topup'` + `packId` — adds the pack's credits to that namespace's ceiling.
|
|
76
119
|
* Unused purchased credits survive renewal and stack, so this unblocks a namespace that
|
|
@@ -100,6 +143,8 @@ export class Billing {
|
|
|
100
143
|
* For reseller pricing, send `offer` instead of planTierId/packId. A $10 offer with
|
|
101
144
|
* `credits: 100` funds 1000 wallet credits at the current standard rate and grants
|
|
102
145
|
* only 100 namespace credits. The offer name/description appears in checkout.
|
|
146
|
+
* A monthly capacity offer instead uses billingMode: 'monthly', capacity,
|
|
147
|
+
* credits: 0 and no credit policy; the saved provider fee is deducted from funding.
|
|
103
148
|
* Stripe-hosted checkout with native code entry is the default. Set
|
|
104
149
|
* `allowPromotionCodes: false` to disable codes, or `checkoutMode: 'oblien'`
|
|
105
150
|
* for the custom page with scoped, capped administrator promotions.
|
|
@@ -207,7 +252,9 @@ export class Billing {
|
|
|
207
252
|
* // ent.quota → { limit, used, balance } ← limit INCLUDES purchased top-ups
|
|
208
253
|
* ```
|
|
209
254
|
*
|
|
210
|
-
*
|
|
255
|
+
* A capacity contract returns billingMode, computeCovered and capacity; its quota
|
|
256
|
+
* uses null limit/balance for compatibility. Read coverage and actual pool limits.
|
|
257
|
+
* For a metered contract, quota.limit === null means no finite credit allowance.
|
|
211
258
|
*/
|
|
212
259
|
async entitlement(namespace) {
|
|
213
260
|
return this._http.request({
|
|
@@ -224,7 +271,7 @@ export class Billing {
|
|
|
224
271
|
* if (blocking) return showTopUpPrompt();
|
|
225
272
|
* ```
|
|
226
273
|
*
|
|
227
|
-
* `blocking`
|
|
274
|
+
* `blocking` reflects the applicable contract's suspension, expiry and funding. You do not
|
|
228
275
|
* have to enforce it yourself — Oblien already refuses creates, starts, resumes and
|
|
229
276
|
* wakes for a blocked namespace — but checking lets you show a useful message instead
|
|
230
277
|
* of surfacing an error.
|
package/dist/billing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../src/billing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../src/billing.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desktop.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/desktop.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"desktop.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/desktop.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD/E"}
|
|
@@ -4,22 +4,52 @@ import { parseFlag, requireId } from './helpers.js';
|
|
|
4
4
|
export async function desktopCmd(args, flags) {
|
|
5
5
|
const action = args[0];
|
|
6
6
|
if (!action || action === '--help') {
|
|
7
|
-
console.log('Usage: oblien desktop <status|enable|disable|install|installation|credentials|ssh|vnc> <workspace-id> [--port 5901]');
|
|
7
|
+
console.log('Usage: oblien desktop <list|create|update|start|stop|delete|status|enable|disable|install|installation|credentials|ssh|vnc> <workspace-id> [session-id] [--name Work --resolution 1920x1080] [--session ID] [--port 5901]');
|
|
8
8
|
return;
|
|
9
9
|
}
|
|
10
|
-
if (!['status', 'enable', 'disable', 'install', 'installation', 'credentials', 'ssh', 'vnc'].includes(action))
|
|
10
|
+
if (!['list', 'create', 'update', 'start', 'stop', 'delete', 'status', 'enable', 'disable', 'install', 'installation', 'credentials', 'ssh', 'vnc'].includes(action))
|
|
11
11
|
throw new Error('Unknown desktop action');
|
|
12
12
|
const id = requireId(args[1], `desktop ${action} <workspace-id>`);
|
|
13
13
|
const client = buildClient(flags);
|
|
14
|
+
const sessionId = parseFlag(args.slice(2), '--session');
|
|
15
|
+
if (action === 'list')
|
|
16
|
+
return printResult(await client.workspaces.desktop.listSessions(id), flags.json);
|
|
17
|
+
if (action === 'create' || action === 'update') {
|
|
18
|
+
const name = parseFlag(args.slice(2), '--name');
|
|
19
|
+
const size = parseFlag(args.slice(2), '--resolution');
|
|
20
|
+
const resolution = /^(\d+)x(\d+)$/.exec(size || '');
|
|
21
|
+
if (size && !resolution)
|
|
22
|
+
throw new Error('Use --resolution WIDTHxHEIGHT');
|
|
23
|
+
const patch = { ...(name ? { name } : {}), ...(resolution ? { resolution: { width: Number(resolution[1]), height: Number(resolution[2]) } } : {}) };
|
|
24
|
+
if (action === 'update') {
|
|
25
|
+
if (!name && !resolution)
|
|
26
|
+
throw new Error('Set --name or --resolution WIDTHxHEIGHT');
|
|
27
|
+
const selected = sessionId || requireId(args[2], 'desktop update <workspace-id> <session-id>');
|
|
28
|
+
return printResult(await client.workspaces.desktop.updateSession(id, selected, patch), flags.json);
|
|
29
|
+
}
|
|
30
|
+
if (!name)
|
|
31
|
+
throw new Error('Set --name before creating a desktop');
|
|
32
|
+
if (!resolution && (await client.workspaces.desktop.listSessions(id)).capabilities.resolution)
|
|
33
|
+
throw new Error('Set --resolution WIDTHxHEIGHT before creating a desktop');
|
|
34
|
+
return printResult(await client.workspaces.desktop.createSession(id, { ...patch, name }), flags.json);
|
|
35
|
+
}
|
|
36
|
+
if (action === 'start' || action === 'stop' || action === 'delete') {
|
|
37
|
+
const selected = sessionId || requireId(args[2], `desktop ${action} <workspace-id> <session-id>`);
|
|
38
|
+
if (action === 'start')
|
|
39
|
+
return printResult(await client.workspaces.desktop.startSession(id, selected), flags.json);
|
|
40
|
+
if (action === 'stop')
|
|
41
|
+
return printResult(await client.workspaces.desktop.stopSession(id, selected), flags.json);
|
|
42
|
+
return printResult(await client.workspaces.desktop.deleteSession(id, selected), flags.json);
|
|
43
|
+
}
|
|
14
44
|
if (action === 'install')
|
|
15
45
|
return printResult(await client.workspaces.desktop.install(id), flags.json);
|
|
16
46
|
if (action === 'installation')
|
|
17
47
|
return printResult(await client.workspaces.desktop.installation(id), flags.json);
|
|
18
48
|
if (action === 'ssh')
|
|
19
|
-
return printResult(await client.workspaces.desktop.sshConnection(id), flags.json);
|
|
49
|
+
return printResult(await client.workspaces.desktop.sshConnection(id, sessionId ? { session_id: sessionId } : undefined), flags.json);
|
|
20
50
|
const runtime = await client.workspaces.runtime(id);
|
|
21
51
|
if (action === 'status')
|
|
22
|
-
return printResult(await runtime.desktop.status(), flags.json);
|
|
52
|
+
return printResult(await runtime.desktop.status(sessionId), flags.json);
|
|
23
53
|
if (action === 'enable')
|
|
24
54
|
return printResult(await runtime.desktop.enable(), flags.json);
|
|
25
55
|
if (action === 'disable')
|
|
@@ -28,6 +58,7 @@ export async function desktopCmd(args, flags) {
|
|
|
28
58
|
return printResult(await runtime.desktop.credentials(), flags.json);
|
|
29
59
|
const port = parseFlag(args.slice(2), '--port');
|
|
30
60
|
const tunnel = await runtime.desktop.tunnel({
|
|
61
|
+
sessionId,
|
|
31
62
|
port: port === undefined ? 5901 : Number(port),
|
|
32
63
|
onError: error => console.error(error.message),
|
|
33
64
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desktop.js","sourceRoot":"","sources":["../../../src/cli/commands/desktop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGpD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc,EAAE,KAAe;IAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"desktop.js","sourceRoot":"","sources":["../../../src/cli/commands/desktop.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -31,5 +31,7 @@ export type { ProxyFetchInit } from './runtime/proxy.js';
|
|
|
31
31
|
export { OblienError, AuthenticationError, NotFoundError, RateLimitError, ValidationError, PaymentRequiredError, ConflictError, } from './error.js';
|
|
32
32
|
export type { OblienOptions, RequestOptions, ApiResponse, WorkspaceCreateParams, WorkspaceUpdateParams, WorkspaceListParams, WorkspaceListResponse, WorkspaceData, ResourceSpec, LifecycleSpec, NetworkSpec, FirewallRule, PrivateLink, RuntimeOptions, RuntimeInfo, RuntimeBootService, RuntimeTarget, RuntimeDiscovery, FileListParams, FileEntry, FileListResponse, FileReadParams, FileReadResponse, FileWriteParams, FileWriteResponse, FileMkdirParams, FileStatParams, FileStatResponse, FileDeleteParams, ContentSearchParams, SearchMatch, ContentSearchResponse, FileSearchParams, FileSearchResponse, SearchStatusResponse, SearchInitResponse, ExecRunParams, ExecTask, ExecListResponse, ExecStreamEvent, TerminalCreateParams, TerminalSession, TerminalListResponse, TerminalScrollbackResponse, WatcherCreateParams, WatcherInfo, WatcherListResponse, WSOptions, WSMessage, WSTerminalResize, WSTerminalExit, WSTerminalEvent, WSWatcherChange, WSWatcherReady, WSWatcherOverflow, WSWatcherEvent, TransferProgress, TransferDownloadParams, TransferUploadParams, TransferUploadResponse, LifecycleStatus, IdlePolicy, MakeTemporaryParams, UpdateTtlParams, SshStatus, SshPasswordParams, SshKeyParams, PublicAccessPort, ExposePortParams, UpdateSlugParams, SnapshotParams, ArchiveCreateParams, ArchiveInfo, WorkloadCreateParams, WorkloadUpdateParams, WorkloadInfo, WorkloadListParams, UsageParams, UpdateResourcesParams, UpdateMetadataParams, ApiAccessStatus, RawTokenResponse, NetworkUpdateParams, NetworkConfig, LogsParams, LogFile, LogStreamEvent, StatsEvent, WorkloadStatsEvent, WorkloadLogEntry, WorkloadLogConfig, ImagesListParams, DomainInfo, ConnectDomainParams, ConnectDomainResponse, CheckDNSParams, CheckDNSResponse, RenewSSLResponse, CheckSlugParams, CheckSlugResponse, VerifyDomainParams, VerifyDomainResponse, DomainListParams, DomainRoute, DomainRoutesResponse, SslCertificate, SslListResponse, SslAutoRenewResponse, PageData, PageCreateParams, PageDeployParams, PageUpdateParams, PageListResponse, PageDomainResponse, PageDNSCheckResponse, PageSSLRenewResponse, RouteMatchType, RouteMatch, RouteProxyAction, RouteRewriteAction, RouteRedirectAction, RouteHeadersAction, RouteAction, RouteRule, PageRoutesInput, PageRouteConfig, PageRoutesResponse, PageRouteVersion, PageRoutesGetResponse, RoutesInput, RoutesResult, RoutesGetResponse, SiteData, SiteCreateParams, SiteUpdateParams, SiteListResponse, EdgeProxyData, EdgeProxyCreateParams, EdgeProxyUpdateParams, EdgeProxyListResponse, EdgeProxyVerificationStatus, EdgeProxyVerification, EdgeProxyVerificationChallenge, EdgeProxyVerificationCheckResult, EdgeProxyVerificationListResponse, EdgeTunnelSSLState, EdgeTunnelData, EdgeTunnelCreateParams, EdgeTunnelCheckDomainParams, EdgeTunnelCheckDomainResponse, EdgeTunnelUpdateParams, EdgeTunnelListResponse, EdgeTunnelIssueTokenParams, EdgeTunnelTokenResponse, EdgeTunnelSSLRenewResponse, PushPlatform, PushDeviceStatus, PushTokenStatus, PushDevice, RegisterDeviceParams, PushDeviceListResponse, WorkspacePushToken, CreatedWorkspacePushToken, CreatePushTokenParams, PushTokenListResponse, SendNotificationParams, SendNotificationResponse, WebhookEvent, Webhook, WebhookCreateParams, WebhookUpdateParams, WebhookListParams, WebhookListResponse, WebhookEventsResponse, NamespaceStatus, NamespaceType, NamespaceResourceLimits, NamespaceData, NamespaceCreateParams, NamespaceEnsureParams, NamespaceEnsureResponse, NamespaceUpdateParams, NamespaceListParams, NamespaceListResponse, NamespaceActivity, NamespaceActivityParams, NamespaceUsageParams, NamespaceUsageUnitsParams, NamespaceUsageUnitBucket, NamespaceUsageUnits, NamespaceDeleteParams, OverdraftAction, NamespaceQuota, SetNamespaceQuotaParams, ResetNamespaceQuotaParams, NamespaceListWithQuotasParams, NamespaceDetailsParams, DefaultQuotaConfig, SetDefaultQuotaParams, ToggleDefaultQuotaAutoApplyParams, DeleteDefaultQuotaParams, AnalyticsOverview, AnalyticsDomainSummary, AnalyticsHomeSummary, AnalyticsBucket, AnalyticsTimeseriesParams, AnalyticsTimeseriesResponse, AnalyticsGeoEntry, AnalyticsGeoParams, AnalyticsGeoResponse, AnalyticsRequestEntry, AnalyticsRequestsParams, AnalyticsRequestsResponse, AnalyticsStreamTokenResponse, CdnTokenScope, CdnFile, CdnTokenParams, CdnTokenResponse, CdnUploadInput, CdnUploadParams, CdnUploadVariant, CdnUploadResponse, CdnUploadManyResponse, CdnProcessUrlsParams, CdnProcessUrlsResponse, CdnLimitsResponse, CdnVariantOptionsResponse, CdnListParams, CdnPagination, CdnListResponse, CdnStatsParams, CdnStats, CdnStatsResponse, CdnFileResponse, CdnVariantSpec, CdnVariantOptions, CdnUsageParams, CdnUsageResponse, CdnUsageSeriesParams, CdnUsageSeriesResponse, CdnDomainAddParams, CdnDomainListParams, CdnDomainSsl, CdnDomainDns, CdnDomainAddResponse, CdnDomain, CdnDomainListResponse, CdnDomainRemoveResponse, } from './types/index.js';
|
|
33
33
|
export type { DesktopSshConnection, DesktopInstallation } from './resources/desktop.js';
|
|
34
|
+
export type { DesktopResolution, DesktopSessionCapabilities, DesktopSession, CreateDesktopSession, UpdateDesktopSession, DesktopSessionList, DesktopSessionResult } from './types/desktop.js';
|
|
35
|
+
export type { DesktopStatus, DesktopTunnel } from './runtime/desktop.js';
|
|
34
36
|
export type { ImageCatalogEntry, ImagesListResponse } from './resources/images.js';
|
|
35
37
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { HttpClient } from '../http.js';
|
|
2
|
+
import { type CreateDesktopSession, type UpdateDesktopSession, type DesktopSessionList, type DesktopSessionResult } from '../types/desktop.js';
|
|
2
3
|
export interface DesktopSshConnection {
|
|
3
4
|
success: true;
|
|
5
|
+
session_id?: string;
|
|
4
6
|
expires_at: string;
|
|
5
7
|
ssh: {
|
|
6
8
|
host: string;
|
|
@@ -46,6 +48,17 @@ export declare class DesktopResource {
|
|
|
46
48
|
/** Poll installation. When restart_required, use the normal workspace restart once. */
|
|
47
49
|
installation(workspaceId: string): Promise<DesktopInstallation>;
|
|
48
50
|
/** Issue an eight-hour desktop-only SSH password. Requires enabled desktop access. */
|
|
49
|
-
sshConnection(workspaceId: string
|
|
51
|
+
sshConnection(workspaceId: string, options?: {
|
|
52
|
+
session_id?: string;
|
|
53
|
+
}): Promise<DesktopSshConnection>;
|
|
54
|
+
listSessions(workspaceId: string): Promise<DesktopSessionList>;
|
|
55
|
+
createSession(workspaceId: string, body: CreateDesktopSession): Promise<DesktopSessionResult>;
|
|
56
|
+
getSession(workspaceId: string, id: string): Promise<DesktopSessionResult>;
|
|
57
|
+
updateSession(workspaceId: string, id: string, body: UpdateDesktopSession): Promise<DesktopSessionResult>;
|
|
58
|
+
startSession(workspaceId: string, id: string): Promise<DesktopSessionResult>;
|
|
59
|
+
stopSession(workspaceId: string, id: string): Promise<DesktopSessionResult>;
|
|
60
|
+
deleteSession(workspaceId: string, id: string): Promise<{
|
|
61
|
+
success: true;
|
|
62
|
+
}>;
|
|
50
63
|
}
|
|
51
64
|
//# sourceMappingURL=desktop.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desktop.d.ts","sourceRoot":"","sources":["../../src/resources/desktop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"desktop.d.ts","sourceRoot":"","sources":["../../src/resources/desktop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { desktopSessionPath } from '../types/desktop.js';
|
|
1
2
|
/** Control-plane credentials for native clients. Live display controls stay on runtime.desktop. */
|
|
2
3
|
export class DesktopResource {
|
|
3
4
|
_http;
|
|
@@ -26,8 +27,17 @@ export class DesktopResource {
|
|
|
26
27
|
return result;
|
|
27
28
|
}
|
|
28
29
|
/** Issue an eight-hour desktop-only SSH password. Requires enabled desktop access. */
|
|
29
|
-
sshConnection(workspaceId) {
|
|
30
|
-
|
|
30
|
+
sshConnection(workspaceId, options) {
|
|
31
|
+
if (options?.session_id)
|
|
32
|
+
desktopSessionPath(options.session_id);
|
|
33
|
+
return this._http.request({ method: 'POST', path: `/workspace/${workspaceId}/desktop/ssh`, ...(options ? { body: options } : {}) });
|
|
31
34
|
}
|
|
35
|
+
listSessions(workspaceId) { return this._http.request({ method: 'GET', path: `/workspace/${workspaceId}/desktop/sessions` }); }
|
|
36
|
+
createSession(workspaceId, body) { return this._http.request({ method: 'POST', path: `/workspace/${workspaceId}/desktop/sessions`, body }); }
|
|
37
|
+
getSession(workspaceId, id) { return this._http.request({ method: 'GET', path: `/workspace/${workspaceId}${desktopSessionPath(id)}` }); }
|
|
38
|
+
updateSession(workspaceId, id, body) { return this._http.request({ method: 'PATCH', path: `/workspace/${workspaceId}${desktopSessionPath(id)}`, body }); }
|
|
39
|
+
startSession(workspaceId, id) { return this._http.request({ method: 'POST', path: `/workspace/${workspaceId}${desktopSessionPath(id)}/start` }); }
|
|
40
|
+
stopSession(workspaceId, id) { return this._http.request({ method: 'POST', path: `/workspace/${workspaceId}${desktopSessionPath(id)}/stop` }); }
|
|
41
|
+
deleteSession(workspaceId, id) { return this._http.request({ method: 'DELETE', path: `/workspace/${workspaceId}${desktopSessionPath(id)}` }); }
|
|
32
42
|
}
|
|
33
43
|
//# sourceMappingURL=desktop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desktop.js","sourceRoot":"","sources":["../../src/resources/desktop.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"desktop.js","sourceRoot":"","sources":["../../src/resources/desktop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { RuntimeOptions } from '../types/runtime.js';
|
|
2
2
|
import type { DesktopTunnel } from './desktop.js';
|
|
3
3
|
export declare function openDesktopTunnel(runtime: RuntimeOptions, options: {
|
|
4
|
+
sessionId?: string;
|
|
4
5
|
port?: number;
|
|
5
6
|
onError?: (error: Error) => void;
|
|
6
7
|
}): Promise<DesktopTunnel>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desktop-tunnel.d.ts","sourceRoot":"","sources":["../../src/runtime/desktop-tunnel.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"desktop-tunnel.d.ts","sourceRoot":"","sources":["../../src/runtime/desktop-tunnel.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CAAE,GAC/E,OAAO,CAAC,aAAa,CAAC,CAgDxB"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { createServer } from 'node:net';
|
|
2
2
|
import WebSocket, { createWebSocketStream } from 'ws';
|
|
3
|
+
import { desktopSessionPath } from '../types/desktop.js';
|
|
3
4
|
export async function openDesktopTunnel(runtime, options) {
|
|
4
5
|
const port = options.port ?? 5901;
|
|
5
6
|
if (!Number.isInteger(port) || port < 0 || port > 65535)
|
|
6
7
|
throw new Error('Local port must be an integer from 0 to 65535');
|
|
7
|
-
const endpoint = new URL((runtime.baseUrl ?? 'https://workspace.oblien.com').replace(/\/$/, '') + '/desktop/ws');
|
|
8
|
+
const endpoint = new URL((runtime.baseUrl ?? 'https://workspace.oblien.com').replace(/\/$/, '') + (options.sessionId ? desktopSessionPath(options.sessionId) + '/ws' : '/desktop/ws'));
|
|
8
9
|
endpoint.protocol = endpoint.protocol === 'https:' ? 'wss:' : 'ws:';
|
|
9
10
|
const connections = new Set();
|
|
10
11
|
const server = createServer(socket => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desktop-tunnel.js","sourceRoot":"","sources":["../../src/runtime/desktop-tunnel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,SAAS,EAAE,EAAE,qBAAqB,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"desktop-tunnel.js","sourceRoot":"","sources":["../../src/runtime/desktop-tunnel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { RuntimeHttpClient } from '../runtime-http.js';
|
|
2
2
|
import type { RuntimeOptions } from '../types/runtime.js';
|
|
3
|
+
import { type DesktopSessionCapabilities, type CreateDesktopSession, type UpdateDesktopSession, type DesktopSessionList, type DesktopSessionResult } from '../types/desktop.js';
|
|
3
4
|
export interface DesktopStatus {
|
|
4
5
|
supported: boolean;
|
|
5
6
|
enabled: boolean;
|
|
6
7
|
available: boolean;
|
|
7
8
|
credentials: boolean;
|
|
8
9
|
transports?: ('browser' | 'vnc')[];
|
|
10
|
+
sessions?: DesktopSessionCapabilities;
|
|
9
11
|
}
|
|
10
12
|
export interface DesktopTunnel {
|
|
11
13
|
host: '127.0.0.1';
|
|
@@ -18,7 +20,18 @@ export declare class DesktopResource {
|
|
|
18
20
|
private readonly http;
|
|
19
21
|
private readonly options;
|
|
20
22
|
constructor(http: RuntimeHttpClient, options: RuntimeOptions);
|
|
21
|
-
status(): Promise<DesktopStatus>;
|
|
23
|
+
status(sessionId?: string): Promise<DesktopStatus>;
|
|
24
|
+
listSessions(): Promise<DesktopSessionList>;
|
|
25
|
+
createSession(body: CreateDesktopSession): Promise<DesktopSessionResult>;
|
|
26
|
+
getSession(id: string): Promise<DesktopSessionResult>;
|
|
27
|
+
updateSession(id: string, body: UpdateDesktopSession): Promise<DesktopSessionResult>;
|
|
28
|
+
startSession(id: string): Promise<DesktopSessionResult>;
|
|
29
|
+
/** Ends this desktop's applications. Its profile and workspace files remain. */
|
|
30
|
+
stopSession(id: string): Promise<DesktopSessionResult>;
|
|
31
|
+
/** Delete a stopped desktop and its saved profile. */
|
|
32
|
+
deleteSession(id: string): Promise<{
|
|
33
|
+
success: true;
|
|
34
|
+
}>;
|
|
22
35
|
enable(): Promise<DesktopStatus>;
|
|
23
36
|
disable(): Promise<DesktopStatus>;
|
|
24
37
|
/** Optional OS login account supplied by the image. Never returned by status(). */
|
|
@@ -27,9 +40,12 @@ export declare class DesktopResource {
|
|
|
27
40
|
password: string;
|
|
28
41
|
}>;
|
|
29
42
|
/** Authenticated viewer URL. Treat it as a credential; do not log or share it. */
|
|
30
|
-
url(
|
|
43
|
+
url(options?: {
|
|
44
|
+
sessionId?: string;
|
|
45
|
+
}): string;
|
|
31
46
|
/** Native VNC clients connect to localhost over this authenticated WSS tunnel. Node.js only. */
|
|
32
47
|
tunnel(options?: {
|
|
48
|
+
sessionId?: string;
|
|
33
49
|
port?: number;
|
|
34
50
|
onError?: (error: Error) => void;
|
|
35
51
|
}): Promise<DesktopTunnel>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desktop.d.ts","sourceRoot":"","sources":["../../src/runtime/desktop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"desktop.d.ts","sourceRoot":"","sources":["../../src/runtime/desktop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAsB,KAAK,0BAA0B,EAAE,KAAK,oBAAoB,EAAE,KAAK,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEpM,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,0BAA0B,CAAC;CACvC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,+EAA+E;AAC/E,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAqB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAjD,IAAI,EAAE,iBAAiB,EAAmB,OAAO,EAAE,cAAc;IAE9F,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAIlD,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAC3C,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IACxE,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IACrD,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IACpF,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IACvD,gFAAgF;IAChF,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IACtD,sDAAsD;IACtD,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;IAErD,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC;IAIhC,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;IAIjC,mFAAmF;IACnF,WAAW,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAI9D,kFAAkF;IAClF,GAAG,CAAC,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,MAAM;IAYjD,gGAAgG;IAC1F,MAAM,CAAC,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,CAAC;CAQ5H"}
|