@yamlresume/core 0.11.2 → 0.12.1

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.ts CHANGED
@@ -178,6 +178,10 @@ declare const JapaneseCountryNames: Record<Country, string>;
178
178
  * Represents all possible countries & regions with their corresponding German names.
179
179
  */
180
180
  declare const GermanCountryNames: Record<Country, string>;
181
+ /**
182
+ * Represents all possible countries & regions with their corresponding Indonesian names.
183
+ */
184
+ declare const IndonesianCountryNames: Record<Country, string>;
181
185
 
182
186
  /**
183
187
  * MIT License
@@ -223,7 +227,20 @@ declare const HTML_TEMPLATE_OPTIONS: readonly ["calm", "vscode"];
223
227
  /** The options for the latex layout fontspec numbers style. */
224
228
  declare const LATEX_FONTSPEC_NUMBERS_OPTIONS: readonly ["Lining", "OldStyle", "Auto"];
225
229
  /** Defines identifiers for the available latex layout templates. */
226
- declare const LATEX_TEMPLATE_OPTIONS: readonly ["moderncv-banking", "moderncv-casual", "moderncv-classic"];
230
+ declare const LATEX_TEMPLATE_OPTIONS: readonly ["jake", "moderncv-banking", "moderncv-casual", "moderncv-classic"];
231
+ /**
232
+ * Defines line spacing options (shared across all engines).
233
+ *
234
+ * These semantic values follow Tailwind CSS's leading scale exactly:
235
+ * - tight: Compact spacing for fitting more content
236
+ * - snug: Slightly more space than tight
237
+ * - normal: Balanced readability (default)
238
+ * - relaxed: Comfortable reading with more breathing room
239
+ * - loose: Very spacious layout (generally not recommended)
240
+ *
241
+ * @see {@link https://tailwindcss.com/docs/line-height}
242
+ */
243
+ declare const LINE_SPACING_OPTIONS: readonly ["tight", "snug", "normal", "relaxed", "loose"];
227
244
  /**
228
245
  * Defines common world languages.
229
246
  *
@@ -243,7 +260,7 @@ declare const LEVEL_OPTIONS: readonly ["Novice", "Beginner", "Intermediate", "Ad
243
260
  *
244
261
  * @see {@link https://en.wikipedia.org/wiki/IETF_language_tag}
245
262
  */
246
- declare const LOCALE_LANGUAGE_OPTIONS: readonly ["en", "zh-hans", "zh-hant-hk", "zh-hant-tw", "es", "fr", "no", "nl", "ja", "de"];
263
+ declare const LOCALE_LANGUAGE_OPTIONS: readonly ["en", "zh-hans", "zh-hant-hk", "zh-hant-tw", "es", "fr", "no", "nl", "ja", "de", "id"];
247
264
  /**
248
265
  * Defines network options.
249
266
  */
@@ -337,6 +354,10 @@ type Level = (typeof LEVEL_OPTIONS)[number];
337
354
  * A union type for all possible latex paper size options.
338
355
  */
339
356
  type LatexPaperSize = (typeof LATEX_PAPER_SIZE_OPTIONS)[number];
357
+ /**
358
+ * A union type for all possible line spacing options.
359
+ */
360
+ type LineSpacing = (typeof LINE_SPACING_OPTIONS)[number];
340
361
  /**
341
362
  * A union type for all possible locale languages.
342
363
  *
@@ -1089,6 +1110,8 @@ type HtmlTypography = {
1089
1110
  fontSize?: HtmlFontSize;
1090
1111
  /** A comma-separated list of font families to use. */
1091
1112
  fontFamily?: string;
1113
+ /** Line spacing for the document (e.g., "tight", "normal", "relaxed"). */
1114
+ lineSpacing?: LineSpacing;
1092
1115
  };
1093
1116
  /**
1094
1117
  * Defines advanced HTML configuration options.
@@ -1162,6 +1185,8 @@ type LatexTypography = {
1162
1185
  fontSize?: LatexFontSize;
1163
1186
  /** A comma-separated list of font families to use. */
1164
1187
  fontFamily?: string;
1188
+ /** Line spacing for the document (e.g., "tight", "normal", "relaxed"). */
1189
+ lineSpacing?: LineSpacing;
1165
1190
  /** Link styling settings. */
1166
1191
  links?: Links;
1167
1192
  };
