@betterinternship/core 2.0.5 → 2.1.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.
@@ -1,16 +1,16 @@
1
- import PocketBase from "pocketbase";
2
- import { ENV } from "../env";
3
- let _pb = {};
4
- if (!ENV.BICORE_IGNORE_POCKETBASE) {
5
- _pb = new PocketBase(ENV.PB_URL);
6
- _pb.autoCancellation(false);
7
- }
8
- export const pb = _pb;
9
- export const authenticatePocketbase = async () => {
10
- await _pb
11
- .collection("_superusers")
12
- .authWithPassword(ENV.PB_ADMIN_EMAIL, ENV.PB_ADMIN_PASSWORD, { autoRefreshThreshold: 30 * 60 });
13
- };
14
- if (!ENV.BICORE_IGNORE_POCKETBASE)
15
- authenticatePocketbase();
1
+ import PocketBase from 'pocketbase';
2
+ import { ENV } from '../env.js';
3
+ let _pb = {};
4
+ if (!ENV.BICORE_IGNORE_POCKETBASE) {
5
+ _pb = new PocketBase(ENV.PB_URL);
6
+ _pb.autoCancellation(false);
7
+ }
8
+ export const pb = _pb;
9
+ export const authenticatePocketbase = async () => {
10
+ await _pb
11
+ .collection('_superusers')
12
+ .authWithPassword(ENV.PB_ADMIN_EMAIL, ENV.PB_ADMIN_PASSWORD, { autoRefreshThreshold: 30 * 60 });
13
+ };
14
+ if (!ENV.BICORE_IGNORE_POCKETBASE)
15
+ authenticatePocketbase();
16
16
  //# sourceMappingURL=pb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pb.js","sourceRoot":"","sources":["../../../lib/chat/pb.ts"],"names":[],"mappings":"AASA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,IAAI,GAAG,GAAe,EAAgB,CAAC;AAEvC,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC;IAClC,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;AACtB,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,IAAI,EAAE;IAC/C,MAAM,GAAG;SACN,UAAU,CAAC,aAAa,CAAC;SACzB,gBAAgB,CACf,GAAG,CAAC,cAAwB,EAC5B,GAAG,CAAC,iBAA2B,EAC/B,EAAE,oBAAoB,EAAE,EAAE,GAAG,EAAE,EAAE,CAClC,CAAC;AACN,CAAC,CAAC;AAGF,IAAI,CAAC,GAAG,CAAC,wBAAwB;IAAE,sBAAsB,EAAE,CAAC"}
