@hartl-services/medusa-payload-sync 0.1.0 → 0.2.1
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/.medusa/server/src/lib/payload-connection.js +53 -0
- package/.medusa/server/src/lib/payload-sync-guard.js +51 -0
- package/.medusa/server/src/modules/payload-sync/domain/errors.js +96 -2
- package/.medusa/server/src/modules/payload-sync/domain/options.js +28 -5
- package/.medusa/server/src/modules/payload-sync/domain/settings.js +44 -0
- package/.medusa/server/src/modules/payload-sync/loaders/register-payload-client.js +17 -12
- package/.medusa/server/src/modules/payload-sync/service.js +116 -55
- package/.medusa/server/src/modules/payload-sync/services/payload-rest-client.js +1 -1
- package/.medusa/server/src/plugin-actions.js +10 -0
- package/.medusa/server/src/plugin-features.js +49 -0
- package/.medusa/server/src/scripts/reconcile-payload-catalog.js +93 -13
- package/.medusa/server/src/subscribers/payload-sync-product-deleted.js +7 -4
- package/.medusa/server/src/subscribers/payload-sync-product-upserted.js +7 -4
- package/.medusa/server/src/subscribers/payload-sync-variant-deleted.js +7 -4
- package/.medusa/server/src/subscribers/payload-sync-variant-upserted.js +7 -4
- package/.medusa/server/src/workflows/payload-sync/authoritative-reconciliation.js +19 -14
- package/.medusa/server/src/workflows/payload-sync/external-step-failure.js +18 -1
- package/.medusa/server/src/workflows/payload-sync/reconcile-catalog.js +13 -10
- package/.medusa/server/src/workflows/payload-sync/reconcile-full-catalog.js +30 -0
- package/.medusa/server/src/workflows/payload-sync/sync-product.js +3 -11
- package/.medusa/server/src/workflows/payload-sync/sync-variant.js +4 -2
- package/README.md +197 -55
- package/package.json +7 -4
|
@@ -2,13 +2,26 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.reconcilePayloadCatalog = reconcilePayloadCatalog;
|
|
4
4
|
exports.default = reconcilePayloadCatalogScript;
|
|
5
|
+
const medusa_base_1 = require("@hartl-services/medusa-base");
|
|
5
6
|
const utils_1 = require("@medusajs/framework/utils");
|
|
6
7
|
const reconciliation_1 = require("../modules/payload-sync/domain/reconciliation");
|
|
7
8
|
const errors_1 = require("../modules/payload-sync/domain/errors");
|
|
8
9
|
const payload_sync_1 = require("../modules/payload-sync");
|
|
10
|
+
const payload_sync_guard_1 = require("../lib/payload-sync-guard");
|
|
9
11
|
const sync_product_1 = require("../workflows/payload-sync/sync-product");
|
|
10
12
|
const reconcile_catalog_1 = require("../workflows/payload-sync/reconcile-catalog");
|
|
13
|
+
const external_step_failure_1 = require("../workflows/payload-sync/external-step-failure");
|
|
14
|
+
/**
|
|
15
|
+
* Full catalog reconciliation, shared by this script and the
|
|
16
|
+
* `payload-sync-reconcile-catalog` workflow (Admin action "Jetzt
|
|
17
|
+
* synchronisieren"). Not gated by the plugin switch. While the plugin is
|
|
18
|
+
* "nicht konfiguriert" it logs that once and returns an empty summary; the
|
|
19
|
+
* action's workflow fails before calling it (`requirePayloadSyncConfigured`).
|
|
20
|
+
*/
|
|
11
21
|
async function reconcilePayloadCatalog(args) {
|
|
22
|
+
if (!(await (0, payload_sync_guard_1.isPayloadSyncConfigured)(args.container))) {
|
|
23
|
+
return (0, reconciliation_1.emptyReconciliationSummary)();
|
|
24
|
+
}
|
|
12
25
|
const service = args.container.resolve(payload_sync_1.PAYLOAD_SYNC_MODULE);
|
|
13
26
|
const query = args.container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
14
27
|
const logger = args.container.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
@@ -17,7 +30,15 @@ async function reconcilePayloadCatalog(args) {
|
|
|
17
30
|
const batchDelayMs = args.batchDelayMs ?? defaults.batchDelayMs;
|
|
18
31
|
const sleep = args.sleep ?? defaultSleep;
|
|
19
32
|
const summary = (0, reconciliation_1.emptyReconciliationSummary)();
|
|
33
|
+
let totalProducts = null;
|
|
34
|
+
const reportProgress = (label) => (0, medusa_base_1.reportPluginActionProgress)(args.container, args.runId, {
|
|
35
|
+
current: summary.scannedProducts,
|
|
36
|
+
total: totalProducts,
|
|
37
|
+
label,
|
|
38
|
+
});
|
|
20
39
|
let skip = 0;
|
|
40
|
+
let productPage = 0;
|
|
41
|
+
let firstProductFailure = undefined;
|
|
21
42
|
while (true) {
|
|
22
43
|
const page = await query.graph({
|
|
23
44
|
entity: "product",
|
|
@@ -29,24 +50,24 @@ async function reconcilePayloadCatalog(args) {
|
|
|
29
50
|
},
|
|
30
51
|
});
|
|
31
52
|
const productIds = page.data.map(readId);
|
|
53
|
+
productPage += 1;
|
|
54
|
+
totalProducts = page.metadata?.count ?? null;
|
|
32
55
|
summary.scannedProducts += productIds.length;
|
|
33
56
|
for (const productId of productIds) {
|
|
34
57
|
try {
|
|
35
|
-
const
|
|
58
|
+
const result = await runToCompletion(() => (0, sync_product_1.syncProductToPayloadWorkflow)(args.container).run({
|
|
36
59
|
input: {
|
|
37
60
|
id: productId,
|
|
38
61
|
eventName: "payload-sync.reconciliation",
|
|
39
62
|
},
|
|
40
63
|
throwOnError: false,
|
|
41
|
-
});
|
|
42
|
-
if (errors.length > 0) {
|
|
43
|
-
throw readWorkflowFailure(errors[0]);
|
|
44
|
-
}
|
|
64
|
+
}));
|
|
45
65
|
summary.syncedProducts += 1;
|
|
46
66
|
summary.syncedVariants += result.currentVariantIds.length;
|
|
47
67
|
}
|
|
48
68
|
catch (error) {
|
|
49
69
|
summary.failedProductIds.push(productId);
|
|
70
|
+
firstProductFailure ??= error;
|
|
50
71
|
logger.error((0, errors_1.formatPayloadSyncLog)(error, {
|
|
51
72
|
operation: "reconcile-product",
|
|
52
73
|
entityType: "product",
|
|
@@ -55,6 +76,7 @@ async function reconcilePayloadCatalog(args) {
|
|
|
55
76
|
}));
|
|
56
77
|
}
|
|
57
78
|
}
|
|
79
|
+
await reportProgress(`Produkte: Seite ${productPage}, ${summary.syncedProducts} gespiegelt`);
|
|
58
80
|
const nextSkip = skip + productIds.length;
|
|
59
81
|
const hasNextPage = nextSkip < (page.metadata?.count ?? nextSkip);
|
|
60
82
|
if (!hasNextPage) {
|
|
@@ -63,23 +85,74 @@ async function reconcilePayloadCatalog(args) {
|
|
|
63
85
|
await sleep(batchDelayMs);
|
|
64
86
|
skip = nextSkip;
|
|
65
87
|
}
|
|
66
|
-
|
|
67
|
-
|
|
88
|
+
let orphanFailure = undefined;
|
|
89
|
+
try {
|
|
90
|
+
summary.draftedOrphanProducts = await reconcileMirrorPages(args.container, batchSize, reconcile_catalog_1.reconcileProductMirrorPageWorkflow, (page) => reportProgress(`Verwaiste Produkt-Spiegel: Seite ${page}`));
|
|
91
|
+
summary.draftedOrphanVariants = await reconcileMirrorPages(args.container, batchSize, reconcile_catalog_1.reconcileVariantMirrorPageWorkflow, (page) => reportProgress(`Verwaiste Varianten-Spiegel: Seite ${page}`));
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
orphanFailure = error;
|
|
95
|
+
logger.error((0, errors_1.formatPayloadSyncLog)(error, {
|
|
96
|
+
operation: "reconcile-orphans",
|
|
97
|
+
eventName: "payload-sync.reconciliation",
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
68
100
|
summary.failedProductIds = [...new Set(summary.failedProductIds)].sort();
|
|
101
|
+
await reportProgress(describeFinishedSummary(summary));
|
|
69
102
|
logger.info(JSON.stringify({ component: "payload-sync-reconciliation", ...summary }));
|
|
70
|
-
if (summary.failedProductIds.length > 0) {
|
|
71
|
-
throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNEXPECTED_STATE,
|
|
103
|
+
if (summary.failedProductIds.length > 0 || orphanFailure !== undefined) {
|
|
104
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNEXPECTED_STATE, describeFailedReconciliation(summary, firstProductFailure, orphanFailure));
|
|
72
105
|
}
|
|
73
106
|
return summary;
|
|
74
107
|
}
|
|
75
|
-
|
|
108
|
+
/**
|
|
109
|
+
* Admin-facing message of a failed run (German, redacted): how many products
|
|
110
|
+
* failed and why, and whether the orphan scan failed and why.
|
|
111
|
+
*/
|
|
112
|
+
function describeFailedReconciliation(summary, firstProductFailure, orphanFailure) {
|
|
113
|
+
const parts = [];
|
|
114
|
+
if (summary.failedProductIds.length > 0) {
|
|
115
|
+
parts.push(`${summary.failedProductIds.length} von ${summary.scannedProducts} Produkt(en) nicht gespiegelt (${(0, errors_1.describePayloadSyncFailureCause)(firstProductFailure)})`);
|
|
116
|
+
}
|
|
117
|
+
if (orphanFailure !== undefined) {
|
|
118
|
+
parts.push(`verwaiste Spiegel nicht geprüft (${(0, errors_1.describePayloadSyncFailureCause)(orphanFailure)})`);
|
|
119
|
+
}
|
|
120
|
+
return `Payload-Abgleich fehlgeschlagen: ${parts.join("; ")}.`;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Runs one nested workflow (with `throwOnError: false`) and returns its
|
|
124
|
+
* result, or throws why there is none. Medusa's local runner reports a
|
|
125
|
+
* failure in two ways:
|
|
126
|
+
* - a permanent step failure, or a retry budget used up inline, ends the
|
|
127
|
+
* transaction `failed` with `errors` (a permanent Payload error arrives as
|
|
128
|
+
* the step's structured log and is parsed back into a `PayloadSyncError`);
|
|
129
|
+
* - a retryable error in a step with `retryInterval` is not retried inline:
|
|
130
|
+
* Medusa schedules the retry and returns while the transaction is still
|
|
131
|
+
* running, with no `errors` and no `result` (Payload unreachable, timeout,
|
|
132
|
+
* HTTP 408/429/5xx). The reconciliation needs the outcome now, so that
|
|
133
|
+
* counts as failed too, named by the error the step threw.
|
|
134
|
+
*/
|
|
135
|
+
async function runToCompletion(run) {
|
|
136
|
+
const { value, retriedFailures } = await (0, external_step_failure_1.captureRetriedStepFailures)(run);
|
|
137
|
+
if (value.errors.length > 0) {
|
|
138
|
+
throw readWorkflowFailure(value.errors[0]);
|
|
139
|
+
}
|
|
140
|
+
if (value.transaction.getState() !== utils_1.TransactionState.DONE) {
|
|
141
|
+
throw (retriedFailures[0] ??
|
|
142
|
+
new errors_1.PayloadSyncError("Payload workflow did not finish; its retry was scheduled.", { code: "PAYLOAD_RETRY_SCHEDULED", retryable: true }));
|
|
143
|
+
}
|
|
144
|
+
return value.result;
|
|
145
|
+
}
|
|
146
|
+
async function reconcileMirrorPages(container, limit, workflow, onPageDone) {
|
|
76
147
|
let drafted = 0;
|
|
77
148
|
let page = 1;
|
|
78
149
|
while (true) {
|
|
79
|
-
const
|
|
150
|
+
const result = await runToCompletion(() => workflow(container).run({
|
|
80
151
|
input: { page, limit },
|
|
81
|
-
|
|
152
|
+
throwOnError: false,
|
|
153
|
+
}));
|
|
82
154
|
drafted += result.draftedIds.length;
|
|
155
|
+
await onPageDone(page);
|
|
83
156
|
if (result.nextPage === null) {
|
|
84
157
|
return drafted;
|
|
85
158
|
}
|
|
@@ -89,6 +162,13 @@ async function reconcileMirrorPages(container, limit, workflow) {
|
|
|
89
162
|
async function reconcilePayloadCatalogScript({ container, }) {
|
|
90
163
|
await reconcilePayloadCatalog({ container });
|
|
91
164
|
}
|
|
165
|
+
function describeFinishedSummary(summary) {
|
|
166
|
+
const drafted = summary.draftedOrphanProducts + summary.draftedOrphanVariants;
|
|
167
|
+
const failed = summary.failedProductIds.length > 0
|
|
168
|
+
? `, ${summary.failedProductIds.length} fehlgeschlagen`
|
|
169
|
+
: "";
|
|
170
|
+
return `Fertig: ${summary.syncedProducts} Produkte und ${summary.syncedVariants} Varianten gespiegelt, ${drafted} verwaiste Spiegel auf Entwurf gesetzt${failed}`;
|
|
171
|
+
}
|
|
92
172
|
async function defaultSleep(milliseconds) {
|
|
93
173
|
await new Promise((resolve) => setTimeout(resolve, milliseconds));
|
|
94
174
|
}
|
|
@@ -157,4 +237,4 @@ function readOptionalInteger(value) {
|
|
|
157
237
|
? value
|
|
158
238
|
: undefined;
|
|
159
239
|
}
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb25jaWxlLXBheWxvYWQtY2F0YWxvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zY3JpcHRzL3JlY29uY2lsZS1wYXlsb2FkLWNhdGFsb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUE2QkEsMERBOEZDO0FBeUJELGdEQUlDO0FBdkpELHFEQUdtQztBQUVuQyxrRkFHdUQ7QUFDdkQsa0VBRytDO0FBQy9DLDBEQUE4RDtBQUU5RCx5RUFBc0Y7QUFDdEYsbUZBR3FEO0FBUzlDLEtBQUssVUFBVSx1QkFBdUIsQ0FDM0MsSUFBaUM7SUFFakMsTUFBTSxPQUFPLEdBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQTJCLGtDQUFtQixDQUFDLENBQUM7SUFDeEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDcEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxRQUFRLENBQUMsU0FBUyxDQUFDO0lBQ3ZELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLElBQUksUUFBUSxDQUFDLFlBQVksQ0FBQztJQUNoRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLFlBQVksQ0FBQztJQUN6QyxNQUFNLE9BQU8sR0FBRyxJQUFBLDJDQUEwQixHQUFFLENBQUM7SUFDN0MsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBRWIsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNaLE1BQU0sSUFBSSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUM3QixNQUFNLEVBQUUsU0FBUztZQUNqQixNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDZCxVQUFVLEVBQUU7Z0JBQ1YsSUFBSTtnQkFDSixJQUFJLEVBQUUsU0FBUztnQkFDZixLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFO2FBQ3JCO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFekMsT0FBTyxDQUFDLGVBQWUsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDO1FBRTdDLEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDO2dCQUNILE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLDJDQUE0QixFQUMzRCxJQUFJLENBQUMsU0FBUyxDQUNmLENBQUMsR0FBRyxDQUFDO29CQUNKLEtBQUssRUFBRTt3QkFDTCxFQUFFLEVBQUUsU0FBUzt3QkFDYixTQUFTLEVBQUUsNkJBQTZCO3FCQUN6QztvQkFDRCxZQUFZLEVBQUUsS0FBSztpQkFDcEIsQ0FBQyxDQUFDO2dCQUVILElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDdEIsTUFBTSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkMsQ0FBQztnQkFFRCxPQUFPLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxDQUFDLGNBQWMsSUFBSSxNQUFNLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1lBQzVELENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3pDLE1BQU0sQ0FBQyxLQUFLLENBQ1YsSUFBQSw2QkFBb0IsRUFBQyxLQUFLLEVBQUU7b0JBQzFCLFNBQVMsRUFBRSxtQkFBbUI7b0JBQzlCLFVBQVUsRUFBRSxTQUFTO29CQUNyQixRQUFRLEVBQUUsU0FBUztvQkFDbkIsU0FBUyxFQUFFLDZCQUE2QjtpQkFDekMsQ0FBQyxDQUNILENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQzFDLE1BQU0sV0FBVyxHQUFHLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJLFFBQVEsQ0FBQyxDQUFDO1FBRWxFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNO1FBQ1IsQ0FBQztRQUVELE1BQU0sS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFCLElBQUksR0FBRyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELE9BQU8sQ0FBQyxxQkFBcUIsR0FBRyxNQUFNLG9CQUFvQixDQUN4RCxJQUFJLENBQUMsU0FBUyxFQUNkLFNBQVMsRUFDVCxzREFBa0MsQ0FDbkMsQ0FBQztJQUNGLE9BQU8sQ0FBQyxxQkFBcUIsR0FBRyxNQUFNLG9CQUFvQixDQUN4RCxJQUFJLENBQUMsU0FBUyxFQUNkLFNBQVMsRUFDVCxzREFBa0MsQ0FDbkMsQ0FBQztJQUNGLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUV6RSxNQUFNLENBQUMsSUFBSSxDQUNULElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxTQUFTLEVBQUUsNkJBQTZCLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUN6RSxDQUFDO0lBRUYsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFDbEMsNkNBQTZDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLGNBQWMsQ0FDM0YsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsS0FBSyxVQUFVLG9CQUFvQixDQUNqQyxTQUEwQixFQUMxQixLQUFhLEVBQ2IsUUFBbUQ7SUFFbkQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztJQUViLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDWixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQy9DLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7U0FDdkIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBRXBDLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUM3QixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBRUQsSUFBSSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztBQUNILENBQUM7QUFFYyxLQUFLLFVBQVUsNkJBQTZCLENBQUMsRUFDMUQsU0FBUyxHQUNBO0lBQ1QsTUFBTSx1QkFBdUIsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELEtBQUssVUFBVSxZQUFZLENBQUMsWUFBb0I7SUFDOUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBQ3BFLENBQUM7QUFFRCxTQUFTLE1BQU0sQ0FBQyxLQUFjO0lBQzVCLElBQ0UsT0FBTyxLQUFLLEtBQUssUUFBUTtRQUN6QixLQUFLLEtBQUssSUFBSTtRQUNkLENBQUMsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDO1FBQ2hCLE9BQU8sS0FBSyxDQUFDLEVBQUUsS0FBSyxRQUFRO1FBQzVCLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFDckIsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLEtBQWM7SUFDekMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdkUsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUUxQixJQUFJLEtBQUssWUFBWSx5QkFBZ0IsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXhDLElBQUksT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3JCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFZLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUMsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUM7SUFDL0MsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLEtBQWM7SUFDdEMsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFLENBQUM7UUFDM0IsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUNFLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFDekIsS0FBSyxLQUFLLElBQUk7UUFDZCxTQUFTLElBQUksS0FBSztRQUNsQixPQUFPLEtBQUssQ0FBQyxPQUFPLEtBQUssUUFBUSxFQUNqQyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLEtBQWM7SUFDMUMsSUFDRSxPQUFPLEtBQUssS0FBSyxRQUFRO1FBQ3pCLEtBQUssS0FBSyxJQUFJO1FBQ2QsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUM7UUFDbEIsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVE7UUFDOUIsQ0FBQyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUM7UUFDckIsT0FBTyxLQUFLLENBQUMsT0FBTyxLQUFLLFFBQVE7UUFDakMsQ0FBQyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUM7UUFDdkIsT0FBTyxLQUFLLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFDcEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUNkLFlBQVksSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRTVFLE9BQU8sSUFBSSx5QkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO1FBQ3pDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtRQUNoQixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7UUFDMUIsVUFBVTtLQUNYLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLEtBQWM7SUFDekMsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDekQsQ0FBQyxDQUFDLEtBQUs7UUFDUCxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ2hCLENBQUMifQ==
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb25jaWxlLXBheWxvYWQtY2F0YWxvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zY3JpcHRzL3JlY29uY2lsZS1wYXlsb2FkLWNhdGFsb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUE4Q0EsMERBOEhDO0FBaUdELGdEQUlDO0FBalJELDZEQUF5RTtBQUV6RSxxREFJbUM7QUFFbkMsa0ZBR3VEO0FBQ3ZELGtFQUkrQztBQUMvQywwREFBOEQ7QUFDOUQsa0VBQW9FO0FBRXBFLHlFQUFzRjtBQUN0RixtRkFHcUQ7QUFDckQsMkZBQTZGO0FBYzdGOzs7Ozs7R0FNRztBQUNJLEtBQUssVUFBVSx1QkFBdUIsQ0FDM0MsSUFBaUM7SUFFakMsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFBLDRDQUF1QixFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckQsT0FBTyxJQUFBLDJDQUEwQixHQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUEyQixrQ0FBbUIsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ3BELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQztJQUN2RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLFFBQVEsQ0FBQyxZQUFZLENBQUM7SUFDaEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtB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
|
|
@@ -4,15 +4,18 @@ exports.config = void 0;
|
|
|
4
4
|
exports.default = payloadSyncProductDeletedSubscriber;
|
|
5
5
|
const utils_1 = require("@medusajs/framework/utils");
|
|
6
6
|
const zod_1 = require("@medusajs/framework/zod");
|
|
7
|
+
const payload_sync_guard_1 = require("../lib/payload-sync-guard");
|
|
7
8
|
const unpublish_product_1 = require("../workflows/payload-sync/unpublish-product");
|
|
8
9
|
const EntityEventSchema = zod_1.z.object({ id: zod_1.z.string().trim().min(1) });
|
|
9
10
|
async function payloadSyncProductDeletedSubscriber({ event, container, }) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
await (0, payload_sync_guard_1.runPayloadSyncSubscriber)(container, async () => {
|
|
12
|
+
const { id } = EntityEventSchema.parse(event.data);
|
|
13
|
+
await (0, unpublish_product_1.unpublishProductFromPayloadWorkflow)(container).run({
|
|
14
|
+
input: { id, eventName: event.name },
|
|
15
|
+
});
|
|
13
16
|
});
|
|
14
17
|
}
|
|
15
18
|
exports.config = {
|
|
16
19
|
event: utils_1.ProductWorkflowEvents.DELETED,
|
|
17
20
|
};
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bG9hZC1zeW5jLXByb2R1Y3QtZGVsZXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9wYXlsb2FkLXN5bmMtcHJvZHVjdC1kZWxldGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWFBLHNEQVdDO0FBcEJELHFEQUFrRTtBQUNsRSxpREFBNEM7QUFFNUMsa0VBQXFFO0FBQ3JFLG1GQUFrRztBQUVsRyxNQUFNLGlCQUFpQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFHdEQsS0FBSyxVQUFVLG1DQUFtQyxDQUFDLEVBQ2hFLEtBQUssRUFDTCxTQUFTLEdBQ21CO0lBQzVCLE1BQU0sSUFBQSw2Q0FBd0IsRUFBQyxTQUFTLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDbkQsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbkQsTUFBTSxJQUFBLHVEQUFtQyxFQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUN2RCxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUU7U0FDckMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRVksUUFBQSxNQUFNLEdBQXFCO0lBQ3RDLEtBQUssRUFBRSw2QkFBcUIsQ0FBQyxPQUFPO0NBQ3JDLENBQUMifQ==
|
|
@@ -4,15 +4,18 @@ exports.config = void 0;
|
|
|
4
4
|
exports.default = payloadSyncProductUpsertedSubscriber;
|
|
5
5
|
const utils_1 = require("@medusajs/framework/utils");
|
|
6
6
|
const zod_1 = require("@medusajs/framework/zod");
|
|
7
|
+
const payload_sync_guard_1 = require("../lib/payload-sync-guard");
|
|
7
8
|
const sync_product_1 = require("../workflows/payload-sync/sync-product");
|
|
8
9
|
const EntityEventSchema = zod_1.z.object({ id: zod_1.z.string().trim().min(1) });
|
|
9
10
|
async function payloadSyncProductUpsertedSubscriber({ event, container, }) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
await (0, payload_sync_guard_1.runPayloadSyncSubscriber)(container, async () => {
|
|
12
|
+
const { id } = EntityEventSchema.parse(event.data);
|
|
13
|
+
await (0, sync_product_1.syncProductToPayloadWorkflow)(container).run({
|
|
14
|
+
input: { id, eventName: event.name },
|
|
15
|
+
});
|
|
13
16
|
});
|
|
14
17
|
}
|
|
15
18
|
exports.config = {
|
|
16
19
|
event: [utils_1.ProductWorkflowEvents.CREATED, utils_1.ProductWorkflowEvents.UPDATED],
|
|
17
20
|
};
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bG9hZC1zeW5jLXByb2R1Y3QtdXBzZXJ0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3Vic2NyaWJlcnMvcGF5bG9hZC1zeW5jLXByb2R1Y3QtdXBzZXJ0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBYUEsdURBV0M7QUFwQkQscURBQWtFO0FBQ2xFLGlEQUE0QztBQUU1QyxrRUFBcUU7QUFDckUseUVBQXNGO0FBRXRGLE1BQU0saUJBQWlCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUd0RCxLQUFLLFVBQVUsb0NBQW9DLENBQUMsRUFDakUsS0FBSyxFQUNMLFNBQVMsR0FDbUI7SUFDNUIsTUFBTSxJQUFBLDZDQUF3QixFQUFDLFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNuRCxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuRCxNQUFNLElBQUEsMkNBQTRCLEVBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ2hELEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRTtTQUNyQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFWSxRQUFBLE1BQU0sR0FBcUI7SUFDdEMsS0FBSyxFQUFFLENBQUMsNkJBQXFCLENBQUMsT0FBTyxFQUFFLDZCQUFxQixDQUFDLE9BQU8sQ0FBQztDQUN0RSxDQUFDIn0=
|
|
@@ -4,15 +4,18 @@ exports.config = void 0;
|
|
|
4
4
|
exports.default = payloadSyncVariantDeletedSubscriber;
|
|
5
5
|
const utils_1 = require("@medusajs/framework/utils");
|
|
6
6
|
const zod_1 = require("@medusajs/framework/zod");
|
|
7
|
+
const payload_sync_guard_1 = require("../lib/payload-sync-guard");
|
|
7
8
|
const unpublish_variant_1 = require("../workflows/payload-sync/unpublish-variant");
|
|
8
9
|
const EntityEventSchema = zod_1.z.object({ id: zod_1.z.string().trim().min(1) });
|
|
9
10
|
async function payloadSyncVariantDeletedSubscriber({ event, container, }) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
await (0, payload_sync_guard_1.runPayloadSyncSubscriber)(container, async () => {
|
|
12
|
+
const { id } = EntityEventSchema.parse(event.data);
|
|
13
|
+
await (0, unpublish_variant_1.unpublishVariantFromPayloadWorkflow)(container).run({
|
|
14
|
+
input: { id, eventName: event.name },
|
|
15
|
+
});
|
|
13
16
|
});
|
|
14
17
|
}
|
|
15
18
|
exports.config = {
|
|
16
19
|
event: utils_1.ProductVariantWorkflowEvents.DELETED,
|
|
17
20
|
};
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bG9hZC1zeW5jLXZhcmlhbnQtZGVsZXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9wYXlsb2FkLXN5bmMtdmFyaWFudC1kZWxldGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWFBLHNEQVdDO0FBcEJELHFEQUF5RTtBQUN6RSxpREFBNEM7QUFFNUMsa0VBQXFFO0FBQ3JFLG1GQUFrRztBQUVsRyxNQUFNLGlCQUFpQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFHdEQsS0FBSyxVQUFVLG1DQUFtQyxDQUFDLEVBQ2hFLEtBQUssRUFDTCxTQUFTLEdBQ21CO0lBQzVCLE1BQU0sSUFBQSw2Q0FBd0IsRUFBQyxTQUFTLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDbkQsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbkQsTUFBTSxJQUFBLHVEQUFtQyxFQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUN2RCxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUU7U0FDckMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRVksUUFBQSxNQUFNLEdBQXFCO0lBQ3RDLEtBQUssRUFBRSxvQ0FBNEIsQ0FBQyxPQUFPO0NBQzVDLENBQUMifQ==
|
|
@@ -4,12 +4,15 @@ exports.config = void 0;
|
|
|
4
4
|
exports.default = payloadSyncVariantUpsertedSubscriber;
|
|
5
5
|
const utils_1 = require("@medusajs/framework/utils");
|
|
6
6
|
const zod_1 = require("@medusajs/framework/zod");
|
|
7
|
+
const payload_sync_guard_1 = require("../lib/payload-sync-guard");
|
|
7
8
|
const sync_variant_1 = require("../workflows/payload-sync/sync-variant");
|
|
8
9
|
const EntityEventSchema = zod_1.z.object({ id: zod_1.z.string().trim().min(1) });
|
|
9
10
|
async function payloadSyncVariantUpsertedSubscriber({ event, container, }) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
await (0, payload_sync_guard_1.runPayloadSyncSubscriber)(container, async () => {
|
|
12
|
+
const { id } = EntityEventSchema.parse(event.data);
|
|
13
|
+
await (0, sync_variant_1.syncVariantToPayloadWorkflow)(container).run({
|
|
14
|
+
input: { id, eventName: event.name },
|
|
15
|
+
});
|
|
13
16
|
});
|
|
14
17
|
}
|
|
15
18
|
exports.config = {
|
|
@@ -18,4 +21,4 @@ exports.config = {
|
|
|
18
21
|
utils_1.ProductVariantWorkflowEvents.UPDATED,
|
|
19
22
|
],
|
|
20
23
|
};
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bG9hZC1zeW5jLXZhcmlhbnQtdXBzZXJ0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3Vic2NyaWJlcnMvcGF5bG9hZC1zeW5jLXZhcmlhbnQtdXBzZXJ0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBYUEsdURBV0M7QUFwQkQscURBQXlFO0FBQ3pFLGlEQUE0QztBQUU1QyxrRUFBcUU7QUFDckUseUVBQXNGO0FBRXRGLE1BQU0saUJBQWlCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUd0RCxLQUFLLFVBQVUsb0NBQW9DLENBQUMsRUFDakUsS0FBSyxFQUNMLFNBQVMsR0FDbUI7SUFDNUIsTUFBTSxJQUFBLDZDQUF3QixFQUFDLFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNuRCxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuRCxNQUFNLElBQUEsMkNBQTRCLEVBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ2hELEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRTtTQUNyQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFWSxRQUFBLE1BQU0sR0FBcUI7SUFDdEMsS0FBSyxFQUFFO1FBQ0wsb0NBQTRCLENBQUMsT0FBTztRQUNwQyxvQ0FBNEIsQ0FBQyxPQUFPO0tBQ3JDO0NBQ0YsQ0FBQyJ9
|
|
@@ -6,6 +6,7 @@ exports.reconcileAuthoritativeVariant = reconcileAuthoritativeVariant;
|
|
|
6
6
|
const utils_1 = require("@medusajs/framework/utils");
|
|
7
7
|
const zod_1 = require("@medusajs/framework/zod");
|
|
8
8
|
const node_crypto_1 = require("node:crypto");
|
|
9
|
+
const payload_connection_1 = require("../../lib/payload-connection");
|
|
9
10
|
const payload_sync_1 = require("../../modules/payload-sync");
|
|
10
11
|
const errors_1 = require("../../modules/payload-sync/domain/errors");
|
|
11
12
|
const PAYLOAD_SYNC_CATALOG_LOCK_KEY = "payload-sync:catalog";
|
|
@@ -237,59 +238,63 @@ function lockLifecycleError(code, message) {
|
|
|
237
238
|
});
|
|
238
239
|
}
|
|
239
240
|
async function reconcileAuthoritativeProduct(container, input) {
|
|
241
|
+
// Not configured fails here, before the catalog lock is taken.
|
|
242
|
+
const connection = await (0, payload_connection_1.resolvePayloadConnection)(container);
|
|
240
243
|
return await withPayloadSyncCatalogLock(container, async ({ query, service }) => {
|
|
241
244
|
const snapshot = await queryProductSnapshot(query, input.medusaId);
|
|
242
245
|
if (snapshot !== null) {
|
|
243
|
-
return await service.syncProductSnapshot(snapshot);
|
|
246
|
+
return await service.syncProductSnapshot(connection, snapshot);
|
|
244
247
|
}
|
|
245
|
-
const drafted = await service.draftProductMirror(input.medusaId);
|
|
248
|
+
const drafted = await service.draftProductMirror(connection, input.medusaId);
|
|
246
249
|
if (drafted !== null || input.fallbackSnapshot === undefined) {
|
|
247
250
|
return drafted;
|
|
248
251
|
}
|
|
249
|
-
return await service.syncProductSnapshot({
|
|
252
|
+
return await service.syncProductSnapshot(connection, {
|
|
250
253
|
...input.fallbackSnapshot,
|
|
251
254
|
status: "draft",
|
|
252
255
|
});
|
|
253
256
|
});
|
|
254
257
|
}
|
|
255
258
|
async function reconcileAuthoritativeVariant(container, input) {
|
|
259
|
+
// Not configured fails here, before the catalog lock is taken.
|
|
260
|
+
const connection = await (0, payload_connection_1.resolvePayloadConnection)(container);
|
|
256
261
|
return await withPayloadSyncCatalogLock(container, async ({ query, service }) => {
|
|
257
262
|
const snapshot = await queryVariantSnapshot(query, input.medusaId);
|
|
258
263
|
if (snapshot === null) {
|
|
259
|
-
return await draftMissingVariant(query, service, input.medusaId, input.fallbackSnapshot);
|
|
264
|
+
return await draftMissingVariant(query, service, connection, input.medusaId, input.fallbackSnapshot);
|
|
260
265
|
}
|
|
261
|
-
let payloadParent = await service.findProductMirror(snapshot.product.id);
|
|
266
|
+
let payloadParent = await service.findProductMirror(connection, snapshot.product.id);
|
|
262
267
|
if (payloadParent === null) {
|
|
263
268
|
const parentSnapshot = await queryProductSnapshot(query, snapshot.product.id);
|
|
264
269
|
if (parentSnapshot === null) {
|
|
265
|
-
return await draftMissingVariant(query, service, input.medusaId, input.fallbackSnapshot);
|
|
270
|
+
return await draftMissingVariant(query, service, connection, input.medusaId, input.fallbackSnapshot);
|
|
266
271
|
}
|
|
267
|
-
const parentResult = await service.syncProductSnapshot(parentSnapshot);
|
|
272
|
+
const parentResult = await service.syncProductSnapshot(connection, parentSnapshot);
|
|
268
273
|
payloadParent = parentResult.product;
|
|
269
274
|
}
|
|
270
|
-
return await service.syncVariantSnapshot({
|
|
275
|
+
return await service.syncVariantSnapshot(connection, {
|
|
271
276
|
variant: snapshot.variant,
|
|
272
277
|
payloadProductId: payloadParent.id,
|
|
273
278
|
productStatus: snapshot.product.status,
|
|
274
279
|
});
|
|
275
280
|
});
|
|
276
281
|
}
|
|
277
|
-
async function draftMissingVariant(query, service, medusaId, fallbackSnapshot) {
|
|
278
|
-
const drafted = await service.draftVariantMirror(medusaId);
|
|
282
|
+
async function draftMissingVariant(query, service, connection, medusaId, fallbackSnapshot) {
|
|
283
|
+
const drafted = await service.draftVariantMirror(connection, medusaId);
|
|
279
284
|
if (drafted !== null || fallbackSnapshot === undefined) {
|
|
280
285
|
return drafted;
|
|
281
286
|
}
|
|
282
|
-
let payloadParent = await service.findProductMirror(fallbackSnapshot.product.id);
|
|
287
|
+
let payloadParent = await service.findProductMirror(connection, fallbackSnapshot.product.id);
|
|
283
288
|
if (payloadParent === null) {
|
|
284
289
|
const currentParent = await queryProductSnapshot(query, fallbackSnapshot.product.id);
|
|
285
|
-
const parentResult = await service.syncProductSnapshot(currentParent ?? {
|
|
290
|
+
const parentResult = await service.syncProductSnapshot(connection, currentParent ?? {
|
|
286
291
|
...fallbackSnapshot.product,
|
|
287
292
|
status: "draft",
|
|
288
293
|
variants: [],
|
|
289
294
|
});
|
|
290
295
|
payloadParent = parentResult.product;
|
|
291
296
|
}
|
|
292
|
-
return await service.syncVariantSnapshot({
|
|
297
|
+
return await service.syncVariantSnapshot(connection, {
|
|
293
298
|
variant: fallbackSnapshot.variant,
|
|
294
299
|
payloadProductId: payloadParent.id,
|
|
295
300
|
productStatus: "draft",
|
|
@@ -354,4 +359,4 @@ function invalidMedusaAggregateError(entityType, medusaId) {
|
|
|
354
359
|
medusaId,
|
|
355
360
|
});
|
|
356
361
|
}
|
|
357
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXRhdGl2ZS1yZWNvbmNpbGlhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcGF5bG9hZC1zeW5jL2F1dGhvcml0YXRpdmUtcmVjb25jaWxpYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFvRkEsZ0VBaUJDO0FBaVdELHNFQTRCQztBQWVELHNFQWlEQztBQTdoQkQscURBSW1DO0FBQ25DLGlEQUE0QztBQUM1Qyw2Q0FBeUM7QUFFekMsNkRBQWlFO0FBTWpFLHFFQUE0RTtBQUc1RSxNQUFNLDZCQUE2QixHQUFHLHNCQUFzQixDQUFDO0FBQzdELE1BQU0sa0RBQWtELEdBQUcsTUFBTSxDQUFDO0FBQ2xFLE1BQU0sZ0RBQWdELEdBQUcsR0FBRyxDQUFDO0FBQzdELE1BQU0sK0JBQStCLEdBQUcsRUFBRSxDQUFDO0FBQzNDLE1BQU0sb0NBQW9DLEdBQ3hDLCtCQUErQixHQUFHLEtBQUssQ0FBQztBQUMxQyxNQUFNLCtDQUErQyxHQUFHLE1BQU0sQ0FBQztBQUMvRCxNQUFNLG9EQUFvRCxHQUFHLE1BQU0sQ0FBQztBQUVwRSxNQUFNLHNCQUFzQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDdEMsRUFBRSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLEtBQUssRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2pCLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2xCLE1BQU0sRUFBRSxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDOUQsUUFBUSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQ2YsT0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNQLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFD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
|
|
362
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXRhdGl2ZS1yZWNvbmNpbGlhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcGF5bG9hZC1zeW5jL2F1dGhvcml0YXRpdmUtcmVjb25jaWxpYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFzRkEsZ0VBaUJDO0FBaVdELHNFQWtDQztBQWVELHNFQTREQztBQWhqQkQscURBSW1DO0FBQ25DLGlEQUE0QztBQUM1Qyw2Q0FBeUM7QUFFekMscUVBQXdFO0FBQ3hFLDZEQUFpRTtBQU1qRSxxRUFBNEU7QUFJNUUsTUFBTSw2QkFBNkIsR0FBRyxzQkFBc0IsQ0FBQztBQUM3RCxNQUFNLGtEQUFrRCxHQUFHLE1BQU0sQ0FBQztBQUNsRSxNQUFNLGdEQUFnRCxHQUFHLEdBQUcsQ0FBQztBQUM3RCxNQUFNLCtCQUErQixHQUFHLEVBQUUsQ0FBQztBQUMzQyxNQUFNLG9DQUFvQyxHQUN4QywrQkFBK0IsR0FBRyxLQUFLLENBQUM7QUFDMUMsTUFBTSwrQ0FBK0MsR0FBRyxNQUFNLENBQUM7QUFDL0QsTUFBTSxvREFBb0QsR0FBRyxNQUFNLENBQUM7QUFFcEUsTUFBTSxzQkFBc0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3RDLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyQixLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNqQixNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNsQixNQUFNLEVBQUUsT0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzlELFFBQVEsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUNmLE9BQUMsQ0FBQyxNQUFNLENBQUM7UUFDUCxFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxD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
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.handlePayloadSyncExternalStepFailure = handlePayloadSyncExternalStepFailure;
|
|
4
|
+
exports.captureRetriedStepFailures = captureRetriedStepFailures;
|
|
5
|
+
const node_async_hooks_1 = require("node:async_hooks");
|
|
4
6
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
7
|
const errors_1 = require("../../modules/payload-sync/domain/errors");
|
|
6
8
|
function handlePayloadSyncExternalStepFailure(error, logger, context) {
|
|
@@ -9,6 +11,21 @@ function handlePayloadSyncExternalStepFailure(error, logger, context) {
|
|
|
9
11
|
if (error instanceof errors_1.PayloadSyncError && !error.retryable) {
|
|
10
12
|
return workflows_sdk_1.StepResponse.permanentFailure(safeLog);
|
|
11
13
|
}
|
|
14
|
+
retriedStepFailures.getStore()?.push(error);
|
|
12
15
|
throw error;
|
|
13
16
|
}
|
|
14
|
-
|
|
17
|
+
const retriedStepFailures = new node_async_hooks_1.AsyncLocalStorage();
|
|
18
|
+
/**
|
|
19
|
+
* Runs a workflow and collects the errors its external steps threw for a
|
|
20
|
+
* Medusa retry. Those steps have a `retryInterval`, so Medusa does not retry
|
|
21
|
+
* them inline: it schedules the retry and `run()` returns while the
|
|
22
|
+
* transaction is still running, without `errors` and without `result`. A
|
|
23
|
+
* caller that needs the outcome now (the reconciliation) uses the collected
|
|
24
|
+
* error as the cause. Outside this call nothing is collected.
|
|
25
|
+
*/
|
|
26
|
+
async function captureRetriedStepFailures(run) {
|
|
27
|
+
const retriedFailures = [];
|
|
28
|
+
const value = await retriedStepFailures.run(retriedFailures, run);
|
|
29
|
+
return { value, retriedFailures };
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtc3RlcC1mYWlsdXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9wYXlsb2FkLXN5bmMvZXh0ZXJuYWwtc3RlcC1mYWlsdXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBV0Esb0ZBY0M7QUFZRCxnRUFPQztBQTVDRCx1REFBcUQ7QUFHckQscUVBQWlFO0FBRWpFLHFFQUlrRDtBQUVsRCxTQUFnQixvQ0FBb0MsQ0FDbEQsS0FBYyxFQUNkLE1BQTZCLEVBQzdCLE9BQThCO0lBRTlCLE1BQU0sT0FBTyxHQUFHLElBQUEsNkJBQW9CLEVBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFdEIsSUFBSSxLQUFLLFlBQVkseUJBQWdCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDMUQsT0FBTyw0QkFBWSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsTUFBTSxLQUFLLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLG9DQUFpQixFQUFhLENBQUM7QUFFL0Q7Ozs7Ozs7R0FPRztBQUNJLEtBQUssVUFBVSwwQkFBMEIsQ0FDOUMsR0FBcUI7SUFFckIsTUFBTSxlQUFlLEdBQWMsRUFBRSxDQUFDO0lBQ3RDLE1BQU0sS0FBSyxHQUFHLE1BQU0sbUJBQW1CLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUVsRSxPQUFPLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxDQUFDO0FBQ3BDLENBQUMifQ==
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.reconcileVariantMirrorPageWorkflow = exports.reconcileProductMirrorPageWorkflow = void 0;
|
|
4
4
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
5
|
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
const payload_connection_1 = require("../../lib/payload-connection");
|
|
6
7
|
const reconciliation_1 = require("../../modules/payload-sync/domain/reconciliation");
|
|
7
8
|
const authoritative_reconciliation_1 = require("./authoritative-reconciliation");
|
|
8
9
|
const external_step_failure_1 = require("./external-step-failure");
|
|
@@ -14,7 +15,8 @@ const reconcileProductMirrorPageStep = (0, workflows_sdk_1.createStep)({
|
|
|
14
15
|
}, async (input, context) => {
|
|
15
16
|
const logger = context.container.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
16
17
|
try {
|
|
17
|
-
|
|
18
|
+
const connection = await (0, payload_connection_1.resolvePayloadConnection)(context.container);
|
|
19
|
+
return new workflows_sdk_1.StepResponse(await (0, authoritative_reconciliation_1.withPayloadSyncCatalogLock)(context.container, async ({ service, query }) => await reconcileMirrorPage(input, service, connection, query, "product")));
|
|
18
20
|
}
|
|
19
21
|
catch (error) {
|
|
20
22
|
(0, external_step_failure_1.handlePayloadSyncExternalStepFailure)(error, logger, {
|
|
@@ -35,7 +37,8 @@ const reconcileVariantMirrorPageStep = (0, workflows_sdk_1.createStep)({
|
|
|
35
37
|
}, async (input, context) => {
|
|
36
38
|
const logger = context.container.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
37
39
|
try {
|
|
38
|
-
|
|
40
|
+
const connection = await (0, payload_connection_1.resolvePayloadConnection)(context.container);
|
|
41
|
+
return new workflows_sdk_1.StepResponse(await (0, authoritative_reconciliation_1.withPayloadSyncCatalogLock)(context.container, async ({ service, query }) => await reconcileMirrorPage(input, service, connection, query, "variant")));
|
|
39
42
|
}
|
|
40
43
|
catch (error) {
|
|
41
44
|
(0, external_step_failure_1.handlePayloadSyncExternalStepFailure)(error, logger, {
|
|
@@ -56,8 +59,8 @@ exports.reconcileVariantMirrorPageWorkflow = (0, workflows_sdk_1.createWorkflow)
|
|
|
56
59
|
const result = reconcileVariantMirrorPageStep(input);
|
|
57
60
|
return new workflows_sdk_1.WorkflowResponse(result);
|
|
58
61
|
});
|
|
59
|
-
async function reconcileMirrorPage(input, service, query, mirrorType) {
|
|
60
|
-
const page = await listMirrorPage(service, mirrorType, input);
|
|
62
|
+
async function reconcileMirrorPage(input, service, connection, query, mirrorType) {
|
|
63
|
+
const page = await listMirrorPage(service, connection, mirrorType, input);
|
|
61
64
|
const mirroredIds = page.docs.map(({ medusaId }) => medusaId);
|
|
62
65
|
const currentIds = new Set();
|
|
63
66
|
if (mirroredIds.length > 0) {
|
|
@@ -75,20 +78,20 @@ async function reconcileMirrorPage(input, service, query, mirrorType) {
|
|
|
75
78
|
.filter(({ medusaId, _status }) => _status === "published" && staleIds.has(medusaId))
|
|
76
79
|
.map(({ medusaId }) => medusaId);
|
|
77
80
|
if (mirrorType === "product") {
|
|
78
|
-
await service.draftProductMirrorIds(draftedIds);
|
|
81
|
+
await service.draftProductMirrorIds(connection, draftedIds);
|
|
79
82
|
}
|
|
80
83
|
else {
|
|
81
|
-
await service.draftVariantMirrorIds(draftedIds);
|
|
84
|
+
await service.draftVariantMirrorIds(connection, draftedIds);
|
|
82
85
|
}
|
|
83
86
|
return {
|
|
84
87
|
nextPage: page.nextPage,
|
|
85
88
|
draftedIds,
|
|
86
89
|
};
|
|
87
90
|
}
|
|
88
|
-
function listMirrorPage(service, mirrorType, input) {
|
|
91
|
+
function listMirrorPage(service, connection, mirrorType, input) {
|
|
89
92
|
return mirrorType === "product"
|
|
90
|
-
? service.listProductMirrorPage(input.page, input.limit)
|
|
91
|
-
: service.listVariantMirrorPage(input.page, input.limit);
|
|
93
|
+
? service.listProductMirrorPage(connection, input.page, input.limit)
|
|
94
|
+
: service.listVariantMirrorPage(connection, input.page, input.limit);
|
|
92
95
|
}
|
|
93
96
|
function readId(value) {
|
|
94
97
|
if (typeof value !== "object" ||
|
|
@@ -100,4 +103,4 @@ function readId(value) {
|
|
|
100
103
|
}
|
|
101
104
|
return value.id;
|
|
102
105
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb25jaWxlLWNhdGFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3BheWxvYWQtc3luYy9yZWNvbmNpbGUtY2F0YWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxRUFLMkM7QUFDM0MscURBQXNFO0FBRXRFLHFFQUF3RTtBQU14RSxxRkFBZ0Y7QUFFaEYsaUZBQTRFO0FBQzVFLG1FQUErRTtBQWMvRSxNQUFNLDhCQUE4QixHQUFHLElBQUEsMEJBQVUsRUFDL0M7SUFDRSxJQUFJLEVBQUUsaURBQWlEO0lBQ3ZELFVBQVUsRUFBRSxDQUFDO0lBQ2IsYUFBYSxFQUFFLENBQUM7SUFDaEIsY0FBYyxFQUFFLElBQUk7Q0FDckIsRUFDRCxLQUFLLEVBQUUsS0FBK0IsRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNqRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUzRSxJQUFJLENBQUM7UUFDSCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUEsNkNBQXdCLEVBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXJFLE9BQU8sSUFBSSw0QkFBWSxDQUNyQixNQUFNLElBQUEseURBQTBCLEVBQzlCLE9BQU8sQ0FBQyxTQUFTLEVBQ2pCLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQzNCLE1BQU0sbUJBQW1CLENBQ3ZCLEtBQUssRUFDTCxPQUFPLEVBQ1AsVUFBVSxFQUNWLEtBQUssRUFDTCxTQUFTLENBQ1YsQ0FDSixDQUNGLENBQUM7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQUEsNERBQW9DLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUNsRCxTQUFTLEVBQUUsMkJBQTJCO1lBQ3RDLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLFlBQVksRUFBRSw0Q0FBNEM7WUFDMUQsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1lBQzlCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztZQUN4QixjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7U0FDdkMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMsQ0FDRixDQUFDO0FBRUYsTUFBTSw4QkFBOEIsR0FBRyxJQUFBLDBCQUFVLEVBQy9DO0lBQ0UsSUFBSSxFQUFFLGlEQUFpRDtJQUN2RCxVQUFVLEVBQUUsQ0FBQztJQUNiLGFBQWEsRUFBRSxDQUFDO0lBQ2hCLGNBQWMsRUFBRSxJQUFJO0NBQ3JCLEVBQ0QsS0FBSyxFQUFFLEtBQStCLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDakQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFM0UsSUFBSSxDQUFDO1FBQ0gsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFBLDZDQUF3QixFQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVyRSxPQUFPLElBQUksNEJBQVksQ0FDckIsTUFBTSxJQUFBLHlEQUEwQixFQUM5QixPQUFPLENBQUMsU0FBUyxFQUNqQixLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUMzQixNQUFNLG1CQUFtQixDQUN2QixLQUFLLEVBQ0wsT0FBTyxFQUNQLFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxDQUNWLENBQ0osQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFBLDREQUFvQyxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDbEQsU0FBUyxFQUFFLDJCQUEyQjtZQUN0QyxVQUFVLEVBQUUsU0FBUztZQUNyQixZQUFZLEVBQUUsNENBQTRDO1lBQzFELFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtZQUM5QixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjO1NBQ3ZDLENBQUMsQ0FBQztJQUNMLENBQUM7QUFDSCxDQUFDLENBQ0YsQ0FBQztBQUVXLFFBQUEsa0NBQWtDLEdBQUcsSUFBQSw4QkFBYyxFQUk5RCw0Q0FBNEMsRUFBRSxVQUFVLEtBQUs7SUFDN0QsTUFBTSxNQUFNLEdBQUcsOEJBQThCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFckQsT0FBTyxJQUFJLGdDQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3RDLENBQUMsQ0FBQyxDQUFDO0FBRVUsUUFBQSxrQ0FBa0MsR0FBRyxJQUFBLDhCQUFjLEVBSTlELDRDQUE0QyxFQUFFLFVBQVUsS0FBSztJQUM3RCxNQUFNLE1BQU0sR0FBRyw4QkFBOEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVyRCxPQUFPLElBQUksZ0NBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUFDLENBQUM7QUFFSCxLQUFLLFVBQVUsbUJBQW1CLENBQ2hDLEtBQStCLEVBQy9CLE9BQWlDLEVBQ2pDLFVBQTZCLEVBQzdCLEtBQVksRUFDWixVQUFzQjtJQUV0QixNQUFNLElBQUksR0FBRyxNQUFNLGNBQWMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMxRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlELE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFFckMsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzNCLE1BQU0sT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNoQyxNQUFNLEVBQUUsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxpQkFBaUI7WUFDaEUsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ2QsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRTtTQUM3QixDQUFDLENBQUM7UUFFSCxLQUFLLE1BQU0sUUFBUSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBQSw2QkFBWSxFQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJO1NBQ3pCLE1BQU0sQ0FDTCxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FDeEIsT0FBTyxLQUFLLFdBQVcsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUNwRDtTQUNBLEdBQUcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRW5DLElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzdCLE1BQU0sT0FBTyxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM5RCxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sT0FBTyxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsT0FBTztRQUNMLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtRQUN2QixVQUFVO0tBQ1gsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FDckIsT0FBaUMsRUFDakMsVUFBNkIsRUFDN0IsVUFBc0IsRUFDdEIsS0FBK0I7SUFFL0IsT0FBTyxVQUFVLEtBQUssU0FBUztRQUM3QixDQUFDLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDcEUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDekUsQ0FBQztBQUVELFNBQVMsTUFBTSxDQUFDLEtBQWM7SUFDNUIsSUFDRSxPQUFPLEtBQUssS0FBSyxRQUFRO1FBQ3pCLEtBQUssS0FBSyxJQUFJO1FBQ2QsQ0FBQyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUM7UUFDaEIsT0FBTyxLQUFLLENBQUMsRUFBRSxLQUFLLFFBQVE7UUFDNUIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUNyQixDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYiw0REFBNEQsQ0FDN0QsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUM7QUFDbEIsQ0FBQyJ9
|