@grantbii/ui-core 1.0.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.
package/README.md ADDED
@@ -0,0 +1,33 @@
1
+ # UI Core
2
+
3
+ Core frontend components for Grantbii's user interfaces
4
+
5
+ ## Prerequisites
6
+
7
+ Node 22
8
+
9
+ ```bash
10
+ node -v # expected output: v22.xx.xx
11
+ ```
12
+
13
+ ## Set-up
14
+
15
+ Install dependencies
16
+
17
+ ```bash
18
+ npm i
19
+ ```
20
+
21
+ ## Develop
22
+
23
+ Bump version number in `package.json`
24
+
25
+ ## Publish
26
+
27
+ Bump version in `package.json`
28
+
29
+ Check which files would be published with `npm publish --dry-run`
30
+
31
+ The package is published to npm automatically with [GitHub Actions](.github/workflows/continuous-delivery.yaml).
32
+
33
+ Once a commit has been made on the `prod` branch, a build would be triggered.
package/index.d.ts ADDED
File without changes
package/index.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@grantbii/ui-core",
3
+ "version": "1.0.0",
4
+ "description": "Core frontend components for Grantbii's user interfaces",
5
+ "homepage": "https://github.com/grantbii/ui-core",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/grantbii/ui-core.git"
9
+ },
10
+ "author": "Grantbii",
11
+ "license": "UNLICENSED",
12
+ "exports": {
13
+ ".": "./index.js",
14
+ "./filter/*": "./src/filter/*.js",
15
+ "./grant/*": "./src/grant/*.js",
16
+ "./match/*": "./src/match/*.js",
17
+ "./shared/*": "./src/shared/*.js"
18
+ },
19
+ "scripts": {
20
+ "test": "echo \"Error: no test specified\" && exit 1",
21
+ "build": "npx tsc && cp ./package.json ./dist && cp ./README.md ./dist",
22
+ "postpublish": "rm -rf dist/",
23
+ "prepare": "husky"
24
+ },
25
+ "devDependencies": {
26
+ "@eslint/js": "^9.34.0",
27
+ "eslint": "^9.34.0",
28
+ "husky": "^9.1.7",
29
+ "lint-staged": "^16.1.6",
30
+ "prettier": "^3.6.2",
31
+ "typescript": "^5.9.2",
32
+ "typescript-eslint": "^8.42.0"
33
+ },
34
+ "lint-staged": {
35
+ "**/*.{html,css,json,md,yaml}": [
36
+ "prettier --write"
37
+ ],
38
+ "**/*.{ts,tsx}": [
39
+ "eslint --fix",
40
+ "prettier --write"
41
+ ]
42
+ }
43
+ }
@@ -0,0 +1,2 @@
1
+ import type { GrantFilters } from "./models";
2
+ export declare const getBlankGrantFilters: () => GrantFilters;
@@ -0,0 +1,7 @@
1
+ import { Location } from "../grant/enums";
2
+ import { Need } from "./enums";
3
+ export const getBlankGrantFilters = () => ({
4
+ need: Need.UNKNOWN,
5
+ location: Location.UNKNOWN,
6
+ qualifiers: [],
7
+ });
@@ -0,0 +1,13 @@
1
+ export declare enum Need {
2
+ RND_COMMERCIALISATION = "R&D Commercialization",
3
+ IMPROVE_OPPERATIONAL_PROCESS = "Improve Operational Process",
4
+ BRANDING_N_MARKETING = "Branding & Marketing",
5
+ IMPROVE_CUSTOMER_EXPERIENCE = "Improve Customer Experience",
6
+ HUMAN_CAPITAL_DEVELOPMENT = "Human Capital Development",
7
+ SUSTAINABILITY_N_ESG = "Sustainability & ESG",
8
+ MARKET_EXPANSION_OVERSEAS = "Market Expansion (Overseas)",
9
+ MARKET_DEVELOPMENT_LOCAL = "Market Development (Local)",
10
+ FINANCIAL_MANAGEMENT = "Financial Management",
11
+ OTHERS = "Others",
12
+ UNKNOWN = "-"
13
+ }
@@ -0,0 +1,14 @@
1
+ export var Need;
2
+ (function (Need) {
3
+ Need["RND_COMMERCIALISATION"] = "R&D Commercialization";
4
+ Need["IMPROVE_OPPERATIONAL_PROCESS"] = "Improve Operational Process";
5
+ Need["BRANDING_N_MARKETING"] = "Branding & Marketing";
6
+ Need["IMPROVE_CUSTOMER_EXPERIENCE"] = "Improve Customer Experience";
7
+ Need["HUMAN_CAPITAL_DEVELOPMENT"] = "Human Capital Development";
8
+ Need["SUSTAINABILITY_N_ESG"] = "Sustainability & ESG";
9
+ Need["MARKET_EXPANSION_OVERSEAS"] = "Market Expansion (Overseas)";
10
+ Need["MARKET_DEVELOPMENT_LOCAL"] = "Market Development (Local)";
11
+ Need["FINANCIAL_MANAGEMENT"] = "Financial Management";
12
+ Need["OTHERS"] = "Others";
13
+ Need["UNKNOWN"] = "-";
14
+ })(Need || (Need = {}));
@@ -0,0 +1,2 @@
1
+ import { GrantFilters } from "./models";
2
+ export declare const mapFiltersToUrlQueryParams: ({ need, location, qualifiers, }: GrantFilters) => string;
@@ -0,0 +1,15 @@
1
+ import { Location, LogicValue, QualifyingCondition } from "../grant/enums";
2
+ import { Need } from "./enums";
3
+ export const mapFiltersToUrlQueryParams = ({ need, location, qualifiers, }) => [
4
+ constructNeedParam(need),
5
+ constructLocationParam(location),
6
+ ...contructQualifierParams(qualifiers),
7
+ ].join("&");
8
+ const constructNeedParam = (need) => need === Need.UNKNOWN ? "" : `need=${encodeURIComponent(need)}`;
9
+ const constructLocationParam = (location) => location === Location.UNKNOWN
10
+ ? ""
11
+ : `location=${encodeURIComponent(location)}`;
12
+ const contructQualifierParams = (qualifiers) => qualifiers
13
+ .filter(({ condition }) => condition !== QualifyingCondition.UNKNOWN)
14
+ .filter(({ value }) => value !== LogicValue.UNKNOWN)
15
+ .map(({ condition, value }) => `qualifier=${condition}:${value}`);
@@ -0,0 +1,8 @@
1
+ import type { Location } from "../grant/enums";
2
+ import type { GrantQualifier } from "../grant/models";
3
+ import { Need } from "./enums";
4
+ export type GrantFilters = {
5
+ need: Need;
6
+ location: Location;
7
+ qualifiers: GrantQualifier[];
8
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { GrantFilters } from "./models";
2
+ export declare const checkGrantFiltersActive: ({ need, location, qualifiers, }: GrantFilters) => boolean;
@@ -0,0 +1,10 @@
1
+ import { Location, LogicValue, QualifyingCondition } from "../grant/enums";
2
+ import { Need } from "./enums";
3
+ export const checkGrantFiltersActive = ({ need, location, qualifiers, }) => checkGrantNeedValid(need) ||
4
+ checkGrantLocationValid(location) ||
5
+ checkGrantQualifiersValid(qualifiers);
6
+ const checkGrantNeedValid = (need) => need !== Need.UNKNOWN;
7
+ const checkGrantLocationValid = (location) => location !== Location.UNKNOWN;
8
+ const checkGrantQualifiersValid = (qualifiers) => qualifiers.reduce((hasQualifier, qualifier) => hasQualifier || checkGrantQualifierValid(qualifier), false);
9
+ const checkGrantQualifierValid = (qualifier) => qualifier.condition !== QualifyingCondition.UNKNOWN &&
10
+ qualifier.value !== LogicValue.UNKNOWN;
@@ -0,0 +1,9 @@
1
+ import type { GrantObjectives, GrantQualifiers } from "./models";
2
+ export declare const NO_DATA_MESSAGES: {
3
+ grantSupportPercentage: string;
4
+ grantAmountCap: string;
5
+ emailUs: string;
6
+ caseByCase: string;
7
+ };
8
+ export declare const getBlankGrantObjectives: () => GrantObjectives;
9
+ export declare const getBlankGrantQualifiers: () => GrantQualifiers;
@@ -0,0 +1,15 @@
1
+ import { LogicValue, Objective, ObjectiveLevel, QualifyingCondition, } from "./enums";
2
+ export const NO_DATA_MESSAGES = {
3
+ grantSupportPercentage: "Variable",
4
+ grantAmountCap: "No explicit cap",
5
+ emailUs: "Not officially disclosed - email us to enquire",
6
+ caseByCase: "Not officially disclosed - determined case-by-case via direct agency engagement",
7
+ };
8
+ export const getBlankGrantObjectives = () => Object.values(Objective).reduce((grantObjectives, objective) => ({
9
+ ...grantObjectives,
10
+ [objective]: ObjectiveLevel.UNKNOWN,
11
+ }), {});
12
+ export const getBlankGrantQualifiers = () => Object.values(QualifyingCondition).reduce((grantQualifiers, condition) => ({
13
+ ...grantQualifiers,
14
+ [condition]: LogicValue.UNKNOWN,
15
+ }), {});
@@ -0,0 +1,92 @@
1
+ export type GrantUuidDto = {
2
+ grant_uuid: string;
3
+ };
4
+ export type LifecycleDto = {
5
+ lifecycle_stage: string;
6
+ };
7
+ export type GrantSummaryDto = {
8
+ grant_uuid: string;
9
+ lifecycle_stage: string;
10
+ grant_location: string;
11
+ grant_name: string;
12
+ grant_url: string;
13
+ grant_description: string;
14
+ grant_difficulty: string;
15
+ grant_tier: string;
16
+ grant_objectives: GrantObjectiveDto[];
17
+ grant_support_percentage: number;
18
+ grant_amount_cap: number;
19
+ reimbursement_type: string;
20
+ grant_qualifiers: GrantQualifierDto[];
21
+ serviced_by_ric: boolean;
22
+ is_top_grant: boolean;
23
+ };
24
+ export type GrantDto = {
25
+ grant_uuid: string;
26
+ updated_on: string;
27
+ lifecycle_stage: string;
28
+ is_matchable: boolean;
29
+ } & GrantOriginDto & GrantDetailsDto;
30
+ export type GrantOriginDto = {
31
+ grant_location: string;
32
+ grant_name: string;
33
+ grant_url: string;
34
+ additional_information: string;
35
+ };
36
+ export type GrantDetailsDto = {
37
+ grant_agency: string;
38
+ grant_description: string;
39
+ grant_difficulty: string;
40
+ grant_tier: string;
41
+ target_industries: string[];
42
+ grant_objectives: GrantObjectiveDto[];
43
+ grant_support_percentage: number;
44
+ grant_amount_cap: number;
45
+ reimbursement_type: string;
46
+ max_project_months: number;
47
+ application_period: string;
48
+ eligibility_criteria: EligibilityCriterionDto[];
49
+ supportable_costs: SupportableCostDto[];
50
+ assessment_rubrics: AssessmentRubricDto[];
51
+ grant_stages: GrantStageDto[];
52
+ required_documents: RequiredDocumentDto[];
53
+ other_considerations: OtherConsiderationDto[];
54
+ grant_qualifiers: GrantQualifierDto[];
55
+ serviced_by_ric: boolean;
56
+ is_top_grant: boolean;
57
+ };
58
+ export type TargetIndustryDto = {
59
+ industry: string;
60
+ };
61
+ export type GrantObjectiveDto = {
62
+ objective: string;
63
+ objective_level: string;
64
+ };
65
+ export type RequiredDocumentDto = {
66
+ document: string;
67
+ document_description: string[];
68
+ };
69
+ export type EligibilityCriterionDto = {
70
+ criterion: string;
71
+ criterion_description: string[];
72
+ };
73
+ export type AssessmentRubricDto = {
74
+ rubric: string;
75
+ rubric_description: string[];
76
+ };
77
+ export type SupportableCostDto = {
78
+ cost_item: string;
79
+ cost_description: string[];
80
+ };
81
+ export type GrantStageDto = {
82
+ stage: string;
83
+ stage_description: string[];
84
+ };
85
+ export type OtherConsiderationDto = {
86
+ note_title: string;
87
+ note_content: string[];
88
+ };
89
+ export type GrantQualifierDto = {
90
+ condition: string;
91
+ value: string;
92
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,207 @@
1
+ export declare enum LifecycleStage {
2
+ /**
3
+ * Transitions (next stage):
4
+ * - Draft
5
+ */
6
+ ANALYSING = "Analysing",
7
+ /**
8
+ * Transitions (next stage):
9
+ * - Draft
10
+ * - Indexing
11
+ * - Deleted
12
+ */
13
+ DRAFT = "Draft",
14
+ /**
15
+ * Transitions (next stage):
16
+ * - Published
17
+ */
18
+ INDEXING = "Indexing",
19
+ /**
20
+ * Transitions (next stage):
21
+ * - Draft
22
+ */
23
+ PUBLISHED = "Published",
24
+ /**
25
+ * No transitions
26
+ */
27
+ DELETED = "Deleted",
28
+ UNKNOWN = "-"
29
+ }
30
+ export declare enum Location {
31
+ HONG_KONG = "Hong Kong",
32
+ MALAYSIA = "Malaysia",
33
+ SINGAPORE = "Singapore",
34
+ UNKNOWN = "-"
35
+ }
36
+ export declare enum Currency {
37
+ HKD = "HKD",
38
+ MYR = "MYR",
39
+ SGD = "SGD",
40
+ UNKNOWN = "-"
41
+ }
42
+ export declare enum Difficulty {
43
+ LOW = "Low",
44
+ MEDIUM = "Medium",
45
+ HIGH = "High",
46
+ UNKNOWN = "-"
47
+ }
48
+ export declare enum Tier {
49
+ /**
50
+ * Standard grants for typical companies.
51
+ * Everyone knows, agrees they are eligible and many have experience applying for.
52
+ * Eg. EDG, MRA, TVP, BUD and EMF
53
+ */
54
+ ONE = "1",
55
+ /**
56
+ * Many enterprises know, but don't think they are eligible
57
+ * and thus have limited experience applying for.
58
+ * Eg. HK's ESS, PAG, RTH, CRS
59
+ */
60
+ TWO = "2",
61
+ /**
62
+ * Industry-specific funds, which most enterprises have not heard of,
63
+ * so they don't even have chance to think if they are eligible.
64
+ * They are not 100% related to just the enterprises alone.
65
+ */
66
+ THREE = "3",
67
+ UNKNOWN = "-"
68
+ }
69
+ export declare enum ReimbursementType {
70
+ /**
71
+ * This covers cases where specific stages or deliverables trigger payments;
72
+ * documentation-based disbursement where cases are tied to submission & approval of documentation,
73
+ * and Advance Payments falls under this category.
74
+ */
75
+ MILESTONE_BASED_DISBURSEMENT = "Milestone/Tranche-based Disbursements",
76
+ /**
77
+ * This covers cases where payment release is tied to regular intervals
78
+ * (e.g. quarterly basis) rather than specific project milestones.
79
+ */
80
+ PERIODIC_REIMBURSEMENTS = "Time-based/Periodic Reimbursements",
81
+ /**
82
+ * This covers single-payment cases that are tied to project completion.
83
+ */
84
+ ONE_TIME_REIMBURSEMENTS = "Final Claims/One-time Reimbursement",
85
+ /**
86
+ * This covers cases where the schedule isn't predefined,
87
+ * is defined in a very loose fashion or
88
+ * follows a specific schedule that does not conform to any of the above-mentioned case
89
+ */
90
+ NON_STANDARD_SCHEDULES = "Flexible or Non-standard Schedules",
91
+ UNKNOWN = "-"
92
+ }
93
+ export declare enum Objective {
94
+ IDEATION = "Early-stage Research & Ideation",
95
+ PROTOTYPE = "Prototype/Product Development",
96
+ PROCESS_REDESIGN = "Process Redesign",
97
+ SOFTWARE_AUTOMATION = "Software Automation",
98
+ HARDWARE_AUTOMATION = "Hardware Automation",
99
+ MARKET_STRATEGY_CONCEPTUALIZATION = "Marketing Strategy Conceptualization",
100
+ MARKETING_EXECUTION = "Marketing Execution",
101
+ SERVICE_EXCELLENCE = "Service Excellence",
102
+ HIRING = "Hiring",
103
+ RESKILLING = "Reskilling/Upskilling",
104
+ SUSTAINABILITY = "Sustainability & ESG",
105
+ BUSINESS_STRATEGY_DEVELOPMENT_OVERSEAS = "Business Strategy Development (Overseas)",
106
+ MARKET_RESEARCH_OVERSEAS = "Market Research (Overseas)",
107
+ EXECUTE_OVERSEAS_EXPANSION_ACTIVITIES = "Execute Overseas Expansion Activities",
108
+ BUSINESS_STRATEGY_DEVELOPMENT_LOCAL = "Business Strategy Development (Local)",
109
+ MARKET_RESEARCH_LOCAL = "Market Research (Local)",
110
+ FINANCIAL_STRATEGY_DEVELOPMENT = "Financial Strategy Development",
111
+ CERTIFICATION = "Standard Adoption/Certification",
112
+ TEST_BEDDING = "Pilot & Test Bedding",
113
+ STARTUP_INCUBATION = "Startup Incubation",
114
+ OTHERS = "Others",
115
+ UNKNOWN = "-"
116
+ }
117
+ export declare enum ObjectiveLevel {
118
+ PRIMARY = "Primary",
119
+ SECONDARY = "Secondary",
120
+ UNKNOWN = "-"
121
+ }
122
+ export declare enum Industry {
123
+ ALL_INDUSTRIES = "All Industries",
124
+ AGRICULTURE = "Agriculture",
125
+ BIOTECH = "Biotech/Biomed",
126
+ CONSTRUCTION = "Building & Construction",
127
+ NON_PROFITS = "Charities/Non-Profits",
128
+ EDUCATION = "Education",
129
+ ENGINEERING_MARINE = "Engineering - Marine and Offshore",
130
+ ENGINEERING_PRECISION = "Engineering - Precison Engineering",
131
+ ENGINEERING_RENEWABLE_ENERGY = "Engineering - Renewable Energy",
132
+ ENVIRONMENTAL_SERVICES = "Environmental Services",
133
+ FNB_FOOD_PRODUCTION = "F&B - Food Production",
134
+ FNB_SERVICES = "F&B - Services",
135
+ FINANCE_GENERAL = "Finance (General)",
136
+ HEALTHCARE = "Healthcare",
137
+ TOURISM = "Hospitality & Tourism",
138
+ IT_ARTIFICIAL_INTELLIGENCE = "IT - Artificial Intelligence",
139
+ IT_FINTECH = "IT - Fintech",
140
+ IT_SUSTAINABILITY_TECH = "IT - Sustainability Tech",
141
+ IT_CYBERSECURITY = "IT - Cybersecurity",
142
+ IT_GENERAL = "IT - General",
143
+ LAND_TRANSPORT = "Land Transport",
144
+ LOGISTICS = "Logistics",
145
+ MANUFACTURING_ADVANCED = "Manufacturing - Advanced Manufacturing",
146
+ MANUFACTURING_OTHERS = "Manufacturing - Others",
147
+ MARITIME = "Maritime",
148
+ MEDIA = "Media",
149
+ OTHERS = "Others",
150
+ PROFESSIONAL_SERVICES_LEGAL = "Professional services - Legal",
151
+ PROFESSIONAL_SERVICES_OTHERS = "Professional services - Others",
152
+ REAL_ESTATE = "Real Estate",
153
+ RETAIL = "Retail",
154
+ SECURITY = "Security",
155
+ SERVICES = "Services",
156
+ SOCIAL_ENTERPRISES = "Social Enterprises",
157
+ WHOLESALE_TRADE = "Wholesale Trade",
158
+ UNKNOWN = "-"
159
+ }
160
+ export declare enum SupportableCost {
161
+ MANPOWER = "Manpower & Staffing",
162
+ TRAINING = "Training & Development",
163
+ INFRASTRUCTURE = "Physical Systems & Infrastructure",
164
+ PREAPPROVED_EQUIPMENT = "Hardware & Equipment (pre-approved)",
165
+ CUSTOMISED_EQUIPMENT = "Hardware & Equipment (customized)",
166
+ PREAPPROVED_SOFTWARE = "Software & Cloud Infrastructure (pre-approved)",
167
+ CUSTOMISED_SOFTWARE = "Software & Cloud Infrastructure (customized)",
168
+ PROFESSIONAL_SERVICES = "Professional Services",
169
+ MATERIALS = "Materials, Consumables & Utilities",
170
+ MARKET_VALIDATION = "Market Assessment & Validation",
171
+ MARKETING = "Marketing & Promotion",
172
+ TRAVEL = "Travel & Accommodation",
173
+ BUSINESS_SETUP = "Business Setup",
174
+ CERTIFICATION = "Testing & Certification",
175
+ RESEARCH = "Research & Development",
176
+ COMMERCIALISATION = "R&D Commercialization",
177
+ LICENSING = "Intellectual Property & Licensing",
178
+ SUSTAINABILITY = "Sustainability & Resource Optimization",
179
+ PARTNERSHIPS = "Partnerships & Business Development",
180
+ AUDIT = "Grant Audit & Program Fees",
181
+ OTHERS = "Miscellaneous & Others",
182
+ UNKNOWN = "-"
183
+ }
184
+ export declare enum QualifyingCondition {
185
+ LOCAL = "local",
186
+ PUBLIC = "public",
187
+ SUBVENTED = "subvented",
188
+ SHAREHOLDING = "shareholding",
189
+ SME = "sme",
190
+ UNKNOWN = "-"
191
+ }
192
+ export declare enum LogicValue {
193
+ YES = "Yes",
194
+ NO = "No",
195
+ /**
196
+ * In the context of Grantbii App, unsure is chosen by the grant seeker
197
+ * when they are unsure of how to answer the qualifying questions.
198
+ *
199
+ * In the context of Admin Console, unsure is not available as an option.
200
+ * Grant researchers must select Yes or No to publish a grant.
201
+ *
202
+ * In the context of the Grant Analyser, unsure is returned by Perplexity
203
+ * when it is sure of which value it should provide for the grant.
204
+ */
205
+ UNSURE = "Unsure",
206
+ UNKNOWN = "-"
207
+ }
@@ -0,0 +1,220 @@
1
+ // TODO: rename to grant listing lifecycle stage?
2
+ export var LifecycleStage;
3
+ (function (LifecycleStage) {
4
+ /**
5
+ * Transitions (next stage):
6
+ * - Draft
7
+ */
8
+ LifecycleStage["ANALYSING"] = "Analysing";
9
+ /**
10
+ * Transitions (next stage):
11
+ * - Draft
12
+ * - Indexing
13
+ * - Deleted
14
+ */
15
+ LifecycleStage["DRAFT"] = "Draft";
16
+ /**
17
+ * Transitions (next stage):
18
+ * - Published
19
+ */
20
+ LifecycleStage["INDEXING"] = "Indexing";
21
+ /**
22
+ * Transitions (next stage):
23
+ * - Draft
24
+ */
25
+ LifecycleStage["PUBLISHED"] = "Published";
26
+ /**
27
+ * No transitions
28
+ */
29
+ LifecycleStage["DELETED"] = "Deleted";
30
+ LifecycleStage["UNKNOWN"] = "-";
31
+ })(LifecycleStage || (LifecycleStage = {}));
32
+ export var Location;
33
+ (function (Location) {
34
+ Location["HONG_KONG"] = "Hong Kong";
35
+ Location["MALAYSIA"] = "Malaysia";
36
+ Location["SINGAPORE"] = "Singapore";
37
+ Location["UNKNOWN"] = "-";
38
+ })(Location || (Location = {}));
39
+ export var Currency;
40
+ (function (Currency) {
41
+ Currency["HKD"] = "HKD";
42
+ Currency["MYR"] = "MYR";
43
+ Currency["SGD"] = "SGD";
44
+ Currency["UNKNOWN"] = "-";
45
+ })(Currency || (Currency = {}));
46
+ export var Difficulty;
47
+ (function (Difficulty) {
48
+ Difficulty["LOW"] = "Low";
49
+ Difficulty["MEDIUM"] = "Medium";
50
+ Difficulty["HIGH"] = "High";
51
+ Difficulty["UNKNOWN"] = "-";
52
+ })(Difficulty || (Difficulty = {}));
53
+ export var Tier;
54
+ (function (Tier) {
55
+ /**
56
+ * Standard grants for typical companies.
57
+ * Everyone knows, agrees they are eligible and many have experience applying for.
58
+ * Eg. EDG, MRA, TVP, BUD and EMF
59
+ */
60
+ Tier["ONE"] = "1";
61
+ /**
62
+ * Many enterprises know, but don't think they are eligible
63
+ * and thus have limited experience applying for.
64
+ * Eg. HK's ESS, PAG, RTH, CRS
65
+ */
66
+ Tier["TWO"] = "2";
67
+ /**
68
+ * Industry-specific funds, which most enterprises have not heard of,
69
+ * so they don't even have chance to think if they are eligible.
70
+ * They are not 100% related to just the enterprises alone.
71
+ */
72
+ Tier["THREE"] = "3";
73
+ Tier["UNKNOWN"] = "-";
74
+ })(Tier || (Tier = {}));
75
+ export var ReimbursementType;
76
+ (function (ReimbursementType) {
77
+ /**
78
+ * This covers cases where specific stages or deliverables trigger payments;
79
+ * documentation-based disbursement where cases are tied to submission & approval of documentation,
80
+ * and Advance Payments falls under this category.
81
+ */
82
+ ReimbursementType["MILESTONE_BASED_DISBURSEMENT"] = "Milestone/Tranche-based Disbursements";
83
+ /**
84
+ * This covers cases where payment release is tied to regular intervals
85
+ * (e.g. quarterly basis) rather than specific project milestones.
86
+ */
87
+ ReimbursementType["PERIODIC_REIMBURSEMENTS"] = "Time-based/Periodic Reimbursements";
88
+ /**
89
+ * This covers single-payment cases that are tied to project completion.
90
+ */
91
+ ReimbursementType["ONE_TIME_REIMBURSEMENTS"] = "Final Claims/One-time Reimbursement";
92
+ /**
93
+ * This covers cases where the schedule isn't predefined,
94
+ * is defined in a very loose fashion or
95
+ * follows a specific schedule that does not conform to any of the above-mentioned case
96
+ */
97
+ ReimbursementType["NON_STANDARD_SCHEDULES"] = "Flexible or Non-standard Schedules";
98
+ ReimbursementType["UNKNOWN"] = "-";
99
+ })(ReimbursementType || (ReimbursementType = {}));
100
+ export var Objective;
101
+ (function (Objective) {
102
+ Objective["IDEATION"] = "Early-stage Research & Ideation";
103
+ Objective["PROTOTYPE"] = "Prototype/Product Development";
104
+ Objective["PROCESS_REDESIGN"] = "Process Redesign";
105
+ Objective["SOFTWARE_AUTOMATION"] = "Software Automation";
106
+ Objective["HARDWARE_AUTOMATION"] = "Hardware Automation";
107
+ Objective["MARKET_STRATEGY_CONCEPTUALIZATION"] = "Marketing Strategy Conceptualization";
108
+ Objective["MARKETING_EXECUTION"] = "Marketing Execution";
109
+ Objective["SERVICE_EXCELLENCE"] = "Service Excellence";
110
+ Objective["HIRING"] = "Hiring";
111
+ Objective["RESKILLING"] = "Reskilling/Upskilling";
112
+ Objective["SUSTAINABILITY"] = "Sustainability & ESG";
113
+ Objective["BUSINESS_STRATEGY_DEVELOPMENT_OVERSEAS"] = "Business Strategy Development (Overseas)";
114
+ Objective["MARKET_RESEARCH_OVERSEAS"] = "Market Research (Overseas)";
115
+ Objective["EXECUTE_OVERSEAS_EXPANSION_ACTIVITIES"] = "Execute Overseas Expansion Activities";
116
+ Objective["BUSINESS_STRATEGY_DEVELOPMENT_LOCAL"] = "Business Strategy Development (Local)";
117
+ Objective["MARKET_RESEARCH_LOCAL"] = "Market Research (Local)";
118
+ Objective["FINANCIAL_STRATEGY_DEVELOPMENT"] = "Financial Strategy Development";
119
+ Objective["CERTIFICATION"] = "Standard Adoption/Certification";
120
+ Objective["TEST_BEDDING"] = "Pilot & Test Bedding";
121
+ Objective["STARTUP_INCUBATION"] = "Startup Incubation";
122
+ Objective["OTHERS"] = "Others";
123
+ Objective["UNKNOWN"] = "-";
124
+ })(Objective || (Objective = {}));
125
+ export var ObjectiveLevel;
126
+ (function (ObjectiveLevel) {
127
+ ObjectiveLevel["PRIMARY"] = "Primary";
128
+ ObjectiveLevel["SECONDARY"] = "Secondary";
129
+ ObjectiveLevel["UNKNOWN"] = "-";
130
+ })(ObjectiveLevel || (ObjectiveLevel = {}));
131
+ export var Industry;
132
+ (function (Industry) {
133
+ Industry["ALL_INDUSTRIES"] = "All Industries";
134
+ Industry["AGRICULTURE"] = "Agriculture";
135
+ Industry["BIOTECH"] = "Biotech/Biomed";
136
+ Industry["CONSTRUCTION"] = "Building & Construction";
137
+ Industry["NON_PROFITS"] = "Charities/Non-Profits";
138
+ Industry["EDUCATION"] = "Education";
139
+ Industry["ENGINEERING_MARINE"] = "Engineering - Marine and Offshore";
140
+ Industry["ENGINEERING_PRECISION"] = "Engineering - Precison Engineering";
141
+ Industry["ENGINEERING_RENEWABLE_ENERGY"] = "Engineering - Renewable Energy";
142
+ Industry["ENVIRONMENTAL_SERVICES"] = "Environmental Services";
143
+ Industry["FNB_FOOD_PRODUCTION"] = "F&B - Food Production";
144
+ Industry["FNB_SERVICES"] = "F&B - Services";
145
+ Industry["FINANCE_GENERAL"] = "Finance (General)";
146
+ Industry["HEALTHCARE"] = "Healthcare";
147
+ Industry["TOURISM"] = "Hospitality & Tourism";
148
+ Industry["IT_ARTIFICIAL_INTELLIGENCE"] = "IT - Artificial Intelligence";
149
+ Industry["IT_FINTECH"] = "IT - Fintech";
150
+ Industry["IT_SUSTAINABILITY_TECH"] = "IT - Sustainability Tech";
151
+ Industry["IT_CYBERSECURITY"] = "IT - Cybersecurity";
152
+ Industry["IT_GENERAL"] = "IT - General";
153
+ Industry["LAND_TRANSPORT"] = "Land Transport";
154
+ Industry["LOGISTICS"] = "Logistics";
155
+ Industry["MANUFACTURING_ADVANCED"] = "Manufacturing - Advanced Manufacturing";
156
+ Industry["MANUFACTURING_OTHERS"] = "Manufacturing - Others";
157
+ Industry["MARITIME"] = "Maritime";
158
+ Industry["MEDIA"] = "Media";
159
+ Industry["OTHERS"] = "Others";
160
+ Industry["PROFESSIONAL_SERVICES_LEGAL"] = "Professional services - Legal";
161
+ Industry["PROFESSIONAL_SERVICES_OTHERS"] = "Professional services - Others";
162
+ Industry["REAL_ESTATE"] = "Real Estate";
163
+ Industry["RETAIL"] = "Retail";
164
+ Industry["SECURITY"] = "Security";
165
+ Industry["SERVICES"] = "Services";
166
+ Industry["SOCIAL_ENTERPRISES"] = "Social Enterprises";
167
+ Industry["WHOLESALE_TRADE"] = "Wholesale Trade";
168
+ Industry["UNKNOWN"] = "-";
169
+ })(Industry || (Industry = {}));
170
+ export var SupportableCost;
171
+ (function (SupportableCost) {
172
+ SupportableCost["MANPOWER"] = "Manpower & Staffing";
173
+ SupportableCost["TRAINING"] = "Training & Development";
174
+ SupportableCost["INFRASTRUCTURE"] = "Physical Systems & Infrastructure";
175
+ SupportableCost["PREAPPROVED_EQUIPMENT"] = "Hardware & Equipment (pre-approved)";
176
+ SupportableCost["CUSTOMISED_EQUIPMENT"] = "Hardware & Equipment (customized)";
177
+ SupportableCost["PREAPPROVED_SOFTWARE"] = "Software & Cloud Infrastructure (pre-approved)";
178
+ SupportableCost["CUSTOMISED_SOFTWARE"] = "Software & Cloud Infrastructure (customized)";
179
+ SupportableCost["PROFESSIONAL_SERVICES"] = "Professional Services";
180
+ SupportableCost["MATERIALS"] = "Materials, Consumables & Utilities";
181
+ SupportableCost["MARKET_VALIDATION"] = "Market Assessment & Validation";
182
+ SupportableCost["MARKETING"] = "Marketing & Promotion";
183
+ SupportableCost["TRAVEL"] = "Travel & Accommodation";
184
+ SupportableCost["BUSINESS_SETUP"] = "Business Setup";
185
+ SupportableCost["CERTIFICATION"] = "Testing & Certification";
186
+ SupportableCost["RESEARCH"] = "Research & Development";
187
+ SupportableCost["COMMERCIALISATION"] = "R&D Commercialization";
188
+ SupportableCost["LICENSING"] = "Intellectual Property & Licensing";
189
+ SupportableCost["SUSTAINABILITY"] = "Sustainability & Resource Optimization";
190
+ SupportableCost["PARTNERSHIPS"] = "Partnerships & Business Development";
191
+ SupportableCost["AUDIT"] = "Grant Audit & Program Fees";
192
+ SupportableCost["OTHERS"] = "Miscellaneous & Others";
193
+ SupportableCost["UNKNOWN"] = "-";
194
+ })(SupportableCost || (SupportableCost = {}));
195
+ export var QualifyingCondition;
196
+ (function (QualifyingCondition) {
197
+ QualifyingCondition["LOCAL"] = "local";
198
+ QualifyingCondition["PUBLIC"] = "public";
199
+ QualifyingCondition["SUBVENTED"] = "subvented";
200
+ QualifyingCondition["SHAREHOLDING"] = "shareholding";
201
+ QualifyingCondition["SME"] = "sme";
202
+ QualifyingCondition["UNKNOWN"] = "-";
203
+ })(QualifyingCondition || (QualifyingCondition = {}));
204
+ export var LogicValue;
205
+ (function (LogicValue) {
206
+ LogicValue["YES"] = "Yes";
207
+ LogicValue["NO"] = "No";
208
+ /**
209
+ * In the context of Grantbii App, unsure is chosen by the grant seeker
210
+ * when they are unsure of how to answer the qualifying questions.
211
+ *
212
+ * In the context of Admin Console, unsure is not available as an option.
213
+ * Grant researchers must select Yes or No to publish a grant.
214
+ *
215
+ * In the context of the Grant Analyser, unsure is returned by Perplexity
216
+ * when it is sure of which value it should provide for the grant.
217
+ */
218
+ LogicValue["UNSURE"] = "Unsure";
219
+ LogicValue["UNKNOWN"] = "-";
220
+ })(LogicValue || (LogicValue = {}));
@@ -0,0 +1,20 @@
1
+ import type { AssessmentRubricDto, EligibilityCriterionDto, GrantDto, GrantObjectiveDto, GrantQualifierDto, GrantStageDto, GrantSummaryDto, RequiredDocumentDto, SupportableCostDto } from "./dtos";
2
+ import { Currency, Location, QualifyingCondition } from "./enums";
3
+ import type { AssessmentRubric, EligibilityCriterion, Grant, GrantObjectives, GrantQualifier, GrantQualifiers, GrantStage, GrantSummary, RequiredDocument, SupportableCost } from "./models";
4
+ export declare const mapDtosToGrantSummaries: (dtos: GrantSummaryDto[]) => GrantSummary[];
5
+ export declare const mapDtoToGrant: (dto: GrantDto) => Grant;
6
+ export declare const mapDtosToGrantObjectives: (dtos: GrantObjectiveDto[]) => GrantObjectives;
7
+ export declare const mapDtoToEligibilityCriterion: (dto: EligibilityCriterionDto) => EligibilityCriterion;
8
+ export declare const mapDtoToSupportableCost: (dto: SupportableCostDto) => SupportableCost;
9
+ export declare const mapDtoToAssessmentRubric: (dto: AssessmentRubricDto) => AssessmentRubric;
10
+ export declare const mapDtoToGrantStage: (dto: GrantStageDto) => GrantStage;
11
+ export declare const mapDtoToRequiredDocument: (dto: RequiredDocumentDto) => RequiredDocument;
12
+ export declare const mapDtosToGrantQualifiers: (dtos: GrantQualifierDto[]) => GrantQualifiers;
13
+ export declare const mapDtoToGrantQualifier: ({ condition, value, }: GrantQualifierDto) => GrantQualifier;
14
+ export declare const mapGrantAmountCapToText: (grantAmountCap: number) => string;
15
+ export declare const LOCATION_CURRENCY_MAP: {
16
+ [location in Location]: Currency;
17
+ };
18
+ export declare const LOCATION_CONDITIONS_MAP: {
19
+ [location in Location]: QualifyingCondition[];
20
+ };
@@ -0,0 +1,118 @@
1
+ import { parseEnum } from "../shared/enums";
2
+ import { getBlankGrantObjectives, getBlankGrantQualifiers } from "./defaults";
3
+ import { Currency, Difficulty, Industry, LifecycleStage, Location, LogicValue, Objective, ObjectiveLevel, QualifyingCondition, ReimbursementType, Tier, } from "./enums";
4
+ export const mapDtosToGrantSummaries = (dtos) => dtos.map(mapDtoToGrantSummary);
5
+ const mapDtoToGrantSummary = (dto) => ({
6
+ grantUuid: dto.grant_uuid,
7
+ lifecycleStage: parseEnum(dto.lifecycle_stage, LifecycleStage),
8
+ grantLocation: parseEnum(dto.grant_location, Location),
9
+ grantName: dto.grant_name,
10
+ grantDescription: dto.grant_description,
11
+ grantUrl: dto.grant_url,
12
+ grantDifficulty: parseEnum(dto.grant_difficulty, Difficulty),
13
+ grantTier: parseEnum(dto.grant_tier, Tier),
14
+ grantSupportPercentage: dto.grant_support_percentage,
15
+ grantAmountCap: dto.grant_amount_cap,
16
+ grantObjectives: mapDtosToGrantObjectives(dto.grant_objectives),
17
+ reimbursementType: parseEnum(dto.reimbursement_type, ReimbursementType),
18
+ grantQualifiers: dto.grant_qualifiers.map(mapDtoToGrantQualifier),
19
+ servicedByRic: dto.serviced_by_ric,
20
+ isTopGrant: dto.is_top_grant,
21
+ });
22
+ export const mapDtoToGrant = (dto) => ({
23
+ grantUuid: dto.grant_uuid,
24
+ updatedOn: dto.updated_on,
25
+ lifecycleStage: parseEnum(dto.lifecycle_stage, LifecycleStage),
26
+ isMatchable: dto.is_matchable,
27
+ ...extractGrantOriginFromGrantDto(dto),
28
+ ...extractGrantDetailsFromGrantDto(dto),
29
+ });
30
+ const extractGrantOriginFromGrantDto = (dto) => ({
31
+ grantLocation: parseEnum(dto.grant_location, Location),
32
+ grantName: dto.grant_name,
33
+ grantUrl: dto.grant_url,
34
+ additionalInformation: dto.additional_information,
35
+ });
36
+ const extractGrantDetailsFromGrantDto = (dto) => ({
37
+ grantAgency: dto.grant_agency,
38
+ grantDescription: dto.grant_description,
39
+ grantDifficulty: parseEnum(dto.grant_difficulty, Difficulty),
40
+ grantTier: parseEnum(dto.grant_tier, Tier),
41
+ grantObjectives: mapDtosToGrantObjectives(dto.grant_objectives),
42
+ targetIndustries: dto.target_industries.map((industry) => parseEnum(industry, Industry)),
43
+ grantSupportPercentage: dto.grant_support_percentage,
44
+ grantAmountCap: dto.grant_amount_cap,
45
+ reimbursementType: parseEnum(dto.reimbursement_type, ReimbursementType),
46
+ maxProjectMonths: dto.max_project_months,
47
+ applicationPeriod: dto.application_period,
48
+ eligibilityCriteria: dto.eligibility_criteria.map(mapDtoToEligibilityCriterion),
49
+ supportableCosts: dto.supportable_costs.map(mapDtoToSupportableCost),
50
+ assessmentRubrics: dto.assessment_rubrics.map(mapDtoToAssessmentRubric),
51
+ grantStages: dto.grant_stages.map(mapDtoToGrantStage),
52
+ requiredDocuments: dto.required_documents.map(mapDtoToRequiredDocument),
53
+ otherConsiderations: dto.other_considerations.map(mapDtoToOtherConsideration),
54
+ grantQualifiers: mapDtosToGrantQualifiers(dto.grant_qualifiers),
55
+ servicedByRic: dto.serviced_by_ric,
56
+ isTopGrant: dto.is_top_grant,
57
+ });
58
+ export const mapDtosToGrantObjectives = (dtos) => dtos.reduce((grantObjectives, { objective, objective_level }) => ({
59
+ ...grantObjectives,
60
+ [parseEnum(objective, Objective)]: parseEnum(objective_level, ObjectiveLevel),
61
+ }), getBlankGrantObjectives());
62
+ export const mapDtoToEligibilityCriterion = (dto) => ({
63
+ criterion: dto.criterion,
64
+ criterionDescription: dto.criterion_description,
65
+ });
66
+ export const mapDtoToSupportableCost = (dto) => ({
67
+ costItem: dto.cost_item,
68
+ costDescription: dto.cost_description,
69
+ });
70
+ export const mapDtoToAssessmentRubric = (dto) => ({
71
+ rubric: dto.rubric,
72
+ rubricDescription: dto.rubric_description,
73
+ });
74
+ export const mapDtoToGrantStage = (dto) => ({
75
+ stage: dto.stage,
76
+ stageDescription: dto.stage_description,
77
+ });
78
+ export const mapDtoToRequiredDocument = (dto) => ({
79
+ document: dto.document,
80
+ documentDescription: dto.document_description,
81
+ });
82
+ const mapDtoToOtherConsideration = (dto) => ({
83
+ noteTitle: dto.note_title,
84
+ noteContent: dto.note_content,
85
+ });
86
+ export const mapDtosToGrantQualifiers = (dtos) => dtos.reduce((grantQualifiers, { condition, value }) => ({
87
+ ...grantQualifiers,
88
+ [parseEnum(condition, QualifyingCondition)]: parseEnum(value, LogicValue),
89
+ }), getBlankGrantQualifiers());
90
+ export const mapDtoToGrantQualifier = ({ condition, value, }) => ({
91
+ condition: parseEnum(condition, QualifyingCondition),
92
+ value: parseEnum(value, LogicValue),
93
+ });
94
+ export const mapGrantAmountCapToText = (grantAmountCap) => grantAmountCap >= 1_000_000
95
+ ? `${grantAmountCap / 1_000_000}M`
96
+ : grantAmountCap >= 1_000
97
+ ? `${grantAmountCap / 1_000}K`
98
+ : grantAmountCap.toLocaleString();
99
+ export const LOCATION_CURRENCY_MAP = {
100
+ "Hong Kong": Currency.HKD,
101
+ Malaysia: Currency.MYR,
102
+ Singapore: Currency.SGD,
103
+ "-": Currency.UNKNOWN,
104
+ };
105
+ export const LOCATION_CONDITIONS_MAP = {
106
+ [Location.HONG_KONG]: [
107
+ QualifyingCondition.LOCAL,
108
+ QualifyingCondition.PUBLIC,
109
+ QualifyingCondition.SUBVENTED,
110
+ ],
111
+ [Location.MALAYSIA]: [QualifyingCondition.LOCAL],
112
+ [Location.SINGAPORE]: [
113
+ QualifyingCondition.LOCAL,
114
+ QualifyingCondition.SHAREHOLDING,
115
+ QualifyingCondition.SME,
116
+ ],
117
+ [Location.UNKNOWN]: [],
118
+ };
@@ -0,0 +1,90 @@
1
+ import type { Difficulty, Industry, LifecycleStage, Location, QualifyingCondition, LogicValue, Objective, ObjectiveLevel, ReimbursementType, Tier } from "./enums";
2
+ export type GrantSummary = {
3
+ grantUuid: string;
4
+ lifecycleStage: LifecycleStage;
5
+ grantLocation: Location;
6
+ grantName: string;
7
+ grantUrl: string;
8
+ grantDescription: string;
9
+ grantDifficulty: Difficulty;
10
+ grantTier: Tier;
11
+ grantSupportPercentage: number;
12
+ grantAmountCap: number;
13
+ grantObjectives: GrantObjectives;
14
+ reimbursementType: ReimbursementType;
15
+ grantQualifiers: GrantQualifier[];
16
+ servicedByRic: boolean;
17
+ isTopGrant: boolean;
18
+ };
19
+ export type Grant = {
20
+ grantUuid: string;
21
+ lifecycleStage: LifecycleStage;
22
+ updatedOn: string;
23
+ isMatchable: boolean;
24
+ } & GrantOrigin & GrantDetails;
25
+ export type GrantOrigin = {
26
+ grantLocation: Location;
27
+ grantName: string;
28
+ grantUrl: string;
29
+ additionalInformation: string;
30
+ };
31
+ export type GrantDetails = {
32
+ grantAgency: string;
33
+ grantDescription: string;
34
+ grantDifficulty: Difficulty;
35
+ grantTier: Tier;
36
+ targetIndustries: Industry[];
37
+ grantObjectives: GrantObjectives;
38
+ grantSupportPercentage: number;
39
+ grantAmountCap: number;
40
+ reimbursementType: ReimbursementType;
41
+ maxProjectMonths: number;
42
+ applicationPeriod: string;
43
+ eligibilityCriteria: EligibilityCriterion[];
44
+ supportableCosts: SupportableCost[];
45
+ assessmentRubrics: AssessmentRubric[];
46
+ grantStages: GrantStage[];
47
+ requiredDocuments: RequiredDocument[];
48
+ otherConsiderations: OtherConsideration[];
49
+ grantQualifiers: GrantQualifiers;
50
+ servicedByRic: boolean;
51
+ isTopGrant: boolean;
52
+ };
53
+ export type GrantObjectives = {
54
+ [objective in Objective]: ObjectiveLevel;
55
+ };
56
+ export type GrantObjective = {
57
+ objective: Objective;
58
+ objectiveLevel: ObjectiveLevel;
59
+ };
60
+ export type EligibilityCriterion = {
61
+ criterion: string;
62
+ criterionDescription: string[];
63
+ };
64
+ export type SupportableCost = {
65
+ costItem: string;
66
+ costDescription: string[];
67
+ };
68
+ export type AssessmentRubric = {
69
+ rubric: string;
70
+ rubricDescription: string[];
71
+ };
72
+ export type GrantStage = {
73
+ stage: string;
74
+ stageDescription: string[];
75
+ };
76
+ export type RequiredDocument = {
77
+ document: string;
78
+ documentDescription: string[];
79
+ };
80
+ export type OtherConsideration = {
81
+ noteTitle: string;
82
+ noteContent: string[];
83
+ };
84
+ export type GrantQualifiers = {
85
+ [condition in QualifyingCondition]: LogicValue;
86
+ };
87
+ export type GrantQualifier = {
88
+ condition: QualifyingCondition;
89
+ value: LogicValue;
90
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export type MatchedGrantDto = {
2
+ grant_uuid: string;
3
+ relevance_score: number;
4
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { MatchedGrantDto } from "./dtos";
2
+ import type { GrantMatchQuery, GrantMatchResult } from "./models";
3
+ export declare const mapQueryToFormData: (query: GrantMatchQuery) => FormData;
4
+ export declare const mapDtosToGrantMatchResult: (dtos: MatchedGrantDto[]) => GrantMatchResult;
@@ -0,0 +1,12 @@
1
+ export const mapQueryToFormData = (query) => {
2
+ const formData = new FormData();
3
+ for (const file of query.files) {
4
+ formData.append("files", file, file.name);
5
+ }
6
+ formData.append("text", query.text);
7
+ return formData;
8
+ };
9
+ export const mapDtosToGrantMatchResult = (dtos) => dtos.reduce((result, dto) => ({
10
+ ...result,
11
+ [dto.grant_uuid]: dto.relevance_score,
12
+ }), {});
@@ -0,0 +1,7 @@
1
+ export type GrantMatchQuery = {
2
+ text: string;
3
+ files: File[];
4
+ };
5
+ export type GrantMatchResult = {
6
+ [grantUuid: string]: number;
7
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { GrantMatchQuery } from "./models";
2
+ export declare const checkGrantMatchActive: (query: GrantMatchQuery) => boolean;
@@ -0,0 +1 @@
1
+ export const checkGrantMatchActive = (query) => query.files.length !== 0 || query.text.trim() !== "";
@@ -0,0 +1,8 @@
1
+ export type BaseEnumType = {
2
+ [key: string]: string;
3
+ /**
4
+ * unknown value from grantbii-service
5
+ */
6
+ UNKNOWN: string;
7
+ };
8
+ export declare const parseEnum: <EnumType extends BaseEnumType>(value: string, enumType: EnumType) => EnumType[keyof EnumType];
@@ -0,0 +1,5 @@
1
+ export const parseEnum = (value, enumType) => {
2
+ const values = Object.values(enumType);
3
+ const valueSet = new Set(values);
4
+ return (valueSet.has(value) ? value : enumType.UNKNOWN);
5
+ };
@@ -0,0 +1 @@
1
+ {"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/typescript/lib/lib.es2024.d.ts","../node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/typescript/lib/lib.es2023.intl.d.ts","../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../node_modules/typescript/lib/lib.es2024.collection.d.ts","../node_modules/typescript/lib/lib.es2024.object.d.ts","../node_modules/typescript/lib/lib.es2024.promise.d.ts","../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2024.string.d.ts","../node_modules/typescript/lib/lib.esnext.array.d.ts","../node_modules/typescript/lib/lib.esnext.collection.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/typescript/lib/lib.esnext.promise.d.ts","../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../node_modules/typescript/lib/lib.esnext.float16.d.ts","../node_modules/typescript/lib/lib.esnext.error.d.ts","../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../index.ts","../src/grant/enums.ts","../src/filter/enums.ts","../src/grant/models.ts","../src/filter/models.ts","../src/filter/defaults.ts","../src/filter/mappings.ts","../src/filter/validations.ts","../src/grant/defaults.ts","../src/grant/dtos.ts","../src/shared/enums.ts","../src/grant/mappings.ts","../src/match/dtos.ts","../src/match/models.ts","../src/match/mappings.ts","../src/match/validations.ts","../node_modules/@types/estree/index.d.ts","../node_modules/@types/json-schema/index.d.ts"],"fileIdsList":[[84,85,87],[84,85,86,87],[84,85,86],[84,86],[84,86,91,92,93],[84],[95,96],[96]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"941b6edaa210cb14957f0a4d742c3433167796d83080acbf358cdf2a24f583f0","signature":"cd316ffb5f757070ff8090e81a867d26a2179102e43f3d963645aa382c5f3096"},{"version":"8292a794ad01570b7b5641562d5b761e93294aa48a47f4e2d993a79fe6b61a48","signature":"6ff4596a766184806e8bc478e83eddc267d6ad0dd9c0a9fdbb1c48a893e8c2bd"},{"version":"9a0a141a2e664833abc05a3973cd473986c2de4d8491c872c08aa61b015ecbcd","signature":"555a7c8332325740c80e1c8c325d9cfd6d6335756f2893f60542fa095d39bdd3"},{"version":"d4e57ac109613aa95ec41c277b3a2fb046c1c33e2124ef9bcdfeea461a17669a","signature":"36d31b00dd51ea184aeac1976c92ff82e8d13f81a20bb6581f0c5e7788b36290"},{"version":"a74a8c0c241baf177d4aa67c7dee5ad5f3af79d52e4a97f1361ad448c8706a9b","signature":"e7ace589f8295cdfd011daa0b8ae6586a2a25c47a5b1b9f5077870fcd42802e1"},{"version":"127541a34d5eeea53cdd22ad7833d891d59511d0fa93c7d2070cece2d14abdce","signature":"7d7a665cb43cf32fa7ec4bae0c765293329768e1b8a0c96448f9f881daa92458"},{"version":"88021059a30880d9628999027a949c7bdc966392af626d09b41b11ac40c1b960","signature":"5ed383196af786641fd7272dd767efb603ffac2253c301151dbe92d848c59b83"},{"version":"fd59da10413430475e4b91785cd4c05856542e692f4588cc241925a82a027b45","signature":"be0d819cd3a7c3a666161d13c6af4aef68cef782e8becfa9bfd26c0c72e9c41f"},{"version":"eaf22d768b56019eb1d468e4f044720364ad8ac4109a7007ce789b83a6eec3f9","signature":"50e5d509c4b2619c85b9f895ac2881333739a78f81aa0e41f4ccbb7c0718914d"},{"version":"ad6743e5f66247c1c23d4c509a9574c43a1f884a39ac7ae94e2a982e7874bf22","signature":"90399c0786d939cbf991786afb0277c977f6e022873e1761a4d38bea7e5bbc6e"},{"version":"fcf7519ad43f462be17dd399503aee5c0bb59103fa3b80a474310e0025727a3b","signature":"c467fa182779ca1414f9a66a22cb40f5ed4ce3cd44a6ca8a3ebec57a243dc33b"},{"version":"2134d0925fbcf7aab8f5985d47a897be18f6df6ff09472cc8aa0f4a0e7042210","signature":"b6ee3c885e136822db65fb692e16cb4b6e77df99d51952c085b52b655a11701a"},{"version":"6cfad87edbe2707e1f9e54f86fd505c51ce27de47250d5c6ffa2cdf607cef4b1","signature":"856e496bc5bc6adb3303526588d5c7221ba6a28fa762c52a2036cea26ebec6d5"},{"version":"bd2c1ce65d6824df6d937fca9ac0413635442cdb7c38316a19bd861e5f77fa4e","signature":"d10f08922acaac253e38599c2f0f7cc7a6d5719e0bf539f1ee55b54c5b9b9771"},{"version":"9e0fc698a07a2cb1821f6bfcbdad31d113cf664da76ab2bc31c8bed778983cb6","signature":"092fedad67012e19f5c0a4c09b1686dfcbc97423c65f83b0e0d33b71a278d86d"},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1}],"root":[[83,98]],"options":{"allowJs":false,"declaration":true,"esModuleInterop":true,"jsx":4,"module":99,"outDir":"./","skipLibCheck":true,"strict":true,"target":11},"referencedMap":[[88,1],[89,2],[87,3],[90,2],[91,4],[94,5],[86,6],[97,7],[98,8]],"version":"5.9.2"}