@pantheon-systems/css-client 0.12.0 → 0.14.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 -1
- package/dist/auth.js +0 -25
- package/dist/auth.js.map +1 -1
- package/dist/broker.d.ts +30 -2
- package/dist/broker.d.ts.map +1 -1
- package/dist/broker.js +92 -33
- package/dist/broker.js.map +1 -1
- package/dist/client.d.ts +12 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +5 -97
- package/dist/client.js.map +1 -1
- package/dist/content.js +0 -8
- package/dist/content.js.map +1 -1
- package/dist/endpoints/agent-edit.js +0 -66
- package/dist/endpoints/agent-edit.js.map +1 -1
- package/dist/endpoints/agent-registry.js +0 -46
- package/dist/endpoints/agent-registry.js.map +1 -1
- package/dist/endpoints/base.js +1 -56
- package/dist/endpoints/base.js.map +1 -1
- package/dist/endpoints/branches.js +0 -20
- package/dist/endpoints/branches.js.map +1 -1
- package/dist/endpoints/checkpoints.js +0 -23
- package/dist/endpoints/checkpoints.js.map +1 -1
- package/dist/endpoints/documents.d.ts.map +1 -1
- package/dist/endpoints/documents.js +3 -32
- package/dist/endpoints/documents.js.map +1 -1
- package/dist/endpoints/index.d.ts +2 -0
- package/dist/endpoints/index.d.ts.map +1 -1
- package/dist/endpoints/index.js +2 -7
- package/dist/endpoints/index.js.map +1 -1
- package/dist/endpoints/merge.d.ts +17 -1
- package/dist/endpoints/merge.d.ts.map +1 -1
- package/dist/endpoints/merge.js +26 -32
- package/dist/endpoints/merge.js.map +1 -1
- package/dist/endpoints/migration-conflicts.js +0 -11
- package/dist/endpoints/migration-conflicts.js.map +1 -1
- package/dist/endpoints/presence.js +0 -44
- package/dist/endpoints/presence.js.map +1 -1
- package/dist/endpoints/relations.d.ts +20 -0
- package/dist/endpoints/relations.d.ts.map +1 -0
- package/dist/endpoints/relations.js +10 -0
- package/dist/endpoints/relations.js.map +1 -0
- package/dist/endpoints/sites.js +0 -11
- package/dist/endpoints/sites.js.map +1 -1
- package/dist/endpoints/templates.js +0 -41
- package/dist/endpoints/templates.js.map +1 -1
- package/dist/endpoints/translations.d.ts +44 -0
- package/dist/endpoints/translations.d.ts.map +1 -0
- package/dist/endpoints/translations.js +39 -0
- package/dist/endpoints/translations.js.map +1 -0
- package/dist/endpoints/versions.js +0 -25
- package/dist/endpoints/versions.js.map +1 -1
- package/dist/errors.js +0 -65
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -13
- package/dist/index.js.map +1 -1
- package/dist/jwt-utils.js +0 -6
- package/dist/jwt-utils.js.map +1 -1
- package/dist/oauth.d.ts +2 -1
- package/dist/oauth.d.ts.map +1 -1
- package/dist/oauth.js +0 -27
- package/dist/oauth.js.map +1 -1
- package/dist/realtime.d.ts +21 -11
- package/dist/realtime.d.ts.map +1 -1
- package/dist/realtime.js +57 -232
- package/dist/realtime.js.map +1 -1
- package/dist/sdk-version.d.ts +1 -1
- package/dist/sdk-version.js +1 -9
- package/dist/sdk-version.js.map +1 -1
- package/dist/telemetry-headers.js +0 -28
- package/dist/telemetry-headers.js.map +1 -1
- package/dist/types.d.ts +180 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +7 -6
- package/dist/types.js.map +1 -1
- package/dist/utils.js +0 -11
- package/dist/utils.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,33 +1,11 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent Edit Endpoint
|
|
3
|
-
*
|
|
4
|
-
* API endpoints for the agent edit workflow (politeness protocol).
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Agent edit endpoint for managing agent edit sessions.
|
|
8
|
-
*/
|
|
9
1
|
export class AgentEditEndpoint {
|
|
10
2
|
base;
|
|
11
3
|
constructor(base) {
|
|
12
4
|
this.base = base;
|
|
13
5
|
}
|
|
14
|
-
/**
|
|
15
|
-
* Encode document path for URL.
|
|
16
|
-
* Document paths start with / which needs proper encoding.
|
|
17
|
-
*/
|
|
18
6
|
encodeDocumentPath(documentPath) {
|
|
19
7
|
return encodeURIComponent(documentPath);
|
|
20
8
|
}
|
|
21
|
-
/**
|
|
22
|
-
* Check if an agent can edit a document.
|
|
23
|
-
*
|
|
24
|
-
* Returns whether the agent can proceed and, if not, the reason why.
|
|
25
|
-
*
|
|
26
|
-
* @param siteId - Site ID
|
|
27
|
-
* @param branchId - Branch ID
|
|
28
|
-
* @param documentPath - Document path (e.g., "/home")
|
|
29
|
-
* @param context - Agent edit context (agentId, trigger, intent, targetRegions)
|
|
30
|
-
*/
|
|
31
9
|
async canEdit(siteId, branchId, documentPath, context) {
|
|
32
10
|
const encodedPath = this.encodeDocumentPath(documentPath);
|
|
33
11
|
return this.base.request(`/api/sites/${siteId}/branches/${branchId}/documents/${encodedPath}/can-agent-edit`, {
|
|
@@ -42,17 +20,6 @@ export class AgentEditEndpoint {
|
|
|
42
20
|
}),
|
|
43
21
|
});
|
|
44
22
|
}
|
|
45
|
-
/**
|
|
46
|
-
* Start an agent edit session.
|
|
47
|
-
*
|
|
48
|
-
* Reserves the edit session, sets focus regions, and optionally creates
|
|
49
|
-
* a checkpoint for autonomous edits.
|
|
50
|
-
*
|
|
51
|
-
* @param siteId - Site ID
|
|
52
|
-
* @param branchId - Branch ID
|
|
53
|
-
* @param documentPath - Document path
|
|
54
|
-
* @param context - Agent edit context
|
|
55
|
-
*/
|
|
56
23
|
async startEdit(siteId, branchId, documentPath, context) {
|
|
57
24
|
const encodedPath = this.encodeDocumentPath(documentPath);
|
|
58
25
|
return this.base.request(`/api/sites/${siteId}/branches/${branchId}/documents/${encodedPath}/agent-edit-start`, {
|
|
@@ -67,16 +34,6 @@ export class AgentEditEndpoint {
|
|
|
67
34
|
}),
|
|
68
35
|
});
|
|
69
36
|
}
|
|
70
|
-
/**
|
|
71
|
-
* Complete an agent edit session.
|
|
72
|
-
*
|
|
73
|
-
* Clears focus regions and updates checkpoint status.
|
|
74
|
-
*
|
|
75
|
-
* @param siteId - Site ID
|
|
76
|
-
* @param branchId - Branch ID
|
|
77
|
-
* @param documentPath - Document path
|
|
78
|
-
* @param agentId - Agent ID
|
|
79
|
-
*/
|
|
80
37
|
async completeEdit(siteId, branchId, documentPath, agentId) {
|
|
81
38
|
const encodedPath = this.encodeDocumentPath(documentPath);
|
|
82
39
|
return this.base.request(`/api/sites/${siteId}/branches/${branchId}/documents/${encodedPath}/agent-edit-complete`, {
|
|
@@ -84,17 +41,6 @@ export class AgentEditEndpoint {
|
|
|
84
41
|
body: JSON.stringify({ agentId }),
|
|
85
42
|
});
|
|
86
43
|
}
|
|
87
|
-
/**
|
|
88
|
-
* Abort an agent edit session.
|
|
89
|
-
*
|
|
90
|
-
* Rolls back to the checkpoint created at edit-start.
|
|
91
|
-
*
|
|
92
|
-
* @param siteId - Site ID
|
|
93
|
-
* @param branchId - Branch ID
|
|
94
|
-
* @param documentPath - Document path
|
|
95
|
-
* @param agentId - Agent ID
|
|
96
|
-
* @param checkpointId - Checkpoint to rollback to
|
|
97
|
-
*/
|
|
98
44
|
async abortEdit(siteId, branchId, documentPath, agentId, checkpointId) {
|
|
99
45
|
const encodedPath = this.encodeDocumentPath(documentPath);
|
|
100
46
|
return this.base.request(`/api/sites/${siteId}/branches/${branchId}/documents/${encodedPath}/agent-edit-abort`, {
|
|
@@ -102,18 +48,6 @@ export class AgentEditEndpoint {
|
|
|
102
48
|
body: JSON.stringify({ agentId, checkpointId }),
|
|
103
49
|
});
|
|
104
50
|
}
|
|
105
|
-
/**
|
|
106
|
-
* Stop an agent's edit session (human-initiated).
|
|
107
|
-
*
|
|
108
|
-
* Server looks up the agent's active session and rolls back
|
|
109
|
-
* to the checkpoint created at edit-start. This allows humans
|
|
110
|
-
* to stop an agent without knowing the session/checkpoint IDs.
|
|
111
|
-
*
|
|
112
|
-
* @param siteId - Site ID
|
|
113
|
-
* @param branchId - Branch ID
|
|
114
|
-
* @param documentPath - Document path
|
|
115
|
-
* @param agentId - Agent ID to stop
|
|
116
|
-
*/
|
|
117
51
|
async stopAgent(siteId, branchId, documentPath, agentId) {
|
|
118
52
|
const encodedPath = this.encodeDocumentPath(documentPath);
|
|
119
53
|
return this.base.request(`/api/sites/${siteId}/branches/${branchId}/documents/${encodedPath}/agent-stop`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-edit.js","sourceRoot":"","sources":["../../src/endpoints/agent-edit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-edit.js","sourceRoot":"","sources":["../../src/endpoints/agent-edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent Registry Endpoint
|
|
3
|
-
*
|
|
4
|
-
* API endpoints for managing registered agents in an organization.
|
|
5
|
-
*/
|
|
6
1
|
import { requirePathParams } from '../utils.js';
|
|
7
|
-
/**
|
|
8
|
-
* Agent registry endpoint for managing organization agents.
|
|
9
|
-
*/
|
|
10
2
|
export class AgentRegistryEndpoint {
|
|
11
3
|
base;
|
|
12
4
|
constructor(base) {
|
|
13
5
|
this.base = base;
|
|
14
6
|
}
|
|
15
|
-
/**
|
|
16
|
-
* List all agents in an organization.
|
|
17
|
-
*
|
|
18
|
-
* @param orgId - Organization ID
|
|
19
|
-
* @param options - Optional filters (status)
|
|
20
|
-
*/
|
|
21
7
|
async list(orgId, options) {
|
|
22
8
|
let path = `/api/organizations/${orgId}/agents`;
|
|
23
9
|
if (options?.status) {
|
|
@@ -30,22 +16,10 @@ export class AgentRegistryEndpoint {
|
|
|
30
16
|
});
|
|
31
17
|
return response.agents;
|
|
32
18
|
}
|
|
33
|
-
/**
|
|
34
|
-
* Get a specific agent by ID.
|
|
35
|
-
*
|
|
36
|
-
* @param orgId - Organization ID
|
|
37
|
-
* @param agentId - Agent ID
|
|
38
|
-
*/
|
|
39
19
|
async get(orgId, agentId) {
|
|
40
20
|
requirePathParams({ orgId, agentId }, 'agentRegistry.get');
|
|
41
21
|
return this.base.request(`/api/organizations/${orgId}/agents/${agentId}`, { method: 'GET' });
|
|
42
22
|
}
|
|
43
|
-
/**
|
|
44
|
-
* Create a new agent in an organization.
|
|
45
|
-
*
|
|
46
|
-
* @param orgId - Organization ID
|
|
47
|
-
* @param params - Agent creation parameters
|
|
48
|
-
*/
|
|
49
23
|
async create(orgId, params) {
|
|
50
24
|
return this.base.request(`/api/organizations/${orgId}/agents`, {
|
|
51
25
|
method: 'POST',
|
|
@@ -57,38 +31,18 @@ export class AgentRegistryEndpoint {
|
|
|
57
31
|
}),
|
|
58
32
|
});
|
|
59
33
|
}
|
|
60
|
-
/**
|
|
61
|
-
* Update an agent's properties.
|
|
62
|
-
*
|
|
63
|
-
* @param orgId - Organization ID
|
|
64
|
-
* @param agentId - Agent ID
|
|
65
|
-
* @param params - Properties to update
|
|
66
|
-
*/
|
|
67
34
|
async update(orgId, agentId, params) {
|
|
68
35
|
return this.base.request(`/api/organizations/${orgId}/agents/${agentId}`, {
|
|
69
36
|
method: 'PATCH',
|
|
70
37
|
body: JSON.stringify(params),
|
|
71
38
|
});
|
|
72
39
|
}
|
|
73
|
-
/**
|
|
74
|
-
* Update an agent's status.
|
|
75
|
-
*
|
|
76
|
-
* @param orgId - Organization ID
|
|
77
|
-
* @param agentId - Agent ID
|
|
78
|
-
* @param status - New status (active, suspended, disabled)
|
|
79
|
-
*/
|
|
80
40
|
async updateStatus(orgId, agentId, status) {
|
|
81
41
|
return this.base.request(`/api/organizations/${orgId}/agents/${agentId}/status`, {
|
|
82
42
|
method: 'PUT',
|
|
83
43
|
body: JSON.stringify({ status }),
|
|
84
44
|
});
|
|
85
45
|
}
|
|
86
|
-
/**
|
|
87
|
-
* Delete an agent.
|
|
88
|
-
*
|
|
89
|
-
* @param orgId - Organization ID
|
|
90
|
-
* @param agentId - Agent ID
|
|
91
|
-
*/
|
|
92
46
|
async delete(orgId, agentId) {
|
|
93
47
|
await this.base.request(`/api/organizations/${orgId}/agents/${agentId}`, {
|
|
94
48
|
method: 'DELETE',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-registry.js","sourceRoot":"","sources":["../../src/endpoints/agent-registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-registry.js","sourceRoot":"","sources":["../../src/endpoints/agent-registry.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMhD,MAAM,OAAO,qBAAqB;IACH;IAA7B,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAQnD,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,OAA2B;QACnD,IAAI,IAAI,GAAG,sBAAsB,KAAK,SAAS,CAAC;QAEhD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QAClC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAgC,IAAI,EAAE;YAC5E,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAQD,KAAK,CAAC,GAAG,CAAC,KAAa,EAAE,OAAe;QACtC,iBAAiB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,mBAAmB,CAAC,CAAC;QAE3D,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,sBAAsB,KAAK,WAAW,OAAO,EAAE,EAC/C,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;IACJ,CAAC;IAQD,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,MAAyB;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAkB,sBAAsB,KAAK,SAAS,EAAE;YAC9E,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IASD,KAAK,CAAC,MAAM,CACV,KAAa,EACb,OAAe,EACf,MAAyB;QAEzB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,sBAAsB,KAAK,WAAW,OAAO,EAAE,EAC/C;YACE,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;SAC7B,CACF,CAAC;IACJ,CAAC;IASD,KAAK,CAAC,YAAY,CAChB,KAAa,EACb,OAAe,EACf,MAAmB;QAEnB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,sBAAsB,KAAK,WAAW,OAAO,SAAS,EACtD;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;SACjC,CACF,CAAC;IACJ,CAAC;IAQD,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,OAAe;QACzC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAO,sBAAsB,KAAK,WAAW,OAAO,EAAE,EAAE;YAC7E,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/dist/endpoints/base.js
CHANGED
|
@@ -1,36 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base Endpoint
|
|
3
|
-
*
|
|
4
|
-
* Shared HTTP request logic for all endpoints.
|
|
5
|
-
*/
|
|
6
1
|
import { attachRequestId, P1ApiError, NetworkError, AuthenticationError, NotFoundError, ConflictError, ValidationError, SessionExpiredError, MissingParameterError, } from '../errors.js';
|
|
7
2
|
import { correlationHeaders, newRequestId, SDK_NAME, SDK_VERSION, TELEMETRY_HEADERS, } from '../telemetry-headers.js';
|
|
8
|
-
/**
|
|
9
|
-
* Prefer the id the server reports, falling back to the one we sent.
|
|
10
|
-
*
|
|
11
|
-
* Tolerates a response without a `Headers` instance: callers can inject their own fetch
|
|
12
|
-
* implementation, and a response-like object is a legitimate thing to receive. Reading a
|
|
13
|
-
* correlation id must never be what breaks someone's API call.
|
|
14
|
-
*/
|
|
15
3
|
function adoptServerRequestId(response, fallback) {
|
|
16
4
|
const headers = response.headers;
|
|
17
5
|
const echoed = typeof headers?.get === 'function' ? headers.get(TELEMETRY_HEADERS.requestId) : null;
|
|
18
6
|
return echoed !== null && echoed.trim() !== '' ? echoed.trim() : fallback;
|
|
19
7
|
}
|
|
20
|
-
/**
|
|
21
|
-
* Reject a path with an empty interior segment rather than sending it.
|
|
22
|
-
*
|
|
23
|
-
* An undefined or blank interpolated value leaves `/branches//templates`, which edge
|
|
24
|
-
* proxies collapse to `/branches/templates` — the API then reads `templates` as the
|
|
25
|
-
* branch and reports a confusing "Branch not found".
|
|
26
|
-
*
|
|
27
|
-
* Interior segments only, and that limit is load-bearing: a trailing empty segment has
|
|
28
|
-
* to stay legal because `/documents/by-path/` is how the root document is addressed. So
|
|
29
|
-
* a blank *trailing* parameter still gets through here, and the API strips the slash and
|
|
30
|
-
* serves the collection route — `branches.get(siteId, '')` would return the branch
|
|
31
|
-
* *list* as a `Branch`. Only a named `requirePathParams` check catches that shape, which
|
|
32
|
-
* is why the single-resource getters carry one.
|
|
33
|
-
*/
|
|
34
8
|
function assertNoEmptyInteriorSegment(path) {
|
|
35
9
|
const [pathname = ''] = path.split('?');
|
|
36
10
|
if (pathname.includes('//')) {
|
|
@@ -47,7 +21,6 @@ export class BaseEndpoint {
|
|
|
47
21
|
clientId;
|
|
48
22
|
getTraceparent;
|
|
49
23
|
constructor(config) {
|
|
50
|
-
// Remove trailing slash from base URL
|
|
51
24
|
this.baseUrl = config.baseUrl.replace(/\/$/, '');
|
|
52
25
|
this.authProvider = config.authProvider;
|
|
53
26
|
this.principal = config.principal;
|
|
@@ -57,17 +30,7 @@ export class BaseEndpoint {
|
|
|
57
30
|
this.clientId = config.clientId;
|
|
58
31
|
this.getTraceparent = config.getTraceparent;
|
|
59
32
|
}
|
|
60
|
-
/**
|
|
61
|
-
* Make an authenticated HTTP request to the P1 API.
|
|
62
|
-
*
|
|
63
|
-
* Every failure leaves here carrying the request id, so a caller can quote it and the
|
|
64
|
-
* server-side story for this exact call can be found. Stamped in one place rather than
|
|
65
|
-
* at each of the throw sites below.
|
|
66
|
-
*/
|
|
67
33
|
async request(path, options) {
|
|
68
|
-
// Minted client-side so an id exists even when the request never reaches the API — a
|
|
69
|
-
// network failure still gives the caller something to quote. If the API responds it
|
|
70
|
-
// echoes the id back, and that value wins.
|
|
71
34
|
const correlation = { requestId: newRequestId() };
|
|
72
35
|
assertNoEmptyInteriorSegment(path);
|
|
73
36
|
try {
|
|
@@ -90,13 +53,11 @@ export class BaseEndpoint {
|
|
|
90
53
|
}),
|
|
91
54
|
...options.headers,
|
|
92
55
|
};
|
|
93
|
-
// Add authentication header
|
|
94
56
|
if (this.authProvider) {
|
|
95
57
|
try {
|
|
96
58
|
const authValue = await this.authProvider();
|
|
97
|
-
// Check if this is an API key (prefixed with "ApiKey ") or a Bearer token
|
|
98
59
|
if (authValue.startsWith('ApiKey ')) {
|
|
99
|
-
headers['X-API-Key'] = authValue.substring(7);
|
|
60
|
+
headers['X-API-Key'] = authValue.substring(7);
|
|
100
61
|
}
|
|
101
62
|
else {
|
|
102
63
|
headers['Authorization'] = authValue;
|
|
@@ -106,12 +67,10 @@ export class BaseEndpoint {
|
|
|
106
67
|
throw new AuthenticationError(error instanceof Error ? error.message : 'Failed to get auth token');
|
|
107
68
|
}
|
|
108
69
|
}
|
|
109
|
-
// Add principal headers if available
|
|
110
70
|
if (this.principal) {
|
|
111
71
|
headers['X-Principal-Id'] = this.principal.id;
|
|
112
72
|
headers['X-Principal-Type'] = this.principal.type;
|
|
113
73
|
}
|
|
114
|
-
// Add session ID header for agent authorization
|
|
115
74
|
if (this.sessionId) {
|
|
116
75
|
headers['X-Agent-Session-Id'] = this.sessionId;
|
|
117
76
|
}
|
|
@@ -127,14 +86,10 @@ export class BaseEndpoint {
|
|
|
127
86
|
catch (error) {
|
|
128
87
|
throw new NetworkError(`Network request failed: ${error instanceof Error ? error.message : 'Unknown error'}`, error instanceof Error ? error : undefined);
|
|
129
88
|
}
|
|
130
|
-
// The server's id wins: it may have rejected ours as malformed and minted its own,
|
|
131
|
-
// and the whole point is to name the id the server actually logged.
|
|
132
89
|
correlation.requestId = adoptServerRequestId(response, correlation.requestId);
|
|
133
|
-
// Handle 401 with token refresh
|
|
134
90
|
if (response.status === 401 && this.tokenRefresher) {
|
|
135
91
|
const freshToken = await this.tokenRefresher();
|
|
136
92
|
if (freshToken) {
|
|
137
|
-
// Retry with fresh token as Bearer Authorization header
|
|
138
93
|
headers['Authorization'] = `Bearer ${freshToken}`;
|
|
139
94
|
try {
|
|
140
95
|
response = await fetch(url, {
|
|
@@ -156,9 +111,7 @@ export class BaseEndpoint {
|
|
|
156
111
|
throw new SessionExpiredError();
|
|
157
112
|
}
|
|
158
113
|
}
|
|
159
|
-
// Handle successful responses
|
|
160
114
|
if (response.ok) {
|
|
161
|
-
// 204 No Content
|
|
162
115
|
if (response.status === 204) {
|
|
163
116
|
return undefined;
|
|
164
117
|
}
|
|
@@ -169,13 +122,11 @@ export class BaseEndpoint {
|
|
|
169
122
|
throw new P1ApiError('Failed to parse response JSON', response.status);
|
|
170
123
|
}
|
|
171
124
|
}
|
|
172
|
-
// Handle error responses
|
|
173
125
|
let errorData = null;
|
|
174
126
|
try {
|
|
175
127
|
errorData = (await response.json());
|
|
176
128
|
}
|
|
177
129
|
catch {
|
|
178
|
-
// Ignore JSON parse errors for error responses
|
|
179
130
|
}
|
|
180
131
|
const errorMessage = errorData?.error ?? `HTTP ${response.status}`;
|
|
181
132
|
switch (response.status) {
|
|
@@ -194,9 +145,6 @@ export class BaseEndpoint {
|
|
|
194
145
|
throw new P1ApiError(errorMessage, response.status, undefined, errorData?.details);
|
|
195
146
|
}
|
|
196
147
|
}
|
|
197
|
-
/**
|
|
198
|
-
* Create a new BaseEndpoint with updated principal.
|
|
199
|
-
*/
|
|
200
148
|
withPrincipal(principal) {
|
|
201
149
|
return new BaseEndpoint({
|
|
202
150
|
baseUrl: this.baseUrl,
|
|
@@ -206,9 +154,6 @@ export class BaseEndpoint {
|
|
|
206
154
|
tokenRefresher: this.tokenRefresher,
|
|
207
155
|
});
|
|
208
156
|
}
|
|
209
|
-
/**
|
|
210
|
-
* Create a new BaseEndpoint with session ID for agent authorization.
|
|
211
|
-
*/
|
|
212
157
|
withSessionId(sessionId) {
|
|
213
158
|
return new BaseEndpoint({
|
|
214
159
|
baseUrl: this.baseUrl,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/endpoints/base.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/endpoints/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,15 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Branches Endpoint
|
|
3
|
-
*
|
|
4
|
-
* API operations for branches.
|
|
5
|
-
*/
|
|
6
1
|
import { requirePathParams } from '../utils.js';
|
|
7
2
|
export class BranchesEndpoint {
|
|
8
3
|
base;
|
|
9
4
|
constructor(base) {
|
|
10
5
|
this.base = base;
|
|
11
6
|
}
|
|
12
|
-
/**
|
|
13
|
-
* Get a branch by ID.
|
|
14
|
-
*/
|
|
15
7
|
async get(siteId, branchId) {
|
|
16
8
|
requirePathParams({ siteId, branchId }, 'branches.get');
|
|
17
9
|
return this.base.request(`/api/sites/${siteId}/branches/${branchId}`, {
|
|
18
10
|
method: 'GET',
|
|
19
11
|
});
|
|
20
12
|
}
|
|
21
|
-
/**
|
|
22
|
-
* List all branches for a site.
|
|
23
|
-
*/
|
|
24
13
|
async list(siteId, options) {
|
|
25
14
|
const params = new URLSearchParams();
|
|
26
15
|
if (options?.limit !== undefined) {
|
|
@@ -38,9 +27,6 @@ export class BranchesEndpoint {
|
|
|
38
27
|
});
|
|
39
28
|
return response.branches;
|
|
40
29
|
}
|
|
41
|
-
/**
|
|
42
|
-
* Create a new branch.
|
|
43
|
-
*/
|
|
44
30
|
async create(params) {
|
|
45
31
|
return this.base.request(`/api/sites/${params.siteId}/branches`, {
|
|
46
32
|
method: 'POST',
|
|
@@ -50,18 +36,12 @@ export class BranchesEndpoint {
|
|
|
50
36
|
}),
|
|
51
37
|
});
|
|
52
38
|
}
|
|
53
|
-
/**
|
|
54
|
-
* Archive a branch.
|
|
55
|
-
*/
|
|
56
39
|
async archive(siteId, branchId) {
|
|
57
40
|
return this.base.request(`/api/sites/${siteId}/branches/${branchId}`, {
|
|
58
41
|
method: 'PATCH',
|
|
59
42
|
body: JSON.stringify({ status: 'archived' }),
|
|
60
43
|
});
|
|
61
44
|
}
|
|
62
|
-
/**
|
|
63
|
-
* Delete a branch.
|
|
64
|
-
*/
|
|
65
45
|
async delete(siteId, branchId) {
|
|
66
46
|
await this.base.request(`/api/sites/${siteId}/branches/${branchId}`, {
|
|
67
47
|
method: 'DELETE',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branches.js","sourceRoot":"","sources":["../../src/endpoints/branches.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"branches.js","sourceRoot":"","sources":["../../src/endpoints/branches.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,OAAO,gBAAgB;IACE;IAA7B,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAKnD,KAAK,CAAC,GAAG,CAAC,MAAc,EAAE,QAAgB;QACxC,iBAAiB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,cAAc,CAAC,CAAC;QAExD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAS,cAAc,MAAM,aAAa,QAAQ,EAAE,EAAE;YAC5E,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;IAKD,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,OAA2B;QACpD,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,KAAK,EAAE;YAC1C,CAAC,CAAC,cAAc,MAAM,WAAW,CAAC;QAEpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAyB,IAAI,EAAE;YACrE,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAKD,KAAK,CAAC,MAAM,CAAC,MAA0B;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAS,cAAc,MAAM,CAAC,MAAM,WAAW,EAAE;YACvE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,cAAc,EAAE,MAAM,CAAC,cAAc;aACtC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAKD,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,QAAgB;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAS,cAAc,MAAM,aAAa,QAAQ,EAAE,EAAE;YAC5E,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;IAKD,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,QAAgB;QAC3C,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAO,cAAc,MAAM,aAAa,QAAQ,EAAE,EAAE;YACzE,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1,26 +1,15 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Checkpoints Endpoint
|
|
3
|
-
*
|
|
4
|
-
* API operations for checkpoints.
|
|
5
|
-
*/
|
|
6
1
|
import { requirePathParams } from '../utils.js';
|
|
7
2
|
export class CheckpointsEndpoint {
|
|
8
3
|
base;
|
|
9
4
|
constructor(base) {
|
|
10
5
|
this.base = base;
|
|
11
6
|
}
|
|
12
|
-
/**
|
|
13
|
-
* Get a checkpoint by ID.
|
|
14
|
-
*/
|
|
15
7
|
async get(siteId, checkpointId) {
|
|
16
8
|
requirePathParams({ siteId, checkpointId }, 'checkpoints.get');
|
|
17
9
|
return this.base.request(`/api/sites/${siteId}/checkpoints/${checkpointId}`, {
|
|
18
10
|
method: 'GET',
|
|
19
11
|
});
|
|
20
12
|
}
|
|
21
|
-
/**
|
|
22
|
-
* List checkpoints for a branch.
|
|
23
|
-
*/
|
|
24
13
|
async list(siteId, branchId, options) {
|
|
25
14
|
const params = new URLSearchParams();
|
|
26
15
|
if (options?.limit !== undefined) {
|
|
@@ -38,9 +27,6 @@ export class CheckpointsEndpoint {
|
|
|
38
27
|
});
|
|
39
28
|
return response.checkpoints;
|
|
40
29
|
}
|
|
41
|
-
/**
|
|
42
|
-
* Create a new checkpoint.
|
|
43
|
-
*/
|
|
44
30
|
async create(siteId, params) {
|
|
45
31
|
return this.base.request(`/api/sites/${siteId}/branches/${params.branchId}/checkpoints`, {
|
|
46
32
|
method: 'POST',
|
|
@@ -50,25 +36,16 @@ export class CheckpointsEndpoint {
|
|
|
50
36
|
}),
|
|
51
37
|
});
|
|
52
38
|
}
|
|
53
|
-
/**
|
|
54
|
-
* Get documents at a checkpoint.
|
|
55
|
-
*/
|
|
56
39
|
async getDocuments(siteId, checkpointId) {
|
|
57
40
|
const response = await this.base.request(`/api/sites/${siteId}/checkpoints/${checkpointId}/documents`, { method: 'GET' });
|
|
58
41
|
return response.documents;
|
|
59
42
|
}
|
|
60
|
-
/**
|
|
61
|
-
* Revert a branch to a checkpoint.
|
|
62
|
-
*/
|
|
63
43
|
async revert(siteId, branchId, checkpointId, name) {
|
|
64
44
|
return this.base.request(`/api/sites/${siteId}/branches/${branchId}/checkpoints/${checkpointId}/revert`, {
|
|
65
45
|
method: 'POST',
|
|
66
46
|
body: JSON.stringify({ name }),
|
|
67
47
|
});
|
|
68
48
|
}
|
|
69
|
-
/**
|
|
70
|
-
* Delete a checkpoint.
|
|
71
|
-
*/
|
|
72
49
|
async delete(siteId, checkpointId) {
|
|
73
50
|
await this.base.request(`/api/sites/${siteId}/checkpoints/${checkpointId}`, {
|
|
74
51
|
method: 'DELETE',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoints.js","sourceRoot":"","sources":["../../src/endpoints/checkpoints.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"checkpoints.js","sourceRoot":"","sources":["../../src/endpoints/checkpoints.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAKnD,KAAK,CAAC,GAAG,CAAC,MAAc,EAAE,YAAoB;QAC5C,iBAAiB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAE/D,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAa,cAAc,MAAM,gBAAgB,YAAY,EAAE,EAAE;YACvF,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;IAKD,KAAK,CAAC,IAAI,CACR,MAAc,EACd,QAAgB,EAChB,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,gBAAgB,KAAK,EAAE;YAClE,CAAC,CAAC,cAAc,MAAM,aAAa,QAAQ,cAAc,CAAC;QAE5D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAgC,IAAI,EAAE;YAC5E,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC;IAKD,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,MAA8B;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,cAAc,MAAM,aAAa,MAAM,CAAC,QAAQ,cAAc,EAC9D;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,QAAQ;aAC9B,CAAC;SACH,CACF,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,YAAoB;QACrD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CACtC,cAAc,MAAM,gBAAgB,YAAY,YAAY,EAC5D,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;QAEF,OAAO,QAAQ,CAAC,SAAS,CAAC;IAC5B,CAAC;IAKD,KAAK,CAAC,MAAM,CACV,MAAc,EACd,QAAgB,EAChB,YAAoB,EACpB,IAAa;QAEb,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,cAAc,MAAM,aAAa,QAAQ,gBAAgB,YAAY,SAAS,EAC9E;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;SAC/B,CACF,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,YAAoB;QAC/C,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAO,cAAc,MAAM,gBAAgB,YAAY,EAAE,EAAE;YAChF,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/endpoints/documents.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE/G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAE/C;;OAEG;IACG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAMhE;;;OAGG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IASnF;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IA0BjG;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/endpoints/documents.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE/G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAE/C;;OAEG;IACG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAMhE;;;OAGG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IASnF;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IA0BjG;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC;IA4C7D;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjF;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBpF;;;OAGG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IASpE;;;OAGG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAQpG"}
|
|
@@ -1,34 +1,19 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Documents Endpoint
|
|
3
|
-
*
|
|
4
|
-
* API operations for documents.
|
|
5
|
-
*/
|
|
6
1
|
import { requirePathParams } from '../utils.js';
|
|
7
2
|
export class DocumentsEndpoint {
|
|
8
3
|
base;
|
|
9
4
|
constructor(base) {
|
|
10
5
|
this.base = base;
|
|
11
6
|
}
|
|
12
|
-
/**
|
|
13
|
-
* Get a document by ID.
|
|
14
|
-
*/
|
|
15
7
|
async get(siteId, documentId) {
|
|
16
8
|
return this.base.request(`/api/sites/${siteId}/documents/${documentId}`, {
|
|
17
9
|
method: 'GET',
|
|
18
10
|
});
|
|
19
11
|
}
|
|
20
|
-
/**
|
|
21
|
-
* Get a document by path. Pass branchId to resolve against that branch's
|
|
22
|
-
* path overrides. If branchId is omitted, the global document path is used.
|
|
23
|
-
*/
|
|
24
12
|
async getByPath(siteId, path, branchId) {
|
|
25
13
|
const encodedPath = encodeURIComponent(path);
|
|
26
14
|
const query = branchId === undefined ? '' : `?branch=${encodeURIComponent(branchId)}`;
|
|
27
15
|
return this.base.request(`/api/sites/${siteId}/documents/by-path/${encodedPath}${query}`, { method: 'GET' });
|
|
28
16
|
}
|
|
29
|
-
/**
|
|
30
|
-
* List documents on a branch.
|
|
31
|
-
*/
|
|
32
17
|
async list(siteId, branchId, options) {
|
|
33
18
|
requirePathParams({ siteId, branchId }, 'documents.list');
|
|
34
19
|
const params = new URLSearchParams();
|
|
@@ -50,9 +35,6 @@ export class DocumentsEndpoint {
|
|
|
50
35
|
});
|
|
51
36
|
return response.documents;
|
|
52
37
|
}
|
|
53
|
-
/**
|
|
54
|
-
* Create a new document on a branch.
|
|
55
|
-
*/
|
|
56
38
|
async create(params) {
|
|
57
39
|
requirePathParams({ siteId: params.siteId, branchId: params.branchId }, 'documents.create');
|
|
58
40
|
const body = {
|
|
@@ -70,24 +52,21 @@ export class DocumentsEndpoint {
|
|
|
70
52
|
if (params.title !== undefined) {
|
|
71
53
|
body.title = params.title;
|
|
72
54
|
}
|
|
55
|
+
if (params.locale !== undefined) {
|
|
56
|
+
body.locale = params.locale;
|
|
57
|
+
}
|
|
73
58
|
const response = await this.base.request(`/api/sites/${params.siteId}/branches/${params.branchId}/documents`, {
|
|
74
59
|
method: 'POST',
|
|
75
60
|
body: JSON.stringify(body),
|
|
76
61
|
});
|
|
77
62
|
return response.document;
|
|
78
63
|
}
|
|
79
|
-
/**
|
|
80
|
-
* Delete a document from a branch.
|
|
81
|
-
*/
|
|
82
64
|
async delete(siteId, branchId, documentId) {
|
|
83
65
|
requirePathParams({ siteId, branchId, documentId }, 'documents.delete');
|
|
84
66
|
await this.base.request(`/api/sites/${siteId}/branches/${branchId}/documents/${documentId}`, {
|
|
85
67
|
method: 'DELETE',
|
|
86
68
|
});
|
|
87
69
|
}
|
|
88
|
-
/**
|
|
89
|
-
* Check if a document exists on a branch.
|
|
90
|
-
*/
|
|
91
70
|
async exists(siteId, branchId, documentId) {
|
|
92
71
|
requirePathParams({ siteId, branchId, documentId }, 'documents.exists');
|
|
93
72
|
try {
|
|
@@ -101,19 +80,11 @@ export class DocumentsEndpoint {
|
|
|
101
80
|
throw error;
|
|
102
81
|
}
|
|
103
82
|
}
|
|
104
|
-
/**
|
|
105
|
-
* Restore an archived document.
|
|
106
|
-
* This unarchives a soft-deleted document, making it active again.
|
|
107
|
-
*/
|
|
108
83
|
async restore(siteId, documentId) {
|
|
109
84
|
return this.base.request(`/api/sites/${siteId}/documents/${documentId}/restore`, {
|
|
110
85
|
method: 'POST',
|
|
111
86
|
});
|
|
112
87
|
}
|
|
113
|
-
/**
|
|
114
|
-
* Publish a single document on a branch.
|
|
115
|
-
* Creates a checkpoint containing only this document's current version.
|
|
116
|
-
*/
|
|
117
88
|
async publish(siteId, branchId, documentId) {
|
|
118
89
|
requirePathParams({ siteId, branchId, documentId }, 'documents.publish');
|
|
119
90
|
return this.base.request(`/api/sites/${siteId}/branches/${branchId}/documents/${documentId}/publish`, { method: 'POST' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/endpoints/documents.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/endpoints/documents.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAKnD,KAAK,CAAC,GAAG,CAAC,MAAc,EAAE,UAAkB;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAW,cAAc,MAAM,cAAc,UAAU,EAAE,EAAE;YACjF,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;IAMD,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,IAAY,EAAE,QAAiB;QAC7D,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtF,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,cAAc,MAAM,sBAAsB,WAAW,GAAG,KAAK,EAAE,EAC/D,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,QAAgB,EAAE,OAA8B;QACzE,iBAAiB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAE1D,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;QACD,IAAI,OAAO,EAAE,UAAU,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,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,KAAK,EAAE;YAChE,CAAC,CAAC,cAAc,MAAM,aAAa,QAAQ,YAAY,CAAC;QAE1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAA4B,IAAI,EAAE;YACxE,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,SAAS,CAAC;IAC5B,CAAC;IAKD,KAAK,CAAC,MAAM,CAAC,MAA4B;QACvC,iBAAiB,CACf,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,EACpD,kBAAkB,CACnB,CAAC;QAEF,MAAM,IAAI,GAON;YACF,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC;QAEF,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACtC,CAAC;QACD,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;QAChD,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAClC,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC5B,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9B,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CACtC,cAAc,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,QAAQ,YAAY,EACnE;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CACF,CAAC;QAEF,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAKD,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,QAAgB,EAAE,UAAkB;QAC/D,iBAAiB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,kBAAkB,CAAC,CAAC;QAExE,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CACrB,cAAc,MAAM,aAAa,QAAQ,cAAc,UAAU,EAAE,EACnE;YACE,MAAM,EAAE,QAAQ;SACjB,CACF,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,QAAgB,EAAE,UAAkB;QAC/D,iBAAiB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,kBAAkB,CAAC,CAAC;QAExE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CACrB,cAAc,MAAM,aAAa,QAAQ,cAAc,UAAU,EAAE,EACnE,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,IAAI,QAAQ,IAAI,KAAK,IAAK,KAA4B,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAChG,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAMD,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,UAAkB;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,cAAc,MAAM,cAAc,UAAU,UAAU,EACtD;YACE,MAAM,EAAE,MAAM;SACf,CACF,CAAC;IACJ,CAAC;IAMD,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,QAAgB,EAAE,UAAkB;QAChE,iBAAiB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,mBAAmB,CAAC,CAAC;QAEzE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,cAAc,MAAM,aAAa,QAAQ,cAAc,UAAU,UAAU,EAC3E,EAAE,MAAM,EAAE,MAAM,EAAE,CACnB,CAAC;IACJ,CAAC;CACF"}
|