@unchainedshop/core-delivery 4.4.0 → 4.6.0

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,41 +1,24 @@
1
1
  import { mongodb, type ModuleInput } from '@unchainedshop/mongodb';
2
- import { type DeliveryProvider } from '../db/DeliveryProvidersCollection.ts';
2
+ import { type DeliveryProvider, type DeliveryProviderType } from '../db/DeliveryProvidersCollection.ts';
3
3
  import { type DeliverySettingsOptions } from '../delivery-settings.ts';
4
4
  export interface DeliveryInterface {
5
5
  _id: string;
6
6
  label: string;
7
7
  version: string;
8
8
  }
9
- export declare const buildFindSelector: ({ includeDeleted, ...rest }?: mongodb.Filter<DeliveryProvider> & {
9
+ export interface DeliveryProviderQuery {
10
+ deliveryProviderIds?: string[];
11
+ type?: DeliveryProviderType;
10
12
  includeDeleted?: boolean;
11
- }) => {
12
- type?: mongodb.Condition<import("../db/DeliveryProvidersCollection.ts").DeliveryProviderType> | undefined;
13
- created?: mongodb.Condition<Date> | undefined;
14
- deleted?: Date | mongodb.FilterOperators<Date | null | undefined> | null | undefined;
15
- adapterKey?: mongodb.Condition<string> | undefined;
16
- configuration?: mongodb.Condition<import("../db/DeliveryProvidersCollection.ts").DeliveryConfiguration> | undefined;
17
- updated?: mongodb.Condition<Date | undefined>;
18
- _id?: mongodb.Condition<string> | undefined;
19
- $and?: mongodb.Filter<mongodb.WithId<DeliveryProvider>>[] | undefined;
20
- $nor?: mongodb.Filter<mongodb.WithId<DeliveryProvider>>[] | undefined;
21
- $or?: mongodb.Filter<mongodb.WithId<DeliveryProvider>>[] | undefined;
22
- $text?: {
23
- $search: string;
24
- $language?: string;
25
- $caseSensitive?: boolean;
26
- $diacriticSensitive?: boolean;
27
- };
28
- $where?: string | ((this: mongodb.WithId<DeliveryProvider>) => boolean) | undefined;
29
- $comment?: string | mongodb.BSON.Document;
30
- };
13
+ queryString?: string;
14
+ }
15
+ export declare const buildFindSelector: ({ includeDeleted, queryString, deliveryProviderIds, type, }?: DeliveryProviderQuery) => mongodb.Filter<DeliveryProvider>;
31
16
  export declare const configureDeliveryModule: ({ db, options: deliveryOptions, }: ModuleInput<DeliverySettingsOptions>) => Promise<{
32
- count: (query: mongodb.Filter<DeliveryProvider>) => Promise<number>;
17
+ count: (query?: DeliveryProviderQuery) => Promise<number>;
33
18
  findProvider: ({ deliveryProviderId, ...query }: {
34
19
  deliveryProviderId: string;
35
20
  } & mongodb.Filter<DeliveryProvider>, options?: mongodb.FindOptions) => Promise<DeliveryProvider | null>;
36
- findProviders: (query: mongodb.Filter<DeliveryProvider> & {
37
- includeDeleted?: boolean;
38
- }, options?: mongodb.FindOptions) => Promise<DeliveryProvider[]>;
21
+ findProviders: (query?: DeliveryProviderQuery, options?: mongodb.FindOptions) => Promise<DeliveryProvider[]>;
39
22
  allProviders: () => Promise<mongodb.WithId<DeliveryProvider>[]>;
40
23
  providerExists: ({ deliveryProviderId }: {
41
24
  deliveryProviderId: string;
@@ -1,5 +1,5 @@
1
1
  import { emit, registerEvents } from '@unchainedshop/events';
2
- import { mongodb, generateDbFilterById, generateDbObjectId, } from '@unchainedshop/mongodb';
2
+ import { mongodb, generateDbFilterById, generateDbObjectId, escapeRegexString, } from '@unchainedshop/mongodb';
3
3
  import { DeliveryProvidersCollection, } from "../db/DeliveryProvidersCollection.js";
4
4
  import { deliverySettings } from "../delivery-settings.js";
5
5
  import pMemoize from 'p-memoize';
@@ -9,8 +9,19 @@ const DELIVERY_PROVIDER_EVENTS = [
9
9
  'DELIVERY_PROVIDER_UPDATE',
10
10
  'DELIVERY_PROVIDER_REMOVE',
11
11
  ];
12
- export const buildFindSelector = ({ includeDeleted = false, ...rest } = {}) => {
13
- return { ...(includeDeleted ? {} : { deleted: null }), ...rest };
12
+ export const buildFindSelector = ({ includeDeleted = false, queryString, deliveryProviderIds, type, } = {}) => {
13
+ const selector = includeDeleted ? {} : { deleted: null };
14
+ if (deliveryProviderIds) {
15
+ selector._id = { $in: deliveryProviderIds };
16
+ }
17
+ if (type) {
18
+ selector.type = type;
19
+ }
20
+ if (queryString) {
21
+ const regex = new RegExp(escapeRegexString(queryString), 'i');
22
+ selector.$or = [{ _id: regex }, { adapterKey: regex }];
23
+ }
24
+ return selector;
14
25
  };
15
26
  const allProvidersCache = new ExpiryMap(process.env.NODE_ENV === 'production' ? 60000 : 1);
16
27
  export const configureDeliveryModule = async ({ db, options: deliveryOptions = {}, }) => {
@@ -18,14 +29,14 @@ export const configureDeliveryModule = async ({ db, options: deliveryOptions = {
18
29
  deliverySettings.configureSettings(deliveryOptions);
19
30
  const DeliveryProviders = await DeliveryProvidersCollection(db);
20
31
  return {
21
- count: async (query) => {
32
+ count: async (query = {}) => {
22
33
  const providerCount = await DeliveryProviders.countDocuments(buildFindSelector(query));
23
34
  return providerCount;
24
35
  },
25
36
  findProvider: async ({ deliveryProviderId, ...query }, options) => {
26
37
  return DeliveryProviders.findOne(deliveryProviderId ? generateDbFilterById(deliveryProviderId) : query, options);
27
38
  },
28
- findProviders: async (query, options = { sort: { created: 1 } }) => {
39
+ findProviders: async (query = {}, options = { sort: { created: 1 } }) => {
29
40
  const providers = DeliveryProviders.find(buildFindSelector(query), options);
30
41
  return providers.toArray();
31
42
  },
package/package.json CHANGED
@@ -1,9 +1,11 @@
1
1
  {
2
2
  "name": "@unchainedshop/core-delivery",
3
- "version": "4.4.0",
3
+ "description": "Delivery provider management module for the Unchained Engine",
4
+ "version": "4.6.0",
4
5
  "main": "lib/delivery-index.js",
5
6
  "types": "lib/delivery-index.d.ts",
6
7
  "type": "module",
8
+ "sideEffects": false,
7
9
  "scripts": {
8
10
  "clean": "tsc -b --clean",
9
11
  "build": "tsc -b",
@@ -33,10 +35,10 @@
33
35
  },
34
36
  "homepage": "https://github.com/unchainedshop/unchained#readme",
35
37
  "dependencies": {
36
- "@unchainedshop/events": "^4.4.0",
37
- "@unchainedshop/logger": "^4.4.0",
38
- "@unchainedshop/mongodb": "^4.4.0",
39
- "@unchainedshop/utils": "^4.4.0",
38
+ "@unchainedshop/events": "^4.6.0",
39
+ "@unchainedshop/logger": "^4.6.0",
40
+ "@unchainedshop/mongodb": "^4.6.0",
41
+ "@unchainedshop/utils": "^4.6.0",
40
42
  "expiry-map": "^2.0.0",
41
43
  "p-memoize": "^8.0.0"
42
44
  },