@posx/core 5.5.386 → 5.5.388

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/build/index.d.ts CHANGED
@@ -5923,5 +5923,18 @@ type IMerchant = {
5923
5923
  meta: Record<string, string>;
5924
5924
  };
5925
5925
  //#endregion
5926
- export { Address, AppBaseModel, AppConfig, AppCoreModel, AppCoreService, AppExtraModel, AppLocalService, AppMiscService, AppRemoteService, AppReport, AppReportService, Applying, AssetTags, AssetType, Between, BreakPeriod, Cache, CalcFlow, CalcType, CancelInvoiceOptions, CardPaymentCode, CashDrawerConfig, Category, CategorySalesSummary, CategoryService, CategoryType, Charge, ChargeConfig, CheckInvoiceOptions, Codepages, ComboGroup, ComboGroupItem, Condition, Config, ConfigService, CoreCategory, CoreItem, Coupon, CouponItemized, CouponUsage, CreateInvoiceOptions, CrmConfig, CurrencyConfig, CustomResponse, Customer, CustomerDisplaySystemConfig, DayOfWeek, DeployChannel, Device, DeviceEtc, DeviceType, DirectPayInvoiceOptions, DiscountType, DrawerSummary, ElectronSocket, Employee, EmployeeRole, EmployeeRoleService, EmployeeService, ErrorMsgs, EscPosCompatibility, EscPosPrinter, FileUploadRequest, GTOConfig, GeneralConfig, GetManyResult, Holiday, IAddress, IAppBase, IAppBaseModel, IAppConfig, IAppCore, IAppCoreModel, IAppCoreService, IAppExtra, IAppExtraModel, IAppLocalService, IAppMiscService, IAppModelSequence, IAppRemoteService, IAppReport, IAppReportService, IApplying, ICache, ICashDrawerConfig, ICategory, ICategoryService, IChangePaymentMethodOption, ICharge, IChargeConfig, IComboGroup, IComboGroupItem, IConfig, IConfigService, ICoreCategory, ICoreItem, ICoupon, ICouponItemized, ICouponUsage, ICredit, ICrmConfig, ICurrencyConfig, ICustomer, ICustomerDisplaySystemConfig, IDevice, IDiscount, IDrawerSummary, IEmployee, IEmployeeRole, IEmployeeRoleService, IEmployeeService, IEscPosPrinter, IEtc, IExportRow, IFileUploadRequest, IFileUploadResponse, IFontSize, IGeneralConfig, IGtoConfig, IInventoryConfig, IInvoice, IInvoiceActivity, IInvoiceBaseService, IInvoiceCharge, IInvoiceCoreLine, IInvoiceDiscount, IInvoiceLine, IInvoiceOperationService, IInvoiceService, IItem, IItemService, IKdsConfig, IKioskSystemConfig, IKitchenConfig, ILabelConfig, ILineOperationService, ILoyaltyProgram, ILoyaltyProgramSummary, IMarketing, IMenu, IMenuService, IMerchant, IMerchantAsset, INode, INodePrinter, INote, INoteEntity, INoteGroup, INoteGroupEntity, INoteGroupService, INoteService, IOnlineOrderConfig, IOrderConfig, IOrderDisplay, IOrderDisplayService, IOrderDisplaySystemConfig, IPaxConfig, IPayment, IPaymentConfig, IPaymentMethod, IPaymentMethodHistory, IPaymentMethodService, IPaymentService, IPaymentSummary, IPoint, IPrice, IPrintBarcode, IPrintCommand, IPrintCommandLine, IPrintImage, IPrintJob, IPrintJobService, IPrintQrcode, IPrintTable, IPrintTableRowItem, IPrintTemplate, IPrintTemplateCore, IPrintTemplateService, IPrintText, IPrinter, IPrinterService, IProductBase, IProductService, IPushData, IReceiptConfig, IRenderPrintTemplateOptions, IReport, IReportCategory, IReportConfig, IReportData, IReportRequest, IRoundingConfig, ISalesSummary, ISection, ISectionItem, ISectionItemService, ISectionService, IServiceOptions, IShift, IShiftService, IStandardPaymentMethod, IStorage, ISubcategory, ISubcategoryService, ITaxConfig, ITemplateData, ITill, ITillConfig, ITillService, IUser, IUserConfig, IVisibility, In, Include, InventoryConfig, Invoice, InvoiceAction, InvoiceActivity, InvoiceBaseService, InvoiceCharge, InvoiceCoreLine, InvoiceDiscount, InvoiceLine, InvoiceOperationService, InvoiceService, InvoiceStatus, InvoiceType, Item, ItemSalesSummary, ItemService, KdsConfig, KioskSystemConfig, KitchenConfig, LabelConfig, LineOperationService, LineOptions, LoyaltyProgram, LoyaltyProgramSummary, MarketingConfig, Menu, MenuService, Merchant, MessageType, ModelPrefix, ModelType, ModifierSalesSummary, Node, NodePrinter, Not, Note, NoteEntity, NoteGroup, NoteGroupEntity, OnlineOrderConfig, OpenHours, OrderConfig, OrderDisplay, OrderDisplayService, OrderDisplayStatus, OrderDisplaySystemConfig, OrderFlow, PaxConfig, PayInvoiceOptions, Payment, PaymentConfig, PaymentMethod, PaymentMethodHistory, PaymentMethodService, PaymentService, PaymentStatus, PaymentSummary, PaynowMethod, Price, PrintAlign, PrintBarcode, PrintCommand, PrintImage, PrintJob, PrintJobService, PrintJobStatus, PrintQrcode, PrintSize, PrintStyle, PrintTemplate, PrintTemplateCore, PrintTemplateService, PrintType, Printer, PrinterConnections, PrinterProtocols, PrinterService, PrinterStatus, PrinterType, ProductBase, ProductPartialAssets, ProductPartialConfig, ProductService, ProductType, PushData, Raw, Receipt, RenderPrintTemplateOptions, Report, ReportCategory, ReportConfig, ReportData, ReportType, RoundingConfig, SalesSummary, Schedule, Section, SectionItem, SectionItemService, SectionItemStatus, SectionService, ServiceFactory, ServiceMode, ServiceOptions, Shift, ShiftService, ShiftStatus, SpecialDay, StandardPaymentMethod, StockChange, Storage, StorageService, Subcategory, SwitchInvoiceOptions, System, SystemError, TCategorySalesSummary, TDynamicOrderQR, TItemCoreSalesSummary, TItemSalesSummary, TModifierSalesSummary, TStockChange, TStockChangeItem, TStorageService, TaxConfig, TaxMethod, TemplateData, Till, TillConfig, TillService, TillType, UomType, UpdateGeneralConfigOptions, UpdateInvoiceOptions, User, UserConfig, Visibility, VoidInvoiceOptions, createCSVExport, dbSchemas, filterByParams, humanizedData, importFromCSV, normalizedDate, transformer };
5926
+ //#region src/utils/st.validate.d.ts
5927
+ interface ValidationError {
5928
+ type: 'JSON_PARSE' | 'BRACKET_MISMATCH' | 'UNKNOWN_DIRECTIVE' | 'INVALID_EXPRESSION' | 'INVALID_EACH' | 'INVALID_LET' | 'INVALID_STRUCTURE' | 'INVALID_CONDITIONAL';
5929
+ path: string | null;
5930
+ message: string;
5931
+ context?: string;
5932
+ }
5933
+ interface ValidationResult {
5934
+ valid: boolean;
5935
+ errors: ValidationError[];
5936
+ }
5937
+ declare function validateSTTemplate(jsonStr: string): ValidationResult;
5938
+ //#endregion
5939
+ export { Address, AppBaseModel, AppConfig, AppCoreModel, AppCoreService, AppExtraModel, AppLocalService, AppMiscService, AppRemoteService, AppReport, AppReportService, Applying, AssetTags, AssetType, Between, BreakPeriod, Cache, CalcFlow, CalcType, CancelInvoiceOptions, CardPaymentCode, CashDrawerConfig, Category, CategorySalesSummary, CategoryService, CategoryType, Charge, ChargeConfig, CheckInvoiceOptions, Codepages, ComboGroup, ComboGroupItem, Condition, Config, ConfigService, CoreCategory, CoreItem, Coupon, CouponItemized, CouponUsage, CreateInvoiceOptions, CrmConfig, CurrencyConfig, CustomResponse, Customer, CustomerDisplaySystemConfig, DayOfWeek, DeployChannel, Device, DeviceEtc, DeviceType, DirectPayInvoiceOptions, DiscountType, DrawerSummary, ElectronSocket, Employee, EmployeeRole, EmployeeRoleService, EmployeeService, ErrorMsgs, EscPosCompatibility, EscPosPrinter, FileUploadRequest, GTOConfig, GeneralConfig, GetManyResult, Holiday, IAddress, IAppBase, IAppBaseModel, IAppConfig, IAppCore, IAppCoreModel, IAppCoreService, IAppExtra, IAppExtraModel, IAppLocalService, IAppMiscService, IAppModelSequence, IAppRemoteService, IAppReport, IAppReportService, IApplying, ICache, ICashDrawerConfig, ICategory, ICategoryService, IChangePaymentMethodOption, ICharge, IChargeConfig, IComboGroup, IComboGroupItem, IConfig, IConfigService, ICoreCategory, ICoreItem, ICoupon, ICouponItemized, ICouponUsage, ICredit, ICrmConfig, ICurrencyConfig, ICustomer, ICustomerDisplaySystemConfig, IDevice, IDiscount, IDrawerSummary, IEmployee, IEmployeeRole, IEmployeeRoleService, IEmployeeService, IEscPosPrinter, IEtc, IExportRow, IFileUploadRequest, IFileUploadResponse, IFontSize, IGeneralConfig, IGtoConfig, IInventoryConfig, IInvoice, IInvoiceActivity, IInvoiceBaseService, IInvoiceCharge, IInvoiceCoreLine, IInvoiceDiscount, IInvoiceLine, IInvoiceOperationService, IInvoiceService, IItem, IItemService, IKdsConfig, IKioskSystemConfig, IKitchenConfig, ILabelConfig, ILineOperationService, ILoyaltyProgram, ILoyaltyProgramSummary, IMarketing, IMenu, IMenuService, IMerchant, IMerchantAsset, INode, INodePrinter, INote, INoteEntity, INoteGroup, INoteGroupEntity, INoteGroupService, INoteService, IOnlineOrderConfig, IOrderConfig, IOrderDisplay, IOrderDisplayService, IOrderDisplaySystemConfig, IPaxConfig, IPayment, IPaymentConfig, IPaymentMethod, IPaymentMethodHistory, IPaymentMethodService, IPaymentService, IPaymentSummary, IPoint, IPrice, IPrintBarcode, IPrintCommand, IPrintCommandLine, IPrintImage, IPrintJob, IPrintJobService, IPrintQrcode, IPrintTable, IPrintTableRowItem, IPrintTemplate, IPrintTemplateCore, IPrintTemplateService, IPrintText, IPrinter, IPrinterService, IProductBase, IProductService, IPushData, IReceiptConfig, IRenderPrintTemplateOptions, IReport, IReportCategory, IReportConfig, IReportData, IReportRequest, IRoundingConfig, ISalesSummary, ISection, ISectionItem, ISectionItemService, ISectionService, IServiceOptions, IShift, IShiftService, IStandardPaymentMethod, IStorage, ISubcategory, ISubcategoryService, ITaxConfig, ITemplateData, ITill, ITillConfig, ITillService, IUser, IUserConfig, IVisibility, In, Include, InventoryConfig, Invoice, InvoiceAction, InvoiceActivity, InvoiceBaseService, InvoiceCharge, InvoiceCoreLine, InvoiceDiscount, InvoiceLine, InvoiceOperationService, InvoiceService, InvoiceStatus, InvoiceType, Item, ItemSalesSummary, ItemService, KdsConfig, KioskSystemConfig, KitchenConfig, LabelConfig, LineOperationService, LineOptions, LoyaltyProgram, LoyaltyProgramSummary, MarketingConfig, Menu, MenuService, Merchant, MessageType, ModelPrefix, ModelType, ModifierSalesSummary, Node, NodePrinter, Not, Note, NoteEntity, NoteGroup, NoteGroupEntity, OnlineOrderConfig, OpenHours, OrderConfig, OrderDisplay, OrderDisplayService, OrderDisplayStatus, OrderDisplaySystemConfig, OrderFlow, PaxConfig, PayInvoiceOptions, Payment, PaymentConfig, PaymentMethod, PaymentMethodHistory, PaymentMethodService, PaymentService, PaymentStatus, PaymentSummary, PaynowMethod, Price, PrintAlign, PrintBarcode, PrintCommand, PrintImage, PrintJob, PrintJobService, PrintJobStatus, PrintQrcode, PrintSize, PrintStyle, PrintTemplate, PrintTemplateCore, PrintTemplateService, PrintType, Printer, PrinterConnections, PrinterProtocols, PrinterService, PrinterStatus, PrinterType, ProductBase, ProductPartialAssets, ProductPartialConfig, ProductService, ProductType, PushData, Raw, Receipt, RenderPrintTemplateOptions, Report, ReportCategory, ReportConfig, ReportData, ReportType, RoundingConfig, SalesSummary, Schedule, Section, SectionItem, SectionItemService, SectionItemStatus, SectionService, ServiceFactory, ServiceMode, ServiceOptions, Shift, ShiftService, ShiftStatus, SpecialDay, StandardPaymentMethod, StockChange, Storage, StorageService, Subcategory, SwitchInvoiceOptions, System, SystemError, TCategorySalesSummary, TDynamicOrderQR, TItemCoreSalesSummary, TItemSalesSummary, TModifierSalesSummary, TStockChange, TStockChangeItem, TStorageService, TaxConfig, TaxMethod, TemplateData, Till, TillConfig, TillService, TillType, UomType, UpdateGeneralConfigOptions, UpdateInvoiceOptions, User, UserConfig, type ValidationError, type ValidationResult, Visibility, VoidInvoiceOptions, createCSVExport, dbSchemas, filterByParams, humanizedData, importFromCSV, normalizedDate, transformer, validateSTTemplate };
5927
5940
  //# sourceMappingURL=index.d.ts.map