1
+ {"version":3,"file":"pb.js","sourceRoot":"","sources":["../../../lib/chat/pb.ts"],"names":[],"mappings":"AASA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC,IAAI,GAAG,GAAe,EAAgB,CAAC;AAEvC,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC;IAClC,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;AACtB,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,IAAI,EAAE;IAC/C,MAAM,GAAG;SACN,UAAU,CAAC,aAAa,CAAC;SACzB,gBAAgB,CACf,GAAG,CAAC,cAAwB,EAC5B,GAAG,CAAC,iBAA2B,EAC/B,EAAE,oBAAoB,EAAE,EAAE,GAAG,EAAE,EAAE,CAClC,CAAC;AACN,CAAC,CAAC;AAGF,IAAI,CAAC,GAAG,CAAC,wBAAwB;IAAE,sBAAsB,EAAE,CAAC"}
@@ -1,67 +1,67 @@
1
- import { TransactionalEmailsApi } from '@getbrevo/brevo';
2
- import * as nodemailer from 'nodemailer';
3
- import { v4 } from 'uuid';
4
- import { ENV } from '../env';
5
- const SMTP_EMAIL = ENV.SMTP_EMAIL;
6
- const SMTP_PASSWORD = ENV.SMTP_PASSWORD;
7
- if (!SMTP_EMAIL || !SMTP_PASSWORD)
8
- throw Error('[ERROR:ENV]: Missing SMTP setup.');
9
- let transacApi = null;
10
- if (process.env.NODE_ENV !== 'development') {
11
- const BREVO_API_KEY = process.env.BREVO_API_KEY;
12
- if (!BREVO_API_KEY)
13
- throw Error('[ERROR:ENV]: Missing Brevo setup.');
14
- transacApi = new TransactionalEmailsApi();
15
- transacApi.setApiKey(0, BREVO_API_KEY);
16
- }
17
- const transporter = nodemailer.createTransport({
18
- service: 'Gmail',
19
- host: 'smtp.gmail.com',
20
- port: 465,
21
- secure: true,
22
- auth: {
23
- user: SMTP_EMAIL,
24
- pass: SMTP_PASSWORD,
25
- },
26
- messageId: `${v4()}${SMTP_EMAIL}`,
27
- });
28
- export const sendSingleEmail = async ({ sender, subject, recipient, content, alias = 'hello', }) => {
29
- if (process.env.NODE_ENV === 'development' || true) {
30
- return new Promise((resolve, reject) => {
31
- transporter.sendMail({
32
- from: `"${sender ?? 'BetterInternship'}" <${alias}@betterinternship.com>`,
33
- to: recipient,
34
- subject,
35
- html: content,
36
- }, (error, info) => {
37
- if (error) {
38
- console.error('[ERROR] Could not send email.');
39
- console.error('[-----] ' + error.message);
40
- }
41
- else {
42
- resolve({
43
- messageId: info.messageId,
44
- response: info.response,
45
- });
46
- console.warn('[LOG] Email sent to ' + recipient);
47
- }
48
- });
49
- });
50
- }
51
- else {
52
- const response = await transacApi?.sendTransacEmail({
53
- sender: {
54
- email: `"${sender ?? 'BetterInternship'}" <${alias}@betterinternship.com>`,
55
- },
56
- to: [{ email: recipient }],
57
- subject,
58
- htmlContent: content,
59
- });
60
- console.warn('[LOG] Email sent to ' + recipient);
61
- return {
62
- messageId: response?.body?.messageId,
63
- response: response?.response,
64
- };
65
- }
66
- };
1
+ import { TransactionalEmailsApi } from '@getbrevo/brevo';
2
+ import * as nodemailer from 'nodemailer';
3
+ import { v4 } from 'uuid';
4
+ import { ENV } from '../env.js';
5
+ const SMTP_EMAIL = ENV.SMTP_EMAIL;
6
+ const SMTP_PASSWORD = ENV.SMTP_PASSWORD;
7
+ if (!SMTP_EMAIL || !SMTP_PASSWORD)
8
+ throw Error('[ERROR:ENV]: Missing SMTP setup.');
9
+ let transacApi = null;
10
+ if (process.env.NODE_ENV !== 'development') {
11
+ const BREVO_API_KEY = process.env.BREVO_API_KEY;
12
+ if (!BREVO_API_KEY)
13
+ throw Error('[ERROR:ENV]: Missing Brevo setup.');
14
+ transacApi = new TransactionalEmailsApi();
15
+ transacApi.setApiKey(0, BREVO_API_KEY);
16
+ }
17
+ const transporter = nodemailer.createTransport({
18
+ service: 'Gmail',
19
+ host: 'smtp.gmail.com',
20
+ port: 465,
21
+ secure: true,
22
+ auth: {
23
+ user: SMTP_EMAIL,
24
+ pass: SMTP_PASSWORD,
25
+ },
26
+ messageId: `${v4()}${SMTP_EMAIL}`,
27
+ });
28
+ export const sendSingleEmail = async ({ sender, subject, recipient, content, alias = 'hello', }) => {
29
+ if (process.env.NODE_ENV === 'development' || true) {
30
+ return new Promise((resolve, reject) => {
31
+ transporter.sendMail({
32
+ from: `"${sender ?? 'BetterInternship'}" <${alias}@betterinternship.com>`,
33
+ to: recipient,
34
+ subject,
35
+ html: content,
36
+ }, (error, info) => {
37
+ if (error) {
38
+ console.error('[ERROR] Could not send email.');
39
+ console.error('[-----] ' + error.message);
40
+ }
41
+ else {
42
+ resolve({
43
+ messageId: info.messageId,
44
+ response: info.response,
45
+ });
46
+ console.warn('[LOG] Email sent to ' + recipient);
47
+ }
48
+ });
49
+ });
50
+ }
51
+ else {
52
+ const response = await transacApi?.sendTransacEmail({
53
+ sender: {
54
+ email: `"${sender ?? 'BetterInternship'}" <${alias}@betterinternship.com>`,
55
+ },
56
+ to: [{ email: recipient }],
57
+ subject,
58
+ htmlContent: content,
59
+ });
60
+ console.warn('[LOG] Email sent to ' + recipient);
61
+ return {
62
+ messageId: response?.body?.messageId,
63
+ response: response?.response,
64
+ };
65
+ }
66
+ };
67
67
  //# sourceMappingURL=email.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"email.js","sourceRoot":"","sources":["../../../lib/email/email.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"email.js","sourceRoot":"","sources":["../../../lib/email/email.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ZodType } from 'zod';
