-
Notifications
You must be signed in to change notification settings - Fork 1
/
configTypes.d.ts
98 lines (98 loc) · 2.95 KB
/
configTypes.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import type { ADWebAuthConfig } from '@cityssm/ad-web-auth-connector';
export interface Config {
application?: ConfigApplication;
session?: ConfigSession;
reverseProxy?: {
disableCompression: boolean;
disableEtag: boolean;
urlPrefix: string;
};
activeDirectory?: ConfigActiveDirectory;
adWebAuthConfig?: ADWebAuthConfig;
users?: {
testing?: string[];
canLogin?: string[];
canUpdate?: string[];
isAdmin?: string[];
};
defaults?: ConfigDefaults;
settings?: {
licenceAlias?: string;
licenceAliasPlural?: string;
licenseeAlias?: string;
licenseeAliasPlural?: string;
renewalAlias?: string;
includeRelated?: boolean;
includeBatches?: boolean;
includeReplacementFee?: boolean;
includeYearEnd?: boolean;
};
exports?: {
batches?: ConfigBatchExport;
};
licenceLengthFunctions?: Record<string, LicenceLengthFunction>;
additionalFeeFunctions?: Record<string, AdditionalFeeFunction>;
customReports?: ReportDefinition[];
}
interface ConfigApplication {
applicationName?: string;
logoURL?: string;
httpPort?: number;
userDomain?: string;
useTestDatabases?: boolean;
}
interface ConfigSession {
cookieName?: string;
secret?: string;
maxAgeMillis?: number;
doKeepAlive?: boolean;
}
export interface ConfigActiveDirectory {
url: string;
baseDN: string;
username: string;
password: string;
}
interface ConfigDefaults {
licenceNumberFunction: LicenceNumberFunction;
licenseeCity: string;
licenseeProvince: string;
}
export type ConfigBatchExport = ConfigBatchExport_RBCPreauthorized | ConfigBatchExport_CPA005;
export interface ConfigBatchExport_RBCPreauthorized {
exportType: 'rbcPreauthorized';
isTesting: boolean;
header: {
clientNumber: string;
clientName: string;
fileCreationNumberOffset: number;
currencyType: 'CAD' | 'USD';
};
record: {
transactionCode: '430';
languageCode: 'E' | 'F';
clientShortName: string;
destinationCountry: 'CAN' | 'USA';
};
}
export interface ConfigBatchExport_CPA005 {
exportType: 'cpa005';
isTesting: boolean;
config: {
fileCreationNumberOffset: number;
originatorId: string;
originatorLongName: string;
originatorShortName?: string;
cpaCode: number;
};
}
export type LicenceNumberFunction = 'year-fourDigits' | 'year-fiveDigits' | 'year-sixDigits' | 'category-fourDigits' | 'category-fiveDigits' | 'category-sixDigits' | 'category-distinctFourDigits' | 'category-distinctFiveDigits' | 'category-distinctSixDigits';
export type LicenceLengthFunction = (startDate: Date) => Date;
export type AdditionalFeeFunction = (baseLicenceFee: number) => number;
export interface ReportDefinition {
reportName: string;
reportTitle: string;
reportDescription?: string;
sql: string;
}
export {};