Files
dashlibstorage/src/index.js
2026-09-30 09:48:01 +02:00

515 lines
22 KiB
JavaScript

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';