2
- import { BLOCK_TYPES, IFormField, IFormFieldPrefiller, IFormFieldValidator, IFormPhantomField, IFormSigningParty } from './form-metadata';
2
+ import { BLOCK_TYPES, IFormField, IFormFieldPrefiller, IFormFieldValidator, IFormPhantomField, IFormSigningParty } from './form-metadata.js';
3
3
  import { EnumValue } from 'zod/v4/core/util.cjs';
4
4
  export declare const getSchemaClientType: (s: ZodType) => ClientFieldType;
5
5
  export type ClientFieldType = 'text' | 'number' | 'date' | 'dropdown' | 'checkbox' | 'textarea' | 'multiselect' | 'time' | 'signature';
@@ -1,21 +1,21 @@
1
- import z from 'zod';
2
- export const getSchemaClientType = (s) => {
3
- const infer = s.type;
4
- const desc = s.description;
5
- if (infer === 'date' || desc === 'date')
6
- return 'date';
7
- if (infer === 'number' || desc === 'number')
8
- return 'number';
9
- if (infer === 'enum' || desc === 'dropdown')
10
- return 'dropdown';
11
- if (infer === 'boolean' || desc === 'checkbox')
12
- return 'checkbox';
13
- if (s instanceof z.ZodArray && desc === 'multiselect')
14
- return 'multiselect';
15
- if (desc === 'textarea')
16
- return 'textarea';
17
- if (desc === 'time')
18
- return 'time';
19
- return 'text';
20
- };
1
+ import z from 'zod';
2
+ export const getSchemaClientType = (s) => {
3
+ const infer = s.type;
4
+ const desc = s.description;
5
+ if (infer === 'date' || desc === 'date')
6
+ return 'date';
7
+ if (infer === 'number' || desc === 'number')
8
+ return 'number';
9
+ if (infer === 'enum' || desc === 'dropdown')
10
+ return 'dropdown';
11
+ if (infer === 'boolean' || desc === 'checkbox')
12
+ return 'checkbox';
13
+ if (s instanceof z.ZodArray && desc === 'multiselect')
14
+ return 'multiselect';
15
+ if (desc === 'textarea')
16
+ return 'textarea';
17
+ if (desc === 'time')
18
+ return 'time';
19
+ return 'text';
20
+ };
21
21
  //# sourceMappingURL=fields.client.js.map
