@betterinternship/core 2.22.1 → 2.23.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/README.md CHANGED
@@ -1,26 +1,26 @@
1
- # Package.Core
2
-
3
- Contains dependencies shared between the different services of the site.
4
-
5
- ## How to update
6
-
7
- 1. Build the package:
8
-
9
- ```bash
10
- npm run build
11
- ```
12
-
13
- 2. Commit the build:
14
-
15
- ```bash
16
- git add .
17
- git commit -m "<follow conventional commits, k thanks>"
18
- git push
19
- ```
20
-
21
- 3. Update the version and publish the package to NPM:
22
-
23
- ```bash
24
- npm version <patch|minor|major>
25
- npm publish
26
- ```
1
+ # Package.Core
2
+
3
+ Contains dependencies shared between the different services of the site.
4
+
5
+ ## How to update
6
+
7
+ 1. Build the package:
8
+
9
+ ```bash
10
+ npm run build
11
+ ```
12
+
13
+ 2. Commit the build:
14
+
15
+ ```bash
16
+ git add .
17
+ git commit -m "<follow conventional commits, k thanks>"
18
+ git push
19
+ ```
20
+
21
+ 3. Update the version and publish the package to NPM:
22
+
23
+ ```bash
24
+ npm version <patch|minor|major>
25
+ npm publish
26
+ ```
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './lib/env.js';
2
2
  export * from './lib/email/index.js';
3
3
  export * from './lib/forms/index.js';
4
+ export * from './lib/partners/forms/index.js';
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './lib/env.js';
2
2
  export * from './lib/email/index.js';
3
3
  export * from './lib/forms/index.js';
4
+ export * from './lib/partners/forms/index.js';
4
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC"}
@@ -5,14 +5,14 @@ const LONG_TEXT_VALIDATOR = `${TEXT_PREPROCESS}z.string().describe("textarea"))`
5
5
  const NUMBER_VALIDATOR = 'z.number()';
6
6
  const SIGNATURE_VALIDATOR = `${TEXT_PREPROCESS}z.string().nonempty({ message: "This field is required." }))`;
7
7
  const DROPDOWN_VALIDATOR = `z.enum(["Option 1", "Option 2"], {message:"This field is required."})`;
