intlayer-editor 7.0.6 → 7.0.8-canary.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/client/dist/assets/{CodeBlockShiki-siMgr_hH.js → CodeBlockShiki-BD9incJt.js} +3 -3
- package/client/dist/assets/{bundle-web-B8pMQVWe.js → bundle-web-BpNxvicp.js} +115 -115
- package/client/dist/assets/{index-D1dxQq2J.js → index-BLpSOJjm.js} +302 -420
- package/client/dist/assets/{index-19yEMRvc.css → index-yUZ4ks9F.css} +34 -0
- package/client/dist/index.html +2 -2
- package/package.json +34 -36
- package/server/dist/controllers/configuration.controller.cjs +0 -1
- package/server/dist/controllers/configuration.controller.cjs.map +1 -1
- package/server/dist/controllers/dictionary.controller.cjs +0 -4
- package/server/dist/controllers/dictionary.controller.cjs.map +1 -1
- package/server/dist/index.cjs +0 -5
- package/server/dist/index.cjs.map +1 -1
- package/server/dist/routes/config.routes.cjs +0 -2
- package/server/dist/routes/config.routes.cjs.map +1 -1
- package/server/dist/routes/dictionary.routes.cjs +0 -2
- package/server/dist/routes/dictionary.routes.cjs.map +1 -1
|
@@ -2624,6 +2624,16 @@
|
|
|
2624
2624
|
}
|
|
2625
2625
|
}
|
|
2626
2626
|
|
|
2627
|
+
.bg-current\/10 {
|
|
2628
|
+
background-color: currentColor;
|
|
2629
|
+
}
|
|
2630
|
+
|
|
2631
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2632
|
+
.bg-current\/10 {
|
|
2633
|
+
background-color: color-mix(in oklab, currentcolor 10%, transparent);
|
|
2634
|
+
}
|
|
2635
|
+
}
|
|
2636
|
+
|
|
2627
2637
|
.bg-destructive {
|
|
2628
2638
|
background-color: var(--color-destructive);
|
|
2629
2639
|
}
|
|
@@ -3876,6 +3886,10 @@
|
|
|
3876
3886
|
color: var(--color-card);
|
|
3877
3887
|
}
|
|
3878
3888
|
|
|
3889
|
+
.text-current {
|
|
3890
|
+
color: currentColor;
|
|
3891
|
+
}
|
|
3892
|
+
|
|
3879
3893
|
.text-destructive {
|
|
3880
3894
|
color: var(--color-destructive);
|
|
3881
3895
|
}
|
|
@@ -5393,6 +5407,16 @@
|
|
|
5393
5407
|
--tw-ring-color: var(--color-blue-500);
|
|
5394
5408
|
}
|
|
5395
5409
|
|
|
5410
|
+
.focus\:ring-current\/50:focus {
|
|
5411
|
+
--tw-ring-color: currentcolor;
|
|
5412
|
+
}
|
|
5413
|
+
|
|
5414
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
5415
|
+
.focus\:ring-current\/50:focus {
|
|
5416
|
+
--tw-ring-color: color-mix(in oklab, currentcolor 50%, transparent);
|
|
5417
|
+
}
|
|
5418
|
+
}
|
|
5419
|
+
|
|
5396
5420
|
.focus\:ring-destructive-500:focus {
|
|
5397
5421
|
--tw-ring-color: var(--color-destructive-500);
|
|
5398
5422
|
}
|
|
@@ -5646,6 +5670,16 @@
|
|
|
5646
5670
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
5647
5671
|
}
|
|
5648
5672
|
|
|
5673
|
+
.aria-\[selected\=true\]\:ring-current\/50[aria-selected="true"] {
|
|
5674
|
+
--tw-ring-color: currentcolor;
|
|
5675
|
+
}
|
|
5676
|
+
|
|
5677
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
5678
|
+
.aria-\[selected\=true\]\:ring-current\/50[aria-selected="true"] {
|
|
5679
|
+
--tw-ring-color: color-mix(in oklab, currentcolor 50%, transparent);
|
|
5680
|
+
}
|
|
5681
|
+
}
|
|
5682
|
+
|
|
5649
5683
|
.aria-\[selected\=true\]\:ring-destructive-500\/50[aria-selected="true"] {
|
|
5650
5684
|
--tw-ring-color: #f95a1680;
|
|
5651
5685
|
}
|
package/client/dist/index.html
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>Intlayer Editor</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
9
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-BLpSOJjm.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/assets/index-yUZ4ks9F.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
12
12
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "intlayer-editor",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.8-canary.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Integrate the Intlayer visual editor into your Intlayer projects, enabling CMS-like content management with multilingual support.",
|
|
6
6
|
"keywords": [
|
|
@@ -82,72 +82,70 @@
|
|
|
82
82
|
"typecheck": "tsc --project ./server/tsconfig.types.json --noEmit"
|
|
83
83
|
},
|
|
84
84
|
"dependencies": {
|
|
85
|
-
"@intlayer/api": "7.0.
|
|
86
|
-
"@intlayer/config": "7.0.
|
|
87
|
-
"@intlayer/core": "7.0.
|
|
88
|
-
"@intlayer/design-system": "7.0.
|
|
89
|
-
"@intlayer/editor-react": "7.0.
|
|
90
|
-
"@intlayer/types": "7.0.
|
|
91
|
-
"@intlayer/unmerged-dictionaries-entry": "7.0.
|
|
92
|
-
"@tanstack/query
|
|
93
|
-
"@tanstack/query-sync-storage-persister": "5.90.2",
|
|
94
|
-
"@tanstack/react-query": "5.90.5",
|
|
85
|
+
"@intlayer/api": "7.0.8-canary.0",
|
|
86
|
+
"@intlayer/config": "7.0.8-canary.0",
|
|
87
|
+
"@intlayer/core": "7.0.8-canary.0",
|
|
88
|
+
"@intlayer/design-system": "7.0.8-canary.0",
|
|
89
|
+
"@intlayer/editor-react": "7.0.8-canary.0",
|
|
90
|
+
"@intlayer/types": "7.0.8-canary.0",
|
|
91
|
+
"@intlayer/unmerged-dictionaries-entry": "7.0.8-canary.0",
|
|
92
|
+
"@tanstack/react-query": "5.90.6",
|
|
95
93
|
"compression": "1.8.1",
|
|
96
94
|
"cookie-parser": "1.4.7",
|
|
97
95
|
"cors": "2.8.5",
|
|
98
96
|
"express": "5.1.0",
|
|
99
|
-
"express-intlayer": "7.0.
|
|
97
|
+
"express-intlayer": "7.0.8-canary.0",
|
|
100
98
|
"framer-motion": "12.23.24",
|
|
101
99
|
"fuse.js": "7.1.0",
|
|
102
100
|
"helmet": "8.1.0",
|
|
103
|
-
"intlayer": "7.0.
|
|
104
|
-
"lucide-react": "0.
|
|
101
|
+
"intlayer": "7.0.8-canary.0",
|
|
102
|
+
"lucide-react": "0.552.0",
|
|
105
103
|
"mime": "4.1.0",
|
|
106
104
|
"react": "19.2.0",
|
|
107
105
|
"react-dom": "19.2.0",
|
|
108
|
-
"react-intlayer": "7.0.
|
|
109
|
-
"react-router-dom": "7.9.
|
|
110
|
-
"rimraf": "6.0
|
|
111
|
-
"vite-intlayer": "7.0.
|
|
106
|
+
"react-intlayer": "7.0.8-canary.0",
|
|
107
|
+
"react-router-dom": "7.9.5",
|
|
108
|
+
"rimraf": "6.1.0",
|
|
109
|
+
"vite-intlayer": "7.0.8-canary.0"
|
|
112
110
|
},
|
|
113
111
|
"devDependencies": {
|
|
114
112
|
"@tailwindcss/vite": "4.1.16",
|
|
115
113
|
"@types/compression": "1.8.1",
|
|
116
|
-
"@types/cookie-parser": "1.4.
|
|
114
|
+
"@types/cookie-parser": "1.4.10",
|
|
117
115
|
"@types/cors": "2.8.19",
|
|
118
116
|
"@types/express": "5.0.5",
|
|
119
|
-
"@types/node": "24.
|
|
117
|
+
"@types/node": "24.10.0",
|
|
120
118
|
"@types/react": "19.2.2",
|
|
121
119
|
"@types/react-dom": "19.2.2",
|
|
122
|
-
"@utils/ts-config": "7.0.
|
|
120
|
+
"@utils/ts-config": "7.0.8-canary.0",
|
|
123
121
|
"@vitejs/plugin-react": "^5.1.0",
|
|
124
122
|
"autoprefixer": "10.4.21",
|
|
125
123
|
"babel-plugin-react-compiler": "^1.0.0",
|
|
126
|
-
"globals": "16.
|
|
124
|
+
"globals": "16.5.0",
|
|
127
125
|
"tailwindcss": "4.1.16",
|
|
128
|
-
"tsdown": "0.
|
|
126
|
+
"tsdown": "0.16.0",
|
|
129
127
|
"typescript": "5.9.3",
|
|
130
|
-
"vite": "7.
|
|
131
|
-
"vitest": "4.0.
|
|
128
|
+
"vite": "7.2.0",
|
|
129
|
+
"vitest": "4.0.7"
|
|
132
130
|
},
|
|
133
131
|
"peerDependencies": {
|
|
134
|
-
"@intlayer/chokidar": "7.0.
|
|
135
|
-
"@intlayer/config": "7.0.
|
|
136
|
-
"@intlayer/core": "7.0.
|
|
137
|
-
"@intlayer/design-system": "7.0.
|
|
138
|
-
"@intlayer/dictionaries-entry": "7.0.
|
|
139
|
-
"@intlayer/editor-react": "7.0.
|
|
140
|
-
"@intlayer/types": "7.0.
|
|
141
|
-
"@intlayer/unmerged-dictionaries-entry": "7.0.
|
|
132
|
+
"@intlayer/chokidar": "7.0.8-canary.0",
|
|
133
|
+
"@intlayer/config": "7.0.8-canary.0",
|
|
134
|
+
"@intlayer/core": "7.0.8-canary.0",
|
|
135
|
+
"@intlayer/design-system": "7.0.8-canary.0",
|
|
136
|
+
"@intlayer/dictionaries-entry": "7.0.8-canary.0",
|
|
137
|
+
"@intlayer/editor-react": "7.0.8-canary.0",
|
|
138
|
+
"@intlayer/types": "7.0.8-canary.0",
|
|
139
|
+
"@intlayer/unmerged-dictionaries-entry": "7.0.8-canary.0",
|
|
142
140
|
"clsx": "2.1.1",
|
|
143
141
|
"framer-motion": "12.23.24",
|
|
144
|
-
"intlayer": "7.0.
|
|
142
|
+
"intlayer": "7.0.8-canary.0",
|
|
145
143
|
"react": ">=16.0.0",
|
|
146
144
|
"react-dom": ">=16.0.0",
|
|
147
|
-
"react-intlayer": "7.0.
|
|
145
|
+
"react-intlayer": "7.0.8-canary.0",
|
|
148
146
|
"react-router-dom": ">=6.0.0",
|
|
149
147
|
"tailwind-merge": "3.3.1",
|
|
150
|
-
"vite-intlayer": "7.0.
|
|
148
|
+
"vite-intlayer": "7.0.8-canary.0"
|
|
151
149
|
},
|
|
152
150
|
"engines": {
|
|
153
151
|
"node": ">=14.18"
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
2
|
const require_utils_responseData = require('../utils/responseData.cjs');
|
|
3
3
|
let __intlayer_config = require("@intlayer/config");
|
|
4
|
-
__intlayer_config = require_rolldown_runtime.__toESM(__intlayer_config);
|
|
5
4
|
|
|
6
5
|
//#region server/src/controllers/configuration.controller.ts
|
|
7
6
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.controller.cjs","names":["formatResponse"],"sources":["../../src/controllers/configuration.controller.ts"],"sourcesContent":["import { getConfiguration as getApplicationConfiguration } from '@intlayer/config';\nimport type { IntlayerConfig } from '@intlayer/types';\nimport { formatResponse, type ResponseData } from '@utils/responseData';\nimport type { NextFunction, Request, Response } from 'express';\n\nexport type GetConfigurationResult = ResponseData<IntlayerConfig>;\n\n/**\n * Get the Intlayer configuration\n */\nexport const getConfiguration = async (\n _req: Request,\n res: Response<GetConfigurationResult>,\n _next: NextFunction\n): Promise<void> => {\n try {\n const config = getApplicationConfiguration();\n\n const formattedResponse = formatResponse<IntlayerConfig>({\n data: config,\n });\n\n res.json(formattedResponse);\n return;\n } catch (err) {\n const errorMessage = (err as { message?: string; status?: number }) ?? {\n message: 'Internal Server Error',\n status: 500,\n };\n\n const formattedErrorResponse = formatResponse<IntlayerConfig>({\n error: {\n message: errorMessage.message ?? 'Internal Server Error',\n code: 'INTERNAL_SERVER_ERROR',\n title: 'Internal Server Error',\n },\n status: errorMessage.status ?? 500,\n });\n\n res.json(formattedErrorResponse);\n return;\n }\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"configuration.controller.cjs","names":["formatResponse"],"sources":["../../src/controllers/configuration.controller.ts"],"sourcesContent":["import { getConfiguration as getApplicationConfiguration } from '@intlayer/config';\nimport type { IntlayerConfig } from '@intlayer/types';\nimport { formatResponse, type ResponseData } from '@utils/responseData';\nimport type { NextFunction, Request, Response } from 'express';\n\nexport type GetConfigurationResult = ResponseData<IntlayerConfig>;\n\n/**\n * Get the Intlayer configuration\n */\nexport const getConfiguration = async (\n _req: Request,\n res: Response<GetConfigurationResult>,\n _next: NextFunction\n): Promise<void> => {\n try {\n const config = getApplicationConfiguration();\n\n const formattedResponse = formatResponse<IntlayerConfig>({\n data: config,\n });\n\n res.json(formattedResponse);\n return;\n } catch (err) {\n const errorMessage = (err as { message?: string; status?: number }) ?? {\n message: 'Internal Server Error',\n status: 500,\n };\n\n const formattedErrorResponse = formatResponse<IntlayerConfig>({\n error: {\n message: errorMessage.message ?? 'Internal Server Error',\n code: 'INTERNAL_SERVER_ERROR',\n title: 'Internal Server Error',\n },\n status: errorMessage.status ?? 500,\n });\n\n res.json(formattedErrorResponse);\n return;\n }\n};\n"],"mappings":";;;;;;;;AAUA,MAAa,mBAAmB,OAC9B,MACA,KACA,UACkB;AAClB,KAAI;EAGF,MAAM,oBAAoBA,0CAA+B,EACvD,+CAH0C,EAI3C,CAAC;AAEF,MAAI,KAAK,kBAAkB;AAC3B;UACO,KAAK;EACZ,MAAM,eAAgB,OAAiD;GACrE,SAAS;GACT,QAAQ;GACT;EAED,MAAM,yBAAyBA,0CAA+B;GAC5D,OAAO;IACL,SAAS,aAAa,WAAW;IACjC,MAAM;IACN,OAAO;IACR;GACD,QAAQ,aAAa,UAAU;GAChC,CAAC;AAEF,MAAI,KAAK,uBAAuB;AAChC"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
2
|
const require_utils_responseData = require('../utils/responseData.cjs');
|
|
3
3
|
let __intlayer_config = require("@intlayer/config");
|
|
4
|
-
__intlayer_config = require_rolldown_runtime.__toESM(__intlayer_config);
|
|
5
4
|
let __intlayer_chokidar = require("@intlayer/chokidar");
|
|
6
|
-
__intlayer_chokidar = require_rolldown_runtime.__toESM(__intlayer_chokidar);
|
|
7
5
|
let __intlayer_unmerged_dictionaries_entry = require("@intlayer/unmerged-dictionaries-entry");
|
|
8
|
-
__intlayer_unmerged_dictionaries_entry = require_rolldown_runtime.__toESM(__intlayer_unmerged_dictionaries_entry);
|
|
9
6
|
let express_intlayer = require("express-intlayer");
|
|
10
|
-
express_intlayer = require_rolldown_runtime.__toESM(express_intlayer);
|
|
11
7
|
|
|
12
8
|
//#region server/src/controllers/dictionary.controller.ts
|
|
13
9
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dictionary.controller.cjs","names":["formatResponse"],"sources":["../../src/controllers/dictionary.controller.ts"],"sourcesContent":["import {\n type DictionaryStatus,\n writeContentDeclaration as writeContentDeclarationEditor,\n} from '@intlayer/chokidar';\nimport { getConfiguration } from '@intlayer/config';\nimport type { Dictionary } from '@intlayer/types';\nimport {\n getUnmergedDictionaries,\n type UnmergedDictionaries,\n} from '@intlayer/unmerged-dictionaries-entry';\nimport { formatResponse, type ResponseData } from '@utils/responseData';\nimport type { NextFunction, Request, Response } from 'express';\nimport { t } from 'express-intlayer';\n\ntype GetDictionariesResult = ResponseData<UnmergedDictionaries>;\n\n/**\n * Get the Intlayer configuration\n */\nexport const getDictionaries = async (\n _req: Request,\n res: Response<GetDictionariesResult>,\n _next: NextFunction\n): Promise<void> => {\n try {\n const formattedResponse = formatResponse<UnmergedDictionaries>({\n data: getUnmergedDictionaries(),\n });\n\n res.json(formattedResponse);\n return;\n } catch (err) {\n const errorMessage = (err as { message?: string; status?: number }) ?? {\n message: 'Internal Server Error',\n status: 500,\n };\n\n const formattedErrorResponse = formatResponse<UnmergedDictionaries>({\n error: {\n message: errorMessage.message ?? 'Internal Server Error',\n code: 'INTERNAL_SERVER_ERROR',\n title: 'Internal Server Error',\n },\n status: errorMessage.status ?? 500,\n });\n\n res.json(formattedErrorResponse);\n return;\n }\n};\n\nexport type WriteContentDeclarationBody = { dictionary: Dictionary };\ntype WriteContentDeclarationResultData = {\n status: DictionaryStatus;\n path: string;\n};\nexport type WriteContentDeclarationResult =\n ResponseData<WriteContentDeclarationResultData>;\n\n/**\n * Adds a new dictionary to the database.\n */\nexport const writeContentDeclaration = async (\n req: Request<any, any, WriteContentDeclarationBody>,\n res: Response<WriteContentDeclarationResult>,\n _next: NextFunction\n): Promise<void> => {\n try {\n const dictionaryData = req.body.dictionary;\n\n const config = getConfiguration();\n\n const result = await writeContentDeclarationEditor(dictionaryData, config);\n\n let description = '';\n\n switch (result.status) {\n case 'created': {\n description = t({\n en: 'Content declaration created successfully',\n fr: 'Déclaration de contenu créée avec succès',\n es: 'Declaración de contenido creada con éxito',\n });\n break;\n }\n\n case 'updated': {\n description = t({\n en: 'Content declaration updated successfully',\n fr: 'Déclaration de contenu mise à jour avec succès',\n es: 'Declaración de contenido actualizada con éxito',\n });\n break;\n }\n case 'reimported in JSON': {\n description = t({\n en: 'Content declaration reimported in JSON successfully',\n fr: 'Déclaration de contenu réimportée en JSON avec succès',\n es: 'Declaración de contenido reimportada en JSON con éxito',\n });\n break;\n }\n case 'new content file': {\n description = t({\n en: 'Content declaration new content file successfully',\n fr: 'Déclaration de contenu réimportée dans un nouveau emplacement avec succès',\n es: 'Declaración de contenido reimportada en un nuevo lugar con éxito',\n });\n break;\n }\n default: {\n description = t({\n en: 'Content declaration written successfully',\n fr: 'Déclaration de contenu écrite avec succès',\n es: 'Declaración de contenido escrita con éxito',\n });\n break;\n }\n }\n\n const formattedResponse = formatResponse<WriteContentDeclarationResultData>(\n {\n data: result,\n message: t({\n en: 'Content declaration written',\n fr: 'Déclaration de contenu écrite',\n es: 'Declaración de contenido escrita',\n }),\n description,\n }\n );\n\n res.json(formattedResponse);\n return;\n } catch (err) {\n const errorMessage = (err as { message?: string; status?: number }) ?? {\n message: 'Internal Server Error',\n status: 500,\n };\n\n console.error(errorMessage);\n\n const formattedErrorResponse =\n formatResponse<WriteContentDeclarationResultData>({\n error: {\n message: errorMessage.message ?? 'Internal Server Error',\n code: 'INTERNAL_SERVER_ERROR',\n title: 'Internal Server Error',\n },\n status: errorMessage.status ?? 500,\n });\n\n res.json(formattedErrorResponse);\n return;\n }\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"dictionary.controller.cjs","names":["formatResponse"],"sources":["../../src/controllers/dictionary.controller.ts"],"sourcesContent":["import {\n type DictionaryStatus,\n writeContentDeclaration as writeContentDeclarationEditor,\n} from '@intlayer/chokidar';\nimport { getConfiguration } from '@intlayer/config';\nimport type { Dictionary } from '@intlayer/types';\nimport {\n getUnmergedDictionaries,\n type UnmergedDictionaries,\n} from '@intlayer/unmerged-dictionaries-entry';\nimport { formatResponse, type ResponseData } from '@utils/responseData';\nimport type { NextFunction, Request, Response } from 'express';\nimport { t } from 'express-intlayer';\n\ntype GetDictionariesResult = ResponseData<UnmergedDictionaries>;\n\n/**\n * Get the Intlayer configuration\n */\nexport const getDictionaries = async (\n _req: Request,\n res: Response<GetDictionariesResult>,\n _next: NextFunction\n): Promise<void> => {\n try {\n const formattedResponse = formatResponse<UnmergedDictionaries>({\n data: getUnmergedDictionaries(),\n });\n\n res.json(formattedResponse);\n return;\n } catch (err) {\n const errorMessage = (err as { message?: string; status?: number }) ?? {\n message: 'Internal Server Error',\n status: 500,\n };\n\n const formattedErrorResponse = formatResponse<UnmergedDictionaries>({\n error: {\n message: errorMessage.message ?? 'Internal Server Error',\n code: 'INTERNAL_SERVER_ERROR',\n title: 'Internal Server Error',\n },\n status: errorMessage.status ?? 500,\n });\n\n res.json(formattedErrorResponse);\n return;\n }\n};\n\nexport type WriteContentDeclarationBody = { dictionary: Dictionary };\ntype WriteContentDeclarationResultData = {\n status: DictionaryStatus;\n path: string;\n};\nexport type WriteContentDeclarationResult =\n ResponseData<WriteContentDeclarationResultData>;\n\n/**\n * Adds a new dictionary to the database.\n */\nexport const writeContentDeclaration = async (\n req: Request<any, any, WriteContentDeclarationBody>,\n res: Response<WriteContentDeclarationResult>,\n _next: NextFunction\n): Promise<void> => {\n try {\n const dictionaryData = req.body.dictionary;\n\n const config = getConfiguration();\n\n const result = await writeContentDeclarationEditor(dictionaryData, config);\n\n let description = '';\n\n switch (result.status) {\n case 'created': {\n description = t({\n en: 'Content declaration created successfully',\n fr: 'Déclaration de contenu créée avec succès',\n es: 'Declaración de contenido creada con éxito',\n });\n break;\n }\n\n case 'updated': {\n description = t({\n en: 'Content declaration updated successfully',\n fr: 'Déclaration de contenu mise à jour avec succès',\n es: 'Declaración de contenido actualizada con éxito',\n });\n break;\n }\n case 'reimported in JSON': {\n description = t({\n en: 'Content declaration reimported in JSON successfully',\n fr: 'Déclaration de contenu réimportée en JSON avec succès',\n es: 'Declaración de contenido reimportada en JSON con éxito',\n });\n break;\n }\n case 'new content file': {\n description = t({\n en: 'Content declaration new content file successfully',\n fr: 'Déclaration de contenu réimportée dans un nouveau emplacement avec succès',\n es: 'Declaración de contenido reimportada en un nuevo lugar con éxito',\n });\n break;\n }\n default: {\n description = t({\n en: 'Content declaration written successfully',\n fr: 'Déclaration de contenu écrite avec succès',\n es: 'Declaración de contenido escrita con éxito',\n });\n break;\n }\n }\n\n const formattedResponse = formatResponse<WriteContentDeclarationResultData>(\n {\n data: result,\n message: t({\n en: 'Content declaration written',\n fr: 'Déclaration de contenu écrite',\n es: 'Declaración de contenido escrita',\n }),\n description,\n }\n );\n\n res.json(formattedResponse);\n return;\n } catch (err) {\n const errorMessage = (err as { message?: string; status?: number }) ?? {\n message: 'Internal Server Error',\n status: 500,\n };\n\n console.error(errorMessage);\n\n const formattedErrorResponse =\n formatResponse<WriteContentDeclarationResultData>({\n error: {\n message: errorMessage.message ?? 'Internal Server Error',\n code: 'INTERNAL_SERVER_ERROR',\n title: 'Internal Server Error',\n },\n status: errorMessage.status ?? 500,\n });\n\n res.json(formattedErrorResponse);\n return;\n }\n};\n"],"mappings":";;;;;;;;;;;AAmBA,MAAa,kBAAkB,OAC7B,MACA,KACA,UACkB;AAClB,KAAI;EACF,MAAM,oBAAoBA,0CAAqC,EAC7D,2EAA+B,EAChC,CAAC;AAEF,MAAI,KAAK,kBAAkB;AAC3B;UACO,KAAK;EACZ,MAAM,eAAgB,OAAiD;GACrE,SAAS;GACT,QAAQ;GACT;EAED,MAAM,yBAAyBA,0CAAqC;GAClE,OAAO;IACL,SAAS,aAAa,WAAW;IACjC,MAAM;IACN,OAAO;IACR;GACD,QAAQ,aAAa,UAAU;GAChC,CAAC;AAEF,MAAI,KAAK,uBAAuB;AAChC;;;;;;AAeJ,MAAa,0BAA0B,OACrC,KACA,KACA,UACkB;AAClB,KAAI;EACF,MAAM,iBAAiB,IAAI,KAAK;EAIhC,MAAM,SAAS,uDAAoC,yDAFlB,CAEyC;EAE1E,IAAI,cAAc;AAElB,UAAQ,OAAO,QAAf;GACE,KAAK;AACH,0CAAgB;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;KACL,CAAC;AACF;GAGF,KAAK;AACH,0CAAgB;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;KACL,CAAC;AACF;GAEF,KAAK;AACH,0CAAgB;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;KACL,CAAC;AACF;GAEF,KAAK;AACH,0CAAgB;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;KACL,CAAC;AACF;GAEF;AACE,0CAAgB;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;KACL,CAAC;AACF;;EAIJ,MAAM,oBAAoBA,0CACxB;GACE,MAAM;GACN,iCAAW;IACT,IAAI;IACJ,IAAI;IACJ,IAAI;IACL,CAAC;GACF;GACD,CACF;AAED,MAAI,KAAK,kBAAkB;AAC3B;UACO,KAAK;EACZ,MAAM,eAAgB,OAAiD;GACrE,SAAS;GACT,QAAQ;GACT;AAED,UAAQ,MAAM,aAAa;EAE3B,MAAM,yBACJA,0CAAkD;GAChD,OAAO;IACL,SAAS,aAAa,WAAW;IACjC,MAAM;IACN,OAAO;IACR;GACD,QAAQ,aAAa,UAAU;GAChC,CAAC;AAEJ,MAAI,KAAK,uBAAuB;AAChC"}
|
package/server/dist/index.cjs
CHANGED
|
@@ -3,15 +3,10 @@ const require_routes_config_routes = require('./routes/config.routes.cjs');
|
|
|
3
3
|
const require_routes_dictionary_routes = require('./routes/dictionary.routes.cjs');
|
|
4
4
|
const require_utils_checkPortAvailability = require('./utils/checkPortAvailability.cjs');
|
|
5
5
|
let __intlayer_config = require("@intlayer/config");
|
|
6
|
-
__intlayer_config = require_rolldown_runtime.__toESM(__intlayer_config);
|
|
7
6
|
let express_intlayer = require("express-intlayer");
|
|
8
|
-
express_intlayer = require_rolldown_runtime.__toESM(express_intlayer);
|
|
9
7
|
let node_fs = require("node:fs");
|
|
10
|
-
node_fs = require_rolldown_runtime.__toESM(node_fs);
|
|
11
8
|
let node_path = require("node:path");
|
|
12
|
-
node_path = require_rolldown_runtime.__toESM(node_path);
|
|
13
9
|
let node_url = require("node:url");
|
|
14
|
-
node_url = require_rolldown_runtime.__toESM(node_url);
|
|
15
10
|
let express = require("express");
|
|
16
11
|
express = require_rolldown_runtime.__toESM(express);
|
|
17
12
|
let compression = require("compression");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["__dirname","app: Express","corsOptions: CorsOptions","checkPortAvailability","dictionaryRouter","configurationRouter","ANSIColors"],"sources":["../src/index.ts"],"sourcesContent":["import { existsSync, lstatSync, readFileSync } from 'node:fs';\nimport { dirname, join, resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport {\n ANSIColors,\n colorize,\n colorizePath,\n getConfiguration,\n getEnvFilePath,\n} from '@intlayer/config';\nimport { configurationRouter } from '@routes/config.routes';\nimport { dictionaryRouter } from '@routes/dictionary.routes';\nimport { checkPortAvailability } from '@utils/checkPortAvailability';\nimport compression from 'compression';\nimport cookieParser from 'cookie-parser';\nimport cors, { type CorsOptions } from 'cors';\nimport express, { type Express } from 'express';\nimport { intlayer } from 'express-intlayer';\nimport helmet from 'helmet';\nimport mime from 'mime';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nconst envFileOptions = {\n env: process.env.NODE_ENV,\n envFile: process.env.ENV_FILE,\n};\n\n// Load package.json\nconst packageJson = JSON.parse(\n readFileSync(resolve(__dirname, '../../package.json'), 'utf8')\n);\n\nconst app: Express = express();\n\n// Load internationalization request handler\napp.use(intlayer());\n\nconst FALLBACK_PORT = 8000;\nconst config = getConfiguration(envFileOptions);\nconst port = config.editor.port ?? FALLBACK_PORT;\n\nconst clientDistPath = resolve(__dirname, '../../client/dist');\n\nconst corsOptions: CorsOptions = {\n origin: '*',\n credentials: true,\n};\n\nconst startServer = async (app: Express) => {\n const isPortAvailable = await checkPortAvailability(port);\n\n if (!isPortAvailable) {\n console.error(`\\x1b[1;31mError: Port ${port} is already in use.\\x1b[0m`);\n process.exit(255);\n }\n\n app.disable('x-powered-by'); // Disabled to prevent attackers from knowing that the app is running Express\n app.use(\n helmet({\n contentSecurityPolicy: false,\n })\n );\n\n app.use(cors(corsOptions));\n\n // Compress all HTTP responses\n app.use(compression());\n\n app.use(express.json());\n\n app.use(cookieParser());\n\n // Parse incoming requests with urlencoded payloads\n app.use(express.urlencoded({ extended: true }));\n\n app.use('/api/dictionary', dictionaryRouter);\n app.use('/api/config', configurationRouter);\n\n app.use(express.static(clientDistPath));\n\n // For single-page applications, redirect all unmatched routes to index.html\n app.get(/(.*)/, (req, res) => {\n const requestedPath = join(clientDistPath, req.url); // Full path of the requested file\n\n if (existsSync(requestedPath) && lstatSync(requestedPath).isFile()) {\n // If the requested file exists, determine its MIME type and serve it\n const mimeType =\n mime.getType(requestedPath) ?? 'application/octet-stream';\n res.setHeader('Content-Type', mimeType);\n res.sendFile(requestedPath);\n } else {\n // Otherwise, serve the index.html for React Router fallback\n res.sendFile(resolve(clientDistPath, 'index.html'));\n }\n });\n\n app.listen(port, () => {\n const dotEnvFilePath = getEnvFilePath(\n envFileOptions.env,\n envFileOptions.envFile\n );\n\n console.log(`\n ${colorize(colorize('INTLAYER', ANSIColors.BOLD), ANSIColors.GREY_DARK)} ${colorize(`v${packageJson.version}`, ANSIColors.GREY_DARK)}\n\n Editor running at: ${colorizePath(`http://localhost:${port}`)}\n ${colorize('➜', ANSIColors.GREY_DARK)} Watching application at: ${config.editor.applicationURL === '' ? '-' : colorizePath(config.editor.applicationURL)}\n ${colorize('➜', ANSIColors.GREY_DARK)} Access key: ${config.editor.clientId ?? '-'}\n ${colorize('➜', ANSIColors.GREY_DARK)} Environment: ${dotEnvFilePath ?? '-'}\n `);\n });\n};\n\n// Start it up!\nstartServer(app);\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["__dirname","app: Express","corsOptions: CorsOptions","checkPortAvailability","dictionaryRouter","configurationRouter","ANSIColors"],"sources":["../src/index.ts"],"sourcesContent":["import { existsSync, lstatSync, readFileSync } from 'node:fs';\nimport { dirname, join, resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport {\n ANSIColors,\n colorize,\n colorizePath,\n getConfiguration,\n getEnvFilePath,\n} from '@intlayer/config';\nimport { configurationRouter } from '@routes/config.routes';\nimport { dictionaryRouter } from '@routes/dictionary.routes';\nimport { checkPortAvailability } from '@utils/checkPortAvailability';\nimport compression from 'compression';\nimport cookieParser from 'cookie-parser';\nimport cors, { type CorsOptions } from 'cors';\nimport express, { type Express } from 'express';\nimport { intlayer } from 'express-intlayer';\nimport helmet from 'helmet';\nimport mime from 'mime';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nconst envFileOptions = {\n env: process.env.NODE_ENV,\n envFile: process.env.ENV_FILE,\n};\n\n// Load package.json\nconst packageJson = JSON.parse(\n readFileSync(resolve(__dirname, '../../package.json'), 'utf8')\n);\n\nconst app: Express = express();\n\n// Load internationalization request handler\napp.use(intlayer());\n\nconst FALLBACK_PORT = 8000;\nconst config = getConfiguration(envFileOptions);\nconst port = config.editor.port ?? FALLBACK_PORT;\n\nconst clientDistPath = resolve(__dirname, '../../client/dist');\n\nconst corsOptions: CorsOptions = {\n origin: '*',\n credentials: true,\n};\n\nconst startServer = async (app: Express) => {\n const isPortAvailable = await checkPortAvailability(port);\n\n if (!isPortAvailable) {\n console.error(`\\x1b[1;31mError: Port ${port} is already in use.\\x1b[0m`);\n process.exit(255);\n }\n\n app.disable('x-powered-by'); // Disabled to prevent attackers from knowing that the app is running Express\n app.use(\n helmet({\n contentSecurityPolicy: false,\n })\n );\n\n app.use(cors(corsOptions));\n\n // Compress all HTTP responses\n app.use(compression());\n\n app.use(express.json());\n\n app.use(cookieParser());\n\n // Parse incoming requests with urlencoded payloads\n app.use(express.urlencoded({ extended: true }));\n\n app.use('/api/dictionary', dictionaryRouter);\n app.use('/api/config', configurationRouter);\n\n app.use(express.static(clientDistPath));\n\n // For single-page applications, redirect all unmatched routes to index.html\n app.get(/(.*)/, (req, res) => {\n const requestedPath = join(clientDistPath, req.url); // Full path of the requested file\n\n if (existsSync(requestedPath) && lstatSync(requestedPath).isFile()) {\n // If the requested file exists, determine its MIME type and serve it\n const mimeType =\n mime.getType(requestedPath) ?? 'application/octet-stream';\n res.setHeader('Content-Type', mimeType);\n res.sendFile(requestedPath);\n } else {\n // Otherwise, serve the index.html for React Router fallback\n res.sendFile(resolve(clientDistPath, 'index.html'));\n }\n });\n\n app.listen(port, () => {\n const dotEnvFilePath = getEnvFilePath(\n envFileOptions.env,\n envFileOptions.envFile\n );\n\n console.log(`\n ${colorize(colorize('INTLAYER', ANSIColors.BOLD), ANSIColors.GREY_DARK)} ${colorize(`v${packageJson.version}`, ANSIColors.GREY_DARK)}\n\n Editor running at: ${colorizePath(`http://localhost:${port}`)}\n ${colorize('➜', ANSIColors.GREY_DARK)} Watching application at: ${config.editor.applicationURL === '' ? '-' : colorizePath(config.editor.applicationURL)}\n ${colorize('➜', ANSIColors.GREY_DARK)} Access key: ${config.editor.clientId ?? '-'}\n ${colorize('➜', ANSIColors.GREY_DARK)} Environment: ${dotEnvFilePath ?? '-'}\n `);\n });\n};\n\n// Start it up!\nstartServer(app);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAMA,+GAAkD,CAAC;AAEzD,MAAM,iBAAiB;CACrB,KAAK,QAAQ,IAAI;CACjB,SAAS,QAAQ,IAAI;CACtB;AAGD,MAAM,cAAc,KAAK,uDACFA,aAAW,qBAAqB,EAAE,OAAO,CAC/D;AAED,MAAMC,4BAAwB;AAG9B,IAAI,oCAAc,CAAC;AAEnB,MAAM,gBAAgB;AACtB,MAAM,iDAA0B,eAAe;AAC/C,MAAM,OAAO,OAAO,OAAO,QAAQ;AAEnC,MAAM,wCAAyBD,aAAW,oBAAoB;AAE9D,MAAME,cAA2B;CAC/B,QAAQ;CACR,aAAa;CACd;AAED,MAAM,cAAc,OAAO,UAAiB;AAG1C,KAAI,CAFoB,MAAMC,0DAAsB,KAAK,EAEnC;AACpB,UAAQ,MAAM,yBAAyB,KAAK,4BAA4B;AACxE,UAAQ,KAAK,IAAI;;AAGnB,OAAI,QAAQ,eAAe;AAC3B,OAAI,wBACK,EACL,uBAAuB,OACxB,CAAC,CACH;AAED,OAAI,sBAAS,YAAY,CAAC;AAG1B,OAAI,8BAAiB,CAAC;AAEtB,OAAI,IAAI,gBAAQ,MAAM,CAAC;AAEvB,OAAI,gCAAkB,CAAC;AAGvB,OAAI,IAAI,gBAAQ,WAAW,EAAE,UAAU,MAAM,CAAC,CAAC;AAE/C,OAAI,IAAI,mBAAmBC,kDAAiB;AAC5C,OAAI,IAAI,eAAeC,iDAAoB;AAE3C,OAAI,IAAI,gBAAQ,OAAO,eAAe,CAAC;AAGvC,OAAI,IAAI,SAAS,KAAK,QAAQ;EAC5B,MAAM,oCAAqB,gBAAgB,IAAI,IAAI;AAEnD,8BAAe,cAAc,2BAAc,cAAc,CAAC,QAAQ,EAAE;GAElE,MAAM,WACJ,aAAK,QAAQ,cAAc,IAAI;AACjC,OAAI,UAAU,gBAAgB,SAAS;AACvC,OAAI,SAAS,cAAc;QAG3B,KAAI,gCAAiB,gBAAgB,aAAa,CAAC;GAErD;AAEF,OAAI,OAAO,YAAY;EACrB,MAAM,uDACJ,eAAe,KACf,eAAe,QAChB;AAED,UAAQ,IAAI;sEACQ,YAAYC,6BAAW,KAAK,EAAEA,6BAAW,UAAU,CAAC,mCAAY,IAAI,YAAY,WAAWA,6BAAW,UAAU,CAAC;;uEAEzF,oBAAoB,OAAO,CAAC;sCAC7D,KAAKA,6BAAW,UAAU,CAAC,8BAA8B,OAAO,OAAO,mBAAmB,KAAK,0CAAmB,OAAO,OAAO,eAAe,CAAC;sCAChJ,KAAKA,6BAAW,UAAU,CAAC,8BAA8B,OAAO,OAAO,YAAY,IAAI;sCACvF,KAAKA,6BAAW,UAAU,CAAC,8BAA8B,kBAAkB,IAAI;MACxF;GACF;;AAIJ,YAAY,IAAI"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
2
|
const require_controllers_configuration_controller = require('../controllers/configuration.controller.cjs');
|
|
3
3
|
let __intlayer_config = require("@intlayer/config");
|
|
4
|
-
__intlayer_config = require_rolldown_runtime.__toESM(__intlayer_config);
|
|
5
4
|
let express = require("express");
|
|
6
|
-
express = require_rolldown_runtime.__toESM(express);
|
|
7
5
|
|
|
8
6
|
//#region server/src/routes/config.routes.ts
|
|
9
7
|
const configurationRouter = (0, express.Router)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.routes.cjs","names":["configurationRouter: Router"],"sources":["../../src/routes/config.routes.ts"],"sourcesContent":["import * as configurationController from '@controllers/configuration.controller';\nimport { getConfiguration } from '@intlayer/config';\nimport { Router } from 'express';\nimport type { Routes } from '@/types/Routes';\n\nexport const configurationRouter: Router = Router();\n\nconst { editor } = getConfiguration();\n\nconst getBaseURL = () => `${editor.editorURL}/api/dictionary`;\n\nexport const getConfigurationRoutes = () =>\n ({\n getConfiguration: {\n urlModel: '/',\n url: getBaseURL(),\n method: 'GET',\n },\n }) satisfies Routes;\n\nconfigurationRouter.get(\n getConfigurationRoutes().getConfiguration.urlModel,\n configurationController.getConfiguration\n);\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.routes.cjs","names":["configurationRouter: Router"],"sources":["../../src/routes/config.routes.ts"],"sourcesContent":["import * as configurationController from '@controllers/configuration.controller';\nimport { getConfiguration } from '@intlayer/config';\nimport { Router } from 'express';\nimport type { Routes } from '@/types/Routes';\n\nexport const configurationRouter: Router = Router();\n\nconst { editor } = getConfiguration();\n\nconst getBaseURL = () => `${editor.editorURL}/api/dictionary`;\n\nexport const getConfigurationRoutes = () =>\n ({\n getConfiguration: {\n urlModel: '/',\n url: getBaseURL(),\n method: 'GET',\n },\n }) satisfies Routes;\n\nconfigurationRouter.get(\n getConfigurationRoutes().getConfiguration.urlModel,\n configurationController.getConfiguration\n);\n"],"mappings":";;;;;;AAKA,MAAaA,2CAAsC;AAEnD,MAAM,EAAE,oDAA6B;AAErC,MAAM,mBAAmB,GAAG,OAAO,UAAU;AAE7C,MAAa,gCACV,EACC,kBAAkB;CAChB,UAAU;CACV,KAAK,YAAY;CACjB,QAAQ;CACT,EACF;AAEH,oBAAoB,IAClB,wBAAwB,CAAC,iBAAiB,wEAE3C"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
2
|
const require_controllers_dictionary_controller = require('../controllers/dictionary.controller.cjs');
|
|
3
3
|
let __intlayer_config = require("@intlayer/config");
|
|
4
|
-
__intlayer_config = require_rolldown_runtime.__toESM(__intlayer_config);
|
|
5
4
|
let express = require("express");
|
|
6
|
-
express = require_rolldown_runtime.__toESM(express);
|
|
7
5
|
|
|
8
6
|
//#region server/src/routes/dictionary.routes.ts
|
|
9
7
|
const dictionaryRouter = (0, express.Router)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dictionary.routes.cjs","names":["dictionaryRouter: Router","getDictionaries","writeContentDeclaration"],"sources":["../../src/routes/dictionary.routes.ts"],"sourcesContent":["import {\n getDictionaries,\n writeContentDeclaration,\n} from '@controllers/dictionary.controller';\nimport { getConfiguration } from '@intlayer/config';\nimport { Router } from 'express';\nimport type { Routes } from '@/types/Routes';\n\nexport const dictionaryRouter: Router = Router();\n\nconst { editor } = getConfiguration();\n\nconst getBaseURL = () => `${editor.editorURL}/api/dictionary`;\n\nexport const getDictionaryRoutes = () =>\n ({\n getDictionaries: {\n urlModel: '/',\n url: getBaseURL(),\n method: 'GET',\n },\n writeContentDeclaration: {\n urlModel: '/',\n url: getBaseURL(),\n method: 'POST',\n },\n }) satisfies Routes;\n\ndictionaryRouter.get(\n getDictionaryRoutes().getDictionaries.urlModel,\n getDictionaries\n);\ndictionaryRouter.post(\n getDictionaryRoutes().writeContentDeclaration.urlModel,\n writeContentDeclaration\n);\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"dictionary.routes.cjs","names":["dictionaryRouter: Router","getDictionaries","writeContentDeclaration"],"sources":["../../src/routes/dictionary.routes.ts"],"sourcesContent":["import {\n getDictionaries,\n writeContentDeclaration,\n} from '@controllers/dictionary.controller';\nimport { getConfiguration } from '@intlayer/config';\nimport { Router } from 'express';\nimport type { Routes } from '@/types/Routes';\n\nexport const dictionaryRouter: Router = Router();\n\nconst { editor } = getConfiguration();\n\nconst getBaseURL = () => `${editor.editorURL}/api/dictionary`;\n\nexport const getDictionaryRoutes = () =>\n ({\n getDictionaries: {\n urlModel: '/',\n url: getBaseURL(),\n method: 'GET',\n },\n writeContentDeclaration: {\n urlModel: '/',\n url: getBaseURL(),\n method: 'POST',\n },\n }) satisfies Routes;\n\ndictionaryRouter.get(\n getDictionaryRoutes().getDictionaries.urlModel,\n getDictionaries\n);\ndictionaryRouter.post(\n getDictionaryRoutes().writeContentDeclaration.urlModel,\n writeContentDeclaration\n);\n"],"mappings":";;;;;;AAQA,MAAaA,wCAAmC;AAEhD,MAAM,EAAE,oDAA6B;AAErC,MAAM,mBAAmB,GAAG,OAAO,UAAU;AAE7C,MAAa,6BACV;CACC,iBAAiB;EACf,UAAU;EACV,KAAK,YAAY;EACjB,QAAQ;EACT;CACD,yBAAyB;EACvB,UAAU;EACV,KAAK,YAAY;EACjB,QAAQ;EACT;CACF;AAEH,iBAAiB,IACf,qBAAqB,CAAC,gBAAgB,UACtCC,0DACD;AACD,iBAAiB,KACf,qBAAqB,CAAC,wBAAwB,UAC9CC,kEACD"}
|