@endora-commerce/contracts 0.100.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.
- package/LICENSE +21 -0
- package/README.md +34 -0
- package/dist/actor.d.ts +79 -0
- package/dist/actor.d.ts.map +1 -0
- package/dist/actor.js +41 -0
- package/dist/actor.js.map +1 -0
- package/dist/addresses.d.ts +134 -0
- package/dist/addresses.d.ts.map +1 -0
- package/dist/addresses.js +16 -0
- package/dist/addresses.js.map +1 -0
- package/dist/admin-actions.d.ts +367 -0
- package/dist/admin-actions.d.ts.map +1 -0
- package/dist/admin-actions.js +287 -0
- package/dist/admin-actions.js.map +1 -0
- package/dist/admin-contributions.d.ts +518 -0
- package/dist/admin-contributions.d.ts.map +1 -0
- package/dist/admin-contributions.js +495 -0
- package/dist/admin-contributions.js.map +1 -0
- package/dist/admin-i18n.d.ts +135 -0
- package/dist/admin-i18n.d.ts.map +1 -0
- package/dist/admin-i18n.js +72 -0
- package/dist/admin-i18n.js.map +1 -0
- package/dist/admin-notifications.d.ts +55 -0
- package/dist/admin-notifications.d.ts.map +1 -0
- package/dist/admin-notifications.js +16 -0
- package/dist/admin-notifications.js.map +1 -0
- package/dist/admin-roles.d.ts +125 -0
- package/dist/admin-roles.d.ts.map +1 -0
- package/dist/admin-roles.js +2 -0
- package/dist/admin-roles.js.map +1 -0
- package/dist/admin-users.d.ts +178 -0
- package/dist/admin-users.d.ts.map +1 -0
- package/dist/admin-users.js +14 -0
- package/dist/admin-users.js.map +1 -0
- package/dist/admin.d.ts +243 -0
- package/dist/admin.d.ts.map +1 -0
- package/dist/admin.js +246 -0
- package/dist/admin.js.map +1 -0
- package/dist/analytics.d.ts +123 -0
- package/dist/analytics.d.ts.map +1 -0
- package/dist/analytics.js +68 -0
- package/dist/analytics.js.map +1 -0
- package/dist/api-keys.d.ts +97 -0
- package/dist/api-keys.d.ts.map +1 -0
- package/dist/api-keys.js +64 -0
- package/dist/api-keys.js.map +1 -0
- package/dist/assets-library.d.ts +684 -0
- package/dist/assets-library.d.ts.map +1 -0
- package/dist/assets-library.js +181 -0
- package/dist/assets-library.js.map +1 -0
- package/dist/audit-logs.d.ts +141 -0
- package/dist/audit-logs.d.ts.map +1 -0
- package/dist/audit-logs.js +31 -0
- package/dist/audit-logs.js.map +1 -0
- package/dist/auth.d.ts +174 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +27 -0
- package/dist/auth.js.map +1 -0
- package/dist/blog.d.ts +669 -0
- package/dist/blog.d.ts.map +1 -0
- package/dist/blog.js +360 -0
- package/dist/blog.js.map +1 -0
- package/dist/capabilities.d.ts +40 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +38 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/carts.d.ts +1367 -0
- package/dist/carts.d.ts.map +1 -0
- package/dist/carts.js +405 -0
- package/dist/carts.js.map +1 -0
- package/dist/catalog.d.ts +2855 -0
- package/dist/catalog.d.ts.map +1 -0
- package/dist/catalog.js +1543 -0
- package/dist/catalog.js.map +1 -0
- package/dist/cms.d.ts +872 -0
- package/dist/cms.d.ts.map +1 -0
- package/dist/cms.js +468 -0
- package/dist/cms.js.map +1 -0
- package/dist/common.d.ts +82 -0
- package/dist/common.d.ts.map +1 -0
- package/dist/common.js +72 -0
- package/dist/common.js.map +1 -0
- package/dist/comparisons.d.ts +487 -0
- package/dist/comparisons.d.ts.map +1 -0
- package/dist/comparisons.js +221 -0
- package/dist/comparisons.js.map +1 -0
- package/dist/credentials.d.ts +292 -0
- package/dist/credentials.d.ts.map +1 -0
- package/dist/credentials.js +142 -0
- package/dist/credentials.js.map +1 -0
- package/dist/credit-limits.d.ts +111 -0
- package/dist/credit-limits.d.ts.map +1 -0
- package/dist/credit-limits.js +35 -0
- package/dist/credit-limits.js.map +1 -0
- package/dist/currencies.d.ts +127 -0
- package/dist/currencies.d.ts.map +1 -0
- package/dist/currencies.js +20 -0
- package/dist/currencies.js.map +1 -0
- package/dist/custom-fields.d.ts +345 -0
- package/dist/custom-fields.d.ts.map +1 -0
- package/dist/custom-fields.js +185 -0
- package/dist/custom-fields.js.map +1 -0
- package/dist/customer-accounts.d.ts +690 -0
- package/dist/customer-accounts.d.ts.map +1 -0
- package/dist/customer-accounts.js +41 -0
- package/dist/customer-accounts.js.map +1 -0
- package/dist/customers.d.ts +305 -0
- package/dist/customers.d.ts.map +1 -0
- package/dist/customers.js +158 -0
- package/dist/customers.js.map +1 -0
- package/dist/dictionary.d.ts +580 -0
- package/dist/dictionary.d.ts.map +1 -0
- package/dist/dictionary.js +297 -0
- package/dist/dictionary.js.map +1 -0
- package/dist/email-address.d.ts +62 -0
- package/dist/email-address.d.ts.map +1 -0
- package/dist/email-address.js +64 -0
- package/dist/email-address.js.map +1 -0
- package/dist/email.d.ts +175 -0
- package/dist/email.d.ts.map +1 -0
- package/dist/email.js +45 -0
- package/dist/email.js.map +1 -0
- package/dist/envelopes.d.ts +15 -0
- package/dist/envelopes.d.ts.map +1 -0
- package/dist/envelopes.js +16 -0
- package/dist/envelopes.js.map +1 -0
- package/dist/environment-inputs.d.ts +306 -0
- package/dist/environment-inputs.d.ts.map +1 -0
- package/dist/environment-inputs.js +277 -0
- package/dist/environment-inputs.js.map +1 -0
- package/dist/erp-connector.d.ts +52 -0
- package/dist/erp-connector.d.ts.map +1 -0
- package/dist/erp-connector.js +34 -0
- package/dist/erp-connector.js.map +1 -0
- package/dist/errors.d.ts +455 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +532 -0
- package/dist/errors.js.map +1 -0
- package/dist/google-analytics.d.ts +181 -0
- package/dist/google-analytics.d.ts.map +1 -0
- package/dist/google-analytics.js +176 -0
- package/dist/google-analytics.js.map +1 -0
- package/dist/google-tag-manager.d.ts +111 -0
- package/dist/google-tag-manager.d.ts.map +1 -0
- package/dist/google-tag-manager.js +129 -0
- package/dist/google-tag-manager.js.map +1 -0
- package/dist/i18n.d.ts +69 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +59 -0
- package/dist/i18n.js.map +1 -0
- package/dist/import-export.d.ts +63 -0
- package/dist/import-export.d.ts.map +1 -0
- package/dist/import-export.js +37 -0
- package/dist/import-export.js.map +1 -0
- package/dist/index.d.ts +82 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +126 -0
- package/dist/index.js.map +1 -0
- package/dist/inventory.d.ts +673 -0
- package/dist/inventory.d.ts.map +1 -0
- package/dist/inventory.js +412 -0
- package/dist/inventory.js.map +1 -0
- package/dist/invoice-ledger.d.ts +366 -0
- package/dist/invoice-ledger.d.ts.map +1 -0
- package/dist/invoice-ledger.js +114 -0
- package/dist/invoice-ledger.js.map +1 -0
- package/dist/invoices.d.ts +845 -0
- package/dist/invoices.d.ts.map +1 -0
- package/dist/invoices.js +314 -0
- package/dist/invoices.js.map +1 -0
- package/dist/kernel.d.ts +49 -0
- package/dist/kernel.d.ts.map +1 -0
- package/dist/kernel.js +19 -0
- package/dist/kernel.js.map +1 -0
- package/dist/languages.d.ts +122 -0
- package/dist/languages.d.ts.map +1 -0
- package/dist/languages.js +24 -0
- package/dist/languages.js.map +1 -0
- package/dist/linkedin-ads.d.ts +167 -0
- package/dist/linkedin-ads.d.ts.map +1 -0
- package/dist/linkedin-ads.js +156 -0
- package/dist/linkedin-ads.js.map +1 -0
- package/dist/megamenu.d.ts +556 -0
- package/dist/megamenu.d.ts.map +1 -0
- package/dist/megamenu.js +186 -0
- package/dist/megamenu.js.map +1 -0
- package/dist/meta-ads.d.ts +126 -0
- package/dist/meta-ads.d.ts.map +1 -0
- package/dist/meta-ads.js +112 -0
- package/dist/meta-ads.js.map +1 -0
- package/dist/mfa.d.ts +274 -0
- package/dist/mfa.d.ts.map +1 -0
- package/dist/mfa.js +187 -0
- package/dist/mfa.js.map +1 -0
- package/dist/modules.d.ts +1706 -0
- package/dist/modules.d.ts.map +1 -0
- package/dist/modules.js +1390 -0
- package/dist/modules.js.map +1 -0
- package/dist/newsletter.d.ts +611 -0
- package/dist/newsletter.d.ts.map +1 -0
- package/dist/newsletter.js +345 -0
- package/dist/newsletter.js.map +1 -0
- package/dist/orders.d.ts +1175 -0
- package/dist/orders.d.ts.map +1 -0
- package/dist/orders.js +630 -0
- package/dist/orders.js.map +1 -0
- package/dist/organizations.d.ts +938 -0
- package/dist/organizations.d.ts.map +1 -0
- package/dist/organizations.js +418 -0
- package/dist/organizations.js.map +1 -0
- package/dist/pagination.d.ts +21 -0
- package/dist/pagination.d.ts.map +1 -0
- package/dist/pagination.js +22 -0
- package/dist/pagination.js.map +1 -0
- package/dist/payment-methods.d.ts +472 -0
- package/dist/payment-methods.d.ts.map +1 -0
- package/dist/payment-methods.js +175 -0
- package/dist/payment-methods.js.map +1 -0
- package/dist/payment-return-url.d.ts +53 -0
- package/dist/payment-return-url.d.ts.map +1 -0
- package/dist/payment-return-url.js +35 -0
- package/dist/payment-return-url.js.map +1 -0
- package/dist/payments.d.ts +386 -0
- package/dist/payments.d.ts.map +1 -0
- package/dist/payments.js +84 -0
- package/dist/payments.js.map +1 -0
- package/dist/pim-connector.d.ts +60 -0
- package/dist/pim-connector.d.ts.map +1 -0
- package/dist/pim-connector.js +43 -0
- package/dist/pim-connector.js.map +1 -0
- package/dist/pim-field-path.d.ts +6 -0
- package/dist/pim-field-path.d.ts.map +1 -0
- package/dist/pim-field-path.js +101 -0
- package/dist/pim-field-path.js.map +1 -0
- package/dist/platform-language.d.ts +20 -0
- package/dist/platform-language.d.ts.map +1 -0
- package/dist/platform-language.js +22 -0
- package/dist/platform-language.js.map +1 -0
- package/dist/price-lists.d.ts +685 -0
- package/dist/price-lists.d.ts.map +1 -0
- package/dist/price-lists.js +330 -0
- package/dist/price-lists.js.map +1 -0
- package/dist/product-feeds.d.ts +2837 -0
- package/dist/product-feeds.d.ts.map +1 -0
- package/dist/product-feeds.js +1504 -0
- package/dist/product-feeds.js.map +1 -0
- package/dist/product-scope-overrides.d.ts +134 -0
- package/dist/product-scope-overrides.d.ts.map +1 -0
- package/dist/product-scope-overrides.js +82 -0
- package/dist/product-scope-overrides.js.map +1 -0
- package/dist/product-value-resolver.d.ts +88 -0
- package/dist/product-value-resolver.d.ts.map +1 -0
- package/dist/product-value-resolver.js +128 -0
- package/dist/product-value-resolver.js.map +1 -0
- package/dist/promotions.d.ts +678 -0
- package/dist/promotions.d.ts.map +1 -0
- package/dist/promotions.js +479 -0
- package/dist/promotions.js.map +1 -0
- package/dist/prompt-actions.d.ts +582 -0
- package/dist/prompt-actions.d.ts.map +1 -0
- package/dist/prompt-actions.js +221 -0
- package/dist/prompt-actions.js.map +1 -0
- package/dist/pwa.d.ts +293 -0
- package/dist/pwa.d.ts.map +1 -0
- package/dist/pwa.js +204 -0
- package/dist/pwa.js.map +1 -0
- package/dist/quick-order.d.ts +340 -0
- package/dist/quick-order.d.ts.map +1 -0
- package/dist/quick-order.js +177 -0
- package/dist/quick-order.js.map +1 -0
- package/dist/quote-requests.d.ts +538 -0
- package/dist/quote-requests.d.ts.map +1 -0
- package/dist/quote-requests.js +308 -0
- package/dist/quote-requests.js.map +1 -0
- package/dist/returns.d.ts +774 -0
- package/dist/returns.d.ts.map +1 -0
- package/dist/returns.js +389 -0
- package/dist/returns.js.map +1 -0
- package/dist/sales-channels.d.ts +392 -0
- package/dist/sales-channels.d.ts.map +1 -0
- package/dist/sales-channels.js +285 -0
- package/dist/sales-channels.js.map +1 -0
- package/dist/scope-notice.d.ts +60 -0
- package/dist/scope-notice.d.ts.map +1 -0
- package/dist/scope-notice.js +56 -0
- package/dist/scope-notice.js.map +1 -0
- package/dist/search.d.ts +321 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +160 -0
- package/dist/search.js.map +1 -0
- package/dist/seo.d.ts +113 -0
- package/dist/seo.d.ts.map +1 -0
- package/dist/seo.js +63 -0
- package/dist/seo.js.map +1 -0
- package/dist/settings.d.ts +453 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +337 -0
- package/dist/settings.js.map +1 -0
- package/dist/shipments.d.ts +140 -0
- package/dist/shipments.d.ts.map +1 -0
- package/dist/shipments.js +14 -0
- package/dist/shipments.js.map +1 -0
- package/dist/shipping-methods.d.ts +350 -0
- package/dist/shipping-methods.d.ts.map +1 -0
- package/dist/shipping-methods.js +99 -0
- package/dist/shipping-methods.js.map +1 -0
- package/dist/shopping-lists.d.ts +122 -0
- package/dist/shopping-lists.d.ts.map +1 -0
- package/dist/shopping-lists.js +92 -0
- package/dist/shopping-lists.js.map +1 -0
- package/dist/taxes.d.ts +106 -0
- package/dist/taxes.d.ts.map +1 -0
- package/dist/taxes.js +80 -0
- package/dist/taxes.js.map +1 -0
- package/dist/text-normalization.d.ts +199 -0
- package/dist/text-normalization.d.ts.map +1 -0
- package/dist/text-normalization.js +205 -0
- package/dist/text-normalization.js.map +1 -0
- package/dist/transactional-emails.d.ts +459 -0
- package/dist/transactional-emails.d.ts.map +1 -0
- package/dist/transactional-emails.js +212 -0
- package/dist/transactional-emails.js.map +1 -0
- package/dist/webhooks.d.ts +69 -0
- package/dist/webhooks.d.ts.map +1 -0
- package/dist/webhooks.js +53 -0
- package/dist/webhooks.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1,2837 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** Providers the module knows how to shape output for. `custom` is operator-authored. */
|
|
3
|
+
export declare const feedProviderCodeSchema: z.ZodEnum<{
|
|
4
|
+
custom: "custom";
|
|
5
|
+
meta: "meta";
|
|
6
|
+
google_merchant: "google_merchant";
|
|
7
|
+
amazon: "amazon";
|
|
8
|
+
ebay: "ebay";
|
|
9
|
+
allegro: "allegro";
|
|
10
|
+
}>;
|
|
11
|
+
export type FeedProviderCode = z.infer<typeof feedProviderCodeSchema>;
|
|
12
|
+
/**
|
|
13
|
+
* Only Google and Meta publish a category taxonomy. A revision of one reaches
|
|
14
|
+
* the platform either bundled with the image or from an optional, off-by-default
|
|
15
|
+
* check (FR-077, FR-086); generation reads the revision in force and contacts
|
|
16
|
+
* nobody either way.
|
|
17
|
+
*/
|
|
18
|
+
export declare const taxonomyProviderCodeSchema: z.ZodEnum<{
|
|
19
|
+
meta: "meta";
|
|
20
|
+
google_merchant: "google_merchant";
|
|
21
|
+
}>;
|
|
22
|
+
export type TaxonomyProviderCode = z.infer<typeof taxonomyProviderCodeSchema>;
|
|
23
|
+
/**
|
|
24
|
+
* What the generated file is.
|
|
25
|
+
*
|
|
26
|
+
* `txt` is tab-separated like `tsv` and differs only in extension and media
|
|
27
|
+
* type — several marketplace importers (Google Merchant's own flat file among
|
|
28
|
+
* them) accept nothing else, and renaming the file is exactly the kind of step
|
|
29
|
+
* an operator should not have to know about.
|
|
30
|
+
*
|
|
31
|
+
* `xlsx` is the real Office Open XML workbook, not a spreadsheet-flavoured
|
|
32
|
+
* text file. The legacy binary `.xls` (BIFF8) is deliberately absent: it is
|
|
33
|
+
* superseded, and nothing in this stack can write it.
|
|
34
|
+
*/
|
|
35
|
+
export declare const feedOutputFormatSchema: z.ZodEnum<{
|
|
36
|
+
csv: "csv";
|
|
37
|
+
xml: "xml";
|
|
38
|
+
tsv: "tsv";
|
|
39
|
+
txt: "txt";
|
|
40
|
+
xlsx: "xlsx";
|
|
41
|
+
}>;
|
|
42
|
+
export type FeedOutputFormat = z.infer<typeof feedOutputFormatSchema>;
|
|
43
|
+
/** Formats that lay one item per row across fixed columns (everything but XML). */
|
|
44
|
+
export declare const TABULAR_FEED_FORMATS: readonly ["csv", "tsv", "txt", "xlsx"];
|
|
45
|
+
export declare function isTabularFeedFormat(format: FeedOutputFormat): boolean;
|
|
46
|
+
export declare const feedItemGranularitySchema: z.ZodEnum<{
|
|
47
|
+
product: "product";
|
|
48
|
+
variant: "variant";
|
|
49
|
+
}>;
|
|
50
|
+
export type FeedItemGranularity = z.infer<typeof feedItemGranularitySchema>;
|
|
51
|
+
export declare const feedPricePresentationSchema: z.ZodEnum<{
|
|
52
|
+
net: "net";
|
|
53
|
+
gross: "gross";
|
|
54
|
+
}>;
|
|
55
|
+
export type FeedPricePresentation = z.infer<typeof feedPricePresentationSchema>;
|
|
56
|
+
/**
|
|
57
|
+
* Closed catalogue of value sources a template field may bind to (FR-003).
|
|
58
|
+
*
|
|
59
|
+
* `attribute` and `custom_field` are two names for one registry: since feature
|
|
60
|
+
* 061 a product attribute IS a product-host Custom Field definition carrying a
|
|
61
|
+
* catalog extension. Both are accepted so a document exported from either
|
|
62
|
+
* vocabulary imports cleanly; both resolve through the same definitions read.
|
|
63
|
+
*/
|
|
64
|
+
export declare const feedFieldSourceKindSchema: z.ZodEnum<{
|
|
65
|
+
description: "description";
|
|
66
|
+
link: "link";
|
|
67
|
+
name: "name";
|
|
68
|
+
slug: "slug";
|
|
69
|
+
availability: "availability";
|
|
70
|
+
price: "price";
|
|
71
|
+
sku: "sku";
|
|
72
|
+
attribute: "attribute";
|
|
73
|
+
product_id: "product_id";
|
|
74
|
+
product_type: "product_type";
|
|
75
|
+
brand: "brand";
|
|
76
|
+
custom_field: "custom_field";
|
|
77
|
+
sale_price: "sale_price";
|
|
78
|
+
stock_quantity: "stock_quantity";
|
|
79
|
+
image_link: "image_link";
|
|
80
|
+
additional_image_link: "additional_image_link";
|
|
81
|
+
category_path: "category_path";
|
|
82
|
+
provider_category: "provider_category";
|
|
83
|
+
grouping_id: "grouping_id";
|
|
84
|
+
constant: "constant";
|
|
85
|
+
}>;
|
|
86
|
+
export type FeedFieldSourceKind = z.infer<typeof feedFieldSourceKindSchema>;
|
|
87
|
+
/** Closed transform list — deliberately not an expression language (FR-067). */
|
|
88
|
+
export declare const feedFieldTransformSchema: z.ZodEnum<{
|
|
89
|
+
trim: "trim";
|
|
90
|
+
none: "none";
|
|
91
|
+
upper: "upper";
|
|
92
|
+
lower: "lower";
|
|
93
|
+
truncate: "truncate";
|
|
94
|
+
strip_html: "strip_html";
|
|
95
|
+
absolute_url: "absolute_url";
|
|
96
|
+
}>;
|
|
97
|
+
export type FeedFieldTransform = z.infer<typeof feedFieldTransformSchema>;
|
|
98
|
+
export declare const feedRunStatusSchema: z.ZodEnum<{
|
|
99
|
+
completed: "completed";
|
|
100
|
+
failed: "failed";
|
|
101
|
+
skipped: "skipped";
|
|
102
|
+
queued: "queued";
|
|
103
|
+
running: "running";
|
|
104
|
+
completed_with_warnings: "completed_with_warnings";
|
|
105
|
+
empty: "empty";
|
|
106
|
+
}>;
|
|
107
|
+
export type FeedRunStatus = z.infer<typeof feedRunStatusSchema>;
|
|
108
|
+
export declare const feedRunTriggerSchema: z.ZodEnum<{
|
|
109
|
+
scheduled: "scheduled";
|
|
110
|
+
manual: "manual";
|
|
111
|
+
}>;
|
|
112
|
+
export type FeedRunTrigger = z.infer<typeof feedRunTriggerSchema>;
|
|
113
|
+
/** Enumerated run-issue reasons (FR-054). Operator-facing labels come from i18n. */
|
|
114
|
+
export declare const feedRunIssueReasonSchema: z.ZodEnum<{
|
|
115
|
+
missing_price: "missing_price";
|
|
116
|
+
missing_image: "missing_image";
|
|
117
|
+
private_image_asset: "private_image_asset";
|
|
118
|
+
missing_required_field: "missing_required_field";
|
|
119
|
+
missing_translation: "missing_translation";
|
|
120
|
+
unresolvable_link: "unresolvable_link";
|
|
121
|
+
unmapped_provider_category: "unmapped_provider_category";
|
|
122
|
+
stale_provider_category_mapping: "stale_provider_category_mapping";
|
|
123
|
+
unsupported_product_type: "unsupported_product_type";
|
|
124
|
+
zero_tax_rate_on_gross_feed: "zero_tax_rate_on_gross_feed";
|
|
125
|
+
}>;
|
|
126
|
+
export type FeedRunIssueReason = z.infer<typeof feedRunIssueReasonSchema>;
|
|
127
|
+
export declare const feedRunFailureCodeSchema: z.ZodEnum<{
|
|
128
|
+
unbound_template_fields: "unbound_template_fields";
|
|
129
|
+
unknown_attribute: "unknown_attribute";
|
|
130
|
+
channel_unavailable: "channel_unavailable";
|
|
131
|
+
storefront_url_unconfigured: "storefront_url_unconfigured";
|
|
132
|
+
price_list_unavailable: "price_list_unavailable";
|
|
133
|
+
language_unavailable: "language_unavailable";
|
|
134
|
+
skip_threshold_exceeded: "skip_threshold_exceeded";
|
|
135
|
+
storage_unavailable: "storage_unavailable";
|
|
136
|
+
worker_lost: "worker_lost";
|
|
137
|
+
internal_error: "internal_error";
|
|
138
|
+
}>;
|
|
139
|
+
export type FeedRunFailureCode = z.infer<typeof feedRunFailureCodeSchema>;
|
|
140
|
+
export declare const cronExpressionSchema: z.ZodString;
|
|
141
|
+
/**
|
|
142
|
+
* IANA timezone. Validated against the runtime's own tz database rather than a
|
|
143
|
+
* hard-coded list, so it cannot drift from what the scheduler will accept.
|
|
144
|
+
*/
|
|
145
|
+
export declare const timezoneSchema: z.ZodString;
|
|
146
|
+
export declare const feedScheduleSchema: z.ZodNullable<z.ZodObject<{
|
|
147
|
+
cron: z.ZodString;
|
|
148
|
+
timezone: z.ZodString;
|
|
149
|
+
}, z.core.$strip>>;
|
|
150
|
+
export type FeedSchedule = z.infer<typeof feedScheduleSchema>;
|
|
151
|
+
export interface SchedulePreset {
|
|
152
|
+
id: string;
|
|
153
|
+
cron: string;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* The presets the admin `Select` offers (ux-design §2.2 — "never make a
|
|
157
|
+
* merchandiser write cron"). Short on purpose: a preset list long enough to
|
|
158
|
+
* need scanning is a cron field with extra steps. Anything else is *Custom*.
|
|
159
|
+
*/
|
|
160
|
+
export declare const SCHEDULE_PRESETS: ReadonlyArray<SchedulePreset>;
|
|
161
|
+
/** The preset a cron expression corresponds to, or null when it is custom. */
|
|
162
|
+
export declare function presetForCron(cron: string): string | null;
|
|
163
|
+
/**
|
|
164
|
+
* The point-and-click form of a schedule — the four shapes an operator can
|
|
165
|
+
* assemble without knowing cron.
|
|
166
|
+
*
|
|
167
|
+
* Deliberately a small closed set. Cron can express far more, and the *Custom*
|
|
168
|
+
* text input remains for anyone who needs it; what this type exists to do is
|
|
169
|
+
* make the common cases reachable without teaching five positional fields.
|
|
170
|
+
*/
|
|
171
|
+
export type CronBuilderValue = {
|
|
172
|
+
frequency: 'hourly';
|
|
173
|
+
minute: number;
|
|
174
|
+
} | {
|
|
175
|
+
frequency: 'daily';
|
|
176
|
+
hour: number;
|
|
177
|
+
minute: number;
|
|
178
|
+
} | {
|
|
179
|
+
frequency: 'weekly';
|
|
180
|
+
dayOfWeek: number;
|
|
181
|
+
hour: number;
|
|
182
|
+
minute: number;
|
|
183
|
+
} | {
|
|
184
|
+
frequency: 'monthly';
|
|
185
|
+
dayOfMonth: number;
|
|
186
|
+
hour: number;
|
|
187
|
+
minute: number;
|
|
188
|
+
};
|
|
189
|
+
export type CronBuilderFrequency = CronBuilderValue['frequency'];
|
|
190
|
+
export declare const CRON_BUILDER_FREQUENCIES: readonly ["hourly", "daily", "weekly", "monthly"];
|
|
191
|
+
/** The expression a builder selection stands for. Always valid by construction. */
|
|
192
|
+
export declare function cronFromBuilder(value: CronBuilderValue): string;
|
|
193
|
+
/**
|
|
194
|
+
* The builder selection an expression corresponds to, or `null` when the
|
|
195
|
+
* expression says something the four frequencies cannot.
|
|
196
|
+
*
|
|
197
|
+
* The `null` is the important half. `0 * /4 * * *` is a perfectly good schedule
|
|
198
|
+
* that no frequency here describes; reporting it as "hourly" would show the
|
|
199
|
+
* operator a dropdown they never chose and quadruple the run rate if they then
|
|
200
|
+
* saved. Anything with a step, a list, a range, a fixed month, or both a
|
|
201
|
+
* day-of-month and a day-of-week (which cron ORs together) is refused, and the
|
|
202
|
+
* caller keeps the operator on the raw expression instead.
|
|
203
|
+
*/
|
|
204
|
+
export declare function builderFromCron(cron: string): CronBuilderValue | null;
|
|
205
|
+
export declare function isValidTimezone(timezone: string): boolean;
|
|
206
|
+
/**
|
|
207
|
+
* Grammar (the contract's regex) **and** field ranges. Both, because a
|
|
208
|
+
* grammatically valid expression that can never fire is the worse failure: the
|
|
209
|
+
* operator sees a saved schedule and no runs.
|
|
210
|
+
*/
|
|
211
|
+
export declare function isValidCronExpression(expression: string): boolean;
|
|
212
|
+
/**
|
|
213
|
+
* The sentence rendered live under the *Custom* input (ux-design §2.2).
|
|
214
|
+
*
|
|
215
|
+
* Returns `null` for an invalid expression so the caller shows
|
|
216
|
+
* `feeds.schedule.invalid` instead — an echo and an error must never be on
|
|
217
|
+
* screen at once. For a valid expression it always returns *something*: the
|
|
218
|
+
* shapes the presets produce get real prose, and anything else gets the
|
|
219
|
+
* expression back verbatim. Echoing the input is honest; an empty line under a
|
|
220
|
+
* valid expression reads like a rejection.
|
|
221
|
+
*/
|
|
222
|
+
export declare function describeCronExpression(expression: string): string | null;
|
|
223
|
+
export declare const productSelectionOpSchema: z.ZodEnum<{
|
|
224
|
+
in: "in";
|
|
225
|
+
startsWith: "startsWith";
|
|
226
|
+
isSet: "isSet";
|
|
227
|
+
eq: "eq";
|
|
228
|
+
gt: "gt";
|
|
229
|
+
gte: "gte";
|
|
230
|
+
lt: "lt";
|
|
231
|
+
lte: "lte";
|
|
232
|
+
contains: "contains";
|
|
233
|
+
neq: "neq";
|
|
234
|
+
between: "between";
|
|
235
|
+
notIn: "notIn";
|
|
236
|
+
isNotSet: "isNotSet";
|
|
237
|
+
}>;
|
|
238
|
+
export type ProductSelectionOp = z.infer<typeof productSelectionOpSchema>;
|
|
239
|
+
/** Built-in, product-context fields the criteria builder offers (FR-025). */
|
|
240
|
+
export declare const productSelectionBuiltinFieldSchema: z.ZodEnum<{
|
|
241
|
+
status: "status";
|
|
242
|
+
updatedAt: "updatedAt";
|
|
243
|
+
createdAt: "createdAt";
|
|
244
|
+
category: "category";
|
|
245
|
+
price: "price";
|
|
246
|
+
productType: "productType";
|
|
247
|
+
brand: "brand";
|
|
248
|
+
stockState: "stockState";
|
|
249
|
+
}>;
|
|
250
|
+
export type ProductSelectionBuiltinField = z.infer<typeof productSelectionBuiltinFieldSchema>;
|
|
251
|
+
export declare const productSelectionFieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
252
|
+
kind: z.ZodLiteral<"builtin">;
|
|
253
|
+
key: z.ZodEnum<{
|
|
254
|
+
status: "status";
|
|
255
|
+
updatedAt: "updatedAt";
|
|
256
|
+
createdAt: "createdAt";
|
|
257
|
+
category: "category";
|
|
258
|
+
price: "price";
|
|
259
|
+
productType: "productType";
|
|
260
|
+
brand: "brand";
|
|
261
|
+
stockState: "stockState";
|
|
262
|
+
}>;
|
|
263
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
264
|
+
kind: z.ZodLiteral<"attribute">;
|
|
265
|
+
attributeKey: z.ZodString;
|
|
266
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
267
|
+
kind: z.ZodLiteral<"customField">;
|
|
268
|
+
fieldKey: z.ZodString;
|
|
269
|
+
}, z.core.$strip>], "kind">;
|
|
270
|
+
export type ProductSelectionField = z.infer<typeof productSelectionFieldSchema>;
|
|
271
|
+
export declare const productSelectionValueSchema: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
|
|
272
|
+
export type ProductSelectionValue = z.infer<typeof productSelectionValueSchema>;
|
|
273
|
+
export type ProductSelectionAll = {
|
|
274
|
+
kind: 'all';
|
|
275
|
+
};
|
|
276
|
+
export type ProductSelectionCondition = {
|
|
277
|
+
kind: 'condition';
|
|
278
|
+
field: ProductSelectionField;
|
|
279
|
+
op: ProductSelectionOp;
|
|
280
|
+
values: ProductSelectionValue[];
|
|
281
|
+
};
|
|
282
|
+
export type ProductSelectionGroup = {
|
|
283
|
+
kind: 'group';
|
|
284
|
+
op: 'AND' | 'OR';
|
|
285
|
+
children: ProductSelectionRule[];
|
|
286
|
+
};
|
|
287
|
+
export type ProductSelectionRule = ProductSelectionAll | ProductSelectionCondition | ProductSelectionGroup;
|
|
288
|
+
export declare function productSelectionDepth(node: ProductSelectionRule): number;
|
|
289
|
+
/** `{ kind: 'all' }` is the canonical "whole channel catalogue" (FR-024). */
|
|
290
|
+
export declare const productSelectionRuleSchema: z.ZodType<ProductSelectionRule, unknown, z.core.$ZodTypeInternals<ProductSelectionRule, unknown>>;
|
|
291
|
+
export declare const feedTemplateFieldSchema: z.ZodObject<{
|
|
292
|
+
id: z.ZodString;
|
|
293
|
+
outputName: z.ZodString;
|
|
294
|
+
sourceKind: z.ZodEnum<{
|
|
295
|
+
description: "description";
|
|
296
|
+
link: "link";
|
|
297
|
+
name: "name";
|
|
298
|
+
slug: "slug";
|
|
299
|
+
availability: "availability";
|
|
300
|
+
price: "price";
|
|
301
|
+
sku: "sku";
|
|
302
|
+
attribute: "attribute";
|
|
303
|
+
product_id: "product_id";
|
|
304
|
+
product_type: "product_type";
|
|
305
|
+
brand: "brand";
|
|
306
|
+
custom_field: "custom_field";
|
|
307
|
+
sale_price: "sale_price";
|
|
308
|
+
stock_quantity: "stock_quantity";
|
|
309
|
+
image_link: "image_link";
|
|
310
|
+
additional_image_link: "additional_image_link";
|
|
311
|
+
category_path: "category_path";
|
|
312
|
+
provider_category: "provider_category";
|
|
313
|
+
grouping_id: "grouping_id";
|
|
314
|
+
constant: "constant";
|
|
315
|
+
}>;
|
|
316
|
+
sourceKey: z.ZodNullable<z.ZodString>;
|
|
317
|
+
constantValue: z.ZodNullable<z.ZodString>;
|
|
318
|
+
fallbackValue: z.ZodNullable<z.ZodString>;
|
|
319
|
+
providerRequired: z.ZodBoolean;
|
|
320
|
+
transform: z.ZodNullable<z.ZodEnum<{
|
|
321
|
+
trim: "trim";
|
|
322
|
+
none: "none";
|
|
323
|
+
upper: "upper";
|
|
324
|
+
lower: "lower";
|
|
325
|
+
truncate: "truncate";
|
|
326
|
+
strip_html: "strip_html";
|
|
327
|
+
absolute_url: "absolute_url";
|
|
328
|
+
}>>;
|
|
329
|
+
transformArg: z.ZodNullable<z.ZodString>;
|
|
330
|
+
sortOrder: z.ZodNumber;
|
|
331
|
+
helpKey: z.ZodNullable<z.ZodString>;
|
|
332
|
+
unbound: z.ZodBoolean;
|
|
333
|
+
}, z.core.$strip>;
|
|
334
|
+
export type FeedTemplateField = z.infer<typeof feedTemplateFieldSchema>;
|
|
335
|
+
/** Cross-field rules that FR-009 requires to be refused at save time. */
|
|
336
|
+
export declare const feedTemplateFieldWriteSchema: z.ZodObject<{
|
|
337
|
+
outputName: z.ZodString;
|
|
338
|
+
sourceKind: z.ZodEnum<{
|
|
339
|
+
description: "description";
|
|
340
|
+
link: "link";
|
|
341
|
+
name: "name";
|
|
342
|
+
slug: "slug";
|
|
343
|
+
availability: "availability";
|
|
344
|
+
price: "price";
|
|
345
|
+
sku: "sku";
|
|
346
|
+
attribute: "attribute";
|
|
347
|
+
product_id: "product_id";
|
|
348
|
+
product_type: "product_type";
|
|
349
|
+
brand: "brand";
|
|
350
|
+
custom_field: "custom_field";
|
|
351
|
+
sale_price: "sale_price";
|
|
352
|
+
stock_quantity: "stock_quantity";
|
|
353
|
+
image_link: "image_link";
|
|
354
|
+
additional_image_link: "additional_image_link";
|
|
355
|
+
category_path: "category_path";
|
|
356
|
+
provider_category: "provider_category";
|
|
357
|
+
grouping_id: "grouping_id";
|
|
358
|
+
constant: "constant";
|
|
359
|
+
}>;
|
|
360
|
+
sourceKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
361
|
+
constantValue: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
362
|
+
fallbackValue: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
363
|
+
providerRequired: z.ZodOptional<z.ZodBoolean>;
|
|
364
|
+
transform: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
365
|
+
trim: "trim";
|
|
366
|
+
none: "none";
|
|
367
|
+
upper: "upper";
|
|
368
|
+
lower: "lower";
|
|
369
|
+
truncate: "truncate";
|
|
370
|
+
strip_html: "strip_html";
|
|
371
|
+
absolute_url: "absolute_url";
|
|
372
|
+
}>>>;
|
|
373
|
+
transformArg: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
374
|
+
sortOrder: z.ZodNumber;
|
|
375
|
+
helpKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
376
|
+
}, z.core.$strip>;
|
|
377
|
+
export type FeedTemplateFieldWrite = z.infer<typeof feedTemplateFieldWriteSchema>;
|
|
378
|
+
export declare const feedTemplateSchema: z.ZodObject<{
|
|
379
|
+
id: z.ZodString;
|
|
380
|
+
name: z.ZodString;
|
|
381
|
+
description: z.ZodNullable<z.ZodString>;
|
|
382
|
+
providerCode: z.ZodEnum<{
|
|
383
|
+
custom: "custom";
|
|
384
|
+
meta: "meta";
|
|
385
|
+
google_merchant: "google_merchant";
|
|
386
|
+
amazon: "amazon";
|
|
387
|
+
ebay: "ebay";
|
|
388
|
+
allegro: "allegro";
|
|
389
|
+
}>;
|
|
390
|
+
outputFormat: z.ZodEnum<{
|
|
391
|
+
csv: "csv";
|
|
392
|
+
xml: "xml";
|
|
393
|
+
tsv: "tsv";
|
|
394
|
+
txt: "txt";
|
|
395
|
+
xlsx: "xlsx";
|
|
396
|
+
}>;
|
|
397
|
+
itemGranularity: z.ZodEnum<{
|
|
398
|
+
product: "product";
|
|
399
|
+
variant: "variant";
|
|
400
|
+
}>;
|
|
401
|
+
taxonomyProviderCode: z.ZodNullable<z.ZodEnum<{
|
|
402
|
+
meta: "meta";
|
|
403
|
+
google_merchant: "google_merchant";
|
|
404
|
+
}>>;
|
|
405
|
+
isSystem: z.ZodBoolean;
|
|
406
|
+
systemCode: z.ZodNullable<z.ZodString>;
|
|
407
|
+
fields: z.ZodArray<z.ZodObject<{
|
|
408
|
+
id: z.ZodString;
|
|
409
|
+
outputName: z.ZodString;
|
|
410
|
+
sourceKind: z.ZodEnum<{
|
|
411
|
+
description: "description";
|
|
412
|
+
link: "link";
|
|
413
|
+
name: "name";
|
|
414
|
+
slug: "slug";
|
|
415
|
+
availability: "availability";
|
|
416
|
+
price: "price";
|
|
417
|
+
sku: "sku";
|
|
418
|
+
attribute: "attribute";
|
|
419
|
+
product_id: "product_id";
|
|
420
|
+
product_type: "product_type";
|
|
421
|
+
brand: "brand";
|
|
422
|
+
custom_field: "custom_field";
|
|
423
|
+
sale_price: "sale_price";
|
|
424
|
+
stock_quantity: "stock_quantity";
|
|
425
|
+
image_link: "image_link";
|
|
426
|
+
additional_image_link: "additional_image_link";
|
|
427
|
+
category_path: "category_path";
|
|
428
|
+
provider_category: "provider_category";
|
|
429
|
+
grouping_id: "grouping_id";
|
|
430
|
+
constant: "constant";
|
|
431
|
+
}>;
|
|
432
|
+
sourceKey: z.ZodNullable<z.ZodString>;
|
|
433
|
+
constantValue: z.ZodNullable<z.ZodString>;
|
|
434
|
+
fallbackValue: z.ZodNullable<z.ZodString>;
|
|
435
|
+
providerRequired: z.ZodBoolean;
|
|
436
|
+
transform: z.ZodNullable<z.ZodEnum<{
|
|
437
|
+
trim: "trim";
|
|
438
|
+
none: "none";
|
|
439
|
+
upper: "upper";
|
|
440
|
+
lower: "lower";
|
|
441
|
+
truncate: "truncate";
|
|
442
|
+
strip_html: "strip_html";
|
|
443
|
+
absolute_url: "absolute_url";
|
|
444
|
+
}>>;
|
|
445
|
+
transformArg: z.ZodNullable<z.ZodString>;
|
|
446
|
+
sortOrder: z.ZodNumber;
|
|
447
|
+
helpKey: z.ZodNullable<z.ZodString>;
|
|
448
|
+
unbound: z.ZodBoolean;
|
|
449
|
+
}, z.core.$strip>>;
|
|
450
|
+
usedByFeedCount: z.ZodNumber;
|
|
451
|
+
version: z.ZodNumber;
|
|
452
|
+
createdAt: z.ZodString;
|
|
453
|
+
updatedAt: z.ZodString;
|
|
454
|
+
}, z.core.$strip>;
|
|
455
|
+
export type FeedTemplate = z.infer<typeof feedTemplateSchema>;
|
|
456
|
+
export declare const createFeedTemplateRequestSchema: z.ZodObject<{
|
|
457
|
+
name: z.ZodString;
|
|
458
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
459
|
+
providerCode: z.ZodDefault<z.ZodEnum<{
|
|
460
|
+
custom: "custom";
|
|
461
|
+
meta: "meta";
|
|
462
|
+
google_merchant: "google_merchant";
|
|
463
|
+
amazon: "amazon";
|
|
464
|
+
ebay: "ebay";
|
|
465
|
+
allegro: "allegro";
|
|
466
|
+
}>>;
|
|
467
|
+
outputFormat: z.ZodDefault<z.ZodEnum<{
|
|
468
|
+
csv: "csv";
|
|
469
|
+
xml: "xml";
|
|
470
|
+
tsv: "tsv";
|
|
471
|
+
txt: "txt";
|
|
472
|
+
xlsx: "xlsx";
|
|
473
|
+
}>>;
|
|
474
|
+
itemGranularity: z.ZodDefault<z.ZodEnum<{
|
|
475
|
+
product: "product";
|
|
476
|
+
variant: "variant";
|
|
477
|
+
}>>;
|
|
478
|
+
taxonomyProviderCode: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
479
|
+
meta: "meta";
|
|
480
|
+
google_merchant: "google_merchant";
|
|
481
|
+
}>>>;
|
|
482
|
+
fields: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
483
|
+
outputName: z.ZodString;
|
|
484
|
+
sourceKind: z.ZodEnum<{
|
|
485
|
+
description: "description";
|
|
486
|
+
link: "link";
|
|
487
|
+
name: "name";
|
|
488
|
+
slug: "slug";
|
|
489
|
+
availability: "availability";
|
|
490
|
+
price: "price";
|
|
491
|
+
sku: "sku";
|
|
492
|
+
attribute: "attribute";
|
|
493
|
+
product_id: "product_id";
|
|
494
|
+
product_type: "product_type";
|
|
495
|
+
brand: "brand";
|
|
496
|
+
custom_field: "custom_field";
|
|
497
|
+
sale_price: "sale_price";
|
|
498
|
+
stock_quantity: "stock_quantity";
|
|
499
|
+
image_link: "image_link";
|
|
500
|
+
additional_image_link: "additional_image_link";
|
|
501
|
+
category_path: "category_path";
|
|
502
|
+
provider_category: "provider_category";
|
|
503
|
+
grouping_id: "grouping_id";
|
|
504
|
+
constant: "constant";
|
|
505
|
+
}>;
|
|
506
|
+
sourceKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
507
|
+
constantValue: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
508
|
+
fallbackValue: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
509
|
+
providerRequired: z.ZodOptional<z.ZodBoolean>;
|
|
510
|
+
transform: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
511
|
+
trim: "trim";
|
|
512
|
+
none: "none";
|
|
513
|
+
upper: "upper";
|
|
514
|
+
lower: "lower";
|
|
515
|
+
truncate: "truncate";
|
|
516
|
+
strip_html: "strip_html";
|
|
517
|
+
absolute_url: "absolute_url";
|
|
518
|
+
}>>>;
|
|
519
|
+
transformArg: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
520
|
+
sortOrder: z.ZodNumber;
|
|
521
|
+
helpKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
522
|
+
}, z.core.$strip>>>;
|
|
523
|
+
}, z.core.$strip>;
|
|
524
|
+
export type CreateFeedTemplateRequest = z.infer<typeof createFeedTemplateRequestSchema>;
|
|
525
|
+
/**
|
|
526
|
+
* Full replacement of the field list — the structure editor saves the whole
|
|
527
|
+
* ordered list, so reordering, renaming, adding and removing are one atomic,
|
|
528
|
+
* single-audit-entry operation rather than a burst of per-field PATCHes.
|
|
529
|
+
*
|
|
530
|
+
* The four defaulted keys are re-declared without their defaults for the same
|
|
531
|
+
* reason `updateProductFeedRequestSchema` does: `z.object().partial()` makes a
|
|
532
|
+
* key optional but does **not** remove its `.default()`. A save that only
|
|
533
|
+
* renamed a template would otherwise arrive carrying `providerCode: 'custom'`,
|
|
534
|
+
* `outputFormat: 'xml'`, `itemGranularity: 'product'` and an empty `fields`
|
|
535
|
+
* array — silently rewriting a Google per-variant XML template into a custom
|
|
536
|
+
* per-product one, and emptying its field list.
|
|
537
|
+
*/
|
|
538
|
+
export declare const updateFeedTemplateRequestSchema: z.ZodObject<{
|
|
539
|
+
description: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
540
|
+
name: z.ZodOptional<z.ZodString>;
|
|
541
|
+
taxonomyProviderCode: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
542
|
+
meta: "meta";
|
|
543
|
+
google_merchant: "google_merchant";
|
|
544
|
+
}>>>>;
|
|
545
|
+
providerCode: z.ZodOptional<z.ZodEnum<{
|
|
546
|
+
custom: "custom";
|
|
547
|
+
meta: "meta";
|
|
548
|
+
google_merchant: "google_merchant";
|
|
549
|
+
amazon: "amazon";
|
|
550
|
+
ebay: "ebay";
|
|
551
|
+
allegro: "allegro";
|
|
552
|
+
}>>;
|
|
553
|
+
outputFormat: z.ZodOptional<z.ZodEnum<{
|
|
554
|
+
csv: "csv";
|
|
555
|
+
xml: "xml";
|
|
556
|
+
tsv: "tsv";
|
|
557
|
+
txt: "txt";
|
|
558
|
+
xlsx: "xlsx";
|
|
559
|
+
}>>;
|
|
560
|
+
itemGranularity: z.ZodOptional<z.ZodEnum<{
|
|
561
|
+
product: "product";
|
|
562
|
+
variant: "variant";
|
|
563
|
+
}>>;
|
|
564
|
+
fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
565
|
+
outputName: z.ZodString;
|
|
566
|
+
sourceKind: z.ZodEnum<{
|
|
567
|
+
description: "description";
|
|
568
|
+
link: "link";
|
|
569
|
+
name: "name";
|
|
570
|
+
slug: "slug";
|
|
571
|
+
availability: "availability";
|
|
572
|
+
price: "price";
|
|
573
|
+
sku: "sku";
|
|
574
|
+
attribute: "attribute";
|
|
575
|
+
product_id: "product_id";
|
|
576
|
+
product_type: "product_type";
|
|
577
|
+
brand: "brand";
|
|
578
|
+
custom_field: "custom_field";
|
|
579
|
+
sale_price: "sale_price";
|
|
580
|
+
stock_quantity: "stock_quantity";
|
|
581
|
+
image_link: "image_link";
|
|
582
|
+
additional_image_link: "additional_image_link";
|
|
583
|
+
category_path: "category_path";
|
|
584
|
+
provider_category: "provider_category";
|
|
585
|
+
grouping_id: "grouping_id";
|
|
586
|
+
constant: "constant";
|
|
587
|
+
}>;
|
|
588
|
+
sourceKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
589
|
+
constantValue: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
590
|
+
fallbackValue: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
591
|
+
providerRequired: z.ZodOptional<z.ZodBoolean>;
|
|
592
|
+
transform: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
593
|
+
trim: "trim";
|
|
594
|
+
none: "none";
|
|
595
|
+
upper: "upper";
|
|
596
|
+
lower: "lower";
|
|
597
|
+
truncate: "truncate";
|
|
598
|
+
strip_html: "strip_html";
|
|
599
|
+
absolute_url: "absolute_url";
|
|
600
|
+
}>>>;
|
|
601
|
+
transformArg: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
602
|
+
sortOrder: z.ZodNumber;
|
|
603
|
+
helpKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
604
|
+
}, z.core.$strip>>>;
|
|
605
|
+
}, z.core.$strip>;
|
|
606
|
+
export type UpdateFeedTemplateRequest = z.infer<typeof updateFeedTemplateRequestSchema>;
|
|
607
|
+
export declare const duplicateFeedTemplateRequestSchema: z.ZodObject<{
|
|
608
|
+
name: z.ZodString;
|
|
609
|
+
}, z.core.$strip>;
|
|
610
|
+
export type DuplicateFeedTemplateRequest = z.infer<typeof duplicateFeedTemplateRequestSchema>;
|
|
611
|
+
export declare const feedTemplateResponseSchema: z.ZodObject<{
|
|
612
|
+
data: z.ZodObject<{
|
|
613
|
+
id: z.ZodString;
|
|
614
|
+
name: z.ZodString;
|
|
615
|
+
description: z.ZodNullable<z.ZodString>;
|
|
616
|
+
providerCode: z.ZodEnum<{
|
|
617
|
+
custom: "custom";
|
|
618
|
+
meta: "meta";
|
|
619
|
+
google_merchant: "google_merchant";
|
|
620
|
+
amazon: "amazon";
|
|
621
|
+
ebay: "ebay";
|
|
622
|
+
allegro: "allegro";
|
|
623
|
+
}>;
|
|
624
|
+
outputFormat: z.ZodEnum<{
|
|
625
|
+
csv: "csv";
|
|
626
|
+
xml: "xml";
|
|
627
|
+
tsv: "tsv";
|
|
628
|
+
txt: "txt";
|
|
629
|
+
xlsx: "xlsx";
|
|
630
|
+
}>;
|
|
631
|
+
itemGranularity: z.ZodEnum<{
|
|
632
|
+
product: "product";
|
|
633
|
+
variant: "variant";
|
|
634
|
+
}>;
|
|
635
|
+
taxonomyProviderCode: z.ZodNullable<z.ZodEnum<{
|
|
636
|
+
meta: "meta";
|
|
637
|
+
google_merchant: "google_merchant";
|
|
638
|
+
}>>;
|
|
639
|
+
isSystem: z.ZodBoolean;
|
|
640
|
+
systemCode: z.ZodNullable<z.ZodString>;
|
|
641
|
+
fields: z.ZodArray<z.ZodObject<{
|
|
642
|
+
id: z.ZodString;
|
|
643
|
+
outputName: z.ZodString;
|
|
644
|
+
sourceKind: z.ZodEnum<{
|
|
645
|
+
description: "description";
|
|
646
|
+
link: "link";
|
|
647
|
+
name: "name";
|
|
648
|
+
slug: "slug";
|
|
649
|
+
availability: "availability";
|
|
650
|
+
price: "price";
|
|
651
|
+
sku: "sku";
|
|
652
|
+
attribute: "attribute";
|
|
653
|
+
product_id: "product_id";
|
|
654
|
+
product_type: "product_type";
|
|
655
|
+
brand: "brand";
|
|
656
|
+
custom_field: "custom_field";
|
|
657
|
+
sale_price: "sale_price";
|
|
658
|
+
stock_quantity: "stock_quantity";
|
|
659
|
+
image_link: "image_link";
|
|
660
|
+
additional_image_link: "additional_image_link";
|
|
661
|
+
category_path: "category_path";
|
|
662
|
+
provider_category: "provider_category";
|
|
663
|
+
grouping_id: "grouping_id";
|
|
664
|
+
constant: "constant";
|
|
665
|
+
}>;
|
|
666
|
+
sourceKey: z.ZodNullable<z.ZodString>;
|
|
667
|
+
constantValue: z.ZodNullable<z.ZodString>;
|
|
668
|
+
fallbackValue: z.ZodNullable<z.ZodString>;
|
|
669
|
+
providerRequired: z.ZodBoolean;
|
|
670
|
+
transform: z.ZodNullable<z.ZodEnum<{
|
|
671
|
+
trim: "trim";
|
|
672
|
+
none: "none";
|
|
673
|
+
upper: "upper";
|
|
674
|
+
lower: "lower";
|
|
675
|
+
truncate: "truncate";
|
|
676
|
+
strip_html: "strip_html";
|
|
677
|
+
absolute_url: "absolute_url";
|
|
678
|
+
}>>;
|
|
679
|
+
transformArg: z.ZodNullable<z.ZodString>;
|
|
680
|
+
sortOrder: z.ZodNumber;
|
|
681
|
+
helpKey: z.ZodNullable<z.ZodString>;
|
|
682
|
+
unbound: z.ZodBoolean;
|
|
683
|
+
}, z.core.$strip>>;
|
|
684
|
+
usedByFeedCount: z.ZodNumber;
|
|
685
|
+
version: z.ZodNumber;
|
|
686
|
+
createdAt: z.ZodString;
|
|
687
|
+
updatedAt: z.ZodString;
|
|
688
|
+
}, z.core.$strip>;
|
|
689
|
+
}, z.core.$strip>;
|
|
690
|
+
export declare const feedTemplateListResponseSchema: z.ZodObject<{
|
|
691
|
+
data: z.ZodArray<z.ZodObject<{
|
|
692
|
+
version: z.ZodNumber;
|
|
693
|
+
id: z.ZodString;
|
|
694
|
+
description: z.ZodNullable<z.ZodString>;
|
|
695
|
+
name: z.ZodString;
|
|
696
|
+
isSystem: z.ZodBoolean;
|
|
697
|
+
updatedAt: z.ZodString;
|
|
698
|
+
createdAt: z.ZodString;
|
|
699
|
+
providerCode: z.ZodEnum<{
|
|
700
|
+
custom: "custom";
|
|
701
|
+
meta: "meta";
|
|
702
|
+
google_merchant: "google_merchant";
|
|
703
|
+
amazon: "amazon";
|
|
704
|
+
ebay: "ebay";
|
|
705
|
+
allegro: "allegro";
|
|
706
|
+
}>;
|
|
707
|
+
outputFormat: z.ZodEnum<{
|
|
708
|
+
csv: "csv";
|
|
709
|
+
xml: "xml";
|
|
710
|
+
tsv: "tsv";
|
|
711
|
+
txt: "txt";
|
|
712
|
+
xlsx: "xlsx";
|
|
713
|
+
}>;
|
|
714
|
+
itemGranularity: z.ZodEnum<{
|
|
715
|
+
product: "product";
|
|
716
|
+
variant: "variant";
|
|
717
|
+
}>;
|
|
718
|
+
taxonomyProviderCode: z.ZodNullable<z.ZodEnum<{
|
|
719
|
+
meta: "meta";
|
|
720
|
+
google_merchant: "google_merchant";
|
|
721
|
+
}>>;
|
|
722
|
+
systemCode: z.ZodNullable<z.ZodString>;
|
|
723
|
+
usedByFeedCount: z.ZodNumber;
|
|
724
|
+
}, z.core.$strip>>;
|
|
725
|
+
pagination: z.ZodObject<{
|
|
726
|
+
cursor: z.ZodNullable<z.ZodString>;
|
|
727
|
+
hasMore: z.ZodBoolean;
|
|
728
|
+
limit: z.ZodNumber;
|
|
729
|
+
}, z.core.$strip>;
|
|
730
|
+
}, z.core.$strip>;
|
|
731
|
+
/** Why a group exists, so the editor can order and head the picker's sections. */
|
|
732
|
+
export declare const feedFieldSourceGroupKindSchema: z.ZodEnum<{
|
|
733
|
+
attribute: "attribute";
|
|
734
|
+
custom_field: "custom_field";
|
|
735
|
+
constant: "constant";
|
|
736
|
+
product_property: "product_property";
|
|
737
|
+
price_and_stock: "price_and_stock";
|
|
738
|
+
computed: "computed";
|
|
739
|
+
}>;
|
|
740
|
+
export type FeedFieldSourceGroupKind = z.infer<typeof feedFieldSourceGroupKindSchema>;
|
|
741
|
+
export declare const feedFieldSourceSchema: z.ZodObject<{
|
|
742
|
+
sourceKind: z.ZodEnum<{
|
|
743
|
+
description: "description";
|
|
744
|
+
link: "link";
|
|
745
|
+
name: "name";
|
|
746
|
+
slug: "slug";
|
|
747
|
+
availability: "availability";
|
|
748
|
+
price: "price";
|
|
749
|
+
sku: "sku";
|
|
750
|
+
attribute: "attribute";
|
|
751
|
+
product_id: "product_id";
|
|
752
|
+
product_type: "product_type";
|
|
753
|
+
brand: "brand";
|
|
754
|
+
custom_field: "custom_field";
|
|
755
|
+
sale_price: "sale_price";
|
|
756
|
+
stock_quantity: "stock_quantity";
|
|
757
|
+
image_link: "image_link";
|
|
758
|
+
additional_image_link: "additional_image_link";
|
|
759
|
+
category_path: "category_path";
|
|
760
|
+
provider_category: "provider_category";
|
|
761
|
+
grouping_id: "grouping_id";
|
|
762
|
+
constant: "constant";
|
|
763
|
+
}>;
|
|
764
|
+
sourceKey: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
765
|
+
labelKey: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
766
|
+
label: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
767
|
+
description: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
768
|
+
valueType: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
769
|
+
requiresTaxonomy: z.ZodDefault<z.ZodBoolean>;
|
|
770
|
+
unsupportedInFormats: z.ZodDefault<z.ZodArray<z.ZodEnum<{
|
|
771
|
+
csv: "csv";
|
|
772
|
+
xml: "xml";
|
|
773
|
+
tsv: "tsv";
|
|
774
|
+
txt: "txt";
|
|
775
|
+
xlsx: "xlsx";
|
|
776
|
+
}>>>;
|
|
777
|
+
}, z.core.$strip>;
|
|
778
|
+
export type FeedFieldSource = z.infer<typeof feedFieldSourceSchema>;
|
|
779
|
+
export declare const feedFieldSourceCatalogueSchema: z.ZodObject<{
|
|
780
|
+
groups: z.ZodArray<z.ZodObject<{
|
|
781
|
+
kind: z.ZodEnum<{
|
|
782
|
+
attribute: "attribute";
|
|
783
|
+
custom_field: "custom_field";
|
|
784
|
+
constant: "constant";
|
|
785
|
+
product_property: "product_property";
|
|
786
|
+
price_and_stock: "price_and_stock";
|
|
787
|
+
computed: "computed";
|
|
788
|
+
}>;
|
|
789
|
+
sources: z.ZodArray<z.ZodObject<{
|
|
790
|
+
sourceKind: z.ZodEnum<{
|
|
791
|
+
description: "description";
|
|
792
|
+
link: "link";
|
|
793
|
+
name: "name";
|
|
794
|
+
slug: "slug";
|
|
795
|
+
availability: "availability";
|
|
796
|
+
price: "price";
|
|
797
|
+
sku: "sku";
|
|
798
|
+
attribute: "attribute";
|
|
799
|
+
product_id: "product_id";
|
|
800
|
+
product_type: "product_type";
|
|
801
|
+
brand: "brand";
|
|
802
|
+
custom_field: "custom_field";
|
|
803
|
+
sale_price: "sale_price";
|
|
804
|
+
stock_quantity: "stock_quantity";
|
|
805
|
+
image_link: "image_link";
|
|
806
|
+
additional_image_link: "additional_image_link";
|
|
807
|
+
category_path: "category_path";
|
|
808
|
+
provider_category: "provider_category";
|
|
809
|
+
grouping_id: "grouping_id";
|
|
810
|
+
constant: "constant";
|
|
811
|
+
}>;
|
|
812
|
+
sourceKey: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
813
|
+
labelKey: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
814
|
+
label: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
815
|
+
description: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
816
|
+
valueType: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
817
|
+
requiresTaxonomy: z.ZodDefault<z.ZodBoolean>;
|
|
818
|
+
unsupportedInFormats: z.ZodDefault<z.ZodArray<z.ZodEnum<{
|
|
819
|
+
csv: "csv";
|
|
820
|
+
xml: "xml";
|
|
821
|
+
tsv: "tsv";
|
|
822
|
+
txt: "txt";
|
|
823
|
+
xlsx: "xlsx";
|
|
824
|
+
}>>>;
|
|
825
|
+
}, z.core.$strip>>;
|
|
826
|
+
}, z.core.$strip>>;
|
|
827
|
+
}, z.core.$strip>;
|
|
828
|
+
export type FeedFieldSourceCatalogue = z.infer<typeof feedFieldSourceCatalogueSchema>;
|
|
829
|
+
export declare const feedFieldSourceCatalogueResponseSchema: z.ZodObject<{
|
|
830
|
+
data: z.ZodObject<{
|
|
831
|
+
groups: z.ZodArray<z.ZodObject<{
|
|
832
|
+
kind: z.ZodEnum<{
|
|
833
|
+
attribute: "attribute";
|
|
834
|
+
custom_field: "custom_field";
|
|
835
|
+
constant: "constant";
|
|
836
|
+
product_property: "product_property";
|
|
837
|
+
price_and_stock: "price_and_stock";
|
|
838
|
+
computed: "computed";
|
|
839
|
+
}>;
|
|
840
|
+
sources: z.ZodArray<z.ZodObject<{
|
|
841
|
+
sourceKind: z.ZodEnum<{
|
|
842
|
+
description: "description";
|
|
843
|
+
link: "link";
|
|
844
|
+
name: "name";
|
|
845
|
+
slug: "slug";
|
|
846
|
+
availability: "availability";
|
|
847
|
+
price: "price";
|
|
848
|
+
sku: "sku";
|
|
849
|
+
attribute: "attribute";
|
|
850
|
+
product_id: "product_id";
|
|
851
|
+
product_type: "product_type";
|
|
852
|
+
brand: "brand";
|
|
853
|
+
custom_field: "custom_field";
|
|
854
|
+
sale_price: "sale_price";
|
|
855
|
+
stock_quantity: "stock_quantity";
|
|
856
|
+
image_link: "image_link";
|
|
857
|
+
additional_image_link: "additional_image_link";
|
|
858
|
+
category_path: "category_path";
|
|
859
|
+
provider_category: "provider_category";
|
|
860
|
+
grouping_id: "grouping_id";
|
|
861
|
+
constant: "constant";
|
|
862
|
+
}>;
|
|
863
|
+
sourceKey: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
864
|
+
labelKey: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
865
|
+
label: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
866
|
+
description: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
867
|
+
valueType: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
868
|
+
requiresTaxonomy: z.ZodDefault<z.ZodBoolean>;
|
|
869
|
+
unsupportedInFormats: z.ZodDefault<z.ZodArray<z.ZodEnum<{
|
|
870
|
+
csv: "csv";
|
|
871
|
+
xml: "xml";
|
|
872
|
+
tsv: "tsv";
|
|
873
|
+
txt: "txt";
|
|
874
|
+
xlsx: "xlsx";
|
|
875
|
+
}>>>;
|
|
876
|
+
}, z.core.$strip>>;
|
|
877
|
+
}, z.core.$strip>>;
|
|
878
|
+
}, z.core.$strip>;
|
|
879
|
+
}, z.core.$strip>;
|
|
880
|
+
/** The template exactly as it stands on screen — no id, possibly invalid. */
|
|
881
|
+
export declare const feedTemplateDraftSchema: z.ZodObject<{
|
|
882
|
+
providerCode: z.ZodEnum<{
|
|
883
|
+
custom: "custom";
|
|
884
|
+
meta: "meta";
|
|
885
|
+
google_merchant: "google_merchant";
|
|
886
|
+
amazon: "amazon";
|
|
887
|
+
ebay: "ebay";
|
|
888
|
+
allegro: "allegro";
|
|
889
|
+
}>;
|
|
890
|
+
outputFormat: z.ZodEnum<{
|
|
891
|
+
csv: "csv";
|
|
892
|
+
xml: "xml";
|
|
893
|
+
tsv: "tsv";
|
|
894
|
+
txt: "txt";
|
|
895
|
+
xlsx: "xlsx";
|
|
896
|
+
}>;
|
|
897
|
+
itemGranularity: z.ZodEnum<{
|
|
898
|
+
product: "product";
|
|
899
|
+
variant: "variant";
|
|
900
|
+
}>;
|
|
901
|
+
taxonomyProviderCode: z.ZodNullable<z.ZodEnum<{
|
|
902
|
+
meta: "meta";
|
|
903
|
+
google_merchant: "google_merchant";
|
|
904
|
+
}>>;
|
|
905
|
+
fields: z.ZodArray<z.ZodObject<{
|
|
906
|
+
outputName: z.ZodString;
|
|
907
|
+
sourceKind: z.ZodEnum<{
|
|
908
|
+
description: "description";
|
|
909
|
+
link: "link";
|
|
910
|
+
name: "name";
|
|
911
|
+
slug: "slug";
|
|
912
|
+
availability: "availability";
|
|
913
|
+
price: "price";
|
|
914
|
+
sku: "sku";
|
|
915
|
+
attribute: "attribute";
|
|
916
|
+
product_id: "product_id";
|
|
917
|
+
product_type: "product_type";
|
|
918
|
+
brand: "brand";
|
|
919
|
+
custom_field: "custom_field";
|
|
920
|
+
sale_price: "sale_price";
|
|
921
|
+
stock_quantity: "stock_quantity";
|
|
922
|
+
image_link: "image_link";
|
|
923
|
+
additional_image_link: "additional_image_link";
|
|
924
|
+
category_path: "category_path";
|
|
925
|
+
provider_category: "provider_category";
|
|
926
|
+
grouping_id: "grouping_id";
|
|
927
|
+
constant: "constant";
|
|
928
|
+
}>;
|
|
929
|
+
sourceKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
930
|
+
constantValue: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
931
|
+
fallbackValue: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
932
|
+
providerRequired: z.ZodOptional<z.ZodBoolean>;
|
|
933
|
+
transform: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
934
|
+
trim: "trim";
|
|
935
|
+
none: "none";
|
|
936
|
+
upper: "upper";
|
|
937
|
+
lower: "lower";
|
|
938
|
+
truncate: "truncate";
|
|
939
|
+
strip_html: "strip_html";
|
|
940
|
+
absolute_url: "absolute_url";
|
|
941
|
+
}>>>;
|
|
942
|
+
transformArg: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
943
|
+
sortOrder: z.ZodNumber;
|
|
944
|
+
helpKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
945
|
+
}, z.core.$strip>>;
|
|
946
|
+
}, z.core.$strip>;
|
|
947
|
+
export type FeedTemplateDraft = z.infer<typeof feedTemplateDraftSchema>;
|
|
948
|
+
/** The resolution context. Every part is optional; the server fills the rest. */
|
|
949
|
+
export declare const feedPreviewContextSchema: z.ZodObject<{
|
|
950
|
+
productFeedId: z.ZodOptional<z.ZodString>;
|
|
951
|
+
salesChannelId: z.ZodOptional<z.ZodString>;
|
|
952
|
+
languageCode: z.ZodOptional<z.ZodString>;
|
|
953
|
+
currencyCode: z.ZodOptional<z.ZodString>;
|
|
954
|
+
priceListId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
955
|
+
pricePresentation: z.ZodOptional<z.ZodEnum<{
|
|
956
|
+
net: "net";
|
|
957
|
+
gross: "gross";
|
|
958
|
+
}>>;
|
|
959
|
+
taxCountry: z.ZodOptional<z.ZodString>;
|
|
960
|
+
}, z.core.$strip>;
|
|
961
|
+
export type FeedPreviewContext = z.infer<typeof feedPreviewContextSchema>;
|
|
962
|
+
export declare const feedTemplatePreviewRequestSchema: z.ZodObject<{
|
|
963
|
+
baseTemplateId: z.ZodOptional<z.ZodString>;
|
|
964
|
+
draft: z.ZodObject<{
|
|
965
|
+
providerCode: z.ZodEnum<{
|
|
966
|
+
custom: "custom";
|
|
967
|
+
meta: "meta";
|
|
968
|
+
google_merchant: "google_merchant";
|
|
969
|
+
amazon: "amazon";
|
|
970
|
+
ebay: "ebay";
|
|
971
|
+
allegro: "allegro";
|
|
972
|
+
}>;
|
|
973
|
+
outputFormat: z.ZodEnum<{
|
|
974
|
+
csv: "csv";
|
|
975
|
+
xml: "xml";
|
|
976
|
+
tsv: "tsv";
|
|
977
|
+
txt: "txt";
|
|
978
|
+
xlsx: "xlsx";
|
|
979
|
+
}>;
|
|
980
|
+
itemGranularity: z.ZodEnum<{
|
|
981
|
+
product: "product";
|
|
982
|
+
variant: "variant";
|
|
983
|
+
}>;
|
|
984
|
+
taxonomyProviderCode: z.ZodNullable<z.ZodEnum<{
|
|
985
|
+
meta: "meta";
|
|
986
|
+
google_merchant: "google_merchant";
|
|
987
|
+
}>>;
|
|
988
|
+
fields: z.ZodArray<z.ZodObject<{
|
|
989
|
+
outputName: z.ZodString;
|
|
990
|
+
sourceKind: z.ZodEnum<{
|
|
991
|
+
description: "description";
|
|
992
|
+
link: "link";
|
|
993
|
+
name: "name";
|
|
994
|
+
slug: "slug";
|
|
995
|
+
availability: "availability";
|
|
996
|
+
price: "price";
|
|
997
|
+
sku: "sku";
|
|
998
|
+
attribute: "attribute";
|
|
999
|
+
product_id: "product_id";
|
|
1000
|
+
product_type: "product_type";
|
|
1001
|
+
brand: "brand";
|
|
1002
|
+
custom_field: "custom_field";
|
|
1003
|
+
sale_price: "sale_price";
|
|
1004
|
+
stock_quantity: "stock_quantity";
|
|
1005
|
+
image_link: "image_link";
|
|
1006
|
+
additional_image_link: "additional_image_link";
|
|
1007
|
+
category_path: "category_path";
|
|
1008
|
+
provider_category: "provider_category";
|
|
1009
|
+
grouping_id: "grouping_id";
|
|
1010
|
+
constant: "constant";
|
|
1011
|
+
}>;
|
|
1012
|
+
sourceKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1013
|
+
constantValue: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1014
|
+
fallbackValue: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1015
|
+
providerRequired: z.ZodOptional<z.ZodBoolean>;
|
|
1016
|
+
transform: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
1017
|
+
trim: "trim";
|
|
1018
|
+
none: "none";
|
|
1019
|
+
upper: "upper";
|
|
1020
|
+
lower: "lower";
|
|
1021
|
+
truncate: "truncate";
|
|
1022
|
+
strip_html: "strip_html";
|
|
1023
|
+
absolute_url: "absolute_url";
|
|
1024
|
+
}>>>;
|
|
1025
|
+
transformArg: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1026
|
+
sortOrder: z.ZodNumber;
|
|
1027
|
+
helpKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1028
|
+
}, z.core.$strip>>;
|
|
1029
|
+
}, z.core.$strip>;
|
|
1030
|
+
context: z.ZodDefault<z.ZodObject<{
|
|
1031
|
+
productFeedId: z.ZodOptional<z.ZodString>;
|
|
1032
|
+
salesChannelId: z.ZodOptional<z.ZodString>;
|
|
1033
|
+
languageCode: z.ZodOptional<z.ZodString>;
|
|
1034
|
+
currencyCode: z.ZodOptional<z.ZodString>;
|
|
1035
|
+
priceListId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1036
|
+
pricePresentation: z.ZodOptional<z.ZodEnum<{
|
|
1037
|
+
net: "net";
|
|
1038
|
+
gross: "gross";
|
|
1039
|
+
}>>;
|
|
1040
|
+
taxCountry: z.ZodOptional<z.ZodString>;
|
|
1041
|
+
}, z.core.$strip>>;
|
|
1042
|
+
productId: z.ZodString;
|
|
1043
|
+
variantId: z.ZodOptional<z.ZodString>;
|
|
1044
|
+
}, z.core.$strip>;
|
|
1045
|
+
export type FeedTemplatePreviewRequest = z.infer<typeof feedTemplatePreviewRequestSchema>;
|
|
1046
|
+
export declare const feedTemplatePreviewFieldSchema: z.ZodObject<{
|
|
1047
|
+
outputName: z.ZodString;
|
|
1048
|
+
value: z.ZodNullable<z.ZodString>;
|
|
1049
|
+
resolvedFrom: z.ZodEnum<{
|
|
1050
|
+
source: "source";
|
|
1051
|
+
fallback: "fallback";
|
|
1052
|
+
omitted: "omitted";
|
|
1053
|
+
}>;
|
|
1054
|
+
wouldSkipItem: z.ZodBoolean;
|
|
1055
|
+
issueReason: z.ZodNullable<z.ZodEnum<{
|
|
1056
|
+
missing_price: "missing_price";
|
|
1057
|
+
missing_image: "missing_image";
|
|
1058
|
+
private_image_asset: "private_image_asset";
|
|
1059
|
+
missing_required_field: "missing_required_field";
|
|
1060
|
+
missing_translation: "missing_translation";
|
|
1061
|
+
unresolvable_link: "unresolvable_link";
|
|
1062
|
+
unmapped_provider_category: "unmapped_provider_category";
|
|
1063
|
+
stale_provider_category_mapping: "stale_provider_category_mapping";
|
|
1064
|
+
unsupported_product_type: "unsupported_product_type";
|
|
1065
|
+
zero_tax_rate_on_gross_feed: "zero_tax_rate_on_gross_feed";
|
|
1066
|
+
}>>;
|
|
1067
|
+
unbound: z.ZodBoolean;
|
|
1068
|
+
helpKey: z.ZodNullable<z.ZodString>;
|
|
1069
|
+
}, z.core.$strip>;
|
|
1070
|
+
export declare const feedTemplatePreviewResponseSchema: z.ZodObject<{
|
|
1071
|
+
data: z.ZodObject<{
|
|
1072
|
+
fields: z.ZodArray<z.ZodObject<{
|
|
1073
|
+
outputName: z.ZodString;
|
|
1074
|
+
value: z.ZodNullable<z.ZodString>;
|
|
1075
|
+
resolvedFrom: z.ZodEnum<{
|
|
1076
|
+
source: "source";
|
|
1077
|
+
fallback: "fallback";
|
|
1078
|
+
omitted: "omitted";
|
|
1079
|
+
}>;
|
|
1080
|
+
wouldSkipItem: z.ZodBoolean;
|
|
1081
|
+
issueReason: z.ZodNullable<z.ZodEnum<{
|
|
1082
|
+
missing_price: "missing_price";
|
|
1083
|
+
missing_image: "missing_image";
|
|
1084
|
+
private_image_asset: "private_image_asset";
|
|
1085
|
+
missing_required_field: "missing_required_field";
|
|
1086
|
+
missing_translation: "missing_translation";
|
|
1087
|
+
unresolvable_link: "unresolvable_link";
|
|
1088
|
+
unmapped_provider_category: "unmapped_provider_category";
|
|
1089
|
+
stale_provider_category_mapping: "stale_provider_category_mapping";
|
|
1090
|
+
unsupported_product_type: "unsupported_product_type";
|
|
1091
|
+
zero_tax_rate_on_gross_feed: "zero_tax_rate_on_gross_feed";
|
|
1092
|
+
}>>;
|
|
1093
|
+
unbound: z.ZodBoolean;
|
|
1094
|
+
helpKey: z.ZodNullable<z.ZodString>;
|
|
1095
|
+
}, z.core.$strip>>;
|
|
1096
|
+
wouldEmitItem: z.ZodBoolean;
|
|
1097
|
+
skipReason: z.ZodNullable<z.ZodEnum<{
|
|
1098
|
+
missing_price: "missing_price";
|
|
1099
|
+
missing_image: "missing_image";
|
|
1100
|
+
private_image_asset: "private_image_asset";
|
|
1101
|
+
missing_required_field: "missing_required_field";
|
|
1102
|
+
missing_translation: "missing_translation";
|
|
1103
|
+
unresolvable_link: "unresolvable_link";
|
|
1104
|
+
unmapped_provider_category: "unmapped_provider_category";
|
|
1105
|
+
stale_provider_category_mapping: "stale_provider_category_mapping";
|
|
1106
|
+
unsupported_product_type: "unsupported_product_type";
|
|
1107
|
+
zero_tax_rate_on_gross_feed: "zero_tax_rate_on_gross_feed";
|
|
1108
|
+
}>>;
|
|
1109
|
+
renderedItem: z.ZodString;
|
|
1110
|
+
resolvedContext: z.ZodObject<{
|
|
1111
|
+
salesChannelId: z.ZodString;
|
|
1112
|
+
languageCode: z.ZodString;
|
|
1113
|
+
currencyCode: z.ZodString;
|
|
1114
|
+
priceListId: z.ZodNullable<z.ZodString>;
|
|
1115
|
+
pricePresentation: z.ZodEnum<{
|
|
1116
|
+
net: "net";
|
|
1117
|
+
gross: "gross";
|
|
1118
|
+
}>;
|
|
1119
|
+
taxCountry: z.ZodNullable<z.ZodString>;
|
|
1120
|
+
}, z.core.$strip>;
|
|
1121
|
+
}, z.core.$strip>;
|
|
1122
|
+
}, z.core.$strip>;
|
|
1123
|
+
export declare const productFeedTokenSchema: z.ZodObject<{
|
|
1124
|
+
prefix: z.ZodNullable<z.ZodString>;
|
|
1125
|
+
rotatedAt: z.ZodNullable<z.ZodString>;
|
|
1126
|
+
revokedAt: z.ZodNullable<z.ZodString>;
|
|
1127
|
+
url: z.ZodNullable<z.ZodString>;
|
|
1128
|
+
urlIsLive: z.ZodBoolean;
|
|
1129
|
+
}, z.core.$strip>;
|
|
1130
|
+
export declare const productFeedRunSummarySchema: z.ZodObject<{
|
|
1131
|
+
id: z.ZodString;
|
|
1132
|
+
status: z.ZodEnum<{
|
|
1133
|
+
completed: "completed";
|
|
1134
|
+
failed: "failed";
|
|
1135
|
+
skipped: "skipped";
|
|
1136
|
+
queued: "queued";
|
|
1137
|
+
running: "running";
|
|
1138
|
+
completed_with_warnings: "completed_with_warnings";
|
|
1139
|
+
empty: "empty";
|
|
1140
|
+
}>;
|
|
1141
|
+
trigger: z.ZodEnum<{
|
|
1142
|
+
scheduled: "scheduled";
|
|
1143
|
+
manual: "manual";
|
|
1144
|
+
}>;
|
|
1145
|
+
startedAt: z.ZodNullable<z.ZodString>;
|
|
1146
|
+
finishedAt: z.ZodNullable<z.ZodString>;
|
|
1147
|
+
emittedCount: z.ZodNumber;
|
|
1148
|
+
skippedCount: z.ZodNumber;
|
|
1149
|
+
warningCount: z.ZodNumber;
|
|
1150
|
+
failureCode: z.ZodNullable<z.ZodEnum<{
|
|
1151
|
+
unbound_template_fields: "unbound_template_fields";
|
|
1152
|
+
unknown_attribute: "unknown_attribute";
|
|
1153
|
+
channel_unavailable: "channel_unavailable";
|
|
1154
|
+
storefront_url_unconfigured: "storefront_url_unconfigured";
|
|
1155
|
+
price_list_unavailable: "price_list_unavailable";
|
|
1156
|
+
language_unavailable: "language_unavailable";
|
|
1157
|
+
skip_threshold_exceeded: "skip_threshold_exceeded";
|
|
1158
|
+
storage_unavailable: "storage_unavailable";
|
|
1159
|
+
worker_lost: "worker_lost";
|
|
1160
|
+
internal_error: "internal_error";
|
|
1161
|
+
}>>;
|
|
1162
|
+
}, z.core.$strip>;
|
|
1163
|
+
export type ProductFeedRunSummary = z.infer<typeof productFeedRunSummarySchema>;
|
|
1164
|
+
export declare const productFeedSchema: z.ZodObject<{
|
|
1165
|
+
id: z.ZodString;
|
|
1166
|
+
name: z.ZodString;
|
|
1167
|
+
slug: z.ZodString;
|
|
1168
|
+
feedTemplateId: z.ZodString;
|
|
1169
|
+
feedTemplateName: z.ZodString;
|
|
1170
|
+
salesChannelId: z.ZodString;
|
|
1171
|
+
salesChannelCode: z.ZodString;
|
|
1172
|
+
languageCode: z.ZodString;
|
|
1173
|
+
currencyCode: z.ZodString;
|
|
1174
|
+
priceListId: z.ZodNullable<z.ZodString>;
|
|
1175
|
+
pricePresentation: z.ZodEnum<{
|
|
1176
|
+
net: "net";
|
|
1177
|
+
gross: "gross";
|
|
1178
|
+
}>;
|
|
1179
|
+
taxCountry: z.ZodNullable<z.ZodString>;
|
|
1180
|
+
selectionRule: z.ZodType<ProductSelectionRule, unknown, z.core.$ZodTypeInternals<ProductSelectionRule, unknown>>;
|
|
1181
|
+
schedule: z.ZodNullable<z.ZodObject<{
|
|
1182
|
+
cron: z.ZodString;
|
|
1183
|
+
timezone: z.ZodString;
|
|
1184
|
+
}, z.core.$strip>>;
|
|
1185
|
+
enabled: z.ZodBoolean;
|
|
1186
|
+
token: z.ZodObject<{
|
|
1187
|
+
prefix: z.ZodNullable<z.ZodString>;
|
|
1188
|
+
rotatedAt: z.ZodNullable<z.ZodString>;
|
|
1189
|
+
revokedAt: z.ZodNullable<z.ZodString>;
|
|
1190
|
+
url: z.ZodNullable<z.ZodString>;
|
|
1191
|
+
urlIsLive: z.ZodBoolean;
|
|
1192
|
+
}, z.core.$strip>;
|
|
1193
|
+
lastRun: z.ZodNullable<z.ZodObject<{
|
|
1194
|
+
id: z.ZodString;
|
|
1195
|
+
status: z.ZodEnum<{
|
|
1196
|
+
completed: "completed";
|
|
1197
|
+
failed: "failed";
|
|
1198
|
+
skipped: "skipped";
|
|
1199
|
+
queued: "queued";
|
|
1200
|
+
running: "running";
|
|
1201
|
+
completed_with_warnings: "completed_with_warnings";
|
|
1202
|
+
empty: "empty";
|
|
1203
|
+
}>;
|
|
1204
|
+
trigger: z.ZodEnum<{
|
|
1205
|
+
scheduled: "scheduled";
|
|
1206
|
+
manual: "manual";
|
|
1207
|
+
}>;
|
|
1208
|
+
startedAt: z.ZodNullable<z.ZodString>;
|
|
1209
|
+
finishedAt: z.ZodNullable<z.ZodString>;
|
|
1210
|
+
emittedCount: z.ZodNumber;
|
|
1211
|
+
skippedCount: z.ZodNumber;
|
|
1212
|
+
warningCount: z.ZodNumber;
|
|
1213
|
+
failureCode: z.ZodNullable<z.ZodEnum<{
|
|
1214
|
+
unbound_template_fields: "unbound_template_fields";
|
|
1215
|
+
unknown_attribute: "unknown_attribute";
|
|
1216
|
+
channel_unavailable: "channel_unavailable";
|
|
1217
|
+
storefront_url_unconfigured: "storefront_url_unconfigured";
|
|
1218
|
+
price_list_unavailable: "price_list_unavailable";
|
|
1219
|
+
language_unavailable: "language_unavailable";
|
|
1220
|
+
skip_threshold_exceeded: "skip_threshold_exceeded";
|
|
1221
|
+
storage_unavailable: "storage_unavailable";
|
|
1222
|
+
worker_lost: "worker_lost";
|
|
1223
|
+
internal_error: "internal_error";
|
|
1224
|
+
}>>;
|
|
1225
|
+
}, z.core.$strip>>;
|
|
1226
|
+
nextRunAt: z.ZodNullable<z.ZodString>;
|
|
1227
|
+
publishedArtefactId: z.ZodNullable<z.ZodString>;
|
|
1228
|
+
publishedItemCount: z.ZodNullable<z.ZodNumber>;
|
|
1229
|
+
publishedAt: z.ZodNullable<z.ZodString>;
|
|
1230
|
+
isRunning: z.ZodBoolean;
|
|
1231
|
+
scheduleTooTightWarning: z.ZodBoolean;
|
|
1232
|
+
version: z.ZodNumber;
|
|
1233
|
+
createdAt: z.ZodString;
|
|
1234
|
+
updatedAt: z.ZodString;
|
|
1235
|
+
}, z.core.$strip>;
|
|
1236
|
+
export type ProductFeed = z.infer<typeof productFeedSchema>;
|
|
1237
|
+
export declare const createProductFeedRequestSchema: z.ZodObject<{
|
|
1238
|
+
name: z.ZodString;
|
|
1239
|
+
slug: z.ZodString;
|
|
1240
|
+
feedTemplateId: z.ZodString;
|
|
1241
|
+
salesChannelId: z.ZodString;
|
|
1242
|
+
languageCode: z.ZodString;
|
|
1243
|
+
currencyCode: z.ZodString;
|
|
1244
|
+
priceListId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1245
|
+
pricePresentation: z.ZodDefault<z.ZodEnum<{
|
|
1246
|
+
net: "net";
|
|
1247
|
+
gross: "gross";
|
|
1248
|
+
}>>;
|
|
1249
|
+
taxCountry: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1250
|
+
selectionRule: z.ZodDefault<z.ZodType<ProductSelectionRule, unknown, z.core.$ZodTypeInternals<ProductSelectionRule, unknown>>>;
|
|
1251
|
+
schedule: z.ZodDefault<z.ZodNullable<z.ZodObject<{
|
|
1252
|
+
cron: z.ZodString;
|
|
1253
|
+
timezone: z.ZodString;
|
|
1254
|
+
}, z.core.$strip>>>;
|
|
1255
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
1256
|
+
}, z.core.$strip>;
|
|
1257
|
+
export type CreateProductFeedRequest = z.infer<typeof createProductFeedRequestSchema>;
|
|
1258
|
+
/**
|
|
1259
|
+
* A PATCH carries only what the operator changed.
|
|
1260
|
+
*
|
|
1261
|
+
* The defaulted keys are re-declared without their defaults on purpose:
|
|
1262
|
+
* `z.object().partial()` makes a key optional but does **not** remove its
|
|
1263
|
+
* `.default()`, so a plain `.partial()` would inject `pricePresentation:
|
|
1264
|
+
* 'gross'`, `selectionRule: {kind:'all'}`, `schedule: null` and `enabled: true`
|
|
1265
|
+
* into every PATCH body. Renaming a feed would then silently flip it to gross
|
|
1266
|
+
* prices (and fail cross-field validation for want of a `taxCountry`), reset
|
|
1267
|
+
* its criteria and drop its schedule.
|
|
1268
|
+
*/
|
|
1269
|
+
export declare const updateProductFeedRequestSchema: z.ZodObject<{
|
|
1270
|
+
languageCode: z.ZodOptional<z.ZodString>;
|
|
1271
|
+
name: z.ZodOptional<z.ZodString>;
|
|
1272
|
+
salesChannelId: z.ZodOptional<z.ZodString>;
|
|
1273
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
1274
|
+
priceListId: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
1275
|
+
currencyCode: z.ZodOptional<z.ZodString>;
|
|
1276
|
+
taxCountry: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
1277
|
+
feedTemplateId: z.ZodOptional<z.ZodString>;
|
|
1278
|
+
pricePresentation: z.ZodOptional<z.ZodEnum<{
|
|
1279
|
+
net: "net";
|
|
1280
|
+
gross: "gross";
|
|
1281
|
+
}>>;
|
|
1282
|
+
selectionRule: z.ZodOptional<z.ZodType<ProductSelectionRule, unknown, z.core.$ZodTypeInternals<ProductSelectionRule, unknown>>>;
|
|
1283
|
+
schedule: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
1284
|
+
cron: z.ZodString;
|
|
1285
|
+
timezone: z.ZodString;
|
|
1286
|
+
}, z.core.$strip>>>;
|
|
1287
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
1288
|
+
}, z.core.$strip>;
|
|
1289
|
+
export type UpdateProductFeedRequest = z.infer<typeof updateProductFeedRequestSchema>;
|
|
1290
|
+
export declare const duplicateProductFeedRequestSchema: z.ZodObject<{
|
|
1291
|
+
name: z.ZodString;
|
|
1292
|
+
slug: z.ZodString;
|
|
1293
|
+
languageCode: z.ZodOptional<z.ZodString>;
|
|
1294
|
+
currencyCode: z.ZodOptional<z.ZodString>;
|
|
1295
|
+
}, z.core.$strip>;
|
|
1296
|
+
export type DuplicateProductFeedRequest = z.infer<typeof duplicateProductFeedRequestSchema>;
|
|
1297
|
+
export declare const productFeedResponseSchema: z.ZodObject<{
|
|
1298
|
+
data: z.ZodObject<{
|
|
1299
|
+
id: z.ZodString;
|
|
1300
|
+
name: z.ZodString;
|
|
1301
|
+
slug: z.ZodString;
|
|
1302
|
+
feedTemplateId: z.ZodString;
|
|
1303
|
+
feedTemplateName: z.ZodString;
|
|
1304
|
+
salesChannelId: z.ZodString;
|
|
1305
|
+
salesChannelCode: z.ZodString;
|
|
1306
|
+
languageCode: z.ZodString;
|
|
1307
|
+
currencyCode: z.ZodString;
|
|
1308
|
+
priceListId: z.ZodNullable<z.ZodString>;
|
|
1309
|
+
pricePresentation: z.ZodEnum<{
|
|
1310
|
+
net: "net";
|
|
1311
|
+
gross: "gross";
|
|
1312
|
+
}>;
|
|
1313
|
+
taxCountry: z.ZodNullable<z.ZodString>;
|
|
1314
|
+
selectionRule: z.ZodType<ProductSelectionRule, unknown, z.core.$ZodTypeInternals<ProductSelectionRule, unknown>>;
|
|
1315
|
+
schedule: z.ZodNullable<z.ZodObject<{
|
|
1316
|
+
cron: z.ZodString;
|
|
1317
|
+
timezone: z.ZodString;
|
|
1318
|
+
}, z.core.$strip>>;
|
|
1319
|
+
enabled: z.ZodBoolean;
|
|
1320
|
+
token: z.ZodObject<{
|
|
1321
|
+
prefix: z.ZodNullable<z.ZodString>;
|
|
1322
|
+
rotatedAt: z.ZodNullable<z.ZodString>;
|
|
1323
|
+
revokedAt: z.ZodNullable<z.ZodString>;
|
|
1324
|
+
url: z.ZodNullable<z.ZodString>;
|
|
1325
|
+
urlIsLive: z.ZodBoolean;
|
|
1326
|
+
}, z.core.$strip>;
|
|
1327
|
+
lastRun: z.ZodNullable<z.ZodObject<{
|
|
1328
|
+
id: z.ZodString;
|
|
1329
|
+
status: z.ZodEnum<{
|
|
1330
|
+
completed: "completed";
|
|
1331
|
+
failed: "failed";
|
|
1332
|
+
skipped: "skipped";
|
|
1333
|
+
queued: "queued";
|
|
1334
|
+
running: "running";
|
|
1335
|
+
completed_with_warnings: "completed_with_warnings";
|
|
1336
|
+
empty: "empty";
|
|
1337
|
+
}>;
|
|
1338
|
+
trigger: z.ZodEnum<{
|
|
1339
|
+
scheduled: "scheduled";
|
|
1340
|
+
manual: "manual";
|
|
1341
|
+
}>;
|
|
1342
|
+
startedAt: z.ZodNullable<z.ZodString>;
|
|
1343
|
+
finishedAt: z.ZodNullable<z.ZodString>;
|
|
1344
|
+
emittedCount: z.ZodNumber;
|
|
1345
|
+
skippedCount: z.ZodNumber;
|
|
1346
|
+
warningCount: z.ZodNumber;
|
|
1347
|
+
failureCode: z.ZodNullable<z.ZodEnum<{
|
|
1348
|
+
unbound_template_fields: "unbound_template_fields";
|
|
1349
|
+
unknown_attribute: "unknown_attribute";
|
|
1350
|
+
channel_unavailable: "channel_unavailable";
|
|
1351
|
+
storefront_url_unconfigured: "storefront_url_unconfigured";
|
|
1352
|
+
price_list_unavailable: "price_list_unavailable";
|
|
1353
|
+
language_unavailable: "language_unavailable";
|
|
1354
|
+
skip_threshold_exceeded: "skip_threshold_exceeded";
|
|
1355
|
+
storage_unavailable: "storage_unavailable";
|
|
1356
|
+
worker_lost: "worker_lost";
|
|
1357
|
+
internal_error: "internal_error";
|
|
1358
|
+
}>>;
|
|
1359
|
+
}, z.core.$strip>>;
|
|
1360
|
+
nextRunAt: z.ZodNullable<z.ZodString>;
|
|
1361
|
+
publishedArtefactId: z.ZodNullable<z.ZodString>;
|
|
1362
|
+
publishedItemCount: z.ZodNullable<z.ZodNumber>;
|
|
1363
|
+
publishedAt: z.ZodNullable<z.ZodString>;
|
|
1364
|
+
isRunning: z.ZodBoolean;
|
|
1365
|
+
scheduleTooTightWarning: z.ZodBoolean;
|
|
1366
|
+
version: z.ZodNumber;
|
|
1367
|
+
createdAt: z.ZodString;
|
|
1368
|
+
updatedAt: z.ZodString;
|
|
1369
|
+
}, z.core.$strip>;
|
|
1370
|
+
}, z.core.$strip>;
|
|
1371
|
+
export declare const productFeedListResponseSchema: z.ZodObject<{
|
|
1372
|
+
data: z.ZodArray<z.ZodObject<{
|
|
1373
|
+
id: z.ZodString;
|
|
1374
|
+
name: z.ZodString;
|
|
1375
|
+
slug: z.ZodString;
|
|
1376
|
+
feedTemplateId: z.ZodString;
|
|
1377
|
+
feedTemplateName: z.ZodString;
|
|
1378
|
+
salesChannelId: z.ZodString;
|
|
1379
|
+
salesChannelCode: z.ZodString;
|
|
1380
|
+
languageCode: z.ZodString;
|
|
1381
|
+
currencyCode: z.ZodString;
|
|
1382
|
+
priceListId: z.ZodNullable<z.ZodString>;
|
|
1383
|
+
pricePresentation: z.ZodEnum<{
|
|
1384
|
+
net: "net";
|
|
1385
|
+
gross: "gross";
|
|
1386
|
+
}>;
|
|
1387
|
+
taxCountry: z.ZodNullable<z.ZodString>;
|
|
1388
|
+
selectionRule: z.ZodType<ProductSelectionRule, unknown, z.core.$ZodTypeInternals<ProductSelectionRule, unknown>>;
|
|
1389
|
+
schedule: z.ZodNullable<z.ZodObject<{
|
|
1390
|
+
cron: z.ZodString;
|
|
1391
|
+
timezone: z.ZodString;
|
|
1392
|
+
}, z.core.$strip>>;
|
|
1393
|
+
enabled: z.ZodBoolean;
|
|
1394
|
+
token: z.ZodObject<{
|
|
1395
|
+
prefix: z.ZodNullable<z.ZodString>;
|
|
1396
|
+
rotatedAt: z.ZodNullable<z.ZodString>;
|
|
1397
|
+
revokedAt: z.ZodNullable<z.ZodString>;
|
|
1398
|
+
url: z.ZodNullable<z.ZodString>;
|
|
1399
|
+
urlIsLive: z.ZodBoolean;
|
|
1400
|
+
}, z.core.$strip>;
|
|
1401
|
+
lastRun: z.ZodNullable<z.ZodObject<{
|
|
1402
|
+
id: z.ZodString;
|
|
1403
|
+
status: z.ZodEnum<{
|
|
1404
|
+
completed: "completed";
|
|
1405
|
+
failed: "failed";
|
|
1406
|
+
skipped: "skipped";
|
|
1407
|
+
queued: "queued";
|
|
1408
|
+
running: "running";
|
|
1409
|
+
completed_with_warnings: "completed_with_warnings";
|
|
1410
|
+
empty: "empty";
|
|
1411
|
+
}>;
|
|
1412
|
+
trigger: z.ZodEnum<{
|
|
1413
|
+
scheduled: "scheduled";
|
|
1414
|
+
manual: "manual";
|
|
1415
|
+
}>;
|
|
1416
|
+
startedAt: z.ZodNullable<z.ZodString>;
|
|
1417
|
+
finishedAt: z.ZodNullable<z.ZodString>;
|
|
1418
|
+
emittedCount: z.ZodNumber;
|
|
1419
|
+
skippedCount: z.ZodNumber;
|
|
1420
|
+
warningCount: z.ZodNumber;
|
|
1421
|
+
failureCode: z.ZodNullable<z.ZodEnum<{
|
|
1422
|
+
unbound_template_fields: "unbound_template_fields";
|
|
1423
|
+
unknown_attribute: "unknown_attribute";
|
|
1424
|
+
channel_unavailable: "channel_unavailable";
|
|
1425
|
+
storefront_url_unconfigured: "storefront_url_unconfigured";
|
|
1426
|
+
price_list_unavailable: "price_list_unavailable";
|
|
1427
|
+
language_unavailable: "language_unavailable";
|
|
1428
|
+
skip_threshold_exceeded: "skip_threshold_exceeded";
|
|
1429
|
+
storage_unavailable: "storage_unavailable";
|
|
1430
|
+
worker_lost: "worker_lost";
|
|
1431
|
+
internal_error: "internal_error";
|
|
1432
|
+
}>>;
|
|
1433
|
+
}, z.core.$strip>>;
|
|
1434
|
+
nextRunAt: z.ZodNullable<z.ZodString>;
|
|
1435
|
+
publishedArtefactId: z.ZodNullable<z.ZodString>;
|
|
1436
|
+
publishedItemCount: z.ZodNullable<z.ZodNumber>;
|
|
1437
|
+
publishedAt: z.ZodNullable<z.ZodString>;
|
|
1438
|
+
isRunning: z.ZodBoolean;
|
|
1439
|
+
scheduleTooTightWarning: z.ZodBoolean;
|
|
1440
|
+
version: z.ZodNumber;
|
|
1441
|
+
createdAt: z.ZodString;
|
|
1442
|
+
updatedAt: z.ZodString;
|
|
1443
|
+
}, z.core.$strip>>;
|
|
1444
|
+
pagination: z.ZodObject<{
|
|
1445
|
+
cursor: z.ZodNullable<z.ZodString>;
|
|
1446
|
+
hasMore: z.ZodBoolean;
|
|
1447
|
+
limit: z.ZodNumber;
|
|
1448
|
+
}, z.core.$strip>;
|
|
1449
|
+
}, z.core.$strip>;
|
|
1450
|
+
/** Returned exactly once, on create and on rotate. Never re-readable (FR-047). */
|
|
1451
|
+
export declare const productFeedTokenIssuedResponseSchema: z.ZodObject<{
|
|
1452
|
+
data: z.ZodObject<{
|
|
1453
|
+
token: z.ZodString;
|
|
1454
|
+
url: z.ZodString;
|
|
1455
|
+
prefix: z.ZodString;
|
|
1456
|
+
rotatedAt: z.ZodString;
|
|
1457
|
+
}, z.core.$strip>;
|
|
1458
|
+
}, z.core.$strip>;
|
|
1459
|
+
/**
|
|
1460
|
+
* Match count for a criteria set **before saving** (FR-028).
|
|
1461
|
+
*
|
|
1462
|
+
* Draft-shaped by construction: it takes a channel and a rule, never a feed id,
|
|
1463
|
+
* so the count works on `/product-feeds/new` where no feed exists yet and on an
|
|
1464
|
+
* edited-but-unsaved criteria panel. Side-effect-free.
|
|
1465
|
+
*/
|
|
1466
|
+
export declare const productSelectionPreviewRequestSchema: z.ZodObject<{
|
|
1467
|
+
salesChannelId: z.ZodString;
|
|
1468
|
+
selectionRule: z.ZodType<ProductSelectionRule, unknown, z.core.$ZodTypeInternals<ProductSelectionRule, unknown>>;
|
|
1469
|
+
}, z.core.$strip>;
|
|
1470
|
+
export declare const productSelectionPreviewResponseSchema: z.ZodObject<{
|
|
1471
|
+
data: z.ZodObject<{
|
|
1472
|
+
matchedCount: z.ZodNumber;
|
|
1473
|
+
sample: z.ZodArray<z.ZodObject<{
|
|
1474
|
+
id: z.ZodString;
|
|
1475
|
+
sku: z.ZodString;
|
|
1476
|
+
name: z.ZodString;
|
|
1477
|
+
}, z.core.$strip>>;
|
|
1478
|
+
}, z.core.$strip>;
|
|
1479
|
+
}, z.core.$strip>;
|
|
1480
|
+
export declare const feedRunIssueSchema: z.ZodObject<{
|
|
1481
|
+
id: z.ZodString;
|
|
1482
|
+
severity: z.ZodEnum<{
|
|
1483
|
+
warning: "warning";
|
|
1484
|
+
skip: "skip";
|
|
1485
|
+
}>;
|
|
1486
|
+
reason: z.ZodEnum<{
|
|
1487
|
+
missing_price: "missing_price";
|
|
1488
|
+
missing_image: "missing_image";
|
|
1489
|
+
private_image_asset: "private_image_asset";
|
|
1490
|
+
missing_required_field: "missing_required_field";
|
|
1491
|
+
missing_translation: "missing_translation";
|
|
1492
|
+
unresolvable_link: "unresolvable_link";
|
|
1493
|
+
unmapped_provider_category: "unmapped_provider_category";
|
|
1494
|
+
stale_provider_category_mapping: "stale_provider_category_mapping";
|
|
1495
|
+
unsupported_product_type: "unsupported_product_type";
|
|
1496
|
+
zero_tax_rate_on_gross_feed: "zero_tax_rate_on_gross_feed";
|
|
1497
|
+
}>;
|
|
1498
|
+
productId: z.ZodNullable<z.ZodString>;
|
|
1499
|
+
variantId: z.ZodNullable<z.ZodString>;
|
|
1500
|
+
sku: z.ZodNullable<z.ZodString>;
|
|
1501
|
+
outputName: z.ZodNullable<z.ZodString>;
|
|
1502
|
+
detail: z.ZodNullable<z.ZodString>;
|
|
1503
|
+
}, z.core.$strip>;
|
|
1504
|
+
export type FeedRunIssue = z.infer<typeof feedRunIssueSchema>;
|
|
1505
|
+
export declare const feedRunSchema: z.ZodObject<{
|
|
1506
|
+
id: z.ZodString;
|
|
1507
|
+
status: z.ZodEnum<{
|
|
1508
|
+
completed: "completed";
|
|
1509
|
+
failed: "failed";
|
|
1510
|
+
skipped: "skipped";
|
|
1511
|
+
queued: "queued";
|
|
1512
|
+
running: "running";
|
|
1513
|
+
completed_with_warnings: "completed_with_warnings";
|
|
1514
|
+
empty: "empty";
|
|
1515
|
+
}>;
|
|
1516
|
+
trigger: z.ZodEnum<{
|
|
1517
|
+
scheduled: "scheduled";
|
|
1518
|
+
manual: "manual";
|
|
1519
|
+
}>;
|
|
1520
|
+
startedAt: z.ZodNullable<z.ZodString>;
|
|
1521
|
+
finishedAt: z.ZodNullable<z.ZodString>;
|
|
1522
|
+
emittedCount: z.ZodNumber;
|
|
1523
|
+
skippedCount: z.ZodNumber;
|
|
1524
|
+
warningCount: z.ZodNumber;
|
|
1525
|
+
failureCode: z.ZodNullable<z.ZodEnum<{
|
|
1526
|
+
unbound_template_fields: "unbound_template_fields";
|
|
1527
|
+
unknown_attribute: "unknown_attribute";
|
|
1528
|
+
channel_unavailable: "channel_unavailable";
|
|
1529
|
+
storefront_url_unconfigured: "storefront_url_unconfigured";
|
|
1530
|
+
price_list_unavailable: "price_list_unavailable";
|
|
1531
|
+
language_unavailable: "language_unavailable";
|
|
1532
|
+
skip_threshold_exceeded: "skip_threshold_exceeded";
|
|
1533
|
+
storage_unavailable: "storage_unavailable";
|
|
1534
|
+
worker_lost: "worker_lost";
|
|
1535
|
+
internal_error: "internal_error";
|
|
1536
|
+
}>>;
|
|
1537
|
+
productFeedId: z.ZodString;
|
|
1538
|
+
triggeredByAdminUserId: z.ZodNullable<z.ZodString>;
|
|
1539
|
+
consideredCount: z.ZodNumber;
|
|
1540
|
+
durationMs: z.ZodNullable<z.ZodNumber>;
|
|
1541
|
+
failureDetail: z.ZodNullable<z.ZodString>;
|
|
1542
|
+
skipReason: z.ZodNullable<z.ZodEnum<{
|
|
1543
|
+
already_running: "already_running";
|
|
1544
|
+
feed_disabled: "feed_disabled";
|
|
1545
|
+
}>>;
|
|
1546
|
+
issueOverflow: z.ZodBoolean;
|
|
1547
|
+
artefact: z.ZodNullable<z.ZodObject<{
|
|
1548
|
+
id: z.ZodString;
|
|
1549
|
+
byteSize: z.ZodNumber;
|
|
1550
|
+
itemCount: z.ZodNumber;
|
|
1551
|
+
contentType: z.ZodString;
|
|
1552
|
+
producedAt: z.ZodString;
|
|
1553
|
+
isPublished: z.ZodBoolean;
|
|
1554
|
+
}, z.core.$strip>>;
|
|
1555
|
+
createdAt: z.ZodString;
|
|
1556
|
+
}, z.core.$strip>;
|
|
1557
|
+
export type FeedRun = z.infer<typeof feedRunSchema>;
|
|
1558
|
+
export declare const feedRunResponseSchema: z.ZodObject<{
|
|
1559
|
+
data: z.ZodObject<{
|
|
1560
|
+
id: z.ZodString;
|
|
1561
|
+
status: z.ZodEnum<{
|
|
1562
|
+
completed: "completed";
|
|
1563
|
+
failed: "failed";
|
|
1564
|
+
skipped: "skipped";
|
|
1565
|
+
queued: "queued";
|
|
1566
|
+
running: "running";
|
|
1567
|
+
completed_with_warnings: "completed_with_warnings";
|
|
1568
|
+
empty: "empty";
|
|
1569
|
+
}>;
|
|
1570
|
+
trigger: z.ZodEnum<{
|
|
1571
|
+
scheduled: "scheduled";
|
|
1572
|
+
manual: "manual";
|
|
1573
|
+
}>;
|
|
1574
|
+
startedAt: z.ZodNullable<z.ZodString>;
|
|
1575
|
+
finishedAt: z.ZodNullable<z.ZodString>;
|
|
1576
|
+
emittedCount: z.ZodNumber;
|
|
1577
|
+
skippedCount: z.ZodNumber;
|
|
1578
|
+
warningCount: z.ZodNumber;
|
|
1579
|
+
failureCode: z.ZodNullable<z.ZodEnum<{
|
|
1580
|
+
unbound_template_fields: "unbound_template_fields";
|
|
1581
|
+
unknown_attribute: "unknown_attribute";
|
|
1582
|
+
channel_unavailable: "channel_unavailable";
|
|
1583
|
+
storefront_url_unconfigured: "storefront_url_unconfigured";
|
|
1584
|
+
price_list_unavailable: "price_list_unavailable";
|
|
1585
|
+
language_unavailable: "language_unavailable";
|
|
1586
|
+
skip_threshold_exceeded: "skip_threshold_exceeded";
|
|
1587
|
+
storage_unavailable: "storage_unavailable";
|
|
1588
|
+
worker_lost: "worker_lost";
|
|
1589
|
+
internal_error: "internal_error";
|
|
1590
|
+
}>>;
|
|
1591
|
+
productFeedId: z.ZodString;
|
|
1592
|
+
triggeredByAdminUserId: z.ZodNullable<z.ZodString>;
|
|
1593
|
+
consideredCount: z.ZodNumber;
|
|
1594
|
+
durationMs: z.ZodNullable<z.ZodNumber>;
|
|
1595
|
+
failureDetail: z.ZodNullable<z.ZodString>;
|
|
1596
|
+
skipReason: z.ZodNullable<z.ZodEnum<{
|
|
1597
|
+
already_running: "already_running";
|
|
1598
|
+
feed_disabled: "feed_disabled";
|
|
1599
|
+
}>>;
|
|
1600
|
+
issueOverflow: z.ZodBoolean;
|
|
1601
|
+
artefact: z.ZodNullable<z.ZodObject<{
|
|
1602
|
+
id: z.ZodString;
|
|
1603
|
+
byteSize: z.ZodNumber;
|
|
1604
|
+
itemCount: z.ZodNumber;
|
|
1605
|
+
contentType: z.ZodString;
|
|
1606
|
+
producedAt: z.ZodString;
|
|
1607
|
+
isPublished: z.ZodBoolean;
|
|
1608
|
+
}, z.core.$strip>>;
|
|
1609
|
+
createdAt: z.ZodString;
|
|
1610
|
+
}, z.core.$strip>;
|
|
1611
|
+
}, z.core.$strip>;
|
|
1612
|
+
export declare const feedRunListResponseSchema: z.ZodObject<{
|
|
1613
|
+
data: z.ZodArray<z.ZodObject<{
|
|
1614
|
+
id: z.ZodString;
|
|
1615
|
+
status: z.ZodEnum<{
|
|
1616
|
+
completed: "completed";
|
|
1617
|
+
failed: "failed";
|
|
1618
|
+
skipped: "skipped";
|
|
1619
|
+
queued: "queued";
|
|
1620
|
+
running: "running";
|
|
1621
|
+
completed_with_warnings: "completed_with_warnings";
|
|
1622
|
+
empty: "empty";
|
|
1623
|
+
}>;
|
|
1624
|
+
trigger: z.ZodEnum<{
|
|
1625
|
+
scheduled: "scheduled";
|
|
1626
|
+
manual: "manual";
|
|
1627
|
+
}>;
|
|
1628
|
+
startedAt: z.ZodNullable<z.ZodString>;
|
|
1629
|
+
finishedAt: z.ZodNullable<z.ZodString>;
|
|
1630
|
+
emittedCount: z.ZodNumber;
|
|
1631
|
+
skippedCount: z.ZodNumber;
|
|
1632
|
+
warningCount: z.ZodNumber;
|
|
1633
|
+
failureCode: z.ZodNullable<z.ZodEnum<{
|
|
1634
|
+
unbound_template_fields: "unbound_template_fields";
|
|
1635
|
+
unknown_attribute: "unknown_attribute";
|
|
1636
|
+
channel_unavailable: "channel_unavailable";
|
|
1637
|
+
storefront_url_unconfigured: "storefront_url_unconfigured";
|
|
1638
|
+
price_list_unavailable: "price_list_unavailable";
|
|
1639
|
+
language_unavailable: "language_unavailable";
|
|
1640
|
+
skip_threshold_exceeded: "skip_threshold_exceeded";
|
|
1641
|
+
storage_unavailable: "storage_unavailable";
|
|
1642
|
+
worker_lost: "worker_lost";
|
|
1643
|
+
internal_error: "internal_error";
|
|
1644
|
+
}>>;
|
|
1645
|
+
productFeedId: z.ZodString;
|
|
1646
|
+
triggeredByAdminUserId: z.ZodNullable<z.ZodString>;
|
|
1647
|
+
consideredCount: z.ZodNumber;
|
|
1648
|
+
durationMs: z.ZodNullable<z.ZodNumber>;
|
|
1649
|
+
failureDetail: z.ZodNullable<z.ZodString>;
|
|
1650
|
+
skipReason: z.ZodNullable<z.ZodEnum<{
|
|
1651
|
+
already_running: "already_running";
|
|
1652
|
+
feed_disabled: "feed_disabled";
|
|
1653
|
+
}>>;
|
|
1654
|
+
issueOverflow: z.ZodBoolean;
|
|
1655
|
+
artefact: z.ZodNullable<z.ZodObject<{
|
|
1656
|
+
id: z.ZodString;
|
|
1657
|
+
byteSize: z.ZodNumber;
|
|
1658
|
+
itemCount: z.ZodNumber;
|
|
1659
|
+
contentType: z.ZodString;
|
|
1660
|
+
producedAt: z.ZodString;
|
|
1661
|
+
isPublished: z.ZodBoolean;
|
|
1662
|
+
}, z.core.$strip>>;
|
|
1663
|
+
createdAt: z.ZodString;
|
|
1664
|
+
}, z.core.$strip>>;
|
|
1665
|
+
pagination: z.ZodObject<{
|
|
1666
|
+
cursor: z.ZodNullable<z.ZodString>;
|
|
1667
|
+
hasMore: z.ZodBoolean;
|
|
1668
|
+
limit: z.ZodNumber;
|
|
1669
|
+
}, z.core.$strip>;
|
|
1670
|
+
}, z.core.$strip>;
|
|
1671
|
+
export declare const feedRunIssueListResponseSchema: z.ZodObject<{
|
|
1672
|
+
data: z.ZodArray<z.ZodObject<{
|
|
1673
|
+
id: z.ZodString;
|
|
1674
|
+
severity: z.ZodEnum<{
|
|
1675
|
+
warning: "warning";
|
|
1676
|
+
skip: "skip";
|
|
1677
|
+
}>;
|
|
1678
|
+
reason: z.ZodEnum<{
|
|
1679
|
+
missing_price: "missing_price";
|
|
1680
|
+
missing_image: "missing_image";
|
|
1681
|
+
private_image_asset: "private_image_asset";
|
|
1682
|
+
missing_required_field: "missing_required_field";
|
|
1683
|
+
missing_translation: "missing_translation";
|
|
1684
|
+
unresolvable_link: "unresolvable_link";
|
|
1685
|
+
unmapped_provider_category: "unmapped_provider_category";
|
|
1686
|
+
stale_provider_category_mapping: "stale_provider_category_mapping";
|
|
1687
|
+
unsupported_product_type: "unsupported_product_type";
|
|
1688
|
+
zero_tax_rate_on_gross_feed: "zero_tax_rate_on_gross_feed";
|
|
1689
|
+
}>;
|
|
1690
|
+
productId: z.ZodNullable<z.ZodString>;
|
|
1691
|
+
variantId: z.ZodNullable<z.ZodString>;
|
|
1692
|
+
sku: z.ZodNullable<z.ZodString>;
|
|
1693
|
+
outputName: z.ZodNullable<z.ZodString>;
|
|
1694
|
+
detail: z.ZodNullable<z.ZodString>;
|
|
1695
|
+
}, z.core.$strip>>;
|
|
1696
|
+
pagination: z.ZodObject<{
|
|
1697
|
+
cursor: z.ZodNullable<z.ZodString>;
|
|
1698
|
+
hasMore: z.ZodBoolean;
|
|
1699
|
+
limit: z.ZodNumber;
|
|
1700
|
+
}, z.core.$strip>;
|
|
1701
|
+
}, z.core.$strip>;
|
|
1702
|
+
export declare const feedRunListQuerySchema: z.ZodObject<{
|
|
1703
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
1704
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
1705
|
+
sort: z.ZodOptional<z.ZodString>;
|
|
1706
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
1707
|
+
completed: "completed";
|
|
1708
|
+
failed: "failed";
|
|
1709
|
+
skipped: "skipped";
|
|
1710
|
+
queued: "queued";
|
|
1711
|
+
running: "running";
|
|
1712
|
+
completed_with_warnings: "completed_with_warnings";
|
|
1713
|
+
empty: "empty";
|
|
1714
|
+
}>>;
|
|
1715
|
+
}, z.core.$strip>;
|
|
1716
|
+
/** Accepted-and-enqueued acknowledgement; the work never runs inline (FR-032). */
|
|
1717
|
+
export declare const startFeedRunResponseSchema: z.ZodObject<{
|
|
1718
|
+
data: z.ZodObject<{
|
|
1719
|
+
runId: z.ZodString;
|
|
1720
|
+
status: z.ZodLiteral<"queued">;
|
|
1721
|
+
}, z.core.$strip>;
|
|
1722
|
+
}, z.core.$strip>;
|
|
1723
|
+
export declare const feedTaxonomySchema: z.ZodObject<{
|
|
1724
|
+
providerCode: z.ZodEnum<{
|
|
1725
|
+
meta: "meta";
|
|
1726
|
+
google_merchant: "google_merchant";
|
|
1727
|
+
}>;
|
|
1728
|
+
revision: z.ZodString;
|
|
1729
|
+
nodeCount: z.ZodNumber;
|
|
1730
|
+
installedAt: z.ZodString;
|
|
1731
|
+
}, z.core.$strip>;
|
|
1732
|
+
export type FeedTaxonomy = z.infer<typeof feedTaxonomySchema>;
|
|
1733
|
+
export declare const feedTaxonomyNodeSchema: z.ZodObject<{
|
|
1734
|
+
externalId: z.ZodString;
|
|
1735
|
+
parentExternalId: z.ZodNullable<z.ZodString>;
|
|
1736
|
+
label: z.ZodString;
|
|
1737
|
+
fullPath: z.ZodString;
|
|
1738
|
+
depth: z.ZodNumber;
|
|
1739
|
+
}, z.core.$strip>;
|
|
1740
|
+
export type FeedTaxonomyNode = z.infer<typeof feedTaxonomyNodeSchema>;
|
|
1741
|
+
export declare const feedTaxonomyNodeSearchQuerySchema: z.ZodObject<{
|
|
1742
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
1743
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
1744
|
+
sort: z.ZodOptional<z.ZodString>;
|
|
1745
|
+
providerCode: z.ZodEnum<{
|
|
1746
|
+
meta: "meta";
|
|
1747
|
+
google_merchant: "google_merchant";
|
|
1748
|
+
}>;
|
|
1749
|
+
q: z.ZodOptional<z.ZodString>;
|
|
1750
|
+
lang: z.ZodOptional<z.ZodString>;
|
|
1751
|
+
}, z.core.$strip>;
|
|
1752
|
+
export declare const feedTaxonomyMappingSchema: z.ZodObject<{
|
|
1753
|
+
categoryId: z.ZodString;
|
|
1754
|
+
categoryName: z.ZodString;
|
|
1755
|
+
categoryDepth: z.ZodNumber;
|
|
1756
|
+
nodeExternalId: z.ZodNullable<z.ZodString>;
|
|
1757
|
+
nodeFullPath: z.ZodNullable<z.ZodString>;
|
|
1758
|
+
origin: z.ZodEnum<{
|
|
1759
|
+
none: "none";
|
|
1760
|
+
explicit: "explicit";
|
|
1761
|
+
inherited: "inherited";
|
|
1762
|
+
}>;
|
|
1763
|
+
inheritedFromCategoryId: z.ZodNullable<z.ZodString>;
|
|
1764
|
+
inheritedFromCategoryName: z.ZodNullable<z.ZodString>;
|
|
1765
|
+
stale: z.ZodBoolean;
|
|
1766
|
+
}, z.core.$strip>;
|
|
1767
|
+
export type FeedTaxonomyMapping = z.infer<typeof feedTaxonomyMappingSchema>;
|
|
1768
|
+
export declare const setFeedTaxonomyMappingRequestSchema: z.ZodObject<{
|
|
1769
|
+
providerCode: z.ZodEnum<{
|
|
1770
|
+
meta: "meta";
|
|
1771
|
+
google_merchant: "google_merchant";
|
|
1772
|
+
}>;
|
|
1773
|
+
categoryId: z.ZodString;
|
|
1774
|
+
nodeExternalId: z.ZodNullable<z.ZodString>;
|
|
1775
|
+
}, z.core.$strip>;
|
|
1776
|
+
export type SetFeedTaxonomyMappingRequest = z.infer<typeof setFeedTaxonomyMappingRequestSchema>;
|
|
1777
|
+
export declare const feedTaxonomyMappingListResponseSchema: z.ZodObject<{
|
|
1778
|
+
data: z.ZodArray<z.ZodObject<{
|
|
1779
|
+
categoryId: z.ZodString;
|
|
1780
|
+
categoryName: z.ZodString;
|
|
1781
|
+
categoryDepth: z.ZodNumber;
|
|
1782
|
+
nodeExternalId: z.ZodNullable<z.ZodString>;
|
|
1783
|
+
nodeFullPath: z.ZodNullable<z.ZodString>;
|
|
1784
|
+
origin: z.ZodEnum<{
|
|
1785
|
+
none: "none";
|
|
1786
|
+
explicit: "explicit";
|
|
1787
|
+
inherited: "inherited";
|
|
1788
|
+
}>;
|
|
1789
|
+
inheritedFromCategoryId: z.ZodNullable<z.ZodString>;
|
|
1790
|
+
inheritedFromCategoryName: z.ZodNullable<z.ZodString>;
|
|
1791
|
+
stale: z.ZodBoolean;
|
|
1792
|
+
}, z.core.$strip>>;
|
|
1793
|
+
pagination: z.ZodObject<{
|
|
1794
|
+
cursor: z.ZodNullable<z.ZodString>;
|
|
1795
|
+
hasMore: z.ZodBoolean;
|
|
1796
|
+
limit: z.ZodNumber;
|
|
1797
|
+
}, z.core.$strip>;
|
|
1798
|
+
}, z.core.$strip>;
|
|
1799
|
+
/** Coverage summary shown above the mapping surface (FR-079). */
|
|
1800
|
+
export declare const feedTaxonomyCoverageResponseSchema: z.ZodObject<{
|
|
1801
|
+
data: z.ZodObject<{
|
|
1802
|
+
providerCode: z.ZodEnum<{
|
|
1803
|
+
meta: "meta";
|
|
1804
|
+
google_merchant: "google_merchant";
|
|
1805
|
+
}>;
|
|
1806
|
+
revision: z.ZodString;
|
|
1807
|
+
totalCategories: z.ZodNumber;
|
|
1808
|
+
explicitlyMapped: z.ZodNumber;
|
|
1809
|
+
coveredByInheritance: z.ZodNumber;
|
|
1810
|
+
uncovered: z.ZodNumber;
|
|
1811
|
+
staleMappings: z.ZodNumber;
|
|
1812
|
+
}, z.core.$strip>;
|
|
1813
|
+
}, z.core.$strip>;
|
|
1814
|
+
/** Where a revision came from (FR-078). Both kinds are the same object to the operator. */
|
|
1815
|
+
export declare const feedTaxonomyRevisionSourceSchema: z.ZodEnum<{
|
|
1816
|
+
bundled: "bundled";
|
|
1817
|
+
fetched: "fetched";
|
|
1818
|
+
}>;
|
|
1819
|
+
export type FeedTaxonomyRevisionSource = z.infer<typeof feedTaxonomyRevisionSourceSchema>;
|
|
1820
|
+
/**
|
|
1821
|
+
* Advisory markers rendered on the revisions list. `shrink` = the node count
|
|
1822
|
+
* collapsed against the revision in force; the revision is still installed,
|
|
1823
|
+
* because a valid smaller taxonomy is the provider's decision to make and the
|
|
1824
|
+
* impact preview is where it becomes visible (research §R22).
|
|
1825
|
+
*/
|
|
1826
|
+
export declare const feedTaxonomyRevisionFlagSchema: z.ZodEnum<{
|
|
1827
|
+
shrink: "shrink";
|
|
1828
|
+
}>;
|
|
1829
|
+
export type FeedTaxonomyRevisionFlag = z.infer<typeof feedTaxonomyRevisionFlagSchema>;
|
|
1830
|
+
export declare const feedTaxonomyRevisionSchema: z.ZodObject<{
|
|
1831
|
+
id: z.ZodString;
|
|
1832
|
+
providerCode: z.ZodEnum<{
|
|
1833
|
+
meta: "meta";
|
|
1834
|
+
google_merchant: "google_merchant";
|
|
1835
|
+
}>;
|
|
1836
|
+
revision: z.ZodString;
|
|
1837
|
+
isCurrent: z.ZodBoolean;
|
|
1838
|
+
nodeCount: z.ZodNumber;
|
|
1839
|
+
source: z.ZodEnum<{
|
|
1840
|
+
bundled: "bundled";
|
|
1841
|
+
fetched: "fetched";
|
|
1842
|
+
}>;
|
|
1843
|
+
sourceUrls: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1844
|
+
installedAt: z.ZodString;
|
|
1845
|
+
fetchedAt: z.ZodNullable<z.ZodString>;
|
|
1846
|
+
promotedAt: z.ZodNullable<z.ZodString>;
|
|
1847
|
+
supersededAt: z.ZodNullable<z.ZodString>;
|
|
1848
|
+
flags: z.ZodDefault<z.ZodArray<z.ZodEnum<{
|
|
1849
|
+
shrink: "shrink";
|
|
1850
|
+
}>>>;
|
|
1851
|
+
}, z.core.$strip>;
|
|
1852
|
+
export type FeedTaxonomyRevision = z.infer<typeof feedTaxonomyRevisionSchema>;
|
|
1853
|
+
export declare const feedTaxonomyRevisionListResponseSchema: z.ZodObject<{
|
|
1854
|
+
data: z.ZodArray<z.ZodObject<{
|
|
1855
|
+
id: z.ZodString;
|
|
1856
|
+
providerCode: z.ZodEnum<{
|
|
1857
|
+
meta: "meta";
|
|
1858
|
+
google_merchant: "google_merchant";
|
|
1859
|
+
}>;
|
|
1860
|
+
revision: z.ZodString;
|
|
1861
|
+
isCurrent: z.ZodBoolean;
|
|
1862
|
+
nodeCount: z.ZodNumber;
|
|
1863
|
+
source: z.ZodEnum<{
|
|
1864
|
+
bundled: "bundled";
|
|
1865
|
+
fetched: "fetched";
|
|
1866
|
+
}>;
|
|
1867
|
+
sourceUrls: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1868
|
+
installedAt: z.ZodString;
|
|
1869
|
+
fetchedAt: z.ZodNullable<z.ZodString>;
|
|
1870
|
+
promotedAt: z.ZodNullable<z.ZodString>;
|
|
1871
|
+
supersededAt: z.ZodNullable<z.ZodString>;
|
|
1872
|
+
flags: z.ZodDefault<z.ZodArray<z.ZodEnum<{
|
|
1873
|
+
shrink: "shrink";
|
|
1874
|
+
}>>>;
|
|
1875
|
+
}, z.core.$strip>>;
|
|
1876
|
+
pagination: z.ZodObject<{
|
|
1877
|
+
cursor: z.ZodNullable<z.ZodString>;
|
|
1878
|
+
hasMore: z.ZodBoolean;
|
|
1879
|
+
limit: z.ZodNumber;
|
|
1880
|
+
}, z.core.$strip>;
|
|
1881
|
+
}, z.core.$strip>;
|
|
1882
|
+
export declare const feedTaxonomyRevisionResponseSchema: z.ZodObject<{
|
|
1883
|
+
data: z.ZodObject<{
|
|
1884
|
+
id: z.ZodString;
|
|
1885
|
+
providerCode: z.ZodEnum<{
|
|
1886
|
+
meta: "meta";
|
|
1887
|
+
google_merchant: "google_merchant";
|
|
1888
|
+
}>;
|
|
1889
|
+
revision: z.ZodString;
|
|
1890
|
+
isCurrent: z.ZodBoolean;
|
|
1891
|
+
nodeCount: z.ZodNumber;
|
|
1892
|
+
source: z.ZodEnum<{
|
|
1893
|
+
bundled: "bundled";
|
|
1894
|
+
fetched: "fetched";
|
|
1895
|
+
}>;
|
|
1896
|
+
sourceUrls: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1897
|
+
installedAt: z.ZodString;
|
|
1898
|
+
fetchedAt: z.ZodNullable<z.ZodString>;
|
|
1899
|
+
promotedAt: z.ZodNullable<z.ZodString>;
|
|
1900
|
+
supersededAt: z.ZodNullable<z.ZodString>;
|
|
1901
|
+
flags: z.ZodDefault<z.ZodArray<z.ZodEnum<{
|
|
1902
|
+
shrink: "shrink";
|
|
1903
|
+
}>>>;
|
|
1904
|
+
}, z.core.$strip>;
|
|
1905
|
+
}, z.core.$strip>;
|
|
1906
|
+
/** One shop category that changes state if the candidate is promoted (FR-094). */
|
|
1907
|
+
export declare const feedTaxonomyImpactCategorySchema: z.ZodObject<{
|
|
1908
|
+
categoryId: z.ZodString;
|
|
1909
|
+
categoryName: z.ZodString;
|
|
1910
|
+
nodeExternalId: z.ZodString;
|
|
1911
|
+
nodeFullPath: z.ZodNullable<z.ZodString>;
|
|
1912
|
+
effect: z.ZodEnum<{
|
|
1913
|
+
becomes_stale: "becomes_stale";
|
|
1914
|
+
becomes_live: "becomes_live";
|
|
1915
|
+
loses_coverage: "loses_coverage";
|
|
1916
|
+
}>;
|
|
1917
|
+
descendantsLosingCoverage: z.ZodNumber;
|
|
1918
|
+
}, z.core.$strip>;
|
|
1919
|
+
export type FeedTaxonomyImpactCategory = z.infer<typeof feedTaxonomyImpactCategorySchema>;
|
|
1920
|
+
export declare const feedTaxonomyRevisionImpactResponseSchema: z.ZodObject<{
|
|
1921
|
+
data: z.ZodObject<{
|
|
1922
|
+
providerCode: z.ZodEnum<{
|
|
1923
|
+
meta: "meta";
|
|
1924
|
+
google_merchant: "google_merchant";
|
|
1925
|
+
}>;
|
|
1926
|
+
candidateRevision: z.ZodString;
|
|
1927
|
+
currentRevision: z.ZodNullable<z.ZodString>;
|
|
1928
|
+
nodeCountCurrent: z.ZodNumber;
|
|
1929
|
+
nodeCountCandidate: z.ZodNumber;
|
|
1930
|
+
nodesAdded: z.ZodNumber;
|
|
1931
|
+
nodesRemoved: z.ZodNumber;
|
|
1932
|
+
mappings: z.ZodObject<{
|
|
1933
|
+
total: z.ZodNumber;
|
|
1934
|
+
wouldRemainLive: z.ZodNumber;
|
|
1935
|
+
wouldBecomeStale: z.ZodNumber;
|
|
1936
|
+
wouldBecomeLive: z.ZodNumber;
|
|
1937
|
+
}, z.core.$strip>;
|
|
1938
|
+
categories: z.ZodObject<{
|
|
1939
|
+
total: z.ZodNumber;
|
|
1940
|
+
coveredNow: z.ZodNumber;
|
|
1941
|
+
coveredAfter: z.ZodNumber;
|
|
1942
|
+
losingCoverage: z.ZodNumber;
|
|
1943
|
+
}, z.core.$strip>;
|
|
1944
|
+
affected: z.ZodArray<z.ZodObject<{
|
|
1945
|
+
categoryId: z.ZodString;
|
|
1946
|
+
categoryName: z.ZodString;
|
|
1947
|
+
nodeExternalId: z.ZodString;
|
|
1948
|
+
nodeFullPath: z.ZodNullable<z.ZodString>;
|
|
1949
|
+
effect: z.ZodEnum<{
|
|
1950
|
+
becomes_stale: "becomes_stale";
|
|
1951
|
+
becomes_live: "becomes_live";
|
|
1952
|
+
loses_coverage: "loses_coverage";
|
|
1953
|
+
}>;
|
|
1954
|
+
descendantsLosingCoverage: z.ZodNumber;
|
|
1955
|
+
}, z.core.$strip>>;
|
|
1956
|
+
affectedTruncated: z.ZodBoolean;
|
|
1957
|
+
}, z.core.$strip>;
|
|
1958
|
+
}, z.core.$strip>;
|
|
1959
|
+
export declare const promoteFeedTaxonomyRevisionRequestSchema: z.ZodObject<{
|
|
1960
|
+
expectedStaleMappingCount: z.ZodNumber;
|
|
1961
|
+
}, z.core.$strip>;
|
|
1962
|
+
export type PromoteFeedTaxonomyRevisionRequest = z.infer<typeof promoteFeedTaxonomyRevisionRequestSchema>;
|
|
1963
|
+
export declare const feedTaxonomyCheckTriggerSchema: z.ZodEnum<{
|
|
1964
|
+
scheduled: "scheduled";
|
|
1965
|
+
manual: "manual";
|
|
1966
|
+
}>;
|
|
1967
|
+
export type FeedTaxonomyCheckTrigger = z.infer<typeof feedTaxonomyCheckTriggerSchema>;
|
|
1968
|
+
export declare const feedTaxonomyCheckOutcomeSchema: z.ZodEnum<{
|
|
1969
|
+
failed: "failed";
|
|
1970
|
+
installed: "installed";
|
|
1971
|
+
rejected: "rejected";
|
|
1972
|
+
unchanged: "unchanged";
|
|
1973
|
+
}>;
|
|
1974
|
+
export type FeedTaxonomyCheckOutcome = z.infer<typeof feedTaxonomyCheckOutcomeSchema>;
|
|
1975
|
+
/** Why a check did not install anything. Closed set — the admin renders a translated line per value. */
|
|
1976
|
+
export declare const feedTaxonomyCheckReasonSchema: z.ZodEnum<{
|
|
1977
|
+
not_found: "not_found";
|
|
1978
|
+
truncated: "truncated";
|
|
1979
|
+
empty: "empty";
|
|
1980
|
+
transport: "transport";
|
|
1981
|
+
http_status: "http_status";
|
|
1982
|
+
not_taxonomy: "not_taxonomy";
|
|
1983
|
+
too_large: "too_large";
|
|
1984
|
+
no_nodes: "no_nodes";
|
|
1985
|
+
implausible: "implausible";
|
|
1986
|
+
incomplete_languages: "incomplete_languages";
|
|
1987
|
+
}>;
|
|
1988
|
+
export type FeedTaxonomyCheckReason = z.infer<typeof feedTaxonomyCheckReasonSchema>;
|
|
1989
|
+
export declare const feedTaxonomyCheckSchema: z.ZodObject<{
|
|
1990
|
+
id: z.ZodString;
|
|
1991
|
+
providerCode: z.ZodEnum<{
|
|
1992
|
+
meta: "meta";
|
|
1993
|
+
google_merchant: "google_merchant";
|
|
1994
|
+
}>;
|
|
1995
|
+
trigger: z.ZodEnum<{
|
|
1996
|
+
scheduled: "scheduled";
|
|
1997
|
+
manual: "manual";
|
|
1998
|
+
}>;
|
|
1999
|
+
startedAt: z.ZodString;
|
|
2000
|
+
finishedAt: z.ZodNullable<z.ZodString>;
|
|
2001
|
+
outcome: z.ZodNullable<z.ZodEnum<{
|
|
2002
|
+
failed: "failed";
|
|
2003
|
+
installed: "installed";
|
|
2004
|
+
rejected: "rejected";
|
|
2005
|
+
unchanged: "unchanged";
|
|
2006
|
+
}>>;
|
|
2007
|
+
reason: z.ZodNullable<z.ZodEnum<{
|
|
2008
|
+
not_found: "not_found";
|
|
2009
|
+
truncated: "truncated";
|
|
2010
|
+
empty: "empty";
|
|
2011
|
+
transport: "transport";
|
|
2012
|
+
http_status: "http_status";
|
|
2013
|
+
not_taxonomy: "not_taxonomy";
|
|
2014
|
+
too_large: "too_large";
|
|
2015
|
+
no_nodes: "no_nodes";
|
|
2016
|
+
implausible: "implausible";
|
|
2017
|
+
incomplete_languages: "incomplete_languages";
|
|
2018
|
+
}>>;
|
|
2019
|
+
detail: z.ZodNullable<z.ZodString>;
|
|
2020
|
+
httpStatus: z.ZodNullable<z.ZodNumber>;
|
|
2021
|
+
bytesRead: z.ZodNullable<z.ZodNumber>;
|
|
2022
|
+
contentHash: z.ZodNullable<z.ZodString>;
|
|
2023
|
+
installedTaxonomyId: z.ZodNullable<z.ZodString>;
|
|
2024
|
+
}, z.core.$strip>;
|
|
2025
|
+
export type FeedTaxonomyCheck = z.infer<typeof feedTaxonomyCheckSchema>;
|
|
2026
|
+
export declare const feedTaxonomyCheckListResponseSchema: z.ZodObject<{
|
|
2027
|
+
data: z.ZodArray<z.ZodObject<{
|
|
2028
|
+
id: z.ZodString;
|
|
2029
|
+
providerCode: z.ZodEnum<{
|
|
2030
|
+
meta: "meta";
|
|
2031
|
+
google_merchant: "google_merchant";
|
|
2032
|
+
}>;
|
|
2033
|
+
trigger: z.ZodEnum<{
|
|
2034
|
+
scheduled: "scheduled";
|
|
2035
|
+
manual: "manual";
|
|
2036
|
+
}>;
|
|
2037
|
+
startedAt: z.ZodString;
|
|
2038
|
+
finishedAt: z.ZodNullable<z.ZodString>;
|
|
2039
|
+
outcome: z.ZodNullable<z.ZodEnum<{
|
|
2040
|
+
failed: "failed";
|
|
2041
|
+
installed: "installed";
|
|
2042
|
+
rejected: "rejected";
|
|
2043
|
+
unchanged: "unchanged";
|
|
2044
|
+
}>>;
|
|
2045
|
+
reason: z.ZodNullable<z.ZodEnum<{
|
|
2046
|
+
not_found: "not_found";
|
|
2047
|
+
truncated: "truncated";
|
|
2048
|
+
empty: "empty";
|
|
2049
|
+
transport: "transport";
|
|
2050
|
+
http_status: "http_status";
|
|
2051
|
+
not_taxonomy: "not_taxonomy";
|
|
2052
|
+
too_large: "too_large";
|
|
2053
|
+
no_nodes: "no_nodes";
|
|
2054
|
+
implausible: "implausible";
|
|
2055
|
+
incomplete_languages: "incomplete_languages";
|
|
2056
|
+
}>>;
|
|
2057
|
+
detail: z.ZodNullable<z.ZodString>;
|
|
2058
|
+
httpStatus: z.ZodNullable<z.ZodNumber>;
|
|
2059
|
+
bytesRead: z.ZodNullable<z.ZodNumber>;
|
|
2060
|
+
contentHash: z.ZodNullable<z.ZodString>;
|
|
2061
|
+
installedTaxonomyId: z.ZodNullable<z.ZodString>;
|
|
2062
|
+
}, z.core.$strip>>;
|
|
2063
|
+
pagination: z.ZodObject<{
|
|
2064
|
+
cursor: z.ZodNullable<z.ZodString>;
|
|
2065
|
+
hasMore: z.ZodBoolean;
|
|
2066
|
+
limit: z.ZodNumber;
|
|
2067
|
+
}, z.core.$strip>;
|
|
2068
|
+
}, z.core.$strip>;
|
|
2069
|
+
export declare const feedTaxonomyCheckResponseSchema: z.ZodObject<{
|
|
2070
|
+
data: z.ZodObject<{
|
|
2071
|
+
id: z.ZodString;
|
|
2072
|
+
providerCode: z.ZodEnum<{
|
|
2073
|
+
meta: "meta";
|
|
2074
|
+
google_merchant: "google_merchant";
|
|
2075
|
+
}>;
|
|
2076
|
+
trigger: z.ZodEnum<{
|
|
2077
|
+
scheduled: "scheduled";
|
|
2078
|
+
manual: "manual";
|
|
2079
|
+
}>;
|
|
2080
|
+
startedAt: z.ZodString;
|
|
2081
|
+
finishedAt: z.ZodNullable<z.ZodString>;
|
|
2082
|
+
outcome: z.ZodNullable<z.ZodEnum<{
|
|
2083
|
+
failed: "failed";
|
|
2084
|
+
installed: "installed";
|
|
2085
|
+
rejected: "rejected";
|
|
2086
|
+
unchanged: "unchanged";
|
|
2087
|
+
}>>;
|
|
2088
|
+
reason: z.ZodNullable<z.ZodEnum<{
|
|
2089
|
+
not_found: "not_found";
|
|
2090
|
+
truncated: "truncated";
|
|
2091
|
+
empty: "empty";
|
|
2092
|
+
transport: "transport";
|
|
2093
|
+
http_status: "http_status";
|
|
2094
|
+
not_taxonomy: "not_taxonomy";
|
|
2095
|
+
too_large: "too_large";
|
|
2096
|
+
no_nodes: "no_nodes";
|
|
2097
|
+
implausible: "implausible";
|
|
2098
|
+
incomplete_languages: "incomplete_languages";
|
|
2099
|
+
}>>;
|
|
2100
|
+
detail: z.ZodNullable<z.ZodString>;
|
|
2101
|
+
httpStatus: z.ZodNullable<z.ZodNumber>;
|
|
2102
|
+
bytesRead: z.ZodNullable<z.ZodNumber>;
|
|
2103
|
+
contentHash: z.ZodNullable<z.ZodString>;
|
|
2104
|
+
installedTaxonomyId: z.ZodNullable<z.ZodString>;
|
|
2105
|
+
}, z.core.$strip>;
|
|
2106
|
+
}, z.core.$strip>;
|
|
2107
|
+
export declare const startFeedTaxonomyCheckRequestSchema: z.ZodObject<{
|
|
2108
|
+
providerCode: z.ZodEnum<{
|
|
2109
|
+
meta: "meta";
|
|
2110
|
+
google_merchant: "google_merchant";
|
|
2111
|
+
}>;
|
|
2112
|
+
}, z.core.$strip>;
|
|
2113
|
+
export type StartFeedTaxonomyCheckRequest = z.infer<typeof startFeedTaxonomyCheckRequestSchema>;
|
|
2114
|
+
/**
|
|
2115
|
+
* Source-URL validation, applied at settings-write time AND again immediately
|
|
2116
|
+
* before the request (FR-091). Twice, because settings can also be written by a
|
|
2117
|
+
* seed, a migration or an overlay, so the request-time check is the one that
|
|
2118
|
+
* actually holds. The address-range and redirect checks are NOT expressible in
|
|
2119
|
+
* Zod and live in the fetcher — see research §R23.
|
|
2120
|
+
*/
|
|
2121
|
+
export declare const feedTaxonomySourceUrlSchema: z.ZodString;
|
|
2122
|
+
export declare const FEED_TEMPLATE_DOCUMENT_FORMAT_VERSION = 1;
|
|
2123
|
+
/**
|
|
2124
|
+
* Deliberately carries NO uuid, NO timestamp, NO feed binding and NO secret, so
|
|
2125
|
+
* two exports of an unchanged template are byte-identical (FR-013). Bindings
|
|
2126
|
+
* travel as stable definition KEYS, which is what makes cross-installation
|
|
2127
|
+
* import resolvable at all.
|
|
2128
|
+
*/
|
|
2129
|
+
export declare const feedTemplateDocumentSchema: z.ZodObject<{
|
|
2130
|
+
formatVersion: z.ZodLiteral<1>;
|
|
2131
|
+
template: z.ZodObject<{
|
|
2132
|
+
name: z.ZodString;
|
|
2133
|
+
description: z.ZodNullable<z.ZodString>;
|
|
2134
|
+
providerCode: z.ZodEnum<{
|
|
2135
|
+
custom: "custom";
|
|
2136
|
+
meta: "meta";
|
|
2137
|
+
google_merchant: "google_merchant";
|
|
2138
|
+
amazon: "amazon";
|
|
2139
|
+
ebay: "ebay";
|
|
2140
|
+
allegro: "allegro";
|
|
2141
|
+
}>;
|
|
2142
|
+
outputFormat: z.ZodEnum<{
|
|
2143
|
+
csv: "csv";
|
|
2144
|
+
xml: "xml";
|
|
2145
|
+
tsv: "tsv";
|
|
2146
|
+
txt: "txt";
|
|
2147
|
+
xlsx: "xlsx";
|
|
2148
|
+
}>;
|
|
2149
|
+
itemGranularity: z.ZodEnum<{
|
|
2150
|
+
product: "product";
|
|
2151
|
+
variant: "variant";
|
|
2152
|
+
}>;
|
|
2153
|
+
taxonomyProviderCode: z.ZodNullable<z.ZodEnum<{
|
|
2154
|
+
meta: "meta";
|
|
2155
|
+
google_merchant: "google_merchant";
|
|
2156
|
+
}>>;
|
|
2157
|
+
fields: z.ZodArray<z.ZodObject<{
|
|
2158
|
+
outputName: z.ZodString;
|
|
2159
|
+
sourceKind: z.ZodEnum<{
|
|
2160
|
+
description: "description";
|
|
2161
|
+
link: "link";
|
|
2162
|
+
name: "name";
|
|
2163
|
+
slug: "slug";
|
|
2164
|
+
availability: "availability";
|
|
2165
|
+
price: "price";
|
|
2166
|
+
sku: "sku";
|
|
2167
|
+
attribute: "attribute";
|
|
2168
|
+
product_id: "product_id";
|
|
2169
|
+
product_type: "product_type";
|
|
2170
|
+
brand: "brand";
|
|
2171
|
+
custom_field: "custom_field";
|
|
2172
|
+
sale_price: "sale_price";
|
|
2173
|
+
stock_quantity: "stock_quantity";
|
|
2174
|
+
image_link: "image_link";
|
|
2175
|
+
additional_image_link: "additional_image_link";
|
|
2176
|
+
category_path: "category_path";
|
|
2177
|
+
provider_category: "provider_category";
|
|
2178
|
+
grouping_id: "grouping_id";
|
|
2179
|
+
constant: "constant";
|
|
2180
|
+
}>;
|
|
2181
|
+
sourceKey: z.ZodNullable<z.ZodString>;
|
|
2182
|
+
constantValue: z.ZodNullable<z.ZodString>;
|
|
2183
|
+
fallbackValue: z.ZodNullable<z.ZodString>;
|
|
2184
|
+
providerRequired: z.ZodBoolean;
|
|
2185
|
+
transform: z.ZodNullable<z.ZodEnum<{
|
|
2186
|
+
trim: "trim";
|
|
2187
|
+
none: "none";
|
|
2188
|
+
upper: "upper";
|
|
2189
|
+
lower: "lower";
|
|
2190
|
+
truncate: "truncate";
|
|
2191
|
+
strip_html: "strip_html";
|
|
2192
|
+
absolute_url: "absolute_url";
|
|
2193
|
+
}>>;
|
|
2194
|
+
transformArg: z.ZodNullable<z.ZodString>;
|
|
2195
|
+
sortOrder: z.ZodNumber;
|
|
2196
|
+
helpKey: z.ZodNullable<z.ZodString>;
|
|
2197
|
+
}, z.core.$strip>>;
|
|
2198
|
+
}, z.core.$strip>;
|
|
2199
|
+
}, z.core.$strip>;
|
|
2200
|
+
export type FeedTemplateDocument = z.infer<typeof feedTemplateDocumentSchema>;
|
|
2201
|
+
export declare const importFeedTemplateRequestSchema: z.ZodObject<{
|
|
2202
|
+
document: z.ZodObject<{
|
|
2203
|
+
formatVersion: z.ZodLiteral<1>;
|
|
2204
|
+
template: z.ZodObject<{
|
|
2205
|
+
name: z.ZodString;
|
|
2206
|
+
description: z.ZodNullable<z.ZodString>;
|
|
2207
|
+
providerCode: z.ZodEnum<{
|
|
2208
|
+
custom: "custom";
|
|
2209
|
+
meta: "meta";
|
|
2210
|
+
google_merchant: "google_merchant";
|
|
2211
|
+
amazon: "amazon";
|
|
2212
|
+
ebay: "ebay";
|
|
2213
|
+
allegro: "allegro";
|
|
2214
|
+
}>;
|
|
2215
|
+
outputFormat: z.ZodEnum<{
|
|
2216
|
+
csv: "csv";
|
|
2217
|
+
xml: "xml";
|
|
2218
|
+
tsv: "tsv";
|
|
2219
|
+
txt: "txt";
|
|
2220
|
+
xlsx: "xlsx";
|
|
2221
|
+
}>;
|
|
2222
|
+
itemGranularity: z.ZodEnum<{
|
|
2223
|
+
product: "product";
|
|
2224
|
+
variant: "variant";
|
|
2225
|
+
}>;
|
|
2226
|
+
taxonomyProviderCode: z.ZodNullable<z.ZodEnum<{
|
|
2227
|
+
meta: "meta";
|
|
2228
|
+
google_merchant: "google_merchant";
|
|
2229
|
+
}>>;
|
|
2230
|
+
fields: z.ZodArray<z.ZodObject<{
|
|
2231
|
+
outputName: z.ZodString;
|
|
2232
|
+
sourceKind: z.ZodEnum<{
|
|
2233
|
+
description: "description";
|
|
2234
|
+
link: "link";
|
|
2235
|
+
name: "name";
|
|
2236
|
+
slug: "slug";
|
|
2237
|
+
availability: "availability";
|
|
2238
|
+
price: "price";
|
|
2239
|
+
sku: "sku";
|
|
2240
|
+
attribute: "attribute";
|
|
2241
|
+
product_id: "product_id";
|
|
2242
|
+
product_type: "product_type";
|
|
2243
|
+
brand: "brand";
|
|
2244
|
+
custom_field: "custom_field";
|
|
2245
|
+
sale_price: "sale_price";
|
|
2246
|
+
stock_quantity: "stock_quantity";
|
|
2247
|
+
image_link: "image_link";
|
|
2248
|
+
additional_image_link: "additional_image_link";
|
|
2249
|
+
category_path: "category_path";
|
|
2250
|
+
provider_category: "provider_category";
|
|
2251
|
+
grouping_id: "grouping_id";
|
|
2252
|
+
constant: "constant";
|
|
2253
|
+
}>;
|
|
2254
|
+
sourceKey: z.ZodNullable<z.ZodString>;
|
|
2255
|
+
constantValue: z.ZodNullable<z.ZodString>;
|
|
2256
|
+
fallbackValue: z.ZodNullable<z.ZodString>;
|
|
2257
|
+
providerRequired: z.ZodBoolean;
|
|
2258
|
+
transform: z.ZodNullable<z.ZodEnum<{
|
|
2259
|
+
trim: "trim";
|
|
2260
|
+
none: "none";
|
|
2261
|
+
upper: "upper";
|
|
2262
|
+
lower: "lower";
|
|
2263
|
+
truncate: "truncate";
|
|
2264
|
+
strip_html: "strip_html";
|
|
2265
|
+
absolute_url: "absolute_url";
|
|
2266
|
+
}>>;
|
|
2267
|
+
transformArg: z.ZodNullable<z.ZodString>;
|
|
2268
|
+
sortOrder: z.ZodNumber;
|
|
2269
|
+
helpKey: z.ZodNullable<z.ZodString>;
|
|
2270
|
+
}, z.core.$strip>>;
|
|
2271
|
+
}, z.core.$strip>;
|
|
2272
|
+
}, z.core.$strip>;
|
|
2273
|
+
onNameConflict: z.ZodOptional<z.ZodEnum<{
|
|
2274
|
+
replace: "replace";
|
|
2275
|
+
create_copy: "create_copy";
|
|
2276
|
+
}>>;
|
|
2277
|
+
}, z.core.$strip>;
|
|
2278
|
+
export type ImportFeedTemplateRequest = z.infer<typeof importFeedTemplateRequestSchema>;
|
|
2279
|
+
export declare const importFeedTemplateResponseSchema: z.ZodObject<{
|
|
2280
|
+
data: z.ZodObject<{
|
|
2281
|
+
template: z.ZodObject<{
|
|
2282
|
+
id: z.ZodString;
|
|
2283
|
+
name: z.ZodString;
|
|
2284
|
+
description: z.ZodNullable<z.ZodString>;
|
|
2285
|
+
providerCode: z.ZodEnum<{
|
|
2286
|
+
custom: "custom";
|
|
2287
|
+
meta: "meta";
|
|
2288
|
+
google_merchant: "google_merchant";
|
|
2289
|
+
amazon: "amazon";
|
|
2290
|
+
ebay: "ebay";
|
|
2291
|
+
allegro: "allegro";
|
|
2292
|
+
}>;
|
|
2293
|
+
outputFormat: z.ZodEnum<{
|
|
2294
|
+
csv: "csv";
|
|
2295
|
+
xml: "xml";
|
|
2296
|
+
tsv: "tsv";
|
|
2297
|
+
txt: "txt";
|
|
2298
|
+
xlsx: "xlsx";
|
|
2299
|
+
}>;
|
|
2300
|
+
itemGranularity: z.ZodEnum<{
|
|
2301
|
+
product: "product";
|
|
2302
|
+
variant: "variant";
|
|
2303
|
+
}>;
|
|
2304
|
+
taxonomyProviderCode: z.ZodNullable<z.ZodEnum<{
|
|
2305
|
+
meta: "meta";
|
|
2306
|
+
google_merchant: "google_merchant";
|
|
2307
|
+
}>>;
|
|
2308
|
+
isSystem: z.ZodBoolean;
|
|
2309
|
+
systemCode: z.ZodNullable<z.ZodString>;
|
|
2310
|
+
fields: z.ZodArray<z.ZodObject<{
|
|
2311
|
+
id: z.ZodString;
|
|
2312
|
+
outputName: z.ZodString;
|
|
2313
|
+
sourceKind: z.ZodEnum<{
|
|
2314
|
+
description: "description";
|
|
2315
|
+
link: "link";
|
|
2316
|
+
name: "name";
|
|
2317
|
+
slug: "slug";
|
|
2318
|
+
availability: "availability";
|
|
2319
|
+
price: "price";
|
|
2320
|
+
sku: "sku";
|
|
2321
|
+
attribute: "attribute";
|
|
2322
|
+
product_id: "product_id";
|
|
2323
|
+
product_type: "product_type";
|
|
2324
|
+
brand: "brand";
|
|
2325
|
+
custom_field: "custom_field";
|
|
2326
|
+
sale_price: "sale_price";
|
|
2327
|
+
stock_quantity: "stock_quantity";
|
|
2328
|
+
image_link: "image_link";
|
|
2329
|
+
additional_image_link: "additional_image_link";
|
|
2330
|
+
category_path: "category_path";
|
|
2331
|
+
provider_category: "provider_category";
|
|
2332
|
+
grouping_id: "grouping_id";
|
|
2333
|
+
constant: "constant";
|
|
2334
|
+
}>;
|
|
2335
|
+
sourceKey: z.ZodNullable<z.ZodString>;
|
|
2336
|
+
constantValue: z.ZodNullable<z.ZodString>;
|
|
2337
|
+
fallbackValue: z.ZodNullable<z.ZodString>;
|
|
2338
|
+
providerRequired: z.ZodBoolean;
|
|
2339
|
+
transform: z.ZodNullable<z.ZodEnum<{
|
|
2340
|
+
trim: "trim";
|
|
2341
|
+
none: "none";
|
|
2342
|
+
upper: "upper";
|
|
2343
|
+
lower: "lower";
|
|
2344
|
+
truncate: "truncate";
|
|
2345
|
+
strip_html: "strip_html";
|
|
2346
|
+
absolute_url: "absolute_url";
|
|
2347
|
+
}>>;
|
|
2348
|
+
transformArg: z.ZodNullable<z.ZodString>;
|
|
2349
|
+
sortOrder: z.ZodNumber;
|
|
2350
|
+
helpKey: z.ZodNullable<z.ZodString>;
|
|
2351
|
+
unbound: z.ZodBoolean;
|
|
2352
|
+
}, z.core.$strip>>;
|
|
2353
|
+
usedByFeedCount: z.ZodNumber;
|
|
2354
|
+
version: z.ZodNumber;
|
|
2355
|
+
createdAt: z.ZodString;
|
|
2356
|
+
updatedAt: z.ZodString;
|
|
2357
|
+
}, z.core.$strip>;
|
|
2358
|
+
unresolvedBindings: z.ZodArray<z.ZodObject<{
|
|
2359
|
+
outputName: z.ZodString;
|
|
2360
|
+
sourceKind: z.ZodEnum<{
|
|
2361
|
+
description: "description";
|
|
2362
|
+
link: "link";
|
|
2363
|
+
name: "name";
|
|
2364
|
+
slug: "slug";
|
|
2365
|
+
availability: "availability";
|
|
2366
|
+
price: "price";
|
|
2367
|
+
sku: "sku";
|
|
2368
|
+
attribute: "attribute";
|
|
2369
|
+
product_id: "product_id";
|
|
2370
|
+
product_type: "product_type";
|
|
2371
|
+
brand: "brand";
|
|
2372
|
+
custom_field: "custom_field";
|
|
2373
|
+
sale_price: "sale_price";
|
|
2374
|
+
stock_quantity: "stock_quantity";
|
|
2375
|
+
image_link: "image_link";
|
|
2376
|
+
additional_image_link: "additional_image_link";
|
|
2377
|
+
category_path: "category_path";
|
|
2378
|
+
provider_category: "provider_category";
|
|
2379
|
+
grouping_id: "grouping_id";
|
|
2380
|
+
constant: "constant";
|
|
2381
|
+
}>;
|
|
2382
|
+
sourceKey: z.ZodString;
|
|
2383
|
+
}, z.core.$strip>>;
|
|
2384
|
+
}, z.core.$strip>;
|
|
2385
|
+
}, z.core.$strip>;
|
|
2386
|
+
export declare const PRODUCT_FEED_ERROR_CODES: {
|
|
2387
|
+
readonly TEMPLATE_IS_SYSTEM: "template_is_system";
|
|
2388
|
+
readonly TEMPLATE_IN_USE: "template_in_use";
|
|
2389
|
+
readonly DUPLICATE_OUTPUT_NAME: "duplicate_output_name";
|
|
2390
|
+
readonly UNBOUND_TEMPLATE_FIELDS: "unbound_template_fields";
|
|
2391
|
+
readonly TAXONOMY_REQUIRED_FOR_PROVIDER_CATEGORY: "taxonomy_required_for_provider_category";
|
|
2392
|
+
readonly GROUPING_FIELD_REQUIRED_FOR_VARIANT_GRANULARITY: "grouping_field_required_for_variant_granularity";
|
|
2393
|
+
readonly FEED_ALREADY_RUNNING: "feed_already_running";
|
|
2394
|
+
readonly FEED_DISABLED: "feed_disabled";
|
|
2395
|
+
readonly TOKEN_REVOKED: "token_revoked";
|
|
2396
|
+
readonly TEMPLATE_NAME_CONFLICT: "template_name_conflict";
|
|
2397
|
+
readonly INVALID_TEMPLATE_DOCUMENT: "invalid_template_document";
|
|
2398
|
+
readonly UNKNOWN_TAXONOMY_NODE: "unknown_taxonomy_node";
|
|
2399
|
+
/** `POST /checks` while the master switch is off (FR-087) — the response names the setting. */
|
|
2400
|
+
readonly TAXONOMY_FETCH_DISABLED: "taxonomy_fetch_disabled";
|
|
2401
|
+
/** A check for that provider is already in flight (FR-096). */
|
|
2402
|
+
readonly TAXONOMY_CHECK_IN_PROGRESS: "taxonomy_check_in_progress";
|
|
2403
|
+
/** `expectedStaleMappingCount` no longer matches the recomputed impact (FR-095). */
|
|
2404
|
+
readonly IMPACT_CHANGED: "impact_changed";
|
|
2405
|
+
/** The revision is already the one in force. */
|
|
2406
|
+
readonly TAXONOMY_REVISION_ALREADY_CURRENT: "taxonomy_revision_already_current";
|
|
2407
|
+
/** The target address is refused by the egress guard (SR-2, SR-4). */
|
|
2408
|
+
readonly DELIVERY_TARGET_REFUSED: "delivery_target_refused";
|
|
2409
|
+
/** `POST /delivery/test` on a feed that has no delivery configuration. */
|
|
2410
|
+
readonly DELIVERY_NOT_CONFIGURED: "delivery_not_configured";
|
|
2411
|
+
/** The connection test is rate-limited per feed (SR-5). */
|
|
2412
|
+
readonly DELIVERY_TEST_RATE_LIMITED: "delivery_test_rate_limited";
|
|
2413
|
+
};
|
|
2414
|
+
export type ProductFeedErrorCode = (typeof PRODUCT_FEED_ERROR_CODES)[keyof typeof PRODUCT_FEED_ERROR_CODES];
|
|
2415
|
+
export declare const PRODUCT_FEED_SETTING_CODES: {
|
|
2416
|
+
/**
|
|
2417
|
+
* Feature 074 — the operator-activation control (Constitution XVII), and the
|
|
2418
|
+
* only one of these codes that decides whether the module exists. It is not
|
|
2419
|
+
* the same switch as `TAXONOMY_FETCH_ENABLED` below, which governs one
|
|
2420
|
+
* outbound refresh inside a module that is present.
|
|
2421
|
+
*/
|
|
2422
|
+
readonly ACTIVATION: "product_feeds.enabled";
|
|
2423
|
+
readonly ARTEFACT_RETENTION_COUNT: "product_feeds.artefact_retention_count";
|
|
2424
|
+
readonly MAX_CONCURRENT_RUNS: "product_feeds.max_concurrent_runs";
|
|
2425
|
+
readonly SKIP_SHARE_FAILURE_THRESHOLD: "product_feeds.skip_share_failure_threshold";
|
|
2426
|
+
readonly STALE_CLAIM_TIMEOUT_MINUTES: "product_feeds.stale_claim_timeout_minutes";
|
|
2427
|
+
readonly RUN_ISSUE_CAP: "product_feeds.run_issue_cap";
|
|
2428
|
+
readonly PUBLIC_FETCH_RATE_LIMIT_PER_MINUTE: "product_feeds.public_fetch_rate_limit_per_minute";
|
|
2429
|
+
/** Above this many shop categories the mapping surface switches from tree to paged flat list. */
|
|
2430
|
+
readonly CATEGORY_MAPPING_TREE_LIMIT: "product_feeds.category_mapping_tree_limit";
|
|
2431
|
+
/**
|
|
2432
|
+
* Master switch. **Defaults to `false`** and off is a first-class state: when
|
|
2433
|
+
* it is off no Job Scheduler exists, `POST /checks` is refused, and the module
|
|
2434
|
+
* makes no outbound request at all (FR-087, research §R24).
|
|
2435
|
+
*/
|
|
2436
|
+
readonly TAXONOMY_FETCH_ENABLED: "product_feeds.taxonomy_fetch_enabled";
|
|
2437
|
+
/** 5-field cron, validated by the module's existing `cronExpressionSchema`. Default `0 4 * * 1`, UTC. */
|
|
2438
|
+
readonly TAXONOMY_FETCH_CRON: "product_feeds.taxonomy_fetch_cron";
|
|
2439
|
+
/** Per-deployment overridable source URLs — a mirror or an internal proxy (FR-090). */
|
|
2440
|
+
readonly TAXONOMY_SOURCE_URL_GOOGLE_EN: "product_feeds.taxonomy_source_url_google_en";
|
|
2441
|
+
readonly TAXONOMY_SOURCE_URL_GOOGLE_PL: "product_feeds.taxonomy_source_url_google_pl";
|
|
2442
|
+
readonly TAXONOMY_SOURCE_URL_META_EN: "product_feeds.taxonomy_source_url_meta_en";
|
|
2443
|
+
readonly TAXONOMY_SOURCE_URL_META_PL: "product_feeds.taxonomy_source_url_meta_pl";
|
|
2444
|
+
/** Retained revisions per provider; the three protected classes are never counted out (FR-097). */
|
|
2445
|
+
readonly TAXONOMY_REVISION_RETENTION_COUNT: "product_feeds.taxonomy_revision_retention_count";
|
|
2446
|
+
/** Attempts per published artefact before the delivery is abandoned (FR-104). */
|
|
2447
|
+
readonly DELIVERY_MAX_ATTEMPTS: "product_feeds.delivery_max_attempts";
|
|
2448
|
+
/** Ceiling on `POST /delivery/test` per feed per hour (SR-5). */
|
|
2449
|
+
readonly DELIVERY_TEST_RATE_LIMIT_PER_HOUR: "product_feeds.delivery_test_rate_limit_per_hour";
|
|
2450
|
+
};
|
|
2451
|
+
/**
|
|
2452
|
+
* Egress safety limits are deliberately NOT settings (FR-091, research §R23):
|
|
2453
|
+
* they are safety floors, not operator policy, and an admin screen must not be
|
|
2454
|
+
* able to widen an SSRF guard.
|
|
2455
|
+
*/
|
|
2456
|
+
export declare const TAXONOMY_FETCH_LIMITS: {
|
|
2457
|
+
/** Per-request abort, via `AbortController` — the `SgtmClient` precedent. */
|
|
2458
|
+
readonly REQUEST_TIMEOUT_MS: 20000;
|
|
2459
|
+
/** Whole check, across both languages of one provider. */
|
|
2460
|
+
readonly CHECK_BUDGET_MS: 120000;
|
|
2461
|
+
/** Enforced while reading the stream, never trusted from `Content-Length`. */
|
|
2462
|
+
readonly MAX_RESPONSE_BYTES: number;
|
|
2463
|
+
/** Every hop re-validated against the same rules. */
|
|
2464
|
+
readonly MAX_REDIRECTS: 3;
|
|
2465
|
+
/** Below this a parsed file is treated as truncated rather than as a small taxonomy. */
|
|
2466
|
+
readonly MIN_PLAUSIBLE_NODES: 500;
|
|
2467
|
+
/** Checks retained per provider — roughly five months of weekly history. */
|
|
2468
|
+
readonly CHECK_HISTORY_PER_PROVIDER: 20;
|
|
2469
|
+
};
|
|
2470
|
+
/** The three mechanisms. Stored verbatim on `product_feed_deliveries.protocol`. */
|
|
2471
|
+
export declare const feedDeliveryProtocolSchema: z.ZodEnum<{
|
|
2472
|
+
sftp: "sftp";
|
|
2473
|
+
ftp: "ftp";
|
|
2474
|
+
http: "http";
|
|
2475
|
+
}>;
|
|
2476
|
+
export type FeedDeliveryProtocol = z.infer<typeof feedDeliveryProtocolSchema>;
|
|
2477
|
+
/**
|
|
2478
|
+
* The operator's vocabulary for the `http` protocol. Presentation only: it
|
|
2479
|
+
* selects a label and nothing else, and every value behaves identically.
|
|
2480
|
+
*/
|
|
2481
|
+
export declare const feedDeliveryHttpLabelSchema: z.ZodEnum<{
|
|
2482
|
+
api: "api";
|
|
2483
|
+
http_server: "http_server";
|
|
2484
|
+
graphql: "graphql";
|
|
2485
|
+
}>;
|
|
2486
|
+
export type FeedDeliveryHttpLabel = z.infer<typeof feedDeliveryHttpLabelSchema>;
|
|
2487
|
+
export declare const feedDeliveryStatusSchema: z.ZodEnum<{
|
|
2488
|
+
failed: "failed";
|
|
2489
|
+
succeeded: "succeeded";
|
|
2490
|
+
}>;
|
|
2491
|
+
export type FeedDeliveryStatus = z.infer<typeof feedDeliveryStatusSchema>;
|
|
2492
|
+
/**
|
|
2493
|
+
* Why an attempt failed, as a closed set an operator can be told about in their
|
|
2494
|
+
* own language. `failureDetail` carries the transport's own words, redacted
|
|
2495
|
+
* (FR-108); this is what the admin renders.
|
|
2496
|
+
*/
|
|
2497
|
+
export declare const feedDeliveryFailureReasonSchema: z.ZodEnum<{
|
|
2498
|
+
not_configured: "not_configured";
|
|
2499
|
+
internal_error: "internal_error";
|
|
2500
|
+
target_refused: "target_refused";
|
|
2501
|
+
authentication_failed: "authentication_failed";
|
|
2502
|
+
connection_failed: "connection_failed";
|
|
2503
|
+
transfer_failed: "transfer_failed";
|
|
2504
|
+
rejected_by_target: "rejected_by_target";
|
|
2505
|
+
artefact_unavailable: "artefact_unavailable";
|
|
2506
|
+
}>;
|
|
2507
|
+
export type FeedDeliveryFailureReason = z.infer<typeof feedDeliveryFailureReasonSchema>;
|
|
2508
|
+
/**
|
|
2509
|
+
* A transport refusal an operator can be told about, carrying the closed-set
|
|
2510
|
+
* reason above and the transport's own words.
|
|
2511
|
+
*
|
|
2512
|
+
* Adapters throw this rather than a bare `Error` so `product_feeds` does not
|
|
2513
|
+
* have to guess a reason from a message, and the service's classifier decides
|
|
2514
|
+
* on `instanceof`.
|
|
2515
|
+
*
|
|
2516
|
+
* **It lives here rather than beside the adapter interface because an adapter
|
|
2517
|
+
* is a contribution and its author is not always the module** (feature 080,
|
|
2518
|
+
* T040b). Every delivery adapter this platform runs is contributed from
|
|
2519
|
+
* outside `product_feeds` — the composition roots contribute the real three and
|
|
2520
|
+
* the test harness contributes refusing ones — so the class has to be nameable
|
|
2521
|
+
* from outside without naming the module's sources. Once the module is a
|
|
2522
|
+
* package that is not a style preference: a second evaluation of the module's
|
|
2523
|
+
* source is a second class object, `instanceof` is false across the two copies,
|
|
2524
|
+
* and every declared refusal silently reclassifies as `internal_error` and
|
|
2525
|
+
* becomes retryable (D-160.6.1; the same shape that made a KSeF outage answer
|
|
2526
|
+
* `UNEXPECTED`). `@endora-commerce/contracts` is resolved once, so the
|
|
2527
|
+
* comparison holds.
|
|
2528
|
+
*
|
|
2529
|
+
* `detail` is **not** redacted by the thrower — an adapter does not know the
|
|
2530
|
+
* full secret set. `DeliveryService` redacts on the way to the attempt row
|
|
2531
|
+
* (FR-108).
|
|
2532
|
+
*/
|
|
2533
|
+
export declare class FeedDeliveryError extends Error {
|
|
2534
|
+
readonly reason: FeedDeliveryFailureReason;
|
|
2535
|
+
readonly cause?: unknown | undefined;
|
|
2536
|
+
readonly name = "FeedDeliveryError";
|
|
2537
|
+
constructor(reason: FeedDeliveryFailureReason, message: string, cause?: unknown | undefined);
|
|
2538
|
+
}
|
|
2539
|
+
/**
|
|
2540
|
+
* The header names whose VALUE is treated as a secret and stored through the
|
|
2541
|
+
* credentials module rather than in the configuration row (FR-107).
|
|
2542
|
+
*
|
|
2543
|
+
* A closed prefix/suffix rule rather than an operator toggle: an operator who
|
|
2544
|
+
* has to remember to tick "this one is secret" will one day not, and the token
|
|
2545
|
+
* lands in a jsonb column that every read returns. Matching is
|
|
2546
|
+
* case-insensitive on the header name.
|
|
2547
|
+
*/
|
|
2548
|
+
export declare const FEED_DELIVERY_SECRET_HEADER_NAMES: readonly ["authorization", "proxy-authorization", "cookie"];
|
|
2549
|
+
export declare const FEED_DELIVERY_SECRET_HEADER_SUFFIXES: readonly ["-key", "-token", "-secret", "-password", "-auth"];
|
|
2550
|
+
/** True when this header's value must be stored as a secret (FR-107). */
|
|
2551
|
+
export declare function isSecretDeliveryHeader(name: string): boolean;
|
|
2552
|
+
/**
|
|
2553
|
+
* The sentinel a read returns in place of a stored secret, and which a write
|
|
2554
|
+
* may send back to mean "keep what is there". The credentials module's own
|
|
2555
|
+
* write-only semantics, applied rather than re-invented.
|
|
2556
|
+
*/
|
|
2557
|
+
export declare const FEED_DELIVERY_REDACTED = "[redacted]";
|
|
2558
|
+
export declare const feedDeliveryHeaderInputSchema: z.ZodObject<{
|
|
2559
|
+
name: z.ZodString;
|
|
2560
|
+
value: z.ZodString;
|
|
2561
|
+
}, z.core.$strip>;
|
|
2562
|
+
export type FeedDeliveryHeaderInput = z.infer<typeof feedDeliveryHeaderInputSchema>;
|
|
2563
|
+
/**
|
|
2564
|
+
* A header as read back. A secret one carries `value: null` and `isSet`, never
|
|
2565
|
+
* the stored token — the same rule the credentials DTO applies to every secret
|
|
2566
|
+
* field.
|
|
2567
|
+
*/
|
|
2568
|
+
export declare const feedDeliveryHeaderSchema: z.ZodObject<{
|
|
2569
|
+
name: z.ZodString;
|
|
2570
|
+
value: z.ZodNullable<z.ZodString>;
|
|
2571
|
+
secret: z.ZodBoolean;
|
|
2572
|
+
isSet: z.ZodBoolean;
|
|
2573
|
+
}, z.core.$strip>;
|
|
2574
|
+
export type FeedDeliveryHeader = z.infer<typeof feedDeliveryHeaderSchema>;
|
|
2575
|
+
export declare const upsertFeedDeliveryRequestSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
2576
|
+
protocol: z.ZodLiteral<"sftp">;
|
|
2577
|
+
host: z.ZodString;
|
|
2578
|
+
port: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
2579
|
+
username: z.ZodString;
|
|
2580
|
+
password: z.ZodOptional<z.ZodString>;
|
|
2581
|
+
privateKey: z.ZodOptional<z.ZodString>;
|
|
2582
|
+
directoryPath: z.ZodOptional<z.ZodString>;
|
|
2583
|
+
enabled: z.ZodBoolean;
|
|
2584
|
+
expectedVersion: z.ZodOptional<z.ZodNumber>;
|
|
2585
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
2586
|
+
protocol: z.ZodLiteral<"ftp">;
|
|
2587
|
+
host: z.ZodString;
|
|
2588
|
+
port: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
2589
|
+
username: z.ZodString;
|
|
2590
|
+
password: z.ZodOptional<z.ZodString>;
|
|
2591
|
+
directoryPath: z.ZodOptional<z.ZodString>;
|
|
2592
|
+
passiveMode: z.ZodOptional<z.ZodBoolean>;
|
|
2593
|
+
enabled: z.ZodBoolean;
|
|
2594
|
+
expectedVersion: z.ZodOptional<z.ZodNumber>;
|
|
2595
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
2596
|
+
protocol: z.ZodLiteral<"http">;
|
|
2597
|
+
httpLabel: z.ZodOptional<z.ZodEnum<{
|
|
2598
|
+
api: "api";
|
|
2599
|
+
http_server: "http_server";
|
|
2600
|
+
graphql: "graphql";
|
|
2601
|
+
}>>;
|
|
2602
|
+
requestUrl: z.ZodString;
|
|
2603
|
+
headers: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2604
|
+
name: z.ZodString;
|
|
2605
|
+
value: z.ZodString;
|
|
2606
|
+
}, z.core.$strip>>>;
|
|
2607
|
+
enabled: z.ZodBoolean;
|
|
2608
|
+
expectedVersion: z.ZodOptional<z.ZodNumber>;
|
|
2609
|
+
}, z.core.$strip>], "protocol">;
|
|
2610
|
+
export type UpsertFeedDeliveryRequest = z.infer<typeof upsertFeedDeliveryRequestSchema>;
|
|
2611
|
+
/**
|
|
2612
|
+
* The delivery configuration as read back. Every secret is a boolean; nothing
|
|
2613
|
+
* on this shape can be replayed as a credential (FR-107).
|
|
2614
|
+
*/
|
|
2615
|
+
export declare const feedDeliveryConfigSchema: z.ZodObject<{
|
|
2616
|
+
id: z.ZodString;
|
|
2617
|
+
productFeedId: z.ZodString;
|
|
2618
|
+
enabled: z.ZodBoolean;
|
|
2619
|
+
protocol: z.ZodEnum<{
|
|
2620
|
+
sftp: "sftp";
|
|
2621
|
+
ftp: "ftp";
|
|
2622
|
+
http: "http";
|
|
2623
|
+
}>;
|
|
2624
|
+
httpLabel: z.ZodNullable<z.ZodEnum<{
|
|
2625
|
+
api: "api";
|
|
2626
|
+
http_server: "http_server";
|
|
2627
|
+
graphql: "graphql";
|
|
2628
|
+
}>>;
|
|
2629
|
+
host: z.ZodNullable<z.ZodString>;
|
|
2630
|
+
port: z.ZodNullable<z.ZodNumber>;
|
|
2631
|
+
username: z.ZodNullable<z.ZodString>;
|
|
2632
|
+
directoryPath: z.ZodNullable<z.ZodString>;
|
|
2633
|
+
passiveMode: z.ZodBoolean;
|
|
2634
|
+
requestUrl: z.ZodNullable<z.ZodString>;
|
|
2635
|
+
headers: z.ZodArray<z.ZodObject<{
|
|
2636
|
+
name: z.ZodString;
|
|
2637
|
+
value: z.ZodNullable<z.ZodString>;
|
|
2638
|
+
secret: z.ZodBoolean;
|
|
2639
|
+
isSet: z.ZodBoolean;
|
|
2640
|
+
}, z.core.$strip>>;
|
|
2641
|
+
passwordSet: z.ZodBoolean;
|
|
2642
|
+
privateKeySet: z.ZodBoolean;
|
|
2643
|
+
version: z.ZodNumber;
|
|
2644
|
+
createdAt: z.ZodString;
|
|
2645
|
+
updatedAt: z.ZodString;
|
|
2646
|
+
}, z.core.$strip>;
|
|
2647
|
+
export type FeedDeliveryConfig = z.infer<typeof feedDeliveryConfigSchema>;
|
|
2648
|
+
/** `GET`/`PUT /api/v1/admin/product-feeds/:id/delivery`. `null` means unconfigured. */
|
|
2649
|
+
export declare const feedDeliveryConfigResponseSchema: z.ZodObject<{
|
|
2650
|
+
data: z.ZodNullable<z.ZodObject<{
|
|
2651
|
+
id: z.ZodString;
|
|
2652
|
+
productFeedId: z.ZodString;
|
|
2653
|
+
enabled: z.ZodBoolean;
|
|
2654
|
+
protocol: z.ZodEnum<{
|
|
2655
|
+
sftp: "sftp";
|
|
2656
|
+
ftp: "ftp";
|
|
2657
|
+
http: "http";
|
|
2658
|
+
}>;
|
|
2659
|
+
httpLabel: z.ZodNullable<z.ZodEnum<{
|
|
2660
|
+
api: "api";
|
|
2661
|
+
http_server: "http_server";
|
|
2662
|
+
graphql: "graphql";
|
|
2663
|
+
}>>;
|
|
2664
|
+
host: z.ZodNullable<z.ZodString>;
|
|
2665
|
+
port: z.ZodNullable<z.ZodNumber>;
|
|
2666
|
+
username: z.ZodNullable<z.ZodString>;
|
|
2667
|
+
directoryPath: z.ZodNullable<z.ZodString>;
|
|
2668
|
+
passiveMode: z.ZodBoolean;
|
|
2669
|
+
requestUrl: z.ZodNullable<z.ZodString>;
|
|
2670
|
+
headers: z.ZodArray<z.ZodObject<{
|
|
2671
|
+
name: z.ZodString;
|
|
2672
|
+
value: z.ZodNullable<z.ZodString>;
|
|
2673
|
+
secret: z.ZodBoolean;
|
|
2674
|
+
isSet: z.ZodBoolean;
|
|
2675
|
+
}, z.core.$strip>>;
|
|
2676
|
+
passwordSet: z.ZodBoolean;
|
|
2677
|
+
privateKeySet: z.ZodBoolean;
|
|
2678
|
+
version: z.ZodNumber;
|
|
2679
|
+
createdAt: z.ZodString;
|
|
2680
|
+
updatedAt: z.ZodString;
|
|
2681
|
+
}, z.core.$strip>>;
|
|
2682
|
+
}, z.core.$strip>;
|
|
2683
|
+
/**
|
|
2684
|
+
* One recorded attempt (FR-105). `target` is the **redacted display form** —
|
|
2685
|
+
* `sftp://user@host:22/path`, never a password and never a header value.
|
|
2686
|
+
*/
|
|
2687
|
+
export declare const feedDeliveryAttemptSchema: z.ZodObject<{
|
|
2688
|
+
id: z.ZodString;
|
|
2689
|
+
productFeedId: z.ZodString;
|
|
2690
|
+
feedRunId: z.ZodNullable<z.ZodString>;
|
|
2691
|
+
feedArtefactId: z.ZodNullable<z.ZodString>;
|
|
2692
|
+
protocol: z.ZodEnum<{
|
|
2693
|
+
sftp: "sftp";
|
|
2694
|
+
ftp: "ftp";
|
|
2695
|
+
http: "http";
|
|
2696
|
+
}>;
|
|
2697
|
+
target: z.ZodString;
|
|
2698
|
+
status: z.ZodEnum<{
|
|
2699
|
+
failed: "failed";
|
|
2700
|
+
succeeded: "succeeded";
|
|
2701
|
+
}>;
|
|
2702
|
+
failureReason: z.ZodNullable<z.ZodEnum<{
|
|
2703
|
+
not_configured: "not_configured";
|
|
2704
|
+
internal_error: "internal_error";
|
|
2705
|
+
target_refused: "target_refused";
|
|
2706
|
+
authentication_failed: "authentication_failed";
|
|
2707
|
+
connection_failed: "connection_failed";
|
|
2708
|
+
transfer_failed: "transfer_failed";
|
|
2709
|
+
rejected_by_target: "rejected_by_target";
|
|
2710
|
+
artefact_unavailable: "artefact_unavailable";
|
|
2711
|
+
}>>;
|
|
2712
|
+
failureDetail: z.ZodNullable<z.ZodString>;
|
|
2713
|
+
attempt: z.ZodNumber;
|
|
2714
|
+
isTest: z.ZodBoolean;
|
|
2715
|
+
startedAt: z.ZodString;
|
|
2716
|
+
finishedAt: z.ZodNullable<z.ZodString>;
|
|
2717
|
+
durationMs: z.ZodNullable<z.ZodNumber>;
|
|
2718
|
+
}, z.core.$strip>;
|
|
2719
|
+
export type FeedDeliveryAttempt = z.infer<typeof feedDeliveryAttemptSchema>;
|
|
2720
|
+
/** `GET /api/v1/admin/product-feeds/:id/delivery/attempts`. */
|
|
2721
|
+
export declare const feedDeliveryAttemptListResponseSchema: z.ZodObject<{
|
|
2722
|
+
data: z.ZodArray<z.ZodObject<{
|
|
2723
|
+
id: z.ZodString;
|
|
2724
|
+
productFeedId: z.ZodString;
|
|
2725
|
+
feedRunId: z.ZodNullable<z.ZodString>;
|
|
2726
|
+
feedArtefactId: z.ZodNullable<z.ZodString>;
|
|
2727
|
+
protocol: z.ZodEnum<{
|
|
2728
|
+
sftp: "sftp";
|
|
2729
|
+
ftp: "ftp";
|
|
2730
|
+
http: "http";
|
|
2731
|
+
}>;
|
|
2732
|
+
target: z.ZodString;
|
|
2733
|
+
status: z.ZodEnum<{
|
|
2734
|
+
failed: "failed";
|
|
2735
|
+
succeeded: "succeeded";
|
|
2736
|
+
}>;
|
|
2737
|
+
failureReason: z.ZodNullable<z.ZodEnum<{
|
|
2738
|
+
not_configured: "not_configured";
|
|
2739
|
+
internal_error: "internal_error";
|
|
2740
|
+
target_refused: "target_refused";
|
|
2741
|
+
authentication_failed: "authentication_failed";
|
|
2742
|
+
connection_failed: "connection_failed";
|
|
2743
|
+
transfer_failed: "transfer_failed";
|
|
2744
|
+
rejected_by_target: "rejected_by_target";
|
|
2745
|
+
artefact_unavailable: "artefact_unavailable";
|
|
2746
|
+
}>>;
|
|
2747
|
+
failureDetail: z.ZodNullable<z.ZodString>;
|
|
2748
|
+
attempt: z.ZodNumber;
|
|
2749
|
+
isTest: z.ZodBoolean;
|
|
2750
|
+
startedAt: z.ZodString;
|
|
2751
|
+
finishedAt: z.ZodNullable<z.ZodString>;
|
|
2752
|
+
durationMs: z.ZodNullable<z.ZodNumber>;
|
|
2753
|
+
}, z.core.$strip>>;
|
|
2754
|
+
pagination: z.ZodObject<{
|
|
2755
|
+
cursor: z.ZodNullable<z.ZodString>;
|
|
2756
|
+
hasMore: z.ZodBoolean;
|
|
2757
|
+
limit: z.ZodNumber;
|
|
2758
|
+
}, z.core.$strip>;
|
|
2759
|
+
}, z.core.$strip>;
|
|
2760
|
+
/** `POST /api/v1/admin/product-feeds/:id/delivery/test` (FR-106). */
|
|
2761
|
+
export declare const feedDeliveryTestResponseSchema: z.ZodObject<{
|
|
2762
|
+
data: z.ZodObject<{
|
|
2763
|
+
ok: z.ZodBoolean;
|
|
2764
|
+
failureReason: z.ZodNullable<z.ZodEnum<{
|
|
2765
|
+
not_configured: "not_configured";
|
|
2766
|
+
internal_error: "internal_error";
|
|
2767
|
+
target_refused: "target_refused";
|
|
2768
|
+
authentication_failed: "authentication_failed";
|
|
2769
|
+
connection_failed: "connection_failed";
|
|
2770
|
+
transfer_failed: "transfer_failed";
|
|
2771
|
+
rejected_by_target: "rejected_by_target";
|
|
2772
|
+
artefact_unavailable: "artefact_unavailable";
|
|
2773
|
+
}>>;
|
|
2774
|
+
failureDetail: z.ZodNullable<z.ZodString>;
|
|
2775
|
+
attempt: z.ZodObject<{
|
|
2776
|
+
id: z.ZodString;
|
|
2777
|
+
productFeedId: z.ZodString;
|
|
2778
|
+
feedRunId: z.ZodNullable<z.ZodString>;
|
|
2779
|
+
feedArtefactId: z.ZodNullable<z.ZodString>;
|
|
2780
|
+
protocol: z.ZodEnum<{
|
|
2781
|
+
sftp: "sftp";
|
|
2782
|
+
ftp: "ftp";
|
|
2783
|
+
http: "http";
|
|
2784
|
+
}>;
|
|
2785
|
+
target: z.ZodString;
|
|
2786
|
+
status: z.ZodEnum<{
|
|
2787
|
+
failed: "failed";
|
|
2788
|
+
succeeded: "succeeded";
|
|
2789
|
+
}>;
|
|
2790
|
+
failureReason: z.ZodNullable<z.ZodEnum<{
|
|
2791
|
+
not_configured: "not_configured";
|
|
2792
|
+
internal_error: "internal_error";
|
|
2793
|
+
target_refused: "target_refused";
|
|
2794
|
+
authentication_failed: "authentication_failed";
|
|
2795
|
+
connection_failed: "connection_failed";
|
|
2796
|
+
transfer_failed: "transfer_failed";
|
|
2797
|
+
rejected_by_target: "rejected_by_target";
|
|
2798
|
+
artefact_unavailable: "artefact_unavailable";
|
|
2799
|
+
}>>;
|
|
2800
|
+
failureDetail: z.ZodNullable<z.ZodString>;
|
|
2801
|
+
attempt: z.ZodNumber;
|
|
2802
|
+
isTest: z.ZodBoolean;
|
|
2803
|
+
startedAt: z.ZodString;
|
|
2804
|
+
finishedAt: z.ZodNullable<z.ZodString>;
|
|
2805
|
+
durationMs: z.ZodNullable<z.ZodNumber>;
|
|
2806
|
+
}, z.core.$strip>;
|
|
2807
|
+
}, z.core.$strip>;
|
|
2808
|
+
}, z.core.$strip>;
|
|
2809
|
+
/**
|
|
2810
|
+
* Egress and transport safety limits. Not settings, for the reason
|
|
2811
|
+
* `TAXONOMY_FETCH_LIMITS` is not: an admin screen that can widen an SSRF guard
|
|
2812
|
+
* or remove a timeout is an SSRF guard with an off switch.
|
|
2813
|
+
*/
|
|
2814
|
+
export declare const FEED_DELIVERY_LIMITS: {
|
|
2815
|
+
/** Per-attempt ceiling on the whole transfer, whatever the protocol. */
|
|
2816
|
+
readonly TRANSFER_TIMEOUT_MS: 300000;
|
|
2817
|
+
/** Connect + authenticate. A host that cannot answer this fast is down. */
|
|
2818
|
+
readonly CONNECT_TIMEOUT_MS: 20000;
|
|
2819
|
+
/**
|
|
2820
|
+
* One hop, re-validated, and the credential headers are re-attached only if
|
|
2821
|
+
* the host is unchanged (SR-3).
|
|
2822
|
+
*/
|
|
2823
|
+
readonly MAX_REDIRECTS: 1;
|
|
2824
|
+
/** Attempts retained per feed. */
|
|
2825
|
+
readonly ATTEMPT_HISTORY_PER_FEED: 50;
|
|
2826
|
+
/** Delivery attempts per published artefact, unless the setting overrides it. */
|
|
2827
|
+
readonly DEFAULT_MAX_ATTEMPTS: 5;
|
|
2828
|
+
/** Backoff base; the worker multiplies it exponentially per attempt. */
|
|
2829
|
+
readonly RETRY_BACKOFF_MS: 60000;
|
|
2830
|
+
/** `POST /delivery/test` per feed per hour, unless the setting overrides it. */
|
|
2831
|
+
readonly DEFAULT_TEST_RATE_LIMIT_PER_HOUR: 20;
|
|
2832
|
+
/** The fixed, non-operator-controlled body a `http` connection test sends (SR-5). */
|
|
2833
|
+
readonly TEST_PAYLOAD: "endora-commerce feed delivery connection test";
|
|
2834
|
+
/** The filename a test writes and removes on an SFTP/FTP target. */
|
|
2835
|
+
readonly TEST_FILENAME: ".endora-delivery-test";
|
|
2836
|
+
};
|
|
2837
|
+
//# sourceMappingURL=product-feeds.d.ts.map
|