@@ -1321,7 +1346,7 @@ declare function getLatexTemplateDetail(template: LatexTemplate): {
1321
1346
  engine: LayoutEngine;
1322
1347
  name: string;
1323
1348
  description: string;
1324
- id: "moderncv-banking" | "moderncv-casual" | "moderncv-classic";
1349
+ id: "jake" | "moderncv-banking" | "moderncv-casual" | "moderncv-classic";
1325
1350
  };
1326
1351
  /**
1327
1352
  * Get the detail of the given HTML template.
@@ -1357,7 +1382,7 @@ declare const MARGIN_OPTIONS: string[];
1357
1382
  * @returns The language code and name of the given locale language.
1358
1383
  */
1359
1384
  declare function getLocaleLanguageDetail(localeLanguage: LocaleLanguage): {
1360
- localeLanguage: "en" | "zh-hans" | "zh-hant-hk" | "zh-hant-tw" | "es" | "fr" | "no" | "nl" | "ja" | "de";
1385
+ localeLanguage: "en" | "zh-hans" | "zh-hant-hk" | "zh-hant-tw" | "es" | "fr" | "no" | "nl" | "ja" | "de" | "id";
1361
1386
  name: string;
1362
1387
  };
1363
1388
  /** Default HTML layout configuration. */
@@ -2066,6 +2091,300 @@ declare class HtmlRenderer extends Renderer {
2066
2091
  render(): string;
2067
2092
  }
2068
2093
 
