@dropins/storefront-company-management 1.0.0-alpha3003 → 1.0.0-alpha3005

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.
@@ -1,13 +1,13 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{h as c,a}from"./fetch-error.js";import{f as s}from"./fetch-graphql.js";import{t as l}from"./validateCompanyEmail.js";const g=`
3
+ import{h as a,a as l}from"./fetch-error.js";import{f as d}from"./fetch-graphql.js";import{t as g}from"./validateCompanyEmail.js";const u=`
4
4
  query getStoreConfig {
5
5
  storeConfig {
6
6
  default_country
7
7
  store_code
8
8
  }
9
9
  }
10
- `,u="US",o={defaultCountry:u,storeCode:""},I=async()=>await s(g,{method:"GET"}).then(e=>{var n;return(n=e.errors)!=null&&n.length?c(e.errors):p(e)}).catch(a),p=e=>{var r;if(!((r=e==null?void 0:e.data)!=null&&r.storeConfig))return o;const{default_country:n,store_code:t}=e.data.storeConfig;return{defaultCountry:n||o.defaultCountry,storeCode:t||o.storeCode}},m=`
10
+ `,p="US",s={defaultCountry:p,storeCode:""},T=async()=>await d(u,{method:"GET"}).then(e=>{var r;return(r=e.errors)!=null&&r.length?a(e.errors):m(e)}).catch(l),m=e=>{var t;if(!((t=e==null?void 0:e.data)!=null&&t.storeConfig))return s;const{default_country:r,store_code:o}=e.data.storeConfig;return{defaultCountry:r||s.defaultCountry,storeCode:o||s.storeCode}},_=`
11
11
  mutation CreateCompany($input: CompanyCreateInput!) {
12
12
  createCompany(input: $input) {
13
13
  company {
@@ -40,5 +40,5 @@ import{h as c,a}from"./fetch-error.js";import{f as s}from"./fetch-graphql.js";im
40
40
  }
41
41
  }
42
42
  }
