@pantheon-systems/css-client 0.4.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/auth.d.ts +54 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +72 -0
- package/dist/auth.js.map +1 -0
- package/dist/broker.d.ts +41 -0
- package/dist/broker.d.ts.map +1 -0
- package/dist/broker.js +187 -0
- package/dist/broker.js.map +1 -0
- package/dist/client.d.ts +138 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +130 -0
- package/dist/client.js.map +1 -0
- package/dist/content.d.ts +45 -0
- package/dist/content.d.ts.map +1 -0
- package/dist/content.js +65 -0
- package/dist/content.js.map +1 -0
- package/dist/endpoints/agent-edit.d.ts +79 -0
- package/dist/endpoints/agent-edit.d.ts.map +1 -0
- package/dist/endpoints/agent-edit.js +125 -0
- package/dist/endpoints/agent-edit.js.map +1 -0
- package/dist/endpoints/agent-registry.d.ts +59 -0
- package/dist/endpoints/agent-registry.d.ts.map +1 -0
- package/dist/endpoints/agent-registry.js +96 -0
- package/dist/endpoints/agent-registry.js.map +1 -0
- package/dist/endpoints/base.d.ts +49 -0
- package/dist/endpoints/base.d.ts.map +1 -0
- package/dist/endpoints/base.js +150 -0
- package/dist/endpoints/base.js.map +1 -0
- package/dist/endpoints/branches.d.ts +32 -0
- package/dist/endpoints/branches.d.ts.map +1 -0
- package/dist/endpoints/branches.js +69 -0
- package/dist/endpoints/branches.js.map +1 -0
- package/dist/endpoints/checkpoints.d.ts +36 -0
- package/dist/endpoints/checkpoints.d.ts.map +1 -0
- package/dist/endpoints/checkpoints.js +76 -0
- package/dist/endpoints/checkpoints.js.map +1 -0
- package/dist/endpoints/documents.d.ts +46 -0
- package/dist/endpoints/documents.d.ts.map +1 -0
- package/dist/endpoints/documents.js +101 -0
- package/dist/endpoints/documents.js.map +1 -0
- package/dist/endpoints/index.d.ts +15 -0
- package/dist/endpoints/index.d.ts.map +1 -0
- package/dist/endpoints/index.js +16 -0
- package/dist/endpoints/index.js.map +1 -0
- package/dist/endpoints/merge.d.ts +51 -0
- package/dist/endpoints/merge.d.ts.map +1 -0
- package/dist/endpoints/merge.js +104 -0
- package/dist/endpoints/merge.js.map +1 -0
- package/dist/endpoints/presence.d.ts +55 -0
- package/dist/endpoints/presence.d.ts.map +1 -0
- package/dist/endpoints/presence.js +72 -0
- package/dist/endpoints/presence.js.map +1 -0
- package/dist/endpoints/sites.d.ts +20 -0
- package/dist/endpoints/sites.d.ts.map +1 -0
- package/dist/endpoints/sites.js +38 -0
- package/dist/endpoints/sites.js.map +1 -0
- package/dist/endpoints/versions.d.ts +37 -0
- package/dist/endpoints/versions.d.ts.map +1 -0
- package/dist/endpoints/versions.js +64 -0
- package/dist/endpoints/versions.js.map +1 -0
- package/dist/errors.d.ts +61 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +87 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/jwt-utils.d.ts +13 -0
- package/dist/jwt-utils.d.ts.map +1 -0
- package/dist/jwt-utils.js +45 -0
- package/dist/jwt-utils.js.map +1 -0
- package/dist/oauth.d.ts +64 -0
- package/dist/oauth.d.ts.map +1 -0
- package/dist/oauth.js +62 -0
- package/dist/oauth.js.map +1 -0
- package/dist/realtime.d.ts +314 -0
- package/dist/realtime.d.ts.map +1 -0
- package/dist/realtime.js +615 -0
- package/dist/realtime.js.map +1 -0
- package/dist/types.d.ts +703 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +3 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +17 -0
- package/dist/utils.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merge Endpoint
|
|
3
|
+
*
|
|
4
|
+
* API operations for merge checks, previews, execution, and merge requests.
|
|
5
|
+
*/
|
|
6
|
+
export class MergeEndpoint {
|
|
7
|
+
base;
|
|
8
|
+
constructor(base) {
|
|
9
|
+
this.base = base;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Check mergeability between two branches.
|
|
13
|
+
*/
|
|
14
|
+
async checkMergeability(siteId, sourceBranchId, targetBranchId) {
|
|
15
|
+
return this.base.request(`/api/sites/${siteId}/merge/check`, {
|
|
16
|
+
method: 'POST',
|
|
17
|
+
body: JSON.stringify({ sourceBranchId, targetBranchId }),
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Preview a merge between two branches.
|
|
22
|
+
*/
|
|
23
|
+
async preview(siteId, sourceBranchId, targetBranchId, options) {
|
|
24
|
+
return this.base.request(`/api/sites/${siteId}/merge/preview`, {
|
|
25
|
+
method: 'POST',
|
|
26
|
+
body: JSON.stringify({
|
|
27
|
+
sourceBranchId,
|
|
28
|
+
targetBranchId,
|
|
29
|
+
...(options?.includeContent !== undefined && { includeContent: options.includeContent }),
|
|
30
|
+
...(options?.excludePathPrefixes !== undefined && { excludePathPrefixes: options.excludePathPrefixes }),
|
|
31
|
+
}),
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Execute a merge between two branches.
|
|
36
|
+
*/
|
|
37
|
+
async execute(siteId, params) {
|
|
38
|
+
return this.base.request(`/api/sites/${siteId}/merge/execute`, {
|
|
39
|
+
method: 'POST',
|
|
40
|
+
body: JSON.stringify(params),
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Create a merge request.
|
|
45
|
+
*/
|
|
46
|
+
async createRequest(siteId, params) {
|
|
47
|
+
return this.base.request(`/api/sites/${siteId}/merge-requests`, {
|
|
48
|
+
method: 'POST',
|
|
49
|
+
body: JSON.stringify(params),
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Get a merge request by ID.
|
|
54
|
+
*/
|
|
55
|
+
async getRequest(siteId, requestId) {
|
|
56
|
+
return this.base.request(`/api/sites/${siteId}/merge-requests/${requestId}`, {
|
|
57
|
+
method: 'GET',
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* List merge requests for a site.
|
|
62
|
+
*/
|
|
63
|
+
async listRequests(siteId, options) {
|
|
64
|
+
const params = new URLSearchParams();
|
|
65
|
+
if (options?.status) {
|
|
66
|
+
params.set('status', options.status);
|
|
67
|
+
}
|
|
68
|
+
const query = params.toString();
|
|
69
|
+
const path = query
|
|
70
|
+
? `/api/sites/${siteId}/merge-requests?${query}`
|
|
71
|
+
: `/api/sites/${siteId}/merge-requests`;
|
|
72
|
+
const response = await this.base.request(path, {
|
|
73
|
+
method: 'GET',
|
|
74
|
+
});
|
|
75
|
+
return response.mergeRequests;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Update a merge request.
|
|
79
|
+
*/
|
|
80
|
+
async updateRequest(siteId, requestId, params) {
|
|
81
|
+
return this.base.request(`/api/sites/${siteId}/merge-requests/${requestId}`, {
|
|
82
|
+
method: 'PATCH',
|
|
83
|
+
body: JSON.stringify(params),
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Delete a merge request.
|
|
88
|
+
*/
|
|
89
|
+
async deleteRequest(siteId, requestId) {
|
|
90
|
+
await this.base.request(`/api/sites/${siteId}/merge-requests/${requestId}`, {
|
|
91
|
+
method: 'DELETE',
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Execute a merge request.
|
|
96
|
+
*/
|
|
97
|
+
async executeRequest(siteId, requestId, options) {
|
|
98
|
+
return this.base.request(`/api/sites/${siteId}/merge-requests/${requestId}/execute`, {
|
|
99
|
+
method: 'POST',
|
|
100
|
+
body: JSON.stringify(options ?? {}),
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=merge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/endpoints/merge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Presence Endpoint
|
|
3
|
+
*
|
|
4
|
+
* API endpoints for querying presence data at site, branch, and agent levels.
|
|
5
|
+
*/
|
|
6
|
+
import type { BaseEndpoint } from './base.js';
|
|
7
|
+
import type { SitePresence, BranchPresence, AgentGlobalPresence, UpdateFocusRegionsResponse } from '../types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Presence endpoint for querying actor presence data.
|
|
10
|
+
*/
|
|
11
|
+
export declare class PresenceEndpoint {
|
|
12
|
+
private readonly base;
|
|
13
|
+
constructor(base: BaseEndpoint);
|
|
14
|
+
/**
|
|
15
|
+
* Get site-level presence rollup.
|
|
16
|
+
*
|
|
17
|
+
* Returns summary of all actors present across all branches in a site.
|
|
18
|
+
*/
|
|
19
|
+
getSitePresence(siteId: string): Promise<SitePresence>;
|
|
20
|
+
/**
|
|
21
|
+
* Get branch-level presence rollup.
|
|
22
|
+
*
|
|
23
|
+
* Returns all actors present on a branch with their current state,
|
|
24
|
+
* intent, and focus regions.
|
|
25
|
+
*/
|
|
26
|
+
getBranchPresence(siteId: string, branchId: string): Promise<BranchPresence>;
|
|
27
|
+
/**
|
|
28
|
+
* Get an agent's global presence across an organization.
|
|
29
|
+
*
|
|
30
|
+
* Returns all locations where an agent is currently present.
|
|
31
|
+
*/
|
|
32
|
+
getAgentPresence(orgId: string, agentId: string): Promise<AgentGlobalPresence>;
|
|
33
|
+
/**
|
|
34
|
+
* Update focus regions for a human user in a document session.
|
|
35
|
+
*
|
|
36
|
+
* Reports which components/regions the user has selected in the editor.
|
|
37
|
+
* This is used for proactive collision detection - agents will avoid
|
|
38
|
+
* editing regions where a human has focus, even if no edits have been made.
|
|
39
|
+
*
|
|
40
|
+
* @param siteId - The site ID
|
|
41
|
+
* @param branchId - The branch ID
|
|
42
|
+
* @param documentPath - The document path (will be URL-encoded)
|
|
43
|
+
* @param actorId - The user's actor ID (identifies who is updating focus)
|
|
44
|
+
* @param focusRegions - Array of JSON paths representing focused regions.
|
|
45
|
+
* Pass empty array to clear focus.
|
|
46
|
+
* @returns The confirmed focus regions from the server
|
|
47
|
+
*
|
|
48
|
+
* @remarks
|
|
49
|
+
* - Only users (not agents) can call this endpoint
|
|
50
|
+
* - Maximum 50 focus regions per request
|
|
51
|
+
* - Focus regions expire after 30 seconds without a heartbeat
|
|
52
|
+
*/
|
|
53
|
+
updateFocusRegions(siteId: string, branchId: string, documentPath: string, actorId: string, focusRegions: string[]): Promise<UpdateFocusRegionsResponse>;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=presence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../../src/endpoints/presence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,0BAA0B,EAC3B,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAE/C;;;;OAIG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAM5D;;;;;OAKG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAOlF;;;;OAIG;IACG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAOpF;;;;;;;;;;;;;;;;;;;OAmBG;IACG,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,0BAA0B,CAAC;CAavC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Presence Endpoint
|
|
3
|
+
*
|
|
4
|
+
* API endpoints for querying presence data at site, branch, and agent levels.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Presence endpoint for querying actor presence data.
|
|
8
|
+
*/
|
|
9
|
+
export class PresenceEndpoint {
|
|
10
|
+
base;
|
|
11
|
+
constructor(base) {
|
|
12
|
+
this.base = base;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Get site-level presence rollup.
|
|
16
|
+
*
|
|
17
|
+
* Returns summary of all actors present across all branches in a site.
|
|
18
|
+
*/
|
|
19
|
+
async getSitePresence(siteId) {
|
|
20
|
+
return this.base.request(`/api/sites/${siteId}/presence`, {
|
|
21
|
+
method: 'GET',
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get branch-level presence rollup.
|
|
26
|
+
*
|
|
27
|
+
* Returns all actors present on a branch with their current state,
|
|
28
|
+
* intent, and focus regions.
|
|
29
|
+
*/
|
|
30
|
+
async getBranchPresence(siteId, branchId) {
|
|
31
|
+
return this.base.request(`/api/sites/${siteId}/branches/${branchId}/presence`, { method: 'GET' });
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get an agent's global presence across an organization.
|
|
35
|
+
*
|
|
36
|
+
* Returns all locations where an agent is currently present.
|
|
37
|
+
*/
|
|
38
|
+
async getAgentPresence(orgId, agentId) {
|
|
39
|
+
return this.base.request(`/api/organizations/${orgId}/agents/${agentId}/presence`, { method: 'GET' });
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Update focus regions for a human user in a document session.
|
|
43
|
+
*
|
|
44
|
+
* Reports which components/regions the user has selected in the editor.
|
|
45
|
+
* This is used for proactive collision detection - agents will avoid
|
|
46
|
+
* editing regions where a human has focus, even if no edits have been made.
|
|
47
|
+
*
|
|
48
|
+
* @param siteId - The site ID
|
|
49
|
+
* @param branchId - The branch ID
|
|
50
|
+
* @param documentPath - The document path (will be URL-encoded)
|
|
51
|
+
* @param actorId - The user's actor ID (identifies who is updating focus)
|
|
52
|
+
* @param focusRegions - Array of JSON paths representing focused regions.
|
|
53
|
+
* Pass empty array to clear focus.
|
|
54
|
+
* @returns The confirmed focus regions from the server
|
|
55
|
+
*
|
|
56
|
+
* @remarks
|
|
57
|
+
* - Only users (not agents) can call this endpoint
|
|
58
|
+
* - Maximum 50 focus regions per request
|
|
59
|
+
* - Focus regions expire after 30 seconds without a heartbeat
|
|
60
|
+
*/
|
|
61
|
+
async updateFocusRegions(siteId, branchId, documentPath, actorId, focusRegions) {
|
|
62
|
+
const encodedPath = encodeURIComponent(documentPath);
|
|
63
|
+
return this.base.request(`/api/sites/${siteId}/branches/${branchId}/documents/${encodedPath}/focus-regions`, {
|
|
64
|
+
method: 'POST',
|
|
65
|
+
body: JSON.stringify({ actorId, focusRegions }),
|
|
66
|
+
headers: {
|
|
67
|
+
'X-Actor-Type': 'user',
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=presence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presence.js","sourceRoot":"","sources":["../../src/endpoints/presence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACE;IAA7B,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,MAAc;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAe,cAAc,MAAM,WAAW,EAAE;YACtE,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,QAAgB;QACtD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,cAAc,MAAM,aAAa,QAAQ,WAAW,EACpD,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,KAAa,EAAE,OAAe;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,sBAAsB,KAAK,WAAW,OAAO,WAAW,EACxD,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,kBAAkB,CACtB,MAAc,EACd,QAAgB,EAChB,YAAoB,EACpB,OAAe,EACf,YAAsB;QAEtB,MAAM,WAAW,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,cAAc,MAAM,aAAa,QAAQ,cAAc,WAAW,gBAAgB,EAClF;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;YAC/C,OAAO,EAAE;gBACP,cAAc,EAAE,MAAM;aACvB;SACF,CACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sites Endpoint
|
|
3
|
+
*
|
|
4
|
+
* API operations for sites.
|
|
5
|
+
*/
|
|
6
|
+
import type { Site, PaginationOptions } from '../types.js';
|
|
7
|
+
import type { BaseEndpoint } from './base.js';
|
|
8
|
+
export declare class SitesEndpoint {
|
|
9
|
+
private readonly base;
|
|
10
|
+
constructor(base: BaseEndpoint);
|
|
11
|
+
/**
|
|
12
|
+
* Get a site by ID.
|
|
13
|
+
*/
|
|
14
|
+
get(siteId: string): Promise<Site>;
|
|
15
|
+
/**
|
|
16
|
+
* List all sites.
|
|
17
|
+
*/
|
|
18
|
+
list(options?: PaginationOptions): Promise<Site[]>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=sites.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../../src/endpoints/sites.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAE/C;;OAEG;IACG,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxC;;OAEG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAkBzD"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sites Endpoint
|
|
3
|
+
*
|
|
4
|
+
* API operations for sites.
|
|
5
|
+
*/
|
|
6
|
+
export class SitesEndpoint {
|
|
7
|
+
base;
|
|
8
|
+
constructor(base) {
|
|
9
|
+
this.base = base;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Get a site by ID.
|
|
13
|
+
*/
|
|
14
|
+
async get(siteId) {
|
|
15
|
+
return this.base.request(`/api/sites/${siteId}`, {
|
|
16
|
+
method: 'GET',
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* List all sites.
|
|
21
|
+
*/
|
|
22
|
+
async list(options) {
|
|
23
|
+
const params = new URLSearchParams();
|
|
24
|
+
if (options?.limit !== undefined) {
|
|
25
|
+
params.set('limit', String(options.limit));
|
|
26
|
+
}
|
|
27
|
+
if (options?.offset !== undefined) {
|
|
28
|
+
params.set('offset', String(options.offset));
|
|
29
|
+
}
|
|
30
|
+
const query = params.toString();
|
|
31
|
+
const path = query ? `/api/sites?${query}` : '/api/sites';
|
|
32
|
+
const response = await this.base.request(path, {
|
|
33
|
+
method: 'GET',
|
|
34
|
+
});
|
|
35
|
+
return response.sites;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=sites.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sites.js","sourceRoot":"","sources":["../../src/endpoints/sites.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,OAAO,aAAa;IACK;IAA7B,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,MAAc;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAO,cAAc,MAAM,EAAE,EAAE;YACrD,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,OAA2B;QACpC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,OAAO,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,OAAO,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;QAE1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAoB,IAAI,EAAE;YAChE,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;CACF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Versions Endpoint
|
|
3
|
+
*
|
|
4
|
+
* API operations for document versions.
|
|
5
|
+
*/
|
|
6
|
+
import type { DocumentVersion, CreateDocumentVersionParams, PaginationOptions } from '../types.js';
|
|
7
|
+
import type { BaseEndpoint } from './base.js';
|
|
8
|
+
export declare class VersionsEndpoint {
|
|
9
|
+
private readonly base;
|
|
10
|
+
constructor(base: BaseEndpoint);
|
|
11
|
+
/**
|
|
12
|
+
* Get the latest version of a document on a branch.
|
|
13
|
+
*/
|
|
14
|
+
getLatest(siteId: string, branchId: string, documentId: string): Promise<DocumentVersion>;
|
|
15
|
+
/**
|
|
16
|
+
* Get a specific version by ID.
|
|
17
|
+
*/
|
|
18
|
+
get(siteId: string, branchId: string, documentId: string, versionId: string): Promise<DocumentVersion>;
|
|
19
|
+
/**
|
|
20
|
+
* List all versions of a document on a branch.
|
|
21
|
+
*/
|
|
22
|
+
list(siteId: string, branchId: string, documentId: string, options?: PaginationOptions): Promise<DocumentVersion[]>;
|
|
23
|
+
/**
|
|
24
|
+
* Create a new version of a document.
|
|
25
|
+
*/
|
|
26
|
+
create(siteId: string, params: CreateDocumentVersionParams): Promise<DocumentVersion>;
|
|
27
|
+
/**
|
|
28
|
+
* Restore a previous version, promoting it to the current state of the document.
|
|
29
|
+
*
|
|
30
|
+
* The server creates a new CoW version entry referencing the same immutable
|
|
31
|
+
* snapshot data as the source version — no data round-trip required.
|
|
32
|
+
*
|
|
33
|
+
* @see https://github.com/pantheon-systems/collaborative-state-system/issues/80
|
|
34
|
+
*/
|
|
35
|
+
restore(siteId: string, branchId: string, documentId: string, versionId: string): Promise<DocumentVersion>;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=versions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../../src/endpoints/versions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAE/C;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAO/F;;OAEG;IACG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAO5G;;OAEG;IACG,IAAI,CACR,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,eAAe,EAAE,CAAC;IAqB7B;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,eAAe,CAAC;IAU3F;;;;;;;OAOG;IACG,OAAO,CACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC;CAM5B"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Versions Endpoint
|
|
3
|
+
*
|
|
4
|
+
* API operations for document versions.
|
|
5
|
+
*/
|
|
6
|
+
export class VersionsEndpoint {
|
|
7
|
+
base;
|
|
8
|
+
constructor(base) {
|
|
9
|
+
this.base = base;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Get the latest version of a document on a branch.
|
|
13
|
+
*/
|
|
14
|
+
async getLatest(siteId, branchId, documentId) {
|
|
15
|
+
return this.base.request(`/api/sites/${siteId}/branches/${branchId}/documents/${documentId}/versions/latest`, { method: 'GET' });
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Get a specific version by ID.
|
|
19
|
+
*/
|
|
20
|
+
async get(siteId, branchId, documentId, versionId) {
|
|
21
|
+
return this.base.request(`/api/sites/${siteId}/branches/${branchId}/documents/${documentId}/versions/${versionId}`, { method: 'GET' });
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* List all versions of a document on a branch.
|
|
25
|
+
*/
|
|
26
|
+
async list(siteId, branchId, documentId, options) {
|
|
27
|
+
const params = new URLSearchParams();
|
|
28
|
+
if (options?.limit !== undefined) {
|
|
29
|
+
params.set('limit', String(options.limit));
|
|
30
|
+
}
|
|
31
|
+
if (options?.offset !== undefined) {
|
|
32
|
+
params.set('offset', String(options.offset));
|
|
33
|
+
}
|
|
34
|
+
const query = params.toString();
|
|
35
|
+
const path = query
|
|
36
|
+
? `/api/sites/${siteId}/branches/${branchId}/documents/${documentId}/versions?${query}`
|
|
37
|
+
: `/api/sites/${siteId}/branches/${branchId}/documents/${documentId}/versions`;
|
|
38
|
+
const response = await this.base.request(path, {
|
|
39
|
+
method: 'GET',
|
|
40
|
+
});
|
|
41
|
+
return response.versions;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Create a new version of a document.
|
|
45
|
+
*/
|
|
46
|
+
async create(siteId, params) {
|
|
47
|
+
return this.base.request(`/api/sites/${siteId}/branches/${params.branchId}/documents/${params.documentId}/versions`, {
|
|
48
|
+
method: 'POST',
|
|
49
|
+
body: JSON.stringify({ snapshot: params.snapshot }),
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Restore a previous version, promoting it to the current state of the document.
|
|
54
|
+
*
|
|
55
|
+
* The server creates a new CoW version entry referencing the same immutable
|
|
56
|
+
* snapshot data as the source version — no data round-trip required.
|
|
57
|
+
*
|
|
58
|
+
* @see https://github.com/pantheon-systems/collaborative-state-system/issues/80
|
|
59
|
+
*/
|
|
60
|
+
async restore(siteId, branchId, documentId, versionId) {
|
|
61
|
+
return this.base.request(`/api/sites/${siteId}/branches/${branchId}/documents/${documentId}/versions/${versionId}/restore`, { method: 'POST' });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../src/endpoints/versions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,OAAO,gBAAgB;IACE;IAA7B,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,QAAgB,EAAE,UAAkB;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,cAAc,MAAM,aAAa,QAAQ,cAAc,UAAU,kBAAkB,EACnF,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,MAAc,EAAE,QAAgB,EAAE,UAAkB,EAAE,SAAiB;QAC/E,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,cAAc,MAAM,aAAa,QAAQ,cAAc,UAAU,aAAa,SAAS,EAAE,EACzF,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CACR,MAAc,EACd,QAAgB,EAChB,UAAkB,EAClB,OAA2B;QAE3B,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,OAAO,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,OAAO,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,KAAK;YAChB,CAAC,CAAC,cAAc,MAAM,aAAa,QAAQ,cAAc,UAAU,aAAa,KAAK,EAAE;YACvF,CAAC,CAAC,cAAc,MAAM,aAAa,QAAQ,cAAc,UAAU,WAAW,CAAC;QAEjF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAkC,IAAI,EAAE;YAC9E,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,MAAmC;QAC9D,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,cAAc,MAAM,aAAa,MAAM,CAAC,QAAQ,cAAc,MAAM,CAAC,UAAU,WAAW,EAC1F;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;SACpD,CACF,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CACX,MAAc,EACd,QAAgB,EAChB,UAAkB,EAClB,SAAiB;QAEjB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,cAAc,MAAM,aAAa,QAAQ,cAAc,UAAU,aAAa,SAAS,UAAU,EACjG,EAAE,MAAM,EAAE,MAAM,EAAE,CACnB,CAAC;IACJ,CAAC;CACF"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* P1 Client Error Classes
|
|
3
|
+
*
|
|
4
|
+
* Custom error types for API and network errors.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Base error for P1 API errors.
|
|
8
|
+
*/
|
|
9
|
+
export declare class P1ApiError extends Error {
|
|
10
|
+
name: string;
|
|
11
|
+
readonly status: number;
|
|
12
|
+
readonly code?: string;
|
|
13
|
+
readonly details?: unknown;
|
|
14
|
+
constructor(message: string, status: number, code?: string, details?: unknown);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Error thrown when a network request fails.
|
|
18
|
+
*/
|
|
19
|
+
export declare class NetworkError extends Error {
|
|
20
|
+
name: string;
|
|
21
|
+
readonly cause?: Error;
|
|
22
|
+
constructor(message: string, cause?: Error);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Error thrown when authentication fails.
|
|
26
|
+
*/
|
|
27
|
+
export declare class AuthenticationError extends Error {
|
|
28
|
+
name: string;
|
|
29
|
+
constructor(message?: string);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Error thrown when a resource is not found.
|
|
33
|
+
*/
|
|
34
|
+
export declare class NotFoundError extends P1ApiError {
|
|
35
|
+
name: string;
|
|
36
|
+
constructor(resource: string, id?: string);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Error thrown when there's a conflict (e.g., duplicate resource).
|
|
40
|
+
*/
|
|
41
|
+
export declare class ConflictError extends P1ApiError {
|
|
42
|
+
name: string;
|
|
43
|
+
constructor(message: string, details?: unknown);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Error thrown when request validation fails.
|
|
47
|
+
*/
|
|
48
|
+
export declare class ValidationError extends P1ApiError {
|
|
49
|
+
name: string;
|
|
50
|
+
constructor(message: string, details?: unknown);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Error thrown when the session has expired and cannot be refreshed.
|
|
54
|
+
* Thrown when a 401 response is received and the token refresher
|
|
55
|
+
* either returns null or a refreshed token that also results in 401.
|
|
56
|
+
*/
|
|
57
|
+
export declare class SessionExpiredError extends Error {
|
|
58
|
+
name: string;
|
|
59
|
+
constructor(message?: string);
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;IAC1B,IAAI,SAAgB;IAC7B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,IAAI,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAgB,OAAO,CAAC,EAAE,OAAO,CAAC;gBAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;CAO9E;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IAC5B,IAAI,SAAkB;IAC/B,SAAgB,KAAK,CAAC,EAAE,KAAK,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAK3C;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IACnC,IAAI,SAAyB;gBAE1B,OAAO,GAAE,MAAgC;CAItD;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAClC,IAAI,SAAmB;gBAEpB,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM;CAK1C;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAClC,IAAI,SAAmB;gBAEpB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;CAI/C;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IACpC,IAAI,SAAqB;gBAEtB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;CAI/C;AAED;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IACnC,IAAI,SAAyB;gBAE1B,OAAO,GAAE,MAAiD;CAIvE"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* P1 Client Error Classes
|
|
3
|
+
*
|
|
4
|
+
* Custom error types for API and network errors.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Base error for P1 API errors.
|
|
8
|
+
*/
|
|
9
|
+
export class P1ApiError extends Error {
|
|
10
|
+
name = 'P1ApiError';
|
|
11
|
+
status;
|
|
12
|
+
code;
|
|
13
|
+
details;
|
|
14
|
+
constructor(message, status, code, details) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.status = status;
|
|
17
|
+
this.code = code;
|
|
18
|
+
this.details = details;
|
|
19
|
+
Object.setPrototypeOf(this, P1ApiError.prototype);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Error thrown when a network request fails.
|
|
24
|
+
*/
|
|
25
|
+
export class NetworkError extends Error {
|
|
26
|
+
name = 'NetworkError';
|
|
27
|
+
cause;
|
|
28
|
+
constructor(message, cause) {
|
|
29
|
+
super(message);
|
|
30
|
+
this.cause = cause;
|
|
31
|
+
Object.setPrototypeOf(this, NetworkError.prototype);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Error thrown when authentication fails.
|
|
36
|
+
*/
|
|
37
|
+
export class AuthenticationError extends Error {
|
|
38
|
+
name = 'AuthenticationError';
|
|
39
|
+
constructor(message = 'Authentication failed') {
|
|
40
|
+
super(message);
|
|
41
|
+
Object.setPrototypeOf(this, AuthenticationError.prototype);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Error thrown when a resource is not found.
|
|
46
|
+
*/
|
|
47
|
+
export class NotFoundError extends P1ApiError {
|
|
48
|
+
name = 'NotFoundError';
|
|
49
|
+
constructor(resource, id) {
|
|
50
|
+
const message = id ? `${resource} not found: ${id}` : `${resource} not found`;
|
|
51
|
+
super(message, 404, 'NOT_FOUND');
|
|
52
|
+
Object.setPrototypeOf(this, NotFoundError.prototype);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Error thrown when there's a conflict (e.g., duplicate resource).
|
|
57
|
+
*/
|
|
58
|
+
export class ConflictError extends P1ApiError {
|
|
59
|
+
name = 'ConflictError';
|
|
60
|
+
constructor(message, details) {
|
|
61
|
+
super(message, 409, 'CONFLICT', details);
|
|
62
|
+
Object.setPrototypeOf(this, ConflictError.prototype);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Error thrown when request validation fails.
|
|
67
|
+
*/
|
|
68
|
+
export class ValidationError extends P1ApiError {
|
|
69
|
+
name = 'ValidationError';
|
|
70
|
+
constructor(message, details) {
|
|
71
|
+
super(message, 400, 'VALIDATION_ERROR', details);
|
|
72
|
+
Object.setPrototypeOf(this, ValidationError.prototype);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Error thrown when the session has expired and cannot be refreshed.
|
|
77
|
+
* Thrown when a 401 response is received and the token refresher
|
|
78
|
+
* either returns null or a refreshed token that also results in 401.
|
|
79
|
+
*/
|
|
80
|
+
export class SessionExpiredError extends Error {
|
|
81
|
+
name = 'SessionExpiredError';
|
|
82
|
+
constructor(message = 'Session expired — please sign in again') {
|
|
83
|
+
super(message);
|
|
84
|
+
Object.setPrototypeOf(this, SessionExpiredError.prototype);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,KAAK;IAC1B,IAAI,GAAG,YAAY,CAAC;IACb,MAAM,CAAS;IACf,IAAI,CAAU;IACd,OAAO,CAAW;IAElC,YAAY,OAAe,EAAE,MAAc,EAAE,IAAa,EAAE,OAAiB;QAC3E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,IAAI,GAAG,cAAc,CAAC;IACf,KAAK,CAAS;IAE9B,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,IAAI,GAAG,qBAAqB,CAAC;IAEtC,YAAY,UAAkB,uBAAuB;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,UAAU;IAClC,IAAI,GAAG,eAAe,CAAC;IAEhC,YAAY,QAAgB,EAAE,EAAW;QACvC,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,YAAY,CAAC;QAC9E,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QACjC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,UAAU;IAClC,IAAI,GAAG,eAAe,CAAC;IAEhC,YAAY,OAAe,EAAE,OAAiB;QAC5C,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACzC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,UAAU;IACpC,IAAI,GAAG,iBAAiB,CAAC;IAElC,YAAY,OAAe,EAAE,OAAiB;QAC5C,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,IAAI,GAAG,qBAAqB,CAAC;IAEtC,YAAY,UAAkB,wCAAwC;QACpE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;CACF"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @pantheon-systems/css-client
|
|
3
|
+
*
|
|
4
|
+
* TypeScript API client for the Collaborative State System.
|
|
5
|
+
*/
|
|
6
|
+
export { P1Client } from './client.js';
|
|
7
|
+
export type { P1ClientConfig } from './client.js';
|
|
8
|
+
export type { Site, Branch, BranchStatus, Document, DocumentVersion, DocumentVersionSource, Checkpoint, CheckpointType, CheckpointStatus, CheckpointDocument, WorkflowSettings, PuckData, PuckComponentData, PuckRootData, Principal, PaginationOptions, CreateBranchParams, CreateDocumentParams, CreateDocumentVersionParams, CreateCheckpointParams, PublishDocumentResult, ListDocumentsOptions, ActorState, ActorRole, ActorPresence, DocumentPresenceSummary, BranchPresenceSummary, BranchPresence, SitePresence, AgentPresenceLocation, AgentGlobalPresence, AgentStatus, AgentSettings, RegisteredAgent, CreateAgentParams, UpdateAgentParams, ListAgentsOptions, AgentTrigger, AgentEditDenialReason, AgentEditContext, AgentEditPermission, AgentEditSession, AgentEditCompleteResult, AgentEditAbortResult, AgentStopResult, UpdateFocusRegionsResponse, PublishResult, ConflictResolutionStrategy, MergeRequestStatus, DocumentConflictType, DocumentConflict, ConflictDetails, MergeabilityResult, DocumentDiff, MergePreview, MergeExecuteParams, MergeExecuteResult, MergeRequest, CreateMergeRequestParams, UpdateMergeRequestParams, ListMergeRequestsOptions, ExecuteMergeRequestOptions, } from './types.js';
|
|
9
|
+
export { createApiKeyAuth, createTokenAuth, InMemoryTokenStorage, LocalStorageTokenStorage, } from './auth.js';
|
|
10
|
+
export type { AuthProvider, TokenStorage } from './auth.js';
|
|
11
|
+
export { createOAuthAuthProvider, validateToken, loginMockUser, } from './oauth.js';
|
|
12
|
+
export type { OAuthUserInfo, OAuthSession, AuthMeResponse, } from './oauth.js';
|
|
13
|
+
export { createBrokerAuth, hasPendingBrokerLogin, redeemPendingBrokerLogin } from './broker.js';
|
|
14
|
+
export type { BrokerAuthConfig, BrokerRedeemConfig, BrokerRedeemResult } from './broker.js';
|
|
15
|
+
export { P1ApiError, NetworkError, AuthenticationError, NotFoundError, ConflictError, ValidationError, SessionExpiredError, } from './errors.js';
|
|
16
|
+
export { P1ContentClient } from './content.js';
|
|
17
|
+
export type { P1ContentClientConfig, PageContent, PageListEntry, PageListResult, } from './content.js';
|
|
18
|
+
export { RealtimeClient } from './realtime.js';
|
|
19
|
+
export type { RealtimeClientConfig, ConnectionParams } from './realtime.js';
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,YAAY,EAEV,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,qBAAqB,EACrB,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAEhB,QAAQ,EACR,iBAAiB,EACjB,YAAY,EAEZ,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EAEpB,UAAU,EACV,SAAS,EACT,aAAa,EACb,uBAAuB,EACvB,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EAEnB,WAAW,EACX,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EAEjB,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EAEf,0BAA0B,EAE1B,aAAa,EAEb,0BAA0B,EAC1B,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAG5D,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,aAAa,EACb,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAChG,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAG5F,OAAO,EACL,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,eAAe,EACf,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EACV,qBAAqB,EACrB,WAAW,EACX,aAAa,EACb,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @pantheon-systems/css-client
|
|
3
|
+
*
|
|
4
|
+
* TypeScript API client for the Collaborative State System.
|
|
5
|
+
*/
|
|
6
|
+
// Main client
|
|
7
|
+
export { P1Client } from './client.js';
|
|
8
|
+
// Auth utilities
|
|
9
|
+
export { createApiKeyAuth, createTokenAuth, InMemoryTokenStorage, LocalStorageTokenStorage, } from './auth.js';
|
|
10
|
+
// OAuth utilities
|
|
11
|
+
export { createOAuthAuthProvider, validateToken, loginMockUser, } from './oauth.js';
|
|
12
|
+
// Broker authentication
|
|
13
|
+
export { createBrokerAuth, hasPendingBrokerLogin, redeemPendingBrokerLogin } from './broker.js';
|
|
14
|
+
// Errors
|
|
15
|
+
export { P1ApiError, NetworkError, AuthenticationError, NotFoundError, ConflictError, ValidationError, SessionExpiredError, } from './errors.js';
|
|
16
|
+
// Content delivery (read-only)
|
|
17
|
+
export { P1ContentClient } from './content.js';
|
|
18
|
+
// Real-time collaboration
|
|
19
|
+
export { RealtimeClient } from './realtime.js';
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc;AACd,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA8EvC,iBAAiB;AACjB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AAGnB,kBAAkB;AAClB,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,aAAa,GACd,MAAM,YAAY,CAAC;AAOpB,wBAAwB;AACxB,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAGhG,SAAS;AACT,OAAO,EACL,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,eAAe,EACf,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,+BAA+B;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAQ/C,0BAA0B;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JWT Utility Functions
|
|
3
|
+
*
|
|
4
|
+
* Shared helpers for parsing JWT payloads and checking expiry.
|
|
5
|
+
* These decode JWTs for display/routing only — no cryptographic verification.
|
|
6
|
+
*/
|
|
7
|
+
import type { OAuthUserInfo } from './oauth.js';
|
|
8
|
+
export declare const TOKEN_REFRESH_BUFFER_SECONDS = 300;
|
|
9
|
+
export declare function parseJwtPayload(token: string): Record<string, unknown> | null;
|
|
10
|
+
export declare function getTokenExpiry(token: string): number | null;
|
|
11
|
+
export declare function isTokenExpiredOrExpiring(token: string): boolean;
|
|
12
|
+
export declare function extractUserInfo(token: string): OAuthUserInfo | null;
|
|
13
|
+
//# sourceMappingURL=jwt-utils.d.ts.map
|