@withwiz/cms-kit 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ko.md +146 -0
- package/README.md +146 -0
- package/dist/chunk-2REYWBQ6.js +32 -0
- package/dist/chunk-2REYWBQ6.js.map +1 -0
- package/dist/chunk-2SYUEQ6J.mjs +17 -0
- package/dist/chunk-2SYUEQ6J.mjs.map +1 -0
- package/dist/chunk-3ILEMZAL.mjs +32 -0
- package/dist/chunk-3ILEMZAL.mjs.map +1 -0
- package/dist/chunk-3Y2TQCHU.mjs +33 -0
- package/dist/chunk-3Y2TQCHU.mjs.map +1 -0
- package/dist/chunk-4LSFAAZW.js +1 -0
- package/dist/chunk-4LSFAAZW.js.map +1 -0
- package/dist/chunk-4W3X7OKF.js +100 -0
- package/dist/chunk-4W3X7OKF.js.map +1 -0
- package/dist/chunk-5JUIMXNF.js +108 -0
- package/dist/chunk-5JUIMXNF.js.map +1 -0
- package/dist/chunk-5RDMODGV.mjs +34 -0
- package/dist/chunk-5RDMODGV.mjs.map +1 -0
- package/dist/chunk-6ES4W2DL.mjs +1 -0
- package/dist/chunk-6ES4W2DL.mjs.map +1 -0
- package/dist/chunk-6EZ3QE5N.js +71 -0
- package/dist/chunk-6EZ3QE5N.js.map +1 -0
- package/dist/chunk-6JFERXNE.mjs +16 -0
- package/dist/chunk-6JFERXNE.mjs.map +1 -0
- package/dist/chunk-7SWW3ZIN.js +17 -0
- package/dist/chunk-7SWW3ZIN.js.map +1 -0
- package/dist/chunk-AXR56AUD.mjs +1 -0
- package/dist/chunk-AXR56AUD.mjs.map +1 -0
- package/dist/chunk-BE7JDL64.js +154 -0
- package/dist/chunk-BE7JDL64.js.map +1 -0
- package/dist/chunk-BHN2SRZC.js +51 -0
- package/dist/chunk-BHN2SRZC.js.map +1 -0
- package/dist/chunk-BJTO5JO5.mjs +11 -0
- package/dist/chunk-BJTO5JO5.mjs.map +1 -0
- package/dist/chunk-BWKKHCDG.mjs +164 -0
- package/dist/chunk-BWKKHCDG.mjs.map +1 -0
- package/dist/chunk-C5WFZJM4.js +218 -0
- package/dist/chunk-C5WFZJM4.js.map +1 -0
- package/dist/chunk-CGVFB23E.mjs +123 -0
- package/dist/chunk-CGVFB23E.mjs.map +1 -0
- package/dist/chunk-D2VDTRXO.js +1 -0
- package/dist/chunk-D2VDTRXO.js.map +1 -0
- package/dist/chunk-D75ADHVM.mjs +181 -0
- package/dist/chunk-D75ADHVM.mjs.map +1 -0
- package/dist/chunk-DCIF4XJL.js +309 -0
- package/dist/chunk-DCIF4XJL.js.map +1 -0
- package/dist/chunk-DGUM43GV.js +11 -0
- package/dist/chunk-DGUM43GV.js.map +1 -0
- package/dist/chunk-DSORCGJK.js +44 -0
- package/dist/chunk-DSORCGJK.js.map +1 -0
- package/dist/chunk-E5YUAOJI.js +27 -0
- package/dist/chunk-E5YUAOJI.js.map +1 -0
- package/dist/chunk-EG6NVPP2.js +164 -0
- package/dist/chunk-EG6NVPP2.js.map +1 -0
- package/dist/chunk-EL7YGOTY.js +1 -0
- package/dist/chunk-EL7YGOTY.js.map +1 -0
- package/dist/chunk-EM4MQEWV.mjs +100 -0
- package/dist/chunk-EM4MQEWV.mjs.map +1 -0
- package/dist/chunk-FCCCG5Z7.mjs +108 -0
- package/dist/chunk-FCCCG5Z7.mjs.map +1 -0
- package/dist/chunk-FEPGJ7WN.mjs +218 -0
- package/dist/chunk-FEPGJ7WN.mjs.map +1 -0
- package/dist/chunk-HXVWBFCN.js +16 -0
- package/dist/chunk-HXVWBFCN.js.map +1 -0
- package/dist/chunk-I5YMTJV6.mjs +51 -0
- package/dist/chunk-I5YMTJV6.mjs.map +1 -0
- package/dist/chunk-IMNWW7Q5.mjs +13 -0
- package/dist/chunk-IMNWW7Q5.mjs.map +1 -0
- package/dist/chunk-J5N76ASB.mjs +114 -0
- package/dist/chunk-J5N76ASB.mjs.map +1 -0
- package/dist/chunk-JBV26CUG.mjs +51 -0
- package/dist/chunk-JBV26CUG.mjs.map +1 -0
- package/dist/chunk-JMWXVXK5.js +53 -0
- package/dist/chunk-JMWXVXK5.js.map +1 -0
- package/dist/chunk-KWKV2GAH.js +60 -0
- package/dist/chunk-KWKV2GAH.js.map +1 -0
- package/dist/chunk-LDFE33ML.mjs +53 -0
- package/dist/chunk-LDFE33ML.mjs.map +1 -0
- package/dist/chunk-LF5LOI7K.mjs +174 -0
- package/dist/chunk-LF5LOI7K.mjs.map +1 -0
- package/dist/chunk-MMKAMH4U.mjs +16 -0
- package/dist/chunk-MMKAMH4U.mjs.map +1 -0
- package/dist/chunk-MUHFEEYW.js +33 -0
- package/dist/chunk-MUHFEEYW.js.map +1 -0
- package/dist/chunk-MUQYK5EO.js +1 -0
- package/dist/chunk-MUQYK5EO.js.map +1 -0
- package/dist/chunk-OBNALAMG.mjs +71 -0
- package/dist/chunk-OBNALAMG.mjs.map +1 -0
- package/dist/chunk-OLEYNPW6.js +25 -0
- package/dist/chunk-OLEYNPW6.js.map +1 -0
- package/dist/chunk-OYJRR3G2.js +123 -0
- package/dist/chunk-OYJRR3G2.js.map +1 -0
- package/dist/chunk-PLVG7AW3.js +16 -0
- package/dist/chunk-PLVG7AW3.js.map +1 -0
- package/dist/chunk-PYD4CES4.js +1 -0
- package/dist/chunk-PYD4CES4.js.map +1 -0
- package/dist/chunk-QACD2U6P.mjs +1 -0
- package/dist/chunk-QACD2U6P.mjs.map +1 -0
- package/dist/chunk-R5GGIVD4.js +10 -0
- package/dist/chunk-R5GGIVD4.js.map +1 -0
- package/dist/chunk-RCK5WCU5.mjs +25 -0
- package/dist/chunk-RCK5WCU5.mjs.map +1 -0
- package/dist/chunk-S6UUSM7S.js +13 -0
- package/dist/chunk-S6UUSM7S.js.map +1 -0
- package/dist/chunk-S7GOXCRM.js +114 -0
- package/dist/chunk-S7GOXCRM.js.map +1 -0
- package/dist/chunk-SMV5D5LO.mjs +28 -0
- package/dist/chunk-SMV5D5LO.mjs.map +1 -0
- package/dist/chunk-T7EVFD4G.mjs +60 -0
- package/dist/chunk-T7EVFD4G.mjs.map +1 -0
- package/dist/chunk-TLH3V4SY.mjs +1 -0
- package/dist/chunk-TLH3V4SY.mjs.map +1 -0
- package/dist/chunk-TUQ2CVAK.mjs +10 -0
- package/dist/chunk-TUQ2CVAK.mjs.map +1 -0
- package/dist/chunk-U6PVJKTB.js +51 -0
- package/dist/chunk-U6PVJKTB.js.map +1 -0
- package/dist/chunk-UXMMEEX4.mjs +27 -0
- package/dist/chunk-UXMMEEX4.mjs.map +1 -0
- package/dist/chunk-VVXNFFKI.mjs +44 -0
- package/dist/chunk-VVXNFFKI.mjs.map +1 -0
- package/dist/chunk-VZZ3RU3Q.js +28 -0
- package/dist/chunk-VZZ3RU3Q.js.map +1 -0
- package/dist/chunk-W4FWIZ2Y.js +34 -0
- package/dist/chunk-W4FWIZ2Y.js.map +1 -0
- package/dist/chunk-YEQFKOWD.mjs +154 -0
- package/dist/chunk-YEQFKOWD.mjs.map +1 -0
- package/dist/chunk-YPBKY4KY.mjs +1 -0
- package/dist/chunk-YPBKY4KY.mjs.map +1 -0
- package/dist/chunk-YY7K5CXX.js +174 -0
- package/dist/chunk-YY7K5CXX.js.map +1 -0
- package/dist/chunk-ZFORODOX.js +181 -0
- package/dist/chunk-ZFORODOX.js.map +1 -0
- package/dist/chunk-ZULSFSDG.mjs +309 -0
- package/dist/chunk-ZULSFSDG.mjs.map +1 -0
- package/dist/components/AdminManagerBase.d.mts +26 -0
- package/dist/components/AdminManagerBase.d.ts +26 -0
- package/dist/components/AdminManagerBase.js +13 -0
- package/dist/components/AdminManagerBase.js.map +1 -0
- package/dist/components/AdminManagerBase.mjs +12 -0
- package/dist/components/AdminManagerBase.mjs.map +1 -0
- package/dist/components/AdminManagerConfig.d.mts +83 -0
- package/dist/components/AdminManagerConfig.d.ts +83 -0
- package/dist/components/AdminManagerConfig.js +2 -0
- package/dist/components/AdminManagerConfig.js.map +1 -0
- package/dist/components/AdminManagerConfig.mjs +2 -0
- package/dist/components/AdminManagerConfig.mjs.map +1 -0
- package/dist/components/AdminShell.d.mts +30 -0
- package/dist/components/AdminShell.d.ts +30 -0
- package/dist/components/AdminShell.js +12 -0
- package/dist/components/AdminShell.js.map +1 -0
- package/dist/components/AdminShell.mjs +11 -0
- package/dist/components/AdminShell.mjs.map +1 -0
- package/dist/components/JsonLd.d.mts +32 -0
- package/dist/components/JsonLd.d.ts +32 -0
- package/dist/components/JsonLd.js +11 -0
- package/dist/components/JsonLd.js.map +1 -0
- package/dist/components/JsonLd.mjs +11 -0
- package/dist/components/JsonLd.mjs.map +1 -0
- package/dist/components/ResizableImage.d.mts +18 -0
- package/dist/components/ResizableImage.d.ts +18 -0
- package/dist/components/ResizableImage.js +10 -0
- package/dist/components/ResizableImage.js.map +1 -0
- package/dist/components/ResizableImage.mjs +9 -0
- package/dist/components/ResizableImage.mjs.map +1 -0
- package/dist/components/ToggleSwitch.d.mts +11 -0
- package/dist/components/ToggleSwitch.d.ts +11 -0
- package/dist/components/ToggleSwitch.js +10 -0
- package/dist/components/ToggleSwitch.js.map +1 -0
- package/dist/components/ToggleSwitch.mjs +9 -0
- package/dist/components/ToggleSwitch.mjs.map +1 -0
- package/dist/components/image-drop-zone.css +115 -0
- package/dist/components/index.d.mts +26 -0
- package/dist/components/index.d.ts +26 -0
- package/dist/components/index.js +35 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/index.mjs +35 -0
- package/dist/components/index.mjs.map +1 -0
- package/dist/components/toggle-switch.css +55 -0
- package/dist/hooks/index.d.mts +45 -0
- package/dist/hooks/index.d.ts +45 -0
- package/dist/hooks/index.js +25 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/index.mjs +25 -0
- package/dist/hooks/index.mjs.map +1 -0
- package/dist/hooks/useImageDropZone.d.mts +37 -0
- package/dist/hooks/useImageDropZone.d.ts +37 -0
- package/dist/hooks/useImageDropZone.js +13 -0
- package/dist/hooks/useImageDropZone.js.map +1 -0
- package/dist/hooks/useImageDropZone.mjs +12 -0
- package/dist/hooks/useImageDropZone.mjs.map +1 -0
- package/dist/hooks/useScrollReveal.d.mts +6 -0
- package/dist/hooks/useScrollReveal.d.ts +6 -0
- package/dist/hooks/useScrollReveal.js +12 -0
- package/dist/hooks/useScrollReveal.js.map +1 -0
- package/dist/hooks/useScrollReveal.mjs +11 -0
- package/dist/hooks/useScrollReveal.mjs.map +1 -0
- package/dist/image-drop-zone.css +115 -0
- package/dist/index-00a40-FQ.d.mts +136 -0
- package/dist/index-00a40-FQ.d.ts +136 -0
- package/dist/index.d.mts +35 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.js +169 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +169 -0
- package/dist/index.mjs.map +1 -0
- package/dist/infrastructure/index.d.mts +4 -0
- package/dist/infrastructure/index.d.ts +4 -0
- package/dist/infrastructure/index.js +20 -0
- package/dist/infrastructure/index.js.map +1 -0
- package/dist/infrastructure/index.mjs +20 -0
- package/dist/infrastructure/index.mjs.map +1 -0
- package/dist/infrastructure/middleware/index.d.mts +3 -0
- package/dist/infrastructure/middleware/index.d.ts +3 -0
- package/dist/infrastructure/middleware/index.js +15 -0
- package/dist/infrastructure/middleware/index.js.map +1 -0
- package/dist/infrastructure/middleware/index.mjs +15 -0
- package/dist/infrastructure/middleware/index.mjs.map +1 -0
- package/dist/infrastructure/middleware/wrappers.d.mts +10 -0
- package/dist/infrastructure/middleware/wrappers.d.ts +10 -0
- package/dist/infrastructure/middleware/wrappers.js +15 -0
- package/dist/infrastructure/middleware/wrappers.js.map +1 -0
- package/dist/infrastructure/middleware/wrappers.mjs +15 -0
- package/dist/infrastructure/middleware/wrappers.mjs.map +1 -0
- package/dist/infrastructure/prisma.d.mts +5 -0
- package/dist/infrastructure/prisma.d.ts +5 -0
- package/dist/infrastructure/prisma.js +12 -0
- package/dist/infrastructure/prisma.js.map +1 -0
- package/dist/infrastructure/prisma.mjs +12 -0
- package/dist/infrastructure/prisma.mjs.map +1 -0
- package/dist/services/index.d.mts +22 -0
- package/dist/services/index.d.ts +22 -0
- package/dist/services/index.js +36 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/index.mjs +36 -0
- package/dist/services/index.mjs.map +1 -0
- package/dist/toggle-switch.css +55 -0
- package/dist/types/common.d.mts +14 -0
- package/dist/types/common.d.ts +14 -0
- package/dist/types/common.js +8 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/common.mjs +8 -0
- package/dist/types/common.mjs.map +1 -0
- package/dist/types/index.d.mts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.js +9 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/index.mjs +9 -0
- package/dist/types/index.mjs.map +1 -0
- package/dist/utils/admin-fetch.d.mts +11 -0
- package/dist/utils/admin-fetch.d.ts +11 -0
- package/dist/utils/admin-fetch.js +13 -0
- package/dist/utils/admin-fetch.js.map +1 -0
- package/dist/utils/admin-fetch.mjs +13 -0
- package/dist/utils/admin-fetch.mjs.map +1 -0
- package/dist/utils/api-helpers.d.mts +20 -0
- package/dist/utils/api-helpers.d.ts +20 -0
- package/dist/utils/api-helpers.js +12 -0
- package/dist/utils/api-helpers.js.map +1 -0
- package/dist/utils/api-helpers.mjs +12 -0
- package/dist/utils/api-helpers.mjs.map +1 -0
- package/dist/utils/date.d.mts +5 -0
- package/dist/utils/date.d.ts +5 -0
- package/dist/utils/date.js +12 -0
- package/dist/utils/date.js.map +1 -0
- package/dist/utils/date.mjs +12 -0
- package/dist/utils/date.mjs.map +1 -0
- package/dist/utils/html-sanitizer.d.mts +56 -0
- package/dist/utils/html-sanitizer.d.ts +56 -0
- package/dist/utils/html-sanitizer.js +11 -0
- package/dist/utils/html-sanitizer.js.map +1 -0
- package/dist/utils/html-sanitizer.mjs +11 -0
- package/dist/utils/html-sanitizer.mjs.map +1 -0
- package/dist/utils/image-variant-utils.d.mts +14 -0
- package/dist/utils/image-variant-utils.d.ts +14 -0
- package/dist/utils/image-variant-utils.js +10 -0
- package/dist/utils/image-variant-utils.js.map +1 -0
- package/dist/utils/image-variant-utils.mjs +10 -0
- package/dist/utils/image-variant-utils.mjs.map +1 -0
- package/dist/utils/image-variants.d.mts +13 -0
- package/dist/utils/image-variants.d.ts +13 -0
- package/dist/utils/image-variants.js +12 -0
- package/dist/utils/image-variants.js.map +1 -0
- package/dist/utils/image-variants.mjs +12 -0
- package/dist/utils/image-variants.mjs.map +1 -0
- package/dist/utils/index.d.mts +88 -0
- package/dist/utils/index.d.ts +88 -0
- package/dist/utils/index.js +92 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/index.mjs +92 -0
- package/dist/utils/index.mjs.map +1 -0
- package/dist/utils/jwt.d.mts +19 -0
- package/dist/utils/jwt.d.ts +19 -0
- package/dist/utils/jwt.js +9 -0
- package/dist/utils/jwt.js.map +1 -0
- package/dist/utils/jwt.mjs +9 -0
- package/dist/utils/jwt.mjs.map +1 -0
- package/dist/utils/r2-helpers.d.mts +9 -0
- package/dist/utils/r2-helpers.d.ts +9 -0
- package/dist/utils/r2-helpers.js +20 -0
- package/dist/utils/r2-helpers.js.map +1 -0
- package/dist/utils/r2-helpers.mjs +20 -0
- package/dist/utils/r2-helpers.mjs.map +1 -0
- package/dist/utils/r2-storage.d.mts +38 -0
- package/dist/utils/r2-storage.d.ts +38 -0
- package/dist/utils/r2-storage.js +17 -0
- package/dist/utils/r2-storage.js.map +1 -0
- package/dist/utils/r2-storage.mjs +17 -0
- package/dist/utils/r2-storage.mjs.map +1 -0
- package/dist/utils/route-params.d.mts +3 -0
- package/dist/utils/route-params.d.ts +3 -0
- package/dist/utils/route-params.js +8 -0
- package/dist/utils/route-params.js.map +1 -0
- package/dist/utils/route-params.mjs +8 -0
- package/dist/utils/route-params.mjs.map +1 -0
- package/dist/validators/index.d.mts +2 -0
- package/dist/validators/index.d.ts +2 -0
- package/dist/validators/index.js +11 -0
- package/dist/validators/index.js.map +1 -0
- package/dist/validators/index.mjs +11 -0
- package/dist/validators/index.mjs.map +1 -0
- package/dist/validators/shared.d.mts +6 -0
- package/dist/validators/shared.d.ts +6 -0
- package/dist/validators/shared.js +10 -0
- package/dist/validators/shared.js.map +1 -0
- package/dist/validators/shared.mjs +10 -0
- package/dist/validators/shared.mjs.map +1 -0
- package/package.json +257 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { SortOrder } from '../types/common.mjs';
|
|
2
|
+
export { PaginatedResult, buildPaginatedResult } from '../types/common.mjs';
|
|
3
|
+
export { collectR2Keys, deleteR2Keys } from '../utils/r2-helpers.mjs';
|
|
4
|
+
export { isR2Enabled } from '../utils/r2-storage.mjs';
|
|
5
|
+
export { prisma } from '../infrastructure/prisma.mjs';
|
|
6
|
+
export { sanitizeHtmlContent } from '../utils/html-sanitizer.mjs';
|
|
7
|
+
import '../utils/image-variant-utils.mjs';
|
|
8
|
+
|
|
9
|
+
interface ListParams {
|
|
10
|
+
page?: number;
|
|
11
|
+
limit?: number;
|
|
12
|
+
sortBy?: string;
|
|
13
|
+
sortOrder?: SortOrder;
|
|
14
|
+
}
|
|
15
|
+
declare const DEFAULT_PAGE = 1;
|
|
16
|
+
declare const DEFAULT_LIMIT = 20;
|
|
17
|
+
declare function parseSortParam(sortBy: string, allowed: string[], defaultField: string): {
|
|
18
|
+
field: string;
|
|
19
|
+
order: SortOrder;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export { DEFAULT_LIMIT, DEFAULT_PAGE, type ListParams, SortOrder, parseSortParam };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { SortOrder } from '../types/common.js';
|
|
2
|
+
export { PaginatedResult, buildPaginatedResult } from '../types/common.js';
|
|
3
|
+
export { collectR2Keys, deleteR2Keys } from '../utils/r2-helpers.js';
|
|
4
|
+
export { isR2Enabled } from '../utils/r2-storage.js';
|
|
5
|
+
export { prisma } from '../infrastructure/prisma.js';
|
|
6
|
+
export { sanitizeHtmlContent } from '../utils/html-sanitizer.js';
|
|
7
|
+
import '../utils/image-variant-utils.js';
|
|
8
|
+
|
|
9
|
+
interface ListParams {
|
|
10
|
+
page?: number;
|
|
11
|
+
limit?: number;
|
|
12
|
+
sortBy?: string;
|
|
13
|
+
sortOrder?: SortOrder;
|
|
14
|
+
}
|
|
15
|
+
declare const DEFAULT_PAGE = 1;
|
|
16
|
+
declare const DEFAULT_LIMIT = 20;
|
|
17
|
+
declare function parseSortParam(sortBy: string, allowed: string[], defaultField: string): {
|
|
18
|
+
field: string;
|
|
19
|
+
order: SortOrder;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export { DEFAULT_LIMIT, DEFAULT_PAGE, type ListParams, SortOrder, parseSortParam };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
var _chunkPLVG7AW3js = require('../chunk-PLVG7AW3.js');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
var _chunkOLEYNPW6js = require('../chunk-OLEYNPW6.js');
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
var _chunkS6UUSM7Sjs = require('../chunk-S6UUSM7S.js');
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
var _chunk4W3X7OKFjs = require('../chunk-4W3X7OKF.js');
|
|
16
|
+
require('../chunk-HXVWBFCN.js');
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
var _chunkBE7JDL64js = require('../chunk-BE7JDL64.js');
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
var _chunkOYJRR3G2js = require('../chunk-OYJRR3G2.js');
|
|
23
|
+
require('../chunk-EG6NVPP2.js');
|
|
24
|
+
require('../chunk-DGUM43GV.js');
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
exports.DEFAULT_LIMIT = _chunkPLVG7AW3js.DEFAULT_LIMIT; exports.DEFAULT_PAGE = _chunkPLVG7AW3js.DEFAULT_PAGE; exports.buildPaginatedResult = _chunkS6UUSM7Sjs.buildPaginatedResult; exports.collectR2Keys = _chunk4W3X7OKFjs.collectR2Keys; exports.deleteR2Keys = _chunk4W3X7OKFjs.deleteR2Keys; exports.isR2Enabled = _chunkBE7JDL64js.isR2Enabled; exports.parseSortParam = _chunkPLVG7AW3js.parseSortParam; exports.prisma = _chunkOLEYNPW6js.prisma; exports.sanitizeHtmlContent = _chunkOYJRR3G2js.sanitizeHtmlContent;
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/uni4love/project/workspace/211-withwiz/node-packages/withwiz-cms-kit/dist/services/index.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACF,uDAA6B;AAC7B;AACE;AACF,uDAA6B;AAC7B;AACE;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,uDAA6B;AAC7B;AACE;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,6fAAC","file":"/Users/uni4love/project/workspace/211-withwiz/node-packages/withwiz-cms-kit/dist/services/index.js"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DEFAULT_LIMIT,
|
|
3
|
+
DEFAULT_PAGE,
|
|
4
|
+
parseSortParam
|
|
5
|
+
} from "../chunk-6JFERXNE.mjs";
|
|
6
|
+
import {
|
|
7
|
+
prisma
|
|
8
|
+
} from "../chunk-RCK5WCU5.mjs";
|
|
9
|
+
import {
|
|
10
|
+
buildPaginatedResult
|
|
11
|
+
} from "../chunk-IMNWW7Q5.mjs";
|
|
12
|
+
import {
|
|
13
|
+
collectR2Keys,
|
|
14
|
+
deleteR2Keys
|
|
15
|
+
} from "../chunk-EM4MQEWV.mjs";
|
|
16
|
+
import "../chunk-MMKAMH4U.mjs";
|
|
17
|
+
import {
|
|
18
|
+
isR2Enabled
|
|
19
|
+
} from "../chunk-YEQFKOWD.mjs";
|
|
20
|
+
import {
|
|
21
|
+
sanitizeHtmlContent
|
|
22
|
+
} from "../chunk-CGVFB23E.mjs";
|
|
23
|
+
import "../chunk-BWKKHCDG.mjs";
|
|
24
|
+
import "../chunk-BJTO5JO5.mjs";
|
|
25
|
+
export {
|
|
26
|
+
DEFAULT_LIMIT,
|
|
27
|
+
DEFAULT_PAGE,
|
|
28
|
+
buildPaginatedResult,
|
|
29
|
+
collectR2Keys,
|
|
30
|
+
deleteR2Keys,
|
|
31
|
+
isR2Enabled,
|
|
32
|
+
parseSortParam,
|
|
33
|
+
prisma,
|
|
34
|
+
sanitizeHtmlContent
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/* ─── Toggle Switch ─── */
|
|
2
|
+
.admin-toggle {
|
|
3
|
+
display: inline-flex;
|
|
4
|
+
align-items: center;
|
|
5
|
+
gap: 6px;
|
|
6
|
+
cursor: pointer;
|
|
7
|
+
user-select: none;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.admin-toggle-input {
|
|
11
|
+
position: absolute;
|
|
12
|
+
opacity: 0;
|
|
13
|
+
width: 0;
|
|
14
|
+
height: 0;
|
|
15
|
+
pointer-events: none;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/* Track */
|
|
19
|
+
.admin-toggle-track {
|
|
20
|
+
position: relative;
|
|
21
|
+
width: 36px;
|
|
22
|
+
height: 20px;
|
|
23
|
+
background: #ccc;
|
|
24
|
+
border-radius: 10px;
|
|
25
|
+
transition: background 0.2s;
|
|
26
|
+
flex-shrink: 0;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.admin-toggle-track.on {
|
|
30
|
+
background: #8c7444;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* Thumb */
|
|
34
|
+
.admin-toggle-thumb {
|
|
35
|
+
position: absolute;
|
|
36
|
+
top: 2px;
|
|
37
|
+
left: 2px;
|
|
38
|
+
width: 16px;
|
|
39
|
+
height: 16px;
|
|
40
|
+
background: #fff;
|
|
41
|
+
border-radius: 50%;
|
|
42
|
+
transition: left 0.2s;
|
|
43
|
+
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.admin-toggle-track.on .admin-toggle-thumb {
|
|
47
|
+
left: 18px;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* Label */
|
|
51
|
+
.admin-toggle-label {
|
|
52
|
+
font-size: 12px;
|
|
53
|
+
color: #555;
|
|
54
|
+
white-space: nowrap;
|
|
55
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
interface PaginatedResult<T> {
|
|
2
|
+
items: T[];
|
|
3
|
+
pagination: {
|
|
4
|
+
page: number;
|
|
5
|
+
pageSize: number;
|
|
6
|
+
total: number;
|
|
7
|
+
totalPages: number;
|
|
8
|
+
hasMore: boolean;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
type SortOrder = 'asc' | 'desc';
|
|
12
|
+
declare function buildPaginatedResult<T>(items: T[], total: number, page: number, limit: number): PaginatedResult<T>;
|
|
13
|
+
|
|
14
|
+
export { type PaginatedResult, type SortOrder, buildPaginatedResult };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
interface PaginatedResult<T> {
|
|
2
|
+
items: T[];
|
|
3
|
+
pagination: {
|
|
4
|
+
page: number;
|
|
5
|
+
pageSize: number;
|
|
6
|
+
total: number;
|
|
7
|
+
totalPages: number;
|
|
8
|
+
hasMore: boolean;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
type SortOrder = 'asc' | 'desc';
|
|
12
|
+
declare function buildPaginatedResult<T>(items: T[], total: number, page: number, limit: number): PaginatedResult<T>;
|
|
13
|
+
|
|
14
|
+
export { type PaginatedResult, type SortOrder, buildPaginatedResult };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkS6UUSM7Sjs = require('../chunk-S6UUSM7S.js');
|
|
4
|
+
require('../chunk-DGUM43GV.js');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
exports.buildPaginatedResult = _chunkS6UUSM7Sjs.buildPaginatedResult;
|
|
8
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/uni4love/project/workspace/211-withwiz/node-packages/withwiz-cms-kit/dist/types/common.js"],"names":[],"mappings":"AAAA;AACE;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,qEAAC","file":"/Users/uni4love/project/workspace/211-withwiz/node-packages/withwiz-cms-kit/dist/types/common.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PaginatedResult, SortOrder, buildPaginatedResult } from './common.mjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PaginatedResult, SortOrder, buildPaginatedResult } from './common.js';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-4LSFAAZW.js');
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkS6UUSM7Sjs = require('../chunk-S6UUSM7S.js');
|
|
5
|
+
require('../chunk-DGUM43GV.js');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
exports.buildPaginatedResult = _chunkS6UUSM7Sjs.buildPaginatedResult;
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/uni4love/project/workspace/211-withwiz/node-packages/withwiz-cms-kit/dist/types/index.js"],"names":[],"mappings":"AAAA,yGAA6B;AAC7B;AACE;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,qEAAC","file":"/Users/uni4love/project/workspace/211-withwiz/node-packages/withwiz-cms-kit/dist/types/index.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated Auth is now handled via httpOnly cookies. Returns empty headers.
|
|
3
|
+
*/
|
|
4
|
+
declare function getAuthHeaders(): Record<string, string>;
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated Auth is now handled via httpOnly cookies.
|
|
7
|
+
*/
|
|
8
|
+
declare function refreshAccessToken(): Promise<boolean>;
|
|
9
|
+
declare function adminFetch(url: string, options?: RequestInit): Promise<Response>;
|
|
10
|
+
|
|
11
|
+
export { adminFetch, getAuthHeaders, refreshAccessToken };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated Auth is now handled via httpOnly cookies. Returns empty headers.
|
|
3
|
+
*/
|
|
4
|
+
declare function getAuthHeaders(): Record<string, string>;
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated Auth is now handled via httpOnly cookies.
|
|
7
|
+
*/
|
|
8
|
+
declare function refreshAccessToken(): Promise<boolean>;
|
|
9
|
+
declare function adminFetch(url: string, options?: RequestInit): Promise<Response>;
|
|
10
|
+
|
|
11
|
+
export { adminFetch, getAuthHeaders, refreshAccessToken };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
var _chunkKWKV2GAHjs = require('../chunk-KWKV2GAH.js');
|
|
6
|
+
require('../chunk-EG6NVPP2.js');
|
|
7
|
+
require('../chunk-DGUM43GV.js');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
exports.adminFetch = _chunkKWKV2GAHjs.adminFetch; exports.getAuthHeaders = _chunkKWKV2GAHjs.getAuthHeaders; exports.refreshAccessToken = _chunkKWKV2GAHjs.refreshAccessToken;
|
|
13
|
+
//# sourceMappingURL=admin-fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/uni4love/project/workspace/211-withwiz/node-packages/withwiz-cms-kit/dist/utils/admin-fetch.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACF,6KAAC","file":"/Users/uni4love/project/workspace/211-withwiz/node-packages/withwiz-cms-kit/dist/utils/admin-fetch.js"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
adminFetch,
|
|
3
|
+
getAuthHeaders,
|
|
4
|
+
refreshAccessToken
|
|
5
|
+
} from "../chunk-T7EVFD4G.mjs";
|
|
6
|
+
import "../chunk-BWKKHCDG.mjs";
|
|
7
|
+
import "../chunk-BJTO5JO5.mjs";
|
|
8
|
+
export {
|
|
9
|
+
adminFetch,
|
|
10
|
+
getAuthHeaders,
|
|
11
|
+
refreshAccessToken
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=admin-fetch.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { NextResponse } from 'next/server';
|
|
2
|
+
import { ZodSchema } from 'zod';
|
|
3
|
+
|
|
4
|
+
declare function validateIds(ids: unknown): {
|
|
5
|
+
valid: true;
|
|
6
|
+
ids: string[];
|
|
7
|
+
} | {
|
|
8
|
+
valid: false;
|
|
9
|
+
response: NextResponse;
|
|
10
|
+
};
|
|
11
|
+
declare function validateAndParse<T>(schema: ZodSchema<T>, data: unknown): {
|
|
12
|
+
success: true;
|
|
13
|
+
data: T;
|
|
14
|
+
} | {
|
|
15
|
+
success: false;
|
|
16
|
+
response: NextResponse;
|
|
17
|
+
};
|
|
18
|
+
declare function parseSortKey<T extends string>(searchParams: URLSearchParams, validKeys: readonly T[], defaultKey: T): T;
|
|
19
|
+
|
|
20
|
+
export { parseSortKey, validateAndParse, validateIds };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { NextResponse } from 'next/server';
|
|
2
|
+
import { ZodSchema } from 'zod';
|
|
3
|
+
|
|
4
|
+
declare function validateIds(ids: unknown): {
|
|
5
|
+
valid: true;
|
|
6
|
+
ids: string[];
|
|
7
|
+
} | {
|
|
8
|
+
valid: false;
|
|
9
|
+
response: NextResponse;
|
|
10
|
+
};
|
|
11
|
+
declare function validateAndParse<T>(schema: ZodSchema<T>, data: unknown): {
|
|
12
|
+
success: true;
|
|
13
|
+
data: T;
|
|
14
|
+
} | {
|
|
15
|
+
success: false;
|
|
16
|
+
response: NextResponse;
|
|
17
|
+
};
|
|
18
|
+
declare function parseSortKey<T extends string>(searchParams: URLSearchParams, validKeys: readonly T[], defaultKey: T): T;
|
|
19
|
+
|
|
20
|
+
export { parseSortKey, validateAndParse, validateIds };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
var _chunkDSORCGJKjs = require('../chunk-DSORCGJK.js');
|
|
6
|
+
require('../chunk-DGUM43GV.js');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
exports.parseSortKey = _chunkDSORCGJKjs.parseSortKey; exports.validateAndParse = _chunkDSORCGJKjs.validateAndParse; exports.validateIds = _chunkDSORCGJKjs.validateIds;
|
|
12
|
+
//# sourceMappingURL=api-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/uni4love/project/workspace/211-withwiz/node-packages/withwiz-cms-kit/dist/utils/api-helpers.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACF,uKAAC","file":"/Users/uni4love/project/workspace/211-withwiz/node-packages/withwiz-cms-kit/dist/utils/api-helpers.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
var _chunkE5YUAOJIjs = require('../chunk-E5YUAOJI.js');
|
|
6
|
+
require('../chunk-DGUM43GV.js');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
exports.formatDate = _chunkE5YUAOJIjs.formatDate; exports.formatDateTime = _chunkE5YUAOJIjs.formatDateTime; exports.toLocalDatetime = _chunkE5YUAOJIjs.toLocalDatetime;
|
|
12
|
+
//# sourceMappingURL=date.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/uni4love/project/workspace/211-withwiz/node-packages/withwiz-cms-kit/dist/utils/date.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACF,uKAAC","file":"/Users/uni4love/project/workspace/211-withwiz/node-packages/withwiz-cms-kit/dist/utils/date.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 서버사이드 HTML 새니타이저 (spec.md §4.6 / Sprint 1 S1).
|
|
3
|
+
*
|
|
4
|
+
* 위험한 요소(script, iframe, object 등)와 이벤트 핸들러 속성을 제거하면서
|
|
5
|
+
* 블록 에디터가 사용하는 안전한 HTML 구조를 보존한다.
|
|
6
|
+
*
|
|
7
|
+
* - 1차(기본): `isomorphic-dompurify` (실제 jsdom+DOMPurify DOM/parser
|
|
8
|
+
* allowlist 새니타이저 — 손수 만든 regex 가 아님). 동적으로 로드한다.
|
|
9
|
+
* - fallback: regex 기반 새니타이저는 *방어 심층(defense-in-depth)* 으로만
|
|
10
|
+
* 남겨둔다 (optional dep 미설치 시). 더 이상 1차 경로가 아니다.
|
|
11
|
+
* - `createSanitizer(config)` 로 신뢰 iframe origin 을 주입할 수 있다.
|
|
12
|
+
*
|
|
13
|
+
* `sanitizeHtmlContent` 는 하위 호환을 위해 기본 안전 설정으로 동작한다
|
|
14
|
+
* (I1 — 동일 이름, 동일 `string|null|undefined → string|null` 시그니처).
|
|
15
|
+
* 기본 신뢰 iframe origin 은 §5 config boundary 를 통해 consumer 가
|
|
16
|
+
* override 할 수 있고, 미설정 시 현재 YouTube/Vimeo 집합이 그대로 쓰인다
|
|
17
|
+
* (unconfigured 동작 불변 — I3 보호).
|
|
18
|
+
*
|
|
19
|
+
* `../../withwiz-blog-core/src/utils/html-sanitizer.ts` 와 *메커니즘 동일*
|
|
20
|
+
* (`createSanitizer` factory + `tryLoadDomPurify()` 동적 require +
|
|
21
|
+
* `uponSanitizeElement` iframe-origin hook + regex defense-in-depth fallback).
|
|
22
|
+
*/
|
|
23
|
+
/** 새니타이저 설정 */
|
|
24
|
+
interface SanitizerConfig {
|
|
25
|
+
/**
|
|
26
|
+
* 신뢰할 수 있는 iframe origin 목록 (prefix 매칭).
|
|
27
|
+
* 미지정 시 §5 config boundary 의 기본값(YouTube/Vimeo) 사용.
|
|
28
|
+
*/
|
|
29
|
+
trustedIframeOrigins?: readonly string[];
|
|
30
|
+
/** DOMPurify 사용 시 허용할 태그 화이트리스트. */
|
|
31
|
+
allowedTags?: string[];
|
|
32
|
+
/** DOMPurify 사용 시 허용할 속성 화이트리스트. */
|
|
33
|
+
allowedAttributes?: Record<string, string[]>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 새니타이저 팩토리.
|
|
37
|
+
*
|
|
38
|
+
* DOMPurify(isomorphic-dompurify) 가 설치되어 있으면 그것을 *1차* 로 사용하고,
|
|
39
|
+
* 없을 때만 regex defense-in-depth fallback 으로 동작한다.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* const sanitize = createSanitizer({
|
|
43
|
+
* trustedIframeOrigins: ['https://www.youtube.com/', 'https://www.loom.com/'],
|
|
44
|
+
* });
|
|
45
|
+
* const safe = sanitize(userHtml);
|
|
46
|
+
*/
|
|
47
|
+
declare function createSanitizer(config?: SanitizerConfig): (html: string | null | undefined) => string | null;
|
|
48
|
+
/**
|
|
49
|
+
* 리치 HTML 콘텐츠에서 위험한 요소와 속성을 제거한다.
|
|
50
|
+
* 기본 안전 설정으로 동작한다 (하위 호환, I1). 호스트별 신뢰 origin 확장은
|
|
51
|
+
* `createSanitizer({ trustedIframeOrigins: [...] })` 또는 §5
|
|
52
|
+
* `setCmsConfig({ sanitizer: { trustedIframeOrigins } })` 로 한다.
|
|
53
|
+
*/
|
|
54
|
+
declare function sanitizeHtmlContent(html: string | null | undefined): string | null;
|
|
55
|
+
|
|
56
|
+
export { type SanitizerConfig, createSanitizer, sanitizeHtmlContent };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 서버사이드 HTML 새니타이저 (spec.md §4.6 / Sprint 1 S1).
|
|
3
|
+
*
|
|
4
|
+
* 위험한 요소(script, iframe, object 등)와 이벤트 핸들러 속성을 제거하면서
|
|
5
|
+
* 블록 에디터가 사용하는 안전한 HTML 구조를 보존한다.
|
|
6
|
+
*
|
|
7
|
+
* - 1차(기본): `isomorphic-dompurify` (실제 jsdom+DOMPurify DOM/parser
|
|
8
|
+
* allowlist 새니타이저 — 손수 만든 regex 가 아님). 동적으로 로드한다.
|
|
9
|
+
* - fallback: regex 기반 새니타이저는 *방어 심층(defense-in-depth)* 으로만
|
|
10
|
+
* 남겨둔다 (optional dep 미설치 시). 더 이상 1차 경로가 아니다.
|
|
11
|
+
* - `createSanitizer(config)` 로 신뢰 iframe origin 을 주입할 수 있다.
|
|
12
|
+
*
|
|
13
|
+
* `sanitizeHtmlContent` 는 하위 호환을 위해 기본 안전 설정으로 동작한다
|
|
14
|
+
* (I1 — 동일 이름, 동일 `string|null|undefined → string|null` 시그니처).
|
|
15
|
+
* 기본 신뢰 iframe origin 은 §5 config boundary 를 통해 consumer 가
|
|
16
|
+
* override 할 수 있고, 미설정 시 현재 YouTube/Vimeo 집합이 그대로 쓰인다
|
|
17
|
+
* (unconfigured 동작 불변 — I3 보호).
|
|
18
|
+
*
|
|
19
|
+
* `../../withwiz-blog-core/src/utils/html-sanitizer.ts` 와 *메커니즘 동일*
|
|
20
|
+
* (`createSanitizer` factory + `tryLoadDomPurify()` 동적 require +
|
|
21
|
+
* `uponSanitizeElement` iframe-origin hook + regex defense-in-depth fallback).
|
|
22
|
+
*/
|
|
23
|
+
/** 새니타이저 설정 */
|
|
24
|
+
interface SanitizerConfig {
|
|
25
|
+
/**
|
|
26
|
+
* 신뢰할 수 있는 iframe origin 목록 (prefix 매칭).
|
|
27
|
+
* 미지정 시 §5 config boundary 의 기본값(YouTube/Vimeo) 사용.
|
|
28
|
+
*/
|
|
29
|
+
trustedIframeOrigins?: readonly string[];
|
|
30
|
+
/** DOMPurify 사용 시 허용할 태그 화이트리스트. */
|
|
31
|
+
allowedTags?: string[];
|
|
32
|
+
/** DOMPurify 사용 시 허용할 속성 화이트리스트. */
|
|
33
|
+
allowedAttributes?: Record<string, string[]>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 새니타이저 팩토리.
|
|
37
|
+
*
|
|
38
|
+
* DOMPurify(isomorphic-dompurify) 가 설치되어 있으면 그것을 *1차* 로 사용하고,
|
|
39
|
+
* 없을 때만 regex defense-in-depth fallback 으로 동작한다.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* const sanitize = createSanitizer({
|
|
43
|
+
* trustedIframeOrigins: ['https://www.youtube.com/', 'https://www.loom.com/'],
|
|
44
|
+
* });
|
|
45
|
+
* const safe = sanitize(userHtml);
|
|
46
|
+
*/
|
|
47
|
+
declare function createSanitizer(config?: SanitizerConfig): (html: string | null | undefined) => string | null;
|
|
48
|
+
/**
|
|
49
|
+
* 리치 HTML 콘텐츠에서 위험한 요소와 속성을 제거한다.
|
|
50
|
+
* 기본 안전 설정으로 동작한다 (하위 호환, I1). 호스트별 신뢰 origin 확장은
|
|
51
|
+
* `createSanitizer({ trustedIframeOrigins: [...] })` 또는 §5
|
|
52
|
+
* `setCmsConfig({ sanitizer: { trustedIframeOrigins } })` 로 한다.
|
|
53
|
+
*/
|
|
54
|
+
declare function sanitizeHtmlContent(html: string | null | undefined): string | null;
|
|
55
|
+
|
|
56
|
+
export { type SanitizerConfig, createSanitizer, sanitizeHtmlContent };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkOYJRR3G2js = require('../chunk-OYJRR3G2.js');
|
|
5
|
+
require('../chunk-EG6NVPP2.js');
|
|
6
|
+
require('../chunk-DGUM43GV.js');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
exports.createSanitizer = _chunkOYJRR3G2js.createSanitizer; exports.sanitizeHtmlContent = _chunkOYJRR3G2js.sanitizeHtmlContent;
|
|
11
|
+
//# sourceMappingURL=html-sanitizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/uni4love/project/workspace/211-withwiz/node-packages/withwiz-cms-kit/dist/utils/html-sanitizer.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACF,+HAAC","file":"/Users/uni4love/project/workspace/211-withwiz/node-packages/withwiz-cms-kit/dist/utils/html-sanitizer.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare const IMAGE_VARIANT_SIZES: {
|
|
2
|
+
readonly lg: 1920;
|
|
3
|
+
readonly md: 960;
|
|
4
|
+
readonly sm: 480;
|
|
5
|
+
readonly thumb: 240;
|
|
6
|
+
};
|
|
7
|
+
type VariantSize = keyof typeof IMAGE_VARIANT_SIZES;
|
|
8
|
+
/**
|
|
9
|
+
* 이미지 URL에서 특정 variant URL을 생성합니다.
|
|
10
|
+
* 예: ("https://cdn.example.com/path/abc.jpg", "thumb") → "https://cdn.example.com/path/abc-thumb.webp"
|
|
11
|
+
*/
|
|
12
|
+
declare function getVariantUrl(url: string, size?: VariantSize): string;
|
|
13
|
+
|
|
14
|
+
export { IMAGE_VARIANT_SIZES, type VariantSize, getVariantUrl };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare const IMAGE_VARIANT_SIZES: {
|
|
2
|
+
readonly lg: 1920;
|
|
3
|
+
readonly md: 960;
|
|
4
|
+
readonly sm: 480;
|
|
5
|
+
readonly thumb: 240;
|
|
6
|
+
};
|
|
7
|
+
type VariantSize = keyof typeof IMAGE_VARIANT_SIZES;
|
|
8
|
+
/**
|
|
9
|
+
* 이미지 URL에서 특정 variant URL을 생성합니다.
|
|
10
|
+
* 예: ("https://cdn.example.com/path/abc.jpg", "thumb") → "https://cdn.example.com/path/abc-thumb.webp"
|
|
11
|
+
*/
|
|
12
|
+
declare function getVariantUrl(url: string, size?: VariantSize): string;
|
|
13
|
+
|
|
14
|
+
export { IMAGE_VARIANT_SIZES, type VariantSize, getVariantUrl };
|