8
- const MULTISELECT_VALIDATOR = `z.array(
9
- z.enum(
10
- [
11
- "Option 1",
12
- "Option 2"
13
- ],
14
- { message: "This field is required." }
15
- )
8
+ const MULTISELECT_VALIDATOR = `z.array(
9
+ z.enum(
10
+ [
11
+ "Option 1",
12
+ "Option 2"
13
+ ],
14
+ { message: "This field is required." }
15
+ )
16
16
  ).describe("multiselect")`;
17
17
  const DATE_VALIDATOR = 'z.coerce.date()';
18
18
  const TIME_VALIDATOR = 'z.string().describe("time")';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/forms/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/forms/index.ts"],"names":[],"mappings":"AASA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './signer-fields.js';
@@ -0,0 +1,2 @@
1
+ export * from './signer-fields.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/partners/forms/index.ts"],"names":[],"mappings":"AASA,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,20 @@
1
+ export declare const MAX_COMPANY_SIGNATORIES = 2;
2
+ export declare const MAX_UNIVERSITY_SIGNATORIES = 5;
3
+ export type SignerParty = 'company' | 'university';
4
+ export type SignerProp = 'name' | 'title' | 'signature';
5
+ export declare const signerFieldPrefix: (party: SignerParty, index: number) => string;
6
+ export declare const signerFieldAliases: (party: SignerParty, index: number) => string[];
7
+ export declare const signerFieldKeys: (party: SignerParty, index: number, prop: SignerProp) => string[];
8
+ export declare const signatureFieldIdentity: (fieldKey: string) => string | null;
9
+ export interface CompanySignerRequirements {
10
+ name: boolean;
11
+ title: boolean;
12
+ signature: boolean;
13
+ }
14
+ export interface CompanySignatoryRequirements {
15
+ signer1: CompanySignerRequirements;
16
+ signer2: CompanySignerRequirements;
17
+ }
18
+ export declare const deriveCompanySignatoryRequirements: (fieldSchema: unknown) => CompanySignatoryRequirements;
19
+ export declare const requiresSigner1: (req: CompanySignatoryRequirements) => boolean;
20
+ export declare const requiresSigner2: (req: CompanySignatoryRequirements) => boolean;
@@ -0,0 +1,62 @@
1
+ export const MAX_COMPANY_SIGNATORIES = 2;
2
+ export const MAX_UNIVERSITY_SIGNATORIES = 5;
3
+ export const signerFieldPrefix = (party, index) => {
4
+ const base = party === 'company' ? 'company_signatory' : 'university_signatory';
5
+ return index === 0 ? base : `${base}_${index + 1}`;
6
+ };
7
+ export const signerFieldAliases = (party, index) => {
8
+ if (party === 'company' && index === 0)
9
+ return ['company_rep'];
10
+ return [];
11
+ };
12
+ export const signerFieldKeys = (party, index, prop) => [
13
+ signerFieldPrefix(party, index),
14
+ ...signerFieldAliases(party, index),
15
+ ].map((prefix) => `${prefix}_${prop}`);
16
+ const SIGNATURE_IDENTITY = {};
17
+ for (let index = 0; index < MAX_COMPANY_SIGNATORIES; index++) {
18
+ for (const key of signerFieldKeys('company', index, 'signature')) {
19
+ SIGNATURE_IDENTITY[key] = `company:${index}`;
20
+ }
21
+ }
22
+ for (let index = 0; index < MAX_UNIVERSITY_SIGNATORIES; index++) {
23
+ for (const key of signerFieldKeys('university', index, 'signature')) {
24
+ SIGNATURE_IDENTITY[key] = `university:${index}`;
25
+ }
26
+ }
27
+ export const signatureFieldIdentity = (fieldKey) => SIGNATURE_IDENTITY[fieldKey] ?? null;
28
+ const NONE = {
29
+ signer1: { name: false, title: false, signature: false },
30
+ signer2: { name: false, title: false, signature: false },
31
+ };
32
+ export const deriveCompanySignatoryRequirements = (fieldSchema) => {
33
+ if (!Array.isArray(fieldSchema))
34
+ return NONE;
35
+ const fields = new Set(fieldSchema
36
+ .filter((e) => !!e && typeof e === 'object')
37
+ .map((e) => e.field)
38
+ .filter((f) => typeof f === 'string'));
39
+ const has = (keys) => keys.some((k) => fields.has(k));
40
+ const signer1 = {
41
+ name: has(signerFieldKeys('company', 0, 'name')),
42
+ title: has(signerFieldKeys('company', 0, 'title')),
43
+ signature: has(signerFieldKeys('company', 0, 'signature')),
44
+ };
45
+ const signer2 = {
46
+ name: has(signerFieldKeys('company', 1, 'name')),
47
+ title: has(signerFieldKeys('company', 1, 'title')),
48
+ signature: has(signerFieldKeys('company', 1, 'signature')),
49
+ };
50
+ if (signer1.name ||
51
+ signer1.title ||
52
+ signer1.signature ||
53
+ signer2.name ||
54
+ signer2.title ||
55
+ signer2.signature) {
56
+ return { signer1, signer2 };
57
+ }
58
+ return NONE;
59
+ };
60
+ export const requiresSigner1 = (req) => req.signer1.name || req.signer1.title || req.signer1.signature;
61
+ export const requiresSigner2 = (req) => req.signer2.name || req.signer2.title || req.signer2.signature;
62
+ //# sourceMappingURL=signer-fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer-fields.js","sourceRoot":"","sources":["../../../../lib/partners/forms/signer-fields.ts"],"names":[],"mappings":"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"}
@@ -77,13 +77,13 @@ export const ensurePreviewFontsLoaded = () => {
77
77
  if (!document.getElementById(PREVIEW_FONT_STYLE_ID)) {
78
78
  const style = document.createElement("style");
79
79
  style.id = PREVIEW_FONT_STYLE_ID;
80
- style.textContent = `
81
- @font-face {
82
- font-family: "MegastinaPreview";
83
- src: url("/fonts/megastina.regular.ttf") format("truetype");
84
- font-weight: 400;
85
- font-style: normal;
86
- font-display: block;
80
+ style.textContent = `
81
+ @font-face {
82
+ font-family: "MegastinaPreview";
83
+ src: url("/fonts/megastina.regular.ttf") format("truetype");
84
+ font-weight: 400;
85
+ font-style: normal;
86
+ font-display: block;
87
87
  }`;
88
88
  document.head.appendChild(style);
89
89
  }