@mainarchfn/point-client 0.1.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/esm/index.js +273 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/index.d.ts +74 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +285 -0
- package/dist/index.js.map +1 -0
- package/package.json +34 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { ApiErrorResponseSchema, CreateChangeSetInputSchema, CreateChangeSetResultSchema, DevelopmentSessionSummarySchema, DevelopmentSessionViewSchema, PaseoEventSchema, RuntimeIdentitySchema, RuntimeRegistrationInputSchema, RuntimeSchema } from "@mainarchfn/point-protocol";
|
|
2
|
+
const RUNTIME_CONTEXT_QUERY = "__paseo_context";
|
|
3
|
+
export class RuntimeIdentityError extends Error {
|
|
4
|
+
issues;
|
|
5
|
+
constructor(message, issues) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = "RuntimeIdentityError";
|
|
8
|
+
this.issues = issues;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export class PaseoNetworkError extends Error {
|
|
12
|
+
constructor(message = "Unable to contact Paseo") {
|
|
13
|
+
super(message);
|
|
14
|
+
this.name = "PaseoNetworkError";
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export class PaseoApiError extends Error {
|
|
18
|
+
code;
|
|
19
|
+
status;
|
|
20
|
+
details;
|
|
21
|
+
constructor(code, message, status, details) {
|
|
22
|
+
super(message);
|
|
23
|
+
this.name = "PaseoApiError";
|
|
24
|
+
this.code = code;
|
|
25
|
+
this.status = status;
|
|
26
|
+
this.details = details;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Reads the explicit server-provided identity, optionally overridden by the
|
|
31
|
+
* runtime context attached to a Point workspace navigation URL. There is
|
|
32
|
+
* intentionally no hostname, port, or local-storage fallback.
|
|
33
|
+
*/
|
|
34
|
+
export function readRuntimeBootstrap(source = globalThis, currentUrl) {
|
|
35
|
+
const context = readRuntimeContext(currentUrl ??
|
|
36
|
+
(typeof globalThis.location !== "undefined" ? globalThis.location.href : undefined));
|
|
37
|
+
const bootstrap = context && source.__PASEO__ && typeof source.__PASEO__ === "object"
|
|
38
|
+
? { ...source.__PASEO__, ...context }
|
|
39
|
+
: context ?? source.__PASEO__;
|
|
40
|
+
const result = RuntimeIdentitySchema.safeParse(bootstrap);
|
|
41
|
+
if (!result.success) {
|
|
42
|
+
throw new RuntimeIdentityError("Invalid runtime identity: window.__PASEO__ or its navigation context is missing or malformed", result.error.issues);
|
|
43
|
+
}
|
|
44
|
+
return result.data;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Adds the complete runtime identity to an application URL. Workspace app
|
|
48
|
+
* processes are intentionally independent of the Point bridge process, so
|
|
49
|
+
* navigation is the handoff that tells a workspace which Point space owns it.
|
|
50
|
+
*/
|
|
51
|
+
export function appendRuntimeContext(destination, context) {
|
|
52
|
+
const parsedContext = RuntimeIdentitySchema.parse(context);
|
|
53
|
+
const url = new URL(destination.toString());
|
|
54
|
+
url.searchParams.set(RUNTIME_CONTEXT_QUERY, JSON.stringify(parsedContext));
|
|
55
|
+
return url.toString();
|
|
56
|
+
}
|
|
57
|
+
function readRuntimeContext(currentUrl) {
|
|
58
|
+
if (!currentUrl)
|
|
59
|
+
return null;
|
|
60
|
+
let value;
|
|
61
|
+
try {
|
|
62
|
+
value = new URL(currentUrl.toString()).searchParams.get(RUNTIME_CONTEXT_QUERY);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
if (!value)
|
|
68
|
+
return null;
|
|
69
|
+
try {
|
|
70
|
+
const parsed = JSON.parse(value);
|
|
71
|
+
const result = RuntimeIdentitySchema.safeParse(parsed);
|
|
72
|
+
if (!result.success) {
|
|
73
|
+
throw new RuntimeIdentityError("Invalid runtime navigation context", result.error.issues);
|
|
74
|
+
}
|
|
75
|
+
return result.data;
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
if (error instanceof RuntimeIdentityError)
|
|
79
|
+
throw error;
|
|
80
|
+
throw new RuntimeIdentityError("Invalid runtime navigation context");
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function defaultFetch() {
|
|
84
|
+
if (typeof globalThis.fetch !== "function") {
|
|
85
|
+
throw new PaseoNetworkError("This environment does not provide fetch");
|
|
86
|
+
}
|
|
87
|
+
return globalThis.fetch.bind(globalThis);
|
|
88
|
+
}
|
|
89
|
+
function defaultEventSourceFactory(url) {
|
|
90
|
+
const EventSourceConstructor = globalThis.EventSource;
|
|
91
|
+
if (!EventSourceConstructor) {
|
|
92
|
+
throw new PaseoNetworkError("This environment does not provide Server-Sent Events");
|
|
93
|
+
}
|
|
94
|
+
return new EventSourceConstructor(url);
|
|
95
|
+
}
|
|
96
|
+
function controlPlaneUrl(runtime) {
|
|
97
|
+
return runtime.controlPlaneUrl.replace(/\/$/, "");
|
|
98
|
+
}
|
|
99
|
+
async function readResponseBody(response) {
|
|
100
|
+
const contentType = response.headers?.get?.("content-type") ?? "";
|
|
101
|
+
if (!contentType && typeof response.json !== "function")
|
|
102
|
+
return undefined;
|
|
103
|
+
if (contentType && !contentType.includes("application/json"))
|
|
104
|
+
return undefined;
|
|
105
|
+
try {
|
|
106
|
+
return await response.json();
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
async function requestJson(fetcher, url, init, parse) {
|
|
113
|
+
let response;
|
|
114
|
+
try {
|
|
115
|
+
response = await fetcher(url, init);
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
const reason = error instanceof Error ? `: ${error.message}` : "";
|
|
119
|
+
throw new PaseoNetworkError(`Unable to contact Paseo${reason}`);
|
|
120
|
+
}
|
|
121
|
+
const body = await readResponseBody(response);
|
|
122
|
+
if (!response.ok) {
|
|
123
|
+
const parsed = ApiErrorResponseSchema.safeParse(body);
|
|
124
|
+
if (parsed.success) {
|
|
125
|
+
throw new PaseoApiError(parsed.data.error.code, parsed.data.error.message, response.status, parsed.data.error.details);
|
|
126
|
+
}
|
|
127
|
+
throw new PaseoApiError(response.status === 404 ? "NOT_FOUND" : "INTERNAL_ERROR", `Paseo request failed with status ${response.status}`, response.status, body);
|
|
128
|
+
}
|
|
129
|
+
return parse(body);
|
|
130
|
+
}
|
|
131
|
+
function jsonRequest(body) {
|
|
132
|
+
return {
|
|
133
|
+
method: "POST",
|
|
134
|
+
headers: {
|
|
135
|
+
"content-type": "application/json",
|
|
136
|
+
accept: "application/json"
|
|
137
|
+
},
|
|
138
|
+
body: JSON.stringify(body)
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
export function createPaseoClient(options = {}) {
|
|
142
|
+
const runtime = RuntimeIdentitySchema.parse(options.runtime ?? readRuntimeBootstrap());
|
|
143
|
+
const fetcher = options.fetch ?? defaultFetch();
|
|
144
|
+
const eventSource = options.eventSourceFactory ?? defaultEventSourceFactory;
|
|
145
|
+
const baseUrl = controlPlaneUrl(runtime);
|
|
146
|
+
return {
|
|
147
|
+
getRuntime() {
|
|
148
|
+
return runtime;
|
|
149
|
+
},
|
|
150
|
+
async createChangeSet(input) {
|
|
151
|
+
const parsedInput = CreateChangeSetInputSchema.parse(input);
|
|
152
|
+
if (parsedInput.runtimeId !== runtime.runtimeId) {
|
|
153
|
+
throw new RuntimeIdentityError("The change set runtimeId does not match the explicit runtime identity");
|
|
154
|
+
}
|
|
155
|
+
return requestJson(fetcher, `${baseUrl}/api/development/change-sets`, jsonRequest(parsedInput), (body) => CreateChangeSetResultSchema.parse(body));
|
|
156
|
+
},
|
|
157
|
+
async getDevelopmentSession(sessionId) {
|
|
158
|
+
return requestJson(fetcher, `${baseUrl}/api/development/sessions/${encodeURIComponent(sessionId)}`, {
|
|
159
|
+
method: "GET",
|
|
160
|
+
headers: { accept: "application/json" }
|
|
161
|
+
}, (body) => DevelopmentSessionViewSchema.parse(body));
|
|
162
|
+
},
|
|
163
|
+
async restartRuntime(sessionId) {
|
|
164
|
+
return requestJson(fetcher, `${baseUrl}/api/development/sessions/${encodeURIComponent(sessionId)}/restart`, {
|
|
165
|
+
method: "POST",
|
|
166
|
+
headers: { accept: "application/json" }
|
|
167
|
+
}, (body) => RuntimeSchema.parse(body));
|
|
168
|
+
},
|
|
169
|
+
async getCurrentDevelopmentSession() {
|
|
170
|
+
const url = new URL(`${baseUrl}/api/development/sessions/current`);
|
|
171
|
+
url.searchParams.set("runtimeId", runtime.runtimeId);
|
|
172
|
+
return requestJson(fetcher, url.toString(), {
|
|
173
|
+
method: "GET",
|
|
174
|
+
headers: { accept: "application/json" }
|
|
175
|
+
}, (body) => body === null ? null : DevelopmentSessionViewSchema.parse(body));
|
|
176
|
+
},
|
|
177
|
+
async listDevelopmentSessions() {
|
|
178
|
+
const url = new URL(`${baseUrl}/api/development/sessions`);
|
|
179
|
+
url.searchParams.set("runtimeId", runtime.runtimeId);
|
|
180
|
+
return requestJson(fetcher, url.toString(), {
|
|
181
|
+
method: "GET",
|
|
182
|
+
headers: { accept: "application/json" }
|
|
183
|
+
}, (body) => {
|
|
184
|
+
if (!Array.isArray(body))
|
|
185
|
+
throw new Error("Paseo returned an invalid space list");
|
|
186
|
+
return body.map((item) => DevelopmentSessionSummarySchema.parse(item));
|
|
187
|
+
});
|
|
188
|
+
},
|
|
189
|
+
subscribeToSession(sessionId, handler) {
|
|
190
|
+
const url = new URL(`${baseUrl}/api/development/sessions/${encodeURIComponent(sessionId)}/events`);
|
|
191
|
+
url.searchParams.set("runtimeId", runtime.runtimeId);
|
|
192
|
+
let source;
|
|
193
|
+
try {
|
|
194
|
+
source = eventSource(url.toString());
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
throw error instanceof PaseoNetworkError
|
|
198
|
+
? error
|
|
199
|
+
: new PaseoNetworkError(error instanceof Error
|
|
200
|
+
? `Unable to contact Paseo: ${error.message}`
|
|
201
|
+
: "Unable to contact Paseo");
|
|
202
|
+
}
|
|
203
|
+
const seenEventIds = new Set();
|
|
204
|
+
const onMessage = (event) => {
|
|
205
|
+
try {
|
|
206
|
+
const parsed = PaseoEventSchema.parse(JSON.parse(event.data));
|
|
207
|
+
if (seenEventIds.has(parsed.id))
|
|
208
|
+
return;
|
|
209
|
+
seenEventIds.add(parsed.id);
|
|
210
|
+
handler(parsed);
|
|
211
|
+
}
|
|
212
|
+
catch {
|
|
213
|
+
// A malformed event must not take down the overlay's event stream.
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
source.onmessage = onMessage;
|
|
217
|
+
if (source.addEventListener) {
|
|
218
|
+
source.addEventListener("paseo", onMessage);
|
|
219
|
+
}
|
|
220
|
+
return () => {
|
|
221
|
+
source.onmessage = null;
|
|
222
|
+
if (source.removeEventListener) {
|
|
223
|
+
source.removeEventListener("paseo", onMessage);
|
|
224
|
+
}
|
|
225
|
+
source.close();
|
|
226
|
+
};
|
|
227
|
+
},
|
|
228
|
+
async registerRuntime(input) {
|
|
229
|
+
const parsedInput = RuntimeRegistrationInputSchema.parse(input);
|
|
230
|
+
const inputSessionId = parsedInput.developmentSessionId ?? parsedInput.sessionId ?? null;
|
|
231
|
+
if (parsedInput.runtimeId !== runtime.runtimeId ||
|
|
232
|
+
parsedInput.projectId !== runtime.projectId ||
|
|
233
|
+
parsedInput.checkoutKind !== runtime.checkoutKind ||
|
|
234
|
+
inputSessionId !== runtime.sessionId) {
|
|
235
|
+
throw new RuntimeIdentityError("Runtime registration does not match the explicit runtime identity");
|
|
236
|
+
}
|
|
237
|
+
return requestJson(fetcher, `${baseUrl}/api/runtimes/register`, jsonRequest(parsedInput), (body) => RuntimeSchema.parse(body));
|
|
238
|
+
},
|
|
239
|
+
async getRuntimeRecord() {
|
|
240
|
+
return requestJson(fetcher, `${baseUrl}/api/runtimes/${encodeURIComponent(runtime.runtimeId)}`, {
|
|
241
|
+
method: "GET",
|
|
242
|
+
headers: { accept: "application/json" }
|
|
243
|
+
}, (body) => RuntimeSchema.parse(body));
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Replaces only the origin/base URL, preserving the active route, query, and
|
|
249
|
+
* hash. The overlay never computes a development port itself.
|
|
250
|
+
*/
|
|
251
|
+
export function constructWorkingRuntimeUrl(runtime, currentUrl, options = {}) {
|
|
252
|
+
const working = new URL(runtime.baseUrl);
|
|
253
|
+
if (options.host)
|
|
254
|
+
working.hostname = options.host;
|
|
255
|
+
const current = currentUrl
|
|
256
|
+
? new URL(currentUrl.toString(), working)
|
|
257
|
+
: typeof globalThis.location !== "undefined"
|
|
258
|
+
? new URL(globalThis.location.href)
|
|
259
|
+
: new URL("http://localhost/");
|
|
260
|
+
working.pathname = current.pathname;
|
|
261
|
+
working.search = current.search;
|
|
262
|
+
working.hash = current.hash;
|
|
263
|
+
return working.toString();
|
|
264
|
+
}
|
|
265
|
+
/** Convenience alias for callers that have a base URL rather than a Runtime. */
|
|
266
|
+
export function buildWorkingRuntimeUrl(baseUrl, currentUrl, options = {}) {
|
|
267
|
+
return constructWorkingRuntimeUrl({ baseUrl }, currentUrl, options);
|
|
268
|
+
}
|
|
269
|
+
/** Route-first spelling for integrations that already have a route string. */
|
|
270
|
+
export function workingRuntimeUrl(currentRoute, baseUrl, options = {}) {
|
|
271
|
+
return constructWorkingRuntimeUrl({ baseUrl }, currentRoute, options);
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { ApiErrorCode, CreateChangeSetInput, CreateChangeSetResult, DevelopmentSessionSummary, DevelopmentSessionView, PaseoEvent, Runtime, RuntimeIdentity, RuntimeRegistrationInput } from "@mainarchfn/point-protocol";
|
|
2
|
+
export type RuntimeNavigationContext = RuntimeIdentity & {
|
|
3
|
+
branch?: string;
|
|
4
|
+
};
|
|
5
|
+
export type FetchLike = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
6
|
+
export interface EventSourceLike {
|
|
7
|
+
onmessage: ((event: MessageEvent<string>) => void) | null;
|
|
8
|
+
onerror: ((event: Event) => void) | null;
|
|
9
|
+
addEventListener?: (type: string, listener: EventListenerOrEventListenerObject) => void;
|
|
10
|
+
removeEventListener?: (type: string, listener: EventListenerOrEventListenerObject) => void;
|
|
11
|
+
close: () => void;
|
|
12
|
+
}
|
|
13
|
+
export type EventSourceFactory = (url: string) => EventSourceLike;
|
|
14
|
+
export interface PaseoClient {
|
|
15
|
+
getRuntime(): RuntimeIdentity;
|
|
16
|
+
createChangeSet(input: CreateChangeSetInput): Promise<CreateChangeSetResult>;
|
|
17
|
+
getDevelopmentSession(sessionId: string): Promise<DevelopmentSessionView>;
|
|
18
|
+
restartRuntime(sessionId: string): Promise<Runtime>;
|
|
19
|
+
getCurrentDevelopmentSession(): Promise<DevelopmentSessionView | null>;
|
|
20
|
+
listDevelopmentSessions(): Promise<DevelopmentSessionSummary[]>;
|
|
21
|
+
subscribeToSession(sessionId: string, handler: (event: PaseoEvent) => void): () => void;
|
|
22
|
+
registerRuntime(input: RuntimeRegistrationInput): Promise<Runtime>;
|
|
23
|
+
getRuntimeRecord(): Promise<Runtime>;
|
|
24
|
+
}
|
|
25
|
+
export interface CreatePaseoClientOptions {
|
|
26
|
+
runtime?: RuntimeIdentity;
|
|
27
|
+
fetch?: FetchLike;
|
|
28
|
+
eventSourceFactory?: EventSourceFactory;
|
|
29
|
+
}
|
|
30
|
+
export declare class RuntimeIdentityError extends Error {
|
|
31
|
+
readonly issues: unknown;
|
|
32
|
+
constructor(message: string, issues?: unknown);
|
|
33
|
+
}
|
|
34
|
+
export declare class PaseoNetworkError extends Error {
|
|
35
|
+
constructor(message?: string);
|
|
36
|
+
}
|
|
37
|
+
export declare class PaseoApiError extends Error {
|
|
38
|
+
readonly code: ApiErrorCode;
|
|
39
|
+
readonly status: number;
|
|
40
|
+
readonly details: unknown;
|
|
41
|
+
constructor(code: ApiErrorCode, message: string, status: number, details?: unknown);
|
|
42
|
+
}
|
|
43
|
+
export type RuntimeBootstrapSource = {
|
|
44
|
+
__PASEO__?: unknown;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Reads the explicit server-provided identity, optionally overridden by the
|
|
48
|
+
* runtime context attached to a Point workspace navigation URL. There is
|
|
49
|
+
* intentionally no hostname, port, or local-storage fallback.
|
|
50
|
+
*/
|
|
51
|
+
export declare function readRuntimeBootstrap(source?: RuntimeBootstrapSource, currentUrl?: string | URL): RuntimeIdentity;
|
|
52
|
+
/**
|
|
53
|
+
* Adds the complete runtime identity to an application URL. Workspace app
|
|
54
|
+
* processes are intentionally independent of the Point bridge process, so
|
|
55
|
+
* navigation is the handoff that tells a workspace which Point space owns it.
|
|
56
|
+
*/
|
|
57
|
+
export declare function appendRuntimeContext(destination: string | URL, context: RuntimeNavigationContext): string;
|
|
58
|
+
export declare function createPaseoClient(options?: CreatePaseoClientOptions): PaseoClient;
|
|
59
|
+
/**
|
|
60
|
+
* Replaces only the origin/base URL, preserving the active route, query, and
|
|
61
|
+
* hash. The overlay never computes a development port itself.
|
|
62
|
+
*/
|
|
63
|
+
export declare function constructWorkingRuntimeUrl(runtime: Pick<Runtime, "baseUrl">, currentUrl?: string | URL, options?: {
|
|
64
|
+
host?: string;
|
|
65
|
+
}): string;
|
|
66
|
+
/** Convenience alias for callers that have a base URL rather than a Runtime. */
|
|
67
|
+
export declare function buildWorkingRuntimeUrl(baseUrl: string, currentUrl?: string | URL, options?: {
|
|
68
|
+
host?: string;
|
|
69
|
+
}): string;
|
|
70
|
+
/** Route-first spelling for integrations that already have a route string. */
|
|
71
|
+
export declare function workingRuntimeUrl(currentRoute: string, baseUrl: string, options?: {
|
|
72
|
+
host?: string;
|
|
73
|
+
}): string;
|
|
74
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PaseoApiError = exports.PaseoNetworkError = exports.RuntimeIdentityError = void 0;
|
|
4
|
+
exports.readRuntimeBootstrap = readRuntimeBootstrap;
|
|
5
|
+
exports.appendRuntimeContext = appendRuntimeContext;
|
|
6
|
+
exports.createPaseoClient = createPaseoClient;
|
|
7
|
+
exports.constructWorkingRuntimeUrl = constructWorkingRuntimeUrl;
|
|
8
|
+
exports.buildWorkingRuntimeUrl = buildWorkingRuntimeUrl;
|
|
9
|
+
exports.workingRuntimeUrl = workingRuntimeUrl;
|
|
10
|
+
const point_protocol_1 = require("@mainarchfn/point-protocol");
|
|
11
|
+
const RUNTIME_CONTEXT_QUERY = "__paseo_context";
|
|
12
|
+
class RuntimeIdentityError extends Error {
|
|
13
|
+
issues;
|
|
14
|
+
constructor(message, issues) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.name = "RuntimeIdentityError";
|
|
17
|
+
this.issues = issues;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.RuntimeIdentityError = RuntimeIdentityError;
|
|
21
|
+
class PaseoNetworkError extends Error {
|
|
22
|
+
constructor(message = "Unable to contact Paseo") {
|
|
23
|
+
super(message);
|
|
24
|
+
this.name = "PaseoNetworkError";
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.PaseoNetworkError = PaseoNetworkError;
|
|
28
|
+
class PaseoApiError extends Error {
|
|
29
|
+
code;
|
|
30
|
+
status;
|
|
31
|
+
details;
|
|
32
|
+
constructor(code, message, status, details) {
|
|
33
|
+
super(message);
|
|
34
|
+
this.name = "PaseoApiError";
|
|
35
|
+
this.code = code;
|
|
36
|
+
this.status = status;
|
|
37
|
+
this.details = details;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.PaseoApiError = PaseoApiError;
|
|
41
|
+
/**
|
|
42
|
+
* Reads the explicit server-provided identity, optionally overridden by the
|
|
43
|
+
* runtime context attached to a Point workspace navigation URL. There is
|
|
44
|
+
* intentionally no hostname, port, or local-storage fallback.
|
|
45
|
+
*/
|
|
46
|
+
function readRuntimeBootstrap(source = globalThis, currentUrl) {
|
|
47
|
+
const context = readRuntimeContext(currentUrl ??
|
|
48
|
+
(typeof globalThis.location !== "undefined" ? globalThis.location.href : undefined));
|
|
49
|
+
const bootstrap = context && source.__PASEO__ && typeof source.__PASEO__ === "object"
|
|
50
|
+
? { ...source.__PASEO__, ...context }
|
|
51
|
+
: context ?? source.__PASEO__;
|
|
52
|
+
const result = point_protocol_1.RuntimeIdentitySchema.safeParse(bootstrap);
|
|
53
|
+
if (!result.success) {
|
|
54
|
+
throw new RuntimeIdentityError("Invalid runtime identity: window.__PASEO__ or its navigation context is missing or malformed", result.error.issues);
|
|
55
|
+
}
|
|
56
|
+
return result.data;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Adds the complete runtime identity to an application URL. Workspace app
|
|
60
|
+
* processes are intentionally independent of the Point bridge process, so
|
|
61
|
+
* navigation is the handoff that tells a workspace which Point space owns it.
|
|
62
|
+
*/
|
|
63
|
+
function appendRuntimeContext(destination, context) {
|
|
64
|
+
const parsedContext = point_protocol_1.RuntimeIdentitySchema.parse(context);
|
|
65
|
+
const url = new URL(destination.toString());
|
|
66
|
+
url.searchParams.set(RUNTIME_CONTEXT_QUERY, JSON.stringify(parsedContext));
|
|
67
|
+
return url.toString();
|
|
68
|
+
}
|
|
69
|
+
function readRuntimeContext(currentUrl) {
|
|
70
|
+
if (!currentUrl)
|
|
71
|
+
return null;
|
|
72
|
+
let value;
|
|
73
|
+
try {
|
|
74
|
+
value = new URL(currentUrl.toString()).searchParams.get(RUNTIME_CONTEXT_QUERY);
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
if (!value)
|
|
80
|
+
return null;
|
|
81
|
+
try {
|
|
82
|
+
const parsed = JSON.parse(value);
|
|
83
|
+
const result = point_protocol_1.RuntimeIdentitySchema.safeParse(parsed);
|
|
84
|
+
if (!result.success) {
|
|
85
|
+
throw new RuntimeIdentityError("Invalid runtime navigation context", result.error.issues);
|
|
86
|
+
}
|
|
87
|
+
return result.data;
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
if (error instanceof RuntimeIdentityError)
|
|
91
|
+
throw error;
|
|
92
|
+
throw new RuntimeIdentityError("Invalid runtime navigation context");
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function defaultFetch() {
|
|
96
|
+
if (typeof globalThis.fetch !== "function") {
|
|
97
|
+
throw new PaseoNetworkError("This environment does not provide fetch");
|
|
98
|
+
}
|
|
99
|
+
return globalThis.fetch.bind(globalThis);
|
|
100
|
+
}
|
|
101
|
+
function defaultEventSourceFactory(url) {
|
|
102
|
+
const EventSourceConstructor = globalThis.EventSource;
|
|
103
|
+
if (!EventSourceConstructor) {
|
|
104
|
+
throw new PaseoNetworkError("This environment does not provide Server-Sent Events");
|
|
105
|
+
}
|
|
106
|
+
return new EventSourceConstructor(url);
|
|
107
|
+
}
|
|
108
|
+
function controlPlaneUrl(runtime) {
|
|
109
|
+
return runtime.controlPlaneUrl.replace(/\/$/, "");
|
|
110
|
+
}
|
|
111
|
+
async function readResponseBody(response) {
|
|
112
|
+
const contentType = response.headers?.get?.("content-type") ?? "";
|
|
113
|
+
if (!contentType && typeof response.json !== "function")
|
|
114
|
+
return undefined;
|
|
115
|
+
if (contentType && !contentType.includes("application/json"))
|
|
116
|
+
return undefined;
|
|
117
|
+
try {
|
|
118
|
+
return await response.json();
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
return undefined;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
async function requestJson(fetcher, url, init, parse) {
|
|
125
|
+
let response;
|
|
126
|
+
try {
|
|
127
|
+
response = await fetcher(url, init);
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
const reason = error instanceof Error ? `: ${error.message}` : "";
|
|
131
|
+
throw new PaseoNetworkError(`Unable to contact Paseo${reason}`);
|
|
132
|
+
}
|
|
133
|
+
const body = await readResponseBody(response);
|
|
134
|
+
if (!response.ok) {
|
|
135
|
+
const parsed = point_protocol_1.ApiErrorResponseSchema.safeParse(body);
|
|
136
|
+
if (parsed.success) {
|
|
137
|
+
throw new PaseoApiError(parsed.data.error.code, parsed.data.error.message, response.status, parsed.data.error.details);
|
|
138
|
+
}
|
|
139
|
+
throw new PaseoApiError(response.status === 404 ? "NOT_FOUND" : "INTERNAL_ERROR", `Paseo request failed with status ${response.status}`, response.status, body);
|
|
140
|
+
}
|
|
141
|
+
return parse(body);
|
|
142
|
+
}
|
|
143
|
+
function jsonRequest(body) {
|
|
144
|
+
return {
|
|
145
|
+
method: "POST",
|
|
146
|
+
headers: {
|
|
147
|
+
"content-type": "application/json",
|
|
148
|
+
accept: "application/json"
|
|
149
|
+
},
|
|
150
|
+
body: JSON.stringify(body)
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
function createPaseoClient(options = {}) {
|
|
154
|
+
const runtime = point_protocol_1.RuntimeIdentitySchema.parse(options.runtime ?? readRuntimeBootstrap());
|
|
155
|
+
const fetcher = options.fetch ?? defaultFetch();
|
|
156
|
+
const eventSource = options.eventSourceFactory ?? defaultEventSourceFactory;
|
|
157
|
+
const baseUrl = controlPlaneUrl(runtime);
|
|
158
|
+
return {
|
|
159
|
+
getRuntime() {
|
|
160
|
+
return runtime;
|
|
161
|
+
},
|
|
162
|
+
async createChangeSet(input) {
|
|
163
|
+
const parsedInput = point_protocol_1.CreateChangeSetInputSchema.parse(input);
|
|
164
|
+
if (parsedInput.runtimeId !== runtime.runtimeId) {
|
|
165
|
+
throw new RuntimeIdentityError("The change set runtimeId does not match the explicit runtime identity");
|
|
166
|
+
}
|
|
167
|
+
return requestJson(fetcher, `${baseUrl}/api/development/change-sets`, jsonRequest(parsedInput), (body) => point_protocol_1.CreateChangeSetResultSchema.parse(body));
|
|
168
|
+
},
|
|
169
|
+
async getDevelopmentSession(sessionId) {
|
|
170
|
+
return requestJson(fetcher, `${baseUrl}/api/development/sessions/${encodeURIComponent(sessionId)}`, {
|
|
171
|
+
method: "GET",
|
|
172
|
+
headers: { accept: "application/json" }
|
|
173
|
+
}, (body) => point_protocol_1.DevelopmentSessionViewSchema.parse(body));
|
|
174
|
+
},
|
|
175
|
+
async restartRuntime(sessionId) {
|
|
176
|
+
return requestJson(fetcher, `${baseUrl}/api/development/sessions/${encodeURIComponent(sessionId)}/restart`, {
|
|
177
|
+
method: "POST",
|
|
178
|
+
headers: { accept: "application/json" }
|
|
179
|
+
}, (body) => point_protocol_1.RuntimeSchema.parse(body));
|
|
180
|
+
},
|
|
181
|
+
async getCurrentDevelopmentSession() {
|
|
182
|
+
const url = new URL(`${baseUrl}/api/development/sessions/current`);
|
|
183
|
+
url.searchParams.set("runtimeId", runtime.runtimeId);
|
|
184
|
+
return requestJson(fetcher, url.toString(), {
|
|
185
|
+
method: "GET",
|
|
186
|
+
headers: { accept: "application/json" }
|
|
187
|
+
}, (body) => body === null ? null : point_protocol_1.DevelopmentSessionViewSchema.parse(body));
|
|
188
|
+
},
|
|
189
|
+
async listDevelopmentSessions() {
|
|
190
|
+
const url = new URL(`${baseUrl}/api/development/sessions`);
|
|
191
|
+
url.searchParams.set("runtimeId", runtime.runtimeId);
|
|
192
|
+
return requestJson(fetcher, url.toString(), {
|
|
193
|
+
method: "GET",
|
|
194
|
+
headers: { accept: "application/json" }
|
|
195
|
+
}, (body) => {
|
|
196
|
+
if (!Array.isArray(body))
|
|
197
|
+
throw new Error("Paseo returned an invalid space list");
|
|
198
|
+
return body.map((item) => point_protocol_1.DevelopmentSessionSummarySchema.parse(item));
|
|
199
|
+
});
|
|
200
|
+
},
|
|
201
|
+
subscribeToSession(sessionId, handler) {
|
|
202
|
+
const url = new URL(`${baseUrl}/api/development/sessions/${encodeURIComponent(sessionId)}/events`);
|
|
203
|
+
url.searchParams.set("runtimeId", runtime.runtimeId);
|
|
204
|
+
let source;
|
|
205
|
+
try {
|
|
206
|
+
source = eventSource(url.toString());
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
throw error instanceof PaseoNetworkError
|
|
210
|
+
? error
|
|
211
|
+
: new PaseoNetworkError(error instanceof Error
|
|
212
|
+
? `Unable to contact Paseo: ${error.message}`
|
|
213
|
+
: "Unable to contact Paseo");
|
|
214
|
+
}
|
|
215
|
+
const seenEventIds = new Set();
|
|
216
|
+
const onMessage = (event) => {
|
|
217
|
+
try {
|
|
218
|
+
const parsed = point_protocol_1.PaseoEventSchema.parse(JSON.parse(event.data));
|
|
219
|
+
if (seenEventIds.has(parsed.id))
|
|
220
|
+
return;
|
|
221
|
+
seenEventIds.add(parsed.id);
|
|
222
|
+
handler(parsed);
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
// A malformed event must not take down the overlay's event stream.
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
source.onmessage = onMessage;
|
|
229
|
+
if (source.addEventListener) {
|
|
230
|
+
source.addEventListener("paseo", onMessage);
|
|
231
|
+
}
|
|
232
|
+
return () => {
|
|
233
|
+
source.onmessage = null;
|
|
234
|
+
if (source.removeEventListener) {
|
|
235
|
+
source.removeEventListener("paseo", onMessage);
|
|
236
|
+
}
|
|
237
|
+
source.close();
|
|
238
|
+
};
|
|
239
|
+
},
|
|
240
|
+
async registerRuntime(input) {
|
|
241
|
+
const parsedInput = point_protocol_1.RuntimeRegistrationInputSchema.parse(input);
|
|
242
|
+
const inputSessionId = parsedInput.developmentSessionId ?? parsedInput.sessionId ?? null;
|
|
243
|
+
if (parsedInput.runtimeId !== runtime.runtimeId ||
|
|
244
|
+
parsedInput.projectId !== runtime.projectId ||
|
|
245
|
+
parsedInput.checkoutKind !== runtime.checkoutKind ||
|
|
246
|
+
inputSessionId !== runtime.sessionId) {
|
|
247
|
+
throw new RuntimeIdentityError("Runtime registration does not match the explicit runtime identity");
|
|
248
|
+
}
|
|
249
|
+
return requestJson(fetcher, `${baseUrl}/api/runtimes/register`, jsonRequest(parsedInput), (body) => point_protocol_1.RuntimeSchema.parse(body));
|
|
250
|
+
},
|
|
251
|
+
async getRuntimeRecord() {
|
|
252
|
+
return requestJson(fetcher, `${baseUrl}/api/runtimes/${encodeURIComponent(runtime.runtimeId)}`, {
|
|
253
|
+
method: "GET",
|
|
254
|
+
headers: { accept: "application/json" }
|
|
255
|
+
}, (body) => point_protocol_1.RuntimeSchema.parse(body));
|
|
256
|
+
}
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Replaces only the origin/base URL, preserving the active route, query, and
|
|
261
|
+
* hash. The overlay never computes a development port itself.
|
|
262
|
+
*/
|
|
263
|
+
function constructWorkingRuntimeUrl(runtime, currentUrl, options = {}) {
|
|
264
|
+
const working = new URL(runtime.baseUrl);
|
|
265
|
+
if (options.host)
|
|
266
|
+
working.hostname = options.host;
|
|
267
|
+
const current = currentUrl
|
|
268
|
+
? new URL(currentUrl.toString(), working)
|
|
269
|
+
: typeof globalThis.location !== "undefined"
|
|
270
|
+
? new URL(globalThis.location.href)
|
|
271
|
+
: new URL("http://localhost/");
|
|
272
|
+
working.pathname = current.pathname;
|
|
273
|
+
working.search = current.search;
|
|
274
|
+
working.hash = current.hash;
|
|
275
|
+
return working.toString();
|
|
276
|
+
}
|
|
277
|
+
/** Convenience alias for callers that have a base URL rather than a Runtime. */
|
|
278
|
+
function buildWorkingRuntimeUrl(baseUrl, currentUrl, options = {}) {
|
|
279
|
+
return constructWorkingRuntimeUrl({ baseUrl }, currentUrl, options);
|
|
280
|
+
}
|
|
281
|
+
/** Route-first spelling for integrations that already have a route string. */
|
|
282
|
+
function workingRuntimeUrl(currentRoute, baseUrl, options = {}) {
|
|
283
|
+
return constructWorkingRuntimeUrl({ baseUrl }, currentRoute, options);
|
|
284
|
+
}
|
|
285
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mainarchfn/point-client",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Browser-safe HTTP/SSE client and runtime bootstrap helpers for Paseo.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/mainarchfn/point.git",
|
|
9
|
+
"directory": "packages/paseo-client"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist"
|
|
13
|
+
],
|
|
14
|
+
"publishConfig": {
|
|
15
|
+
"access": "public"
|
|
16
|
+
},
|
|
17
|
+
"main": "dist/index.js",
|
|
18
|
+
"types": "dist/index.d.ts",
|
|
19
|
+
"exports": {
|
|
20
|
+
".": {
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"import": "./dist/esm/index.js",
|
|
23
|
+
"require": "./dist/index.js",
|
|
24
|
+
"default": "./dist/index.js"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"scripts": {
|
|
28
|
+
"build": "tsc -p tsconfig.json && tsc -p tsconfig.esm.json",
|
|
29
|
+
"prepublishOnly": "npm run build"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@mainarchfn/point-protocol": "0.1.0"
|
|
33
|
+
}
|
|
34
|
+
}
|