@01-edu/shared 2.0.0 → 2.0.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@01-edu/shared",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "scripts": {
@@ -4,16 +4,19 @@ export const skillsSet = {
4
4
  name: 'Elementary programming',
5
5
  description: 'Basics of computer programming',
6
6
  type: 'technical',
7
+ abbreviation: 'prog-1',
7
8
  },
8
9
  'intermediate-prog': {
9
10
  name: 'Intermediate programming',
10
11
  description: 'Intermediate notions of computer programming',
11
12
  type: 'technical',
13
+ abbreviation: 'prog-2',
12
14
  },
13
15
  'advanced-prog': {
14
16
  name: 'Advanced programming',
15
17
  description: 'Advanced notions of computer programming',
16
18
  type: 'technical',
19
+ abbreviation: 'prog-3',
17
20
  },
18
21
  algo: {
19
22
  name: 'Elementary algorithms',
@@ -24,16 +27,19 @@ export const skillsSet = {
24
27
  name: 'System administration',
25
28
  description: 'System administration, dev ops',
26
29
  type: 'technical',
30
+ abbreviation: 'devops',
27
31
  },
28
32
  'front-end': {
29
33
  name: 'Front-end',
30
34
  description: 'Front-end technologies',
31
35
  type: 'technical',
36
+ abbreviation: 'front',
32
37
  },
33
38
  'back-end': {
34
39
  name: 'Back-end',
35
40
  description: 'Back-end technologies',
36
41
  type: 'technical',
42
+ abbreviation: 'back',
37
43
  },
38
44
  stats: {
39
45
  name: 'Statistics',
@@ -54,6 +60,7 @@ export const skillsSet = {
54
60
  name: 'Blockchain',
55
61
  description: 'Blockchain',
56
62
  type: 'technical',
63
+ abbreviation: 'BC',
57
64
  },
58
65
  mobile: {
59
66
  name: 'Mobile development',
@@ -69,6 +76,7 @@ export const skillsSet = {
69
76
  name: 'Cybersecurity',
70
77
  description: 'Cybersecurity',
71
78
  type: 'technical',
79
+ abbreviation: 'cyber',
72
80
  },
73
81
  ux: {
74
82
  name: 'UX/UI',
@@ -85,6 +93,7 @@ export const skillsSet = {
85
93
  description:
86
94
  'Automate tasks to reduce repetitive tasks and minimize potential errors',
87
95
  type: 'technical',
96
+ abbreviation: 'autom.',
88
97
  },
89
98
  ci: {
90
99
  name: 'CI/CD',
@@ -96,12 +105,14 @@ export const skillsSet = {
96
105
  name: 'Testing',
97
106
  description: 'TDD and other software testing strategies',
98
107
  type: 'technical',
108
+ abbreviation: 'tests',
99
109
  },
100
110
  'curriculum-objectives-completed': {
101
111
  name: 'Curriculum objectives completed',
102
112
  description:
103
113
  'Curriculum objectives completed to unlock the specialization branches',
104
114
  type: 'technical',
115
+ abbreviation: 'credits',
105
116
  },
106
117
 
107
118
  // personal skills
@@ -215,14 +226,17 @@ export const skillsSet = {
215
226
  'c-sharp': {
216
227
  name: 'C#',
217
228
  type: 'technology',
229
+ abbreviation: 'C#',
218
230
  },
219
231
  'c-pp': {
220
232
  name: 'C++',
221
233
  type: 'technology',
234
+ abbreviation: 'C++',
222
235
  },
223
236
  graphql: {
224
237
  name: 'GraphQL',
225
238
  type: 'technology',
239
+ abbreviation: 'GQL',
226
240
  },
227
241
  rails: {
228
242
  name: 'Ruby on Rails',
@@ -247,6 +261,7 @@ export const skillsSet = {
247
261
  electron: {
248
262
  name: 'Electron',
249
263
  type: 'technology',
264
+ abbreviation: 'elect.',
250
265
  },
251
266
  git: {
252
267
  name: 'Git',
@@ -255,24 +270,28 @@ export const skillsSet = {
255
270
  employability: {
256
271
  name: 'Employability',
257
272
  type: 'employability',
273
+ abbreviation: 'jobSkills',
258
274
  },
259
275
  'personal-development': {
260
276
  name: 'Personal Development',
261
277
  description:
262
278
  'Focuses on self-awareness, self-management, communication, and core values to build a strong personal foundation for growth and autonomy.',
263
279
  type: 'lifeskills',
280
+ abbreviation: 'PDev',
264
281
  },
265
282
  'relational-development': {
266
283
  name: 'Relational Development',
267
284
  description:
268
285
  'Develops the ability to connect with others through assertiveness, empathy, and resilience, enabling healthy collaboration and conflict management.',
269
286
  type: 'lifeskills',
287
+ abbreviation: 'RelDev',
270
288
  },
271
289
  'professional-development': {
272
290
  name: 'Professional Development',
273
291
  description:
274
292
  'Strengthens strategic thinking, leadership, and professional presence to drive impact, solve complex problems, and succeed in professional environments.',
275
293
  type: 'lifeskills',
294
+ abbreviation: 'ProDev',
276
295
  },
277
296
  }
278
297
 
@@ -320,3 +339,21 @@ export const hasRequiredSkills = (requiredSkills, userSkills) =>
320
339
  ([skillName, requiredAmount]) =>
321
340
  (userSkills?.[skillName] || 0) >= requiredAmount,
322
341
  )
342
+
343
+ export const extractHighestSkills = (node, result = {}) => {
344
+ if (node?.attrs?.baseSkills) {
345
+ for (const [skill, value] of Object.entries(node.attrs.baseSkills)) {
346
+ if (!result[skill] || value > result[skill]) {
347
+ result[skill] = value
348
+ }
349
+ }
350
+ }
351
+
352
+ if (node.children) {
353
+ for (const child of Object.values(node.children)) {
354
+ extractHighestSkills(child, result) // recursively get skills rewarded by children (in the case of piscines>exercises)
355
+ }
356
+ }
357
+
358
+ return result
359
+ }