@unchainedshop/core 4.8.0 → 4.8.2
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/lib/bulk-exporter/createBulkExporter.d.ts +2 -2
- package/lib/bulk-exporter/createBulkExporter.js +2 -2
- package/lib/bulk-exporter/handlers/exportAssortmentsHandler.d.ts +19 -19
- package/lib/bulk-exporter/handlers/exportAssortmentsHandler.js +9 -9
- package/lib/bulk-exporter/handlers/exportFiltersHandler.d.ts +11 -11
- package/lib/bulk-exporter/handlers/exportFiltersHandler.js +5 -5
- package/lib/bulk-exporter/handlers/exportProductsHandler.d.ts +19 -19
- package/lib/bulk-exporter/handlers/exportProductsHandler.js +9 -9
- package/lib/bulk-exporter/handlers/exportUsersHandler.d.ts +17 -17
- package/lib/bulk-exporter/handlers/exportUsersHandler.js +8 -8
- package/lib/bulk-importer/createBulkImporter.d.ts +2 -2
- package/lib/bulk-importer/createBulkImporter.js +7 -2
- package/lib/bulk-importer/handlers/assortment/create.d.ts +87 -87
- package/lib/bulk-importer/handlers/assortment/create.js +13 -15
- package/lib/bulk-importer/handlers/assortment/remove.d.ts +5 -5
- package/lib/bulk-importer/handlers/assortment/remove.js +1 -1
- package/lib/bulk-importer/handlers/assortment/update.d.ts +87 -87
- package/lib/bulk-importer/handlers/assortment/update.js +17 -21
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentChildren.d.ts +7 -7
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentChildren.js +5 -5
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentFilters.d.ts +7 -7
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentFilters.js +5 -5
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentProducts.d.ts +7 -7
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentProducts.js +5 -5
- package/lib/bulk-importer/handlers/assortment/upsertMedia.d.ts +14 -14
- package/lib/bulk-importer/handlers/assortment/upsertMedia.js +8 -10
- package/lib/bulk-importer/handlers/filter/create.d.ts +19 -19
- package/lib/bulk-importer/handlers/filter/create.js +8 -10
- package/lib/bulk-importer/handlers/filter/remove.d.ts +3 -3
- package/lib/bulk-importer/handlers/filter/remove.js +1 -1
- package/lib/bulk-importer/handlers/filter/update.d.ts +19 -19
- package/lib/bulk-importer/handlers/filter/update.js +8 -10
- package/lib/bulk-importer/handlers/product/create.d.ts +175 -175
- package/lib/bulk-importer/handlers/product/create.js +38 -47
- package/lib/bulk-importer/handlers/product/remove.d.ts +5 -5
- package/lib/bulk-importer/handlers/product/remove.js +1 -1
- package/lib/bulk-importer/handlers/product/update.d.ts +175 -175
- package/lib/bulk-importer/handlers/product/update.js +40 -52
- package/lib/bulk-importer/handlers/product/upsertMedia.d.ts +14 -14
- package/lib/bulk-importer/handlers/product/upsertMedia.js +8 -10
- package/lib/bulk-importer/handlers/product/upsertVariations.d.ts +13 -13
- package/lib/bulk-importer/handlers/product/upsertVariations.js +10 -14
- package/lib/bulk-importer/upsertAsset.d.ts +7 -7
- package/lib/bulk-importer/upsertAsset.js +4 -4
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import exportProductsHandler from './handlers/exportProductsHandler.ts';
|
|
2
2
|
import exportAssortmentsHandler from './handlers/exportAssortmentsHandler.ts';
|
|
3
3
|
import exportFiltersHandler from './handlers/exportFiltersHandler.ts';
|
|
4
|
-
import { z } from 'zod';
|
|
4
|
+
import { z } from 'zod/v4-mini';
|
|
5
5
|
import type { CSVFileResult } from './handlers/generateCSVFileAndUrl.ts';
|
|
6
6
|
export declare const EXPORTS_DIRECTORY = "exports";
|
|
7
7
|
export type ExportFiles = Record<string, CSVFileResult | null>;
|
|
@@ -11,7 +11,7 @@ export interface BulkExportOperationResult {
|
|
|
11
11
|
files: ExportFiles;
|
|
12
12
|
}
|
|
13
13
|
export interface BulkExportHandler<T = unknown> {
|
|
14
|
-
payloadSchema?: z.
|
|
14
|
+
payloadSchema?: z.ZodMiniObject;
|
|
15
15
|
(params: Record<string, unknown>, locales: string[], unchainedAPI: T): Promise<ExportFiles>;
|
|
16
16
|
}
|
|
17
17
|
export interface BulkExporterOptions {
|
|
@@ -2,7 +2,7 @@ import exportProductsHandler from "./handlers/exportProductsHandler.js";
|
|
|
2
2
|
import exportAssortmentsHandler from "./handlers/exportAssortmentsHandler.js";
|
|
3
3
|
import exportFiltersHandler from "./handlers/exportFiltersHandler.js";
|
|
4
4
|
import { createLogger } from '@unchainedshop/logger';
|
|
5
|
-
import { z } from 'zod';
|
|
5
|
+
import { z } from 'zod/v4-mini';
|
|
6
6
|
import exportUsersHandler from "./handlers/exportUsersHandler.js";
|
|
7
7
|
const logger = createLogger('unchained:bulk-export');
|
|
8
8
|
export const EXPORTS_DIRECTORY = 'exports';
|
|
@@ -30,7 +30,7 @@ export default function createBulkExporterFactory(bulkExporterOptions) {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
catch (e) {
|
|
33
|
-
throw new Error(`${type}: ${e.message}
|
|
33
|
+
throw new Error(`${type}: ${e.message}`, { cause: e });
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
execute: async (payload, locales, unchainedApi) => {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { UnchainedCore } from '../../core-index.ts';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
export declare const AssortmentExportPayloadSchema: z.
|
|
4
|
-
exportAssortments: z.
|
|
5
|
-
exportLinks: z.
|
|
6
|
-
exportProducts: z.
|
|
7
|
-
exportFilters: z.
|
|
8
|
-
queryString: z.
|
|
9
|
-
includeInactive: z.
|
|
10
|
-
includeLeaves: z.
|
|
11
|
-
tags: z.
|
|
2
|
+
import { z } from 'zod/v4-mini';
|
|
3
|
+
export declare const AssortmentExportPayloadSchema: z.ZodMiniObject<{
|
|
4
|
+
exportAssortments: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
5
|
+
exportLinks: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
6
|
+
exportProducts: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
7
|
+
exportFilters: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
8
|
+
queryString: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
9
|
+
includeInactive: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
10
|
+
includeLeaves: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
11
|
+
tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
12
12
|
}, z.core.$strip>;
|
|
13
13
|
export interface AssortmentExportParams {
|
|
14
14
|
exportAssortments?: boolean;
|
|
@@ -24,15 +24,15 @@ declare const exportAssortmentsHandler: {
|
|
|
24
24
|
products: import("./generateCSVFileAndUrl.ts").CSVFileResult | null;
|
|
25
25
|
children: import("./generateCSVFileAndUrl.ts").CSVFileResult | null;
|
|
26
26
|
}>;
|
|
27
|
-
payloadSchema: z.
|
|
28
|
-
exportAssortments: z.
|
|
29
|
-
exportLinks: z.
|
|
30
|
-
exportProducts: z.
|
|
31
|
-
exportFilters: z.
|
|
32
|
-
queryString: z.
|
|
33
|
-
includeInactive: z.
|
|
34
|
-
includeLeaves: z.
|
|
35
|
-
tags: z.
|
|
27
|
+
payloadSchema: z.ZodMiniObject<{
|
|
28
|
+
exportAssortments: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
29
|
+
exportLinks: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
30
|
+
exportProducts: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
31
|
+
exportFilters: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
32
|
+
queryString: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
33
|
+
includeInactive: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
34
|
+
includeLeaves: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
35
|
+
tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
36
36
|
}, z.core.$strip>;
|
|
37
37
|
};
|
|
38
38
|
export default exportAssortmentsHandler;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import generateCSVFileAndURL from "./generateCSVFileAndUrl.js";
|
|
2
|
-
import { z } from 'zod';
|
|
2
|
+
import { z } from 'zod/v4-mini';
|
|
3
3
|
import { EXPORTS_DIRECTORY } from "../createBulkExporter.js";
|
|
4
4
|
export const AssortmentExportPayloadSchema = z.object({
|
|
5
|
-
exportAssortments: z.
|
|
6
|
-
exportLinks: z.
|
|
7
|
-
exportProducts: z.
|
|
8
|
-
exportFilters: z.
|
|
9
|
-
queryString: z.
|
|
10
|
-
includeInactive: z.
|
|
11
|
-
includeLeaves: z.
|
|
12
|
-
tags: z.array(z.string())
|
|
5
|
+
exportAssortments: z.optional(z.boolean()),
|
|
6
|
+
exportLinks: z.optional(z.boolean()),
|
|
7
|
+
exportProducts: z.optional(z.boolean()),
|
|
8
|
+
exportFilters: z.optional(z.boolean()),
|
|
9
|
+
queryString: z.optional(z.string()),
|
|
10
|
+
includeInactive: z.optional(z.boolean()),
|
|
11
|
+
includeLeaves: z.optional(z.boolean()),
|
|
12
|
+
tags: z.optional(z.array(z.string())),
|
|
13
13
|
});
|
|
14
14
|
const ASSORTMENT_CSV_SCHEMA = {
|
|
15
15
|
base: ['_id', 'isActive', 'isBase', 'isRoot', 'sequence', 'tags'],
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { UnchainedCore } from '../../core-index.ts';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
export declare const FilterExportPayloadSchema: z.
|
|
4
|
-
exportFilters: z.
|
|
5
|
-
exportFilterOptions: z.
|
|
6
|
-
queryString: z.
|
|
7
|
-
includeInactive: z.
|
|
2
|
+
import { z } from 'zod/v4-mini';
|
|
3
|
+
export declare const FilterExportPayloadSchema: z.ZodMiniObject<{
|
|
4
|
+
exportFilters: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
5
|
+
exportFilterOptions: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
6
|
+
queryString: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
7
|
+
includeInactive: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
8
8
|
}, z.core.$strip>;
|
|
9
9
|
export interface FilterExportParams {
|
|
10
10
|
exportFilters?: boolean;
|
|
@@ -16,11 +16,11 @@ declare const exportFiltersHandler: {
|
|
|
16
16
|
filters: import("./generateCSVFileAndUrl.ts").CSVFileResult | null;
|
|
17
17
|
filterOptions: import("./generateCSVFileAndUrl.ts").CSVFileResult | null;
|
|
18
18
|
}>;
|
|
19
|
-
payloadSchema: z.
|
|
20
|
-
exportFilters: z.
|
|
21
|
-
exportFilterOptions: z.
|
|
22
|
-
queryString: z.
|
|
23
|
-
includeInactive: z.
|
|
19
|
+
payloadSchema: z.ZodMiniObject<{
|
|
20
|
+
exportFilters: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
21
|
+
exportFilterOptions: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
22
|
+
queryString: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
23
|
+
includeInactive: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
24
24
|
}, z.core.$strip>;
|
|
25
25
|
};
|
|
26
26
|
export default exportFiltersHandler;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import generateCSVFileAndURL from "./generateCSVFileAndUrl.js";
|
|
2
|
-
import { z } from 'zod';
|
|
2
|
+
import { z } from 'zod/v4-mini';
|
|
3
3
|
import { EXPORTS_DIRECTORY } from "../createBulkExporter.js";
|
|
4
4
|
export const FilterExportPayloadSchema = z.object({
|
|
5
|
-
exportFilters: z.
|
|
6
|
-
exportFilterOptions: z.
|
|
7
|
-
queryString: z.
|
|
8
|
-
includeInactive: z.
|
|
5
|
+
exportFilters: z.optional(z.boolean()),
|
|
6
|
+
exportFilterOptions: z.optional(z.boolean()),
|
|
7
|
+
queryString: z.optional(z.string()),
|
|
8
|
+
includeInactive: z.optional(z.boolean()),
|
|
9
9
|
});
|
|
10
10
|
const FILTER_CSV_SCHEMA = {
|
|
11
11
|
filterFields: ['_id', 'key', 'type', 'isActive'],
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { UnchainedCore } from '../../core-index.ts';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
export declare const ProductExportPayloadSchema: z.
|
|
4
|
-
exportProducts: z.
|
|
5
|
-
exportBundleItems: z.
|
|
6
|
-
exportPrices: z.
|
|
7
|
-
exportVariations: z.
|
|
8
|
-
exportVariationOptions: z.
|
|
9
|
-
queryString: z.
|
|
10
|
-
includeDrafts: z.
|
|
11
|
-
tags: z.
|
|
2
|
+
import { z } from 'zod/v4-mini';
|
|
3
|
+
export declare const ProductExportPayloadSchema: z.ZodMiniObject<{
|
|
4
|
+
exportProducts: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
5
|
+
exportBundleItems: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
6
|
+
exportPrices: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
7
|
+
exportVariations: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
8
|
+
exportVariationOptions: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
9
|
+
queryString: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
10
|
+
includeDrafts: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
11
|
+
tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
12
12
|
}, z.core.$strip>;
|
|
13
13
|
export interface ProductExportParams {
|
|
14
14
|
exportProducts?: boolean;
|
|
@@ -26,15 +26,15 @@ declare const exportProductsHandler: {
|
|
|
26
26
|
variations: import("./generateCSVFileAndUrl.ts").CSVFileResult | null;
|
|
27
27
|
variationOptions: import("./generateCSVFileAndUrl.ts").CSVFileResult | null;
|
|
28
28
|
}>;
|
|
29
|
-
payloadSchema: z.
|
|
30
|
-
exportProducts: z.
|
|
31
|
-
exportBundleItems: z.
|
|
32
|
-
exportPrices: z.
|
|
33
|
-
exportVariations: z.
|
|
34
|
-
exportVariationOptions: z.
|
|
35
|
-
queryString: z.
|
|
36
|
-
includeDrafts: z.
|
|
37
|
-
tags: z.
|
|
29
|
+
payloadSchema: z.ZodMiniObject<{
|
|
30
|
+
exportProducts: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
31
|
+
exportBundleItems: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
32
|
+
exportPrices: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
33
|
+
exportVariations: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
34
|
+
exportVariationOptions: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
35
|
+
queryString: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
36
|
+
includeDrafts: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
37
|
+
tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
38
38
|
}, z.core.$strip>;
|
|
39
39
|
};
|
|
40
40
|
export default exportProductsHandler;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import generateCSVFileAndURL from "./generateCSVFileAndUrl.js";
|
|
2
|
-
import { z } from 'zod';
|
|
2
|
+
import { z } from 'zod/v4-mini';
|
|
3
3
|
import { EXPORTS_DIRECTORY } from "../createBulkExporter.js";
|
|
4
4
|
export const ProductExportPayloadSchema = z.object({
|
|
5
|
-
exportProducts: z.
|
|
6
|
-
exportBundleItems: z.
|
|
7
|
-
exportPrices: z.
|
|
8
|
-
exportVariations: z.
|
|
9
|
-
exportVariationOptions: z.
|
|
10
|
-
queryString: z.
|
|
11
|
-
includeDrafts: z.
|
|
12
|
-
tags: z.array(z.string())
|
|
5
|
+
exportProducts: z.optional(z.boolean()),
|
|
6
|
+
exportBundleItems: z.optional(z.boolean()),
|
|
7
|
+
exportPrices: z.optional(z.boolean()),
|
|
8
|
+
exportVariations: z.optional(z.boolean()),
|
|
9
|
+
exportVariationOptions: z.optional(z.boolean()),
|
|
10
|
+
queryString: z.optional(z.string()),
|
|
11
|
+
includeDrafts: z.optional(z.boolean()),
|
|
12
|
+
tags: z.optional(z.array(z.string())),
|
|
13
13
|
});
|
|
14
14
|
const PRODUCT_CSV_SCHEMA = {
|
|
15
15
|
base: ['_id', 'sku', 'baseUnit', 'sequence', 'status', 'tags', 'updated', 'published', 'type'],
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { UnchainedCore } from '../../core-index.ts';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
export declare const UserExportPayloadSchema: z.
|
|
4
|
-
exportReviews: z.
|
|
5
|
-
exportOrders: z.
|
|
6
|
-
exportBookmarks: z.
|
|
7
|
-
exportEvents: z.
|
|
8
|
-
exportQuotations: z.
|
|
9
|
-
exportEnrollments: z.
|
|
10
|
-
userId: z.
|
|
2
|
+
import { z } from 'zod/v4-mini';
|
|
3
|
+
export declare const UserExportPayloadSchema: z.ZodMiniObject<{
|
|
4
|
+
exportReviews: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
5
|
+
exportOrders: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
6
|
+
exportBookmarks: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
7
|
+
exportEvents: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
8
|
+
exportQuotations: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
9
|
+
exportEnrollments: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
10
|
+
userId: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
11
11
|
}, z.core.$strip>;
|
|
12
12
|
export interface UserExportParams {
|
|
13
13
|
exportReviews?: boolean;
|
|
@@ -27,14 +27,14 @@ declare const exportUsersHandler: {
|
|
|
27
27
|
quotations: import("./generateCSVFileAndUrl.ts").CSVFileResult | null;
|
|
28
28
|
enrollments: import("./generateCSVFileAndUrl.ts").CSVFileResult | null;
|
|
29
29
|
}>;
|
|
30
|
-
payloadSchema: z.
|
|
31
|
-
exportReviews: z.
|
|
32
|
-
exportOrders: z.
|
|
33
|
-
exportBookmarks: z.
|
|
34
|
-
exportEvents: z.
|
|
35
|
-
exportQuotations: z.
|
|
36
|
-
exportEnrollments: z.
|
|
37
|
-
userId: z.
|
|
30
|
+
payloadSchema: z.ZodMiniObject<{
|
|
31
|
+
exportReviews: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
32
|
+
exportOrders: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
33
|
+
exportBookmarks: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
34
|
+
exportEvents: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
35
|
+
exportQuotations: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
36
|
+
exportEnrollments: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
37
|
+
userId: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
38
38
|
}, z.core.$strip>;
|
|
39
39
|
};
|
|
40
40
|
export default exportUsersHandler;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import generateCSVFileAndURL from "./generateCSVFileAndUrl.js";
|
|
2
|
-
import { z } from 'zod';
|
|
2
|
+
import { z } from 'zod/v4-mini';
|
|
3
3
|
import { EXPORTS_DIRECTORY } from "../createBulkExporter.js";
|
|
4
4
|
export const UserExportPayloadSchema = z.object({
|
|
5
|
-
exportReviews: z.
|
|
6
|
-
exportOrders: z.
|
|
7
|
-
exportBookmarks: z.
|
|
8
|
-
exportEvents: z.
|
|
9
|
-
exportQuotations: z.
|
|
10
|
-
exportEnrollments: z.
|
|
11
|
-
userId: z.
|
|
5
|
+
exportReviews: z.optional(z.boolean()),
|
|
6
|
+
exportOrders: z.optional(z.boolean()),
|
|
7
|
+
exportBookmarks: z.optional(z.boolean()),
|
|
8
|
+
exportEvents: z.optional(z.boolean()),
|
|
9
|
+
exportQuotations: z.optional(z.boolean()),
|
|
10
|
+
exportEnrollments: z.optional(z.boolean()),
|
|
11
|
+
userId: z.optional(z.string()),
|
|
12
12
|
});
|
|
13
13
|
const USER_CSV_SCHEMA = {
|
|
14
14
|
userFields: [
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
1
|
+
import { z } from 'zod/v4-mini';
|
|
2
2
|
import { Readable } from 'node:stream';
|
|
3
3
|
import { mongodb } from '@unchainedshop/mongodb';
|
|
4
4
|
import * as AssortmentHandlers from './handlers/assortment/index.ts';
|
|
@@ -12,7 +12,7 @@ export interface BulkImportOperationResult {
|
|
|
12
12
|
success: boolean;
|
|
13
13
|
}
|
|
14
14
|
export type BulkImportOperation<T> = {
|
|
15
|
-
payloadSchema?: z.
|
|
15
|
+
payloadSchema?: z.ZodMiniObject;
|
|
16
16
|
} & ((payload: any, options: {
|
|
17
17
|
bulk: (collection: string) => typeof mongodb.BulkOperationBase;
|
|
18
18
|
createShouldUpsertIfIDExists?: boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
1
|
+
import { z } from 'zod/v4-mini';
|
|
2
2
|
import JSONStream from 'minipass-json-stream';
|
|
3
3
|
import { PassThrough, Readable } from 'node:stream';
|
|
4
4
|
import { pipeline } from 'node:stream/promises';
|
|
@@ -59,7 +59,12 @@ export default function createBulkImporterFactory(db, bulkImporterOptions) {
|
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
catch (e) {
|
|
62
|
-
|
|
62
|
+
const prefix = `🤧 ${entity}.${operation}.${event.payload?._id || '*'}`;
|
|
63
|
+
if (e.issues) {
|
|
64
|
+
const summary = e.issues.map((issue) => issue.message).join(', ');
|
|
65
|
+
throw new Error(`${prefix} (${summary})`, { cause: e });
|
|
66
|
+
}
|
|
67
|
+
throw new Error(`${prefix} (${e.message})`, { cause: e });
|
|
63
68
|
}
|
|
64
69
|
},
|
|
65
70
|
prepare: async (event, unchainedAPI) => {
|
|
@@ -1,56 +1,56 @@
|
|
|
1
1
|
import type { Modules } from '../../../modules.ts';
|
|
2
2
|
import type { Services } from '../../../services/index.ts';
|
|
3
|
-
import { z } from 'zod';
|
|
4
|
-
export declare const AssortmentCreatePayloadSchema: z.
|
|
5
|
-
_id: z.
|
|
6
|
-
specification: z.
|
|
7
|
-
isActive: z.
|
|
8
|
-
isRoot: z.
|
|
9
|
-
sequence: z.
|
|
10
|
-
tags: z.
|
|
11
|
-
meta: z.
|
|
12
|
-
content: z.
|
|
13
|
-
title: z.
|
|
14
|
-
subtitle: z.
|
|
15
|
-
slug: z.
|
|
3
|
+
import { z } from 'zod/v4-mini';
|
|
4
|
+
export declare const AssortmentCreatePayloadSchema: z.ZodMiniObject<{
|
|
5
|
+
_id: z.ZodMiniString<string>;
|
|
6
|
+
specification: z.ZodMiniObject<{
|
|
7
|
+
isActive: z.ZodMiniBoolean<boolean>;
|
|
8
|
+
isRoot: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
9
|
+
sequence: z.ZodMiniNumber<number>;
|
|
10
|
+
tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
11
|
+
meta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>>;
|
|
12
|
+
content: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
13
|
+
title: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
14
|
+
subtitle: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
15
|
+
slug: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
16
16
|
}, z.core.$strip>>>;
|
|
17
17
|
}, z.core.$strip>;
|
|
18
|
-
media: z.
|
|
19
|
-
_id: z.
|
|
20
|
-
asset: z.
|
|
21
|
-
_id: z.
|
|
22
|
-
url: z.
|
|
23
|
-
meta: z.
|
|
24
|
-
fileName: z.
|
|
25
|
-
headers: z.
|
|
18
|
+
media: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
|
|
19
|
+
_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
20
|
+
asset: z.ZodMiniObject<{
|
|
21
|
+
_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
22
|
+
url: z.ZodMiniString<string>;
|
|
23
|
+
meta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>>;
|
|
24
|
+
fileName: z.ZodMiniString<string>;
|
|
25
|
+
headers: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniAny>>;
|
|
26
26
|
}, z.core.$strip>;
|
|
27
|
-
content: z.
|
|
28
|
-
title: z.
|
|
29
|
-
subtitle: z.
|
|
27
|
+
content: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
28
|
+
title: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
29
|
+
subtitle: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
30
30
|
}, z.core.$strip>>>;
|
|
31
|
-
tags: z.
|
|
32
|
-
sortKey: z.
|
|
31
|
+
tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
32
|
+
sortKey: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
33
33
|
}, z.core.$strip>>>;
|
|
34
|
-
products: z.
|
|
35
|
-
_id: z.
|
|
36
|
-
productId: z.
|
|
37
|
-
tags: z.
|
|
38
|
-
sortKey: z.
|
|
39
|
-
meta: z.
|
|
34
|
+
products: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
|
|
35
|
+
_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
36
|
+
productId: z.ZodMiniString<string>;
|
|
37
|
+
tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
38
|
+
sortKey: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
39
|
+
meta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>>;
|
|
40
40
|
}, z.core.$strip>>>;
|
|
41
|
-
children: z.
|
|
42
|
-
_id: z.
|
|
43
|
-
assortmentId: z.
|
|
44
|
-
tags: z.
|
|
45
|
-
sortKey: z.
|
|
46
|
-
meta: z.
|
|
41
|
+
children: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
|
|
42
|
+
_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
43
|
+
assortmentId: z.ZodMiniString<string>;
|
|
44
|
+
tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
45
|
+
sortKey: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
46
|
+
meta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>>;
|
|
47
47
|
}, z.core.$strip>>>;
|
|
48
|
-
filters: z.
|
|
49
|
-
_id: z.
|
|
50
|
-
filterId: z.
|
|
51
|
-
tags: z.
|
|
52
|
-
sortKey: z.
|
|
53
|
-
meta: z.
|
|
48
|
+
filters: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
|
|
49
|
+
_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
50
|
+
filterId: z.ZodMiniString<string>;
|
|
51
|
+
tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
52
|
+
sortKey: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
53
|
+
meta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>>;
|
|
54
54
|
}, z.core.$strip>>>;
|
|
55
55
|
}, z.core.$strip>;
|
|
56
56
|
declare function createAssortment(payload: z.infer<typeof AssortmentCreatePayloadSchema>, { logger, createShouldUpsertIfIDExists }: {
|
|
@@ -66,56 +66,56 @@ declare function createAssortment(payload: z.infer<typeof AssortmentCreatePayloa
|
|
|
66
66
|
success: boolean;
|
|
67
67
|
}>;
|
|
68
68
|
declare namespace createAssortment {
|
|
69
|
-
var payloadSchema: z.
|
|
70
|
-
_id: z.
|
|
71
|
-
specification: z.
|
|
72
|
-
isActive: z.
|
|
73
|
-
isRoot: z.
|
|
74
|
-
sequence: z.
|
|
75
|
-
tags: z.
|
|
76
|
-
meta: z.
|
|
77
|
-
content: z.
|
|
78
|
-
title: z.
|
|
79
|
-
subtitle: z.
|
|
80
|
-
slug: z.
|
|
69
|
+
var payloadSchema: z.ZodMiniObject<{
|
|
70
|
+
_id: z.ZodMiniString<string>;
|
|
71
|
+
specification: z.ZodMiniObject<{
|
|
72
|
+
isActive: z.ZodMiniBoolean<boolean>;
|
|
73
|
+
isRoot: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
74
|
+
sequence: z.ZodMiniNumber<number>;
|
|
75
|
+
tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
76
|
+
meta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>>;
|
|
77
|
+
content: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
78
|
+
title: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
79
|
+
subtitle: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
80
|
+
slug: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
81
81
|
}, z.core.$strip>>>;
|
|
82
82
|
}, z.core.$strip>;
|
|
83
|
-
media: z.
|
|
84
|
-
_id: z.
|
|
85
|
-
asset: z.
|
|
86
|
-
_id: z.
|
|
87
|
-
url: z.
|
|
88
|
-
meta: z.
|
|
89
|
-
fileName: z.
|
|
90
|
-
headers: z.
|
|
83
|
+
media: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
|
|
84
|
+
_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
85
|
+
asset: z.ZodMiniObject<{
|
|
86
|
+
_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
87
|
+
url: z.ZodMiniString<string>;
|
|
88
|
+
meta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>>;
|
|
89
|
+
fileName: z.ZodMiniString<string>;
|
|
90
|
+
headers: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniAny>>;
|
|
91
91
|
}, z.core.$strip>;
|
|
92
|
-
content: z.
|
|
93
|
-
title: z.
|
|
94
|
-
subtitle: z.
|
|
92
|
+
content: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
93
|
+
title: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
94
|
+
subtitle: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
95
95
|
}, z.core.$strip>>>;
|
|
96
|
-
tags: z.
|
|
97
|
-
sortKey: z.
|
|
96
|
+
tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
97
|
+
sortKey: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
98
98
|
}, z.core.$strip>>>;
|
|
99
|
-
products: z.
|
|
100
|
-
_id: z.
|
|
101
|
-
productId: z.
|
|
102
|
-
tags: z.
|
|
103
|
-
sortKey: z.
|
|
104
|
-
meta: z.
|
|
99
|
+
products: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
|
|
100
|
+
_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
101
|
+
productId: z.ZodMiniString<string>;
|
|
102
|
+
tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
103
|
+
sortKey: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
104
|
+
meta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>>;
|
|
105
105
|
}, z.core.$strip>>>;
|
|
106
|
-
children: z.
|
|
107
|
-
_id: z.
|
|
108
|
-
assortmentId: z.
|
|
109
|
-
tags: z.
|
|
110
|
-
sortKey: z.
|
|
111
|
-
meta: z.
|
|
106
|
+
children: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
|
|
107
|
+
_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
108
|
+
assortmentId: z.ZodMiniString<string>;
|
|
109
|
+
tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
110
|
+
sortKey: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
111
|
+
meta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>>;
|
|
112
112
|
}, z.core.$strip>>>;
|
|
113
|
-
filters: z.
|
|
114
|
-
_id: z.
|
|
115
|
-
filterId: z.
|
|
116
|
-
tags: z.
|
|
117
|
-
sortKey: z.
|
|
118
|
-
meta: z.
|
|
113
|
+
filters: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
|
|
114
|
+
_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
115
|
+
filterId: z.ZodMiniString<string>;
|
|
116
|
+
tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
117
|
+
sortKey: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
118
|
+
meta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>>;
|
|
119
119
|
}, z.core.$strip>>>;
|
|
120
120
|
}, z.core.$strip>;
|
|
121
121
|
}
|
|
@@ -3,27 +3,25 @@ import upsertAssortmentChildren, { AssortmentLinkSchema } from "./upsertAssortme
|
|
|
3
3
|
import upsertAssortmentFilters, { AssortmentFilterSchema } from "./upsertAssortmentFilters.js";
|
|
4
4
|
import upsertAssortmentProducts, { AssortmentProductSchema } from "./upsertAssortmentProducts.js";
|
|
5
5
|
import upsertMedia, { MediaSchema } from "./upsertMedia.js";
|
|
6
|
-
import { z } from 'zod';
|
|
6
|
+
import { z } from 'zod/v4-mini';
|
|
7
7
|
export const AssortmentCreatePayloadSchema = z.object({
|
|
8
8
|
_id: z.string(),
|
|
9
9
|
specification: z.object({
|
|
10
10
|
isActive: z.boolean(),
|
|
11
|
-
isRoot: z.
|
|
11
|
+
isRoot: z.optional(z.boolean()),
|
|
12
12
|
sequence: z.number(),
|
|
13
|
-
tags: z.array(z.string())
|
|
14
|
-
meta: z.record(z.any(), z.any())
|
|
15
|
-
content: z
|
|
16
|
-
.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}))
|
|
21
|
-
.optional(),
|
|
13
|
+
tags: z.optional(z.array(z.string())),
|
|
14
|
+
meta: z.optional(z.record(z.any(), z.any())),
|
|
15
|
+
content: z.optional(z.record(z.string(), z.object({
|
|
16
|
+
title: z.optional(z.string()),
|
|
17
|
+
subtitle: z.optional(z.string()),
|
|
18
|
+
slug: z.optional(z.string()),
|
|
19
|
+
}))),
|
|
22
20
|
}),
|
|
23
|
-
media: z.array(MediaSchema)
|
|
24
|
-
products: z.array(AssortmentProductSchema)
|
|
25
|
-
children: z.array(AssortmentLinkSchema)
|
|
26
|
-
filters: z.array(AssortmentFilterSchema)
|
|
21
|
+
media: z.optional(z.array(MediaSchema)),
|
|
22
|
+
products: z.optional(z.array(AssortmentProductSchema)),
|
|
23
|
+
children: z.optional(z.array(AssortmentLinkSchema)),
|
|
24
|
+
filters: z.optional(z.array(AssortmentFilterSchema)),
|
|
27
25
|
});
|
|
28
26
|
export default async function createAssortment(payload, { logger, createShouldUpsertIfIDExists }, unchainedAPI) {
|
|
29
27
|
const { modules } = unchainedAPI;
|