@zerocarbon/erp-config-sdk 1.0.22 → 1.0.24

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/dist/index.d.ts CHANGED
@@ -1209,6 +1209,18 @@ declare const createEmissionSourceGenerator: (billManager: BillManager) => Emiss
1209
1209
  declare const INDUSTRY_MAPPING: Record<string, IndustryType>;
1210
1210
  declare const getApiIndustryType: (erpIndustry: string) => IndustryType;
1211
1211
 
1212
+ declare const normalizeConfigText: (value: unknown) => string;
1213
+ declare const normalizeConfigKeyText: (value: unknown) => string;
1214
+ declare const buildUserConfigItemKey: ({ scope, category, subCategory, itemName, }: {
1215
+ scope?: unknown;
1216
+ category?: unknown;
1217
+ subCategory?: unknown;
1218
+ itemName?: unknown;
1219
+ }) => string;
1220
+ declare const sameUserConfigText: (left: unknown, right: unknown) => boolean;
1221
+
1222
+ declare const mergeUserItemsIntoIndustryConfig: <T extends BackendIndustryConfig>(baseConfig: T, userItems?: UserConfigItem[]) => T;
1223
+
1212
1224
  type JsonResponse<T> = {
1213
1225
  json: () => Promise<T>;
1214
1226
  };
@@ -1217,6 +1229,12 @@ type UserConfigApiClient = {
1217
1229
  post: <T = any>(path: string, options: {
1218
1230
  json: unknown;
1219
1231
  }) => JsonResponse<T>;
1232
+ put?: <T = any>(path: string, options: {
1233
+ json: unknown;
1234
+ }) => JsonResponse<T>;
1235
+ patch?: <T = any>(path: string, options: {
1236
+ json: unknown;
1237
+ }) => JsonResponse<T>;
1220
1238
  };
1221
1239
  type UserConfigItem = {
1222
1240
  id?: string;
@@ -1236,18 +1254,56 @@ type UserConfigItem = {
1236
1254
  };
1237
1255
  requiresMassData?: boolean;
1238
1256
  aliases?: string[];
1257
+ normalizedKey?: string;
1258
+ baseItemKey?: string;
1259
+ baseEmissionFactor?: number;
1260
+ overrideKind?: "custom-item" | "sdk-emission-factor" | string;
1261
+ isOverride?: boolean;
1239
1262
  source?: string;
1240
1263
  };
1264
+ type UserEmissionFactorResolution = Partial<UserConfigItem> & {
1265
+ clientId?: string;
1266
+ status: "found" | "missing";
1267
+ message?: string;
1268
+ };
1241
1269
  declare const getItemsForUser: (apiClient: UserConfigApiClient, options?: {
1242
1270
  industry?: string;
1243
1271
  }) => Promise<UserConfigItem[]>;
1272
+ declare const resolveEmissionFactorsForUser: (apiClient: UserConfigApiClient, options: {
1273
+ industry: string;
1274
+ scope: string;
1275
+ category: string;
1276
+ items: (Partial<UserConfigItem> & {
1277
+ clientId?: string;
1278
+ })[];
1279
+ }) => Promise<UserEmissionFactorResolution[]>;
1244
1280
  declare const addItemForUser: (apiClient: UserConfigApiClient, options: {
1245
1281
  industry: string;
1246
1282
  scope: string;
1247
1283
  category: string;
1248
1284
  items: Partial<UserConfigItem>[];
1249
1285
  }) => Promise<UserConfigItem[]>;
1250
- declare const mergeUserItemsIntoIndustryConfig: <T extends BackendIndustryConfig>(baseConfig: T, userItems?: UserConfigItem[]) => T;
1286
+ declare const updateItemEmissionFactorForUser: (apiClient: UserConfigApiClient, options: {
1287
+ itemId: string;
1288
+ emissionFactor: number;
1289
+ }) => Promise<{
1290
+ item?: UserConfigItem;
1291
+ updatedBills?: number;
1292
+ }>;
1293
+ declare const updateSdkItemEmissionFactorForUser: (apiClient: UserConfigApiClient, options: {
1294
+ industry: string;
1295
+ scope: string;
1296
+ category: string;
1297
+ subCategory: string;
1298
+ itemName: string;
1299
+ unit: string;
1300
+ emissionFactor: number;
1301
+ baseEmissionFactor?: number;
1302
+ requiresMassData?: boolean;
1303
+ }) => Promise<{
1304
+ item?: UserConfigItem;
1305
+ updatedBills?: number;
1306
+ }>;
1251
1307
 
