5htp 0.3.8 → 0.4.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.
Files changed (99) hide show
  1. package/package.json +1 -1
  2. package/src/compiler/common/babel/routes/routes.ts +13 -2
  3. package/src/compiler/common/index.ts +3 -1
  4. package/src/compiler/common/plugins/indexage/icones-svg/index.ts +3 -3
  5. package/src/compiler/index.ts +34 -12
  6. package/skeleton/Dockerfile +0 -20
  7. package/skeleton/docker-compose.yml +0 -37
  8. package/skeleton/identity.yaml +0 -21
  9. package/skeleton/package.json +0 -48
  10. package/skeleton/src/client/assets/identity/logo.svg +0 -14
  11. package/skeleton/src/client/assets/identity/logoAndText.svg +0 -10
  12. package/skeleton/src/client/assets/identity/logoAndTextBlack.svg +0 -11
  13. package/skeleton/src/client/assets/illustration/landing/banner.webp +0 -0
  14. package/skeleton/src/client/assets/illustration/landing/candidate/employers.webp +0 -0
  15. package/skeleton/src/client/assets/illustration/landing/candidate/hero.webp +0 -0
  16. package/skeleton/src/client/assets/illustration/landing/candidate/mentors.webp +0 -0
  17. package/skeleton/src/client/assets/illustration/landing/headhunter/hero.webp +0 -0
  18. package/skeleton/src/client/assets/illustration/landing/hero.jpeg +0 -0
  19. package/skeleton/src/client/assets/illustration/landing/hero.webp +0 -0
  20. package/skeleton/src/client/assets/illustration/landing/hero.xcf +0 -0
  21. package/skeleton/src/client/assets/illustration/landing/recruiter/onboarding.webp +0 -0
  22. package/skeleton/src/client/assets/illustration/landing/team/andre.png +0 -0
  23. package/skeleton/src/client/assets/illustration/landing/team/emma.png +0 -0
  24. package/skeleton/src/client/assets/illustration/landing/team/fei.png +0 -0
  25. package/skeleton/src/client/assets/illustration/landing/team/gaetan.png +0 -0
  26. package/skeleton/src/client/assets/illustration/landing/team/jordan.png +0 -0
  27. package/skeleton/src/client/assets/illustration/landing/team/lery.png +0 -0
  28. package/skeleton/src/client/assets/illustration/landing/team/mehdi.png +0 -0
  29. package/skeleton/src/client/assets/illustration/landing/team/omkar.png +0 -0
  30. package/skeleton/src/client/assets/illustration/landing/team/thibaut.png +0 -0
  31. package/skeleton/src/client/assets/illustration/launch.jpg +0 -0
  32. package/skeleton/src/client/assets/img/background/header-blur.png +0 -0
  33. package/skeleton/src/client/assets/img/partners/citron.svg +0 -987
  34. package/skeleton/src/client/assets/logos/google-play-store.svg +0 -1
  35. package/skeleton/src/client/assets/logos/googleauth.svg +0 -9
  36. package/skeleton/src/client/assets/patterns/dots.png +0 -0
  37. package/skeleton/src/client/assets/patterns/interlaced.png +0 -0
  38. package/skeleton/src/client/assets/theme.less +0 -231
  39. package/skeleton/src/client/assets/vars.less +0 -54
  40. package/skeleton/src/client/context.ts +0 -23
  41. package/skeleton/src/client/index.ts +0 -59
  42. package/skeleton/src/client/pages/_messages/400.tsx +0 -45
  43. package/skeleton/src/client/pages/_messages/401.tsx +0 -39
  44. package/skeleton/src/client/pages/_messages/403.tsx +0 -43
  45. package/skeleton/src/client/pages/_messages/404.tsx +0 -42
  46. package/skeleton/src/client/pages/_messages/500.tsx +0 -42
  47. package/skeleton/src/client/pages/platform/Header.less +0 -12
  48. package/skeleton/src/client/pages/platform/Header.tsx +0 -119
  49. package/skeleton/src/client/pages/platform/_layout/index.less +0 -118
  50. package/skeleton/src/client/pages/platform/_layout/index.tsx +0 -131
  51. package/skeleton/src/client/pages/platform/_layout/mobile.less +0 -114
  52. package/skeleton/src/client/pages/platform/_page.tsx +0 -54
  53. package/skeleton/src/client/pages/platform/headhunters/index.tsx +0 -88
  54. package/skeleton/src/client/pages/platform/index.tsx +0 -58
  55. package/skeleton/src/client/pages/platform/missions/index.tsx +0 -149
  56. package/skeleton/src/client/pages/preload.json +0 -3
  57. package/skeleton/src/client/services/metrics/index.ts +0 -59
  58. package/skeleton/src/client/tsconfig.json +0 -31
  59. package/skeleton/src/common/config/router.ts +0 -16
  60. package/skeleton/src/common/forms/company/bookCall.ts +0 -25
  61. package/skeleton/src/common/forms/company/importJob.ts +0 -26
  62. package/skeleton/src/common/forms/company/signup.ts +0 -31
  63. package/skeleton/src/common/forms/headhunter/feedback.ts +0 -31
  64. package/skeleton/src/common/forms/headhunter/mission/cancel.ts +0 -26
  65. package/skeleton/src/common/forms/headhunter/mission/candidate/availability.ts +0 -31
  66. package/skeleton/src/common/forms/headhunter/mission/candidate/education.ts +0 -19
  67. package/skeleton/src/common/forms/headhunter/mission/candidate/identity.ts +0 -31
  68. package/skeleton/src/common/forms/headhunter/mission/candidate/others.ts +0 -19
  69. package/skeleton/src/common/forms/headhunter/mission/candidate/skills.ts +0 -21
  70. package/skeleton/src/common/forms/headhunter/mission/reject.ts +0 -23
  71. package/skeleton/src/common/forms/headhunter/mission/search.ts +0 -78
  72. package/skeleton/src/common/forms/headhunter/signup.ts +0 -34
  73. package/skeleton/src/common/libs/headhunter/candidate/index.ts +0 -155
  74. package/skeleton/src/common/libs/headhunter/mission/index.ts +0 -30
  75. package/skeleton/src/common/libs/hub/index.ts +0 -41
  76. package/skeleton/src/common/tsconfig.json +0 -10
  77. package/skeleton/src/server/config/communication.ts +0 -48
  78. package/skeleton/src/server/config/crosspath.ts +0 -9
  79. package/skeleton/src/server/config/data.ts +0 -34
  80. package/skeleton/src/server/config/database.ts +0 -26
  81. package/skeleton/src/server/config/internal.ts +0 -21
  82. package/skeleton/src/server/config/user.ts +0 -90
  83. package/skeleton/src/server/index.ts +0 -111
  84. package/skeleton/src/server/libs/utils/slug.ts +0 -11
  85. package/skeleton/src/server/routes/global.ts +0 -33
  86. package/skeleton/src/server/routes/headhunters.ts +0 -24
  87. package/skeleton/src/server/routes/missions.ts +0 -50
  88. package/skeleton/src/server/services/Headhunter/index.ts +0 -127
  89. package/skeleton/src/server/services/Headhunter/service.json +0 -6
  90. package/skeleton/src/server/services/Mission/index.ts +0 -174
  91. package/skeleton/src/server/services/Mission/service.json +0 -6
  92. package/skeleton/src/server/services/email/sendgrid/index.ts +0 -97
  93. package/skeleton/src/server/services/email/sendgrid/service.json +0 -6
  94. package/skeleton/src/server/services/slack/index.ts +0 -105
  95. package/skeleton/src/server/services/slack/service.json +0 -6
  96. package/skeleton/src/server/services/users/index.ts +0 -133
  97. package/skeleton/src/server/services/users/service.json +0 -6
  98. package/skeleton/src/server/tsconfig.json +0 -32
  99. package/skeleton/var/typings/routes.d.ts +0 -541
