keycloakify 11.3.0-rc.4 → 11.3.0-rc.7
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/bin/193.index.js +79 -0
- package/bin/780.index.js +152 -94
- package/bin/786.index.js +140 -106
- package/bin/932.index.js +78 -0
- package/bin/initialize-account-theme/updateAccountThemeImplementationInConfig.d.ts +3 -1
- package/bin/main.js +152 -232
- package/bin/shared/customHandler.d.ts +1 -1
- package/bin/shared/customHandler.js.map +1 -1
- package/bin/shared/{customHandler_caller.d.ts → customHandler_delegate.d.ts} +1 -1
- package/package.json +3 -5
- package/src/bin/copy-keycloak-resources-to-public.ts +6 -0
- package/src/bin/initialize-account-theme/initialize-account-theme.ts +8 -2
- package/src/bin/initialize-account-theme/updateAccountThemeImplementationInConfig.ts +3 -1
- package/src/bin/initialize-email-theme.ts +6 -0
- package/src/bin/main.ts +124 -177
- package/src/bin/shared/customHandler.ts +7 -1
- package/src/bin/shared/{customHandler_caller.ts → customHandler_delegate.ts} +1 -1
- package/src/bin/update-kc-gen.ts +110 -2
- package/src/vite-plugin/vite-plugin.ts +4 -3
- package/stories/login/pages/Register.stories.tsx +2 -4
- package/vite-plugin/index.js +9179 -9151
- package/bin/shared/generateKcGenTs.d.ts +0 -15
- package/src/bin/shared/generateKcGenTs.ts +0 -175
package/bin/193.index.js
CHANGED
@@ -84,10 +84,17 @@ function copyKeycloakResourcesToPublic(params) {
|
|
84
84
|
external_fs_.writeFileSync(keycloakifyBuildinfoFilePath, Buffer.from(keycloakifyBuildinfoRaw, "utf8"));
|
85
85
|
}
|
86
86
|
//# sourceMappingURL=copyKeycloakResourcesToPublic.js.map
|
87
|
+
// EXTERNAL MODULE: ./dist/bin/shared/customHandler_delegate.js + 1 modules
|
88
|
+
var customHandler_delegate = __webpack_require__(72138);
|
87
89
|
;// CONCATENATED MODULE: ./dist/bin/copy-keycloak-resources-to-public.js
|
88
90
|
|
91
|
+
|
89
92
|
async function command(params) {
|
90
93
|
const { buildContext } = params;
|
94
|
+
(0,customHandler_delegate/* maybeDelegateCommandToCustomHandler */.q)({
|
95
|
+
commandName: "copy-keycloak-resources-to-public",
|
96
|
+
buildContext
|
97
|
+
});
|
91
98
|
copyKeycloakResourcesToPublic({
|
92
99
|
buildContext
|
93
100
|
});
|
@@ -96,6 +103,78 @@ async function command(params) {
|
|
96
103
|
|
97
104
|
/***/ }),
|
98
105
|
|
106
|
+
/***/ 72138:
|
107
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
108
|
+
|
109
|
+
|
110
|
+
// EXPORTS
|
111
|
+
__webpack_require__.d(__webpack_exports__, {
|
112
|
+
"q": () => (/* binding */ maybeDelegateCommandToCustomHandler)
|
113
|
+
});
|
114
|
+
|
115
|
+
// EXTERNAL MODULE: ./node_modules/tsafe/esm/assert.mjs + 1 modules
|
116
|
+
var esm_assert = __webpack_require__(29041);
|
117
|
+
// EXTERNAL MODULE: ./dist/bin/shared/constants.js
|
118
|
+
var constants = __webpack_require__(173);
|
119
|
+
;// CONCATENATED MODULE: ./dist/bin/shared/customHandler.js
|
120
|
+
|
121
|
+
|
122
|
+
const BIN_NAME = "_keycloakify-custom-handler";
|
123
|
+
const NOT_IMPLEMENTED_EXIT_CODE = 78;
|
124
|
+
function readParams(params) {
|
125
|
+
const { apiVersion } = params;
|
126
|
+
assert(apiVersion === "v1");
|
127
|
+
const commandName = (() => {
|
128
|
+
const envValue = process.env[CUSTOM_HANDLER_ENV_NAMES.COMMAND_NAME];
|
129
|
+
assert(envValue !== undefined);
|
130
|
+
return envValue;
|
131
|
+
})();
|
132
|
+
const buildContext = (() => {
|
133
|
+
const envValue = process.env[CUSTOM_HANDLER_ENV_NAMES.BUILD_CONTEXT];
|
134
|
+
assert(envValue !== undefined);
|
135
|
+
return JSON.parse(envValue);
|
136
|
+
})();
|
137
|
+
return { commandName, buildContext };
|
138
|
+
}
|
139
|
+
//# sourceMappingURL=customHandler.js.map
|
140
|
+
// EXTERNAL MODULE: external "child_process"
|
141
|
+
var external_child_process_ = __webpack_require__(32081);
|
142
|
+
// EXTERNAL MODULE: external "path"
|
143
|
+
var external_path_ = __webpack_require__(71017);
|
144
|
+
// EXTERNAL MODULE: external "fs"
|
145
|
+
var external_fs_ = __webpack_require__(57147);
|
146
|
+
;// CONCATENATED MODULE: ./dist/bin/shared/customHandler_delegate.js
|
147
|
+
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
|
152
|
+
|
153
|
+
(0,esm_assert/* assert */.h)();
|
154
|
+
function maybeDelegateCommandToCustomHandler(params) {
|
155
|
+
const { commandName, buildContext } = params;
|
156
|
+
if (!external_fs_.readdirSync((0,external_path_.dirname)(process.argv[1])).includes(BIN_NAME)) {
|
157
|
+
return;
|
158
|
+
}
|
159
|
+
try {
|
160
|
+
external_child_process_.execSync(`npx ${BIN_NAME}`, {
|
161
|
+
stdio: "inherit",
|
162
|
+
env: Object.assign(Object.assign({}, process.env), { [constants/* CUSTOM_HANDLER_ENV_NAMES.COMMAND_NAME */._S.COMMAND_NAME]: commandName, [constants/* CUSTOM_HANDLER_ENV_NAMES.BUILD_CONTEXT */._S.BUILD_CONTEXT]: JSON.stringify(buildContext) })
|
163
|
+
});
|
164
|
+
}
|
165
|
+
catch (error) {
|
166
|
+
const status = error.status;
|
167
|
+
if (status === NOT_IMPLEMENTED_EXIT_CODE) {
|
168
|
+
return;
|
169
|
+
}
|
170
|
+
process.exit(status);
|
171
|
+
}
|
172
|
+
process.exit(0);
|
173
|
+
}
|
174
|
+
//# sourceMappingURL=customHandler_delegate.js.map
|
175
|
+
|
176
|
+
/***/ }),
|
177
|
+
|
99
178
|
/***/ 12171:
|
100
179
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
101
180
|
|
package/bin/780.index.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
exports.id = 780;
|
3
|
-
exports.ids = [780];
|
3
|
+
exports.ids = [780,786];
|
4
4
|
exports.modules = {
|
5
5
|
|
6
6
|
/***/ 75780:
|
@@ -83,8 +83,10 @@ function updateAccountThemeImplementationInConfig(params) {
|
|
83
83
|
}
|
84
84
|
}
|
85
85
|
//# sourceMappingURL=updateAccountThemeImplementationInConfig.js.map
|
86
|
-
// EXTERNAL MODULE: ./dist/bin/
|
87
|
-
var
|
86
|
+
// EXTERNAL MODULE: ./dist/bin/update-kc-gen.js
|
87
|
+
var update_kc_gen = __webpack_require__(10786);
|
88
|
+
// EXTERNAL MODULE: ./dist/bin/shared/customHandler_delegate.js + 1 modules
|
89
|
+
var customHandler_delegate = __webpack_require__(72138);
|
88
90
|
;// CONCATENATED MODULE: ./dist/bin/initialize-account-theme/initialize-account-theme.js
|
89
91
|
|
90
92
|
|
@@ -93,8 +95,13 @@ var generateKcGenTs = __webpack_require__(58585);
|
|
93
95
|
|
94
96
|
|
95
97
|
|
98
|
+
|
96
99
|
async function command(params) {
|
97
100
|
const { buildContext } = params;
|
101
|
+
(0,customHandler_delegate/* maybeDelegateCommandToCustomHandler */.q)({
|
102
|
+
commandName: "initialize-account-theme",
|
103
|
+
buildContext
|
104
|
+
});
|
98
105
|
const accountThemeSrcDirPath = (0,external_path_.join)(buildContext.themeSrcDirPath, "account");
|
99
106
|
if (external_fs_.existsSync(accountThemeSrcDirPath) &&
|
100
107
|
external_fs_.readdirSync(accountThemeSrcDirPath).length > 0) {
|
@@ -150,7 +157,7 @@ async function command(params) {
|
|
150
157
|
break;
|
151
158
|
}
|
152
159
|
updateAccountThemeImplementationInConfig({ buildContext, accountThemeType });
|
153
|
-
await (0,
|
160
|
+
await (0,update_kc_gen.command)({
|
154
161
|
buildContext: Object.assign(Object.assign({}, buildContext), { implementedThemeTypes: Object.assign(Object.assign({}, buildContext.implementedThemeTypes), { account: {
|
155
162
|
isImplemented: true,
|
156
163
|
type: accountThemeType
|
@@ -164,46 +171,128 @@ async function command(params) {
|
|
164
171
|
|
165
172
|
/***/ }),
|
166
173
|
|
167
|
-
/***/
|
174
|
+
/***/ 72138:
|
175
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
176
|
+
|
177
|
+
|
178
|
+
// EXPORTS
|
179
|
+
__webpack_require__.d(__webpack_exports__, {
|
180
|
+
"q": () => (/* binding */ maybeDelegateCommandToCustomHandler)
|
181
|
+
});
|
182
|
+
|
183
|
+
// EXTERNAL MODULE: ./node_modules/tsafe/esm/assert.mjs + 1 modules
|
184
|
+
var esm_assert = __webpack_require__(29041);
|
185
|
+
// EXTERNAL MODULE: ./dist/bin/shared/constants.js
|
186
|
+
var constants = __webpack_require__(173);
|
187
|
+
;// CONCATENATED MODULE: ./dist/bin/shared/customHandler.js
|
188
|
+
|
189
|
+
|
190
|
+
const BIN_NAME = "_keycloakify-custom-handler";
|
191
|
+
const NOT_IMPLEMENTED_EXIT_CODE = 78;
|
192
|
+
function readParams(params) {
|
193
|
+
const { apiVersion } = params;
|
194
|
+
assert(apiVersion === "v1");
|
195
|
+
const commandName = (() => {
|
196
|
+
const envValue = process.env[CUSTOM_HANDLER_ENV_NAMES.COMMAND_NAME];
|
197
|
+
assert(envValue !== undefined);
|
198
|
+
return envValue;
|
199
|
+
})();
|
200
|
+
const buildContext = (() => {
|
201
|
+
const envValue = process.env[CUSTOM_HANDLER_ENV_NAMES.BUILD_CONTEXT];
|
202
|
+
assert(envValue !== undefined);
|
203
|
+
return JSON.parse(envValue);
|
204
|
+
})();
|
205
|
+
return { commandName, buildContext };
|
206
|
+
}
|
207
|
+
//# sourceMappingURL=customHandler.js.map
|
208
|
+
// EXTERNAL MODULE: external "child_process"
|
209
|
+
var external_child_process_ = __webpack_require__(32081);
|
210
|
+
// EXTERNAL MODULE: external "path"
|
211
|
+
var external_path_ = __webpack_require__(71017);
|
212
|
+
// EXTERNAL MODULE: external "fs"
|
213
|
+
var external_fs_ = __webpack_require__(57147);
|
214
|
+
;// CONCATENATED MODULE: ./dist/bin/shared/customHandler_delegate.js
|
215
|
+
|
216
|
+
|
217
|
+
|
218
|
+
|
219
|
+
|
220
|
+
|
221
|
+
(0,esm_assert/* assert */.h)();
|
222
|
+
function maybeDelegateCommandToCustomHandler(params) {
|
223
|
+
const { commandName, buildContext } = params;
|
224
|
+
if (!external_fs_.readdirSync((0,external_path_.dirname)(process.argv[1])).includes(BIN_NAME)) {
|
225
|
+
return;
|
226
|
+
}
|
227
|
+
try {
|
228
|
+
external_child_process_.execSync(`npx ${BIN_NAME}`, {
|
229
|
+
stdio: "inherit",
|
230
|
+
env: Object.assign(Object.assign({}, process.env), { [constants/* CUSTOM_HANDLER_ENV_NAMES.COMMAND_NAME */._S.COMMAND_NAME]: commandName, [constants/* CUSTOM_HANDLER_ENV_NAMES.BUILD_CONTEXT */._S.BUILD_CONTEXT]: JSON.stringify(buildContext) })
|
231
|
+
});
|
232
|
+
}
|
233
|
+
catch (error) {
|
234
|
+
const status = error.status;
|
235
|
+
if (status === NOT_IMPLEMENTED_EXIT_CODE) {
|
236
|
+
return;
|
237
|
+
}
|
238
|
+
process.exit(status);
|
239
|
+
}
|
240
|
+
process.exit(0);
|
241
|
+
}
|
242
|
+
//# sourceMappingURL=customHandler_delegate.js.map
|
243
|
+
|
244
|
+
/***/ }),
|
245
|
+
|
246
|
+
/***/ 43765:
|
168
247
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
169
248
|
|
170
249
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
171
|
-
/* harmony export */ "
|
250
|
+
/* harmony export */ "o": () => (/* binding */ existsAsync)
|
172
251
|
/* harmony export */ });
|
173
|
-
/* harmony import */ var
|
174
|
-
/* harmony import */ var
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
252
|
+
/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73292);
|
253
|
+
/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs_promises__WEBPACK_IMPORTED_MODULE_0__);
|
254
|
+
|
255
|
+
async function existsAsync(path) {
|
256
|
+
try {
|
257
|
+
await fs_promises__WEBPACK_IMPORTED_MODULE_0__.stat(path);
|
258
|
+
return true;
|
259
|
+
}
|
260
|
+
catch (error) {
|
261
|
+
if (error.code === "ENOENT")
|
262
|
+
return false;
|
263
|
+
throw error;
|
264
|
+
}
|
265
|
+
}
|
266
|
+
//# sourceMappingURL=fs.existsAsync.js.map
|
181
267
|
|
268
|
+
/***/ }),
|
269
|
+
|
270
|
+
/***/ 10786:
|
271
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
182
272
|
|
273
|
+
__webpack_require__.r(__webpack_exports__);
|
274
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
275
|
+
/* harmony export */ "command": () => (/* binding */ command)
|
276
|
+
/* harmony export */ });
|
277
|
+
/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73292);
|
278
|
+
/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs_promises__WEBPACK_IMPORTED_MODULE_0__);
|
279
|
+
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71017);
|
280
|
+
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__);
|
281
|
+
/* harmony import */ var _tools_fs_existsAsync__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(43765);
|
282
|
+
/* harmony import */ var _shared_customHandler_delegate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(72138);
|
183
283
|
|
184
284
|
|
185
285
|
|
186
286
|
|
187
|
-
|
188
|
-
async function generateKcGenTs(params) {
|
287
|
+
async function command(params) {
|
189
288
|
const { buildContext } = params;
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
(0,tsafe_assert__WEBPACK_IMPORTED_MODULE_0__/* .assert */ .h)();
|
198
|
-
return (0,tsafe_id__WEBPACK_IMPORTED_MODULE_5__.id)(zTargetType);
|
199
|
-
})();
|
200
|
-
return zParsedPackageJson.parse(JSON.parse((await fs_promises__WEBPACK_IMPORTED_MODULE_1__.readFile(buildContext.packageJsonFilePath)).toString("utf8")));
|
201
|
-
})();
|
202
|
-
return (Object.assign(Object.assign({}, parsedPackageJson.dependencies), parsedPackageJson.devDependencies).react !== undefined);
|
203
|
-
})();
|
204
|
-
const filePath = (0,path__WEBPACK_IMPORTED_MODULE_2__.join)(buildContext.themeSrcDirPath, `kc.gen.ts${isReactProject ? "x" : ""}`);
|
205
|
-
const currentContent = (await (0,_tools_fs_existsAsync__WEBPACK_IMPORTED_MODULE_3__/* .existsAsync */ .o)(filePath))
|
206
|
-
? await fs_promises__WEBPACK_IMPORTED_MODULE_1__.readFile(filePath)
|
289
|
+
(0,_shared_customHandler_delegate__WEBPACK_IMPORTED_MODULE_3__/* .maybeDelegateCommandToCustomHandler */ .q)({
|
290
|
+
commandName: "update-kc-gen",
|
291
|
+
buildContext
|
292
|
+
});
|
293
|
+
const filePath = (0,path__WEBPACK_IMPORTED_MODULE_1__.join)(buildContext.themeSrcDirPath, `kc.gen.tsx`);
|
294
|
+
const currentContent = (await (0,_tools_fs_existsAsync__WEBPACK_IMPORTED_MODULE_2__/* .existsAsync */ .o)(filePath))
|
295
|
+
? await fs_promises__WEBPACK_IMPORTED_MODULE_0__.readFile(filePath)
|
207
296
|
: undefined;
|
208
297
|
const hasLoginTheme = buildContext.implementedThemeTypes.login.isImplemented;
|
209
298
|
const hasAccountTheme = buildContext.implementedThemeTypes.account.isImplemented;
|
@@ -218,7 +307,7 @@ async function generateKcGenTs(params) {
|
|
218
307
|
``,
|
219
308
|
`// This file is auto-generated by Keycloakify`,
|
220
309
|
``,
|
221
|
-
|
310
|
+
`import { lazy, Suspense, type ReactNode } from "react";`,
|
222
311
|
``,
|
223
312
|
`export type ThemeName = ${buildContext.themeNames.map(themeName => `"${themeName}"`).join(" | ")};`,
|
224
313
|
``,
|
@@ -241,35 +330,31 @@ async function generateKcGenTs(params) {
|
|
241
330
|
` }`,
|
242
331
|
`}`,
|
243
332
|
``,
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
` </Suspense>`,
|
270
|
-
` );`,
|
271
|
-
`}`
|
272
|
-
]),
|
333
|
+
hasLoginTheme &&
|
334
|
+
`export const KcLoginPage = lazy(() => import("./login/KcPage"));`,
|
335
|
+
hasAccountTheme &&
|
336
|
+
`export const KcAccountPage = lazy(() => import("./account/KcPage"));`,
|
337
|
+
``,
|
338
|
+
`export function KcPage(`,
|
339
|
+
` props: {`,
|
340
|
+
` kcContext: KcContext;`,
|
341
|
+
` fallback?: ReactNode;`,
|
342
|
+
` }`,
|
343
|
+
`) {`,
|
344
|
+
` const { kcContext, fallback } = props;`,
|
345
|
+
` return (`,
|
346
|
+
` <Suspense fallback={fallback}>`,
|
347
|
+
` {(() => {`,
|
348
|
+
` switch (kcContext.themeType) {`,
|
349
|
+
hasLoginTheme &&
|
350
|
+
` case "login": return <KcLoginPage kcContext={kcContext} />;`,
|
351
|
+
hasAccountTheme &&
|
352
|
+
` case "account": return <KcAccountPage kcContext={kcContext} />;`,
|
353
|
+
` }`,
|
354
|
+
` })()}`,
|
355
|
+
` </Suspense>`,
|
356
|
+
` );`,
|
357
|
+
`}`,
|
273
358
|
``,
|
274
359
|
`/* prettier-ignore-end */`,
|
275
360
|
``
|
@@ -279,43 +364,16 @@ async function generateKcGenTs(params) {
|
|
279
364
|
if (currentContent !== undefined && currentContent.equals(newContent)) {
|
280
365
|
return;
|
281
366
|
}
|
282
|
-
await
|
367
|
+
await fs_promises__WEBPACK_IMPORTED_MODULE_0__.writeFile(filePath, newContent);
|
283
368
|
delete_legacy_file: {
|
284
|
-
if (!isReactProject) {
|
285
|
-
break delete_legacy_file;
|
286
|
-
}
|
287
369
|
const legacyFilePath = filePath.replace(/tsx$/, "ts");
|
288
|
-
if (!(await (0,
|
370
|
+
if (!(await (0,_tools_fs_existsAsync__WEBPACK_IMPORTED_MODULE_2__/* .existsAsync */ .o)(legacyFilePath))) {
|
289
371
|
break delete_legacy_file;
|
290
372
|
}
|
291
|
-
await
|
373
|
+
await fs_promises__WEBPACK_IMPORTED_MODULE_0__.unlink(legacyFilePath);
|
292
374
|
}
|
293
375
|
}
|
294
|
-
//# sourceMappingURL=
|
295
|
-
|
296
|
-
/***/ }),
|
297
|
-
|
298
|
-
/***/ 43765:
|
299
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
300
|
-
|
301
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
302
|
-
/* harmony export */ "o": () => (/* binding */ existsAsync)
|
303
|
-
/* harmony export */ });
|
304
|
-
/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73292);
|
305
|
-
/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs_promises__WEBPACK_IMPORTED_MODULE_0__);
|
306
|
-
|
307
|
-
async function existsAsync(path) {
|
308
|
-
try {
|
309
|
-
await fs_promises__WEBPACK_IMPORTED_MODULE_0__.stat(path);
|
310
|
-
return true;
|
311
|
-
}
|
312
|
-
catch (error) {
|
313
|
-
if (error.code === "ENOENT")
|
314
|
-
return false;
|
315
|
-
throw error;
|
316
|
-
}
|
317
|
-
}
|
318
|
-
//# sourceMappingURL=fs.existsAsync.js.map
|
376
|
+
//# sourceMappingURL=update-kc-gen.js.map
|
319
377
|
|
320
378
|
/***/ }),
|
321
379
|
|