@sovereignbase/pwa 0.0.2 → 1.0.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/dist/index.d.cts CHANGED
@@ -2,104 +2,8 @@
2
2
  import { PathLike } from "node:fs";
3
3
  import { BCP47LanguageTag, OpenGraphLocale } from "@sovereignbase/utils";
4
4
  //#region src/.types/index.d.ts
5
- type URLPath = `/${string}`;
6
5
  type HTTPSUrl = `https://${string}`;
7
- interface DocumentMarkupOptions {
8
- /** Language of the document. */
9
- language: BCP47LanguageTag;
10
- /** Document title. */
11
- title: string;
12
- /** Application name used by installed/mobile browser UI. */
13
- applicationName: string;
14
- /** Theme color used by supported browser chrome. */
15
- themeColor: string;
16
- /** CSP nonce applied to inline styles and scripts. */
17
- nonce: string;
18
- /** Complete markup rendered inside `<body>`. */
19
- bodyMarkup: string;
20
- /** Additional markup inserted into `<head>`. */
21
- headMarkup?: string;
22
- /** Critical CSS rendered inline during initial document load. */
23
- stylesheet?: string;
24
- /** JavaScript module rendered inline into the document. */
25
- entrypoint?: string;
26
- /** Favicon URL. */
27
- iconUrl?: URLPath;
28
- /** Apple touch icon URL. */
29
- appleTouchIconUrl?: URLPath;
30
- /** Safari pinned-tab mask icon URL. */
31
- maskIconUrl?: URLPath;
32
- /** Web App Manifest URL. */
33
- manifestUrl?: URLPath;
34
- /** Safari pinned-tab icon color. Defaults to `themeColor`. */
35
- maskIconColor?: string;
36
- /** Preferred document color schemes. */
37
- colorScheme?: 'light' | 'dark' | 'light dark' | 'dark light';
38
- /** Apple standalone status bar appearance. */
39
- appleStatusBarStyle?: 'default' | 'black' | 'black-translucent';
40
- /** Search and social metadata rendered with the SEO component builders. */
41
- seo: DocumentSEO;
42
- }
43
- interface DocumentSEO {
44
- jsonLD: JSONLDMarkup;
45
- languageLinks: LanguageLinksMarkupOptions;
46
- openGraph: OpenGraphMarkupOptions;
47
- twitter: TwitterMarkupOptions;
48
- }
49
- interface LanguageLinksMarkupOptions {
50
- host: `${string}.${string}`;
51
- defaultLanguage: BCP47LanguageTag;
52
- canonicalLanguage: BCP47LanguageTag;
53
- alternateLanguages: BCP47LanguageTag[];
54
- pathSuffix?: '' | `/${string}`;
55
- }
56
- interface OpenGraphMarkupOptions {
57
- locale: OpenGraphLocale;
58
- siteName: string;
59
- title: string;
60
- description: string;
61
- url: HTTPSUrl;
62
- imageUrl: string;
63
- imageAlt: string;
64
- imageWidth?: number;
65
- imageHeight?: number;
66
- }
67
- interface TwitterMarkupOptions {
68
- title: string;
69
- description: string;
70
- url: HTTPSUrl;
71
- imageUrl: string;
72
- imageAlt: string;
73
- site: `@${string}`;
74
- creator: `@${string}`;
75
- }
76
- interface JSONLDMarkup {
77
- site: {
78
- name: string;
79
- url: HTTPSUrl;
80
- };
81
- application: {
82
- name: string;
83
- url: HTTPSUrl;
84
- inLanguage: BCP47LanguageTag[];
85
- applicationCategory?: string;
86
- operatingSystem?: string;
87
- browserRequirements?: string;
88
- featureList?: string[];
89
- screenshot?: HTTPSUrl[];
90
- };
91
- page: {
92
- name: string;
93
- description: string;
94
- url: HTTPSUrl;
95
- inLanguage: BCP47LanguageTag;
96
- };
97
- organization: {
98
- name: string;
99
- url: HTTPSUrl;
100
- logo: HTTPSUrl;
101
- };
102
- }
6
+ type URLPath = `/${string}`;
103
7
  //#endregion
104
8
  //#region src/webManifest/index.d.ts
105
9
  type Path = `/${string}`;