package/build/index.js CHANGED
@@ -2,5 +2,5 @@ import e from"dayjs";import{nanoid as t}from"nanoid";import n from"esc-pos-encod
2
2
  `)}async function pi(e){return gi(mi(await e.text()))}function mi(e){let t=e.replace(/^\uFEFF/,``).replace(/\r\n/g,`
3
3
  `).replace(/\r/g,`
4
4
  `).trim().split(`
5
- `);if(t.length===0)throw Error(`CSV file is empty`);let n=t[0].trim(),r=`Type,Name,SKU,Price,Stock,Is Internal,Min Order,Max Order,Image URL,Thumbnail URL,Sequence`;if(n!==r)throw Error(`Invalid CSV header. Expected: ${r}\nReceived: ${n}\nReceived length: ${n.length}, Expected length: 90`);let i=[];for(let e=1;e<t.length;e++){let n=t[e].trim();if(!n)continue;let r=hi(n);if(r.length!==11)throw Error(`Invalid CSV row at line ${e+1}: expected 11 columns`);let[a,o,s,c,l,u,d,f,p,m,h]=r;if(!a||!o.trim())throw Error(`Missing required fields at line ${e+1}`);if(![`category`,`product`,`modifier_category`,`modifier`].includes(a))throw Error(`Invalid type "${a}" at line ${e+1}. Must be: category, product, modifier_category, or modifier`);let g;if(c&&c.trim()&&(g=parseFloat(c),isNaN(g)))throw Error(`Invalid price "${c}" at line ${e+1}`);let _;if(l&&l.trim()&&(_=parseFloat(l),isNaN(_)))throw Error(`Invalid stock "${l}" at line ${e+1}`);let v;if(u&&u.trim())if(u.trim()===`true`)v=!0;else if(u.trim()===`false`)v=!1;else throw Error(`Invalid is_internal "${u}" at line ${e+1}. Must be: true or false`);let y;if(d&&d.trim()&&(y=parseInt(d,10),isNaN(y)))throw Error(`Invalid min_order "${d}" at line ${e+1}`);let b;if(f&&f.trim()&&(b=parseInt(f,10),isNaN(b)))throw Error(`Invalid max_order "${f}" at line ${e+1}`);let x;if(h&&h.trim()&&(x=parseInt(h,10),isNaN(x)))throw Error(`Invalid sequence "${h}" at line ${e+1}`);i.push({type:a,name:o.trim(),sku:s?.trim()||``,price:g,stock:_,is_internal:v,min_order:y,max_order:b,image_url:p?.trim()||``,image_thumbnail_url:m?.trim()||``,sequence:x})}return i}function hi(e){let t=[],n=``,r=!1;for(let i=0;i<e.length;i++){let a=e[i];a===`"`?r&&e[i+1]===`"`?(n+=`"`,i++):r=!r:a===`,`&&!r?(t.push(n),n=``):n+=a}return t.push(n),t}function gi(e){let t=[],n=[],r=null,i=null,a=null,o=0;for(let s of e)if(s.type===`category`)r=new we,r.name=s.name,r.is_internal=s.is_internal===void 0?!1:s.is_internal,r.sequence=s.sequence===void 0?o++:s.sequence,r.image_url=s.image_url||``,r.image_thumbnail_url=s.image_thumbnail_url||``,r.visibility=[],t.push(r),i=null,a=null;else if(s.type===`product`){if(!r)throw Error(`Product "${s.name}" found without a category`);i=new De,i.name=s.name,i.sku=s.sku||``,i.price=s.price||0,i.stock=s.stock===void 0?1e3:s.stock,i.is_internal=s.is_internal===void 0?!1:s.is_internal,i.sequence=s.sequence||0,i.image_url=s.image_url||``,i.image_thumbnail_url=s.image_thumbnail_url||``,i.category_uid=r.uid,i.type=j.ByQuantity,i.modifier_categories=[],i.modifiers=[],n.push(i),a=null}else if(s.type===`modifier_category`){if(!i)throw Error(`Modifier category "${s.name}" found without a product`);a=new Ce,a.name=s.name,a.min_order=s.min_order===void 0?0:s.min_order,a.max_order=s.max_order===void 0?0:s.max_order,a.sequence=s.sequence===void 0?i.modifier_categories.length:s.sequence,a.visibility=[],i.modifier_categories.push(a)}else if(s.type===`modifier`){if(!i)throw Error(`Modifier "${s.name}" found without a product`);let e=new Ee;e.name=s.name,e.sku=s.sku||``,e.price=s.price||0,e.stock=s.stock===void 0?0:s.stock,e.is_internal=s.is_internal===void 0?!1:s.is_internal,e.sequence=s.sequence||0,e.image_url=s.image_url||``,e.image_thumbnail_url=s.image_thumbnail_url||``,e.type=j.Modifier,a?e.category_uid=a.uid:e.category_uid=i.category_uid,i.modifiers.push(e)}return{categories:t,products:n}}let _i=function(e){return e.None=``,e.Always=`always`,e}({}),vi=function(e){return e.Image=`image`,e.Video=`video`,e.Unsupported=`unsupported`,e}({}),yi=function(e){return e.CdsFullScreenImage=`cds_full_screen_image`,e.CdsHalfScreenImage=`cds_half_screen_image`,e}({});var bi=class{constructor(){y(this,`name`,void 0),y(this,`address`,void 0),y(this,`postcode`,void 0),y(this,`tel`,void 0),y(this,`tax_number`,void 0),y(this,`user_id`,void 0),y(this,`uid`,void 0),y(this,`api_key`,void 0),y(this,`ip_address`,void 0),y(this,`meta`,void 0)}},xi=class extends C{constructor(...e){super(...e),y(this,`uid`,w.Storage+t()),y(this,`model`,void 0),y(this,`data`,void 0)}},Si=class extends C{constructor(...e){super(...e),y(this,`uid`,w.Menu+t()),y(this,`icon`,``),y(this,`meta`,{}),y(this,`category_uids`,[]),y(this,`online_order_expiry_in_minutes`,0),y(this,`online_order_session_expiry_in_minutes`,0)}};export{b as Address,C as AppBaseModel,wt as AppConfig,S as AppCoreModel,un as AppCoreService,ce as AppExtraModel,dn as AppLocalService,Wr as AppMiscService,W as AppRemoteService,hn as AppReport,Gr as AppReportService,re as Applying,yi as AssetTags,vi as AssetType,on as Between,Tt as Cache,U as CalcFlow,H as CalcType,kt as CardPaymentCode,en as CashDrawerConfig,we as Category,Cn as CategorySalesSummary,Lr as CategoryService,Se as CategoryType,vt as Charge,Jt as ChargeConfig,M as Codepages,Ae as ComboGroup,ke as ComboGroupItem,_i as Condition,Mt as Config,Y as ConfigService,Ce as CoreCategory,Ee as CoreItem,ie as Coupon,oe as CouponItemized,ae as CouponUsage,Et as CrmConfig,Yt as CurrencyConfig,ee as Customer,Ot as CustomerDisplaySystemConfig,Ft as DeployChannel,We as Device,Ke as DeviceType,ht as DiscountType,vn as DrawerSummary,je as ElectronSocket,Ct as Employee,ve as EmployeeRole,Pr as EmployeeRoleService,Fr as EmployeeService,E as ErrorMsgs,He as EscPosCompatibility,Ie as EscPosPrinter,tn as FileUploadRequest,$t as GTOConfig,It as GeneralConfig,an as In,rn as Include,Zt as InventoryConfig,St as Invoice,pt as InvoiceAction,_t as InvoiceActivity,Ar as InvoiceBaseService,gt as InvoiceCharge,bt as InvoiceCoreLine,yt as InvoiceDiscount,xt as InvoiceLine,Mr as InvoiceOperationService,Nr as InvoiceService,V as InvoiceStatus,ut as InvoiceType,De as Item,xn as ItemSalesSummary,Ir as ItemService,Vt as KdsConfig,At as KioskSystemConfig,Bt as KitchenConfig,Ht as LabelConfig,jr as LineOperationService,Dt as LoyaltyProgram,bn as LoyaltyProgramSummary,jt as MarketingConfig,Si as Menu,qr as MenuService,bi as Merchant,fe as MessageType,w as ModelPrefix,le as ModelType,Sn as ModifierSalesSummary,Ge as Node,qe as NodePrinter,sn as Not,lt as Note,ct as NoteEntity,st as NoteGroup,ot as NoteGroupEntity,Pt as OnlineOrderConfig,Ut as OrderConfig,Dr as OrderDisplay,Or as OrderDisplayService,J as OrderDisplayStatus,Wt as OrderDisplaySystemConfig,dt as OrderFlow,Qt as PaxConfig,tt as Payment,Gt as PaymentConfig,nt as PaymentMethod,rt as PaymentMethodHistory,Hr as PaymentMethodService,Ur as PaymentService,at as PaymentStatus,yn as PaymentSummary,Nt as PaynowMethod,Oe as Price,Le as PrintAlign,ze as PrintBarcode,F as PrintCommand,Ve as PrintImage,z as PrintJob,Kr as PrintJobService,Ze as PrintJobStatus,Be as PrintQrcode,N as PrintSize,Re as PrintStyle,R as PrintTemplate,Xe as PrintTemplateCore,Jr as PrintTemplateService,P as PrintType,$e as Printer,Ye as PrinterConnections,Je as PrinterProtocols,wn as PrinterService,Qe as PrinterStatus,L as PrinterType,A as ProductBase,Br as ProductService,j as ProductType,pe as PushData,cn as Raw,zt as Receipt,B as RenderPrintTemplateOptions,mn as Report,pn as ReportCategory,Rt as ReportConfig,gn as ReportData,fn as ReportType,Xt as RoundingConfig,_n as SalesSummary,_e as Section,ge as SectionItem,zr as SectionItemService,k as SectionItemStatus,Rr as SectionService,ci as ServiceFactory,ue as ServiceMode,de as ServiceOptions,me as Shift,Vr as ShiftService,D as ShiftStatus,it as StandardPaymentMethod,ye as StockChange,xi as Storage,Yr as StorageService,Te as Subcategory,xe as System,T as SystemError,qt as TaxConfig,ft as TaxMethod,et as TemplateData,he as Till,Lt as TillConfig,X as TillService,O as TillType,mt as UomType,x as User,Kt as UserConfig,be as Visibility,li as createCSVExport,si as dbSchemas,ln as filterByParams,I as humanizedData,pi as importFromCSV,Ue as normalizedDate,se as transformer};
5
+ `);if(t.length===0)throw Error(`CSV file is empty`);let n=t[0].trim(),r=`Type,Name,SKU,Price,Stock,Is Internal,Min Order,Max Order,Image URL,Thumbnail URL,Sequence`;if(n!==r)throw Error(`Invalid CSV header. Expected: ${r}\nReceived: ${n}\nReceived length: ${n.length}, Expected length: 90`);let i=[];for(let e=1;e<t.length;e++){let n=t[e].trim();if(!n)continue;let r=hi(n);if(r.length!==11)throw Error(`Invalid CSV row at line ${e+1}: expected 11 columns`);let[a,o,s,c,l,u,d,f,p,m,h]=r;if(!a||!o.trim())throw Error(`Missing required fields at line ${e+1}`);if(![`category`,`product`,`modifier_category`,`modifier`].includes(a))throw Error(`Invalid type "${a}" at line ${e+1}. Must be: category, product, modifier_category, or modifier`);let g;if(c&&c.trim()&&(g=parseFloat(c),isNaN(g)))throw Error(`Invalid price "${c}" at line ${e+1}`);let _;if(l&&l.trim()&&(_=parseFloat(l),isNaN(_)))throw Error(`Invalid stock "${l}" at line ${e+1}`);let v;if(u&&u.trim())if(u.trim()===`true`)v=!0;else if(u.trim()===`false`)v=!1;else throw Error(`Invalid is_internal "${u}" at line ${e+1}. Must be: true or false`);let y;if(d&&d.trim()&&(y=parseInt(d,10),isNaN(y)))throw Error(`Invalid min_order "${d}" at line ${e+1}`);let b;if(f&&f.trim()&&(b=parseInt(f,10),isNaN(b)))throw Error(`Invalid max_order "${f}" at line ${e+1}`);let x;if(h&&h.trim()&&(x=parseInt(h,10),isNaN(x)))throw Error(`Invalid sequence "${h}" at line ${e+1}`);i.push({type:a,name:o.trim(),sku:s?.trim()||``,price:g,stock:_,is_internal:v,min_order:y,max_order:b,image_url:p?.trim()||``,image_thumbnail_url:m?.trim()||``,sequence:x})}return i}function hi(e){let t=[],n=``,r=!1;for(let i=0;i<e.length;i++){let a=e[i];a===`"`?r&&e[i+1]===`"`?(n+=`"`,i++):r=!r:a===`,`&&!r?(t.push(n),n=``):n+=a}return t.push(n),t}function gi(e){let t=[],n=[],r=null,i=null,a=null,o=0;for(let s of e)if(s.type===`category`)r=new we,r.name=s.name,r.is_internal=s.is_internal===void 0?!1:s.is_internal,r.sequence=s.sequence===void 0?o++:s.sequence,r.image_url=s.image_url||``,r.image_thumbnail_url=s.image_thumbnail_url||``,r.visibility=[],t.push(r),i=null,a=null;else if(s.type===`product`){if(!r)throw Error(`Product "${s.name}" found without a category`);i=new De,i.name=s.name,i.sku=s.sku||``,i.price=s.price||0,i.stock=s.stock===void 0?1e3:s.stock,i.is_internal=s.is_internal===void 0?!1:s.is_internal,i.sequence=s.sequence||0,i.image_url=s.image_url||``,i.image_thumbnail_url=s.image_thumbnail_url||``,i.category_uid=r.uid,i.type=j.ByQuantity,i.modifier_categories=[],i.modifiers=[],n.push(i),a=null}else if(s.type===`modifier_category`){if(!i)throw Error(`Modifier category "${s.name}" found without a product`);a=new Ce,a.name=s.name,a.min_order=s.min_order===void 0?0:s.min_order,a.max_order=s.max_order===void 0?0:s.max_order,a.sequence=s.sequence===void 0?i.modifier_categories.length:s.sequence,a.visibility=[],i.modifier_categories.push(a)}else if(s.type===`modifier`){if(!i)throw Error(`Modifier "${s.name}" found without a product`);let e=new Ee;e.name=s.name,e.sku=s.sku||``,e.price=s.price||0,e.stock=s.stock===void 0?0:s.stock,e.is_internal=s.is_internal===void 0?!1:s.is_internal,e.sequence=s.sequence||0,e.image_url=s.image_url||``,e.image_thumbnail_url=s.image_thumbnail_url||``,e.type=j.Modifier,a?e.category_uid=a.uid:e.category_uid=i.category_uid,i.modifiers.push(e)}return{categories:t,products:n}}let _i=function(e){return e.None=``,e.Always=`always`,e}({}),vi=function(e){return e.Image=`image`,e.Video=`video`,e.Unsupported=`unsupported`,e}({}),yi=function(e){return e.CdsFullScreenImage=`cds_full_screen_image`,e.CdsHalfScreenImage=`cds_half_screen_image`,e}({});var bi=class{constructor(){y(this,`name`,void 0),y(this,`address`,void 0),y(this,`postcode`,void 0),y(this,`tel`,void 0),y(this,`tax_number`,void 0),y(this,`user_id`,void 0),y(this,`uid`,void 0),y(this,`api_key`,void 0),y(this,`ip_address`,void 0),y(this,`meta`,void 0)}},xi=class extends C{constructor(...e){super(...e),y(this,`uid`,w.Storage+t()),y(this,`model`,void 0),y(this,`data`,void 0)}},Si=class extends C{constructor(...e){super(...e),y(this,`uid`,w.Menu+t()),y(this,`icon`,``),y(this,`meta`,{}),y(this,`category_uids`,[]),y(this,`online_order_expiry_in_minutes`,0),y(this,`online_order_session_expiry_in_minutes`,0)}};const Ci=[`#each`,`#if`,`#elseif`,`#else`,`#let`,`#merge`,`#concat`,`#include`,`#?`,`#flatten`];function wi(e){let t=[],n=(e,n,r,i)=>t.push({type:e,path:n,message:r,context:i}),r;try{r=JSON.parse(e)}catch(t){let n=t.message.match(/position (\d+)/)?.[1];return{valid:!1,errors:[{type:`JSON_PARSE`,path:null,message:t.message,context:n?e.slice(Math.max(0,n-20),+n+20):void 0}]}}let i=JSON.stringify(r),a=i.match(/"[^"]*"/g)||[],o=0,s=0;return a.forEach(e=>{o+=(e.match(/\{\{/g)||[]).length,s+=(e.match(/\}\}/g)||[]).length}),o!==s&&n(`BRACKET_MISMATCH`,null,`{{ : ${o}, }} : ${s}`),(i.match(/\{\{([^}]+)\}\}/g)||[]).forEach(e=>{let t=e.slice(2,-2).trim();if(t.startsWith(`#`)){let r=t.split(/\s/)[0];Ci.includes(r)||n(`UNKNOWN_DIRECTIVE`,null,r,e);return}try{Function(`with(this){return(${t})}`)}catch(t){n(`INVALID_EXPRESSION`,null,t.message,e)}}),(function e(t,r){if(!(!t||typeof t!=`object`)){if(Array.isArray(t)){let i=t[0]&&Object.keys(t[0])[0];i?.includes(`#if`)&&!i.includes(`#elseif`)&&Ti(t,r,n),t.forEach((t,n)=>e(t,`${r}[${n}]`));return}for(let i in t){let a=t[i];i.includes(`#each`)&&typeof a!=`object`&&n(`INVALID_EACH`,r,`value must be object`,i),i.includes(`#let`)&&(!Array.isArray(a)||a.length!==2)&&n(`INVALID_LET`,r,`must be [definitions, template]`,i),(i.includes(`#merge`)||i.includes(`#concat`))&&!Array.isArray(a)&&n(`INVALID_STRUCTURE`,r,`value must be array`,i),e(a,r?`${r}.${i}`:i)}}})(r,``),{valid:!t.length,errors:t}}function Ti(e,t,n){let r=e=>Object.keys(e)[0]||``;r(e[0]).match(/#if\s/)||n(`INVALID_CONDITIONAL`,t,`must start with #if`,r(e[0]));for(let i=1;i<e.length-1;i++)r(e[i]).includes(`#elseif`)||n(`INVALID_CONDITIONAL`,`${t}[${i}]`,`middle must be #elseif`,r(e[i]));e.length>1&&!r(e.at(-1)).includes(`#else`)&&n(`INVALID_CONDITIONAL`,`${t}[${e.length-1}]`,`last must be #else/#elseif`,r(e.at(-1)))}export{b as Address,C as AppBaseModel,wt as AppConfig,S as AppCoreModel,un as AppCoreService,ce as AppExtraModel,dn as AppLocalService,Wr as AppMiscService,W as AppRemoteService,hn as AppReport,Gr as AppReportService,re as Applying,yi as AssetTags,vi as AssetType,on as Between,Tt as Cache,U as CalcFlow,H as CalcType,kt as CardPaymentCode,en as CashDrawerConfig,we as Category,Cn as CategorySalesSummary,Lr as CategoryService,Se as CategoryType,vt as Charge,Jt as ChargeConfig,M as Codepages,Ae as ComboGroup,ke as ComboGroupItem,_i as Condition,Mt as Config,Y as ConfigService,Ce as CoreCategory,Ee as CoreItem,ie as Coupon,oe as CouponItemized,ae as CouponUsage,Et as CrmConfig,Yt as CurrencyConfig,ee as Customer,Ot as CustomerDisplaySystemConfig,Ft as DeployChannel,We as Device,Ke as DeviceType,ht as DiscountType,vn as DrawerSummary,je as ElectronSocket,Ct as Employee,ve as EmployeeRole,Pr as EmployeeRoleService,Fr as EmployeeService,E as ErrorMsgs,He as EscPosCompatibility,Ie as EscPosPrinter,tn as FileUploadRequest,$t as GTOConfig,It as GeneralConfig,an as In,rn as Include,Zt as InventoryConfig,St as Invoice,pt as InvoiceAction,_t as InvoiceActivity,Ar as InvoiceBaseService,gt as InvoiceCharge,bt as InvoiceCoreLine,yt as InvoiceDiscount,xt as InvoiceLine,Mr as InvoiceOperationService,Nr as InvoiceService,V as InvoiceStatus,ut as InvoiceType,De as Item,xn as ItemSalesSummary,Ir as ItemService,Vt as KdsConfig,At as KioskSystemConfig,Bt as KitchenConfig,Ht as LabelConfig,jr as LineOperationService,Dt as LoyaltyProgram,bn as LoyaltyProgramSummary,jt as MarketingConfig,Si as Menu,qr as MenuService,bi as Merchant,fe as MessageType,w as ModelPrefix,le as ModelType,Sn as ModifierSalesSummary,Ge as Node,qe as NodePrinter,sn as Not,lt as Note,ct as NoteEntity,st as NoteGroup,ot as NoteGroupEntity,Pt as OnlineOrderConfig,Ut as OrderConfig,Dr as OrderDisplay,Or as OrderDisplayService,J as OrderDisplayStatus,Wt as OrderDisplaySystemConfig,dt as OrderFlow,Qt as PaxConfig,tt as Payment,Gt as PaymentConfig,nt as PaymentMethod,rt as PaymentMethodHistory,Hr as PaymentMethodService,Ur as PaymentService,at as PaymentStatus,yn as PaymentSummary,Nt as PaynowMethod,Oe as Price,Le as PrintAlign,ze as PrintBarcode,F as PrintCommand,Ve as PrintImage,z as PrintJob,Kr as PrintJobService,Ze as PrintJobStatus,Be as PrintQrcode,N as PrintSize,Re as PrintStyle,R as PrintTemplate,Xe as PrintTemplateCore,Jr as PrintTemplateService,P as PrintType,$e as Printer,Ye as PrinterConnections,Je as PrinterProtocols,wn as PrinterService,Qe as PrinterStatus,L as PrinterType,A as ProductBase,Br as ProductService,j as ProductType,pe as PushData,cn as Raw,zt as Receipt,B as RenderPrintTemplateOptions,mn as Report,pn as ReportCategory,Rt as ReportConfig,gn as ReportData,fn as ReportType,Xt as RoundingConfig,_n as SalesSummary,_e as Section,ge as SectionItem,zr as SectionItemService,k as SectionItemStatus,Rr as SectionService,ci as ServiceFactory,ue as ServiceMode,de as ServiceOptions,me as Shift,Vr as ShiftService,D as ShiftStatus,it as StandardPaymentMethod,ye as StockChange,xi as Storage,Yr as StorageService,Te as Subcategory,xe as System,T as SystemError,qt as TaxConfig,ft as TaxMethod,et as TemplateData,he as Till,Lt as TillConfig,X as TillService,O as TillType,mt as UomType,x as User,Kt as UserConfig,be as Visibility,li as createCSVExport,si as dbSchemas,ln as filterByParams,I as humanizedData,pi as importFromCSV,Ue as normalizedDate,se as transformer,wi as validateSTTemplate};
6
6
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,5 @@
1
+ # This directory is a Syncthing folder marker.
2
+ # Do not delete.
3
+
4
+ folderID: kxmo2-tcjhp
5
+ created: 2026-01-20T12:54:33+08:00
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@posx/core",
3
- "version": "5.5.386",
3
+ "version": "5.5.388",
4
4
  "description": "POSX core libraries",
5
5
  "main": "./build/index.js",
6
6
  "author": "Steven Lee",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@posx/core",
3
- "version": "5.5.386",
3
+ "version": "5.5.388",
4
4
  "description": "POSX core libraries",
5
5
  "type": "module",
6
6
  "main": "./build/index.js",
@@ -81,7 +81,8 @@
81
81
  "vite": "^5.4.11",
82
82
  "vite-plugin-bundle-obfuscator": "1.8.0",
83
83
  "vite-plugin-dts": "^4.3.0",
84
- "vitest": "^2.1.0"
84
+ "vitest": "^2.1.0",
85
+ "xlsx": "^0.18.5"
85
86
  },
86
87
  "dependencies": {
87
88
  "@awesome-cordova-plugins/core": "6.6.0",