@betterinternship/core 1.6.0 → 1.6.2

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.
@@ -0,0 +1,91 @@
1
+ import { IFormMetadata } from "@betterinternship/core/forms";
2
+ export interface OldIFormMetadata {
3
+ name: string;
4
+ label: string;
5
+ schema_version: number;
6
+ schema: OldIFormField[];
7
+ schema_phantoms?: OldIFormPhantomField[];
8
+ subscribers: OldIFormSubscriber[];
9
+ signatories: OldIFormSignatory[];
10
+ required_parties: OldIFormPendingParties[];
11
+ params?: OldIFormParams;
12
+ }
13
+ export interface OldIFormParams {
14
+ [key: string]: string | OldIFormParams;
15
+ }
16
+ export interface OldIFormContact {
17
+ name: string;
18
+ honorific: string;
19
+ title: string;
20
+ email: string;
21
+ }
22
+ export type OldIFormSubscriber = OldIFormContact;
23
+ export interface OldIFormSignatory extends OldIFormContact {
24
+ field: string;
25
+ }
26
+ export type OldIFormPendingParties = {
27
+ party: string;
28
+ order: number;
29
+ };
30
+ export interface OldIFormField {
31
+ field: string;
32
+ type: "text" | "signature";
33
+ x: number;
34
+ y: number;
35
+ w: number;
36
+ h: number;
37
+ page: number;
38
+ align_h?: "left" | "center" | "right";
39
+ align_v?: "top" | "middle" | "bottom";
40
+ label: string;
41
+ source: "auto" | "prefill" | "derived" | "manual";
42
+ party: "university" | "entity" | "student" | "student-guardian" | string;
43
+ shared: boolean;
44
+ descriptor?: boolean;
45
+ tooltip_label: string;
46
+ validator: string;
47
+ prefiller: string;
48
+ }
49
+ export interface OldIFormPhantomField {
50
+ field: string;
51
+ label: string;
52
+ type: "email" | "param";
53
+ source: "auto" | "prefill" | "derived" | "manual";
54
+ party: "university" | "entity" | "student" | "student-guardian" | string;
55
+ shared: boolean;
56
+ descriptor?: boolean;
57
+ tooltip_label: string;
58
+ validator: string;
59
+ prefiller: string;
60
+ }
61
+ export interface MigrationOptions {
62
+ partyIdStrategy?: "index" | "name" | "uuid";
63
+ accountIdStrategy?: "email-hash" | "uuid" | "email";
64
+ preserveDescriptors?: boolean;
65
+ partyMapping?: Record<string, string>;
66
+ accountMapping?: Record<string, string>;
67
+ }
68
+ export declare class FormMetadataMigrator {
69
+ private options;
70
+ private partyMap;
71
+ private accountMap;
72
+ private blockIdCounter;
73
+ constructor(options?: MigrationOptions);
74
+ migrate(oldForm: OldIFormMetadata): IFormMetadata;
75
+ private buildSigningParties;
76
+ private fieldsToBlocks;
77
+ private phantomFieldsToBlocks;
78
+ private migrateSubscribers;
79
+ private generateOrMapPartyId;
80
+ private getOrGeneratePartyId;
81
+ private generateOrMapAccountId;
82
+ private isSignatoryForParty;
83
+ private generateBlockId;
84
+ private hashEmail;
85
+ private generateUUID;
86
+ }
87
+ export declare function migrateFormMetadata(oldForm: OldIFormMetadata, options?: MigrationOptions): IFormMetadata;
88
+ export declare function migrateFormMetadataBatch(oldForms: OldIFormMetadata[], options?: MigrationOptions): IFormMetadata[];
89
+ export declare function isFormMetadataV0(form: any): boolean;
90
+ export declare function isFormMetadataV1(form: any): boolean;
91
+ export declare function autoMigrateFormMetadata(form: any, options?: MigrationOptions): IFormMetadata;
@@ -0,0 +1,225 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormMetadataMigrator = void 0;
4
+ exports.migrateFormMetadata = migrateFormMetadata;
5
+ exports.migrateFormMetadataBatch = migrateFormMetadataBatch;
6
+ exports.isFormMetadataV0 = isFormMetadataV0;
7
+ exports.isFormMetadataV1 = isFormMetadataV1;
8
+ exports.autoMigrateFormMetadata = autoMigrateFormMetadata;
9
+ const crypto_1 = require("crypto");
10
+ const forms_1 = require("@betterinternship/core/forms");
11
+ class FormMetadataMigrator {
12
+ options;
13
+ partyMap = new Map();
14
+ accountMap = new Map();
15
+ blockIdCounter = 0;
16
+ constructor(options = {}) {
17
+ this.options = {
18
+ partyIdStrategy: options.partyIdStrategy ?? "index",
19
+ accountIdStrategy: options.accountIdStrategy ?? "email-hash",
20
+ preserveDescriptors: options.preserveDescriptors ?? true,
21
+ partyMapping: options.partyMapping ?? {},
22
+ accountMapping: options.accountMapping ?? {},
23
+ };
24
+ }
25
+ migrate(oldForm) {
26
+ const signingParties = this.buildSigningParties(oldForm.required_parties, oldForm.signatories);
27
+ const fieldBlocks = this.fieldsToBlocks(oldForm.schema);
28
+ const phantomBlocks = this.phantomFieldsToBlocks(oldForm.schema_phantoms || []);
29
+ return {
30
+ name: oldForm.name,
31
+ label: oldForm.label,
32
+ schema_version: forms_1.SCHEMA_VERSION,
33
+ schema: {
34
+ blocks: [...fieldBlocks, ...phantomBlocks],
35
+ },
36
+ signing_parties: signingParties,
37
+ subscribers: this.migrateSubscribers(oldForm.subscribers),
38
+ };
39
+ }
40
+ buildSigningParties(requiredParties, signatories) {
41
+ return requiredParties
42
+ .sort((a, b) => a.order - b.order)
43
+ .map((party, index) => {
44
+ const partyId = this.generateOrMapPartyId(party.party, index);
45
+ this.partyMap.set(party.party, partyId);
46
+ const matchingSignatory = signatories.find((sig) => this.isSignatoryForParty(sig.field, party.party));
47
+ const signingParty = {
48
+ _id: partyId,
49
+ order: party.order,
50
+ signed: false,
51
+ };
52
+ if (matchingSignatory) {
53
+ const accountId = this.generateOrMapAccountId(matchingSignatory.field, matchingSignatory.email);
54
+ this.accountMap.set(matchingSignatory.field, accountId);
55
+ signingParty.signatory_account = {
56
+ account_id: accountId,
57
+ name: matchingSignatory.name,
58
+ email: matchingSignatory.email,
59
+ title: matchingSignatory.title,
60
+ honorific: matchingSignatory.honorific,
61
+ };
62
+ }
63
+ return signingParty;
64
+ });
65
+ }
66
+ fieldsToBlocks(oldFields) {
67
+ return oldFields
68
+ .sort((a, b) => {
69
+ if (a.page !== b.page)
70
+ return a.page - b.page;
71
+ if (a.y !== b.y)
72
+ return a.y - b.y;
73
+ return a.x - b.x;
74
+ })
75
+ .map((field, index) => {
76
+ const partyId = this.getOrGeneratePartyId(field.party);
77
+ const newField = {
78
+ field: field.field,
79
+ type: field.type,
80
+ x: field.x,
81
+ y: field.y,
82
+ w: field.w,
83
+ h: field.h,
84
+ page: field.page,
85
+ align_h: field.align_h,
86
+ align_v: field.align_v,
87
+ label: field.label,
88
+ tooltip_label: field.tooltip_label,
89
+ shared: field.shared,
90
+ signing_party_id: partyId,
91
+ source: field.source,
92
+ validator: field.validator,
93
+ prefiller: field.prefiller,
94
+ };
95
+ const block = {
96
+ _id: this.generateBlockId("field", index),
97
+ block_type: "form_field",
98
+ order: index,
99
+ signing_party_id: partyId,
100
+ field_schema: newField,
101
+ };
102
+ return block;
103
+ });
104
+ }
105
+ phantomFieldsToBlocks(oldPhantomFields) {
106
+ return oldPhantomFields.map((phantom, index) => {
107
+ const partyId = this.getOrGeneratePartyId(phantom.party);
108
+ const fieldType = phantom.type === "email" ? "text" : "text";
109
+ const newPhantomField = {
110
+ field: phantom.field,
111
+ type: fieldType,
112
+ label: phantom.label,
113
+ tooltip_label: phantom.tooltip_label,
114
+ shared: phantom.shared,
115
+ signing_party_id: partyId,
116
+ source: phantom.source,
117
+ validator: phantom.validator,
118
+ prefiller: phantom.prefiller,
119
+ };
120
+ const block = {
121
+ _id: this.generateBlockId("phantom", index),
122
+ block_type: "form_phantom_field",
123
+ order: index + 1000,
124
+ signing_party_id: partyId,
125
+ phantom_field_schema: newPhantomField,
126
+ };
127
+ return block;
128
+ });
129
+ }
130
+ migrateSubscribers(oldSubscribers) {
131
+ return oldSubscribers.map((subscriber) => {
132
+ const accountId = this.generateOrMapAccountId(`subscriber-${subscriber.email}`, subscriber.email);
133
+ return {
134
+ account_id: accountId,
135
+ name: subscriber.name,
136
+ email: subscriber.email,
137
+ };
138
+ });
139
+ }
140
+ generateOrMapPartyId(partyName, index) {
141
+ if (this.options.partyMapping[partyName]) {
142
+ return this.options.partyMapping[partyName];
143
+ }
144
+ switch (this.options.partyIdStrategy) {
145
+ case "name":
146
+ return `party-${partyName.toLowerCase().replace(/\s+/g, "-")}`;
147
+ case "uuid":
148
+ return `party-${this.generateUUID()}`;
149
+ case "index":
150
+ default:
151
+ return `party-${index}`;
152
+ }
153
+ }
154
+ getOrGeneratePartyId(partyName) {
155
+ if (this.partyMap.has(partyName)) {
156
+ return this.partyMap.get(partyName);
157
+ }
158
+ const id = this.generateOrMapPartyId(partyName, this.partyMap.size);
159
+ this.partyMap.set(partyName, id);
160
+ return id;
161
+ }
162
+ generateOrMapAccountId(key, email) {
163
+ if (this.options.accountMapping[key]) {
164
+ return this.options.accountMapping[key];
165
+ }
166
+ switch (this.options.accountIdStrategy) {
167
+ case "email":
168
+ return email;
169
+ case "uuid":
170
+ return `account-${this.generateUUID()}`;
171
+ case "email-hash":
172
+ default:
173
+ return `account-${this.hashEmail(email)}`;
174
+ }
175
+ }
176
+ isSignatoryForParty(field, party) {
177
+ const fieldPrefix = field.split(".")[0];
178
+ const partyPrefix = party.replace("-", "_");
179
+ return fieldPrefix.toLowerCase() === partyPrefix.toLowerCase() || field.includes(party);
180
+ }
181
+ generateBlockId(type, index) {
182
+ return `block-${type}-${this.blockIdCounter++}`;
183
+ }
184
+ hashEmail(email) {
185
+ return crypto_1.default.createHash("sha256").update(email).digest("hex").slice(0, 12);
186
+ }
187
+ generateUUID() {
188
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
189
+ const r = (Math.random() * 16) | 0;
190
+ const v = c === "x" ? r : (r & 0x3) | 0x8;
191
+ return v.toString(16);
192
+ });
193
+ }
194
+ }
195
+ exports.FormMetadataMigrator = FormMetadataMigrator;
196
+ function migrateFormMetadata(oldForm, options) {
197
+ const migrator = new FormMetadataMigrator(options);
198
+ return migrator.migrate(oldForm);
199
+ }
200
+ function migrateFormMetadataBatch(oldForms, options) {
201
+ const migrator = new FormMetadataMigrator(options);
202
+ return oldForms.map((form) => migrator.migrate(form));
203
+ }
204
+ function isFormMetadataV0(form) {
205
+ return (form.schema_version === 0 &&
206
+ Array.isArray(form.schema) &&
207
+ Array.isArray(form.required_parties) &&
208
+ Array.isArray(form.signatories));
209
+ }
210
+ function isFormMetadataV1(form) {
211
+ return (form.schema_version === 1 &&
212
+ form.schema &&
213
+ Array.isArray(form.schema.blocks) &&
214
+ Array.isArray(form.signing_parties));
215
+ }
216
+ function autoMigrateFormMetadata(form, options) {
217
+ if (isFormMetadataV0(form)) {
218
+ return migrateFormMetadata(form, options);
219
+ }
220
+ if (isFormMetadataV1(form)) {
221
+ return form;
222
+ }
223
+ throw new Error(`Unknown form metadata version: ${form.schema_version}`);
224
+ }
225
+ //# sourceMappingURL=form-metadata-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-metadata-migration.js","sourceRoot":"","sources":["../../../../../Code-MOA-Client/lib/legacy/form-metadata-migration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from './lib/chat';
2
+ export * from './lib/env';
3
+ export * from './lib/notice';
4
+ export * from './lib/email';
5
+ export * from './lib/forms';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./lib/chat"), exports);
18
+ __exportStar(require("./lib/env"), exports);
19
+ __exportStar(require("./lib/notice"), exports);
20
+ __exportStar(require("./lib/email"), exports);
21
+ __exportStar(require("./lib/forms"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,4CAA0B;AAC1B,+CAA6B;AAC7B,8CAA4B;AAC5B,8CAA4B"}
@@ -0,0 +1,4 @@
1
+ export * from './form-metadata';
2
+ export * from '../../../Code-MOA-Client/lib/legacy/form-metadata-migration';
3
+ export * from './fields.client';
4
+ export * from './fields.server';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./form-metadata"), exports);
18
+ __exportStar(require("../../../Code-MOA-Client/lib/legacy/form-metadata-migration"), exports);
19
+ __exportStar(require("./fields.client"), exports);
20
+ __exportStar(require("./fields.server"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/forms/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,8FAA4E;AAC5E,kDAAgC;AAChC,kDAAgC"}
@@ -1,6 +1,6 @@
1
- export declare const sendSingleEmail: ({ sender, subject, recipient, content, }: {
2
- sender?: string;
3
- subject: string;
4
- recipient: string;
5
- content: string;
6
- }) => void;
1
+ export declare const sendSingleEmail: ({ sender, subject, recipient, content, }: {
2
+ sender?: string;
3
+ subject: string;
4
+ recipient: string;
5
+ content: string;
6
+ }) => void;
@@ -1,40 +1,40 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sendSingleEmail = void 0;
4
- const nodemailer = require("nodemailer");
5
- const uuid_1 = require("uuid");
6
- const env_1 = require("../env");
7
- const SMTP_EMAIL = env_1.ENV.SMTP_EMAIL;
8
- const SMTP_PASSWORD = env_1.ENV.SMTP_PASSWORD;
9
- if (!SMTP_EMAIL || !SMTP_PASSWORD)
10
- throw Error('[ERROR:ENV]: Missing SMTP setup.');
11
- const transporter = nodemailer.createTransport({
12
- service: 'Gmail',
13
- host: 'smtp.gmail.com',
14
- port: 465,
15
- secure: true,
16
- auth: {
17
- user: SMTP_EMAIL,
18
- pass: SMTP_PASSWORD,
19
- },
20
- messageId: `${(0, uuid_1.v4)()}${SMTP_EMAIL}`,
21
- });
22
- const sendSingleEmail = ({ sender, subject, recipient, content, }) => {
23
- transporter.sendMail({
24
- from: `"${sender ?? 'BetterInternship'}" <${SMTP_EMAIL}>`,
25
- to: recipient,
26
- subject,
27
- html: content,
28
- }, (error, info) => {
29
- if (error) {
30
- console.error('[ERROR] Could not send email.');
31
- console.error('[-----] ' + error.message);
32
- }
33
- else {
34
- console.warn('[LOG] Email sent to ' + recipient);
35
- }
36
- });
37
- return;
38
- };
39
- exports.sendSingleEmail = sendSingleEmail;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendSingleEmail = void 0;
4
+ const nodemailer = require("nodemailer");
5
+ const uuid_1 = require("uuid");
6
+ const env_1 = require("../env");
7
+ const SMTP_EMAIL = env_1.ENV.SMTP_EMAIL;
8
+ const SMTP_PASSWORD = env_1.ENV.SMTP_PASSWORD;
9
+ if (!SMTP_EMAIL || !SMTP_PASSWORD)
10
+ throw Error('[ERROR:ENV]: Missing SMTP setup.');
11
+ const transporter = nodemailer.createTransport({
12
+ service: 'Gmail',
13
+ host: 'smtp.gmail.com',
14
+ port: 465,
15
+ secure: true,
16
+ auth: {
17
+ user: SMTP_EMAIL,
18
+ pass: SMTP_PASSWORD,
19
+ },
20
+ messageId: `${(0, uuid_1.v4)()}${SMTP_EMAIL}`,
21
+ });
22
+ const sendSingleEmail = ({ sender, subject, recipient, content, }) => {
23
+ transporter.sendMail({
24
+ from: `"${sender ?? 'BetterInternship'}" <${SMTP_EMAIL}>`,
25
+ to: recipient,
26
+ subject,
27
+ html: content,
28
+ }, (error, info) => {
29
+ if (error) {
30
+ console.error('[ERROR] Could not send email.');
31
+ console.error('[-----] ' + error.message);
32
+ }
33
+ else {
34
+ console.warn('[LOG] Email sent to ' + recipient);
35
+ }
36
+ });
37
+ return;
38
+ };
39
+ exports.sendSingleEmail = sendSingleEmail;
40
40
  //# sourceMappingURL=email.js.map