1252
1308
  interface MappingRules {
1253
1309
  includeIfCategoryContains?: string[];
@@ -4248,5 +4304,5 @@ declare namespace index {
4248
4304
  };
4249
4305
  }
4250
4306
 
4251
- export { ALL_SCOPES_3_RCO, API_ENDPOINTS, API_SCOPE3_CEMENT_CONFIG, BILL_CALCULATION_CONFIGS, BillManager, CCTS_ALLSCOPES_CEMENT, CCTS_CALCINATION_PRODUCTS, CCTS_ELECTRICITY_PRODUCTS, CCTS_FIRE_EXTINGUISHER_PRODUCTS, CCTS_FUEL_COMBUSTION_PRODUCTS, CCTS_LPG_PRODUCTS, CCTS_MINING_OPERATIONS_PRODUCTS, CCTS_ONSITE_POWER_PRODUCTS, CCTS_PURCHASED_ELECTRICITY, CCTS_REFRIGERANTS, CCTS_SCOPE1_CEMENT, CCTS_SCOPE2_CEMENT, CCTS_SF6_PRODUCTS, CCTS_TABLE_COLUMNS, DEFAULT_BILL_MATCHING_CONFIG, EmissionSourceGenerator, FRONTEND_INDUSTRY_CONFIGS, HTTP_STATUS, INDUSTRIES_CONFIG, INDUSTRY_MAPPING, INDUSTRY_SPECIFIC_FIELDS, INTENSITY_FIELD_LABELS, ISO_CATEGORIES_PACKAGING, index as Industries, UI_FEATURES, WATER_PRODUCTS, addItemForUser, calculateCCTSEmission, calculateIntensityMetrics, categorizeApiItem, cleanValue, createBillManager, createCapitalizedMonthMapping, createEmissionSourceGenerator, createMonthMapping, debugCarbonIntensityMapping, extractCarbonIntensityData, formatEmissionValue, formatIntensityValue, formatKPIEmission, formatMonthlyEmission, formatPercentage, getAllConfig, getApiIndustryType, getAvailableFieldsForIndustry, getCombinedBackendConfig, getIndustryBackendConfig, getIndustryConfig$1 as getIndustryConfig, getIndustryFieldConfig, getIntensityFormulas, getItemsForUser, getPlantNameConfig, getRCOConfigByName, getScope3ConfigByName, getUserNameBackendConfig, getUserNameScopeConfig, hasIntensities, isUIFeatureEnabled, mapIndustryToApiType, mergeUserItemsIntoIndustryConfig, sanitizeNumber, supportsIntensityCalculations, validateCarbonIntensityData };
4252
- export type { AllConfigurations, AlloyRequest, AlloyResponse, AluminiumRequest, AluminiumResponse, ApiEndpointConfig, ApiResponse, AutomobileRequest, AutomobileResponse, AviationRequest, AviationResponse, BackendAdditionalScopeItem, BackendEmissionItem, BackendEmissions, BackendEquipmentCategory, BackendIndustries, BackendIndustryConfig, BackendProduct, BackendScope, BackendScope3Item, BackendUserConfig, BackendUserConfigs, BaseRequest, BaseResponse, Bill, BillCalculationConfig, BillFilterOptions, BillMatchingConfig, BusinessTravelEmission, BusinessTravelEmissionAttributes, BusinessTravelEmissionsResponse, BillsAnalyzed$1 as CarbonIntensityBillsAnalyzed, Calculations$1 as CarbonIntensityCalculations, EmissionData$2 as CarbonIntensityEmissionData, ErrorResponse$1 as CarbonIntensityErrorResponse, CarbonIntensityRequest, CarbonIntensityResponse, ChemicalRequest, ChemicalResponse, DetailedCarbonIntensityResponse, EditableItem, EmissionData$3 as EmissionData, EmissionSource, Emissions$j as Emissions, EmissionsDataAttributes, EmissionsDataResponse, FieldConfig, FoodBeveragesRequest, FoodBeveragesResponse, FormData, FormValidationResult, FrontendIndustryConfig, HospitalityRequest, HospitalityResponse, IndustryConfig$1 as IndustryConfig, EmissionData as IndustryEmissionData, IndustryFieldConfig, IndustryFieldSection, ProductionData as IndustryProductionData, IndustryType, IntensityCalculation, IntensityValue, LogisticsRequest, LogisticsResponse, ManufacturingRequest, ManufacturingResponse, Meta, MetalEnergyRequest, MetalEnergyResponse, PackagingRequest, PackagingResponse, Pagination, PetrochemicalRequest, PetrochemicalResponse, PharmaRequest, PharmaResponse, PlantNameConfig, ProcessedEmissionCategory, ProcessedEmissionItem, ProcessedScope3Data, RealEstateRequest, RealEstateResponse, BillsAnalyzed as ResponseBillsAnalyzed, Calculations as ResponseCalculations, EmissionData$1 as ResponseEmissionData, ErrorResponse as ResponseErrorResponse, ScopeConfig, ScopeProduct, ShippingRequest, ShippingResponse, SteelRequest, SteelResponse, StrapiItem, StrapiResponse, TelecommunicationRequest, TelecommunicationResponse, TextileRequest, TextileResponse, TransportationEmission, TransportationEmissionAttributes, TransportationEmissionsResponse, UserConfigApiClient, UserConfigItem, UserData, UtilitiesRequest, UtilitiesResponse, ValidationError, VehicleEmission, VehicleEmissionAttributes, VehicleEmissionsResponse };
4307
+ export { ALL_SCOPES_3_RCO, API_ENDPOINTS, API_SCOPE3_CEMENT_CONFIG, BILL_CALCULATION_CONFIGS, BillManager, CCTS_ALLSCOPES_CEMENT, CCTS_CALCINATION_PRODUCTS, CCTS_ELECTRICITY_PRODUCTS, CCTS_FIRE_EXTINGUISHER_PRODUCTS, CCTS_FUEL_COMBUSTION_PRODUCTS, CCTS_LPG_PRODUCTS, CCTS_MINING_OPERATIONS_PRODUCTS, CCTS_ONSITE_POWER_PRODUCTS, CCTS_PURCHASED_ELECTRICITY, CCTS_REFRIGERANTS, CCTS_SCOPE1_CEMENT, CCTS_SCOPE2_CEMENT, CCTS_SF6_PRODUCTS, CCTS_TABLE_COLUMNS, DEFAULT_BILL_MATCHING_CONFIG, EmissionSourceGenerator, FRONTEND_INDUSTRY_CONFIGS, HTTP_STATUS, INDUSTRIES_CONFIG, INDUSTRY_MAPPING, INDUSTRY_SPECIFIC_FIELDS, INTENSITY_FIELD_LABELS, ISO_CATEGORIES_PACKAGING, index as Industries, UI_FEATURES, WATER_PRODUCTS, addItemForUser, buildUserConfigItemKey, calculateCCTSEmission, calculateIntensityMetrics, categorizeApiItem, cleanValue, createBillManager, createCapitalizedMonthMapping, createEmissionSourceGenerator, createMonthMapping, debugCarbonIntensityMapping, extractCarbonIntensityData, formatEmissionValue, formatIntensityValue, formatKPIEmission, formatMonthlyEmission, formatPercentage, getAllConfig, getApiIndustryType, getAvailableFieldsForIndustry, getCombinedBackendConfig, getIndustryBackendConfig, getIndustryConfig$1 as getIndustryConfig, getIndustryFieldConfig, getIntensityFormulas, getItemsForUser, getPlantNameConfig, getRCOConfigByName, getScope3ConfigByName, getUserNameBackendConfig, getUserNameScopeConfig, hasIntensities, isUIFeatureEnabled, mapIndustryToApiType, mergeUserItemsIntoIndustryConfig, normalizeConfigKeyText, normalizeConfigText, resolveEmissionFactorsForUser, sameUserConfigText, sanitizeNumber, supportsIntensityCalculations, updateItemEmissionFactorForUser, updateSdkItemEmissionFactorForUser, validateCarbonIntensityData };
4308
+ export type { AllConfigurations, AlloyRequest, AlloyResponse, AluminiumRequest, AluminiumResponse, ApiEndpointConfig, ApiResponse, AutomobileRequest, AutomobileResponse, AviationRequest, AviationResponse, BackendAdditionalScopeItem, BackendEmissionItem, BackendEmissions, BackendEquipmentCategory, BackendIndustries, BackendIndustryConfig, BackendProduct, BackendScope, BackendScope3Item, BackendUserConfig, BackendUserConfigs, BaseRequest, BaseResponse, Bill, BillCalculationConfig, BillFilterOptions, BillMatchingConfig, BusinessTravelEmission, BusinessTravelEmissionAttributes, BusinessTravelEmissionsResponse, BillsAnalyzed$1 as CarbonIntensityBillsAnalyzed, Calculations$1 as CarbonIntensityCalculations, EmissionData$2 as CarbonIntensityEmissionData, ErrorResponse$1 as CarbonIntensityErrorResponse, CarbonIntensityRequest, CarbonIntensityResponse, ChemicalRequest, ChemicalResponse, DetailedCarbonIntensityResponse, EditableItem, EmissionData$3 as EmissionData, EmissionSource, Emissions$j as Emissions, EmissionsDataAttributes, EmissionsDataResponse, FieldConfig, FoodBeveragesRequest, FoodBeveragesResponse, FormData, FormValidationResult, FrontendIndustryConfig, HospitalityRequest, HospitalityResponse, IndustryConfig$1 as IndustryConfig, EmissionData as IndustryEmissionData, IndustryFieldConfig, IndustryFieldSection, ProductionData as IndustryProductionData, IndustryType, IntensityCalculation, IntensityValue, LogisticsRequest, LogisticsResponse, ManufacturingRequest, ManufacturingResponse, Meta, MetalEnergyRequest, MetalEnergyResponse, PackagingRequest, PackagingResponse, Pagination, PetrochemicalRequest, PetrochemicalResponse, PharmaRequest, PharmaResponse, PlantNameConfig, ProcessedEmissionCategory, ProcessedEmissionItem, ProcessedScope3Data, RealEstateRequest, RealEstateResponse, BillsAnalyzed as ResponseBillsAnalyzed, Calculations as ResponseCalculations, EmissionData$1 as ResponseEmissionData, ErrorResponse as ResponseErrorResponse, ScopeConfig, ScopeProduct, ShippingRequest, ShippingResponse, SteelRequest, SteelResponse, StrapiItem, StrapiResponse, TelecommunicationRequest, TelecommunicationResponse, TextileRequest, TextileResponse, TransportationEmission, TransportationEmissionAttributes, TransportationEmissionsResponse, UserConfigApiClient, UserConfigItem, UserData, UserEmissionFactorResolution, UtilitiesRequest, UtilitiesResponse, ValidationError, VehicleEmission, VehicleEmissionAttributes, VehicleEmissionsResponse };
package/dist/index.esm.js CHANGED
@@ -34638,6 +34638,81 @@ const getApiIndustryType = (erpIndustry) => {
34638
34638
  return INDUSTRY_MAPPING[erpIndustry] || "manufacturing";
34639
34639
  };