43
- `,_=e=>{var t;const n={};if(e.regionCode&&e.regionCode.trim())n.region_code=e.regionCode.trim(),e.regionId&&(n.region_id=typeof e.regionId=="string"?parseInt(e.regionId,10):e.regionId);else if(e.region&&typeof e.region=="string"&&e.region.includes(",")){const[r,i]=e.region.split(",");n.region_code=r.trim(),n.region_id=parseInt(i.trim(),10)}else if(e.region&&e.region.trim()){const r=e.region.trim();if(/^\d+$/.test(r))throw new Error("Region selection error: Missing region code. Please ensure regions are properly loaded.");n.region=r,n.region_code=r}if(!n.region_code)throw new Error("Region code is required. Please select a state/province or enter a region name.");return{company_name:e.companyName,company_email:e.companyEmail,legal_name:e.legalName,vat_tax_id:e.vatTaxId,reseller_id:e.resellerId,legal_address:{street:Array.isArray(e.street)?e.street.filter(r=>r&&r.trim()!==""):[e.street].filter(r=>r&&r.trim()!==""),city:e.city,region:n,postcode:e.postcode,country_id:e.countryCode,telephone:e.addressTelephone},company_admin:{email:e.adminEmail,firstname:e.adminFirstname,lastname:e.adminLastname,job_title:e.adminJobTitle,telephone:e.adminWorkTelephone,gender:e.adminGender?typeof e.adminGender=="string"?parseInt(e.adminGender,10):e.adminGender:void 0,custom_attributes:((t=e.adminCustomAttributes)==null?void 0:t.map(r=>({attribute_code:r.attribute_code,value:r.value})))||[]}}},T=async e=>{var n;try{const t=_(e),r=await s(m,{method:"POST",variables:{input:t}});return(n=r.errors)!=null&&n.length?{success:!1,errors:r.errors.map(d=>d.message)}:{success:!0,company:l(r)}}catch(t){return console.error("Failed to create company:",t),{success:!1,errors:["Failed to create company. Please try again."]}}};export{u as D,o as S,T as c,I as g};
43
+ `,y=e=>{var o,t,i;const r={};if(e.regionCode&&e.regionCode.trim())r.region_code=e.regionCode.trim(),e.regionId&&(r.region_id=typeof e.regionId=="string"?parseInt(e.regionId,10):e.regionId);else if(e.region&&typeof e.region=="string"&&e.region.includes(",")){const[n,c]=e.region.split(",");r.region_code=n.trim(),r.region_id=parseInt(c.trim(),10)}else if(e.region&&e.region.trim()){const n=e.region.trim();if(/^\d+$/.test(n))throw new Error("Region selection error: Missing region code. Please ensure regions are properly loaded.");r.region=n,r.region_code=n}if(!r.region_code)throw new Error("Region code is required. Please select a state/province or enter a region name.");return{company_name:e.companyName,company_email:e.companyEmail,legal_name:e.legalName,vat_tax_id:e.vatTaxId,reseller_id:e.resellerId,legal_address:{street:Array.isArray(e.street)?e.street.filter(n=>n&&n.trim()!==""):[e.street].filter(n=>n&&n.trim()!==""),city:e.city,region:r,postcode:e.postcode,country_id:e.countryCode,telephone:e.addressTelephone},company_admin:{email:e.adminEmail,firstname:((o=e.adminFirstname)==null?void 0:o.trim())||"",lastname:((t=e.adminLastname)==null?void 0:t.trim())||"",job_title:e.adminJobTitle,telephone:e.adminWorkTelephone,gender:e.adminGender?typeof e.adminGender=="string"?parseInt(e.adminGender,10):e.adminGender:void 0,custom_attributes:((i=e.adminCustomAttributes)==null?void 0:i.map(n=>({attribute_code:n.attribute_code,value:n.value})))||[]}}},E=async e=>{var r;try{const o=y(e),t=await d(_,{method:"POST",variables:{input:o}});return(r=t.errors)!=null&&r.length?{success:!1,errors:t.errors.map(n=>n.message)}:{success:!0,company:g(t)}}catch(o){return console.error("Failed to create company:",o),{success:!1,errors:["Failed to create company. Please try again."]}}};export{p as D,s as S,E as c,T as g};
44
44
  //# sourceMappingURL=createCompany.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createCompany.js","sources":["/@dropins/storefront-company-management/src/api/getStoreConfig/graphql/getStoreConfig.graphql.ts","/@dropins/storefront-company-management/src/api/getStoreConfig/getStoreConfig.ts","/@dropins/storefront-company-management/src/data/transforms/transform-store-config.ts","/@dropins/storefront-company-management/src/api/createCompany/graphql/createCompany.graphql.ts","/@dropins/storefront-company-management/src/data/transforms/company.ts","/@dropins/storefront-company-management/src/api/createCompany/createCompany.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const GET_STORE_CONFIG_QUERY = /* GraphQL */ `\n query getStoreConfig {\n storeConfig {\n default_country\n store_code\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '../fetch-graphql';\nimport { GET_STORE_CONFIG_QUERY } from './graphql/getStoreConfig.graphql';\nimport { handleNetworkError } from '@/company-management/lib/network-error';\nimport { handleFetchError } from '@/company-management/lib/fetch-error';\nimport { GetStoreConfigResponse, StoreConfigModel } from '@/company-management/types';\nimport { transformStoreConfig } from '@/company-management/data/transforms';\n\nexport const DEFAULT_COUNTRY = 'US';\n\nexport const STORE_CONFIG_DEFAULTS: StoreConfigModel = {\n defaultCountry: DEFAULT_COUNTRY,\n storeCode: '',\n};\n\nexport const getStoreConfig = async (): Promise<StoreConfigModel> => {\n return await fetchGraphQl(GET_STORE_CONFIG_QUERY, {\n method: 'GET',\n })\n .then((response: GetStoreConfigResponse) => {\n if (response.errors?.length) return handleFetchError(response.errors);\n\n return transformStoreConfig(response);\n })\n .catch(handleNetworkError);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { GetStoreConfigResponse, StoreConfigModel } from '@/company-management/types';\nimport { STORE_CONFIG_DEFAULTS } from '@/company-management/api/getStoreConfig/getStoreConfig';\n\nexport const transformStoreConfig = (\n response: GetStoreConfigResponse\n): StoreConfigModel => {\n if (!response?.data?.storeConfig) return STORE_CONFIG_DEFAULTS;\n\n const { default_country, store_code } = response.data.storeConfig;\n\n return {\n defaultCountry: default_country || STORE_CONFIG_DEFAULTS.defaultCountry,\n storeCode: store_code || STORE_CONFIG_DEFAULTS.storeCode,\n };\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const CREATE_COMPANY_MUTATION = /* GraphQL */ `\n mutation CreateCompany($input: CompanyCreateInput!) {\n createCompany(input: $input) {\n company {\n id\n name\n email\n legal_name\n vat_tax_id\n reseller_id\n legal_address {\n street\n city\n region {\n region_code\n region\n region_id\n }\n postcode\n country_code\n telephone\n }\n company_admin {\n id\n firstname\n lastname\n email\n job_title\n telephone\n }\n }\n }\n }\n`;","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { CompanyFormData } from '../models/company';\nimport { CompanyCreateInput } from '@/company-management/api/createCompany';\n\nexport const transformFormDataToCreateInput = (formData: CompanyFormData): CompanyCreateInput => {\n // Build region object - ensure we have at least one region field\n const regionInput: any = {};\n \n // Handle region data based on what we receive from the form\n if (formData.regionCode && formData.regionCode.trim()) {\n // We have regionCode (preferred path)\n regionInput.region_code = formData.regionCode.trim();\n if (formData.regionId) {\n regionInput.region_id = typeof formData.regionId === 'string' ? parseInt(formData.regionId, 10) : formData.regionId;\n }\n } else if (formData.region && typeof formData.region === 'string' && formData.region.includes(',')) {\n // Dropdown selection: parse \"AL,4\" format as fallback\n const [regionCode, regionId] = formData.region.split(',');\n regionInput.region_code = regionCode.trim();\n regionInput.region_id = parseInt(regionId.trim(), 10);\n } else if (formData.region && formData.region.trim()) {\n const regionValue = formData.region.trim();\n // Check if this is a numeric regionId (from dropdown) or text region name\n if (/^\\d+$/.test(regionValue)) {\n // This is likely a regionId from dropdown, but we only have the ID\n // We need both region_code and region_id for GraphQL, but we can't proceed without region_code\n throw new Error('Region selection error: Missing region code. Please ensure regions are properly loaded.');\n } else {\n // Text input: free-form region name (countries without predefined regions)\n regionInput.region = regionValue;\n regionInput.region_code = regionValue;\n }\n }\n \n // Ensure we have at least region_code (required by GraphQL)\n if (!regionInput.region_code) {\n throw new Error('Region code is required. Please select a state/province or enter a region name.');\n }\n\n return {\n company_name: formData.companyName,\n company_email: formData.companyEmail,\n legal_name: formData.legalName,\n vat_tax_id: formData.vatTaxId,\n reseller_id: formData.resellerId,\n legal_address: {\n street: Array.isArray(formData.street) \n ? formData.street.filter((line: string) => line && line.trim() !== '') // Remove empty lines\n : [formData.street].filter((line: string) => line && line.trim() !== ''), // Handle case where street is not an array\n city: formData.city,\n region: regionInput,\n postcode: formData.postcode,\n country_id: formData.countryCode,\n telephone: formData.addressTelephone,\n },\n company_admin: {\n email: formData.adminEmail,\n firstname: formData.adminFirstname,\n lastname: formData.adminLastname,\n job_title: formData.adminJobTitle,\n telephone: formData.adminWorkTelephone,\n gender: formData.adminGender ? (typeof formData.adminGender === 'string' ? parseInt(formData.adminGender, 10) : formData.adminGender) : undefined,\n custom_attributes: formData.adminCustomAttributes?.map(attr => ({\n attribute_code: attr.attribute_code,\n value: attr.value,\n })) || [],\n },\n };\n};","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/company-management/api/fetch-graphql';\nimport { CREATE_COMPANY_MUTATION } from './graphql/createCompany.graphql';\nimport { CompanyRegistrationModel } from '@/company-management/data/models/company';\nimport { transformFormDataToCreateInput } from '@/company-management/data/transforms/company';\nimport { transformCreateCompanyResponse } from '@/company-management/data/transforms/transform-company';\n\nexport interface CompanyCreateInput {\n company_name: string;\n company_email: string;\n legal_name?: string;\n vat_tax_id?: string;\n reseller_id?: string;\n legal_address: {\n street: string[];\n city: string;\n region: {\n region_code: string;\n region?: string;\n region_id?: number;\n };\n postcode: string;\n country_id: string;\n telephone?: string;\n };\n company_admin: {\n email: string;\n firstname: string;\n lastname: string;\n job_title?: string;\n telephone?: string;\n gender?: number;\n custom_attributes?: Array<{\n attribute_code: string;\n value: string;\n }>;\n };\n}\n\n\nexport const createCompany = async (formData: any): Promise<{ success: boolean; company?: CompanyRegistrationModel; errors?: string[] }> => {\n try {\n const input = transformFormDataToCreateInput(formData);\n const response = await fetchGraphQl(CREATE_COMPANY_MUTATION, {\n method: 'POST',\n variables: { input },\n });\n\n if (response.errors?.length) {\n return {\n success: false,\n errors: response.errors.map((error: any) => error.message),\n };\n }\n\n // Transform the GraphQL response using the dedicated transformer\n const transformedCompany = transformCreateCompanyResponse(response);\n\n return {\n success: true,\n company: transformedCompany,\n };\n } catch (error) {\n console.error('Failed to create company:', error);\n return {\n success: false,\n errors: ['Failed to create company. Please try again.'],\n };\n }\n};"],"names":["GET_STORE_CONFIG_QUERY","DEFAULT_COUNTRY","STORE_CONFIG_DEFAULTS","getStoreConfig","fetchGraphQl","response","_a","handleFetchError","transformStoreConfig","handleNetworkError","default_country","store_code","CREATE_COMPANY_MUTATION","transformFormDataToCreateInput","formData","regionInput","regionCode","regionId","regionValue","line","attr","createCompany","input","error","transformCreateCompanyResponse"],"mappings":"4HAiBa,MAAAA,EAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECOvCC,EAAkB,KAElBC,EAA0C,CACrD,eAAgBD,EAChB,UAAW,EACb,EAEaE,EAAiB,SACrB,MAAMC,EAAaJ,EAAwB,CAChD,OAAQ,KAAA,CACT,EACE,KAAMK,GAAqC,OAC1C,OAAIC,EAAAD,EAAS,SAAT,MAAAC,EAAiB,OAAeC,EAAiBF,EAAS,MAAM,EAE7DG,EAAqBH,CAAQ,CAAA,CACrC,EACA,MAAMI,CAAkB,ECpBhBD,EACXH,GACqB,OACrB,GAAI,GAACC,EAAAD,GAAA,YAAAA,EAAU,OAAV,MAAAC,EAAgB,aAAoB,OAAAJ,EAEzC,KAAM,CAAE,gBAAAQ,EAAiB,WAAAC,CAAW,EAAIN,EAAS,KAAK,YAE/C,MAAA,CACL,eAAgBK,GAAmBR,EAAsB,eACzD,UAAWS,GAAcT,EAAsB,SACjD,CACF,ECdaU,EAAwC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECGxCC,EAAkCC,GAAkD,OAE/F,MAAMC,EAAmB,CAAC,EAG1B,GAAID,EAAS,YAAcA,EAAS,WAAW,OAEjCC,EAAA,YAAcD,EAAS,WAAW,KAAK,EAC/CA,EAAS,WACCC,EAAA,UAAY,OAAOD,EAAS,UAAa,SAAW,SAASA,EAAS,SAAU,EAAE,EAAIA,EAAS,kBAEpGA,EAAS,QAAU,OAAOA,EAAS,QAAW,UAAYA,EAAS,OAAO,SAAS,GAAG,EAAG,CAElG,KAAM,CAACE,EAAYC,CAAQ,EAAIH,EAAS,OAAO,MAAM,GAAG,EAC5CC,EAAA,YAAcC,EAAW,KAAK,EAC1CD,EAAY,UAAY,SAASE,EAAS,KAAA,EAAQ,EAAE,CAAA,SAC3CH,EAAS,QAAUA,EAAS,OAAO,OAAQ,CAC9C,MAAAI,EAAcJ,EAAS,OAAO,KAAK,EAErC,GAAA,QAAQ,KAAKI,CAAW,EAGpB,MAAA,IAAI,MAAM,yFAAyF,EAGzGH,EAAY,OAASG,EACrBH,EAAY,YAAcG,CAC5B,CAIE,GAAA,CAACH,EAAY,YACT,MAAA,IAAI,MAAM,iFAAiF,EAG5F,MAAA,CACL,aAAcD,EAAS,YACvB,cAAeA,EAAS,aACxB,WAAYA,EAAS,UACrB,WAAYA,EAAS,SACrB,YAAaA,EAAS,WACtB,cAAe,CACb,OAAQ,MAAM,QAAQA,EAAS,MAAM,EACjCA,EAAS,OAAO,OAAQK,GAAiBA,GAAQA,EAAK,KAAW,IAAA,EAAE,EACnE,CAACL,EAAS,MAAM,EAAE,OAAQK,GAAiBA,GAAQA,EAAK,KAAK,IAAM,EAAE,EACzE,KAAML,EAAS,KACf,OAAQC,EACR,SAAUD,EAAS,SACnB,WAAYA,EAAS,YACrB,UAAWA,EAAS,gBACtB,EACA,cAAe,CACb,MAAOA,EAAS,WAChB,UAAWA,EAAS,eACpB,SAAUA,EAAS,cACnB,UAAWA,EAAS,cACpB,UAAWA,EAAS,mBACpB,OAAQA,EAAS,YAAe,OAAOA,EAAS,aAAgB,SAAW,SAASA,EAAS,YAAa,EAAE,EAAIA,EAAS,YAAe,OACxI,oBAAmBR,EAAAQ,EAAS,wBAAT,YAAAR,EAAgC,IAAac,IAAA,CAC9D,eAAgBA,EAAK,eACrB,MAAOA,EAAK,KACd,MAAO,CAAA,CAAC,CAEZ,CACF,EC5BaC,EAAgB,MAAOP,GAAwG,OACtI,GAAA,CACI,MAAAQ,EAAQT,EAA+BC,CAAQ,EAC/CT,EAAW,MAAMD,EAAaQ,EAAyB,CAC3D,OAAQ,OACR,UAAW,CAAE,MAAAU,CAAM,CAAA,CACpB,EAEG,OAAAhB,EAAAD,EAAS,SAAT,MAAAC,EAAiB,OACZ,CACL,QAAS,GACT,OAAQD,EAAS,OAAO,IAAKkB,GAAeA,EAAM,OAAO,CAC3D,EAMK,CACL,QAAS,GACT,QAJyBC,EAA+BnB,CAAQ,CAKlE,QACOkB,EAAO,CACN,eAAA,MAAM,4BAA6BA,CAAK,EACzC,CACL,QAAS,GACT,OAAQ,CAAC,6CAA6C,CACxD,CAAA,CAEJ"}