@@ -1,149 +0,0 @@
1
- /*----------------------------------
2
- - DEPENDANCES
3
- ----------------------------------*/
4
-
5
- // Npm
6
- import React from 'react';
7
- import dayjs from 'dayjs';
8
-
9
- // Core
10
- import { Router } from '@app';
11
- import { Button, Table } from '@client/components';
12
- import { hello } from '@common/data/chaines/greetings';
13
-
14
- // App components
15
- import Header from '@/client/pages/platform/Header';
16
-
17
- // App
18
- import Page from '../_page';
19
-
20
- /*----------------------------------
21
- - TYPES
22
- ----------------------------------*/
23
-
24
- import type { AcceptedMission, Mission } from '@/server/models';
25
-
26
- export type TApplicationAction = 'approve'|'reject'
27
-
28
- /*----------------------------------
29
- - CONTROLEUR
30
- ----------------------------------*/
31
- Router.page('/missions', ({ user, api, modal, toast }) => {
32
-
33
- /*----------------------------------
34
- - INIT
35
- ----------------------------------*/
36
-
37
- const { missions, applications } = api.fetch({
38
-
39
- missions: api.get<Mission[]>('/missions'),
40
-
41
- applications: api.get<AcceptedMission[]>('/missions/applications'),
42
- });
43
-
44
- const [missionId, setMissionId] = React.useState(null);
45
-
46
- /*----------------------------------
47
- - ACTIONS
48
- ----------------------------------*/
49
-
50
- // Update filters
51
- React.useEffect(() => {
52
-
53
- api.reload(['applications'], { missionId });
54
-
55
- }, [missionId]);
56
-
57
- const confirmAction = (action: TApplicationAction, a: AcceptedMission) =>
58
- modal.confirm("Accept this application?", <>
59
- You're about to accept the following headhunter application:
60
-
61
- <ul class="col liste">
62
- <li>Headhunter: {a.headhunter}</li>
63
- <li>Mission: {a.mission}</li>
64
- </ul>
65
-
66
- If you approve, the headhunter will get notified of your approval and will be able to submit candidates for this mission.
67
- <br />
68
- Do you want to continue?
69
- </>).then( shouldAccept => shouldAccept &&
70
- runAction(action, a)
71
- )
72
-
73
- const runAction = (action: TApplicationAction, a: AcceptedMission) =>
74
- api.post('/missions/applications/' + action, {
75
- missionId: a.missionId,
76
- headhunterId: a.headhunterId,
77
- }).then(() => {
78
- toast.success("You approved the application. The Headhunter will be notified.");
79
- api.reload('applications');
80
- })
81
-
82
- /*----------------------------------
83
- - RENDER
84
- ----------------------------------*/
85
- return (
86
- <Page title="CrossPath - CSM Dashboard">
87
-
88
- <Header title={<>
89
- Missions
90
- </>} />
91
-
92
- <div class="row al-top">
93
-
94
- <aside class="w-3 col">
95
-
96
- <h2>Your Missions</h2>
97
-
98
- <ul class="col menu">
99
- <li>
100
- <Button nav active={missionId === null}
101
- onClick={() => setMissionId(null)}>
102
- All Missions
103
- </Button>
104
- </li>
105
-
106
- {missions.map( m => (
107
- <li>
108
- <Button nav active={m.airtableId === missionId}
109
- onClick={() => setMissionId( m.airtableId )}>
110
- {m.title}
111
- </Button>
112
- </li>
113
- ))}
114
- </ul>
115
-
116
- </aside>
117
-
118
- <div class="col-1 col">
119
-
120
- <h2>Headhunters Applications</h2>
121
-
122
- <Table className="card" data={applications} columns={(a) => ([{
123
- label: "Headhunter",
124
- cell: a.headhunter
125
- },{
126
- label: "Mission",
127
- cell: a.mission
128
- },{
129
- label: "Date Applied",
130
- cell: dayjs(a.dateStart).format('DD/MM/YYYY HH:mm')
131
- },{
132
- label: "Actions",
133
- cell: (
134
- <div class='row sp-05 al-right'>
135
- <Button size="s" class='bg success' icon="check"
136
- onClick={() => confirmAction('approve', a)} />
137
- <Button size="s" class='bg error' icon="times"
138
- onClick={() => confirmAction('reject', a)} />
139
- </div>
140
- )
141
- }])} />
142
-
143
- </div>
144
-
145
- </div>
146
-
147
- </Page>
148
- )
149
- });
@@ -1,3 +0,0 @@
1
- [
2
-
3
- ]
@@ -1,59 +0,0 @@
1
- /*----------------------------------
2
- - DEPENDANCES
3
- ----------------------------------*/
4
-
5
- // Npm
6
-
7
- // Core
8
- import type ClientApplication from '@client/app';
9
-
10
- /*----------------------------------
11
- - TYPES
12
- ----------------------------------*/
13
-
14
- declare global {
15
- interface Window {
16
- // Defined by loading gtag.js
17
- gtag: (
18
- name: string,
19
- action: string,
20
- params?: {
21
- event_category?: string,
22
- event_label?: string,
23
- value?: string,
24
- }
25
- ) => void,
26
- }
27
- }
28
-
29
- /*----------------------------------
30
- - SERVICE
31
- ----------------------------------*/
32
- export default class ClientMetrics {
33
-
34
- public constructor( public app: ClientApplication ) {
35
-
36
- }
37
-
38
- public start() {
39
-
40
- }
41
-
42
- // Tracking
43
- public event(
44
- action: string,
45
- category?: string,
46
- label?: string,
47
- value?: string,
48
- ) {
49
- if (!window.gtag) return console.warn("[tracker] Google Analytics wasn't imported in header > scripts.");
50
- if (action === 'pageview')
51
- window.gtag('send', action);
52
- else
53
- window.gtag('event', action, {
54
- event_category: category,
55
- event_label: label,
56
- value
57
- });
58
- }
59
- }
@@ -1,31 +0,0 @@
1
- {
2
- "extends": "../../node_modules/5htp-core/tsconfig.common.json",
3
- "compilerOptions": {
4
- "rootDir": "..",
5
- "baseUrl": "..",
6
- "paths": {
7
-
8
- "@/server/models": ["./server/.generated/models"],
9
-
10
- "@client/*": ["../node_modules/5htp-core/src/client/*"],
11
- "@common/*": ["../node_modules/5htp-core/src/common/*"],
12
-
13
- // Only used for typings (ex: ServerResponse)
14
- // Removed before webpack compilation
15
- "@server/*": ["../node_modules/5htp-core/src/server/*"],
16
- "@/*": ["./*"],
17
-
18
- // ATTENTION: Les références à preact doivent toujours pointer vers la même instance
19
- "react": ["preact/compat"],
20
- "react-dom/test-utils": ["preact/test-utils"],
21
- "react-dom": ["preact/compat"], // Must be below test-utils
22
- "react/jsx-runtime": ["preact/jsx-runtime"],
23
- "preact/jsx-runtime": ["preact/jsx-runtime"]
24
- }
25
- },
26
- "include": [
27
- ".",
28
- "../../node_modules/5htp-core/src/types/global",
29
- ".generated/services.d.ts"
30
- ]
31
- }
@@ -1,16 +0,0 @@
1
- export const domains = {
2
- local: {
3
- recruiters: 'http://localhost:3010',
4
- landing: 'http://localhost:3011',
5
- employers: 'http://localhost:3012',
6
- candidates: 'http://localhost:3013',
7
- csm: 'http://localhost:3014',
8
- },
9
- prod: {
10
- recruiters: 'https://recruiters.becrosspath.com',
11
- landing: 'https://becrosspath.com',
12
- employers: 'https://employers.becrosspath.com',
13
- candidates: 'https://candidates.becrosspath.com',
14
- csm: 'https://csm.becrosspath.com',
15
- }
16
- }
@@ -1,25 +0,0 @@
1
- /*----------------------------------
2
- - DEPENDANCES
3
- ----------------------------------*/
4
-
5
- // Core
6
- import { Schema, Validators } from '@common/validation';
7
-
8
- const field = new Validators();
9
-
10
- /*----------------------------------
11
- - SCHEMA
12
- ----------------------------------*/
13
- export default new Schema({
14
-
15
- firstName: field.string(),
16
-
17
- lastName: field.string(),
18
-
19
- companyName: field.string(),
20
-
21
- email: field.email(),
22
-
23
- phone: field.string(),
24
-
25
- });
@@ -1,26 +0,0 @@
1
- /*----------------------------------
2
- - DEPENDANCES
3
- ----------------------------------*/
4
-
5
- // Core
6
- import { Schema, Validators } from '@common/validation';
7
-
8
- // App
9
- import { Currencies } from '@/common/libs/hub';
10
-
11
- const field = new Validators();
12
-
13
- /*----------------------------------
14
- - SCHEMA
15
- ----------------------------------*/
16
- export default new Schema({
17
-
18
- sourceUrl: field.url({ opt: true }),
19
-
20
- salaryMin: field.int({ min: 0 }),
21
- salaryMax: field.int({ min: 0 }),
22
-
23
- desiredBounty: field.int({ min: 0 }),
24
- bountyCurrency: field.choice( Currencies ),
25
-
26
- });
@@ -1,31 +0,0 @@
1
- /*----------------------------------
2
- - DEPENDANCES
3
- ----------------------------------*/
4
-
5
- // Core
6
- import { Schema, Validators } from '@common/validation';
7
-
8
- const field = new Validators();
9
-
10
- /*----------------------------------
11
- - SCHEMA
12
- ----------------------------------*/
13
- export default new Schema({
14
-
15
- firstName: field.string(),
16
-
17
- lastName: field.string(),
18
-
19
- companyName: field.string(),
20
-
21
- email: field.email(),
22
-
23
- linkedInUrl: field.url(),
24
-
25
- phone: field.string(),
26
-
27
- calendly: field.string({ opt: true }),
28
-
29
- jobIds: field.array( field.string(), { opt: true })
30
-
31
- });
@@ -1,31 +0,0 @@
1
- /*----------------------------------
2
- - DEPENDANCES
3
- ----------------------------------*/
4
-
5
- // Core
6
- import { Schema, Validators } from '@common/validation';
7
-
8
- // TODO: impoer each validator independently via spread
9
- const field = new Validators();
10
-
11
- /*----------------------------------
12
- - CONST
13
- ----------------------------------*/
14
-
15
- export const feedbackTypes = ['Issue', 'Suggestion'].map( v => ({
16
- label: v,
17
- value: v
18
- }))
19
-
20
- /*----------------------------------
21
- - SCHEMA
22
- ----------------------------------*/
23
- export default new Schema({
24
-
25
- type: field.choice(feedbackTypes),
26
-
27
- mission: field.choice(undefined, { opt: true }),
28
-
29
- comment: field.string()
30
-
31
- });
@@ -1,26 +0,0 @@
1
- /*----------------------------------
2
- - DEPENDANCES
3
- ----------------------------------*/
4
-
5
- // Core
6
- import { Schema, Validators } from '@common/validation';
7
-
8
- // App
9
- import { rejectionReasons } from '@/common/libs/headhunter/mission';
10
-
11
- // TODO: impoer each validator independently via spread
12
- const field = new Validators();
13
-
14
- /*----------------------------------
15
- - SCHEMA
16
- ----------------------------------*/
17
- export default new Schema({
18
-
19
- missionId: field.string(),
20
-
21
- // TODO: Generate array list of possible values in @server/database
22
- reason: field.choice( rejectionReasons ),
23
-
24
- explanations: field.string({ opt: true }),
25
-
26
- });
@@ -1,31 +0,0 @@
1
- /*----------------------------------
2
- - DEPENDANCES
3
- ----------------------------------*/
4
-
5
- // Core
6
- import { Schema, Validators } from '@common/validation';
7
- // TODO: impoer each validator independently via spread
8
- const field = new Validators();
9
-
10
- // App
11
- import { Currencies, MobilityModes } from '@/common/libs/hub';
12
-
13
- /*----------------------------------
14
- - SCHEMA
15
- ----------------------------------*/
16
- // TODO: Generate array list of possible values in @server/database
17
- export default new Schema({
18
-
19
- location: field.choice(),
20
- locationCity: field.string({ opt: true }),
21
-
22
- mobility: field.choice(MobilityModes),
23
- mobilityLocations: field.array( field.choice(), { opt: true }),
24
- hasVisa: field.array( field.choice(), { opt: true }),
25
-
26
- availability: field.string(),
27
-
28
- minSalaryExpect: field.int({ min: 0 }),
29
- //maxSalaryExpect: field.int({ opt: true, min: 0 }),
30
- salaryCurrency: field.choice(Currencies, { opt: true }),
31
- });
@@ -1,19 +0,0 @@
1
- /*----------------------------------
2
- - DEPENDANCES
3
- ----------------------------------*/
4
-
5
- // Core
6
- import { Schema, Validators } from '@common/validation';
7
- // TODO: impoer each validator independently via spread
8
- const field = new Validators();
9
-
10
- /*----------------------------------
11
- - SCHEMA
12
- ----------------------------------*/
13
- // TODO: Generate array list of possible values in @server/database
14
- export default new Schema({
15
- /*schools: field.string({ opt: true }),
16
- degreeSubject: field.string({ opt: true }),
17
- graduationLevel: field.string({ opt: true }),
18
- graduationYear: field.int({ opt: true }),*/
19
- });
@@ -1,31 +0,0 @@
1
- /*----------------------------------
2
- - DEPENDANCES
3
- ----------------------------------*/
4
-
5
- // Core
6
- import { Schema, Validators } from '@common/validation';
7
- // TODO: impoer each validator independently via spread
8
- const field = new Validators();
9
-
10
- // App
11
- import { Genders } from '@/common/libs/hub';
12
-
13
- /*----------------------------------
14
- - SCHEMA
15
- ----------------------------------*/
16
- // TODO: Generate array list of possible values in @server/database
17
- export default new Schema({
18
-
19
- firstName: field.string(),
20
- lastName: field.string(),
21
- gender: field.choice(Genders, { opt: true }),
22
-
23
- email: field.email(),
24
- phone: field.string({ opt: true }),
25
- linkedInUrl: field.url({
26
- opt: true,
27
- normalize: {
28
- removeQueryParameters: true
29
- }
30
- }),
31
- });
@@ -1,19 +0,0 @@
1
- /*----------------------------------
2
- - DEPENDANCES
3
- ----------------------------------*/
4
-
5
- // Core
6
- import { Schema, Validators } from '@common/validation';
7
-
8
- // TODO: impoer each validator independently via spread
9
- const field = new Validators();
10
-
11
- /*----------------------------------
12
- - SCHEMA
13
- ----------------------------------*/
14
- // TODO: Generate array list of possible values in @server/database
15
- export default new Schema({
16
-
17
- customQnA: field.string({ opt: true }),
18
- comments: field.string(),
19
- });
@@ -1,21 +0,0 @@
1
- /*----------------------------------
2
- - DEPENDANCES
3
- ----------------------------------*/
4
-
5
- // Core
6
- import { Schema, Validators } from '@common/validation';
7
-
8
- // TODO: impoer each validator independently via spread
9
- const field = new Validators();
10
-
11
- /*----------------------------------
12
- - SCHEMA
13
- ----------------------------------*/
14
- // TODO: Generate array list of possible values in @server/database
15
- export default new Schema({
16
- //softSkills: field.string({ opt: true }),
17
- hardSkills: field.array( field.choice() ),
18
- languages: field.array( field.choice(), {
19
- min: 1
20
- }),
21
- });
@@ -1,23 +0,0 @@
1
- /*----------------------------------
2
- - DEPENDANCES
3
- ----------------------------------*/
4
-
5
- // Core
6
- import { Schema, Validators } from '@common/validation';
7
-
8
- // TODO: impoer each validator independently via spread
9
- const field = new Validators();
10
-
11
- /*----------------------------------
12
- - SCHEMA
13
- ----------------------------------*/
14
- export default new Schema({
15
-
16
- missionId: field.string(),
17
-
18
- // TODO: Generate array list of possible values in @server/database
19
- reason: field.string(/*{ in: }*/),
20
-
21
- explanations: field.string({ opt: true }),
22
-
23
- });
@@ -1,78 +0,0 @@
1
- /*----------------------------------
2
- - DEPENDANCES
3
- ----------------------------------*/
4
-
5
- // Core
6
- import { Schema, Validators } from '@common/validation';
7
-
8
- // TODO: impoer each validator independently via spread
9
- const field = new Validators();
10
-
11
- /*----------------------------------
12
- - SCHEMA
13
- ----------------------------------*/
14
- export default new Schema({
15
-
16
- jobType: field.choice([{
17
- label: 'Full Time',
18
- value: 'fullTime'
19
- },{
20
- label: 'Freelance',
21
- value: 'freelance'
22
- }], { opt: true }),
23
-
24
- status: field.choice([{
25
- label: 'Active',
26
- value: 'Active'
27
- },{
28
- label: 'Paused',
29
- value: 'Paused'
30
- },{
31
- label: 'Closed',
32
- value: 'Closed'
33
- }], { opt: true, multiple: true }),
34
-
35
- sectors: field.choice(undefined, {
36
- multiple: true,
37
- opt: true
38
- }),
39
-
40
- positions: field.choice(undefined, {
41
- multiple: true,
42
- opt: true
43
- }),
44
-
45
- skills: field.choice(undefined, {
46
- multiple: true,
47
- opt: true
48
- }),
49
-
50
- languages: field.choice(undefined, {
51
- multiple: true,
52
- opt: true
53
- }),
54
-
55
- locations: field.choice(undefined, {
56
- multiple: true,
57
- opt: true
58
- }),
59
-
60
- companySizes: field.choice(undefined, {
61
- multiple: true,
62
- opt: true
63
- }),
64
-
65
- seniority: field.choice(undefined, {
66
- multiple: true,
67
- opt: true
68
- }),
69
-
70
- sort: field.choice([{
71
- label: 'Date Posted',
72
- value: 'Date Posted'
73
- },{
74
- label: 'Relevency',
75
- value: 'Relevency'
76
- }], { opt: true }),
77
-
78
- });
@@ -1,34 +0,0 @@
1
- /*----------------------------------
2
- - DEPENDANCES
3
- ----------------------------------*/
4
-
5
- // Core
6
- import { Schema, Validators } from '@common/validation';
7
-
8
- // TODO: impoer each validator independently via spread
9
- const field = new Validators();
10
-
11
- /*----------------------------------
12
- - SCHEMA
13
- ----------------------------------*/
14
- export default new Schema({
15
-
16
- firstName: field.string(),
17
-
18
- lastName: field.string(),
19
-
20
- email: field.email(),
21
-
22
- linkedInUrl: field.url(),
23
-
24
- phone: field.string(),
25
-
26
- password: field.string({ min: 10 }),
27
-
28
- // Tracking
29
-
30
- referrerId: field.string({ opt: true }),
31
- utm_medium: field.string({ opt: true }),
32
- utm_source: field.string({ opt: true }),
33
-
34
- });