commit d6f7c31053d69cb5d76042ca3466c0e802990b84
parent e773d8de346c4073f46d7bb6c15cb76f59134994
Author: triesap <137732411+triesap@users.noreply.github.com>
Date: Thu, 13 Feb 2025 06:24:39 +0000
utils: edit i18n config utils, add validation schemas, update resolve enums
Diffstat:
7 files changed, 88 insertions(+), 61 deletions(-)
diff --git a/utils/package.json b/utils/package.json
@@ -38,6 +38,7 @@
"geohashing": "^2.0.1",
"nostr-geotags": "^0.7.1",
"nostr-tools": "^2.10.4",
+ "sveltekit-i18n": "^2.4.2",
"uuid": "^10.0.0",
"zod": "^3.23.8"
}
diff --git a/utils/src/*validation.ts b/utils/src/*validation.ts
@@ -46,4 +46,8 @@ export const zod_numf_price = z.number().positive().multipleOf(0.01);
export const zod_numi_pos = z.number().int().positive();
-export const zod_numf_pos = z.number().positive();
-\ No newline at end of file
+export const zod_numf_pos = z.number().positive();
+
+export const vf_email = z.string().email();
+
+export const vf_username = z.string().regex(util_rxp.profile_name);
+\ No newline at end of file
diff --git a/utils/src/app/i18n-icu.ts b/utils/src/app/i18n-icu.ts
@@ -0,0 +1,22 @@
+import i18n, { type Loader } from "@sveltekit-i18n/base";
+import type { Config, Parser } from "@sveltekit-i18n/parser-icu";
+import parser from "@sveltekit-i18n/parser-icu";
+
+type LanguageConfig = {
+ default?: string;
+ value?: string;
+};
+export const i18n_conf_icu = <T extends string>(opts: {
+ default_locale: T;
+ translations: Record<T, any>;
+ loaders: Loader.LoaderModule[]
+}): i18n<Parser.Params<LanguageConfig>> => {
+ const { default_locale: initLocale, translations, loaders } = opts;
+ const config: Config<LanguageConfig> = {
+ initLocale,
+ translations,
+ parser: parser(),
+ loaders,
+ };
+ return new i18n(config);
+};
+\ No newline at end of file
diff --git a/utils/src/app/i18n.ts b/utils/src/app/i18n.ts
@@ -1,22 +1,21 @@
-import i18n, { type Loader } from "@sveltekit-i18n/base";
-import type { Config, Parser } from "@sveltekit-i18n/parser-icu";
-import parser from "@sveltekit-i18n/parser-icu";
+import { Loader } from '@sveltekit-i18n/base';
+import i18n, { type Config } from 'sveltekit-i18n';
type LanguageConfig = {
- default?: string;
- value?: string;
+ default?: string;
+ value?: string;
};
+
export const i18n_conf = <T extends string>(opts: {
- default_locale: T;
- translations: Record<T, any>;
- loaders: Loader.LoaderModule[]
-}): i18n<Parser.Params<LanguageConfig>> => {
- const { default_locale: initLocale, translations, loaders } = opts;
- const config: Config<LanguageConfig> = {
- initLocale,
- translations,
- parser: parser(),
- loaders,
- };
- return new i18n(config);
-};
-\ No newline at end of file
+ default_locale: T;
+ translations: Record<T, any>;
+ loaders: Loader.LoaderModule[]
+}) => {
+ const { default_locale: initLocale, translations, loaders } = opts;
+ const config: Config<LanguageConfig> = {
+ initLocale,
+ translations,
+ loaders,
+ };
+ return new i18n(config);
+};
diff --git a/utils/src/app/types/resolve.ts b/utils/src/app/types/resolve.ts
@@ -1,29 +1,29 @@
+export type ResolveEnumAccount_Role = 'admin' | 'guest' | 'internal' | 'member';
export type ResolveEnumArea_Unit = 'ac' | 'ft2' | 'ha' | 'm2';
+export type ResolveEnumAuth_Credential = 'email' | 'phone';
export type ResolveEnumBudget_Item_Type = 'capital_investment' | 'equipment' | 'fees' | 'infrastructure' | 'insurance' | 'labor' | 'materials' | 'other' | 'supplies';
export type ResolveEnumBudget_Spending_Type = 'equipment' | 'labor' | 'maintenance' | 'other' | 'supplies' | 'utilities';
-export type ResolveEnumCredential = 'email' | 'phone';
export type ResolveEnumPayment_Method = 'cash';
export type ResolveEnumPayment_Period = 'biweekly' | 'hourly' | 'monthly' | 'weekly';
export type ResolveEnumPayment_Status = 'confirmed' | 'pending';
export type ResolveEnumQuantity_Unit = 'g' | 'kg' | 'lb' | 'ton';
-export type ResolveEnumRole = 'admin' | 'guest' | 'internal' | 'member';
export type ResolveEnumWorker_Type = 'contractor' | 'laborer';
-export type ResolveAccountInfo = { id: string, created_at: string, updated_at: string, role: ResolveEnumRole, auth_ref: { credential: ResolveEnumCredential, email: { id: string, created_at: string, updated_at: string, address: string } }, profiles?: Array<{ id: string, created_at: string, updated_at: string, name: string, display_name?: string | null, primary: boolean, about?: string | null, emails: Array<{ id: string, created_at: string, updated_at: string, address: string }>, profile_photos?: Array<{ id: string, created_at: string, updated_at: string, primary: boolean, title?: string | null, description?: string | null, media_image: { id: string, created_at: string, updated_at: string, url: string } }> | null, nostr_keys: Array<{ id: string, created_at: string, updated_at: string, public_key: string }> }> | null, farms?: Array<{ id: string, created_at: string, updated_at: string, name: string, area?: number | null, area_unit: ResolveEnumArea_Unit, geolocation: { id: string, created_at: string, updated_at: string, point: { type: string, coordinates: Array<number> }, polygon?: { type: string, coordinates: Array<Array<Array<number>>> } | null, address: { id: string, created_at: string, updated_at: string, primary: string, admin: string, country: string } }, farm_products?: Array<{ id: string, created_at: string, updated_at: string, name: string, farm_lot_products?: Array<{ id: string }> | null }> | null, farm_lots?: Array<{ id: string, created_at: string, updated_at: string, name?: string | null, area?: number | null, area_unit: ResolveEnumArea_Unit, geolocation: { id: string, created_at: string, updated_at: string, point: { type: string, coordinates: Array<number> }, polygon?: { type: string, coordinates: Array<Array<Array<number>>> } | null, address: { id: string, created_at: string, updated_at: string, primary: string, admin: string, country: string } }, farm_lot_products?: Array<{ id: string, created_at: string, updated_at: string, area_planted?: number | null, area_unit: ResolveEnumArea_Unit, date_planted?: string | null, days_to_maturity?: number | null, farm_product: { id: string, created_at: string, updated_at: string, name: string, farm_lot_products?: Array<{ id: string }> | null }, farm_trade_products?: Array<{ id: string, created_at: string, updated_at: string, title: string, description: string, process?: string | null, trade_product_prices?: Array<{ id: string, created_at: string, updated_at: string, amount: number, currency: string, quantity_amount?: number | null, quantity_unit: ResolveEnumQuantity_Unit, quantity_label?: string | null }> | null, trade_product_quantitys?: Array<{ id: string, created_at: string, updated_at: string, quantity_amount?: number | null, quantity_unit: ResolveEnumQuantity_Unit, quantity_label?: string | null }> | null }> | null, farm_lot_harvests?: Array<{ id: string, created_at: string, updated_at: string, quantity_unit: ResolveEnumQuantity_Unit, quantity_harvested: number }> | null }> | null }> | null }> | null };
-export type ResolveAuthRefInfo = { credential: ResolveEnumCredential, email: { id: string, created_at: string, updated_at: string, address: string } };
+export type ResolveAccountInfo = { id: string, created_at: string, updated_at: string, role: ResolveEnumAccount_Role, auth_ref: { credential: ResolveEnumAuth_Credential, email: { id: string, created_at: string, updated_at: string, address: string } }, profiles?: Array<{ id: string, created_at: string, updated_at: string, name: string, display_name?: string | null, primary: boolean, about?: string | null, emails: Array<{ id: string, created_at: string, updated_at: string, address: string }>, profile_photos?: Array<{ id: string, created_at: string, updated_at: string, primary: boolean, title?: string | null, description?: string | null, media_image: { id: string, created_at: string, updated_at: string, url: string } }> | null, nostr_keys: Array<{ id: string, created_at: string, updated_at: string, public_key: string }> }> | null, farms?: Array<{ id: string, created_at: string, updated_at: string, name: string, area?: number | null, area_unit: ResolveEnumArea_Unit, geolocation: { id: string, created_at: string, updated_at: string, point: { type: string, coordinates: Array<number> }, polygon?: { type: string, coordinates: Array<Array<Array<number>>> } | null, address: { id: string, created_at: string, updated_at: string, primary: string, admin: string, country: string } }, farm_products?: Array<{ id: string, created_at: string, updated_at: string, name: string, farm_lot_products?: Array<{ id: string }> | null }> | null, farm_lots?: Array<{ id: string, created_at: string, updated_at: string, name?: string | null, area?: number | null, area_unit: ResolveEnumArea_Unit, geolocation: { id: string, created_at: string, updated_at: string, point: { type: string, coordinates: Array<number> }, polygon?: { type: string, coordinates: Array<Array<Array<number>>> } | null, address: { id: string, created_at: string, updated_at: string, primary: string, admin: string, country: string } }, farm_lot_products?: Array<{ id: string, created_at: string, updated_at: string, area_planted?: number | null, area_planted_unit: ResolveEnumArea_Unit, date_planted?: string | null, days_to_maturity?: number | null, farm_product: { id: string, created_at: string, updated_at: string, name: string, farm_lot_products?: Array<{ id: string }> | null }, farm_trade_products?: Array<{ id: string, created_at: string, updated_at: string, title: string, description: string, process?: string | null, trade_product_prices?: Array<{ id: string, created_at: string, updated_at: string, amount: number, currency: string, quantity_amount?: number | null, quantity_unit: ResolveEnumQuantity_Unit, quantity_label?: string | null }> | null, trade_product_quantitys?: Array<{ id: string, created_at: string, updated_at: string, amount?: number | null, unit: ResolveEnumQuantity_Unit, label?: string | null }> | null }> | null, farm_lot_harvests?: Array<{ id: string, created_at: string, updated_at: string, quantity_harvested: number, quantity_harvested_unit: ResolveEnumQuantity_Unit }> | null }> | null }> | null }> | null };
+export type ResolveAuthRefInfo = { credential: ResolveEnumAuth_Credential, email: { id: string, created_at: string, updated_at: string, address: string } };
export type ResolveEmailInfo = { id: string, created_at: string, updated_at: string, address: string };
export type ResolveProfileInfo = { id: string, created_at: string, updated_at: string, name: string, display_name?: string | null, primary: boolean, about?: string | null, emails: Array<{ id: string, created_at: string, updated_at: string, address: string }>, profile_photos?: Array<{ id: string, created_at: string, updated_at: string, primary: boolean, title?: string | null, description?: string | null, media_image: { id: string, created_at: string, updated_at: string, url: string } }> | null, nostr_keys: Array<{ id: string, created_at: string, updated_at: string, public_key: string }> };
export type ResolveProfilePhotoInfo = { id: string, created_at: string, updated_at: string, primary: boolean, title?: string | null, description?: string | null, media_image: { id: string, created_at: string, updated_at: string, url: string } };
export type ResolveMediaImageInfo = { id: string, created_at: string, updated_at: string, url: string };
export type ResolveNostrKeyInfo = { id: string, created_at: string, updated_at: string, public_key: string };
-export type ResolveFarmInfo = { id: string, created_at: string, updated_at: string, name: string, area?: number | null, area_unit: ResolveEnumArea_Unit, geolocation: { id: string, created_at: string, updated_at: string, point: { type: string, coordinates: Array<number> }, polygon?: { type: string, coordinates: Array<Array<Array<number>>> } | null, address: { id: string, created_at: string, updated_at: string, primary: string, admin: string, country: string } }, farm_products?: Array<{ id: string, created_at: string, updated_at: string, name: string, farm_lot_products?: Array<{ id: string }> | null }> | null, farm_lots?: Array<{ id: string, created_at: string, updated_at: string, name?: string | null, area?: number | null, area_unit: ResolveEnumArea_Unit, geolocation: { id: string, created_at: string, updated_at: string, point: { type: string, coordinates: Array<number> }, polygon?: { type: string, coordinates: Array<Array<Array<number>>> } | null, address: { id: string, created_at: string, updated_at: string, primary: string, admin: string, country: string } }, farm_lot_products?: Array<{ id: string, created_at: string, updated_at: string, area_planted?: number | null, area_unit: ResolveEnumArea_Unit, date_planted?: string | null, days_to_maturity?: number | null, farm_product: { id: string, created_at: string, updated_at: string, name: string, farm_lot_products?: Array<{ id: string }> | null }, farm_trade_products?: Array<{ id: string, created_at: string, updated_at: string, title: string, description: string, process?: string | null, trade_product_prices?: Array<{ id: string, created_at: string, updated_at: string, amount: number, currency: string, quantity_amount?: number | null, quantity_unit: ResolveEnumQuantity_Unit, quantity_label?: string | null }> | null, trade_product_quantitys?: Array<{ id: string, created_at: string, updated_at: string, quantity_amount?: number | null, quantity_unit: ResolveEnumQuantity_Unit, quantity_label?: string | null }> | null }> | null, farm_lot_harvests?: Array<{ id: string, created_at: string, updated_at: string, quantity_unit: ResolveEnumQuantity_Unit, quantity_harvested: number }> | null }> | null }> | null };
+export type ResolveFarmInfo = { id: string, created_at: string, updated_at: string, name: string, area?: number | null, area_unit: ResolveEnumArea_Unit, geolocation: { id: string, created_at: string, updated_at: string, point: { type: string, coordinates: Array<number> }, polygon?: { type: string, coordinates: Array<Array<Array<number>>> } | null, address: { id: string, created_at: string, updated_at: string, primary: string, admin: string, country: string } }, farm_products?: Array<{ id: string, created_at: string, updated_at: string, name: string, farm_lot_products?: Array<{ id: string }> | null }> | null, farm_lots?: Array<{ id: string, created_at: string, updated_at: string, name?: string | null, area?: number | null, area_unit: ResolveEnumArea_Unit, geolocation: { id: string, created_at: string, updated_at: string, point: { type: string, coordinates: Array<number> }, polygon?: { type: string, coordinates: Array<Array<Array<number>>> } | null, address: { id: string, created_at: string, updated_at: string, primary: string, admin: string, country: string } }, farm_lot_products?: Array<{ id: string, created_at: string, updated_at: string, area_planted?: number | null, area_planted_unit: ResolveEnumArea_Unit, date_planted?: string | null, days_to_maturity?: number | null, farm_product: { id: string, created_at: string, updated_at: string, name: string, farm_lot_products?: Array<{ id: string }> | null }, farm_trade_products?: Array<{ id: string, created_at: string, updated_at: string, title: string, description: string, process?: string | null, trade_product_prices?: Array<{ id: string, created_at: string, updated_at: string, amount: number, currency: string, quantity_amount?: number | null, quantity_unit: ResolveEnumQuantity_Unit, quantity_label?: string | null }> | null, trade_product_quantitys?: Array<{ id: string, created_at: string, updated_at: string, amount?: number | null, unit: ResolveEnumQuantity_Unit, label?: string | null }> | null }> | null, farm_lot_harvests?: Array<{ id: string, created_at: string, updated_at: string, quantity_harvested: number, quantity_harvested_unit: ResolveEnumQuantity_Unit }> | null }> | null }> | null };
export type ResolveGeolocationInfo = { id: string, created_at: string, updated_at: string, point: { type: string, coordinates: Array<number> }, polygon?: { type: string, coordinates: Array<Array<Array<number>>> } | null, address: { id: string, created_at: string, updated_at: string, primary: string, admin: string, country: string } };
export type ResolveAddressInfo = { id: string, created_at: string, updated_at: string, primary: string, admin: string, country: string };
-export type ResolveFarmLotInfo = { id: string, created_at: string, updated_at: string, name?: string | null, area?: number | null, area_unit: ResolveEnumArea_Unit, geolocation: { id: string, created_at: string, updated_at: string, point: { type: string, coordinates: Array<number> }, polygon?: { type: string, coordinates: Array<Array<Array<number>>> } | null, address: { id: string, created_at: string, updated_at: string, primary: string, admin: string, country: string } }, farm_lot_products?: Array<{ id: string, created_at: string, updated_at: string, area_planted?: number | null, area_unit: ResolveEnumArea_Unit, date_planted?: string | null, days_to_maturity?: number | null, farm_product: { id: string, created_at: string, updated_at: string, name: string, farm_lot_products?: Array<{ id: string }> | null }, farm_trade_products?: Array<{ id: string, created_at: string, updated_at: string, title: string, description: string, process?: string | null, trade_product_prices?: Array<{ id: string, created_at: string, updated_at: string, amount: number, currency: string, quantity_amount?: number | null, quantity_unit: ResolveEnumQuantity_Unit, quantity_label?: string | null }> | null, trade_product_quantitys?: Array<{ id: string, created_at: string, updated_at: string, quantity_amount?: number | null, quantity_unit: ResolveEnumQuantity_Unit, quantity_label?: string | null }> | null }> | null, farm_lot_harvests?: Array<{ id: string, created_at: string, updated_at: string, quantity_unit: ResolveEnumQuantity_Unit, quantity_harvested: number }> | null }> | null };
-export type ResolveFarmLotProductInfo = { id: string, created_at: string, updated_at: string, area_planted?: number | null, area_unit: ResolveEnumArea_Unit, date_planted?: string | null, days_to_maturity?: number | null, farm_product: { id: string, created_at: string, updated_at: string, name: string, farm_lot_products?: Array<{ id: string }> | null }, farm_trade_products?: Array<{ id: string, created_at: string, updated_at: string, title: string, description: string, process?: string | null, trade_product_prices?: Array<{ id: string, created_at: string, updated_at: string, amount: number, currency: string, quantity_amount?: number | null, quantity_unit: ResolveEnumQuantity_Unit, quantity_label?: string | null }> | null, trade_product_quantitys?: Array<{ id: string, created_at: string, updated_at: string, quantity_amount?: number | null, quantity_unit: ResolveEnumQuantity_Unit, quantity_label?: string | null }> | null }> | null, farm_lot_harvests?: Array<{ id: string, created_at: string, updated_at: string, quantity_unit: ResolveEnumQuantity_Unit, quantity_harvested: number }> | null };
+export type ResolveFarmLotInfo = { id: string, created_at: string, updated_at: string, name?: string | null, area?: number | null, area_unit: ResolveEnumArea_Unit, geolocation: { id: string, created_at: string, updated_at: string, point: { type: string, coordinates: Array<number> }, polygon?: { type: string, coordinates: Array<Array<Array<number>>> } | null, address: { id: string, created_at: string, updated_at: string, primary: string, admin: string, country: string } }, farm_lot_products?: Array<{ id: string, created_at: string, updated_at: string, area_planted?: number | null, area_planted_unit: ResolveEnumArea_Unit, date_planted?: string | null, days_to_maturity?: number | null, farm_product: { id: string, created_at: string, updated_at: string, name: string, farm_lot_products?: Array<{ id: string }> | null }, farm_trade_products?: Array<{ id: string, created_at: string, updated_at: string, title: string, description: string, process?: string | null, trade_product_prices?: Array<{ id: string, created_at: string, updated_at: string, amount: number, currency: string, quantity_amount?: number | null, quantity_unit: ResolveEnumQuantity_Unit, quantity_label?: string | null }> | null, trade_product_quantitys?: Array<{ id: string, created_at: string, updated_at: string, amount?: number | null, unit: ResolveEnumQuantity_Unit, label?: string | null }> | null }> | null, farm_lot_harvests?: Array<{ id: string, created_at: string, updated_at: string, quantity_harvested: number, quantity_harvested_unit: ResolveEnumQuantity_Unit }> | null }> | null };
+export type ResolveFarmLotProductInfo = { id: string, created_at: string, updated_at: string, area_planted?: number | null, area_planted_unit: ResolveEnumArea_Unit, date_planted?: string | null, days_to_maturity?: number | null, farm_product: { id: string, created_at: string, updated_at: string, name: string, farm_lot_products?: Array<{ id: string }> | null }, farm_trade_products?: Array<{ id: string, created_at: string, updated_at: string, title: string, description: string, process?: string | null, trade_product_prices?: Array<{ id: string, created_at: string, updated_at: string, amount: number, currency: string, quantity_amount?: number | null, quantity_unit: ResolveEnumQuantity_Unit, quantity_label?: string | null }> | null, trade_product_quantitys?: Array<{ id: string, created_at: string, updated_at: string, amount?: number | null, unit: ResolveEnumQuantity_Unit, label?: string | null }> | null }> | null, farm_lot_harvests?: Array<{ id: string, created_at: string, updated_at: string, quantity_harvested: number, quantity_harvested_unit: ResolveEnumQuantity_Unit }> | null };
export type ResolveFarmProductInfo = { id: string, created_at: string, updated_at: string, name: string, farm_lot_products?: Array<{ id: string }> | null };
-export type ResolveFarmTradeProductInfo = { id: string, created_at: string, updated_at: string, title: string, description: string, process?: string | null, trade_product_prices?: Array<{ id: string, created_at: string, updated_at: string, amount: number, currency: string, quantity_amount?: number | null, quantity_unit: ResolveEnumQuantity_Unit, quantity_label?: string | null }> | null, trade_product_quantitys?: Array<{ id: string, created_at: string, updated_at: string, quantity_amount?: number | null, quantity_unit: ResolveEnumQuantity_Unit, quantity_label?: string | null }> | null };
+export type ResolveFarmTradeProductInfo = { id: string, created_at: string, updated_at: string, title: string, description: string, process?: string | null, trade_product_prices?: Array<{ id: string, created_at: string, updated_at: string, amount: number, currency: string, quantity_amount?: number | null, quantity_unit: ResolveEnumQuantity_Unit, quantity_label?: string | null }> | null, trade_product_quantitys?: Array<{ id: string, created_at: string, updated_at: string, amount?: number | null, unit: ResolveEnumQuantity_Unit, label?: string | null }> | null };
export type ResolveTradeProductPriceInfo = { id: string, created_at: string, updated_at: string, amount: number, currency: string, quantity_amount?: number | null, quantity_unit: ResolveEnumQuantity_Unit, quantity_label?: string | null };
-export type ResolveTradeProductQuantityInfo = { id: string, created_at: string, updated_at: string, quantity_amount?: number | null, quantity_unit: ResolveEnumQuantity_Unit, quantity_label?: string | null };
-export type ResolveFarmLotHarvestInfo = { id: string, created_at: string, updated_at: string, quantity_unit: ResolveEnumQuantity_Unit, quantity_harvested: number };
+export type ResolveTradeProductQuantityInfo = { id: string, created_at: string, updated_at: string, amount?: number | null, unit: ResolveEnumQuantity_Unit, label?: string | null };
+export type ResolveFarmLotHarvestInfo = { id: string, created_at: string, updated_at: string, quantity_harvested: number, quantity_harvested_unit: ResolveEnumQuantity_Unit };
export type ResolveGeometryPoint = { type: string, coordinates: Array<number> };
export type ResolveGeometryPolygon = { type: string, coordinates: Array<Array<Array<number>>> };
diff --git a/utils/src/app/util/resolve-enum.ts b/utils/src/app/util/resolve-enum.ts
@@ -1,3 +1,20 @@
+export type ResolveEnumAccountRoleKey = `Admin` | `Guest` | `Internal` | `Member`;
+
+export const parse_enum_account_role_key = (val: string): ResolveEnumAccountRoleKey | undefined => {
+ switch (val) {
+ case `admin`:
+ return `Admin`;
+ case `guest`:
+ return `Guest`;
+ case `internal`:
+ return `Internal`;
+ case `member`:
+ return `Member`;
+ default:
+ return undefined;
+ }
+};
+
export type ResolveEnumAreaUnitKey = `Ac` | `Ft2` | `Ha` | `M2`;
export const parse_enum_area_unit_key = (val: string): ResolveEnumAreaUnitKey | undefined => {
@@ -15,6 +32,19 @@ export const parse_enum_area_unit_key = (val: string): ResolveEnumAreaUnitKey |
}
};
+export type ResolveEnumAuthCredentialKey = `Email` | `Phone`;
+
+export const parse_enum_auth_credential_key = (val: string): ResolveEnumAuthCredentialKey | undefined => {
+ switch (val) {
+ case `email`:
+ return `Email`;
+ case `phone`:
+ return `Phone`;
+ default:
+ return undefined;
+ }
+};
+
export type ResolveEnumBudgetItemTypeKey = `CapitalInvestment` | `Equipment` | `Fees` | `Infrastructure` | `Insurance` | `Labor` | `Materials` | `Other` | `Supplies`;
export const parse_enum_budget_item_type_key = (val: string): ResolveEnumBudgetItemTypeKey | undefined => {
@@ -63,19 +93,6 @@ export const parse_enum_budget_spending_type_key = (val: string): ResolveEnumBud
}
};
-export type ResolveEnumCredentialKey = `Email` | `Phone`;
-
-export const parse_enum_credential_key = (val: string): ResolveEnumCredentialKey | undefined => {
- switch (val) {
- case `email`:
- return `Email`;
- case `phone`:
- return `Phone`;
- default:
- return undefined;
- }
-};
-
export type ResolveEnumPaymentMethodKey = `Cash`;
export const parse_enum_payment_method_key = (val: string): ResolveEnumPaymentMethodKey | undefined => {
@@ -134,23 +151,6 @@ export const parse_enum_quantity_unit_key = (val: string): ResolveEnumQuantityUn
}
};
-export type ResolveEnumRoleKey = `Admin` | `Guest` | `Internal` | `Member`;
-
-export const parse_enum_role_key = (val: string): ResolveEnumRoleKey | undefined => {
- switch (val) {
- case `admin`:
- return `Admin`;
- case `guest`:
- return `Guest`;
- case `internal`:
- return `Internal`;
- case `member`:
- return `Member`;
- default:
- return undefined;
- }
-};
-
export type ResolveEnumWorkerTypeKey = `Contractor` | `Laborer`;
export const parse_enum_worker_type_key = (val: string): ResolveEnumWorkerTypeKey | undefined => {
diff --git a/utils/src/index.ts b/utils/src/index.ts
@@ -1,6 +1,7 @@
export * from "./*regex.js"
export * from "./*validation.js"
export * from "./app/document.js"
+export * from "./app/i18n-icu.js"
export * from "./app/i18n.js"
export * from "./app/lib.js"
export * from "./app/styles.js"