@dani-builder/strapi-client 0.11.0 → 0.12.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 CHANGED
@@ -11,7 +11,8 @@ functions for every content type — pairs with
11
11
  pnpm add @dani-builder/strapi-client
12
12
  ```
13
13
 
14
- ESM-only (`"type": "module"`).
14
+ Existing client entries are ESM-only (`"type": "module"`). The server-only
15
+ `/preview` entry supports ESM and CommonJS, with no Strapi runtime or peers.
15
16
 
16
17
  ## Usage
17
18
 
@@ -35,16 +36,37 @@ const draft = await getPageBySlug(strapi, "about", { status: "draft" });
35
36
 
36
37
  ## Sub-exports
37
38
 
38
- | Import | Contents |
39
- |--------|----------|
40
- | `@dani-builder/strapi-client/types` | Hand-curated content-type & block types |
41
- | `@dani-builder/strapi-client/client` | `createStrapiClient` |
42
- | `@dani-builder/strapi-client/api` | 19 API functions |
43
- | `@dani-builder/strapi-client/populate` | 15 block populate builders |
44
- | `@dani-builder/strapi-client/utils` | Media URL helpers |
39
+ | Import | Contents |
40
+ | -------------------------------------- | ------------------------------------------------------------------------------------ |
41
+ | `@dani-builder/strapi-client/types` | Hand-curated content-type & block types |
42
+ | `@dani-builder/strapi-client/client` | `createStrapiClient` |
43
+ | `@dani-builder/strapi-client/api` | 19 API functions |
44
+ | `@dani-builder/strapi-client/populate` | 15 block populate builders |
45
+ | `@dani-builder/strapi-client/utils` | Media URL helpers |
46
+ | `@dani-builder/strapi-client/preview` | Node.js server-only `verifyPreviewToken`, `isSafePreviewPath`, `PREVIEW_TTL_SECONDS` |
45
47
 
46
48
  See [`docs/block-reference.md`](./docs/block-reference.md) for the full block schema.
47
49
 
48
50
  ## License
49
51
 
50
52
  MIT © HJ-company
53
+
54
+ Preview verification requires client 0.12.0 or later. Import it only in Node.js
55
+ server code and keep `PREVIEW_SECRET` private. The shared verifier binds the signed
56
+ path and draft/published status and rejects tokens at expiry (300 seconds).
57
+ The existing plugin `/preview` verifier remains compatible.
58
+
59
+ ## Agent browser client
60
+
61
+ `createAgentClient({ baseUrl, apiPrefix?, fetch? })` is exported from the package
62
+ root. It provides `session()` issuance, `session(credentials)` restoration,
63
+ `history(credentials)`, `chat(credentials, request, { onEvent? })` and
64
+ `cancel(credentials, requestId)`. A chat handle exposes its stable `requestId`,
65
+ `result` promise and `cancel()` immediately. Streaming events use the shared
66
+ `@dani-builder/agent-contract` parser. Keep the issued token with the session ID
67
+ in caller-owned storage and handle both result and cancellation rejections. Tokens
68
+ are sent only in Bearer headers; cookies are omitted. Existing Axios APIs continue
69
+ to work independently.
70
+
71
+ See [Agent sessions and conversation context](../../docs/guides/agent-conversation-context.md)
72
+ for browser usage, error/cancellation behavior, retries and the CMS origin allowlist.
@@ -0,0 +1,43 @@
1
+ import type { ChatDoneEventData, ChatEvent, ChatRequest, ConversationRestoreResponse, SessionResponse } from "@dani-builder/agent-contract";
2
+ export interface AgentClientConfig {
3
+ /** CMS origin, or empty for same-origin requests. */
4
+ baseUrl: string;
5
+ /** Strapi REST prefix; defaults to /api. */
6
+ apiPrefix?: string;
7
+ fetch?: typeof globalThis.fetch;
8
+ }
9
+ export interface AgentSessionCredentials {
10
+ sessionId: string;
11
+ token: string;
12
+ }
13
+ export interface AgentRestoreOptions extends AgentSessionCredentials {
14
+ agentId?: string;
15
+ }
16
+ export interface AgentChatOptions {
17
+ onEvent?: (event: ChatEvent) => void;
18
+ }
19
+ export interface AgentTurn {
20
+ requestId: string;
21
+ result: Promise<ChatDoneEventData>;
22
+ /** Stops local delivery immediately and independently requests server cancellation. */
23
+ cancel(): Promise<{
24
+ cancelled: boolean;
25
+ }>;
26
+ }
27
+ export declare class AgentClientError extends Error {
28
+ readonly code: string;
29
+ readonly status?: number | undefined;
30
+ constructor(code: string, status?: number | undefined);
31
+ }
32
+ export declare function createAgentClient(config: AgentClientConfig): {
33
+ session: {
34
+ (): Promise<SessionResponse>;
35
+ (options: AgentRestoreOptions): Promise<ConversationRestoreResponse>;
36
+ };
37
+ chat: (credentials: AgentSessionCredentials, input: Omit<ChatRequest, "sessionId">, options?: AgentChatOptions) => AgentTurn;
38
+ history: (options: AgentRestoreOptions) => Promise<import("@dani-builder/agent-contract").ConversationHistoryMessage[]>;
39
+ cancel: (credentials: AgentSessionCredentials, requestId: string) => Promise<{
40
+ cancelled: boolean;
41
+ }>;
42
+ };
43
+ //# sourceMappingURL=create-agent-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-agent-client.d.ts","sourceRoot":"","sources":["../../src/agent/create-agent-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,2BAA2B,EAC3B,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AACD,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACtC;AACD,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnC,uFAAuF;IACvF,MAAM,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC3C;AAED,qBAAa,gBAAiB,SAAQ,KAAK;aAEvB,IAAI,EAAE,MAAM;aACZ,MAAM,CAAC,EAAE,MAAM;gBADf,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,YAAA;CAKlC;AAmED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB;;YA8B/B,OAAO,CAAC,eAAe,CAAC;kBAEvC,mBAAmB,GAC3B,OAAO,CAAC,2BAA2B,CAAC;;wBAyBxB,uBAAuB,SAC7B,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,YAC5B,gBAAgB,KACxB,SAAS;uBAmCoB,mBAAmB;0BAlDpC,uBAAuB,aACzB,MAAM,KAChB,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;EAoDnC"}
@@ -0,0 +1,168 @@
1
+ import { parseSseEvent } from "@dani-builder/agent-contract";
2
+ export class AgentClientError extends Error {
3
+ code;
4
+ status;
5
+ constructor(code, status) {
6
+ super(`Agent request failed: ${code}`);
7
+ this.code = code;
8
+ this.status = status;
9
+ this.name = "AgentClientError";
10
+ }
11
+ }
12
+ // Frame transport here; shared contract owns event validation and normalization.
13
+ async function readEvents(response, signal, onEvent) {
14
+ if (!response.body)
15
+ throw new AgentClientError("missing_stream");
16
+ const reader = response.body.getReader();
17
+ const decoder = new TextDecoder();
18
+ let buffer = "";
19
+ let name = "";
20
+ let data = [];
21
+ const abort = () => {
22
+ void reader.cancel().catch(() => undefined);
23
+ };
24
+ signal.addEventListener("abort", abort, { once: true });
25
+ try {
26
+ for (;;) {
27
+ if (signal.aborted)
28
+ throw new AgentClientError("cancelled");
29
+ const chunk = await reader.read();
30
+ if (signal.aborted)
31
+ throw new AgentClientError("cancelled");
32
+ buffer += decoder.decode(chunk.value, { stream: !chunk.done });
33
+ for (;;) {
34
+ const match = /\r\n|\r|\n/.exec(buffer);
35
+ if (!match)
36
+ break;
37
+ // A CR at a chunk boundary may be the first half of CRLF.
38
+ if (match[0] === "\r" &&
39
+ match.index === buffer.length - 1 &&
40
+ !chunk.done)
41
+ break;
42
+ const line = buffer.slice(0, match.index);
43
+ buffer = buffer.slice(match.index + match[0].length);
44
+ if (line === "") {
45
+ const event = data.length
46
+ ? parseSseEvent(name, data.join("\n"))
47
+ : null;
48
+ name = "";
49
+ data = [];
50
+ if (!event)
51
+ continue;
52
+ if (signal.aborted)
53
+ throw new AgentClientError("cancelled");
54
+ onEvent?.(event);
55
+ if (signal.aborted)
56
+ throw new AgentClientError("cancelled");
57
+ if (event.event === "done")
58
+ return event.data;
59
+ if (event.event === "error")
60
+ throw new AgentClientError(event.data.code || "stream_error");
61
+ }
62
+ else if (!line.startsWith(":")) {
63
+ const colon = line.indexOf(":");
64
+ const field = colon < 0 ? line : line.slice(0, colon);
65
+ const value = colon < 0 ? "" : line.slice(colon + 1).replace(/^ /, "");
66
+ if (field === "event")
67
+ name = value;
68
+ if (field === "data")
69
+ data.push(value);
70
+ }
71
+ }
72
+ if (chunk.done)
73
+ throw new AgentClientError("incomplete_stream");
74
+ }
75
+ }
76
+ finally {
77
+ signal.removeEventListener("abort", abort);
78
+ await reader.cancel().catch(() => undefined);
79
+ reader.releaseLock();
80
+ }
81
+ }
82
+ export function createAgentClient(config) {
83
+ const fetcher = config.fetch ?? globalThis.fetch.bind(globalThis);
84
+ const endpoint = `${config.baseUrl.replace(/\/$/, "")}${config.apiPrefix ?? "/api"}/agent`;
85
+ async function request(path, token, init = {}) {
86
+ const response = await fetcher(`${endpoint}${path}`, {
87
+ ...init,
88
+ credentials: "omit",
89
+ headers: {
90
+ ...(init.body ? { "Content-Type": "application/json" } : {}),
91
+ ...(token ? { Authorization: `Bearer ${token}` } : {}),
92
+ },
93
+ });
94
+ if (!response.ok) {
95
+ let code = "http_error";
96
+ try {
97
+ const body = await response.json();
98
+ if (body &&
99
+ typeof body === "object" &&
100
+ "error" in body &&
101
+ typeof body.error === "string")
102
+ code = body.error;
103
+ }
104
+ catch {
105
+ /* Non-JSON error responses retain their HTTP status. */
106
+ }
107
+ throw new AgentClientError(code, response.status);
108
+ }
109
+ return response;
110
+ }
111
+ async function session(options) {
112
+ if (!options)
113
+ return (await request("/session", undefined, { method: "POST", body: "{}" })).json();
114
+ const query = new URLSearchParams({ sessionId: options.sessionId });
115
+ if (options.agentId)
116
+ query.set("agentId", options.agentId);
117
+ return (await request(`/session?${query}`, options.token)).json();
118
+ }
119
+ async function cancel(credentials, requestId) {
120
+ return (await request("/cancel", credentials.token, {
121
+ method: "POST",
122
+ body: JSON.stringify({ sessionId: credentials.sessionId, requestId }),
123
+ signal: new AbortController().signal,
124
+ })).json();
125
+ }
126
+ function chat(credentials, input, options = {}) {
127
+ const requestId = input.requestId ?? globalThis.crypto.randomUUID();
128
+ const controller = new AbortController();
129
+ let cancellation;
130
+ const result = (async () => {
131
+ try {
132
+ const response = await request("/chat", credentials.token, {
133
+ method: "POST",
134
+ body: JSON.stringify({
135
+ ...input,
136
+ sessionId: credentials.sessionId,
137
+ requestId,
138
+ }),
139
+ signal: controller.signal,
140
+ });
141
+ if (controller.signal.aborted) {
142
+ await response.body?.cancel().catch(() => undefined);
143
+ throw new AgentClientError("cancelled");
144
+ }
145
+ return await readEvents(response, controller.signal, options.onEvent);
146
+ }
147
+ catch (error) {
148
+ if (controller.signal.aborted)
149
+ throw new AgentClientError("cancelled");
150
+ throw error;
151
+ }
152
+ })();
153
+ return {
154
+ requestId,
155
+ result,
156
+ cancel() {
157
+ controller.abort();
158
+ cancellation ??= cancel(credentials, requestId);
159
+ return cancellation;
160
+ },
161
+ };
162
+ }
163
+ async function history(options) {
164
+ return (await session(options)).messages;
165
+ }
166
+ return { session, chat, history, cancel };
167
+ }
168
+ //# sourceMappingURL=create-agent-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-agent-client.js","sourceRoot":"","sources":["../../src/agent/create-agent-client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,4 +5,6 @@ export { coreBlockPopulates, seoPopulate, footerPopulate, getPagePopulate, getPa
5
5
  export { getPage, getPageBySlug, listPages, listPagesRest, getArticle, getArticleBySlug, listArticles, getGlobal, getGlobalRest, getNavigation, getSiteSettings, listFaqs, listCategories, listTags, listAuthors, getAuthorBySlug, listSeries, getSeriesBySlug, postInquiry, } from "./api/index.js";
6
6
  export type { PageQueryOptions, PageListOptions, ArticleQueryOptions, ArticleListOptions, GlobalQueryOptions, NavigationQueryOptions, FaqListOptions, CategoryListOptions, TagListOptions, AuthorListOptions, SeriesListOptions, } from "./api/index.js";
7
7
  export { getMediaUrl, getAssetUrl } from "./utils/index.js";
8
+ export { createAgentClient, AgentClientError, } from "./agent/create-agent-client.js";
9
+ export type { AgentClientConfig, AgentSessionCredentials, AgentRestoreOptions, AgentChatOptions, AgentTurn, } from "./agent/create-agent-client.js";
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,wBAAwB,EACxB,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,cAAc,EACd,YAAY,EACZ,SAAS,EACT,aAAa,EACb,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,cAAc,EACd,cAAc,EACd,IAAI,EACJ,eAAe,EACf,GAAG,EACH,WAAW,EACX,aAAa,EACb,UAAU,EACV,SAAS,EACT,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,OAAO,EACP,MAAM,EACN,SAAS,EACT,aAAa,EACb,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,eAAe,EACf,GAAG,EACH,WAAW,EACX,OAAO,EACP,eAAe,EACf,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,GAAG,EACH,WAAW,EACX,MAAM,EACN,cAAc,EACd,MAAM,EACN,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,MAAM,EACN,cAAc,EACd,cAAc,EACd,YAAY,EACZ,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,OAAO,EACP,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,aAAa,EACb,aAAa,EACb,eAAe,EACf,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,WAAW,EACX,eAAe,EACf,UAAU,EACV,eAAe,EACf,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,wBAAwB,EACxB,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,cAAc,EACd,YAAY,EACZ,SAAS,EACT,aAAa,EACb,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,cAAc,EACd,cAAc,EACd,IAAI,EACJ,eAAe,EACf,GAAG,EACH,WAAW,EACX,aAAa,EACb,UAAU,EACV,SAAS,EACT,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,OAAO,EACP,MAAM,EACN,SAAS,EACT,aAAa,EACb,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,eAAe,EACf,GAAG,EACH,WAAW,EACX,OAAO,EACP,eAAe,EACf,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,GAAG,EACH,WAAW,EACX,MAAM,EACN,cAAc,EACd,MAAM,EACN,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,MAAM,EACN,cAAc,EACd,cAAc,EACd,YAAY,EACZ,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,OAAO,EACP,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,aAAa,EACb,aAAa,EACb,eAAe,EACf,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,WAAW,EACX,eAAe,EACf,UAAU,EACV,eAAe,EACf,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,SAAS,GACV,MAAM,gCAAgC,CAAC"}
package/dist/index.js CHANGED
@@ -7,4 +7,5 @@ export { coreBlockPopulates, seoPopulate, footerPopulate, getPagePopulate, getPa
7
7
  export { getPage, getPageBySlug, listPages, listPagesRest, getArticle, getArticleBySlug, listArticles, getGlobal, getGlobalRest, getNavigation, getSiteSettings, listFaqs, listCategories, listTags, listAuthors, getAuthorBySlug, listSeries, getSeriesBySlug, postInquiry, } from "./api/index.js";
8
8
  // Utils
9
9
  export { getMediaUrl, getAssetUrl } from "./utils/index.js";
10
+ export { createAgentClient, AgentClientError, } from "./agent/create-agent-client.js";
10
11
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAoF1D,SAAS;AACT,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,WAAW;AACX,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,MAAM;AACN,OAAO,EACL,OAAO,EACP,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,aAAa,EACb,aAAa,EACb,eAAe,EACf,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,WAAW,EACX,eAAe,EACf,UAAU,EACV,eAAe,EACf,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAexB,QAAQ;AACR,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAoF1D,SAAS;AACT,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,WAAW;AACX,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,MAAM;AACN,OAAO,EACL,OAAO,EACP,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,aAAa,EACb,aAAa,EACb,eAAe,EACf,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,WAAW,EACX,eAAe,EACf,UAAU,EACV,eAAe,EACf,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAexB,QAAQ;AACR,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PREVIEW_TTL_SECONDS = void 0;
4
+ exports.isSafePreviewPath = isSafePreviewPath;
5
+ exports.verifyPreviewToken = verifyPreviewToken;
6
+ const node_crypto_1 = require("node:crypto");
7
+ exports.PREVIEW_TTL_SECONDS = 300;
8
+ function isSafePreviewPath(path) {
9
+ return (path.startsWith("/") &&
10
+ !path.startsWith("//") &&
11
+ !/[\\#]/.test(path) &&
12
+ !Array.from(path).some((character) => character.charCodeAt(0) <= 32) &&
13
+ !/%(?:2f|5c|0[0-9a-f]|1[0-9a-f]|20)/i.test(path));
14
+ }
15
+ /** Verify the server-only shared key and bind both redirect and draft status. */
16
+ function verifyPreviewToken(token, path, status, secret = process.env.PREVIEW_SECRET, now = Date.now()) {
17
+ if (!secret ||
18
+ !token ||
19
+ !path ||
20
+ !["draft", "published"].includes(status ?? ""))
21
+ return false;
22
+ if (!isSafePreviewPath(path))
23
+ return false;
24
+ const parts = token.split(".");
25
+ const payload = parts[0];
26
+ const signature = parts[1];
27
+ if (parts.length !== 2 ||
28
+ !payload ||
29
+ !signature ||
30
+ !/^[A-Za-z0-9_-]+$/.test(payload) ||
31
+ !/^[A-Za-z0-9_-]{43}$/.test(signature))
32
+ return false;
33
+ const expected = (0, node_crypto_1.createHmac)("sha256", secret).update(payload).digest();
34
+ const provided = Buffer.from(signature, "base64url");
35
+ if (provided.length !== expected.length ||
36
+ !(0, node_crypto_1.timingSafeEqual)(provided, expected))
37
+ return false;
38
+ try {
39
+ const claims = JSON.parse(Buffer.from(payload, "base64url").toString("utf8"));
40
+ if (typeof claims !== "object" || claims === null)
41
+ return false;
42
+ const value = claims;
43
+ const seconds = Math.floor(now / 1000);
44
+ return (value.path === path &&
45
+ value.status === status &&
46
+ typeof value.exp === "number" &&
47
+ Number.isInteger(value.exp) &&
48
+ value.exp > seconds &&
49
+ value.exp <= seconds + exports.PREVIEW_TTL_SECONDS);
50
+ }
51
+ catch {
52
+ return false;
53
+ }
54
+ }
55
+ //# sourceMappingURL=preview.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview.cjs","sourceRoot":"","sources":["../src/preview.cts"],"names":[],"mappings":";;;AAIA,8CAQC;AAGD,gDAmDC;AAlED,6CAA0D;AAE7C,QAAA,mBAAmB,GAAG,GAAG,CAAC;AAEvC,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,OAAO,CACL,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QACpB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACtB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpE,CAAC,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,CACjD,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,SAAgB,kBAAkB,CAChC,KAAoB,EACpB,IAAmB,EACnB,MAAqB,EACrB,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EACnC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAEhB,IACE,CAAC,MAAM;QACP,CAAC,KAAK;QACN,CAAC,IAAI;QACL,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;QAE9C,OAAO,KAAK,CAAC;IACf,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,IACE,KAAK,CAAC,MAAM,KAAK,CAAC;QAClB,CAAC,OAAO;QACR,CAAC,SAAS;QACV,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;QACjC,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC;QAEtC,OAAO,KAAK,CAAC;IACf,MAAM,QAAQ,GAAG,IAAA,wBAAU,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IACvE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,IACE,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;QACnC,CAAC,IAAA,6BAAe,EAAC,QAAQ,EAAE,QAAQ,CAAC;QAEpC,OAAO,KAAK,CAAC;IACf,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAChC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CACnD,CAAC;QACF,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAChE,MAAM,KAAK,GAAG,MAAiC,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QACvC,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,IAAI;YACnB,KAAK,CAAC,MAAM,KAAK,MAAM;YACvB,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;YAC7B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;YAC3B,KAAK,CAAC,GAAG,GAAG,OAAO;YACnB,KAAK,CAAC,GAAG,IAAI,OAAO,GAAG,2BAAmB,CAC3C,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const PREVIEW_TTL_SECONDS = 300;
2
+ export declare function isSafePreviewPath(path: string): boolean;
3
+ /** Verify the server-only shared key and bind both redirect and draft status. */
4
+ export declare function verifyPreviewToken(token: string | null, path: string | null, status: string | null, secret?: string | undefined, now?: number): boolean;
5
+ //# sourceMappingURL=preview.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview.d.cts","sourceRoot":"","sources":["../src/preview.cts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQvD;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,MAAM,qBAA6B,EACnC,GAAG,SAAa,GACf,OAAO,CA6CT"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dani-builder/strapi-client",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "TypeScript client for Daniworks Builder CMS (Strapi v5)",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -28,6 +28,18 @@
28
28
  "./utils": {
29
29
  "types": "./dist/utils/index.d.ts",
30
30
  "import": "./dist/utils/index.js"
31
+ },
32
+ "./preview": {
33
+ "types": "./dist/preview.d.cts",
34
+ "import": "./dist/preview.cjs",
35
+ "require": "./dist/preview.cjs"
36
+ }
37
+ },
38
+ "typesVersions": {
39
+ "*": {
40
+ "preview": [
41
+ "dist/preview.d.cts"
42
+ ]
31
43
  }
32
44
  },
33
45
  "files": [
@@ -47,12 +59,14 @@
47
59
  },
48
60
  "dependencies": {
49
61
  "axios": "^1.19.0",
50
- "qs": "^6.15.3"
62
+ "qs": "^6.15.3",
63
+ "@dani-builder/agent-contract": "0.5.0"
51
64
  },
52
65
  "devDependencies": {
53
66
  "@types/qs": "^6.15.1",
54
67
  "eslint": "^10.8.1",
55
68
  "typescript": "^6.0.3",
69
+ "@types/node": "^26",
56
70
  "@repo/eslint-config": "0.0.0",
57
71
  "@repo/typescript-config": "0.0.0"
58
72
  },