@@ -143,28 +47,75 @@ interface WebManifestOptions {
143
47
  //#endregion
144
48
  //#region src/index.d.ts
145
49
  declare function pwaize(config: PWAizeConfig): Promise<void>;
50
+ type Localized<T> = T | Partial<Record<BCP47LanguageTag, T>>;
146
51
  type PWAizeConfig = {
147
- defaultLanguage: BCP47LanguageTag;
148
- canonicalLanguage: BCP47LanguageTag;
52
+ _headersFile?: boolean;
149
53
  alternateLanguages: BCP47LanguageTag[];
150
- languages: Record<string, {
151
- document: Omit<DocumentMarkupOptions, 'entrypoint' | 'language' | 'manifestUrl' | 'stylesheet'>;
152
- manifest: Omit<WebManifestOptions, 'lang'>;
153
- }>;
154
- stylesheet: PathLike;
155
- entrypoint: PathLike;
156
- outDir: PathLike;
54
+ application?: {
55
+ browserRequirements?: Localized<string>;
56
+ category?: Localized<string>;
57
+ featureList?: Localized<string[]>;
58
+ operatingSystem?: Localized<string>;
59
+ };
60
+ applicationName: Localized<string>;
61
+ appleStatusBarStyle?: Localized<'black' | 'black-translucent' | 'default'>;
157
62
  assetsDir?: PathLike;
63
+ backgroundColor?: Localized<string>;
64
+ bodyMarkup?: Localized<string>;
65
+ canonicalLanguage: BCP47LanguageTag;
66
+ colorScheme?: Localized<'dark' | 'dark light' | 'light' | 'light dark'>;
67
+ defaultLanguage: BCP47LanguageTag;
68
+ description: Localized<string>;
69
+ entrypoint: PathLike;
70
+ headMarkup?: Localized<string>;
158
71
  i18nDir?: PathLike;
72
+ icons: {
73
+ appleTouchIconUrl?: Localized<URLPath>;
74
+ icon192: Localized<URLPath>;
75
+ icon512: Localized<URLPath>;
76
+ iconUrl?: Localized<URLPath>;
77
+ maskableIcon512: Localized<URLPath>;
78
+ maskIconUrl?: Localized<URLPath>;
79
+ };
80
+ manifest?: {
81
+ categories?: Localized<string[]>;
82
+ display?: Localized<'browser' | 'fullscreen' | 'minimal-ui' | 'standalone'>;
83
+ id?: Localized<URLPath>;
84
+ orientation?: Localized<WebManifestOptions['orientation']>;
85
+ scope?: Localized<URLPath>;
86
+ screenshots?: Localized<WebManifestScreenshot[]>;
87
+ shortcuts?: Localized<WebManifestShortcut[]>;
88
+ };
159
89
  minifyPasses?: number;
90
+ openGraphLocale: Localized<OpenGraphLocale>;
91
+ organization?: {
92
+ logoUrl?: Localized<HTTPSUrl>;
93
+ name?: Localized<string>;
94
+ url?: Localized<HTTPSUrl>;
95
+ };
96
+ origin: Localized<HTTPSUrl>;
97
+ outDir: PathLike;
160
98
  serviceWorker?: {
161
99
  bypass?: Array<string | RegExp>;
162
- precache?: `/${string}`[];
163
100
  initialize?: () => void;
101
+ precache?: URLPath[];
164
102
  waitUntil?: () => Promise<void>;
165
103
  };
166
- _headersFile?: boolean;
104
+ shortName?: Localized<string>;
105
+ socialImage: {
106
+ alt: Localized<string>;
107
+ height?: Localized<number>;
108
+ url: Localized<HTTPSUrl>;
109
+ width?: Localized<number>;
110
+ };
111
+ stylesheet: PathLike;
112
+ themeColor: Localized<string>;
113
+ title: Localized<string>;
114
+ twitter: {
115
+ creator: Localized<`@${string}`>;
116
+ site: Localized<`@${string}`>;
117
+ };
167
118
  };
168
119
  //#endregion
169
- export { PWAizeConfig, pwaize };
120
+ export { Localized, PWAizeConfig, pwaize };
170
121
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/.types/index.ts","../src/webManifest/index.ts","../src/index.ts"],"mappings":";;;;KACY;KACA;UAEK;;EAEf,UAAU;;EAGV;;EAGA;;EAGA;;EAGA;;EAGA;;EAGA;;EAGA;;EAGA;;EAGA,UAAU;;EAGV,oBAAoB;;EAGpB,cAAc;;EAGd,cAAc;;EAGd;;EAGA;;EAGA;;EAGA,KAAK;;UAGU;EACf,QAAQ;EACR,eAAe;EACf,WAAW;EACX,SAAS;;UAGM;EACf;EACA,iBAAiB;EACjB,mBAAmB;EACnB,oBAAoB;EACpB;;UAGe;EACf,QAAQ;EACR;EACA;EACA;EACA,KAAK;EACL;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA,KAAK;EACL;EACA;EACA;EACA;;UAGe;EACf;IACE;IACA,KAAK;;EAGP;IACE;IACA,KAAK;IACL,YAAY;IACZ;IACA;IACA;IACA;IACA,aAAa;;EAGf;IACE;IACA;IACA,KAAK;IACL,YAAY;;EAGd;IACE;IACA,KAAK;IACL,MAAM;;;;;KCvHL;KACA,WAAW;UAEC;EACf,KAAK;EACL;EACA;EACA;EACA;;UAGe;EACf;EACA,KAAK;EACL;EACA;IACE,KAAK;IACL;IACA;;;UAIa;EACf;EACA;EACA;EACA,UAAU;EACV;EACA,SAAS;EACT,SAAS;EACT,iBAAiB;EACjB,KAAK;EACL,QAAQ;EACR;EACA,OAAO;EACP;EACA;EASA;EACA,cAAc;EACd,YAAY;;;;iBCtCQ,OAAO,QAAQ,eAAe;KA+LxC;EACV,iBAAiB;EACjB,mBAAmB;EACnB,oBAAoB;EAEpB,WAAW;IAGP,UAAU,KACR;IAGF,UAAU,KAAK;;EAInB,YAAY;EACZ,YAAY;EACZ,QAAQ;EAER,YAAY;EACZ,UAAU;EACV;EAEA;IACE,SAAS,eAAe;IACxB;IACA;IACA,kBAAkB;;EAGpB"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/.types/index.ts","../src/webManifest/index.ts","../src/index.ts"],"mappings":";;;;KAEY;KACA;;;KCDP;KACA,WAAW;UAEC;EACf,KAAK;EACL;EACA;EACA;EACA;;UAGe;EACf;EACA,KAAK;EACL;EACA;IACE,KAAK;IACL;IACA;;;UAIa;EACf;EACA;EACA;EACA,UAAU;EACV;EACA,SAAS;EACT,SAAS;EACT,iBAAiB;EACjB,KAAK;EACL,QAAQ;EACR;EACA,OAAO;EACP;EACA;EASA;EACA,cAAc;EACd,YAAY;;;;iBC5BQ,OAAO,QAAQ,eAAe;KAqYxC,UAAU,KAAK,IAAI,QAAQ,OAAO,kBAAkB;KAEpD;EACV;EACA,oBAAoB;EACpB;IACE,sBAAsB;IACtB,WAAW;IACX,cAAc;IACd,kBAAkB;;EAEpB,iBAAiB;EACjB,sBAAsB;EACtB,YAAY;EACZ,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,cAAc;EACd,iBAAiB;EACjB,aAAa;EACb,YAAY;EACZ,aAAa;EACb,UAAU;EACV;IACE,oBAAoB,UAAU;IAC9B,SAAS,UAAU;IACnB,SAAS,UAAU;IACnB,UAAU,UAAU;IACpB,iBAAiB,UAAU;IAC3B,cAAc,UAAU;;EAE1B;IACE,aAAa;IACb,UAAU;IACV,KAAK,UAAU;IACf,cAAc,UAAU;IACxB,QAAQ,UAAU;IAClB,cAAc,UAAU;IACxB,YAAY,UAAU;;EAExB;EACA,iBAAiB,UAAU;EAC3B;IACE,UAAU,UAAU;IACpB,OAAO;IACP,MAAM,UAAU;;EAElB,QAAQ,UAAU;EAClB,QAAQ;EACR;IACE,SAAS,eAAe;IACxB;IACA,WAAW;IACX,kBAAkB;;EAEpB,YAAY;EACZ;IACE,KAAK;IACL,SAAS;IACT,KAAK,UAAU;IACf,QAAQ;;EAEV,YAAY;EACZ,YAAY;EACZ,OAAO;EACP;IACE,SAAS;IACT,MAAM"}
package/dist/index.d.ts CHANGED
@@ -2,104 +2,8 @@
2
2
  import { PathLike } from "node:fs";