2094
+ /**
2095
+ * MIT License
2096
+ *
2097
+ * Copyright (c) 2023–Present PPResume (https://ppresume.com)
2098
+ *
2099
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
2100
+ * of this software and associated documentation files (the "Software"), to
2101
+ * deal in the Software without restriction, including without limitation the
2102
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
2103
+ * sell copies of the Software, and to permit persons to whom the Software is
2104
+ * furnished to do so, subject to the following conditions:
2105
+ *
2106
+ * The above copyright notice and this permission notice shall be included in
2107
+ * all copies or substantial portions of the Software.
2108
+ *
2109
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2110
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2111
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
2112
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2113
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
2114
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
2115
+ * IN THE SOFTWARE.
2116
+ */
2117
+
2118
+ /**
2119
+ * Base class for LaTeX renderers.
2120
+ */
2121
+ declare abstract class LatexRenderer extends Renderer {
2122
+ /**
2123
+ * Check if the resume is a CJK resume.
2124
+ */
2125
+ protected isCJKResume(): boolean;
2126
+ /**
2127
+ * Render the LaTeX packages for Spanish support and other languages
2128
+ */
2129
+ protected renderBabelConfig(): string;
2130
+ /**
2131
+ * Render the fontspec configuration.
2132
+ */
2133
+ protected renderFontspecConfig(): string;
2134
+ /**
2135
+ * Render the LaTeX packages for CJK support
2136
+ */
2137
+ protected renderCTeXConfig(): string;
2138
+ /**
2139
+ * Render the page layout/margins using the geometry package.
2140
+ *
2141
+ * @returns The LaTeX code for page layout/margins configuration
2142
+ */
2143
+ protected renderGeometry(): string;
2144
+ /**
2145
+ * Render the line spacing configuration using the setspace package.
2146
+ *
2147
+ * @returns The LaTeX code for line spacing configuration
2148
+ */
2149
+ protected renderLineSpacingConfig(): string;
2150
+ /**
2151
+ * Render URL configuration to use normal text instead of monospace.
2152
+ *
2153
+ * @returns The LaTeX code for URL configuration
2154
+ */
2155
+ protected renderUrlConfig(): string;
2156
+ /**
2157
+ * Get FontAwesome icon for a network.
2158
+ */
2159
+ protected getFaIcon(network: string): string;
2160
+ /**
2161
+ * Whether to show icons in the rendered LaTeX.
2162
+ */
2163
+ protected get showIcons(): boolean;
2164
+ /**
2165
+ * Render a string with an icon.
2166
+ *
2167
+ * It should respect the `showIcons` option as well.
2168
+ *
2169
+ * @param icon The icon to use
2170
+ * @param info The string to use
2171
+ * @returns The string with an icon
2172
+ */
2173
+ protected iconedString(icon: string, info: string): string;
2174
+ }
2175
+
2176
+ /**
2177
+ * MIT License
2178
+ *
2179
+ * Copyright (c) 2023–Present PPResume (https://ppresume.com)
2180
+ *
2181
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
2182
+ * of this software and associated documentation files (the "Software"), to
2183
+ * deal in the Software without restriction, including without limitation the
2184
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
2185
+ * sell copies of the Software, and to permit persons to whom the Software is
2186
+ * furnished to do so, subject to the following conditions:
2187
+ *
2188
+ * The above copyright notice and this permission notice shall be included in
2189
+ * all copies or substantial portions of the Software.
2190
+ *
2191
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2192
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2193
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
2194
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2195
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
2196
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
2197
+ * IN THE SOFTWARE.
2198
+ */
2199
+
2200
+ /**
2201
+ * Renderer for Jake's Resume template.
2202
+ *
2203
+ * This template is based on the popular "Jake's Resume" LaTeX template
2204
+ * originally created by Jake Gutierrez and widely used on Overleaf.
2205
+ *
2206
+ * It uses the `article` document class with custom commands for resume
2207
+ * formatting, producing a clean, ATS-friendly layout with:
2208
+ * - Centered header with contact info separated by `$|$`
2209
+ * - Section headings with `\titlerule` dividers
2210
+ * - `tabular*` based subheadings for aligned date ranges
2211
+ * - Compact itemize lists for bullet points
2212
+ *
2213
+ * @see {@link https://www.overleaf.com/latex/templates/jakes-resume/syzfjbzwjncs}
2214
+ * @see {@link https://github.com/jakeryang/resume}
2215
+ */
2216
+ declare class JakeRenderer extends LatexRenderer {
2217
+ private padding;
2218
+ private separator;
2219
+ /**
2220
+ * Constructor for the JakeRenderer class.
2221
+ *
2222
+ * @param resume - The resume object
2223
+ * @param layoutIndex - The index of the selected layout to use.
2224
+ * @param summaryParser - The summary parser used to parse summary field in
2225
+ * various sections.
2226
+ */
2227
+ constructor(resume: Resume, layoutIndex: number, summaryParser?: Parser);
2228
+ /**
2229
+ * Render the document class configuration.
2230
+ *
2231
+ * Uses the `article` document class, respecting user-configured paper size
2232
+ * and font size, with Jake's defaults of letterpaper and 11pt.
2233
+ */
2234
+ private renderDocumentClassConfig;
2235
+ /**
2236
+ * Render the fontawesome package with fallback from v7 to v5.
2237
+ *
2238
+ * Uses \IfFileExists to detect if fontawesome7 is available on the user's
2239
+ * system, falling back to fontawesome5 if not. Returns an empty string if
2240
+ * showIcons is false.
2241
+ *
2242
+ * @returns The LaTeX code for loading fontawesome package, or empty string
2243
+ * if icons are disabled
2244
+ */
2245
+ private renderFontawesome;
2246
+ /**
2247
+ * Render the LaTeX packages required by Jake's Resume template.
2248
+ */
2249
+ private renderPackages;
2250
+ /**
2251
+ * Render the page layout/margin configuration.
2252
+ */
2253
+ private renderPageNumbersConfig;
2254
+ /**
2255
+ * Render the section formatting configuration.
2256
+ */
2257
+ private renderSectionFormatting;
2258
+ /**
2259
+ * Render the custom resume commands used by Jake's template.
2260
+ */
2261
+ private renderCustomCommands;
2262
+ /**
2263
+ * Render PDF metadata using hyperref.
2264
+ */
2265
+ private renderPdfMetadata;
2266
+ /**
2267
+ * Render the preamble for the resume.
2268
+ *
2269
+ * @returns The LaTeX code for the preamble
2270
+ */
2271
+ renderPreamble(): string;
2272
+ /**
2273
+ * Render the basics section (centered header).
2274
+ *
2275
+ * @returns The LaTeX code for the heading
2276
+ */
2277
+ renderBasics(): string;
2278
+ /**
2279
+ * Render the location (full address) as the first line of contact info.
2280
+ *
2281
+ * @returns The LaTeX code for the location line
2282
+ */
2283
+ renderLocation(): string;
2284
+ /**
2285
+ * Render homepage and profiles as the third line of contact info.
2286
+ *
2287
+ * @returns The LaTeX code for the homepage/profiles line
2288
+ */
2289
+ renderProfiles(): string;
2290
+ /**
2291
+ * Render the summary section.
2292
+ *
2293
+ * @returns The LaTeX code for the summary section
2294
+ */
2295
+ renderSummary(): string;
2296
+ /**
2297
+ * Render the education section.
2298
+ *
2299
+ * @returns The LaTeX code for the education section
2300
+ */
2301
+ renderEducation(): string;
2302
+ /**
2303
+ * Render the work section.
2304
+ *
2305
+ * @returns The LaTeX code for the work section
2306
+ */
2307
+ renderWork(): string;
2308
+ /**
2309
+ * Render the languages section.
2310
+ *
2311
+ * Uses Jake's Technical Skills pattern with label: value format.
2312
+ *
2313
+ * @returns The LaTeX code for the languages section
2314
+ */
2315
+ renderLanguages(): string;
2316
+ /**
2317
+ * Render the skills section.
2318
+ *
2319
+ * Uses Jake's Technical Skills pattern with label: keywords format.
2320
+ *
2321
+ * @returns The LaTeX code for the skills section
2322
+ */
2323
+ renderSkills(): string;
2324
+ /**
2325
+ * Render the awards section.
2326
+ *
2327
+ * @returns The LaTeX code for the awards section
2328
+ */
2329
+ renderAwards(): string;
2330
+ /**
2331
+ * Render the certificates section.
2332
+ *
2333
+ * @returns The LaTeX code for the certificates section
2334
+ */
2335
+ renderCertificates(): string;
2336
+ /**
2337
+ * Render the publications section.
2338
+ *
2339
+ * @returns The LaTeX code for the publications section
2340
+ */
2341
+ renderPublications(): string;
2342
+ /**
2343
+ * Render the references section.
2344
+ *
2345
+ * @returns The LaTeX code for the references section
2346
+ */
2347
+ renderReferences(): string;
2348
+ /**
2349
+ * Render the projects section.
2350
+ *
2351
+ * Uses the `\resumeSubheading` command for consistent layout with other
2352
+ * sections like volunteer.
2353
+ *
2354
+ * @returns The LaTeX code for the projects section
2355
+ */
2356
+ renderProjects(): string;
2357
+ /**
2358
+ * Render the interests section.
2359
+ *
2360
+ * Uses Jake's Technical Skills pattern.
2361
+ *
2362
+ * @returns The LaTeX code for the interests section
2363
+ */
2364
+ renderInterests(): string;
2365
+ /**
2366
+ * Render the volunteer section.
2367
+ *
2368
+ * @returns The LaTeX code for the volunteer section
2369
+ */
2370
+ renderVolunteer(): string;
2371
+ /**
2372
+ * Render the resume.
2373
+ *
2374
+ * @returns The LaTeX code for the resume
2375
+ */
2376
+ render(): string;
2377
+ /**
2378
+ * Generate the LaTeX code for the resume.
2379
+ *
2380
+ * Assembles the preamble, header (basics + location + profiles in a
2381
+ * centered block), and ordered sections into a complete LaTeX document.
2382
+ *
2383
+ * @returns The LaTeX code for the resume
2384
+ */
2385
+ private generateTeX;
2386
+ }
2387
+
2069
2388
  /**
2070
2389
  * The style options for the moderncv document class.
2071
2390
  *
@@ -2110,7 +2429,7 @@ type ModerncvStyle = (typeof MODERNCV_STYLE_OPTIONS)[number];
2110
2429
  /**
2111
2430
  * Base class for moderncv renderers.
2112
2431
  */
