@dani-builder/strapi-plugin-builder 0.11.0 → 0.12.1

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.
@@ -1,5 +1,2 @@
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;
1
+ export { isSafePreviewPath, PREVIEW_TTL_SECONDS, verifyPreviewToken, } from "@dani-builder/strapi-client/preview";
5
2
  //# sourceMappingURL=preview-token.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"preview-token.d.ts","sourceRoot":"","sources":["../../../server/src/preview-token.ts"],"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"}
1
+ {"version":3,"file":"preview-token.d.ts","sourceRoot":"","sources":["../../../server/src/preview-token.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,qCAAqC,CAAC"}
@@ -1,55 +1,8 @@
1
1
  "use strict";
2
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
- }
3
+ exports.verifyPreviewToken = exports.PREVIEW_TTL_SECONDS = exports.isSafePreviewPath = void 0;
4
+ var preview_1 = require("@dani-builder/strapi-client/preview");
5
+ Object.defineProperty(exports, "isSafePreviewPath", { enumerable: true, get: function () { return preview_1.isSafePreviewPath; } });
6
+ Object.defineProperty(exports, "PREVIEW_TTL_SECONDS", { enumerable: true, get: function () { return preview_1.PREVIEW_TTL_SECONDS; } });
7
+ Object.defineProperty(exports, "verifyPreviewToken", { enumerable: true, get: function () { return preview_1.verifyPreviewToken; } });
55
8
  //# sourceMappingURL=preview-token.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"preview-token.js","sourceRoot":"","sources":["../../../server/src/preview-token.ts"],"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"}
1
+ {"version":3,"file":"preview-token.js","sourceRoot":"","sources":["../../../server/src/preview-token.ts"],"names":[],"mappings":";;;AAAA,+DAI6C;AAH3C,4GAAA,iBAAiB,OAAA;AACjB,8GAAA,mBAAmB,OAAA;AACnB,6GAAA,kBAAkB,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dani-builder/strapi-plugin-builder",
3
- "version": "0.11.0",
3
+ "version": "0.12.1",
4
4
  "description": "Daniworks Builder — reusable CMS components, content types, and smart API for Strapi v5",
5
5
  "license": "MIT",
6
6
  "strapi": {
@@ -62,7 +62,9 @@
62
62
  "url": "https://github.com/HJ-company/daniworks-builder-v2.git",
63
63
  "directory": "packages/strapi-plugin-builder"
64
64
  },
65
- "dependencies": {},
65
+ "dependencies": {
66
+ "@dani-builder/strapi-client": "^0.12.1"
67
+ },
66
68
  "devDependencies": {
67
69
  "@strapi/strapi": "5.54.0",
68
70
  "@strapi/utils": "5.54.0",