3
3
  import { BCP47LanguageTag, OpenGraphLocale } from "@sovereignbase/utils";
4
4
  //#region src/.types/index.d.ts
5
- type URLPath = `/${string}`;
6
5
  type HTTPSUrl = `https://${string}`;
7
- interface DocumentMarkupOptions {
8
- /** Language of the document. */
9
- language: BCP47LanguageTag;
10
- /** Document title. */
11
- title: string;
12
- /** Application name used by installed/mobile browser UI. */
13
- applicationName: string;
14
- /** Theme color used by supported browser chrome. */
15
- themeColor: string;
16
- /** CSP nonce applied to inline styles and scripts. */
17
- nonce: string;
18
- /** Complete markup rendered inside `<body>`. */
19
- bodyMarkup: string;
20
- /** Additional markup inserted into `<head>`. */
21
- headMarkup?: string;
22
- /** Critical CSS rendered inline during initial document load. */
23
- stylesheet?: string;
24
- /** JavaScript module rendered inline into the document. */
25
- entrypoint?: string;
26
- /** Favicon URL. */
27
- iconUrl?: URLPath;
28
- /** Apple touch icon URL. */
29
- appleTouchIconUrl?: URLPath;
30
- /** Safari pinned-tab mask icon URL. */
31
- maskIconUrl?: URLPath;
32
- /** Web App Manifest URL. */
33
- manifestUrl?: URLPath;
34
- /** Safari pinned-tab icon color. Defaults to `themeColor`. */
35
- maskIconColor?: string;
36
- /** Preferred document color schemes. */
37
- colorScheme?: 'light' | 'dark' | 'light dark' | 'dark light';
38
- /** Apple standalone status bar appearance. */
39
- appleStatusBarStyle?: 'default' | 'black' | 'black-translucent';
40
- /** Search and social metadata rendered with the SEO component builders. */
41
- seo: DocumentSEO;
42
- }
43
- interface DocumentSEO {
44
- jsonLD: JSONLDMarkup;
45
- languageLinks: LanguageLinksMarkupOptions;
46
- openGraph: OpenGraphMarkupOptions;
47
- twitter: TwitterMarkupOptions;
48
- }
49
- interface LanguageLinksMarkupOptions {
50
- host: `${string}.${string}`;
51
- defaultLanguage: BCP47LanguageTag;
52
- canonicalLanguage: BCP47LanguageTag;
53
- alternateLanguages: BCP47LanguageTag[];
54
- pathSuffix?: '' | `/${string}`;
55
- }
56
- interface OpenGraphMarkupOptions {
57
- locale: OpenGraphLocale;
58
- siteName: string;
59
- title: string;
60
- description: string;
61
- url: HTTPSUrl;
62
- imageUrl: string;
63
- imageAlt: string;
64
- imageWidth?: number;
65
- imageHeight?: number;
66
- }
67
- interface TwitterMarkupOptions {
68
- title: string;
69
- description: string;
70
- url: HTTPSUrl;
71
- imageUrl: string;
72
- imageAlt: string;
73
- site: `@${string}`;
74
- creator: `@${string}`;
75
- }
76
- interface JSONLDMarkup {
77
- site: {
78
- name: string;
79
- url: HTTPSUrl;
80
- };
81
- application: {
82
- name: string;
83
- url: HTTPSUrl;
84
- inLanguage: BCP47LanguageTag[];
85
- applicationCategory?: string;
86
- operatingSystem?: string;
87
- browserRequirements?: string;
88
- featureList?: string[];
89
- screenshot?: HTTPSUrl[];
90
- };
91
- page: {
92
- name: string;
93
- description: string;
94
- url: HTTPSUrl;
95
- inLanguage: BCP47LanguageTag;
96
- };
97
- organization: {
98
- name: string;
99
- url: HTTPSUrl;
100
- logo: HTTPSUrl;
101
- };
102
- }
6
+ type URLPath = `/${string}`;
103
7
  //#endregion