1
+ {"version":3,"file":"createCompany.js","sources":["/@dropins/storefront-company-management/src/api/getStoreConfig/graphql/getStoreConfig.graphql.ts","/@dropins/storefront-company-management/src/api/getStoreConfig/getStoreConfig.ts","/@dropins/storefront-company-management/src/data/transforms/transform-store-config.ts","/@dropins/storefront-company-management/src/api/createCompany/graphql/createCompany.graphql.ts","/@dropins/storefront-company-management/src/data/transforms/company.ts","/@dropins/storefront-company-management/src/api/createCompany/createCompany.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const GET_STORE_CONFIG_QUERY = /* GraphQL */ `\n query getStoreConfig {\n storeConfig {\n default_country\n store_code\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '../fetch-graphql';\nimport { GET_STORE_CONFIG_QUERY } from './graphql/getStoreConfig.graphql';\nimport { handleNetworkError } from '@/company-management/lib/network-error';\nimport { handleFetchError } from '@/company-management/lib/fetch-error';\nimport { GetStoreConfigResponse, StoreConfigModel } from '@/company-management/types';\nimport { transformStoreConfig } from '@/company-management/data/transforms';\n\nexport const DEFAULT_COUNTRY = 'US';\n\nexport const STORE_CONFIG_DEFAULTS: StoreConfigModel = {\n defaultCountry: DEFAULT_COUNTRY,\n storeCode: '',\n};\n\nexport const getStoreConfig = async (): Promise<StoreConfigModel> => {\n return await fetchGraphQl(GET_STORE_CONFIG_QUERY, {\n method: 'GET',\n })\n .then((response: GetStoreConfigResponse) => {\n if (response.errors?.length) return handleFetchError(response.errors);\n\n return transformStoreConfig(response);\n })\n .catch(handleNetworkError);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { GetStoreConfigResponse, StoreConfigModel } from '@/company-management/types';\nimport { STORE_CONFIG_DEFAULTS } from '@/company-management/api/getStoreConfig/getStoreConfig';\n\nexport const transformStoreConfig = (\n response: GetStoreConfigResponse\n): StoreConfigModel => {\n if (!response?.data?.storeConfig) return STORE_CONFIG_DEFAULTS;\n\n const { default_country, store_code } = response.data.storeConfig;\n\n return {\n defaultCountry: default_country || STORE_CONFIG_DEFAULTS.defaultCountry,\n storeCode: store_code || STORE_CONFIG_DEFAULTS.storeCode,\n };\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const CREATE_COMPANY_MUTATION = /* GraphQL */ `\n mutation CreateCompany($input: CompanyCreateInput!) {\n createCompany(input: $input) {\n company {\n id\n name\n email\n legal_name\n vat_tax_id\n reseller_id\n legal_address {\n street\n city\n region {\n region_code\n region\n region_id\n }\n postcode\n country_code\n telephone\n }\n company_admin {\n id\n firstname\n lastname\n email\n job_title\n telephone\n }\n }\n }\n }\n`;","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { CompanyFormData } from '../models/company';\nimport { CompanyCreateInput } from '@/company-management/api/createCompany';\n\nexport const transformFormDataToCreateInput = (formData: CompanyFormData): CompanyCreateInput => {\n // Build region object - ensure we have at least one region field\n const regionInput: any = {};\n \n // Handle region data based on what we receive from the form\n if (formData.regionCode && formData.regionCode.trim()) {\n // We have regionCode (preferred path)\n regionInput.region_code = formData.regionCode.trim();\n if (formData.regionId) {\n regionInput.region_id = typeof formData.regionId === 'string' ? parseInt(formData.regionId, 10) : formData.regionId;\n }\n } else if (formData.region && typeof formData.region === 'string' && formData.region.includes(',')) {\n // Dropdown selection: parse \"AL,4\" format as fallback\n const [regionCode, regionId] = formData.region.split(',');\n regionInput.region_code = regionCode.trim();\n regionInput.region_id = parseInt(regionId.trim(), 10);\n } else if (formData.region && formData.region.trim()) {\n const regionValue = formData.region.trim();\n // Check if this is a numeric regionId (from dropdown) or text region name\n if (/^\\d+$/.test(regionValue)) {\n // This is likely a regionId from dropdown, but we only have the ID\n // We need both region_code and region_id for GraphQL, but we can't proceed without region_code\n throw new Error('Region selection error: Missing region code. Please ensure regions are properly loaded.');\n } else {\n // Text input: free-form region name (countries without predefined regions)\n regionInput.region = regionValue;\n regionInput.region_code = regionValue;\n }\n }\n \n // Ensure we have at least region_code (required by GraphQL)\n if (!regionInput.region_code) {\n throw new Error('Region code is required. Please select a state/province or enter a region name.');\n }\n\n return {\n company_name: formData.companyName,\n company_email: formData.companyEmail,\n legal_name: formData.legalName,\n vat_tax_id: formData.vatTaxId,\n reseller_id: formData.resellerId,\n legal_address: {\n street: Array.isArray(formData.street) \n ? formData.street.filter((line: string) => line && line.trim() !== '') // Remove empty lines\n : [formData.street].filter((line: string) => line && line.trim() !== ''), // Handle case where street is not an array\n city: formData.city,\n region: regionInput,\n postcode: formData.postcode,\n country_id: formData.countryCode,\n telephone: formData.addressTelephone,\n },\n company_admin: {\n email: formData.adminEmail,\n firstname: formData.adminFirstname?.trim() || '',\n lastname: formData.adminLastname?.trim() || '',\n job_title: formData.adminJobTitle,\n telephone: formData.adminWorkTelephone,\n gender: formData.adminGender ? (typeof formData.adminGender === 'string' ? parseInt(formData.adminGender, 10) : formData.adminGender) : undefined,\n custom_attributes: formData.adminCustomAttributes?.map(attr => ({\n attribute_code: attr.attribute_code,\n value: attr.value,\n })) || [],\n },\n };\n};","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/company-management/api/fetch-graphql';\nimport { CREATE_COMPANY_MUTATION } from './graphql/createCompany.graphql';\nimport { CompanyRegistrationModel } from '@/company-management/data/models/company';\nimport { transformFormDataToCreateInput } from '@/company-management/data/transforms/company';\nimport { transformCreateCompanyResponse } from '@/company-management/data/transforms/transform-company';\n\nexport interface CompanyCreateInput {\n company_name: string;\n company_email: string;\n legal_name?: string;\n vat_tax_id?: string;\n reseller_id?: string;\n legal_address: {\n street: string[];\n city: string;\n region: {\n region_code: string;\n region?: string;\n region_id?: number;\n };\n postcode: string;\n country_id: string;\n telephone?: string;\n };\n company_admin: {\n email: string;\n firstname: string;\n lastname: string;\n job_title?: string;\n telephone?: string;\n gender?: number;\n custom_attributes?: Array<{\n attribute_code: string;\n value: string;\n }>;\n };\n}\n\n\nexport const createCompany = async (formData: any): Promise<{ success: boolean; company?: CompanyRegistrationModel; errors?: string[] }> => {\n try {\n const input = transformFormDataToCreateInput(formData);\n const response = await fetchGraphQl(CREATE_COMPANY_MUTATION, {\n method: 'POST',\n variables: { input },\n });\n\n if (response.errors?.length) {\n return {\n success: false,\n errors: response.errors.map((error: any) => error.message),\n };\n }\n\n // Transform the GraphQL response using the dedicated transformer\n const transformedCompany = transformCreateCompanyResponse(response);\n\n return {\n success: true,\n company: transformedCompany,\n };\n } catch (error) {\n console.error('Failed to create company:', error);\n return {\n success: false,\n errors: ['Failed to create company. Please try again.'],\n };\n }\n};"],"names":["GET_STORE_CONFIG_QUERY","DEFAULT_COUNTRY","STORE_CONFIG_DEFAULTS","getStoreConfig","fetchGraphQl","response","_a","handleFetchError","transformStoreConfig","handleNetworkError","default_country","store_code","CREATE_COMPANY_MUTATION","transformFormDataToCreateInput","formData","regionInput","regionCode","regionId","regionValue","line","_b","_c","attr","createCompany","input","error","transformCreateCompanyResponse"],"mappings":"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"}
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name": "@dropins/storefront-company-management", "version": "1.0.0-alpha3003", "@dropins/tools": "1.5.0-beta3", "license": "SEE LICENSE IN LICENSE.md"}
1
+ {"name": "@dropins/storefront-company-management", "version": "1.0.0-alpha3005", "@dropins/tools": "1.5.0-beta3", "license": "SEE LICENSE IN LICENSE.md"}