@fuzdev/fuz_ui 0.195.1 → 0.196.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.
@@ -16,7 +16,7 @@ with file-type coloring. Uses svelte-docinfo's file type predicates for module c
16
16
  import ImgOrSvg from './ImgOrSvg.svelte';
17
17
  import DeclarationLink from './DeclarationLink.svelte';
18
18
  import ModuleLink from './ModuleLink.svelte';
19
- import {url_github_file, repo_url_parse, url_well_known} from './package_helpers.js';
19
+ import {url_github_file, repo_url_parse} from './package_helpers.js';
20
20
  import {isTypescript, isSvelte, isCss, isJson} from 'svelte-docinfo/source.js';
21
21
 
22
22
  const {
@@ -139,21 +139,6 @@ with file-type coloring. Uses svelte-docinfo's file type predicates for module c
139
139
  <a class="chip" title="license" href={license_url}>{package_json.license}</a>
140
140
  </div>
141
141
  {/if}
142
- {#if library.homepage_url}
143
- <span class="title">data</span>
144
- <div class="content">
145
- <a
146
- class="chip"
147
- title="data"
148
- href={url_well_known(library.homepage_url, 'package.json')}>package.json</a
149
- >
150
- <a
151
- class="chip"
152
- title="data"
153
- href={url_well_known(library.homepage_url, 'library.json')}>library.json</a
154
- >
155
- </div>
156
- {/if}
157
142
  </section>
158
143
  </div>
159
144
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"LibraryDetail.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/LibraryDetail.svelte"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AAEpC,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAOhD,KAAK,gBAAgB,GAAI;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;CACvC,CAAC;AAwKH;;;;;;GAMG;AACH,QAAA,MAAM,aAAa,sDAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"LibraryDetail.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/LibraryDetail.svelte"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AAEpC,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAOhD,KAAK,gBAAgB,GAAI;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;CACvC,CAAC;AAiKH;;;;;;GAMG;AACH,QAAA,MAAM,aAAa,sDAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
@@ -20,7 +20,7 @@ export declare class Declaration {
20
20
  */
21
21
  module_path: string;
22
22
  name: string;
23
- kind: "function" | "class" | "type" | "variable" | "component" | "interface" | "enum" | "snippet" | "namespace";
23
+ kind: "function" | "class" | "type" | "variable" | "interface" | "enum" | "component" | "snippet" | "namespace";
24
24
  /**
25
25
  * GitHub source URL with line number.
26
26
  */
@@ -51,6 +51,7 @@ export declare class Declaration {
51
51
  rest?: boolean | undefined;
52
52
  description?: string | undefined;
53
53
  defaultValue?: string | undefined;
54
+ propertyDescriptions?: Record<string, string> | undefined;
54
55
  }[] | undefined;
55
56
  props: {
56
57
  name: string;
@@ -74,6 +75,7 @@ export declare class Declaration {
74
75
  rest?: boolean | undefined;
75
76
  description?: string | undefined;
76
77
  defaultValue?: string | undefined;
78
+ propertyDescriptions?: Record<string, string> | undefined;
77
79
  }[] | undefined;
78
80
  }[] | undefined;
79
81
  return_type: string | undefined;
@@ -108,6 +110,7 @@ export declare class Declaration {
108
110
  rest?: boolean | undefined;
109
111
  description?: string | undefined;
110
112
  defaultValue?: string | undefined;
113
+ propertyDescriptions?: Record<string, string> | undefined;
111
114
  }[] | undefined;
112
115
  overloads?: {
113
116
  typeSignature: string;
@@ -118,6 +121,7 @@ export declare class Declaration {
118
121
  rest?: boolean | undefined;
119
122
  description?: string | undefined;
120
123
  defaultValue?: string | undefined;
124
+ propertyDescriptions?: Record<string, string> | undefined;
121
125
  }[] | undefined;
122
126
  returnType?: string | undefined;
123
127
  genericParams?: {
@@ -182,6 +186,7 @@ export declare class Declaration {
182
186
  rest?: boolean | undefined;
183
187
  description?: string | undefined;
184
188
  defaultValue?: string | undefined;
189
+ propertyDescriptions?: Record<string, string> | undefined;
185
190
  }[] | undefined;
186
191
  overloads?: {
187
192
  typeSignature: string;
@@ -192,6 +197,7 @@ export declare class Declaration {
192
197
  rest?: boolean | undefined;
193
198
  description?: string | undefined;
194
199
  defaultValue?: string | undefined;
200
+ propertyDescriptions?: Record<string, string> | undefined;
195
201
  }[] | undefined;
196
202
  returnType?: string | undefined;
197
203
  genericParams?: {
@@ -245,6 +251,7 @@ export declare class Declaration {
245
251
  rest?: boolean | undefined;
246
252
  description?: string | undefined;
247
253
  defaultValue?: string | undefined;
254
+ propertyDescriptions?: Record<string, string> | undefined;
248
255
  }[] | undefined;
249
256
  returnType?: string | undefined;
250
257
  genericParams?: {
@@ -1 +1 @@
1
- {"version":3,"file":"declaration.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/declaration.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,oBAAoB,EAKpB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAa/C;;;;;;;;;;GAUG;AACH,qBAAa,WAAW;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAiB;IACxC,QAAQ,CAAC,gBAAgB,EAAE,oBAAoB,CAAiB;IAEhE,OAAO,wCAAiC;IAExC;;OAEG;IACH,WAAW,SAA8B;IAEzC,IAAI,SAAwC;IAC5C,IAAI,4GAAwC;IAE5C;;OAEG;IACH,UAAU,qBAQR;IAEF;;OAEG;IACH,OAAO,SAAoF;IAE3F;;OAEG;IACH,gBAAgB,SAQd;IAEF;;OAEG;IACH,YAAY,qBAIV;IAEF;;OAEG;IAGH,YAAY,SAKV;IAEF,cAAc,qBAAiD;IAC/D,WAAW,qBAA8C;IACzD,kBAAkB,qBAAqD;IACvE,UAAU;;;;;;;oBAAmF;IAC7F,KAAK;;;;;;;;;;;;;;;;;;;;;;;oBAAkF;IACvF,WAAW,qBAAgE;IAC3E,kBAAkB,qBAAuE;IACzF,cAAc;;;;QAAuD;IACrE,YAAY,gCAA6E;IACzF,gBAAgB,uBAAuE;IACvF,MAAM;;;QAAgD;IACtD,KAAK,qBAAyC;IAC9C,QAAQ,WAAkD;IAC1D,QAAQ,WAAiD;IACzD;;OAEG;IACH,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAA6E;IAEpF;;;OAGG;IACH,UAAU,uBAAuE;IAEjF;;;OAGG;IACH,gBAAgB,sBAAsE;IAEtF;;;OAGG;IACH,SAAS;;;;;;;;;;;;;;;;;;oBAAiF;IAE1F;;OAEG;IACH,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAA2C;IAEnD;;OAEG;IACH,OAAO,qCAA2C;IAElD,YAAY,UAAsC;IAClD,aAAa,UAAuC;IACpD,iBAAiB,UAAgC;IACjD,cAAc,UAA+D;IAC7E,SAAS,UAAqD;IAC9D,YAAY,UAA4C;gBAE5C,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,oBAAoB;CAIlE"}
1
+ {"version":3,"file":"declaration.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/declaration.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,oBAAoB,EAKpB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAc/C;;;;;;;;;;GAUG;AACH,qBAAa,WAAW;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAiB;IACxC,QAAQ,CAAC,gBAAgB,EAAE,oBAAoB,CAAiB;IAEhE,OAAO,wCAAiC;IAExC;;OAEG;IACH,WAAW,SAA8B;IAEzC,IAAI,SAAwC;IAC5C,IAAI,4GAAwC;IAE5C;;OAEG;IACH,UAAU,qBAQR;IAEF;;OAEG;IACH,OAAO,SAAoF;IAE3F;;OAEG;IACH,gBAAgB,SAQd;IAEF;;OAEG;IACH,YAAY,qBAIV;IAEF;;OAEG;IAGH,YAAY,SAKV;IAEF,cAAc,qBAAiD;IAC/D,WAAW,qBAA8C;IACzD,kBAAkB,qBAAqD;IACvE,UAAU;;;;;;;;oBAAmF;IAC7F,KAAK;;;;;;;;;;;;;;;;;;;;;;;;oBAAkF;IACvF,WAAW,qBAAgE;IAC3E,kBAAkB,qBAAuE;IACzF,cAAc;;;;QAAuD;IACrE,YAAY,gCAA6E;IACzF,gBAAgB,uBAAuE;IACvF,MAAM;;;QAAgD;IACtD,KAAK,qBAAyC;IAC9C,QAAQ,WAAkD;IAC1D,QAAQ,WAAiD;IACzD;;OAEG;IACH,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAA6E;IAEpF;;;OAGG;IACH,UAAU,uBAAuE;IAEjF;;;OAGG;IACH,gBAAgB,sBAAsE;IAEtF;;;OAGG;IACH,SAAS;;;;;;;;;;;;;;;;;;;oBAAiF;IAE1F;;OAEG;IACH,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAA2C;IAEnD;;OAEG;IACH,OAAO,qCAA2C;IAElD,YAAY,UAAsC;IAClD,aAAa,UAAuC;IACpD,iBAAiB,UAAgC;IACjD,cAAc,UAA+D;IAC7E,SAAS,UAAqD;IAC9D,YAAY,UAA4C;gBAE5C,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,oBAAoB;CAIlE"}
@@ -1,9 +1,10 @@
1
1
  import { generateImport, getDisplayName } from 'svelte-docinfo/declaration-helpers.js';
2
2
  import { url_github_file } from './package_helpers.js';
3
- // `library.json` is serialized with svelte-docinfo's `compactReplacer`, which
4
- // strips empty default arrays — so the on-disk data is the `*Input` shape
5
- // (defaulted arrays optional), not the parsed `*Json` shape. Typing it as
6
- // input makes TypeScript force a guard on every defaulted-array read.
3
+ // The `virtual:svelte-docinfo` module is serialized with svelte-docinfo's
4
+ // `compactReplacer`, which strips empty default arrays — so the runtime data
5
+ // is the `*Input` shape (defaulted arrays optional), not the parsed `*Json`
6
+ // shape. Typing it as input makes TypeScript force a guard on every
7
+ // defaulted-array read.
7
8
  //
8
9
  // Helper to access kind-specific fields on the discriminated union.
9
10
  // At runtime the field is present or undefined; TypeScript needs the cast.
@@ -91,82 +91,7 @@ export declare class Library {
91
91
  main?: string | undefined;
92
92
  exports?: string | Record<string, unknown> | null | undefined;
93
93
  };
94
- readonly source_json: {
95
- [x: string]: unknown;
96
- name: string;
97
- version: string;
98
- modules?: {
99
- [x: string]: unknown;
100
- path: string;
101
- declarations?: {
102
- [x: string]: unknown;
103
- name: string;
104
- kind: "function" | "class" | "type" | "json" | "variable" | "constructor" | "component" | "css";
105
- doc_comment?: string | undefined;
106
- type_signature?: string | undefined;
107
- modifiers?: string[] | undefined;
108
- source_line?: number | undefined;
109
- parameters?: {
110
- [x: string]: unknown;
111
- name: string;
112
- type: string;
113
- optional?: boolean | undefined;
114
- description?: string | undefined;
115
- default_value?: string | undefined;
116
- }[] | undefined;
117
- return_type?: string | undefined;
118
- return_description?: string | undefined;
119
- generic_params?: {
120
- [x: string]: unknown;
121
- name: string;
122
- constraint?: string | undefined;
123
- default_type?: string | undefined;
124
- }[] | undefined;
125
- examples?: string[] | undefined;
126
- deprecated_message?: string | undefined;
127
- see_also?: string[] | undefined;
128
- throws?: {
129
- [x: string]: unknown;
130
- description: string;
131
- type?: string | undefined;
132
- }[] | undefined;
133
- since?: string | undefined;
134
- mutates?: Record<string, string> | undefined;
135
- extends?: string[] | undefined;
136
- implements?: string[] | undefined;
137
- members?: Record<string, unknown>[] | undefined;
138
- properties?: Record<string, unknown>[] | undefined;
139
- props?: {
140
- [x: string]: unknown;
141
- name: string;
142
- type: string;
143
- optional?: boolean | undefined;
144
- description?: string | undefined;
145
- default_value?: string | undefined;
146
- bindable?: boolean | undefined;
147
- examples?: string[] | undefined;
148
- deprecated_message?: string | undefined;
149
- see_also?: string[] | undefined;
150
- throws?: {
151
- [x: string]: unknown;
152
- description: string;
153
- type?: string | undefined;
154
- }[] | undefined;
155
- since?: string | undefined;
156
- }[] | undefined;
157
- also_exported_from?: string[] | undefined;
158
- alias_of?: {
159
- module: string;
160
- name: string;
161
- kind: "function" | "class" | "type" | "json" | "variable" | "constructor" | "component" | "css";
162
- } | undefined;
163
- }[] | undefined;
164
- module_comment?: string | undefined;
165
- dependencies?: string[] | undefined;
166
- dependents?: string[] | undefined;
167
- star_exports?: string[] | undefined;
168
- }[] | undefined;
169
- };
94
+ readonly source_json: import("@fuzdev/fuz_util/library_json.js").SourceJson;
170
95
  readonly name: string;
171
96
  readonly repo_name: string;
172
97
  readonly repo_url: import("@fuzdev/fuz_util/url.js").Url;
@@ -1 +1 @@
1
- {"version":3,"file":"library.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/library.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,kCAAkC,CAAC;AAIlE,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAE1C,eAAO,MAAM,eAAe;;;;CAA4B,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,wBAAwB,GAAI,OAAO,OAAO,KAAG,MAGzD,CAAC;AAEF;;;;;;;;GAQG;AACH,qBAAa,OAAO;IACnB,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAiB;IAEnD;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAA4C;IACjE,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAA2C;IAE/D,QAAQ,CAAC,IAAI,SAAoC;IACjD,QAAQ,CAAC,SAAS,SAAyC;IAC3D,QAAQ,CAAC,QAAQ,wCAAwC;IACzD,QAAQ,CAAC,UAAU,gBAA0C;IAC7D,QAAQ,CAAC,YAAY,+CAA4C;IACjE,QAAQ,CAAC,QAAQ,+CAAwC;IACzD,QAAQ,CAAC,QAAQ,SAAwC;IACzD,QAAQ,CAAC,OAAO,+CAAuC;IACvD,QAAQ,CAAC,aAAa,+CAA6C;IACnE,QAAQ,CAAC,SAAS,UAAyC;IAE3D;;OAEG;IACH,QAAQ,CAAC,OAAO,gBAMd;IAEF;;OAEG;IACH,QAAQ,CAAC,OAAO,WAId;IAEF;;OAEG;IACH,QAAQ,CAAC,cAAc,WAErB;IAEF;;OAEG;IACH,QAAQ,CAAC,YAAY,gBAAmE;IAExF;;OAEG;IACH,QAAQ,CAAC,cAAc,sBAA2D;IAElF;;OAEG;IACH,QAAQ,CAAC,mBAAmB,2BAAgE;gBAEhF,YAAY,EAAE,WAAW,EAAE,UAAU,SAAK;IAKtD;;;OAGG;IACH,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI;IAW5D;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC;CAGtD"}
1
+ {"version":3,"file":"library.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/library.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,kCAAkC,CAAC;AAIlE,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAE1C,eAAO,MAAM,eAAe;;;;CAA4B,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,wBAAwB,GAAI,OAAO,OAAO,KAAG,MAGzD,CAAC;AAEF;;;;;;;;GAQG;AACH,qBAAa,OAAO;IACnB,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAiB;IAEnD;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAA4C;IACjE,QAAQ,CAAC,WAAW,wDAA2C;IAE/D,QAAQ,CAAC,IAAI,SAAoC;IACjD,QAAQ,CAAC,SAAS,SAAyC;IAC3D,QAAQ,CAAC,QAAQ,wCAAwC;IACzD,QAAQ,CAAC,UAAU,gBAA0C;IAC7D,QAAQ,CAAC,YAAY,+CAA4C;IACjE,QAAQ,CAAC,QAAQ,+CAAwC;IACzD,QAAQ,CAAC,QAAQ,SAAwC;IACzD,QAAQ,CAAC,OAAO,+CAAuC;IACvD,QAAQ,CAAC,aAAa,+CAA6C;IACnE,QAAQ,CAAC,SAAS,UAAyC;IAE3D;;OAEG;IACH,QAAQ,CAAC,OAAO,gBAMd;IAEF;;OAEG;IACH,QAAQ,CAAC,OAAO,WAId;IAEF;;OAEG;IACH,QAAQ,CAAC,cAAc,WAErB;IAEF;;OAEG;IACH,QAAQ,CAAC,YAAY,gBAAmE;IAExF;;OAEG;IACH,QAAQ,CAAC,cAAc,sBAA2D;IAElF;;OAEG;IACH,QAAQ,CAAC,mBAAmB,2BAAgE;gBAEhF,YAAY,EAAE,WAAW,EAAE,UAAU,SAAK;IAKtD;;;OAGG;IACH,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI;IAW5D;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC;CAGtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/module.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAGjD;;;;;;;;GAQG;AACH,qBAAa,MAAM;IAClB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAiB;IAI1C,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAiB;IAEtD;;;;;;;;;;OAUG;IACH,IAAI,SAAmC;IAEvC;;OAEG;IACH,WAAW,SAA8B;IAEzC,cAAc,qBAA4C;IAE1D;;OAEG;IACH,YAAY,gBAIV;IAEF;;OAEG;IACH,OAAO,SAAgE;IAEvE;;OAEG;IACH,UAAU,qBAIR;IAEF,gBAAgB,EAAE,OAAO,CAA8D;IAEvF,kBAAkB,EAAE,OAAO,CAAmC;IAE9D;;OAEG;IACH,YAAY,WAAiD;IAE7D;;OAEG;IACH,UAAU,WAA+C;gBAE7C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe;IAK1D;;OAEG;IACH,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;CAG9D"}
1
+ {"version":3,"file":"module.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/module.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAGjD;;;;;;;;GAQG;AACH,qBAAa,MAAM;IAClB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAiB;IAK1C,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAiB;IAEtD;;;;;;;;;;OAUG;IACH,IAAI,SAAmC;IAEvC;;OAEG;IACH,WAAW,SAA8B;IAEzC,cAAc,qBAA4C;IAE1D;;OAEG;IACH,YAAY,gBAIV;IAEF;;OAEG;IACH,OAAO,SAAgE;IAEvE;;OAEG;IACH,UAAU,qBAIR;IAEF,gBAAgB,EAAE,OAAO,CAA8D;IAEvF,kBAAkB,EAAE,OAAO,CAAmC;IAE9D;;OAEG;IACH,YAAY,WAAiD;IAE7D;;OAEG;IACH,UAAU,WAA+C;gBAE7C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe;IAK1D;;OAEG;IACH,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;CAG9D"}
@@ -11,9 +11,10 @@ import { url_github_file } from './package_helpers.js';
11
11
  */
12
12
  export class Module {
13
13
  library = $state.raw();
14
- // `library.json` is compacted (svelte-docinfo's `compactReplacer` strips empty
15
- // default arrays), so the on-disk data is the `*Input` shape. Typing it as
16
- // input makes TypeScript force guards on defaulted-array reads.
14
+ // The `virtual:svelte-docinfo` module is compacted (svelte-docinfo's
15
+ // `compactReplacer` strips empty default arrays), so the runtime data is the
16
+ // `*Input` shape. Typing it as input makes TypeScript force guards on
17
+ // defaulted-array reads.
17
18
  module_json = $state.raw();
18
19
  /**
19
20
  * Canonical module path — `src/lib/`-relative, with source extension
@@ -8,7 +8,6 @@
8
8
  * - `url_github_file` - GitHub file permalink
9
9
  * - `url_github_org` - GitHub organization page
10
10
  * - `url_npm_package` - npm package page
11
- * - `url_well_known` - .well-known metadata file
12
11
  *
13
12
  * Parsers:
14
13
  * - `repo_url_parse` - extract repo URL from `package.json` repository field
@@ -148,18 +147,4 @@ export declare const repo_name_parse: (name: string) => string;
148
147
  * ```
149
148
  */
150
149
  export declare const repo_url_parse: (repository: PackageJson["repository"]) => string | null;
151
- /**
152
- * Build .well-known URL for package metadata files.
153
- *
154
- * @param homepage_url - package homepage URL
155
- * @param filename - filename in .well-known directory
156
- * @returns full URL to the .well-known file
157
- *
158
- * @example
159
- * ```ts
160
- * url_well_known('https://fuz.dev', 'package.json')
161
- * // => 'https://fuz.dev/.well-known/package.json'
162
- * ```
163
- */
164
- export declare const url_well_known: (homepage_url: string, filename: string) => string;
165
150
  //# sourceMappingURL=package_helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"package_helpers.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/package_helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,kCAAkC,CAAC;AAElE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,EAAE,WAAW,MAAM,EAAE,OAAO,MAAM,KAAG,MAIpF,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,WAAW,MAAM,KAAG,MAAM,GAAG,IAE7E,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,KAAG,MAAM,GAAG,IAKjE,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,GAAI,cAAc,MAAM,KAAG,MACP,CAAC;AAEjD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,GAAI,cAAc,WAAW,KAAG,OAEhE,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,MAS9C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,cAAc,GAAI,YAAY,WAAW,CAAC,YAAY,CAAC,KAAG,MAAM,GAAG,IAK/E,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,GAAI,cAAc,MAAM,EAAE,UAAU,MAAM,KAAG,MAEvE,CAAC"}
1
+ {"version":3,"file":"package_helpers.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/package_helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,kCAAkC,CAAC;AAElE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,EAAE,WAAW,MAAM,EAAE,OAAO,MAAM,KAAG,MAIpF,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,WAAW,MAAM,KAAG,MAAM,GAAG,IAE7E,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,KAAG,MAAM,GAAG,IAKjE,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,GAAI,cAAc,MAAM,KAAG,MACP,CAAC;AAEjD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,GAAI,cAAc,WAAW,KAAG,OAEhE,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,MAS9C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,cAAc,GAAI,YAAY,WAAW,CAAC,YAAY,CAAC,KAAG,MAAM,GAAG,IAK/E,CAAC"}
@@ -8,7 +8,6 @@
8
8
  * - `url_github_file` - GitHub file permalink
9
9
  * - `url_github_org` - GitHub organization page
10
10
  * - `url_npm_package` - npm package page
11
- * - `url_well_known` - .well-known metadata file
12
11
  *
13
12
  * Parsers:
14
13
  * - `repo_url_parse` - extract repo URL from `package.json` repository field
@@ -20,7 +19,7 @@
20
19
  *
21
20
  * @module
22
21
  */
23
- import { ensure_end, strip_end, strip_start } from '@fuzdev/fuz_util/string.js';
22
+ import { strip_end, strip_start } from '@fuzdev/fuz_util/string.js';
24
23
  /**
25
24
  * Build GitHub file URL for a repository.
26
25
  *
@@ -178,19 +177,3 @@ export const repo_url_parse = (repository) => {
178
177
  return null;
179
178
  return strip_end(strip_start(strip_end(url, '.git'), 'git+'), '/');
180
179
  };
181
- /**
182
- * Build .well-known URL for package metadata files.
183
- *
184
- * @param homepage_url - package homepage URL
185
- * @param filename - filename in .well-known directory
186
- * @returns full URL to the .well-known file
187
- *
188
- * @example
189
- * ```ts
190
- * url_well_known('https://fuz.dev', 'package.json')
191
- * // => 'https://fuz.dev/.well-known/package.json'
192
- * ```
193
- */
194
- export const url_well_known = (homepage_url, filename) => {
195
- return `${ensure_end(homepage_url, '/')}.well-known/${filename}`;
196
- };
@@ -37,8 +37,8 @@
37
37
  * tsdoc_see_to_mdz('[svelte-docinfo](https://github.com/ryanatkn/svelte-docinfo) for the analysis library')
38
38
  * // → '[svelte-docinfo](https://github.com/ryanatkn/svelte-docinfo) for the analysis library'
39
39
  *
40
- * tsdoc_see_to_mdz('library_gen.ts for Gro-specific integration')
41
- * // → '`library_gen.ts` for Gro-specific integration'
40
+ * tsdoc_see_to_mdz('tome.ts for the documentation system')
41
+ * // → '`tome.ts` for the documentation system'
42
42
  * ```
43
43
  */
44
44
  export declare const tsdoc_see_to_mdz: (content: string) => string;
package/dist/tsdoc_mdz.js CHANGED
@@ -40,8 +40,8 @@ const format_reference = (ref) => (mdz_is_url(ref) ? ref : `\`${ref}\``);
40
40
  * tsdoc_see_to_mdz('[svelte-docinfo](https://github.com/ryanatkn/svelte-docinfo) for the analysis library')
41
41
  * // → '[svelte-docinfo](https://github.com/ryanatkn/svelte-docinfo) for the analysis library'
42
42
  *
43
- * tsdoc_see_to_mdz('library_gen.ts for Gro-specific integration')
44
- * // → '`library_gen.ts` for Gro-specific integration'
43
+ * tsdoc_see_to_mdz('tome.ts for the documentation system')
44
+ * // → '`tome.ts` for the documentation system'
45
45
  * ```
46
46
  */
47
47
  export const tsdoc_see_to_mdz = (content) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fuzdev/fuz_ui",
3
- "version": "0.195.1",
3
+ "version": "0.196.0",
4
4
  "description": "Svelte UI library",
5
5
  "tagline": "friendly user zystem",
6
6
  "glyph": "🧶",
@@ -83,8 +83,8 @@
83
83
  "@fuzdev/blake3_wasm": "^0.1.0",
84
84
  "@fuzdev/fuz_code": "^0.45.1",
85
85
  "@fuzdev/fuz_css": "^0.60.0",
86
- "@fuzdev/fuz_util": "^0.61.1",
87
- "@fuzdev/gro": "^0.199.1",
86
+ "@fuzdev/fuz_util": "^0.63.0",
87
+ "@fuzdev/gro": "^0.200.0",
88
88
  "@jridgewell/trace-mapping": "^0.3.31",
89
89
  "@ryanatkn/eslint-config": "^0.12.1",
90
90
  "@sveltejs/acorn-typescript": "^1.0.9",
@@ -104,7 +104,7 @@
104
104
  "prettier-plugin-svelte": "^3.5.1",
105
105
  "svelte": "^5.55.10",
106
106
  "svelte-check": "^4.4.8",
107
- "svelte-docinfo": "^0.1.0",
107
+ "svelte-docinfo": "^0.2.0",
108
108
  "svelte2tsx": "^0.7.55",
109
109
  "tslib": "^2.8.1",
110
110
  "typescript": "^5.9.3",
@@ -11,10 +11,11 @@ import {generateImport, getDisplayName} from 'svelte-docinfo/declaration-helpers
11
11
  import type {Module} from './module.svelte.js';
12
12
  import {url_github_file} from './package_helpers.js';
13
13
 
14
- // `library.json` is serialized with svelte-docinfo's `compactReplacer`, which
15
- // strips empty default arrays — so the on-disk data is the `*Input` shape
16
- // (defaulted arrays optional), not the parsed `*Json` shape. Typing it as
17
- // input makes TypeScript force a guard on every defaulted-array read.
14
+ // The `virtual:svelte-docinfo` module is serialized with svelte-docinfo's
15
+ // `compactReplacer`, which strips empty default arrays — so the runtime data
16
+ // is the `*Input` shape (defaulted arrays optional), not the parsed `*Json`
17
+ // shape. Typing it as input makes TypeScript force a guard on every
18
+ // defaulted-array read.
18
19
  //
19
20
  // Helper to access kind-specific fields on the discriminated union.
20
21
  // At runtime the field is present or undefined; TypeScript needs the cast.
@@ -15,9 +15,10 @@ import {url_github_file} from './package_helpers.js';
15
15
  */
16
16
  export class Module {
17
17
  readonly library: Library = $state.raw()!;
18
- // `library.json` is compacted (svelte-docinfo's `compactReplacer` strips empty
19
- // default arrays), so the on-disk data is the `*Input` shape. Typing it as
20
- // input makes TypeScript force guards on defaulted-array reads.
18
+ // The `virtual:svelte-docinfo` module is compacted (svelte-docinfo's
19
+ // `compactReplacer` strips empty default arrays), so the runtime data is the
20
+ // `*Input` shape. Typing it as input makes TypeScript force guards on
21
+ // defaulted-array reads.
21
22
  readonly module_json: ModuleJsonInput = $state.raw()!;
22
23
 
23
24
  /**
@@ -8,7 +8,6 @@
8
8
  * - `url_github_file` - GitHub file permalink
9
9
  * - `url_github_org` - GitHub organization page
10
10
  * - `url_npm_package` - npm package page
11
- * - `url_well_known` - .well-known metadata file
12
11
  *
13
12
  * Parsers:
14
13
  * - `repo_url_parse` - extract repo URL from `package.json` repository field
@@ -21,7 +20,7 @@
21
20
  * @module
22
21
  */
23
22
 
24
- import {ensure_end, strip_end, strip_start} from '@fuzdev/fuz_util/string.js';
23
+ import {strip_end, strip_start} from '@fuzdev/fuz_util/string.js';
25
24
  import type {PackageJson} from '@fuzdev/fuz_util/package_json.js';
26
25
 
27
26
  /**
@@ -185,20 +184,3 @@ export const repo_url_parse = (repository: PackageJson['repository']): string |
185
184
  if (!url) return null;
186
185
  return strip_end(strip_start(strip_end(url, '.git'), 'git+'), '/');
187
186
  };
188
-
189
- /**
190
- * Build .well-known URL for package metadata files.
191
- *
192
- * @param homepage_url - package homepage URL
193
- * @param filename - filename in .well-known directory
194
- * @returns full URL to the .well-known file
195
- *
196
- * @example
197
- * ```ts
198
- * url_well_known('https://fuz.dev', 'package.json')
199
- * // => 'https://fuz.dev/.well-known/package.json'
200
- * ```
201
- */
202
- export const url_well_known = (homepage_url: string, filename: string): string => {
203
- return `${ensure_end(homepage_url, '/')}.well-known/${filename}`;
204
- };
@@ -43,8 +43,8 @@ const format_reference = (ref: string): string => (mdz_is_url(ref) ? ref : `\`${
43
43
  * tsdoc_see_to_mdz('[svelte-docinfo](https://github.com/ryanatkn/svelte-docinfo) for the analysis library')
44
44
  * // → '[svelte-docinfo](https://github.com/ryanatkn/svelte-docinfo) for the analysis library'
45
45
  *
46
- * tsdoc_see_to_mdz('library_gen.ts for Gro-specific integration')
47
- * // → '`library_gen.ts` for Gro-specific integration'
46
+ * tsdoc_see_to_mdz('tome.ts for the documentation system')
47
+ * // → '`tome.ts` for the documentation system'
48
48
  * ```
49
49
  */
50
50
  export const tsdoc_see_to_mdz = (content: string): string => {
@@ -1,104 +0,0 @@
1
- /**
2
- * Gro-specific library metadata generation.
3
- *
4
- * This module provides Gro integration for library generation. It uses svelte-docinfo's
5
- * pure analysis (`analyze`) and wraps the results with fuz_ui's opinionated
6
- * LibraryJson format (GitHub/npm metadata).
7
- *
8
- * For build-tool agnostic usage, see `svelte-docinfo`.
9
- *
10
- * @see svelte-docinfo/analyze.js for the generic analysis entry point
11
- * @see svelte-docinfo/postprocess.js for post-processing helpers
12
- * @see library_output.js for output file generation
13
- *
14
- * @module
15
- */
16
- import type { Gen } from '@fuzdev/gro';
17
- import type { Disknode } from '@fuzdev/gro/disknode.js';
18
- import { type ModuleSourceOptions, type OnDuplicatesCallback, type SourceFileInfo, type SourceOptionsDefaults } from 'svelte-docinfo';
19
- /** Options for Gro library generation. */
20
- export interface LibraryGenOptions {
21
- /**
22
- * Module source options for filtering and path extraction.
23
- *
24
- * Can provide full `ModuleSourceOptions` or partial options that will be
25
- * merged with defaults. The `project_root` is automatically set to
26
- * `process.cwd()` if not provided.
27
- */
28
- source?: ModuleSourceOptions | Partial<SourceOptionsDefaults>;
29
- /**
30
- * Callback invoked when duplicate declaration names are found.
31
- *
32
- * Consumers decide how to handle duplicates: throw, warn, or ignore.
33
- * Use `throwOnDuplicates` for strict flat namespace enforcement.
34
- *
35
- * @example
36
- * ```ts
37
- * // Throw on duplicates (strict flat namespace)
38
- * library_gen({ on_duplicates: throwOnDuplicates });
39
- *
40
- * // Warn but continue
41
- * library_gen({
42
- * on_duplicates: (dupes, log) => {
43
- * for (const [name, locs] of dupes) {
44
- * log.warn(`Duplicate: ${name} in ${locs.map(l => l.module).join(', ')}`);
45
- * }
46
- * }
47
- * });
48
- * ```
49
- */
50
- on_duplicates?: OnDuplicatesCallback;
51
- }
52
- /**
53
- * Convert Gro's `Disknode` to the build-tool agnostic `SourceFileInfo` interface.
54
- *
55
- * Use this when you want to analyze files using Gro's filer directly. The
56
- * `dependencies` field is populated from the filer's forward-edge graph — the
57
- * svelte-docinfo session honors it as pre-resolved input and skips its own
58
- * lex+resolve pass for these files, avoiding duplicate work the filer already did.
59
- *
60
- * Reverse edges (`dependents`) are not threaded through — svelte-docinfo
61
- * computes them internally from the forward edges of the owned set.
62
- *
63
- * @throws Error if disknode has no content (should be loaded by Gro filer)
64
- */
65
- export declare const source_file_from_disknode: (disknode: Disknode) => SourceFileInfo;
66
- /**
67
- * Collect source files from Gro disknodes, filtering BEFORE conversion to `SourceFileInfo`.
68
- *
69
- * This avoids errors from files outside source directories (like test fixtures that may
70
- * have malformed paths or missing content). The filtering uses `isSource` which
71
- * checks `source_paths` to only include files in configured source directories.
72
- *
73
- * @param disknodes - iterator of Gro disknodes from filer
74
- * @param options - module source options for filtering
75
- * @param log - optional logger for status messages
76
- */
77
- export declare const library_collect_source_files_from_disknodes: (disknodes: Iterable<Disknode>, options: ModuleSourceOptions, log?: {
78
- info: (...args: Array<unknown>) => void;
79
- warn: (...args: Array<unknown>) => void;
80
- }) => Array<SourceFileInfo>;
81
- /**
82
- * Creates a `Gen` object for generating library metadata with full TypeScript analysis.
83
- *
84
- * This is the Gro-specific entry point. It handles:
85
- * - Reading files from Gro's filer
86
- * - Loading package.json via Gro utilities
87
- * - Analyzing source with svelte-docinfo (pure analysis)
88
- * - Wrapping with LibraryJson (GitHub/npm metadata)
89
- * - Returning output in Gro's Gen format
90
- *
91
- * For build-tool agnostic usage, use `analyze` directly.
92
- *
93
- * Usage in a `.gen.ts` file:
94
- *
95
- * ```ts
96
- * import {library_gen} from './library_gen.js';
97
- *
98
- * export const gen = library_gen();
99
- * ```
100
- *
101
- * @param options - optional generation options
102
- */
103
- export declare const library_gen: (options?: LibraryGenOptions) => Gen;
104
- //# sourceMappingURL=library_gen.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"library_gen.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/library_gen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,aAAa,CAAC;AAErC,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAGN,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,MAAM,gBAAgB,CAAC;AAMxB,0CAA0C;AAC1C,MAAM,WAAW,iBAAiB;IACjC;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC9D;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACrC;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,yBAAyB,GAAI,UAAU,QAAQ,KAAG,cAW9D,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,2CAA2C,GACvD,WAAW,QAAQ,CAAC,QAAQ,CAAC,EAC7B,SAAS,mBAAmB,EAC5B,MAAM;IAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;CAAC,KACtF,KAAK,CAAC,cAAc,CA+BtB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,iBAAiB,KAAG,GAwDzD,CAAC"}