34640
34640
 
34641
+ const normalizeConfigText = (value) => String(value !== null && value !== void 0 ? value : "").replace(/\s+/g, " ").trim();
34642
+ const normalizeConfigKeyText = (value) => normalizeConfigText(value)
34643
+ .toLowerCase()
34644
+ .replace(/[^a-z0-9]+/g, " ")
34645
+ .trim();
34646
+ const buildUserConfigItemKey = ({ scope, category, subCategory, itemName, }) => [scope, category, subCategory, itemName].map(normalizeConfigKeyText).join("|");
34647
+ const sameUserConfigText = (left, right) => normalizeConfigKeyText(left) === normalizeConfigKeyText(right);
34648
+
34649
+ const itemMeta = (item) => ({
34650
+ customItemId: item.id,
34651
+ source: item.source === "sdk-override" ? "sdk-override" : "company-custom",
34652
+ isCompanyCustom: item.source !== "sdk-override",
34653
+ isCompanyOverride: item.source === "sdk-override" || item.isOverride,
34654
+ baseEmissionFactor: item.baseEmissionFactor,
34655
+ overrideKind: item.overrideKind,
34656
+ });
34657
+ const applyScope3Item = (config, item) => {
34658
+ var _a;
34659
+ const scope = config.scope3.find((entry) => sameUserConfigText(entry.name, item.category));
34660
+ const group = scope === null || scope === void 0 ? void 0 : scope.subProducts.find((entry) => sameUserConfigText(entry.category, item.subCategory));
34661
+ if (!group)
34662
+ return;
34663
+ const existing = group.items.find((entry) => sameUserConfigText(entry.item, item.itemName));
34664
+ if (existing) {
34665
+ Object.assign(existing, {
34666
+ emissionFactor: item.emissionFactor,
34667
+ unit: item.unit || existing.unit,
34668
+ requiresMassData: (_a = item.requiresMassData) !== null && _a !== void 0 ? _a : existing.requiresMassData,
34669
+ ...itemMeta(item),
34670
+ });
34671
+ return;
34672
+ }
34673
+ group.items = [{
34674
+ item: item.itemName,
34675
+ unit: item.unit,
34676
+ emissionFactor: item.emissionFactor,
34677
+ requiresMassData: item.requiresMassData,
34678
+ ...itemMeta(item),
34679
+ }, ...group.items];
34680
+ };
34681
+ const applyFlatItem = (config, item) => {
34682
+ const scopeList = item.scope === "scope2" ? config.scope2 : config.scope1;
34683
+ const scope = scopeList.find((entry) => sameUserConfigText(entry.name, item.category));
34684
+ if (!scope)
34685
+ return;
34686
+ const existing = scope.subProducts.find((entry) => sameUserConfigText(entry.name, item.itemName) &&
34687
+ sameUserConfigText(entry.type, item.subCategory));
34688
+ if (existing) {
34689
+ Object.assign(existing, {
34690
+ emissionFactor: item.emissionFactor,
34691
+ unit: item.unit || existing.unit,
34692
+ ...itemMeta(item),
34693
+ });
34694
+ return;
34695
+ }
34696
+ scope.subProducts = [{
34697
+ name: item.itemName,
34698
+ type: item.subCategory,
34699
+ unit: item.unit,
34700
+ emissionFactor: item.emissionFactor,
34701
+ calorificValue: 0,
34702
+ ...itemMeta(item),
34703
+ }, ...scope.subProducts];
34704
+ };
34705
+ const mergeUserItemsIntoIndustryConfig = (baseConfig, userItems = []) => {
34706
+ const config = JSON.parse(JSON.stringify(baseConfig));
34707
+ for (const item of userItems.slice().reverse()) {
34708
+ if (item.scope === "scope3")
34709
+ applyScope3Item(config, item);
34710
+ else
34711
+ applyFlatItem(config, item);
34712
+ }
34713
+ return config;
34714
+ };
34715
+
34641
34716
  const getItemsForUser = async (apiClient, options = {}) => {
34642
34717
  const params = new URLSearchParams();
34643
34718
  if (options.industry)
@@ -34648,6 +34723,19 @@ const getItemsForUser = async (apiClient, options = {}) => {
34648
34723
  .json();
34649
34724
  return data.items || [];
34650
34725
  };
34726
+ const resolveEmissionFactorsForUser = async (apiClient, options) => {
34727
+ const data = await apiClient
34728
+ .post("erp-config/items/emission-factors/resolve", {
34729
+ json: {
34730
+ industry: options.industry,
34731
+ scope: options.scope,
34732
+ category: options.category,
34733
+ items: options.items,
34734
+ },
34735
+ })
34736
+ .json();
34737
+ return data.items || [];
34738
+ };
34651
34739
  const addItemForUser = async (apiClient, options) => {
34652
34740
  const data = await apiClient
34653
34741
  .post("erp-config/items/bulk", {
@@ -34662,35 +34750,23 @@ const addItemForUser = async (apiClient, options) => {
34662
34750
  .json();
34663
34751
  return data.items || [];
34664
34752
  };
34665
- const mergeUserItemsIntoIndustryConfig = (baseConfig, userItems = []) => {
34666
- const config = JSON.parse(JSON.stringify(baseConfig));
34667
- for (const item of userItems) {
34668
- if (item.scope === "scope3") {
34669
- const scope = config.scope3.find((entry) => entry.name === item.category);
34670
- const group = scope === null || scope === void 0 ? void 0 : scope.subProducts.find((entry) => entry.category === item.subCategory);
34671
- if (group && !group.items.some((entry) => entry.item === item.itemName)) {
34672
- group.items.push({
34673
- item: item.itemName,
34674
- unit: item.unit,
34675
- emissionFactor: item.emissionFactor,
34676
- requiresMassData: item.requiresMassData,
34677
- });
34678
- }
34679
- continue;
34680
- }
34681
- const scopeList = item.scope === "scope2" ? config.scope2 : config.scope1;
34682
- const scope = scopeList.find((entry) => entry.name === item.category);
34683
- if (scope && !scope.subProducts.some((entry) => entry.name === item.itemName)) {
34684
- scope.subProducts.push({
34685
- name: item.itemName,
34686
- type: item.subCategory,
34687
- unit: item.unit,
34688
- emissionFactor: item.emissionFactor,
34689
- calorificValue: 0,
34690
- });
34691
- }
34753
+ const updateItemEmissionFactorForUser = async (apiClient, options) => {
34754
+ if (!apiClient.patch) {
34755
+ throw new Error("apiClient.patch is required to update emission factors");
34692
34756
  }
34693
- return config;
34757
+ const data = await apiClient
34758
+ .patch(`erp-config/items/${options.itemId}/emission-factor`, { json: { emissionFactor: options.emissionFactor } })
34759
+ .json();
34760
+ return data;
34761
+ };
34762
+ const updateSdkItemEmissionFactorForUser = async (apiClient, options) => {
34763
+ if (!apiClient.put) {
34764
+ throw new Error("apiClient.put is required to override SDK item emission factors");
34765
+ }
34766
+ const data = await apiClient
34767
+ .put("erp-config/items/emission-factor-override", { json: options })
34768
+ .json();
34769
+ return data;
34694
34770
  };
34695
34771
 
34696
34772
  // Scope 3 categories configuration for cement industry using API data
@@ -40190,5 +40266,5 @@ var index = /*#__PURE__*/Object.freeze({
40190
40266
  getRCOConfigByName: getRCOConfigByName
40191
40267
  });
40192
40268
 
40193
- export { ALL_SCOPES_3_RCO, API_ENDPOINTS, API_SCOPE3_CEMENT_CONFIG, BILL_CALCULATION_CONFIGS, BillManager, CCTS_ALLSCOPES_CEMENT, CCTS_CALCINATION_PRODUCTS, CCTS_ELECTRICITY_PRODUCTS, CCTS_FIRE_EXTINGUISHER_PRODUCTS, CCTS_FUEL_COMBUSTION_PRODUCTS, CCTS_LPG_PRODUCTS, CCTS_MINING_OPERATIONS_PRODUCTS, CCTS_ONSITE_POWER_PRODUCTS, CCTS_PURCHASED_ELECTRICITY, CCTS_REFRIGERANTS, CCTS_SCOPE1_CEMENT, CCTS_SCOPE2_CEMENT, CCTS_SF6_PRODUCTS, CCTS_TABLE_COLUMNS, DEFAULT_BILL_MATCHING_CONFIG, EmissionSourceGenerator, FRONTEND_INDUSTRY_CONFIGS, HTTP_STATUS, INDUSTRIES_CONFIG, INDUSTRY_MAPPING, INDUSTRY_SPECIFIC_FIELDS, INTENSITY_FIELD_LABELS, ISO_CATEGORIES_PACKAGING, index as Industries, UI_FEATURES, WATER_PRODUCTS$1 as WATER_PRODUCTS, addItemForUser, calculateCCTSEmission, calculateIntensityMetrics, categorizeApiItem, cleanValue, createBillManager, createCapitalizedMonthMapping, createEmissionSourceGenerator, createMonthMapping, debugCarbonIntensityMapping, extractCarbonIntensityData, formatEmissionValue, formatIntensityValue, formatKPIEmission, formatMonthlyEmission, formatPercentage, getAllConfig, getApiIndustryType, getAvailableFieldsForIndustry, getCombinedBackendConfig, getIndustryBackendConfig, getIndustryConfig, getIndustryFieldConfig, getIntensityFormulas, getItemsForUser, getPlantNameConfig, getRCOConfigByName, getScope3ConfigByName, getUserNameBackendConfig, getUserNameScopeConfig, hasIntensities, isUIFeatureEnabled, mapIndustryToApiType, mergeUserItemsIntoIndustryConfig, sanitizeNumber, supportsIntensityCalculations, validateCarbonIntensityData };
40269
+ export { ALL_SCOPES_3_RCO, API_ENDPOINTS, API_SCOPE3_CEMENT_CONFIG, BILL_CALCULATION_CONFIGS, BillManager, CCTS_ALLSCOPES_CEMENT, CCTS_CALCINATION_PRODUCTS, CCTS_ELECTRICITY_PRODUCTS, CCTS_FIRE_EXTINGUISHER_PRODUCTS, CCTS_FUEL_COMBUSTION_PRODUCTS, CCTS_LPG_PRODUCTS, CCTS_MINING_OPERATIONS_PRODUCTS, CCTS_ONSITE_POWER_PRODUCTS, CCTS_PURCHASED_ELECTRICITY, CCTS_REFRIGERANTS, CCTS_SCOPE1_CEMENT, CCTS_SCOPE2_CEMENT, CCTS_SF6_PRODUCTS, CCTS_TABLE_COLUMNS, DEFAULT_BILL_MATCHING_CONFIG, EmissionSourceGenerator, FRONTEND_INDUSTRY_CONFIGS, HTTP_STATUS, INDUSTRIES_CONFIG, INDUSTRY_MAPPING, INDUSTRY_SPECIFIC_FIELDS, INTENSITY_FIELD_LABELS, ISO_CATEGORIES_PACKAGING, index as Industries, UI_FEATURES, WATER_PRODUCTS$1 as WATER_PRODUCTS, addItemForUser, buildUserConfigItemKey, calculateCCTSEmission, calculateIntensityMetrics, categorizeApiItem, cleanValue, createBillManager, createCapitalizedMonthMapping, createEmissionSourceGenerator, createMonthMapping, debugCarbonIntensityMapping, extractCarbonIntensityData, formatEmissionValue, formatIntensityValue, formatKPIEmission, formatMonthlyEmission, formatPercentage, getAllConfig, getApiIndustryType, getAvailableFieldsForIndustry, getCombinedBackendConfig, getIndustryBackendConfig, getIndustryConfig, getIndustryFieldConfig, getIntensityFormulas, getItemsForUser, getPlantNameConfig, getRCOConfigByName, getScope3ConfigByName, getUserNameBackendConfig, getUserNameScopeConfig, hasIntensities, isUIFeatureEnabled, mapIndustryToApiType, mergeUserItemsIntoIndustryConfig, normalizeConfigKeyText, normalizeConfigText, resolveEmissionFactorsForUser, sameUserConfigText, sanitizeNumber, supportsIntensityCalculations, updateItemEmissionFactorForUser, updateSdkItemEmissionFactorForUser, validateCarbonIntensityData };
40194
40270
  //# sourceMappingURL=index.esm.js.map