resuml 1.2.3 → 1.2.4

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/api.d.ts ADDED
@@ -0,0 +1,366 @@
1
+ /**
2
+ * This file was automatically generated by json-schema-to-typescript.
3
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
4
+ * and run json-schema-to-typescript to regenerate this file.
5
+ */
6
+ /**
7
+ * Similar to the standard date type, but each section after the year is optional. e.g. 2014-06-29 or 2023-04
8
+ */
9
+ type Iso8601 = string;
10
+ interface ResumeSchema {
11
+ /**
12
+ * link to the version of the schema that can validate the resume
13
+ */
14
+ $schema?: string;
15
+ basics?: {
16
+ name?: string;
17
+ /**
18
+ * e.g. Web Developer
19
+ */
20
+ label?: string;
21
+ /**
22
+ * URL (as per RFC 3986) to a image in JPEG or PNG format
23
+ */
24
+ image?: string;
25
+ /**
26
+ * e.g. thomas@gmail.com
27
+ */
28
+ email?: string;
29
+ /**
30
+ * Phone numbers are stored as strings so use any format you like, e.g. 712-117-2923
31
+ */
32
+ phone?: string;
33
+ /**
34
+ * URL (as per RFC 3986) to your website, e.g. personal homepage
35
+ */
36
+ url?: string;
37
+ /**
38
+ * Write a short 2-3 sentence biography about yourself
39
+ */
40
+ summary?: string;
41
+ location?: {
42
+ /**
43
+ * To add multiple address lines, use
44
+ * . For example, 1234 Glücklichkeit Straße
45
+ * Hinterhaus 5. Etage li.
46
+ */
47
+ address?: string;
48
+ postalCode?: string;
49
+ city?: string;
50
+ /**
51
+ * code as per ISO-3166-1 ALPHA-2, e.g. US, AU, IN
52
+ */
53
+ countryCode?: string;
54
+ /**
55
+ * The general region where you live. Can be a US state, or a province, for instance.
56
+ */
57
+ region?: string;
58
+ [k: string]: unknown;
59
+ };
60
+ /**
61
+ * Specify any number of social networks that you participate in
62
+ */
63
+ profiles?: {
64
+ /**
65
+ * e.g. Facebook or Twitter
66
+ */
67
+ network?: string;
68
+ /**
69
+ * e.g. neutralthoughts
70
+ */
71
+ username?: string;
72
+ /**
73
+ * e.g. http://twitter.example.com/neutralthoughts
74
+ */
75
+ url?: string;
76
+ [k: string]: unknown;
77
+ }[];
78
+ [k: string]: unknown;
79
+ };
80
+ work?: {
81
+ /**
82
+ * e.g. Facebook
83
+ */
84
+ name?: string;
85
+ /**
86
+ * e.g. Menlo Park, CA
87
+ */
88
+ location?: string;
89
+ /**
90
+ * e.g. Social Media Company
91
+ */
92
+ description?: string;
93
+ /**
94
+ * e.g. Software Engineer
95
+ */
96
+ position?: string;
97
+ /**
98
+ * e.g. http://facebook.example.com
99
+ */
100
+ url?: string;
101
+ startDate?: Iso8601;
102
+ endDate?: Iso8601;
103
+ /**
104
+ * Give an overview of your responsibilities at the company
105
+ */
106
+ summary?: string;
107
+ /**
108
+ * Specify multiple accomplishments
109
+ */
110
+ highlights?: string[];
111
+ [k: string]: unknown;
112
+ }[];
113
+ volunteer?: {
114
+ /**
115
+ * e.g. Facebook
116
+ */
117
+ organization?: string;
118
+ /**
119
+ * e.g. Software Engineer
120
+ */
121
+ position?: string;
122
+ /**
123
+ * e.g. http://facebook.example.com
124
+ */
125
+ url?: string;
126
+ startDate?: Iso8601;
127
+ endDate?: Iso8601;
128
+ /**
129
+ * Give an overview of your responsibilities at the company
130
+ */
131
+ summary?: string;
132
+ /**
133
+ * Specify accomplishments and achievements
134
+ */
135
+ highlights?: string[];
136
+ [k: string]: unknown;
137
+ }[];
138
+ education?: {
139
+ /**
140
+ * e.g. Massachusetts Institute of Technology
141
+ */
142
+ institution?: string;
143
+ /**
144
+ * e.g. http://facebook.example.com
145
+ */
146
+ url?: string;
147
+ /**
148
+ * e.g. Arts
149
+ */
150
+ area?: string;
151
+ /**
152
+ * e.g. Bachelor
153
+ */
154
+ studyType?: string;
155
+ startDate?: Iso8601;
156
+ endDate?: Iso8601;
157
+ /**
158
+ * grade point average, e.g. 3.67/4.0
159
+ */
160
+ score?: string;
161
+ /**
162
+ * List notable courses/subjects
163
+ */
164
+ courses?: string[];
165
+ [k: string]: unknown;
166
+ }[];
167
+ /**
168
+ * Specify any awards you have received throughout your professional career
169
+ */
170
+ awards?: {
171
+ /**
172
+ * e.g. One of the 100 greatest minds of the century
173
+ */
174
+ title?: string;
175
+ date?: Iso8601;
176
+ /**
177
+ * e.g. Time Magazine
178
+ */
179
+ awarder?: string;
180
+ /**
181
+ * e.g. Received for my work with Quantum Physics
182
+ */
183
+ summary?: string;
184
+ [k: string]: unknown;
185
+ }[];
186
+ /**
187
+ * Specify any certificates you have received throughout your professional career
188
+ */
189
+ certificates?: {
190
+ /**
191
+ * e.g. Certified Kubernetes Administrator
192
+ */
193
+ name?: string;
194
+ date?: Iso8601;
195
+ /**
196
+ * e.g. http://example.com
197
+ */
198
+ url?: string;
199
+ /**
200
+ * e.g. CNCF
201
+ */
202
+ issuer?: string;
203
+ [k: string]: unknown;
204
+ }[];
205
+ /**
206
+ * Specify your publications through your career
207
+ */
208
+ publications?: {
209
+ /**
210
+ * e.g. The World Wide Web
211
+ */
212
+ name?: string;
213
+ /**
214
+ * e.g. IEEE, Computer Magazine
215
+ */
216
+ publisher?: string;
217
+ releaseDate?: Iso8601;
218
+ /**
219
+ * e.g. http://www.computer.org.example.com/csdl/mags/co/1996/10/rx069-abs.html
220
+ */
221
+ url?: string;
222
+ /**
223
+ * Short summary of publication. e.g. Discussion of the World Wide Web, HTTP, HTML.
224
+ */
225
+ summary?: string;
226
+ [k: string]: unknown;
227
+ }[];
228
+ /**
229
+ * List out your professional skill-set
230
+ */
231
+ skills?: {
232
+ /**
233
+ * e.g. Web Development
234
+ */
235
+ name?: string;
236
+ /**
237
+ * e.g. Master
238
+ */
239
+ level?: string;
240
+ /**
241
+ * List some keywords pertaining to this skill
242
+ */
243
+ keywords?: string[];
244
+ [k: string]: unknown;
245
+ }[];
246
+ /**
247
+ * List any other languages you speak
248
+ */
249
+ languages?: {
250
+ /**
251
+ * e.g. English, Spanish
252
+ */
253
+ language?: string;
254
+ /**
255
+ * e.g. Fluent, Beginner
256
+ */
257
+ fluency?: string;
258
+ [k: string]: unknown;
259
+ }[];
260
+ interests?: {
261
+ /**
262
+ * e.g. Philosophy
263
+ */
264
+ name?: string;
265
+ keywords?: string[];
266
+ [k: string]: unknown;
267
+ }[];
268
+ /**
269
+ * List references you have received
270
+ */
271
+ references?: {
272
+ /**
273
+ * e.g. Timothy Cook
274
+ */
275
+ name?: string;
276
+ /**
277
+ * e.g. Joe blogs was a great employee, who turned up to work at least once a week. He exceeded my expectations when it came to doing nothing.
278
+ */
279
+ reference?: string;
280
+ [k: string]: unknown;
281
+ }[];
282
+ /**
283
+ * Specify career projects
284
+ */
285
+ projects?: {
286
+ /**
287
+ * e.g. The World Wide Web
288
+ */
289
+ name?: string;
290
+ /**
291
+ * Short summary of project. e.g. Collated works of 2017.
292
+ */
293
+ description?: string;
294
+ /**
295
+ * Specify multiple features
296
+ */
297
+ highlights?: string[];
298
+ /**
299
+ * Specify special elements involved
300
+ */
301
+ keywords?: string[];
302
+ startDate?: Iso8601;
303
+ endDate?: Iso8601;
304
+ /**
305
+ * e.g. http://www.computer.org/csdl/mags/co/1996/10/rx069-abs.html
306
+ */
307
+ url?: string;
308
+ /**
309
+ * Specify your role on this project or in company
310
+ */
311
+ roles?: string[];
312
+ /**
313
+ * Specify the relevant company/entity affiliations e.g. 'greenpeace', 'corporationXYZ'
314
+ */
315
+ entity?: string;
316
+ /**
317
+ * e.g. 'volunteering', 'presentation', 'talk', 'application', 'conference'
318
+ */
319
+ type?: string;
320
+ [k: string]: unknown;
321
+ }[];
322
+ /**
323
+ * The schema version and any other tooling configuration lives here
324
+ */
325
+ meta?: {
326
+ /**
327
+ * URL (as per RFC 3986) to latest version of this document
328
+ */
329
+ canonical?: string;
330
+ /**
331
+ * A version field which follows semver - e.g. v1.0.0
332
+ */
333
+ version?: string;
334
+ /**
335
+ * Using ISO 8601 with YYYY-MM-DDThh:mm:ss
336
+ */
337
+ lastModified?: string;
338
+ [k: string]: unknown;
339
+ };
340
+ [k: string]: unknown;
341
+ }
342
+
343
+ /**
344
+ * Merges and validates resume data objects against the JSON Resume schema.
345
+ * @param yamlContents - An array of YAML strings containing resume data.
346
+ * @returns The merged and validated resume data.
347
+ * @throws Error if validation fails.
348
+ */
349
+ declare function processResumeData(yamlContents: string[]): Promise<ResumeSchema>;
350
+
351
+ /**
352
+ * Load and parse resume files
353
+ */
354
+ declare function loadResumeFiles(inputPath?: string): Promise<{
355
+ files: string[];
356
+ yamlContents: string[];
357
+ }>;
358
+
359
+ /**
360
+ * Load a theme module by name
361
+ * @param themeName The name of the theme to load
362
+ * @returns The loaded theme module
363
+ */
364
+ declare function loadTheme(themeName: string): Promise<any>;
365
+
366
+ export { type ResumeSchema as Resume, loadResumeFiles, loadTheme, processResumeData };
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import { Resume as ResumeSchema } from './api.js';
4
+ export { loadResumeFiles, loadTheme, processResumeData } from './api.js';
5
+
6
+ interface ThemeConfig {
7
+ sections?: {
8
+ order?: string[];
9
+ exclude?: string[];
10
+ };
11
+ layout?: {
12
+ style?: string;
13
+ };
14
+ styling?: Record<string, string | number>;
15
+ labels?: Record<string, string>;
16
+ }
17
+ /**
18
+ * Render a resume using the specified theme
19
+ * @param themeName Name of the theme to use
20
+ * @param resumeData Resume data to render
21
+ * @param themeConfig Theme configuration
22
+ * @param inlineCss Optional CSS to include in the HTML
23
+ * @param language Language code for localization
24
+ * @returns Object containing the rendered HTML
25
+ */
26
+ declare function renderTheme(themeName: string, resumeData: ResumeSchema, themeConfig?: ThemeConfig, inlineCss?: string, language?: string): Promise<{
27
+ htmlOutput: string;
28
+ }>;
29
+ /**
30
+ * Injects CSS into HTML content
31
+ * @param html HTML content
32
+ * @param css CSS to inject
33
+ * @returns HTML with injected CSS
34
+ */
35
+ declare function injectCss(html: string, css?: string): string;
36
+
37
+ declare const themeRender_injectCss: typeof injectCss;
38
+ declare const themeRender_renderTheme: typeof renderTheme;
39
+ declare namespace themeRender {
40
+ export { themeRender_injectCss as injectCss, themeRender_renderTheme as renderTheme };
41
+ }
42
+
43
+ declare const program: Command;
44
+
45
+ export { program, themeRender };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "resuml",
3
- "version": "1.2.3",
3
+ "version": "1.2.4",
4
4
  "description": "Generate JSON resumes from YAML with theme support",
5
5
  "main": "./dist/api.js",
6
6
  "exports": {