import companyuserGetByEmail from './store/companyuser/getByEmail.js'; import companyuserAdd from './store/companyuser/add.js'; import companyuserDelete from './store/companyuser/delete.js'; import companyCreate from './store/company/create.js'; import companyUpdate from './store/company/update.js'; import companyDelete from './store/company/delete.js'; import companyList from './store/company/list.js'; import categoryGetTreeForCompany from './store/category/getTreeForCompany.js'; import categoryGetCategoryArticles from './store/category/getCategoryArticles.js'; import categoryCreateUnderParent from './store/category/createUnderParent.js'; import categoryRename from './store/category/rename.js'; import categoryMove from './store/category/move.js'; import categoryOrder from './store/category/order.js'; import categoryDelete from './store/category/delete.js'; import categoryAddImage from './store/category/addImage.js'; import categoryDeleteImage from './store/category/deleteImage.js'; import articleDelete from './store/article/delete.js'; import articleDeleteImage from './store/article/deleteImage.js'; import articleOrderImages from './store/article/orderImages.js'; import articleAddImage from './store/article/addImage.js'; import articleCreateUnderParent from './store/article/createUnderParent.js'; import articleGetBySku from './store/article/getBySku.js'; import articleGetHistoryBySku from './store/article/getHistoryBySku.js'; import articleListSearchIndex from './store/article/listSearchIndex.js'; import articleListExport from './store/article/listExport.js'; import articleUpdateBySku from './store/article/updateBySku.js'; import articleSetPricesBySku from './store/article/setPricesBySku.js'; import articleSetEansBySku from './store/article/setEansBySku.js'; import articleSetBrandIdBySku from './store/article/setBrandIdBySku.js'; import articleSetWeightBySku from './store/article/setWeightBySku.js'; import articleSetTrackStockBySku from './store/article/setTrackStockBySku.js'; import articleSetCategoryIdsBySku from './store/article/setCategoryIdsBySku.js'; import articleSetFatherBySku from './store/article/setFatherBySku.js'; import articleToggleFather from './store/article/toggleFather.js'; import articleAddChild from './store/article/addChild.js'; import articleRemoveChild from './store/article/removeChild.js'; import articleListChildren from './store/article/listChildren.js'; import articleImportRows from './store/article/importRows.js'; import categoryEnsureByPath from './store/category/ensureByPath.js'; import unitList from './store/unit/list.js'; import unitUpsert from './store/unit/upsert.js'; import unitDelete from './store/unit/delete.js'; import companysettingList from './store/companysetting/list.js'; import companysettingGet from './store/companysetting/get.js'; import companysettingSet from './store/companysetting/set.js'; import brandList from './store/brand/list.js'; import brandUpsert from './store/brand/upsert.js'; import brandDelete from './store/brand/delete.js'; import brandAddImage from './store/brand/addImage.js'; import brandDeleteImage from './store/brand/deleteImage.js'; import customergroupList from './store/customergroup/list.js'; import customergroupCreate from './store/customergroup/create.js'; import customergroupUpdate from './store/customergroup/update.js'; import customergroupOrder from './store/customergroup/order.js'; import customergroupDelete from './store/customergroup/delete.js'; import entityList from './store/entity/list.js'; import entityGetById from './store/entity/getById.js'; import entityCreate from './store/entity/create.js'; import entityUpdate from './store/entity/update.js'; import entityDelete from './store/entity/delete.js'; import entityPeekNextNumber from './store/entity/peekNextNumber.js'; import entityIsNumberFree from './store/entity/isNumberFree.js'; import entityaddressList from './store/entityaddress/list.js'; import entityaddressCreate from './store/entityaddress/create.js'; import entityaddressUpdate from './store/entityaddress/update.js'; import entityaddressDelete from './store/entityaddress/delete.js'; import entitycontactList from './store/entitycontact/list.js'; import entitycontactCreate from './store/entitycontact/create.js'; import entitycontactUpdate from './store/entitycontact/update.js'; import entitycontactDelete from './store/entitycontact/delete.js'; import supplierList from './store/supplier/list.js'; import supplierCreate from './store/supplier/create.js'; import supplierUpdate from './store/supplier/update.js'; import supplierDelete from './store/supplier/delete.js'; import articlesupplierListByArticleSku from './store/articlesupplier/listByArticleSku.js'; import articlesupplierListByEntityAndSkus from './store/articlesupplier/listByEntityAndSkus.js'; import articlesupplierCreate from './store/articlesupplier/create.js'; import articlesupplierUpdate from './store/articlesupplier/update.js'; import articlesupplierDelete from './store/articlesupplier/delete.js'; import articlesupplierOrder from './store/articlesupplier/order.js'; import deliveryList from './store/delivery/list.js'; import deliveryGetById from './store/delivery/getById.js'; import deliveryCreate from './store/delivery/create.js'; import deliveryUpdate from './store/delivery/update.js'; import deliveryDelete from './store/delivery/delete.js'; import quoteList from './store/quote/list.js'; import quoteGetById from './store/quote/getById.js'; import quoteCreate from './store/quote/create.js'; import quoteUpdate from './store/quote/update.js'; import quoteDelete from './store/quote/delete.js'; import orderList from './store/order/list.js'; import orderGetById from './store/order/getById.js'; import orderCreate from './store/order/create.js'; import orderUpdate from './store/order/update.js'; import orderDelete from './store/order/delete.js'; import posterminalList from './store/posterminal/list.js'; import posterminalUpsert from './store/posterminal/upsert.js'; import posterminalDelete from './store/posterminal/delete.js'; import posterminalSetOn from './store/posterminal/setOn.js'; import posterminalSetOff from './store/posterminal/setOff.js'; import posterminalSetOnAll from './store/posterminal/setOnAll.js'; import posterminalSetOffAll from './store/posterminal/setOffAll.js'; import posterminalGetCategoryPosterminalIds from './store/posterminal/getCategoryPosterminalIds.js'; import posterminalFindByPairingpin from './store/posterminal/findByPairingpin.js'; import posterminalFindByToken from './store/posterminal/findByToken.js'; import posterminalPair from './store/posterminal/pair.js'; import posterminalGetProductCount from './store/posterminal/getProductCount.js'; import posterminalGetCategoryCount from './store/posterminal/getCategoryCount.js'; import posterminalGetCustomerCount from './store/posterminal/getCustomerCount.js'; import posterminalGetCustomerGroupCount from './store/posterminal/getCustomerGroupCount.js'; import posterminalGetCompositeProductCount from './store/posterminal/getCompositeProductCount.js'; import posterminalGetDeletedEntityCount from './store/posterminal/getDeletedEntityCount.js'; import posterminalGetMaxOrderIdCount from './store/posterminal/getMaxOrderIdCount.js'; import langCreate from './store/lang/create.js'; import langDelete from './store/lang/delete.js'; import langList from './store/lang/list.js'; import langGetByIso639 from './store/lang/getByIso639.js'; import langEnsure from './store/lang/ensure.js'; import taxCreate from './store/tax/create.js'; import taxGetByRate from './store/tax/getByRate.js'; import taxEnsure from './store/tax/ensure.js'; import taxList from './store/tax/list.js'; import googleAuthAdd from './store/google_auth/add.js'; import googleAuthGetByEmail from './store/google_auth/getByEmail.js'; import googleAuthGetById from './store/google_auth/getById.js'; import googleAuthListAllowedEmails from './store/google_auth/listAllowedEmails.js'; import googleAuthRemoveAllowedEmail from './store/google_auth/removeAllowedEmail.js'; import googleAuthSetSelectedCompany from './store/google_auth/setSelectedCompany.js'; import googleAuthSetProfile from './store/google_auth/setProfile.js'; import picGetImageByHash from './store/pic/getImageByHash.js'; import picGetThumbByHash from './store/pic/getThumbByHash.js'; import numbersList from './store/numbers/list.js'; import numbersUpdate from './store/numbers/update.js'; import storePurge from './store/purge.js'; import storeInitialize from './store/initialize.js'; import manifestattachmentAdd from './store/manifestattachment/add.js'; import manifestattachmentRemove from './store/manifestattachment/remove.js'; import manifestattachmentListByManifestId from './store/manifestattachment/listByManifestId.js'; import manifestattachmentGetById from './store/manifestattachment/getById.js'; import manifestattachmentOrder from './store/manifestattachment/order.js'; import ledgerAdd from './store/ledger/add.js'; import ledgerListByManifestarticleId from './store/ledger/listByManifestarticleId.js'; import ledgerListBySku from './store/ledger/listBySku.js'; import warehouseCreate from './store/warehouse/create.js'; import warehouseGetById from './store/warehouse/getById.js'; import warehouseList from './store/warehouse/list.js'; import warehouseUpdate from './store/warehouse/update.js'; import warehouseDelete from './store/warehouse/delete.js'; import warehouseOrder from './store/warehouse/order.js'; import printerCreate from './store/printer/create.js'; import printerGetById from './store/printer/getById.js'; import printerList from './store/printer/list.js'; import printerUpdate from './store/printer/update.js'; import printerDelete from './store/printer/delete.js'; import printerOrder from './store/printer/order.js'; import labeltemplateCreate from './store/labeltemplate/create.js'; import labeltemplateGetById from './store/labeltemplate/getById.js'; import labeltemplateList from './store/labeltemplate/list.js'; import labeltemplateUpdate from './store/labeltemplate/update.js'; import labeltemplateDelete from './store/labeltemplate/delete.js'; import stockAdjust from './store/stock/adjust.js'; import propertynameList from './store/propertyname/list.js'; import propertynameCreate from './store/propertyname/create.js'; import propertynameUpdate from './store/propertyname/update.js'; import propertynameOrder from './store/propertyname/order.js'; import propertynameDelete from './store/propertyname/delete.js'; import articlepropertyListByArticleSku from './store/articleproperty/listByArticleSku.js'; import articlepropertySetByArticleSku from './store/articleproperty/setByArticleSku.js'; import articlepropertyDelete from './store/articleproperty/delete.js'; import attributenameList from './store/attributename/list.js'; import attributenameCreate from './store/attributename/create.js'; import attributenameUpdate from './store/attributename/update.js'; import attributenameOrder from './store/attributename/order.js'; import attributenameDelete from './store/attributename/delete.js'; import attributevalueListByAttributeId from './store/attributevalue/listByAttributeId.js'; import attributevalueCreate from './store/attributevalue/create.js'; import attributevalueUpdate from './store/attributevalue/update.js'; import attributevalueOrder from './store/attributevalue/order.js'; import attributevalueDelete from './store/attributevalue/delete.js'; import articleattributevalueListByArticleSku from './store/articleattributevalue/listByArticleSku.js'; import articleattributevalueSetByArticleSku from './store/articleattributevalue/setByArticleSku.js'; import articlelistGetItems from './store/articlelist/getItemsByArticleSku.js'; import articlelistSetItems from './store/articlelist/setItemsByArticleSku.js'; import optionslistGetOptions from './store/optionslist/getOptionsByArticleSku.js'; import optionslistSetOptions from './store/optionslist/setOptionsByArticleSku.js'; export default class LibDashStore { /** * @param {import('./providers/provider.js').DatabaseProvider} provider */ constructor(provider) { if ( !provider || typeof provider.query !== 'function' || typeof provider.transaction !== 'function' ) { throw new TypeError( 'LibDashStore requires a database provider (query/transaction/initialize/purge).', ); } this.provider = provider; this.pool = provider.pool; this.companyuser = { getByEmail: companyuserGetByEmail(provider), add: companyuserAdd(provider), delete: companyuserDelete(provider), }; this.company = { create: companyCreate(provider), update: companyUpdate(provider), delete: companyDelete(provider), list: companyList(provider), }; this.category = { getTreeForCompany: categoryGetTreeForCompany(provider), getCategoryArticles: categoryGetCategoryArticles(provider), createUnderParent: categoryCreateUnderParent(provider), ensureByPath: categoryEnsureByPath(provider), rename: categoryRename(provider), move: categoryMove(provider), order: categoryOrder(provider), delete: categoryDelete(provider), addImage: categoryAddImage(provider), deleteImage: categoryDeleteImage(provider), }; this.article = { createUnderParent: articleCreateUnderParent(provider), getBySku: articleGetBySku(provider), getHistoryBySku: articleGetHistoryBySku(provider), listSearchIndex: articleListSearchIndex(provider), listExport: articleListExport(provider), updateBySku: articleUpdateBySku(provider), setPricesBySku: articleSetPricesBySku(provider), setEansBySku: articleSetEansBySku(provider), setBrandIdBySku: articleSetBrandIdBySku(provider), setWeightBySku: articleSetWeightBySku(provider), setTrackStockBySku: articleSetTrackStockBySku(provider), setCategoryIdsBySku: articleSetCategoryIdsBySku(provider), setFatherBySku: articleSetFatherBySku(provider), toggleFather: articleToggleFather(provider), addChild: articleAddChild(provider), removeChild: articleRemoveChild(provider), listChildren: articleListChildren(provider), getArticlelist: articlelistGetItems(provider), setArticlelist: articlelistSetItems(provider), getOptionslist: optionslistGetOptions(provider), setOptionslist: optionslistSetOptions(provider), importRows: articleImportRows(provider), addImage: articleAddImage(provider), deleteImage: articleDeleteImage(provider), orderImages: articleOrderImages(provider), delete: articleDelete(provider), }; this.lang = { create: langCreate(provider), getByIso639: langGetByIso639(provider), ensure: langEnsure(provider), delete: langDelete(provider), list: langList(provider), }; this.tax = { create: taxCreate(provider), getByRate: taxGetByRate(provider), ensure: taxEnsure(provider), list: taxList(provider), }; this.unit = { list: unitList(provider), upsert: unitUpsert(provider), delete: unitDelete(provider), }; this.companysetting = { list: companysettingList(provider), get: companysettingGet(provider), set: companysettingSet(provider), }; this.brand = { list: brandList(provider), upsert: brandUpsert(provider), delete: brandDelete(provider), addImage: brandAddImage(provider), deleteImage: brandDeleteImage(provider), }; this.customergroup = { list: customergroupList(provider), create: customergroupCreate(provider), update: customergroupUpdate(provider), order: customergroupOrder(provider), delete: customergroupDelete(provider), }; this.entity = { list: entityList(provider), getById: entityGetById(provider), create: entityCreate(provider), update: entityUpdate(provider), delete: entityDelete(provider), peekNextNumber: entityPeekNextNumber(provider), isNumberFree: entityIsNumberFree(provider), }; this.entityaddress = { list: entityaddressList(provider), create: entityaddressCreate(provider), update: entityaddressUpdate(provider), delete: entityaddressDelete(provider), }; this.entitycontact = { list: entitycontactList(provider), create: entitycontactCreate(provider), update: entitycontactUpdate(provider), delete: entitycontactDelete(provider), }; this.supplier = { list: supplierList(provider), create: supplierCreate(provider), update: supplierUpdate(provider), delete: supplierDelete(provider), }; this.articlesupplier = { listByArticleSku: articlesupplierListByArticleSku(provider), listByEntityAndSkus: articlesupplierListByEntityAndSkus(provider), listBySupplierAndSkus: articlesupplierListByEntityAndSkus(provider), create: articlesupplierCreate(provider), update: articlesupplierUpdate(provider), order: articlesupplierOrder(provider), delete: articlesupplierDelete(provider), }; this.delivery = { list: deliveryList(provider), getById: deliveryGetById(provider), create: deliveryCreate(provider), update: deliveryUpdate(provider), delete: deliveryDelete(provider), }; this.quote = { list: quoteList(provider), getById: quoteGetById(provider), create: quoteCreate(provider), update: quoteUpdate(provider), delete: quoteDelete(provider), }; this.order = { list: orderList(provider), getById: orderGetById(provider), create: orderCreate(provider), update: orderUpdate(provider), delete: orderDelete(provider), }; this.posterminal = { list: posterminalList(provider), upsert: posterminalUpsert(provider), delete: posterminalDelete(provider), setOn: posterminalSetOn(provider), setOff: posterminalSetOff(provider), setOnAll: posterminalSetOnAll(provider), setOffAll: posterminalSetOffAll(provider), getCategoryPosterminalIds: posterminalGetCategoryPosterminalIds(provider), findByPairingpin: posterminalFindByPairingpin(provider), findByToken: posterminalFindByToken(provider), pair: posterminalPair(provider), getProductCount: posterminalGetProductCount(provider), getCategoryCount: posterminalGetCategoryCount(provider), getCustomerCount: posterminalGetCustomerCount(provider), getCustomerGroupCount: posterminalGetCustomerGroupCount(provider), getCompositeProductCount: posterminalGetCompositeProductCount(provider), getDeletedEntityCount: posterminalGetDeletedEntityCount(provider), getMaxOrderIdCount: posterminalGetMaxOrderIdCount(provider), }; this.google_auth = { add: googleAuthAdd(provider), getByEmail: googleAuthGetByEmail(provider), getById: googleAuthGetById(provider), listAllowedEmails: googleAuthListAllowedEmails(provider), removeAllowedEmail: googleAuthRemoveAllowedEmail(provider), setSelectedCompany: googleAuthSetSelectedCompany(provider), setProfile: googleAuthSetProfile(provider), }; this.pic = { getImageByHash: picGetImageByHash(provider), getThumbByHash: picGetThumbByHash(provider), }; this.numbers = { list: numbersList(provider), update: numbersUpdate(provider), }; this.manifestattachment = { add: manifestattachmentAdd(provider), remove: manifestattachmentRemove(provider), listByManifestId: manifestattachmentListByManifestId(provider), getById: manifestattachmentGetById(provider), order: manifestattachmentOrder(provider), }; this.ledger = { add: ledgerAdd(provider), listByManifestarticleId: ledgerListByManifestarticleId(provider), listBySku: ledgerListBySku(provider), }; this.warehouse = { create: warehouseCreate(provider), getById: warehouseGetById(provider), list: warehouseList(provider), update: warehouseUpdate(provider), delete: warehouseDelete(provider), order: warehouseOrder(provider), }; this.printer = { create: printerCreate(provider), getById: printerGetById(provider), list: printerList(provider), update: printerUpdate(provider), delete: printerDelete(provider), order: printerOrder(provider), }; this.labeltemplate = { create: labeltemplateCreate(provider), getById: labeltemplateGetById(provider), list: labeltemplateList(provider), update: labeltemplateUpdate(provider), delete: labeltemplateDelete(provider), }; this.stock = { adjust: stockAdjust(provider), }; this.adjustment = this.stock; this.propertyname = { list: propertynameList(provider), create: propertynameCreate(provider), update: propertynameUpdate(provider), order: propertynameOrder(provider), delete: propertynameDelete(provider), }; this.articleproperty = { listByArticleSku: articlepropertyListByArticleSku(provider), setByArticleSku: articlepropertySetByArticleSku(provider), delete: articlepropertyDelete(provider), }; this.attributename = { list: attributenameList(provider), create: attributenameCreate(provider), update: attributenameUpdate(provider), order: attributenameOrder(provider), delete: attributenameDelete(provider), }; this.attributevalue = { listByAttributeId: attributevalueListByAttributeId(provider), create: attributevalueCreate(provider), update: attributevalueUpdate(provider), order: attributevalueOrder(provider), delete: attributevalueDelete(provider), }; this.articleattributevalue = { listByArticleSku: articleattributevalueListByArticleSku(provider), setByArticleSku: articleattributevalueSetByArticleSku(provider), }; this.articlelist = { getItemsByArticleSku: articlelistGetItems(provider), setItemsByArticleSku: articlelistSetItems(provider), }; this.optionslist = { getOptionsByArticleSku: optionslistGetOptions(provider), setOptionsByArticleSku: optionslistSetOptions(provider), }; this.purge = storePurge(provider); this.initialize = storeInitialize(provider); return this.initialize().then(() => this); } /** Recommended async factory (constructor returning a promise is confusing). */ static async create(provider) { return new LibDashStore(provider); } } export { SCHEMA_SCRIPTS } from './providers/mssql/schema.js'; export { BetterSqlite3Provider } from './providers/sqlite3/index.js'; export { MssqlProvider } from './providers/mssql/index.js';