@@ -1,127 +1,127 @@
1
- import { ZodType } from 'zod';
2
- import { ClientBlock, ClientField, ClientPhantomField } from './fields.client';
3
- import { ServerField } from './fields.server';
4
- export type FormValues = Record<string, string>;
5
- export type FormErrors = Record<string, string>;
6
- export declare const SCHEMA_VERSION = 1;
7
- export declare const FIELD_TYPES: string[];
8
- export declare const BLOCK_TYPES: string[];
9
- export declare const ALIGN_H: string[];
10
- export declare const ALIGN_V: string[];
11
- export declare const SOURCES: string[];
12
- export interface IFormMetadata {
13
- name: string;
14
- label: string;
15
- schema_version: number;
16
- schema: IForm;
17
- signing_parties: IFormSigningParty[];
18
- subscribers?: IFormSubscriber[];
19
- }
20
- export type IFormSubscriber = {
21
- email: string;
22
- };
23
- export interface IFormSignatory {
24
- name?: string;
25
- email: string;
26
- title?: string;
27
- honorific?: string;
28
- }
29
- export interface IFormSigningParty {
30
- _id: string;
31
- order: number;
32
- signatory_title: string;
33
- signatory_account?: IFormSignatory;
34
- signatory_source?: {
35
- _id: string;
36
- label: string;
37
- tooltip_label: string;
38
- };
39
- signed?: boolean;
40
- }
41
- export interface IFormSignee {
42
- name: string;
43
- sourceEmail: string;
44
- title?: string;
45
- honorific?: string;
46
- signedDate?: number;
47
- }
48
- export interface IForm {
49
- blocks: IFormBlock[];
50
- }
51
- export interface IFormBlock {
52
- _id: string;
53
- block_type: (typeof BLOCK_TYPES)[number];
54
- order: number;
55
- signing_party_id: IFormSigningParty['_id'];
56
- text_content?: string;
57
- field_schema?: IFormField;
58
- phantom_field_schema?: IFormPhantomField;
59
- }
60
- export interface IFormField {
61
- field: string;
62
- type: 'text' | 'signature' | 'image';
63
- x: number;
64
- y: number;
65
- w: number;
66
- h: number;
67
- page: number;
68
- align_h?: (typeof ALIGN_H)[number];
69
- align_v?: (typeof ALIGN_V)[number];
70
- label: string;
71
- tooltip_label: string;
72
- shared: boolean;
73
- source: (typeof SOURCES)[number];
74
- prefiller?: string;
75
- validator?: string;
76
- size?: number;
77
- wrap?: boolean;
78
- }
79
- export interface IFormPhantomField {
80
- field: string;
81
- type: 'text' | 'signature' | 'image';
82
- label: string;
83
- tooltip_label: string;
84
- shared: boolean;
85
- source: (typeof SOURCES)[number];
86
- prefiller?: string;
87
- validator?: string;
88
- }
89
- export interface IFormParameters {
90
- [key: string]: string | ZodType;
91
- }
92
- export type IFormSourceDomains<SourceDomains extends any[]> = Record<string, SourceDomains[number]>;
93
- export type IFormFieldValidator = ZodType;
94
- export type IFormFieldPrefiller<SourceDomains extends any[]> = (sourceDomains: IFormSourceDomains<SourceDomains>) => string;
95
- export declare class FormMetadata<SourceDomains extends any[]> {
96
- private readonly formMetadata;
97
- private readonly blocks;
98
- constructor(formMetadata: IFormMetadata);
99
- getBlocksForClientService(signingPartyId?: string): ClientBlock<SourceDomains>[];
100
- getSigningPartyBlocks(signingPartyId: string): ClientBlock<SourceDomains>[];
101
- getSigningPartyFields(signingPartyId: string): (ClientField<SourceDomains> | ClientPhantomField<SourceDomains>)[];
102
- static getSigningPartyValues(signingParties: IFormSigningParty[], values: FormValues): Record<string, IFormSignatory>;
103
- private getFields;
104
- private getField;
105
- private getPhantomFields;
106
- private getPhantomField;
107
- encodeAsJSON(): string;
108
- static decodeFromJSON<SourceDomains extends any[]>(json: string): FormMetadata<SourceDomains>;
109
- getLabel(): string;
110
- private getFieldForClientService;
111
- getFieldsForClientService(signingPartyId?: string, sourceDomains?: IFormSourceDomains<SourceDomains>, derivationBase?: IFormParameters): (ClientField<SourceDomains> | ClientPhantomField<SourceDomains>)[];
112
- getSignatureFieldsForClientService(signingPartyId: string): (ClientField<SourceDomains> | ClientPhantomField<SourceDomains>)[];
113
- getSignatureValueForSigningParty(values: FormValues, signingPartyId: string): string;
114
- setSignatureValueForSigningParty(values: FormValues, signatureString: string, signingPartyId: string): FormValues;
115
- getFieldsForEditorService(): IFormField[];
116
- getPhantomFieldsForEditorService(): IFormPhantomField[];
117
- getBlocksForEditorService(): IFormBlock[];
118
- getFieldsForSigningService(): ServerField[];
119
- inferParams(): string[];
120
- private parseValidator;
121
- private parsePrefiller;
122
- private enumerateParams;
123
- private populateParams;
124
- getSubscribers(): IFormSubscriber[];
125
- getSigningParties(): IFormSigningParty[];
126
- mayInvolveEsign(): boolean;
127
- }
1
+ import { ZodType } from 'zod';
2
+ import { ClientBlock, ClientField, ClientPhantomField } from './fields.client';
3
+ import { ServerField } from './fields.server';
4
+ export type FormValues = Record<string, string>;
5
+ export type FormErrors = Record<string, string>;
6
+ export declare const SCHEMA_VERSION = 1;
7
+ export declare const FIELD_TYPES: string[];
8
+ export declare const BLOCK_TYPES: string[];
9
+ export declare const ALIGN_H: string[];
10
+ export declare const ALIGN_V: string[];
11
+ export declare const SOURCES: string[];
12
+ export interface IFormMetadata {
13
+ name: string;
14
+ label: string;
15
+ schema_version: number;
16
+ schema: IForm;
17
+ signing_parties: IFormSigningParty[];
18
+ subscribers?: IFormSubscriber[];
19
+ }
20
+ export type IFormSubscriber = {
21
+ email: string;
22
+ };
23
+ export interface IFormSignatory {
24
+ name?: string;
25
+ email: string;
26
+ title?: string;
27
+ honorific?: string;
28
+ }
29
+ export interface IFormSigningParty {
30
+ _id: string;
31
+ order: number;
32
+ signatory_title: string;
33
+ signatory_account?: IFormSignatory;
34
+ signatory_source?: {
35
+ _id: string;
36
+ label: string;
37
+ tooltip_label: string;
38
+ };
39
+ signed?: boolean;
40
+ }
41
+ export interface IFormSignee {
42
+ name: string;
43
+ sourceEmail: string;
44
+ title?: string;
45
+ honorific?: string;
46
+ signedDate?: number;
47
+ }
48
+ export interface IForm {
49
+ blocks: IFormBlock[];
50
+ }
51
+ export interface IFormBlock {
52
+ _id: string;
53
+ block_type: (typeof BLOCK_TYPES)[number];
54
+ order: number;
55
+ signing_party_id: IFormSigningParty['_id'];
56
+ text_content?: string;
57
+ field_schema?: IFormField;
58
+ phantom_field_schema?: IFormPhantomField;
59
+ }
60
+ export interface IFormField {
61
+ field: string;
62
+ type: 'text' | 'signature' | 'image';
63
+ x: number;
64
+ y: number;
65
+ w: number;
66
+ h: number;
67
+ page: number;
68
+ align_h?: (typeof ALIGN_H)[number];
69
+ align_v?: (typeof ALIGN_V)[number];
70
+ label: string;
71
+ tooltip_label: string;
72
+ shared: boolean;
73
+ source: (typeof SOURCES)[number];
74
+ prefiller?: string;
75
+ validator?: string;
76
+ size?: number;
77
+ wrap?: boolean;
78
+ }
79
+ export interface IFormPhantomField {
80
+ field: string;
81
+ type: 'text' | 'signature' | 'image';
82
+ label: string;
83
+ tooltip_label: string;
84
+ shared: boolean;
85
+ source: (typeof SOURCES)[number];
86
+ prefiller?: string;
87
+ validator?: string;
88
+ }
89
+ export interface IFormParameters {
90
+ [key: string]: string | ZodType;
91
+ }
92
+ export type IFormSourceDomains<SourceDomains extends any[]> = Record<string, SourceDomains[number]>;
93
+ export type IFormFieldValidator = ZodType;
94
+ export type IFormFieldPrefiller<SourceDomains extends any[]> = (sourceDomains: IFormSourceDomains<SourceDomains>) => string;
95
+ export declare class FormMetadata<SourceDomains extends any[]> {
96
+ private readonly formMetadata;
97
+ private readonly blocks;
98
+ constructor(formMetadata: IFormMetadata);
99
+ getBlocksForClientService(signingPartyId?: string): ClientBlock<SourceDomains>[];
100
+ getSigningPartyBlocks(signingPartyId: string): ClientBlock<SourceDomains>[];
101
+ getSigningPartyFields(signingPartyId: string): (ClientField<SourceDomains> | ClientPhantomField<SourceDomains>)[];
102
+ static getSigningPartyValues(signingParties: IFormSigningParty[], values: FormValues): Record<string, IFormSignatory>;
103
+ private getFields;
104
+ private getField;
105
+ private getPhantomFields;
106
+ private getPhantomField;
107
+ encodeAsJSON(): string;
108
+ static decodeFromJSON<SourceDomains extends any[]>(json: string): FormMetadata<SourceDomains>;
109
+ getLabel(): string;
110
+ private getFieldForClientService;
111
+ getFieldsForClientService(signingPartyId?: string, sourceDomains?: IFormSourceDomains<SourceDomains>, derivationBase?: IFormParameters): (ClientField<SourceDomains> | ClientPhantomField<SourceDomains>)[];
112
+ getSignatureFieldsForClientService(signingPartyId: string): (ClientField<SourceDomains> | ClientPhantomField<SourceDomains>)[];
113
+ getSignatureValueForSigningParty(values: FormValues, signingPartyId: string): string;
114
+ setSignatureValueForSigningParty(values: FormValues, signatureString: string, signingPartyId: string): FormValues;
115
+ getFieldsForEditorService(): IFormField[];
116
+ getPhantomFieldsForEditorService(): IFormPhantomField[];
117
+ getBlocksForEditorService(): IFormBlock[];
118
+ getFieldsForSigningService(): ServerField[];
119
+ inferParams(): string[];
120
+ private parseValidator;
121
+ private parsePrefiller;
122
+ private enumerateParams;
123
+ private populateParams;
124
+ getSubscribers(): IFormSubscriber[];
125
+ getSigningParties(): IFormSigningParty[];
126
+ mayInvolveEsign(): boolean;
127
+ }