104
8
  //#region src/webManifest/index.d.ts
105
9
  type Path = `/${string}`;
@@ -143,28 +47,75 @@ interface WebManifestOptions {
143
47
  //#endregion
144
48
  //#region src/index.d.ts
145
49
  declare function pwaize(config: PWAizeConfig): Promise<void>;
50
+ type Localized<T> = T | Partial<Record<BCP47LanguageTag, T>>;
146
51
  type PWAizeConfig = {
147
- defaultLanguage: BCP47LanguageTag;
148
- canonicalLanguage: BCP47LanguageTag;
52
+ _headersFile?: boolean;
149
53
  alternateLanguages: BCP47LanguageTag[];
150
- languages: Record<string, {
151
- document: Omit<DocumentMarkupOptions, 'entrypoint' | 'language' | 'manifestUrl' | 'stylesheet'>;
152
- manifest: Omit<WebManifestOptions, 'lang'>;
153
- }>;
154
- stylesheet: PathLike;
155
- entrypoint: PathLike;
156
- outDir: PathLike;
54
+ application?: {
55
+ browserRequirements?: Localized<string>;
56
+ category?: Localized<string>;
57
+ featureList?: Localized<string[]>;
58
+ operatingSystem?: Localized<string>;
59
+ };
60
+ applicationName: Localized<string>;
61
+ appleStatusBarStyle?: Localized<'black' | 'black-translucent' | 'default'>;
157
62
  assetsDir?: PathLike;
63
+ backgroundColor?: Localized<string>;
64
+ bodyMarkup?: Localized<string>;
65
+ canonicalLanguage: BCP47LanguageTag;
66
+ colorScheme?: Localized<'dark' | 'dark light' | 'light' | 'light dark'>;
67
+ defaultLanguage: BCP47LanguageTag;
68
+ description: Localized<string>;
69
+ entrypoint: PathLike;
70
+ headMarkup?: Localized<string>;
158
71
  i18nDir?: PathLike;
72
+ icons: {
73
+ appleTouchIconUrl?: Localized<URLPath>;
74
+ icon192: Localized<URLPath>;
75
+ icon512: Localized<URLPath>;
76
+ iconUrl?: Localized<URLPath>;
77
+ maskableIcon512: Localized<URLPath>;
78
+ maskIconUrl?: Localized<URLPath>;
79
+ };
80
+ manifest?: {
81
+ categories?: Localized<string[]>;
82
+ display?: Localized<'browser' | 'fullscreen' | 'minimal-ui' | 'standalone'>;
83
+ id?: Localized<URLPath>;
84
+ orientation?: Localized<WebManifestOptions['orientation']>;
85
+ scope?: Localized<URLPath>;
86
+ screenshots?: Localized<WebManifestScreenshot[]>;
87
+ shortcuts?: Localized<WebManifestShortcut[]>;
88
+ };
159
89
  minifyPasses?: number;
90
+ openGraphLocale: Localized<OpenGraphLocale>;
91
+ organization?: {
92
+ logoUrl?: Localized<HTTPSUrl>;
93
+ name?: Localized<string>;
94
+ url?: Localized<HTTPSUrl>;
95
+ };
96
+ origin: Localized<HTTPSUrl>;
97
+ outDir: PathLike;
160
98
  serviceWorker?: {
161
99
  bypass?: Array<string | RegExp>;
162
- precache?: `/${string}`[];
163
100
  initialize?: () => void;
101
+ precache?: URLPath[];
164
102
  waitUntil?: () => Promise<void>;
165
103
  };
166
- _headersFile?: boolean;
104
+ shortName?: Localized<string>;
105
+ socialImage: {
106
+ alt: Localized<string>;
107
+ height?: Localized<number>;
108
+ url: Localized<HTTPSUrl>;
109
+ width?: Localized<number>;
110
+ };
111
+ stylesheet: PathLike;
112
+ themeColor: Localized<string>;
113
+ title: Localized<string>;
114
+ twitter: {
115
+ creator: Localized<`@${string}`>;
116
+ site: Localized<`@${string}`>;
117
+ };
167
118
  };
168
119
  //#endregion
169
- export { PWAizeConfig, pwaize };
120
+ export { Localized, PWAizeConfig, pwaize };
170
121
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/.types/index.ts","../src/webManifest/index.ts","../src/index.ts"],"mappings":";;;;KACY;KACA;UAEK;;EAEf,UAAU;;EAGV;;EAGA;;EAGA;;EAGA;;EAGA;;EAGA;;EAGA;;EAGA;;EAGA,UAAU;;EAGV,oBAAoB;;EAGpB,cAAc;;EAGd,cAAc;;EAGd;;EAGA;;EAGA;;EAGA,KAAK;;UAGU;EACf,QAAQ;EACR,eAAe;EACf,WAAW;EACX,SAAS;;UAGM;EACf;EACA,iBAAiB;EACjB,mBAAmB;EACnB,oBAAoB;EACpB;;UAGe;EACf,QAAQ;EACR;EACA;EACA;EACA,KAAK;EACL;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA,KAAK;EACL;EACA;EACA;EACA;;UAGe;EACf;IACE;IACA,KAAK;;EAGP;IACE;IACA,KAAK;IACL,YAAY;IACZ;IACA;IACA;IACA;IACA,aAAa;;EAGf;IACE;IACA;IACA,KAAK;IACL,YAAY;;EAGd;IACE;IACA,KAAK;IACL,MAAM;;;;;KCvHL;KACA,WAAW;UAEC;EACf,KAAK;EACL;EACA;EACA;EACA;;UAGe;EACf;EACA,KAAK;EACL;EACA;IACE,KAAK;IACL;IACA;;;UAIa;EACf;EACA;EACA;EACA,UAAU;EACV;EACA,SAAS;EACT,SAAS;EACT,iBAAiB;EACjB,KAAK;EACL,QAAQ;EACR;EACA,OAAO;EACP;EACA;EASA;EACA,cAAc;EACd,YAAY;;;;iBCtCQ,OAAO,QAAQ,eAAe;KA+LxC;EACV,iBAAiB;EACjB,mBAAmB;EACnB,oBAAoB;EAEpB,WAAW;IAGP,UAAU,KACR;IAGF,UAAU,KAAK;;EAInB,YAAY;EACZ,YAAY;EACZ,QAAQ;EAER,YAAY;EACZ,UAAU;EACV;EAEA;IACE,SAAS,eAAe;IACxB;IACA;IACA,kBAAkB;;EAGpB"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/.types/index.ts","../src/webManifest/index.ts","../src/index.ts"],"mappings":";;;;KAEY;KACA;;;KCDP;KACA,WAAW;UAEC;EACf,KAAK;EACL;EACA;EACA;EACA;;UAGe;EACf;EACA,KAAK;EACL;EACA;IACE,KAAK;IACL;IACA;;;UAIa;EACf;EACA;EACA;EACA,UAAU;EACV;EACA,SAAS;EACT,SAAS;EACT,iBAAiB;EACjB,KAAK;EACL,QAAQ;EACR;EACA,OAAO;EACP;EACA;EASA;EACA,cAAc;EACd,YAAY;;;;iBC5BQ,OAAO,QAAQ,eAAe;KAqYxC,UAAU,KAAK,IAAI,QAAQ,OAAO,kBAAkB;KAEpD;EACV;EACA,oBAAoB;EACpB;IACE,sBAAsB;IACtB,WAAW;IACX,cAAc;IACd,kBAAkB;;EAEpB,iBAAiB;EACjB,sBAAsB;EACtB,YAAY;EACZ,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,cAAc;EACd,iBAAiB;EACjB,aAAa;EACb,YAAY;EACZ,aAAa;EACb,UAAU;EACV;IACE,oBAAoB,UAAU;IAC9B,SAAS,UAAU;IACnB,SAAS,UAAU;IACnB,UAAU,UAAU;IACpB,iBAAiB,UAAU;IAC3B,cAAc,UAAU;;EAE1B;IACE,aAAa;IACb,UAAU;IACV,KAAK,UAAU;IACf,cAAc,UAAU;IACxB,QAAQ,UAAU;IAClB,cAAc,UAAU;IACxB,YAAY,UAAU;;EAExB;EACA,iBAAiB,UAAU;EAC3B;IACE,UAAU,UAAU;IACpB,OAAO;IACP,MAAM,UAAU;;EAElB,QAAQ,UAAU;EAClB,QAAQ;EACR;IACE,SAAS,eAAe;IACxB;IACA,WAAW;IACX,kBAAkB;;EAEpB,YAAY;EACZ;IACE,KAAK;IACL,SAAS;IACT,KAAK,UAAU;IACf,QAAQ;;EAEV,YAAY;EACZ,YAAY;EACZ,OAAO;EACP;IACE,SAAS;IACT,MAAM"}