@bisondesk/commons-sdk 1.0.644 → 1.0.645

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.
@@ -52,7 +52,8 @@ export declare enum TopLevelActions {
52
52
  TasksAll = "tasks:*",
53
53
  TrackAndTraceDevices = "tt:devices:*",
54
54
  ManageStocklists = "stocklists:manage",
55
- TransportsBrowse = "transports:browse"
55
+ TransportsBrowse = "transports:browse",
56
+ TransportsManage = "transports:manage"
56
57
  }
57
58
  export declare const SUPPORTED_LANGUAGES: readonly ['en', 'fr', 'nl', 'es', 'de', 'pt'];
58
59
  export declare const TENANT_ID_ADMIN_HEADER = "tenant-id";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"/","sources":["constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"/","sources":["constants.ts"],"names":[],"mappings":"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"}
package/lib/constants.js CHANGED
@@ -60,6 +60,7 @@ export var TopLevelActions;
60
60
  TopLevelActions["TrackAndTraceDevices"] = "tt:devices:*";
61
61
  TopLevelActions["ManageStocklists"] = "stocklists:manage";
62
62
  TopLevelActions["TransportsBrowse"] = "transports:browse";
63
+ TopLevelActions["TransportsManage"] = "transports:manage";
63
64
  })(TopLevelActions || (TopLevelActions = {}));
64
65
  export const SUPPORTED_LANGUAGES = ['en', 'fr', 'nl', 'es', 'de', 'pt'];