2113
- declare class ModerncvBase extends Renderer {
2432
+ declare class ModerncvBase extends LatexRenderer {
2114
2433
  style: ModerncvStyle;
2115
2434
  /**
2116
2435
  * Constructor for the ModerncvBase class.
@@ -2122,14 +2441,6 @@ declare class ModerncvBase extends Renderer {
2122
2441
  * various sections.
2123
2442
  */
2124
2443
  constructor(resume: Resume, style: ModerncvStyle, layoutIndex: number, summaryParser: Parser);
2125
- /**
2126
- * Whether to show icons in the rendered LaTeX.
2127
- */
2128
- private get showIcons();
2129
- /**
2130
- * Check if the resume is a CJK resume.
2131
- */
2132
- private isCJKResume;
2133
2444
  /**
2134
2445
  * Render the document class configuration.
2135
2446
  */
@@ -2143,21 +2454,29 @@ declare class ModerncvBase extends Renderer {
2143
2454
  */
2144
2455
  private renderModerncvConfig;
2145
2456
  /**
2146
- * Render the layout configuration.
2147
- */
2148
- private renderLayoutConfig;
2149
- /**
2150
- * Render the LaTeX packages for CJK support
2151
- */
2152
- private renderCTeXConfig;
2153
- /**
2154
- * Render the LaTeX packages for Spanish support
2457
+ * Render the page numbers configuration.
2155
2458
  */
2156
- private renderBabelConfig;
2459
+ private renderPageNumbersConfig;
2157
2460
  /**
2158
- * Render the LaTeX packages for Spanish support
2461
+ * Render a redefinition of \httplink and \httpslink to support full URLs.
2462
+ *
2463
+ * The original moderncv \httplink and \httpslink macros always prepend
2464
+ * the protocol (http:// or https://) to the URL. This causes issues when
2465
+ * the URL already contains a protocol (e.g., https://example.com), resulting
2466
+ * in malformed URLs like https://https://example.com.
2467
+ *
2468
+ * This redefinition checks if the URL already contains "://" and if so,
2469
+ * uses the URL directly without prepending the protocol.
2470
+ *
2471
+ * Note: We use \str_set:Nx (with x-expansion) to fully expand the argument
2472
+ * before converting to a string. This is necessary because moderncv passes
2473
+ * the URL via a macro (\@homepage), and without expansion we would be
2474
+ * checking the literal string "\@homepage" instead of its value.
2475
+ * We then use \str_if_in:NnTF to check for "://" in the expanded URL.
2476
+ *
2477
+ * @returns The LaTeX code for the httplink/httpslink redefinition
2159
2478
  */
2160
- private renderFontspecConfig;
2479
+ private renderHomepageRedefinition;
2161
2480
  /**
2162
2481
  * Render the preamble for the resume.
2163
2482
  *
@@ -2176,10 +2495,6 @@ declare class ModerncvBase extends Renderer {
2176
2495
  * @returns The LaTeX code for the location section
2177
2496
  */
2178
2497
  renderLocation(): string;
2179
- /**
2180
- * Get FontAwesome icon for a network.
2181
- */
2182
- private getFaIcon;
2183
2498
  /**
2184
2499
  * Render the profiles section of the resume.
2185
2500
  *
@@ -2557,6 +2872,7 @@ declare const ResumeSchema: z.ZodObject<{
2557
2872
  typography: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2558
2873
  fontSize: z.ZodOptional<z.ZodNullable<z.ZodType<"14px" | "15px" | "16px" | "17px" | "18px" | "19px" | "20px", unknown, z.core.$ZodTypeInternals<"14px" | "15px" | "16px" | "17px" | "18px" | "19px" | "20px", unknown>>>>;
2559
2874
  fontFamily: z.ZodOptional<z.ZodNullable<z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>>>;
2875
+ lineSpacing: z.ZodOptional<z.ZodNullable<z.ZodType<"tight" | "snug" | "normal" | "relaxed" | "loose", unknown, z.core.$ZodTypeInternals<"tight" | "snug" | "normal" | "relaxed" | "loose", unknown>>>>;
2560
2876
  }, z.core.$strip>>>;
2561
2877
  template: z.ZodOptional<z.ZodNullable<z.ZodType<"calm" | "vscode", unknown, z.core.$ZodTypeInternals<"calm" | "vscode", unknown>>>>;
2562
2878
  engine: z.ZodLiteral<"html">;
@@ -2603,8 +2919,9 @@ declare const ResumeSchema: z.ZodObject<{
2603
2919
  }, z.core.$strip>>>;
2604
2920
  fontSize: z.ZodOptional<z.ZodNullable<z.ZodType<"10pt" | "11pt" | "12pt", unknown, z.core.$ZodTypeInternals<"10pt" | "11pt" | "12pt", unknown>>>>;
2605
2921
  fontFamily: z.ZodOptional<z.ZodNullable<z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>>>;
2922
+ lineSpacing: z.ZodOptional<z.ZodNullable<z.ZodType<"tight" | "snug" | "normal" | "relaxed" | "loose", unknown, z.core.$ZodTypeInternals<"tight" | "snug" | "normal" | "relaxed" | "loose", unknown>>>>;
2606
2923
  }, z.core.$strip>>>;
2607
- template: z.ZodOptional<z.ZodNullable<z.ZodType<"moderncv-banking" | "moderncv-casual" | "moderncv-classic", unknown, z.core.$ZodTypeInternals<"moderncv-banking" | "moderncv-casual" | "moderncv-classic", unknown>>>>;
2924
+ template: z.ZodOptional<z.ZodNullable<z.ZodType<"jake" | "moderncv-banking" | "moderncv-casual" | "moderncv-classic", unknown, z.core.$ZodTypeInternals<"jake" | "moderncv-banking" | "moderncv-casual" | "moderncv-classic", unknown>>>>;
2608
2925
  page: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2609
2926
  margins: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2610
2927
  top: z.ZodOptional<z.ZodNullable<z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>>>;
@@ -2650,7 +2967,7 @@ declare const ResumeSchema: z.ZodObject<{
2650
2967
  engine: z.ZodLiteral<"markdown">;
2651
2968
  }, z.core.$strip>], "engine">>>>;
2652
2969
  locale: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2653
- language: z.ZodOptional<z.ZodNullable<z.ZodType<"en" | "zh-hans" | "zh-hant-hk" | "zh-hant-tw" | "es" | "fr" | "no" | "nl" | "ja" | "de", unknown, z.core.$ZodTypeInternals<"en" | "zh-hans" | "zh-hant-hk" | "zh-hant-tw" | "es" | "fr" | "no" | "nl" | "ja" | "de", unknown>>>>;
2970
+ language: z.ZodOptional<z.ZodNullable<z.ZodType<"en" | "zh-hans" | "zh-hant-hk" | "zh-hant-tw" | "es" | "fr" | "no" | "nl" | "ja" | "de" | "id", unknown, z.core.$ZodTypeInternals<"en" | "zh-hans" | "zh-hant-hk" | "zh-hant-tw" | "es" | "fr" | "no" | "nl" | "ja" | "de" | "id", unknown>>>>;
2654
2971
  }, z.core.$strip>>>;
2655
2972
  content: z.ZodObject<{
2656
2973
  work: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
@@ -3233,4 +3550,4 @@ declare function joinNonEmptyString(codes: string[], separator?: string): string
3233
3550
  */
3234
3551
  declare function toCodeBlock(code?: string, lang?: string): string;
3235
3552
 
3236
- export { type Awards, type Basics, type BulletListNode, COUNTRY_OPTIONS, type Certificates, type Content, type Country, DEFAULT_HTML_LAYOUT, DEFAULT_LATEX_LAYOUT, DEFAULT_MARKDOWN_LAYOUT, DEFAULT_RESUME, DEFAULT_RESUME_CONTENT, DEFAULT_RESUME_LAYOUTS, DEFAULT_RESUME_LOCALE, DEFAULT_SECTIONS_ORDER, DEGREE_OPTIONS, type Degree, type DocNode, DutchCountryNames, type Education, EnglishCountryNames, ErrorType, FILLED_RESUME, FILLED_RESUME_CONTENT, FLUENCY_OPTIONS, type Fluency, FrenchCountryNames, GermanCountryNames, HTML_FONT_SIZE_OPTIONS, HTML_TEMPLATE_OPTIONS, HtmlCodeGenerator, type HtmlFontSize, type HtmlLayout, HtmlRenderer, type HtmlTemplate, type Interests, JapaneseCountryNames, type Keywords, LANGUAGE_OPTIONS, LATEX_FONTSPEC_NUMBERS_OPTIONS, LATEX_FONT_SIZE_OPTIONS, LATEX_PAPER_SIZE_OPTIONS, LATEX_TEMPLATE_OPTIONS, LEVEL_OPTIONS, LOCALE_LANGUAGE_OPTIONS, type Language, type Languages, LatexCodeGenerator, type LatexFontSize, type LatexFontspecNumbers, type LatexLayout, type LatexPaperSize, type LatexTemplate, type LayoutEngine, type Layouts, type Level, type Locale, type LocaleLanguage, type Location, MARGIN_OPTIONS, type MarkdownLayout, MarkdownParser, MarkdownRenderer, ModerncvBankingRenderer, ModerncvCasualRenderer, ModerncvClassicRenderer, NETWORK_OPTIONS, type Network, type Node, NorwegianCountryNames, ONE_DAY, ORDERABLE_SECTION_IDS, type OrderableSectionID, type OrderedListNode, PUNCTUATIONS, type ParagraphNode, type Parser, type Profiles, type Projects, type Publications, type Punctuation, RESUME_SECTION_ITEMS, type References, type Resume, type ResumeItem, ResumeSchema, SECTION_IDS, type SectionID, SimplifiedChineseCountryNames, type Skills, SpanishCountryNames, TERMS, type Term, type TextNode, TraditionalChineseCountryHKNames, TraditionalChineseCountryTWNames, type Volunteer, type Work, YAMLResumeError, collectAllKeys, epochSecondsToLocaleDateString, escapeHtml, escapeLatex, getDateRange, getHtmlTemplateDetail, getLatexTemplateDetail, getLocaleLanguageDetail, getOptionTranslation, getResumeRenderer, getTemplateTranslations, isEmptyString, isEmptyValue, joinNonEmptyString, localizeDate, mergeArrayWithOrder, milliSecondsToSeconds, nowInUTCSeconds, parseDate, removeKeysFromObject, showIf, showIfNotEmpty, toCodeBlock, transformResume };
3553
+ export { type Awards, type Basics, type BulletListNode, COUNTRY_OPTIONS, type Certificates, type Content, type Country, DEFAULT_HTML_LAYOUT, DEFAULT_LATEX_LAYOUT, DEFAULT_MARKDOWN_LAYOUT, DEFAULT_RESUME, DEFAULT_RESUME_CONTENT, DEFAULT_RESUME_LAYOUTS, DEFAULT_RESUME_LOCALE, DEFAULT_SECTIONS_ORDER, DEGREE_OPTIONS, type Degree, type DocNode, DutchCountryNames, type Education, EnglishCountryNames, ErrorType, FILLED_RESUME, FILLED_RESUME_CONTENT, FLUENCY_OPTIONS, type Fluency, FrenchCountryNames, GermanCountryNames, HTML_FONT_SIZE_OPTIONS, HTML_TEMPLATE_OPTIONS, HtmlCodeGenerator, type HtmlFontSize, type HtmlLayout, HtmlRenderer, type HtmlTemplate, IndonesianCountryNames, type Interests, JakeRenderer, JapaneseCountryNames, type Keywords, LANGUAGE_OPTIONS, LATEX_FONTSPEC_NUMBERS_OPTIONS, LATEX_FONT_SIZE_OPTIONS, LATEX_PAPER_SIZE_OPTIONS, LATEX_TEMPLATE_OPTIONS, LEVEL_OPTIONS, LINE_SPACING_OPTIONS, LOCALE_LANGUAGE_OPTIONS, type Language, type Languages, LatexCodeGenerator, type LatexFontSize, type LatexFontspecNumbers, type LatexLayout, type LatexPaperSize, type LatexTemplate, type LayoutEngine, type Layouts, type Level, type LineSpacing, type Locale, type LocaleLanguage, type Location, MARGIN_OPTIONS, type MarkdownLayout, MarkdownParser, MarkdownRenderer, ModerncvBankingRenderer, ModerncvCasualRenderer, ModerncvClassicRenderer, NETWORK_OPTIONS, type Network, type Node, NorwegianCountryNames, ONE_DAY, ORDERABLE_SECTION_IDS, type OrderableSectionID, type OrderedListNode, PUNCTUATIONS, type ParagraphNode, type Parser, type Profiles, type Projects, type Publications, type Punctuation, RESUME_SECTION_ITEMS, type References, type Resume, type ResumeItem, ResumeSchema, SECTION_IDS, type SectionID, SimplifiedChineseCountryNames, type Skills, SpanishCountryNames, TERMS, type Term, type TextNode, TraditionalChineseCountryHKNames, TraditionalChineseCountryTWNames, type Volunteer, type Work, YAMLResumeError, collectAllKeys, epochSecondsToLocaleDateString, escapeHtml, escapeLatex, getDateRange, getHtmlTemplateDetail, getLatexTemplateDetail, getLocaleLanguageDetail, getOptionTranslation, getResumeRenderer, getTemplateTranslations, isEmptyString, isEmptyValue, joinNonEmptyString, localizeDate, mergeArrayWithOrder, milliSecondsToSeconds, nowInUTCSeconds, parseDate, removeKeysFromObject, showIf, showIfNotEmpty, toCodeBlock, transformResume };