@yimingliao/cms 0.0.237 → 0.0.239
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/dist/src/server/infrastructure/zod/schemas/schemas.js +1 -8
- package/dist/src/server/interfaces/actions/resources/admin/commands/create/admin-create-validator.js +2 -2
- package/dist/src/server/interfaces/actions/resources/admin/commands/update/admin-update-validator.js +2 -2
- package/dist/src/server/interfaces/actions/resources/post/commands/create/post-create-validator.js +1 -1
- package/dist/src/server/interfaces/actions/resources/post/commands/update/post-update-validator.js +1 -1
- package/dist/src/server/interfaces/actions/resources/seo-metadata/commands/upsert/seo-metadata-upsert-validator.js +4 -4
- package/dist/src/shared/seo-metadata/build-article-metadata.js +2 -2
- package/dist/src/shared/seo-metadata/build-website-metadata.js +2 -2
- package/dist/types/src/server/infrastructure/zod/schemas/schemas.d.ts +0 -1
- package/dist/types/src/server/infrastructure/zod/schemas/schemas.d.ts.map +1 -1
- package/dist/types/src/server/interfaces/actions/resources/admin/commands/create/admin-create-validator.d.ts +2 -2
- package/dist/types/src/server/interfaces/actions/resources/admin/commands/update/admin-update-validator.d.ts +2 -2
- package/dist/types/src/server/interfaces/actions/resources/post/commands/create/post-create-validator.d.ts +1 -1
- package/dist/types/src/server/interfaces/actions/resources/post/commands/update/post-update-validator.d.ts +1 -1
- package/dist/types/src/server/interfaces/actions/resources/seo-metadata/commands/upsert/seo-metadata-upsert-validator.d.ts +4 -4
- package/dist/types/src/shared/seo-metadata/build-article-metadata.d.ts +2 -2
- package/dist/types/src/shared/seo-metadata/build-article-metadata.d.ts.map +1 -1
- package/dist/types/src/shared/seo-metadata/build-website-metadata.d.ts +2 -2
- package/dist/types/src/shared/seo-metadata/build-website-metadata.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -15,13 +15,6 @@ function createSchemas({
|
|
|
15
15
|
return Number.isNaN(num) ? void 0 : num;
|
|
16
16
|
}, z.number().min(0).max(MAX_NUMBER));
|
|
17
17
|
}
|
|
18
|
-
function url() {
|
|
19
|
-
return z.preprocess((val) => {
|
|
20
|
-
if (typeof val === "string" && val.trim() === "" || val === null)
|
|
21
|
-
return null;
|
|
22
|
-
return val;
|
|
23
|
-
}, z.url().max(2048));
|
|
24
|
-
}
|
|
25
18
|
function email() {
|
|
26
19
|
return z.email().max(254).toLowerCase();
|
|
27
20
|
}
|
|
@@ -74,7 +67,7 @@ function createSchemas({
|
|
|
74
67
|
// base
|
|
75
68
|
text,
|
|
76
69
|
positiveNumber,
|
|
77
|
-
url,
|
|
70
|
+
// url,
|
|
78
71
|
email,
|
|
79
72
|
password,
|
|
80
73
|
isoString,
|
package/dist/src/server/interfaces/actions/resources/admin/commands/create/admin-create-validator.js
CHANGED
|
@@ -7,7 +7,7 @@ const adminCreateValidator = (schemas) => schemas.z.object({
|
|
|
7
7
|
email: schemas.email().unique({ table: "admins", column: "email" }),
|
|
8
8
|
password: schemas.password(),
|
|
9
9
|
// better seo
|
|
10
|
-
socialLinks: schemas.array(schemas.
|
|
10
|
+
socialLinks: schemas.array(schemas.text()),
|
|
11
11
|
// ----------------------------------------------------------------------------
|
|
12
12
|
// relations
|
|
13
13
|
// ----------------------------------------------------------------------------
|
|
@@ -26,7 +26,7 @@ const adminCreateValidator = (schemas) => schemas.z.object({
|
|
|
26
26
|
authorName: schemas.text().nullable(),
|
|
27
27
|
description: schemas.text().nullable(),
|
|
28
28
|
jobTitle: schemas.text().nullable(),
|
|
29
|
-
url: schemas.
|
|
29
|
+
url: schemas.text().nullable(),
|
|
30
30
|
worksFor: schemas.text().nullable(),
|
|
31
31
|
knowsAbout: schemas.array(schemas.text()),
|
|
32
32
|
homeLocation: schemas.text().nullable(),
|
package/dist/src/server/interfaces/actions/resources/admin/commands/update/admin-update-validator.js
CHANGED
|
@@ -10,7 +10,7 @@ const adminUpdateValidator = (schemas, id) => schemas.z.object({
|
|
|
10
10
|
excludeSelf: { name: "id", value: id }
|
|
11
11
|
}).optional(),
|
|
12
12
|
// better seo
|
|
13
|
-
socialLinks: schemas.array(schemas.
|
|
13
|
+
socialLinks: schemas.array(schemas.text()),
|
|
14
14
|
// ----------------------------------------------------------------------------
|
|
15
15
|
// relations
|
|
16
16
|
// ----------------------------------------------------------------------------
|
|
@@ -29,7 +29,7 @@ const adminUpdateValidator = (schemas, id) => schemas.z.object({
|
|
|
29
29
|
authorName: schemas.text().nullable(),
|
|
30
30
|
description: schemas.text().nullable(),
|
|
31
31
|
jobTitle: schemas.text().nullable(),
|
|
32
|
-
url: schemas.
|
|
32
|
+
url: schemas.text().nullable(),
|
|
33
33
|
worksFor: schemas.text().nullable(),
|
|
34
34
|
knowsAbout: schemas.array(schemas.text()),
|
|
35
35
|
homeLocation: schemas.text().nullable(),
|
|
@@ -22,13 +22,13 @@ const seoMetadataUpsertValidator = (schemas) => schemas.z.object({
|
|
|
22
22
|
// identity
|
|
23
23
|
author: schemas.text().nullable(),
|
|
24
24
|
// url
|
|
25
|
-
canonical: schemas.
|
|
25
|
+
canonical: schemas.text().nullable(),
|
|
26
26
|
// URL
|
|
27
27
|
alternate: schemas.array(
|
|
28
28
|
schemas.z.object({
|
|
29
29
|
hreflang: schemas.text().bcp47(),
|
|
30
30
|
// BCP47
|
|
31
|
-
href: schemas.
|
|
31
|
+
href: schemas.text()
|
|
32
32
|
// URL
|
|
33
33
|
})
|
|
34
34
|
),
|
|
@@ -40,13 +40,13 @@ const seoMetadataUpsertValidator = (schemas) => schemas.z.object({
|
|
|
40
40
|
ogTitle: schemas.text().nullable(),
|
|
41
41
|
ogDescription: schemas.text().nullable(),
|
|
42
42
|
// url
|
|
43
|
-
ogUrl: schemas.
|
|
43
|
+
ogUrl: schemas.text().nullable(),
|
|
44
44
|
// URL
|
|
45
45
|
// identity
|
|
46
46
|
ogType: schemas.z.enum(OG_TYPE_ARRAY).nullable(),
|
|
47
47
|
ogSiteName: schemas.text().nullable(),
|
|
48
48
|
// image
|
|
49
|
-
ogImage: schemas.
|
|
49
|
+
ogImage: schemas.text().nullable(),
|
|
50
50
|
// URL
|
|
51
51
|
ogImageAlt: schemas.text().nullable(),
|
|
52
52
|
ogImageType: schemas.text().nullable(),
|
|
@@ -7,8 +7,8 @@ import { sanitizeStringArray } from './utils/sanitize-string-array.js';
|
|
|
7
7
|
import { toIsoTime } from './utils/to-iso-time.js';
|
|
8
8
|
import { toOgLocale } from './utils/to-og-locale.js';
|
|
9
9
|
|
|
10
|
-
function createBuildArticleMetadata(siteConfig,
|
|
11
|
-
return function buildArticleMetadata(post, locale) {
|
|
10
|
+
function createBuildArticleMetadata(siteConfig, storageUrl) {
|
|
11
|
+
return function buildArticleMetadata(urls, post, locale) {
|
|
12
12
|
const { defaultLocale, locales, siteUrl, siteName, siteDescription } = siteConfig;
|
|
13
13
|
const resolvedLocale = locale ?? defaultLocale;
|
|
14
14
|
const seoMetadata = findTranslation(post?.seoMetadatas, locale);
|
|
@@ -6,8 +6,8 @@ import { ensureTwitterCard } from './utils/ensure-twitter-card.js';
|
|
|
6
6
|
import { sanitizeStringArray } from './utils/sanitize-string-array.js';
|
|
7
7
|
import { toOgLocale } from './utils/to-og-locale.js';
|
|
8
8
|
|
|
9
|
-
function createBuildWebsiteMetadata(siteConfig
|
|
10
|
-
return function buildWebsiteMetadata(post, locale) {
|
|
9
|
+
function createBuildWebsiteMetadata(siteConfig) {
|
|
10
|
+
return function buildWebsiteMetadata(urls, post, locale) {
|
|
11
11
|
const {
|
|
12
12
|
defaultLocale,
|
|
13
13
|
locales,
|
|
@@ -9,7 +9,6 @@ export declare function createSchemas({ z, exist, }: {
|
|
|
9
9
|
z: typeof zod;
|
|
10
10
|
text: () => zod.ZodString;
|
|
11
11
|
positiveNumber: () => zod.ZodPipe<zod.ZodTransform<number | undefined, unknown>, zod.ZodNumber>;
|
|
12
|
-
url: () => zod.ZodPipe<zod.ZodTransform<{} | null | undefined, unknown>, zod.ZodURL>;
|
|
13
12
|
email: () => zod.ZodEmail;
|
|
14
13
|
password: () => zod.ZodString;
|
|
15
14
|
isoString: () => zod.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/infrastructure/zod/schemas/schemas.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC,wBAAgB,aAAa,CAAC,EAC5B,CAAC,EACD,KAAK,GACN,EAAE;IACD,CAAC,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;IAChC,KAAK,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;CACvC
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/infrastructure/zod/schemas/schemas.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC,wBAAgB,aAAa,CAAC,EAC5B,CAAC,EACD,KAAK,GACN,EAAE;IACD,CAAC,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;IAChC,KAAK,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;CACvC;;;;;;;YA0CgB,CAAC,SAAS,OAAO,UAAU,CAAC;;;;;;0BAkDd,YAAY;;;0BAUZ,YAAY;;;;;;;EA8B1C"}
|
|
@@ -7,7 +7,7 @@ export declare const adminCreateValidator: (schemas: ReturnType<typeof createSch
|
|
|
7
7
|
}>;
|
|
8
8
|
email: import("zod").ZodEmail;
|
|
9
9
|
password: import("zod").ZodString;
|
|
10
|
-
socialLinks: import("zod").ZodPipe<import("zod").ZodArray<import("zod").
|
|
10
|
+
socialLinks: import("zod").ZodPipe<import("zod").ZodArray<import("zod").ZodString>, import("zod").ZodTransform<string[], string[]>>;
|
|
11
11
|
avatarImage: import("zod").ZodNullable<import("zod").ZodObject<{
|
|
12
12
|
id: import("zod").ZodString;
|
|
13
13
|
}, import("zod/v4/core").$strip>>;
|
|
@@ -17,7 +17,7 @@ export declare const adminCreateValidator: (schemas: ReturnType<typeof createSch
|
|
|
17
17
|
authorName: import("zod").ZodNullable<import("zod").ZodString>;
|
|
18
18
|
description: import("zod").ZodNullable<import("zod").ZodString>;
|
|
19
19
|
jobTitle: import("zod").ZodNullable<import("zod").ZodString>;
|
|
20
|
-
url: import("zod").ZodNullable<import("zod").
|
|
20
|
+
url: import("zod").ZodNullable<import("zod").ZodString>;
|
|
21
21
|
worksFor: import("zod").ZodNullable<import("zod").ZodString>;
|
|
22
22
|
knowsAbout: import("zod").ZodPipe<import("zod").ZodArray<import("zod").ZodString>, import("zod").ZodTransform<string[], string[]>>;
|
|
23
23
|
homeLocation: import("zod").ZodNullable<import("zod").ZodString>;
|
|
@@ -6,7 +6,7 @@ export declare const adminUpdateValidator: (schemas: ReturnType<typeof createSch
|
|
|
6
6
|
EDITOR: "EDITOR";
|
|
7
7
|
}>;
|
|
8
8
|
email: import("zod").ZodOptional<import("zod").ZodEmail>;
|
|
9
|
-
socialLinks: import("zod").ZodPipe<import("zod").ZodArray<import("zod").
|
|
9
|
+
socialLinks: import("zod").ZodPipe<import("zod").ZodArray<import("zod").ZodString>, import("zod").ZodTransform<string[], string[]>>;
|
|
10
10
|
avatarImage: import("zod").ZodNullable<import("zod").ZodObject<{
|
|
11
11
|
id: import("zod").ZodString;
|
|
12
12
|
}, import("zod/v4/core").$strip>>;
|
|
@@ -16,7 +16,7 @@ export declare const adminUpdateValidator: (schemas: ReturnType<typeof createSch
|
|
|
16
16
|
authorName: import("zod").ZodNullable<import("zod").ZodString>;
|
|
17
17
|
description: import("zod").ZodNullable<import("zod").ZodString>;
|
|
18
18
|
jobTitle: import("zod").ZodNullable<import("zod").ZodString>;
|
|
19
|
-
url: import("zod").ZodNullable<import("zod").
|
|
19
|
+
url: import("zod").ZodNullable<import("zod").ZodString>;
|
|
20
20
|
worksFor: import("zod").ZodNullable<import("zod").ZodString>;
|
|
21
21
|
knowsAbout: import("zod").ZodPipe<import("zod").ZodArray<import("zod").ZodString>, import("zod").ZodTransform<string[], string[]>>;
|
|
22
22
|
homeLocation: import("zod").ZodNullable<import("zod").ZodString>;
|
|
@@ -102,7 +102,7 @@ export declare const postCreateValidator: ({ type, topicId, schemas, tocItemSche
|
|
|
102
102
|
content: import("zod").ZodNullable<import("zod").ZodString>;
|
|
103
103
|
externalLinks: import("zod").ZodPipe<import("zod").ZodArray<import("zod").ZodObject<{
|
|
104
104
|
name: import("zod").ZodString;
|
|
105
|
-
href: import("zod").
|
|
105
|
+
href: import("zod").ZodString;
|
|
106
106
|
}, import("zod/v4/core").$strip>>, import("zod").ZodTransform<{
|
|
107
107
|
name: string;
|
|
108
108
|
href: string;
|
|
@@ -103,7 +103,7 @@ export declare const postUpdateValidator: ({ id, type, topicId, schemas, tocItem
|
|
|
103
103
|
content: import("zod").ZodNullable<import("zod").ZodString>;
|
|
104
104
|
externalLinks: import("zod").ZodPipe<import("zod").ZodArray<import("zod").ZodObject<{
|
|
105
105
|
name: import("zod").ZodString;
|
|
106
|
-
href: import("zod").
|
|
106
|
+
href: import("zod").ZodString;
|
|
107
107
|
}, import("zod/v4/core").$strip>>, import("zod").ZodTransform<{
|
|
108
108
|
name: string;
|
|
109
109
|
href: string;
|
|
@@ -6,10 +6,10 @@ export declare const seoMetadataUpsertValidator: (schemas: ReturnType<typeof cre
|
|
|
6
6
|
title: import("zod").ZodNullable<import("zod").ZodString>;
|
|
7
7
|
description: import("zod").ZodNullable<import("zod").ZodString>;
|
|
8
8
|
author: import("zod").ZodNullable<import("zod").ZodString>;
|
|
9
|
-
canonical: import("zod").ZodNullable<import("zod").
|
|
9
|
+
canonical: import("zod").ZodNullable<import("zod").ZodString>;
|
|
10
10
|
alternate: import("zod").ZodPipe<import("zod").ZodArray<import("zod").ZodObject<{
|
|
11
11
|
hreflang: import("zod").ZodString;
|
|
12
|
-
href: import("zod").
|
|
12
|
+
href: import("zod").ZodString;
|
|
13
13
|
}, import("zod/v4/core").$strip>>, import("zod").ZodTransform<{
|
|
14
14
|
hreflang: string;
|
|
15
15
|
href: string;
|
|
@@ -20,7 +20,7 @@ export declare const seoMetadataUpsertValidator: (schemas: ReturnType<typeof cre
|
|
|
20
20
|
robots: import("zod").ZodNullable<import("zod").ZodString>;
|
|
21
21
|
ogTitle: import("zod").ZodNullable<import("zod").ZodString>;
|
|
22
22
|
ogDescription: import("zod").ZodNullable<import("zod").ZodString>;
|
|
23
|
-
ogUrl: import("zod").ZodNullable<import("zod").
|
|
23
|
+
ogUrl: import("zod").ZodNullable<import("zod").ZodString>;
|
|
24
24
|
ogType: import("zod").ZodNullable<import("zod").ZodEnum<{
|
|
25
25
|
article: "article";
|
|
26
26
|
book: "book";
|
|
@@ -36,7 +36,7 @@ export declare const seoMetadataUpsertValidator: (schemas: ReturnType<typeof cre
|
|
|
36
36
|
"video.episode": "video.episode";
|
|
37
37
|
}>>;
|
|
38
38
|
ogSiteName: import("zod").ZodNullable<import("zod").ZodString>;
|
|
39
|
-
ogImage: import("zod").ZodNullable<import("zod").
|
|
39
|
+
ogImage: import("zod").ZodNullable<import("zod").ZodString>;
|
|
40
40
|
ogImageAlt: import("zod").ZodNullable<import("zod").ZodString>;
|
|
41
41
|
ogImageType: import("zod").ZodNullable<import("zod").ZodString>;
|
|
42
42
|
ogImageWidth: import("zod").ZodNullable<import("zod").ZodNumber>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { SiteConfig } from "../../domain";
|
|
2
2
|
import type { PostFull } from "../../domain/resources/post/full";
|
|
3
3
|
import type { Metadata } from "next";
|
|
4
|
-
export declare function createBuildArticleMetadata<Locale extends string = string>(siteConfig: SiteConfig<Locale>, urls: {
|
|
4
|
+
export declare function createBuildArticleMetadata<Locale extends string = string>(siteConfig: SiteConfig<Locale>, storageUrl: string): (urls: {
|
|
5
5
|
canonical: string;
|
|
6
6
|
alternates: Record<string, string>;
|
|
7
|
-
},
|
|
7
|
+
}, post?: PostFull, locale?: Locale) => Metadata;
|
|
8
8
|
//# sourceMappingURL=build-article-metadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-article-metadata.d.ts","sourceRoot":"","sources":["../../../../../src/shared/seo-metadata/build-article-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAUrC,wBAAgB,0BAA0B,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EACvE,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAC9B,
|
|
1
|
+
{"version":3,"file":"build-article-metadata.d.ts","sourceRoot":"","sources":["../../../../../src/shared/seo-metadata/build-article-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAUrC,wBAAgB,0BAA0B,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EACvE,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAC9B,UAAU,EAAE,MAAM,IAGhB,MAAM;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EAC/D,OAAO,QAAQ,EACf,SAAS,MAAM,KACd,QAAQ,CAmGZ"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { SiteConfig } from "../../domain";
|
|
2
2
|
import type { PostFull } from "../../domain/resources/post/full";
|
|
3
3
|
import type { Metadata } from "next";
|
|
4
|
-
export declare function createBuildWebsiteMetadata<Locale extends string = string>(siteConfig: SiteConfig<Locale
|
|
4
|
+
export declare function createBuildWebsiteMetadata<Locale extends string = string>(siteConfig: SiteConfig<Locale>): (urls: {
|
|
5
5
|
canonical: string;
|
|
6
6
|
alternates: Record<string, string>;
|
|
7
|
-
}
|
|
7
|
+
}, post?: PostFull, locale?: Locale) => Metadata;
|
|
8
8
|
//# sourceMappingURL=build-website-metadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-website-metadata.d.ts","sourceRoot":"","sources":["../../../../../src/shared/seo-metadata/build-website-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AASrC,wBAAgB,0BAA0B,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EACvE,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"build-website-metadata.d.ts","sourceRoot":"","sources":["../../../../../src/shared/seo-metadata/build-website-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AASrC,wBAAgB,0BAA0B,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EACvE,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,IAG5B,MAAM;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EAC/D,OAAO,QAAQ,EACf,SAAS,MAAM,KACd,QAAQ,CAmFZ"}
|