65
66
  export const TENANT_ID_ADMIN_HEADER = 'tenant-id';
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"/","sources":["constants.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Carries a record's version between server and client: the server answers with it on a read,\n * and a client hands it back on a write so the write only lands while the row still stands\n * there. Successor to the older `x-record-modified-at`.\n */\nexport const RECORD_VERSION_HEADER = 'x-record-version';\n\n//\n// STATIC ROLES\n//\nexport enum AppRoles {\n Accountant = 'accountant',\n Admin = 'admins',\n Administrative = 'administrative',\n AppManager = 'app_manager',\n Board = 'board',\n Commercial = 'commercial',\n InboundCommercial = 'inbound_commercial',\n LeasingCommercial = 'leasing_commercial',\n GeneralManager = 'general_manager',\n GeneralManagerAssistant = 'general_manager_assistant',\n ParkLogistics = 'park_logistics',\n Purchaser = 'purchaser',\n SalesManager = 'sales_manager',\n SalesPriceManager = 'sales_price_manager',\n SalesStockManager = 'sales_stock_manager',\n SalesMarketingManager = 'sales_marketing_manager',\n SeniorAccountant = 'senior_accountant',\n TrackAndTraceManager = 'track_and_trace_manager',\n}\n\nexport const TOP_ROLES = [\n AppRoles.Admin,\n AppRoles.Board,\n AppRoles.GeneralManager,\n AppRoles.SeniorAccountant,\n];\n\nexport enum TopLevelActions {\n AdministrationAll = 'admin:*',\n DocumentsFinanceBrowse = 'docs:finance:browse',\n DocumentsFinanceIssueProforma = 'docs:finance:new:proforma',\n DocumentsFinanceIssue = 'docs:finance:new',\n DocumentsAdministrativeBrowse = 'docs:administrative:browse',\n LeadsAll = 'leads:*',\n CrmOrgsBrowse = 'crm:orgs:browse',\n CrmContactsBrowse = 'crm:contacts:browse',\n BrowseDocumentDrafts = 'docs:drafts:browse',\n BrowsePurchasePayments = 'vehicles:purchase-payments:browse',\n BrowsePendingRemarks = 'remarks:pending:browse',\n LeasingDebtorsView = 'leasing:debtors:view',\n LeasingOverduesView = 'leasing:overdues:view',\n LeasingContractsExport = 'leasing:contracts:export',\n LeasingContractsBrowse = 'leasing:contracts:browse',\n LeasingContractsRsExport = 'leasing:contracts:rs:export-rs', // rs stands for rental solutions\n LeasingDebtorsExport = 'leasing:debtors:export',\n MarketBrowse = 'market:browse',\n MarketInsights = 'insights:market',\n MarketingAll = 'marketing:*',\n OffersBrowse = 'offers:browse',\n OpportunitiesBrowseAll = 'opps:browse',\n OpportunitiesBrowseAssigned = 'opps:browse:assigned',\n IntercompanyPaymentsBrowse = 'opps:intercompany-payments:browse',\n VehicleInsights = 'insights:vehicle',\n SaveBankAccounts = 'settings:bank-accounts:save',\n SettingsAll = 'settings:*',\n VehicleCreate = 'vehicle:create',\n TasksAll = 'tasks:*',\n TrackAndTraceDevices = 'tt:devices:*',\n ManageStocklists = 'stocklists:manage',\n TransportsBrowse = 'transports:browse',\n}\n\n//\n// I18N\n//\nexport const SUPPORTED_LANGUAGES = ['en', 'fr', 'nl', 'es', 'de', 'pt'] as const;\n\n//\n// Headers\n//\nexport const TENANT_ID_ADMIN_HEADER = 'tenant-id';\nexport const SERVICE_ID_ADMIN_HEADER = 'service-id';\n\n//\n// AUTH\n//\nexport const NO_TENANT_ID_VALUE = 'notenant';\nexport const SYSTEM_USER_ID = 'system';\nexport const CROSS_TENANT_USER_ID = 'cross-tenant-sync';\nexport const WHATSAPP_TEMPLATE_SYNC_USER_ID = 'whatsapp-template-sync';\n\n/** The registry of synthetic (non-human) user ids — behavior checks key on this list. */\nexport const SYNTHETIC_USER_IDS: readonly string[] = [\n SYSTEM_USER_ID,\n CROSS_TENANT_USER_ID,\n WHATSAPP_TEMPLATE_SYNC_USER_ID,\n];\n\n/** Display labels for the synthetic user ids — a projection of the registry above. */\nexport const SYNTHETIC_USER_LABELS: Record<string, string> = {\n [SYSTEM_USER_ID]: 'System',\n [CROSS_TENANT_USER_ID]: 'Tenant-sync',\n [WHATSAPP_TEMPLATE_SYNC_USER_ID]: 'Template-sync',\n};\n\n//\n// Business Entity IDs\n//\nexport enum BusinessEntityIds {\n BecrisDeclarations = 'becris_declarations',\n Contacts = 'contacts',\n Emails = 'emails',\n ExternalVehicleSale = 'external_vehicle_sale',\n Documents = 'documents',\n FinanceDocuments = 'finance_documents',\n AdministrativeDocuments = 'administrative_documents',\n InternetVehicles = 'internet-vehicles',\n LeasingContracts = 'leasing_contracts',\n LeasingUploadAutomation = 'leasing_upload_automation',\n Offers = 'offers',\n Opportunities = 'opportunities',\n Organizations = 'organizations',\n PdfTemplates = 'pdf_templates',\n Users = 'users',\n Vehicles = 'vehicles',\n VehiclesPurchase = 'vehicle_purchase',\n VehiclesPriceLists = 'vehicles_price_lists',\n Debtors = 'debtors',\n DebtorsDossier = 'debtor-dossiers',\n DocumentDrafts = 'document_drafts',\n TrackAndTraceDevices = 'track_and_trace_devices',\n Interests = 'interests',\n Prospects = 'prospects',\n Stocklists = 'stocklists',\n Transports = 'transports',\n}\n\n//\n// PDF Templates IDs\n//\nexport const LEASING_QUOTE_TEMPLATE_GROUP_ID = 'leasing_quote_template';\nexport const LEASING_QUOTE_PROFORMA_TEMPLATE_GROUP_ID = 'leasing_quote_proforma_template';\nexport const LEASING_CONTRACT_AMORTIZATION_TEMPLATE_GROUP_ID =\n 'leasing_contract_amortization_template';\nexport const LEASING_CONTRACT_AMORTIZATION_TEMPLATE_PRINT_VERSION_GROUP_ID =\n 'leasing_contract_amortization_print_version_template';\nexport const LEASING_QUOTE_LOCATION_TEMPLATE = 'leasing_quote_location_template';\nexport const LEASING_CONTRACT_TC_TEMPLATE_GROUP_ID = 'leasing_contract_tc_template';\nexport const LEASING_CONTRACT_SPECIFIC_CONDITIONS_TEMPLATE_GROUP_ID =\n 'leasing_contract_specific_conditions_template';\nexport const LEASING_CONTRACT_CAUTIONNEMENT_TEMPLATE_GROUP_ID =\n 'leasing_contract_cautionnement_template';\nexport const LEASING_CONTRACT_DELIVERY_CONFIRMATION_TEMPLATE_GROUP_ID =\n 'leasing_contract_delivery_confirmation_template';\nexport const SALES_QUOTE_PROFORMA_TEMPLATE_GROUP_ID = 'sales_quote_proforma_template';\nexport const SALES_QUOTE_AGREEMENT_TEMPLATE_GROUP_ID = 'sales_quote_agreement_template';\nexport const SALES_INVOICE_TEMPLATE_GROUP_ID = 'sales_invoice_template';\nexport const VEHICLES_STICKER_TEMPLATE_GROUP_ID = 'vehicles_sticker_template';\nexport const EXTERNAL_DELIVERY_CONFIRMATION_TEMPLATE_GROUP_ID = 'external_delivery_confirmation';\n\n//\n// VAT Prefixes for EU Countries and Great Britain & Northern Ireland\n//\nexport const EU_VAT_COUNTRY_CODES = [\n 'at',\n 'be',\n 'bg',\n 'hr',\n 'cy',\n 'cz',\n 'dk',\n 'ee',\n 'fi',\n 'fr',\n 'de',\n 'gr', // greece has EL prefix but the country code is GR\n 'el',\n 'hu',\n 'ie',\n 'it',\n 'lv',\n 'lt',\n 'lu',\n 'mt',\n 'nl',\n 'pl',\n 'pt',\n 'ro',\n 'sk',\n 'si',\n 'es',\n 'se',\n 'xi', // Northern Ireland\n];\n\nexport const HEXON_LANG_CODES: [string, ...string[]] = [\n 'en',\n 'nl',\n 'de',\n 'fr',\n 'es',\n 'pt',\n 'it',\n 'pl',\n 'ru',\n 'ro',\n 'el',\n 'bg',\n];\n\nexport const DEFAULT_SLB_PARTNER = 'To be announced';\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"/","sources":["constants.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Carries a record's version between server and client: the server answers with it on a read,\n * and a client hands it back on a write so the write only lands while the row still stands\n * there. Successor to the older `x-record-modified-at`.\n */\nexport const RECORD_VERSION_HEADER = 'x-record-version';\n\n//\n// STATIC ROLES\n//\nexport enum AppRoles {\n Accountant = 'accountant',\n Admin = 'admins',\n Administrative = 'administrative',\n AppManager = 'app_manager',\n Board = 'board',\n Commercial = 'commercial',\n InboundCommercial = 'inbound_commercial',\n LeasingCommercial = 'leasing_commercial',\n GeneralManager = 'general_manager',\n GeneralManagerAssistant = 'general_manager_assistant',\n ParkLogistics = 'park_logistics',\n Purchaser = 'purchaser',\n SalesManager = 'sales_manager',\n SalesPriceManager = 'sales_price_manager',\n SalesStockManager = 'sales_stock_manager',\n SalesMarketingManager = 'sales_marketing_manager',\n SeniorAccountant = 'senior_accountant',\n TrackAndTraceManager = 'track_and_trace_manager',\n}\n\nexport const TOP_ROLES = [\n AppRoles.Admin,\n AppRoles.Board,\n AppRoles.GeneralManager,\n AppRoles.SeniorAccountant,\n];\n\nexport enum TopLevelActions {\n AdministrationAll = 'admin:*',\n DocumentsFinanceBrowse = 'docs:finance:browse',\n DocumentsFinanceIssueProforma = 'docs:finance:new:proforma',\n DocumentsFinanceIssue = 'docs:finance:new',\n DocumentsAdministrativeBrowse = 'docs:administrative:browse',\n LeadsAll = 'leads:*',\n CrmOrgsBrowse = 'crm:orgs:browse',\n CrmContactsBrowse = 'crm:contacts:browse',\n BrowseDocumentDrafts = 'docs:drafts:browse',\n BrowsePurchasePayments = 'vehicles:purchase-payments:browse',\n BrowsePendingRemarks = 'remarks:pending:browse',\n LeasingDebtorsView = 'leasing:debtors:view',\n LeasingOverduesView = 'leasing:overdues:view',\n LeasingContractsExport = 'leasing:contracts:export',\n LeasingContractsBrowse = 'leasing:contracts:browse',\n LeasingContractsRsExport = 'leasing:contracts:rs:export-rs', // rs stands for rental solutions\n LeasingDebtorsExport = 'leasing:debtors:export',\n MarketBrowse = 'market:browse',\n MarketInsights = 'insights:market',\n MarketingAll = 'marketing:*',\n OffersBrowse = 'offers:browse',\n OpportunitiesBrowseAll = 'opps:browse',\n OpportunitiesBrowseAssigned = 'opps:browse:assigned',\n IntercompanyPaymentsBrowse = 'opps:intercompany-payments:browse',\n VehicleInsights = 'insights:vehicle',\n SaveBankAccounts = 'settings:bank-accounts:save',\n SettingsAll = 'settings:*',\n VehicleCreate = 'vehicle:create',\n TasksAll = 'tasks:*',\n TrackAndTraceDevices = 'tt:devices:*',\n ManageStocklists = 'stocklists:manage',\n TransportsBrowse = 'transports:browse',\n TransportsManage = 'transports:manage',\n}\n\n//\n// I18N\n//\nexport const SUPPORTED_LANGUAGES = ['en', 'fr', 'nl', 'es', 'de', 'pt'] as const;\n\n//\n// Headers\n//\nexport const TENANT_ID_ADMIN_HEADER = 'tenant-id';\nexport const SERVICE_ID_ADMIN_HEADER = 'service-id';\n\n//\n// AUTH\n//\nexport const NO_TENANT_ID_VALUE = 'notenant';\nexport const SYSTEM_USER_ID = 'system';\nexport const CROSS_TENANT_USER_ID = 'cross-tenant-sync';\nexport const WHATSAPP_TEMPLATE_SYNC_USER_ID = 'whatsapp-template-sync';\n\n/** The registry of synthetic (non-human) user ids — behavior checks key on this list. */\nexport const SYNTHETIC_USER_IDS: readonly string[] = [\n SYSTEM_USER_ID,\n CROSS_TENANT_USER_ID,\n WHATSAPP_TEMPLATE_SYNC_USER_ID,\n];\n\n/** Display labels for the synthetic user ids — a projection of the registry above. */\nexport const SYNTHETIC_USER_LABELS: Record<string, string> = {\n [SYSTEM_USER_ID]: 'System',\n [CROSS_TENANT_USER_ID]: 'Tenant-sync',\n [WHATSAPP_TEMPLATE_SYNC_USER_ID]: 'Template-sync',\n};\n\n//\n// Business Entity IDs\n//\nexport enum BusinessEntityIds {\n BecrisDeclarations = 'becris_declarations',\n Contacts = 'contacts',\n Emails = 'emails',\n ExternalVehicleSale = 'external_vehicle_sale',\n Documents = 'documents',\n FinanceDocuments = 'finance_documents',\n AdministrativeDocuments = 'administrative_documents',\n InternetVehicles = 'internet-vehicles',\n LeasingContracts = 'leasing_contracts',\n LeasingUploadAutomation = 'leasing_upload_automation',\n Offers = 'offers',\n Opportunities = 'opportunities',\n Organizations = 'organizations',\n PdfTemplates = 'pdf_templates',\n Users = 'users',\n Vehicles = 'vehicles',\n VehiclesPurchase = 'vehicle_purchase',\n VehiclesPriceLists = 'vehicles_price_lists',\n Debtors = 'debtors',\n DebtorsDossier = 'debtor-dossiers',\n DocumentDrafts = 'document_drafts',\n TrackAndTraceDevices = 'track_and_trace_devices',\n Interests = 'interests',\n Prospects = 'prospects',\n Stocklists = 'stocklists',\n Transports = 'transports',\n}\n\n//\n// PDF Templates IDs\n//\nexport const LEASING_QUOTE_TEMPLATE_GROUP_ID = 'leasing_quote_template';\nexport const LEASING_QUOTE_PROFORMA_TEMPLATE_GROUP_ID = 'leasing_quote_proforma_template';\nexport const LEASING_CONTRACT_AMORTIZATION_TEMPLATE_GROUP_ID =\n 'leasing_contract_amortization_template';\nexport const LEASING_CONTRACT_AMORTIZATION_TEMPLATE_PRINT_VERSION_GROUP_ID =\n 'leasing_contract_amortization_print_version_template';\nexport const LEASING_QUOTE_LOCATION_TEMPLATE = 'leasing_quote_location_template';\nexport const LEASING_CONTRACT_TC_TEMPLATE_GROUP_ID = 'leasing_contract_tc_template';\nexport const LEASING_CONTRACT_SPECIFIC_CONDITIONS_TEMPLATE_GROUP_ID =\n 'leasing_contract_specific_conditions_template';\nexport const LEASING_CONTRACT_CAUTIONNEMENT_TEMPLATE_GROUP_ID =\n 'leasing_contract_cautionnement_template';\nexport const LEASING_CONTRACT_DELIVERY_CONFIRMATION_TEMPLATE_GROUP_ID =\n 'leasing_contract_delivery_confirmation_template';\nexport const SALES_QUOTE_PROFORMA_TEMPLATE_GROUP_ID = 'sales_quote_proforma_template';\nexport const SALES_QUOTE_AGREEMENT_TEMPLATE_GROUP_ID = 'sales_quote_agreement_template';\nexport const SALES_INVOICE_TEMPLATE_GROUP_ID = 'sales_invoice_template';\nexport const VEHICLES_STICKER_TEMPLATE_GROUP_ID = 'vehicles_sticker_template';\nexport const EXTERNAL_DELIVERY_CONFIRMATION_TEMPLATE_GROUP_ID = 'external_delivery_confirmation';\n\n//\n// VAT Prefixes for EU Countries and Great Britain & Northern Ireland\n//\nexport const EU_VAT_COUNTRY_CODES = [\n 'at',\n 'be',\n 'bg',\n 'hr',\n 'cy',\n 'cz',\n 'dk',\n 'ee',\n 'fi',\n 'fr',\n 'de',\n 'gr', // greece has EL prefix but the country code is GR\n 'el',\n 'hu',\n 'ie',\n 'it',\n 'lv',\n 'lt',\n 'lu',\n 'mt',\n 'nl',\n 'pl',\n 'pt',\n 'ro',\n 'sk',\n 'si',\n 'es',\n 'se',\n 'xi', // Northern Ireland\n];\n\nexport const HEXON_LANG_CODES: [string, ...string[]] = [\n 'en',\n 'nl',\n 'de',\n 'fr',\n 'es',\n 'pt',\n 'it',\n 'pl',\n 'ru',\n 'ro',\n 'el',\n 'bg',\n];\n\nexport const DEFAULT_SLB_PARTNER = 'To be announced';\n"]}
@@ -5,4 +5,5 @@ export declare const isoString: (value?: number | string | Date) => string;
5
5
  export declare const getLatestIsoString: (dates: (string | undefined)[]) => string | undefined;
6
6
  export declare const formatInTimeZone: (rawDate: number | string | Date, timezone: string, formatStr: string) => string;
7
7
  export declare const formatDateToISOWeek: (date?: Date) => string;
8
+ export declare const getISOWeekStartDate: (isoWeek?: string) => string | undefined;
8
9
  //# sourceMappingURL=date-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"date-utils.d.ts","sourceRoot":"/","sources":["date-utils.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,UAAW,IAAI,aAAa,IAAI,KAAG,OAC1B,CAAC;AAEpC,eAAO,MAAM,cAAc,UAAW,IAAI,aAAa,IAAI,KAAG,OAC3B,CAAC;AAEpC,eAAO,MAAM,SAAS,UAAW,IAAI,kBAAkB,IAAI,gBAAgB,IAAI,KAAG,OACX,CAAC;AAExE,eAAO,MAAM,SAAS,WAAW,MAAM,GAAG,MAAM,GAAG,IAAI,WACxB,CAAC;AAIhC,eAAO,MAAM,kBAAkB,UAAW,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,KAAG,MAAM,GAAG,SAIjE,CAAC;AAEZ,eAAO,MAAM,gBAAgB,YAClB,MAAM,GAAG,MAAM,GAAG,IAAI,YACrB,MAAM,aACL,MAAM,WAelB,CAAC;AAGF,eAAO,MAAM,mBAAmB,UAAU,IAAI,KAAgB,MAI7D,CAAC"}
1
+ {"version":3,"file":"date-utils.d.ts","sourceRoot":"/","sources":["date-utils.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,aAAa,UAAW,IAAI,aAAa,IAAI,KAAG,OAC1B,CAAC;AAEpC,eAAO,MAAM,cAAc,UAAW,IAAI,aAAa,IAAI,KAAG,OAC3B,CAAC;AAEpC,eAAO,MAAM,SAAS,UAAW,IAAI,kBAAkB,IAAI,gBAAgB,IAAI,KAAG,OACX,CAAC;AAExE,eAAO,MAAM,SAAS,WAAW,MAAM,GAAG,MAAM,GAAG,IAAI,WACxB,CAAC;AAIhC,eAAO,MAAM,kBAAkB,UAAW,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,KAAG,MAAM,GAAG,SAIjE,CAAC;AAEZ,eAAO,MAAM,gBAAgB,YAClB,MAAM,GAAG,MAAM,GAAG,IAAI,YACrB,MAAM,aACL,MAAM,WAelB,CAAC;AASF,eAAO,MAAM,mBAAmB,UAAU,IAAI,KAAgB,MAI7D,CAAC;AAMF,eAAO,MAAM,mBAAmB,aAAc,MAAM,KAAG,MAAM,GAAG,SAmB/D,CAAC"}
package/lib/date-utils.js CHANGED
@@ -1,4 +1,4 @@
1
- import { compareAsc, format, getISOWeek, isBefore } from 'date-fns';
1
+ import { compareAsc, format, getISOWeek, getISOWeekYear, isBefore, parseISO, startOfISOWeek, } from 'date-fns';
2
2
  export const isSameOrAfter = (value, reference) => compareAsc(value, reference) >= 0;
3
3
  export const isSameOrBefore = (value, reference) => compareAsc(value, reference) <= 0;
4
4
  export const isBetween = (value, startInclusive, endExclusive) => isSameOrAfter(value, startInclusive) && isBefore(value, endExclusive);
@@ -15,8 +15,22 @@ export const formatInTimeZone = (rawDate, timezone, formatStr) => {
15
15
  return format(targetDate, formatStr);
16
16
  };
17
17
  export const formatDateToISOWeek = (date = new Date()) => {
18
- const year = date.getFullYear();
18
+ const year = getISOWeekYear(date);
19
19
  const week = getISOWeek(date);
20
20
  return `${year}-W${week.toString().padStart(2, '0')}`;
21
21
  };
22
+ export const getISOWeekStartDate = (isoWeek) => {
23
+ if (!isoWeek) {
24
+ return undefined;
25
+ }
26
+ const parsed = parseISO(isoWeek);
27
+ if (Number.isNaN(parsed.getTime())) {
28
+ return undefined;
29
+ }
30
+ const monday = startOfISOWeek(parsed);
31
+ if (formatDateToISOWeek(monday) !== isoWeek) {
32
+ return undefined;
33
+ }
34
+ return format(monday, 'yyyy-MM-dd');
35
+ };
22
36
  //# sourceMappingURL=date-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"date-utils.js","sourceRoot":"/","sources":["date-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAW,EAAE,SAAe,EAAW,EAAE,CACrE,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAEpC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAW,EAAE,SAAe,EAAW,EAAE,CACtE,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAEpC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAW,EAAE,cAAoB,EAAE,YAAkB,EAAW,EAAE,CAC1F,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAExE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAK,GAA2B,IAAI,IAAI,EAAE,EAAE,EAAE,CACtE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAIhC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAA6B,EAAsB,EAAE,CACtF,KAAK;KACF,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC;KAC9C,IAAI,EAAE;KACN,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEZ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAA+B,EAC/B,QAAgB,EAChB,SAAiB,EACjB,EAAE;IACF,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAGnC,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAGxF,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;IAGjE,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;IAGjE,OAAO,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AACvC,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAI,GAAS,IAAI,IAAI,EAAE,EAAU,EAAE;IACrE,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACxD,CAAC,CAAC","sourcesContent":["import { compareAsc, format, getISOWeek, isBefore } from 'date-fns';\n\nexport const isSameOrAfter = (value: Date, reference: Date): boolean =>\n compareAsc(value, reference) >= 0;\n\nexport const isSameOrBefore = (value: Date, reference: Date): boolean =>\n compareAsc(value, reference) <= 0;\n\nexport const isBetween = (value: Date, startInclusive: Date, endExclusive: Date): boolean =>\n isSameOrAfter(value, startInclusive) && isBefore(value, endExclusive);\n\nexport const isoString = (value: number | string | Date = new Date()) =>\n new Date(value).toISOString();\n\n// ISO strings as produced by isoString() (uniform UTC, millisecond precision) sort\n// lexicographically in chronological order, so no date parsing is needed.\nexport const getLatestIsoString = (dates: (string | undefined)[]): string | undefined =>\n dates\n .filter((date): date is string => date != null)\n .sort()\n .at(-1);\n\nexport const formatInTimeZone = (\n rawDate: number | string | Date,\n timezone: string,\n formatStr: string,\n) => {\n const baseDate = new Date(rawDate);\n\n // Convert date to the target timezone\n const offsetDate = new Date(baseDate.toLocaleString(undefined, { timeZone: timezone }));\n\n // Calculate the timezone difference in milliseconds\n const timezoneOffset = baseDate.getTime() - offsetDate.getTime();\n\n // Apply the offset to get the correct date in the target timezone\n const targetDate = new Date(baseDate.getTime() - timezoneOffset);\n\n // Format the date\n return format(targetDate, formatStr);\n};\n\n// Function to format date as YYYY-WWW\nexport const formatDateToISOWeek = (date: Date = new Date()): string => {\n const year = date.getFullYear();\n const week = getISOWeek(date);\n return `${year}-W${week.toString().padStart(2, '0')}`;\n};\n"]}
1
+ {"version":3,"file":"date-utils.js","sourceRoot":"/","sources":["date-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,MAAM,EACN,UAAU,EACV,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,cAAc,GACf,MAAM,UAAU,CAAC;AAElB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAW,EAAE,SAAe,EAAW,EAAE,CACrE,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAEpC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAW,EAAE,SAAe,EAAW,EAAE,CACtE,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAEpC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAW,EAAE,cAAoB,EAAE,YAAkB,EAAW,EAAE,CAC1F,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAExE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAK,GAA2B,IAAI,IAAI,EAAE,EAAE,EAAE,CACtE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAIhC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAA6B,EAAsB,EAAE,CACtF,KAAK;KACF,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC;KAC9C,IAAI,EAAE;KACN,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEZ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAA+B,EAC/B,QAAgB,EAChB,SAAiB,EACjB,EAAE;IACF,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAGnC,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAGxF,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;IAGjE,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;IAGjE,OAAO,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AACvC,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAI,GAAS,IAAI,IAAI,EAAE,EAAU,EAAE;IACrE,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACxD,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAsB,EAAE;IAC1E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACnC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAItC,IAAI,mBAAmB,CAAC,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AACtC,CAAC,CAAC","sourcesContent":["import {\n compareAsc,\n format,\n getISOWeek,\n getISOWeekYear,\n isBefore,\n parseISO,\n startOfISOWeek,\n} from 'date-fns';\n\nexport const isSameOrAfter = (value: Date, reference: Date): boolean =>\n compareAsc(value, reference) >= 0;\n\nexport const isSameOrBefore = (value: Date, reference: Date): boolean =>\n compareAsc(value, reference) <= 0;\n\nexport const isBetween = (value: Date, startInclusive: Date, endExclusive: Date): boolean =>\n isSameOrAfter(value, startInclusive) && isBefore(value, endExclusive);\n\nexport const isoString = (value: number | string | Date = new Date()) =>\n new Date(value).toISOString();\n\n// ISO strings as produced by isoString() (uniform UTC, millisecond precision) sort\n// lexicographically in chronological order, so no date parsing is needed.\nexport const getLatestIsoString = (dates: (string | undefined)[]): string | undefined =>\n dates\n .filter((date): date is string => date != null)\n .sort()\n .at(-1);\n\nexport const formatInTimeZone = (\n rawDate: number | string | Date,\n timezone: string,\n formatStr: string,\n) => {\n const baseDate = new Date(rawDate);\n\n // Convert date to the target timezone\n const offsetDate = new Date(baseDate.toLocaleString(undefined, { timeZone: timezone }));\n\n // Calculate the timezone difference in milliseconds\n const timezoneOffset = baseDate.getTime() - offsetDate.getTime();\n\n // Apply the offset to get the correct date in the target timezone\n const targetDate = new Date(baseDate.getTime() - timezoneOffset);\n\n // Format the date\n return format(targetDate, formatStr);\n};\n\n/**\n * Formats a date as `YYYY-Www`.\n *\n * Both halves come from the ISO week calendar. Pairing the calendar year with the ISO week\n * breaks over New Year: 1 Jan 2027 sits in ISO week 53 of 2026, and `2027-W53` is a week that\n * does not exist.\n */\nexport const formatDateToISOWeek = (date: Date = new Date()): string => {\n const year = getISOWeekYear(date);\n const week = getISOWeek(date);\n return `${year}-W${week.toString().padStart(2, '0')}`;\n};\n\n/**\n * Inverse of {@link formatDateToISOWeek}: the Monday opening the given ISO week, as `yyyy-MM-dd`.\n * Returns undefined when the week is missing, unparseable, or does not exist.\n */\nexport const getISOWeekStartDate = (isoWeek?: string): string | undefined => {\n if (!isoWeek) {\n return undefined;\n }\n\n const parsed = parseISO(isoWeek);\n if (Number.isNaN(parsed.getTime())) {\n return undefined;\n }\n\n const monday = startOfISOWeek(parsed);\n // A week past the end of its ISO year (`2027-W53` — 2027 has 52) parses, but silently rolls\n // into the next year. Rows written before the formatter above was fixed can carry one, so\n // reject rather than hand back a Monday a year out.\n if (formatDateToISOWeek(monday) !== isoWeek) {\n return undefined;\n }\n\n return format(monday, 'yyyy-MM-dd');\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bisondesk/commons-sdk",
3
- "version": "1.0.644",
3
+ "version": "1.0.645",
4
4
  "type": "module",
5
5
  "dependencies": {
6
6
  "@date-fns/utc": "2.1.1",
@@ -0,0 +1,75 @@
1
+ import fetch from 'node-fetch';
2
+ import { XError } from '../errors.js';
3
+ import { cleanHeaders, getAdminAuth } from '../fetch.js';
4
+ import { TENANT_ID_ADMIN_HEADER } from '../constants.js';
5
+ export const getMultiplePicklistValues = async (request) => {
6
+ const auth = await getAdminAuth();
7
+ const response = await fetch(`${process.env.CORE_API_ORIGIN}/api/picklists/bulk/read`, {
8
+ method: 'POST',
9
+ headers: {
10
+ Authorization: auth,
11
+ 'Content-Type': 'application/json',
12
+ },
13
+ body: JSON.stringify(request),
14
+ });
15
+ if (response.ok) {
16
+ return response.json();
17
+ }
18
+ const body = await response.text();
19
+ throw new XError(response.statusText, { body });
20
+ };
21
+ export const getPicklistOptions = async (req, tenantId) => {
22
+ const auth = await getAdminAuth();
23
+ const response = await fetch(`${process.env.CORE_API_ORIGIN}/api/picklists/options`, {
24
+ method: 'POST',
25
+ headers: cleanHeaders({
26
+ Authorization: auth,
27
+ 'Content-Type': 'application/json',
28
+ [TENANT_ID_ADMIN_HEADER]: tenantId,
29
+ }),
30
+ body: JSON.stringify(req),
31
+ });
32
+ if (response.ok) {
33
+ return response.json();
34
+ }
35
+ const body = await response.text();
36
+ throw new XError(response.statusText, { body, req });
37
+ };
38
+ export const upsertPicklistValue = async (request) => {
39
+ const auth = await getAdminAuth();
40
+ const response = await fetch(`${process.env.CORE_API_ORIGIN}/api/picklists/value`, {
41
+ method: 'POST',
42
+ headers: {
43
+ Authorization: auth,
44
+ 'Content-Type': 'application/json',
45
+ },
46
+ body: JSON.stringify(request),
47
+ });
48
+ if (response.ok) {
49
+ return response.json();
50
+ }
51
+ const body = await response.text();
52
+ throw new XError(response.statusText, { body });
53
+ };
54
+ export const getAdhocPicklistDisplayValue = async (requests, preferredLang, tenantLang) => {
55
+ const auth = await getAdminAuth();
56
+ const req = {
57
+ preferredLang,
58
+ requests,
59
+ tenantLang,
60
+ };
61
+ const response = await fetch(`${process.env.CORE_API_ORIGIN}/api/picklists/bulk/read`, {
62
+ method: 'POST',
63
+ headers: cleanHeaders({
64
+ Authorization: auth,
65
+ 'Content-Type': 'application/json',
66
+ }),
67
+ body: JSON.stringify(req),
68
+ });
69
+ if (response.ok) {
70
+ return response.json();
71
+ }
72
+ const body = await response.text();
73
+ throw new XError(response.statusText, { body, req });
74
+ };
75
+ //# sourceMappingURL=picklists.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"picklists.js","sourceRoot":"","sources":["picklists.ts"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAUzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAC5C,OAA6B,EACO,EAAE;IACtC,MAAM,IAAI,GAAG,MAAM,YAAY,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAa,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,0BAA0B,EAAE;QAC/F,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,QAAQ,CAAC,IAAI,EAAS,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,GAA2B,EAC3B,QAAiB,EACE,EAAE;IACrB,MAAM,IAAI,GAAG,MAAM,YAAY,EAAE,CAAC;IAElC,MAAM,QAAQ,GAAa,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,wBAAwB,EAAE;QAC7F,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,YAAY,CAAC;YACpB,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,kBAAkB;YAClC,CAAC,sBAAsB,CAAC,EAAE,QAAQ;SACnC,CAAC;QACF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;KAC1B,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,QAAQ,CAAC,IAAI,EAAS,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AACvD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,OAAmC,EACX,EAAE;IAC1B,MAAM,IAAI,GAAG,MAAM,YAAY,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAa,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,sBAAsB,EAAE;QAC3F,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,QAAQ,CAAC,IAAI,EAAS,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,EAC/C,QAAgC,EAChC,aAAqB,EACrB,UAAkB,EACkB,EAAE;IACtC,MAAM,IAAI,GAAG,MAAM,YAAY,EAAE,CAAC;IAElC,MAAM,GAAG,GAAyB;QAChC,aAAa;QACb,QAAQ;QACR,UAAU;KACX,CAAC;IAEF,MAAM,QAAQ,GAAa,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,0BAA0B,EAAE;QAC/F,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,YAAY,CAAC;YACpB,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,kBAAkB;SACnC,CAAC;QACF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;KAC1B,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,QAAQ,CAAC,IAAI,EAAS,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEnC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AACvD,CAAC,CAAC"}
package/src/constants.ts CHANGED
@@ -69,6 +69,7 @@ export enum TopLevelActions {
69
69
  TrackAndTraceDevices = 'tt:devices:*',
70
70
  ManageStocklists = 'stocklists:manage',
71
71
  TransportsBrowse = 'transports:browse',
72
+ TransportsManage = 'transports:manage',
72
73
  }
73
74
 
74
75
  //
package/src/date-utils.ts CHANGED
@@ -1,4 +1,12 @@
1
- import { compareAsc, format, getISOWeek, isBefore } from 'date-fns';
1
+ import {
2
+ compareAsc,
3
+ format,
4
+ getISOWeek,
5
+ getISOWeekYear,
6
+ isBefore,
7
+ parseISO,
8
+ startOfISOWeek,
9
+ } from 'date-fns';
2
10
 
3
11
  export const isSameOrAfter = (value: Date, reference: Date): boolean =>
4
12
  compareAsc(value, reference) >= 0;
@@ -40,9 +48,40 @@ export const formatInTimeZone = (
40
48
  return format(targetDate, formatStr);
41
49
  };
42
50
 
43
- // Function to format date as YYYY-WWW
51
+ /**
52
+ * Formats a date as `YYYY-Www`.
53
+ *
54
+ * Both halves come from the ISO week calendar. Pairing the calendar year with the ISO week
55
+ * breaks over New Year: 1 Jan 2027 sits in ISO week 53 of 2026, and `2027-W53` is a week that
56
+ * does not exist.
57
+ */
44
58
  export const formatDateToISOWeek = (date: Date = new Date()): string => {
45
- const year = date.getFullYear();
59
+ const year = getISOWeekYear(date);
46
60
  const week = getISOWeek(date);
47
61
  return `${year}-W${week.toString().padStart(2, '0')}`;
48
62
  };
63
+
64
+ /**
65
+ * Inverse of {@link formatDateToISOWeek}: the Monday opening the given ISO week, as `yyyy-MM-dd`.
66
+ * Returns undefined when the week is missing, unparseable, or does not exist.
67
+ */
68
+ export const getISOWeekStartDate = (isoWeek?: string): string | undefined => {
69
+ if (!isoWeek) {
70
+ return undefined;
71
+ }
72
+
73
+ const parsed = parseISO(isoWeek);
74
+ if (Number.isNaN(parsed.getTime())) {
75
+ return undefined;
76
+ }
77
+
78
+ const monday = startOfISOWeek(parsed);
79
+ // A week past the end of its ISO year (`2027-W53` — 2027 has 52) parses, but silently rolls
80
+ // into the next year. Rows written before the formatter above was fixed can carry one, so
81
+ // reject rather than hand back a Monday a year out.
82
+ if (formatDateToISOWeek(monday) !== isoWeek) {
83
+ return undefined;
84
+ }
85
+
86
+ return format(monday, 'yyyy-MM-dd');
87
+ };
@@ -0,0 +1,15 @@
1
+ export const DEFAULT_SEPARATOR = ' • ';
2
+ export const joinWithSeparator = (text, { separator = DEFAULT_SEPARATOR, filter = Boolean, } = {}) => text.filter(filter).join(separator);
3
+ export const formatCurrency = (amount, locale = 'de-DE', showCurrencySign = false, options = { currency: 'EUR' }) => {
4
+ return new Intl.NumberFormat(locale, {
5
+ minimumFractionDigits: 2,
6
+ maximumFractionDigits: 2,
7
+ style: 'currency',
8
+ useGrouping: true,
9
+ ...options,
10
+ })
11
+ .formatToParts(Number(amount))
12
+ .map((p) => (showCurrencySign || (p.type != 'literal' && p.type != 'currency') ? p.value : ''))
13
+ .join('');
14
+ };
15
+ //# sourceMappingURL=formatting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatting.js","sourceRoot":"","sources":["formatting.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,IAA4C,EAC5C,EACE,SAAS,GAAG,iBAAiB,EAC7B,MAAM,GAAG,OAAO,MAC4C,EAAE,EAChE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAEzC,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,MAAc,EACd,MAAM,GAAG,OAAO,EAChB,gBAAgB,GAAG,KAAK,EACxB,UAAoC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAC/C,EAAE;IACV,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;QACnC,qBAAqB,EAAE,CAAC;QACxB,qBAAqB,EAAE,CAAC;QACxB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,IAAI;QACjB,GAAG,OAAO;KACX,CAAC;SACC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC9F,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["messages.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ export var GroupableNotificationOrigin;
2
+ (function (GroupableNotificationOrigin) {
3
+ GroupableNotificationOrigin["Message"] = "message";
4
+ })(GroupableNotificationOrigin || (GroupableNotificationOrigin = {}));
5
+ export var NotificationVisibility;
6
+ (function (NotificationVisibility) {
7
+ NotificationVisibility["UNREAD"] = "unread";
8
+ NotificationVisibility["READ"] = "read";
9
+ })(NotificationVisibility || (NotificationVisibility = {}));
10
+ export var NotificationsFilter;
11
+ (function (NotificationsFilter) {
12
+ NotificationsFilter["Unread"] = "unread";
13
+ NotificationsFilter["Archived"] = "archived";
14
+ })(NotificationsFilter || (NotificationsFilter = {}));
15
+ //# sourceMappingURL=notifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.js","sourceRoot":"","sources":["notifications.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,2BAEX;AAFD,WAAY,2BAA2B;IACrC,kDAAmB,CAAA;AACrB,CAAC,EAFW,2BAA2B,KAA3B,2BAA2B,QAEtC;AACD,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,2CAAiB,CAAA;IACjB,uCAAa,CAAA;AACf,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;AAqDD,MAAM,CAAN,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,wCAAiB,CAAA;IACjB,4CAAqB,CAAA;AACvB,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,QAG9B"}
package/src/utils.js ADDED
@@ -0,0 +1,6 @@
1
+ export var PricePercentageMode;
2
+ (function (PricePercentageMode) {
3
+ PricePercentageMode["CURRENCY"] = "currency";
4
+ PricePercentageMode["PERCENTAGE"] = "percentage";
5
+ })(PricePercentageMode || (PricePercentageMode = {}));
6
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["utils.ts"],"names":[],"mappings":"AAgDA,MAAM,CAAN,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,4CAAqB,CAAA;IACrB,gDAAyB,CAAA;AAC3B,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,QAG9B"}