@infuro/cms-core 1.0.57 → 1.0.58
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/dist/admin.cjs +1 -1
- package/dist/admin.js +1 -1
- package/dist/api.cjs +33 -33
- package/dist/api.js +2 -2
- package/dist/{chunk-BAUV5FZQ.js → chunk-AGU3B5JW.js} +68 -16
- package/dist/{chunk-CMXNHMHP.cjs → chunk-BHUEXLD2.cjs} +98 -46
- package/dist/{chunk-JN4AFHZ4.cjs → chunk-HXLC56ZK.cjs} +44 -1
- package/dist/{chunk-CTXBYO2J.js → chunk-HYW3MUXT.js} +43 -1
- package/dist/index.cjs +228 -228
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +4 -4
- package/dist/migrations/1782700000000-NullableUserDeviceTokenVendorId.ts +28 -0
- package/dist/{order-notification-dispatcher-YBAWDOIO.cjs → order-notification-dispatcher-2FCZFZUD.cjs} +4 -4
- package/dist/{order-notification-dispatcher-AT4IFAGL.js → order-notification-dispatcher-64WDCHHG.js} +1 -1
- package/package.json +1 -1
package/dist/admin.cjs
CHANGED
|
@@ -887,7 +887,7 @@ var init_admin_config_context = __esm({
|
|
|
887
887
|
var CMS_VERSION;
|
|
888
888
|
var init_cms_version = __esm({
|
|
889
889
|
"src/lib/cms-version.ts"() {
|
|
890
|
-
CMS_VERSION = "1.0.
|
|
890
|
+
CMS_VERSION = "1.0.58" ;
|
|
891
891
|
}
|
|
892
892
|
});
|
|
893
893
|
function useCatalogCategories(enabled = true) {
|
package/dist/admin.js
CHANGED
|
@@ -853,7 +853,7 @@ var init_admin_config_context = __esm({
|
|
|
853
853
|
var CMS_VERSION;
|
|
854
854
|
var init_cms_version = __esm({
|
|
855
855
|
"src/lib/cms-version.ts"() {
|
|
856
|
-
CMS_VERSION = "1.0.
|
|
856
|
+
CMS_VERSION = "1.0.58" ;
|
|
857
857
|
}
|
|
858
858
|
});
|
|
859
859
|
function useCatalogCategories(enabled = true) {
|
package/dist/api.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkBHUEXLD2_cjs = require('./chunk-BHUEXLD2.cjs');
|
|
4
4
|
require('./chunk-XQ3QUHWR.cjs');
|
|
5
5
|
require('./chunk-HY3AXLOI.cjs');
|
|
6
|
-
require('./chunk-
|
|
6
|
+
require('./chunk-HXLC56ZK.cjs');
|
|
7
7
|
require('./chunk-UCKN4BBY.cjs');
|
|
8
8
|
require('./chunk-7NMT3GBR.cjs');
|
|
9
9
|
require('./chunk-V25RDUOU.cjs');
|
|
@@ -22,127 +22,127 @@ require('./chunk-USNT2KNT.cjs');
|
|
|
22
22
|
|
|
23
23
|
Object.defineProperty(exports, "createAnalyticsHandlers", {
|
|
24
24
|
enumerable: true,
|
|
25
|
-
get: function () { return
|
|
25
|
+
get: function () { return chunkBHUEXLD2_cjs.createAnalyticsHandlers; }
|
|
26
26
|
});
|
|
27
27
|
Object.defineProperty(exports, "createBlogBySlugHandler", {
|
|
28
28
|
enumerable: true,
|
|
29
|
-
get: function () { return
|
|
29
|
+
get: function () { return chunkBHUEXLD2_cjs.createBlogBySlugHandler; }
|
|
30
30
|
});
|
|
31
31
|
Object.defineProperty(exports, "createChangePasswordHandler", {
|
|
32
32
|
enumerable: true,
|
|
33
|
-
get: function () { return
|
|
33
|
+
get: function () { return chunkBHUEXLD2_cjs.createChangePasswordHandler; }
|
|
34
34
|
});
|
|
35
35
|
Object.defineProperty(exports, "createCmsApiHandler", {
|
|
36
36
|
enumerable: true,
|
|
37
|
-
get: function () { return
|
|
37
|
+
get: function () { return chunkBHUEXLD2_cjs.createCmsApiHandler; }
|
|
38
38
|
});
|
|
39
39
|
Object.defineProperty(exports, "createCrudByIdHandler", {
|
|
40
40
|
enumerable: true,
|
|
41
|
-
get: function () { return
|
|
41
|
+
get: function () { return chunkBHUEXLD2_cjs.createCrudByIdHandler; }
|
|
42
42
|
});
|
|
43
43
|
Object.defineProperty(exports, "createCrudHandler", {
|
|
44
44
|
enumerable: true,
|
|
45
|
-
get: function () { return
|
|
45
|
+
get: function () { return chunkBHUEXLD2_cjs.createCrudHandler; }
|
|
46
46
|
});
|
|
47
47
|
Object.defineProperty(exports, "createDashboardStatsHandler", {
|
|
48
48
|
enumerable: true,
|
|
49
|
-
get: function () { return
|
|
49
|
+
get: function () { return chunkBHUEXLD2_cjs.createDashboardStatsHandler; }
|
|
50
50
|
});
|
|
51
51
|
Object.defineProperty(exports, "createEcommerceAnalyticsHandler", {
|
|
52
52
|
enumerable: true,
|
|
53
|
-
get: function () { return
|
|
53
|
+
get: function () { return chunkBHUEXLD2_cjs.createEcommerceAnalyticsHandler; }
|
|
54
54
|
});
|
|
55
55
|
Object.defineProperty(exports, "createForgotPasswordHandler", {
|
|
56
56
|
enumerable: true,
|
|
57
|
-
get: function () { return
|
|
57
|
+
get: function () { return chunkBHUEXLD2_cjs.createForgotPasswordHandler; }
|
|
58
58
|
});
|
|
59
59
|
Object.defineProperty(exports, "createFormBySlugHandler", {
|
|
60
60
|
enumerable: true,
|
|
61
|
-
get: function () { return
|
|
61
|
+
get: function () { return chunkBHUEXLD2_cjs.createFormBySlugHandler; }
|
|
62
62
|
});
|
|
63
63
|
Object.defineProperty(exports, "createInviteAcceptHandler", {
|
|
64
64
|
enumerable: true,
|
|
65
|
-
get: function () { return
|
|
65
|
+
get: function () { return chunkBHUEXLD2_cjs.createInviteAcceptHandler; }
|
|
66
66
|
});
|
|
67
67
|
Object.defineProperty(exports, "createJobScheduleHandlers", {
|
|
68
68
|
enumerable: true,
|
|
69
|
-
get: function () { return
|
|
69
|
+
get: function () { return chunkBHUEXLD2_cjs.createJobScheduleHandlers; }
|
|
70
70
|
});
|
|
71
71
|
Object.defineProperty(exports, "createLlmAgentKnowledgeHandlers", {
|
|
72
72
|
enumerable: true,
|
|
73
|
-
get: function () { return
|
|
73
|
+
get: function () { return chunkBHUEXLD2_cjs.createLlmAgentKnowledgeHandlers; }
|
|
74
74
|
});
|
|
75
75
|
Object.defineProperty(exports, "createMediaZipExtractHandler", {
|
|
76
76
|
enumerable: true,
|
|
77
|
-
get: function () { return
|
|
77
|
+
get: function () { return chunkBHUEXLD2_cjs.createMediaZipExtractHandler; }
|
|
78
78
|
});
|
|
79
79
|
Object.defineProperty(exports, "createSetPasswordHandler", {
|
|
80
80
|
enumerable: true,
|
|
81
|
-
get: function () { return
|
|
81
|
+
get: function () { return chunkBHUEXLD2_cjs.createSetPasswordHandler; }
|
|
82
82
|
});
|
|
83
83
|
Object.defineProperty(exports, "createSettingsApiHandlers", {
|
|
84
84
|
enumerable: true,
|
|
85
|
-
get: function () { return
|
|
85
|
+
get: function () { return chunkBHUEXLD2_cjs.createSettingsApiHandlers; }
|
|
86
86
|
});
|
|
87
87
|
Object.defineProperty(exports, "createStorefrontApiHandler", {
|
|
88
88
|
enumerable: true,
|
|
89
|
-
get: function () { return
|
|
89
|
+
get: function () { return chunkBHUEXLD2_cjs.createStorefrontApiHandler; }
|
|
90
90
|
});
|
|
91
91
|
Object.defineProperty(exports, "createUploadHandler", {
|
|
92
92
|
enumerable: true,
|
|
93
|
-
get: function () { return
|
|
93
|
+
get: function () { return chunkBHUEXLD2_cjs.createUploadHandler; }
|
|
94
94
|
});
|
|
95
95
|
Object.defineProperty(exports, "createUserAuthApiRouter", {
|
|
96
96
|
enumerable: true,
|
|
97
|
-
get: function () { return
|
|
97
|
+
get: function () { return chunkBHUEXLD2_cjs.createUserAuthApiRouter; }
|
|
98
98
|
});
|
|
99
99
|
Object.defineProperty(exports, "createUserAvatarHandler", {
|
|
100
100
|
enumerable: true,
|
|
101
|
-
get: function () { return
|
|
101
|
+
get: function () { return chunkBHUEXLD2_cjs.createUserAvatarHandler; }
|
|
102
102
|
});
|
|
103
103
|
Object.defineProperty(exports, "createUserProfileHandler", {
|
|
104
104
|
enumerable: true,
|
|
105
|
-
get: function () { return
|
|
105
|
+
get: function () { return chunkBHUEXLD2_cjs.createUserProfileHandler; }
|
|
106
106
|
});
|
|
107
107
|
Object.defineProperty(exports, "createUsersApiHandlers", {
|
|
108
108
|
enumerable: true,
|
|
109
|
-
get: function () { return
|
|
109
|
+
get: function () { return chunkBHUEXLD2_cjs.createUsersApiHandlers; }
|
|
110
110
|
});
|
|
111
111
|
Object.defineProperty(exports, "createVendorDashboardHandler", {
|
|
112
112
|
enumerable: true,
|
|
113
|
-
get: function () { return
|
|
113
|
+
get: function () { return chunkBHUEXLD2_cjs.createVendorDashboardHandler; }
|
|
114
114
|
});
|
|
115
115
|
Object.defineProperty(exports, "createVendorOnboardHandlers", {
|
|
116
116
|
enumerable: true,
|
|
117
|
-
get: function () { return
|
|
117
|
+
get: function () { return chunkBHUEXLD2_cjs.createVendorOnboardHandlers; }
|
|
118
118
|
});
|
|
119
119
|
Object.defineProperty(exports, "getPublicSettingsGroup", {
|
|
120
120
|
enumerable: true,
|
|
121
|
-
get: function () { return
|
|
121
|
+
get: function () { return chunkBHUEXLD2_cjs.getPublicSettingsGroup; }
|
|
122
122
|
});
|
|
123
123
|
Object.defineProperty(exports, "mergeGuardrailsIntoSystemPrompt", {
|
|
124
124
|
enumerable: true,
|
|
125
|
-
get: function () { return
|
|
125
|
+
get: function () { return chunkBHUEXLD2_cjs.mergeGuardrailsIntoSystemPrompt; }
|
|
126
126
|
});
|
|
127
127
|
Object.defineProperty(exports, "parseLlmAgentValidationRules", {
|
|
128
128
|
enumerable: true,
|
|
129
|
-
get: function () { return
|
|
129
|
+
get: function () { return chunkBHUEXLD2_cjs.parseLlmAgentValidationRules; }
|
|
130
130
|
});
|
|
131
131
|
Object.defineProperty(exports, "simpleDecrypt", {
|
|
132
132
|
enumerable: true,
|
|
133
|
-
get: function () { return
|
|
133
|
+
get: function () { return chunkBHUEXLD2_cjs.simpleDecrypt; }
|
|
134
134
|
});
|
|
135
135
|
Object.defineProperty(exports, "simpleEncrypt", {
|
|
136
136
|
enumerable: true,
|
|
137
|
-
get: function () { return
|
|
137
|
+
get: function () { return chunkBHUEXLD2_cjs.simpleEncrypt; }
|
|
138
138
|
});
|
|
139
139
|
Object.defineProperty(exports, "validateUserMessageAgainstAgentRules", {
|
|
140
140
|
enumerable: true,
|
|
141
|
-
get: function () { return
|
|
141
|
+
get: function () { return chunkBHUEXLD2_cjs.validateUserMessageAgainstAgentRules; }
|
|
142
142
|
});
|
|
143
143
|
Object.defineProperty(exports, "validateUserMessageAgainstStructuredRules", {
|
|
144
144
|
enumerable: true,
|
|
145
|
-
get: function () { return
|
|
145
|
+
get: function () { return chunkBHUEXLD2_cjs.validateUserMessageAgainstStructuredRules; }
|
|
146
146
|
});
|
|
147
147
|
Object.defineProperty(exports, "createCmsAuthBundle", {
|
|
148
148
|
enumerable: true,
|
package/dist/api.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { createAnalyticsHandlers, createBlogBySlugHandler, createChangePasswordHandler, createCmsApiHandler, createCrudByIdHandler, createCrudHandler, createDashboardStatsHandler, createEcommerceAnalyticsHandler, createForgotPasswordHandler, createFormBySlugHandler, createInviteAcceptHandler, createJobScheduleHandlers, createLlmAgentKnowledgeHandlers, createMediaZipExtractHandler, createSetPasswordHandler, createSettingsApiHandlers, createStorefrontApiHandler, createUploadHandler, createUserAuthApiRouter, createUserAvatarHandler, createUserProfileHandler, createUsersApiHandlers, createVendorDashboardHandler, createVendorOnboardHandlers, getPublicSettingsGroup, mergeGuardrailsIntoSystemPrompt, parseLlmAgentValidationRules, simpleDecrypt, simpleEncrypt, validateUserMessageAgainstAgentRules, validateUserMessageAgainstStructuredRules } from './chunk-
|
|
1
|
+
export { createAnalyticsHandlers, createBlogBySlugHandler, createChangePasswordHandler, createCmsApiHandler, createCrudByIdHandler, createCrudHandler, createDashboardStatsHandler, createEcommerceAnalyticsHandler, createForgotPasswordHandler, createFormBySlugHandler, createInviteAcceptHandler, createJobScheduleHandlers, createLlmAgentKnowledgeHandlers, createMediaZipExtractHandler, createSetPasswordHandler, createSettingsApiHandlers, createStorefrontApiHandler, createUploadHandler, createUserAuthApiRouter, createUserAvatarHandler, createUserProfileHandler, createUsersApiHandlers, createVendorDashboardHandler, createVendorOnboardHandlers, getPublicSettingsGroup, mergeGuardrailsIntoSystemPrompt, parseLlmAgentValidationRules, simpleDecrypt, simpleEncrypt, validateUserMessageAgainstAgentRules, validateUserMessageAgainstStructuredRules } from './chunk-AGU3B5JW.js';
|
|
2
2
|
import './chunk-GO7PPYNU.js';
|
|
3
3
|
import './chunk-3K5AIEIZ.js';
|
|
4
|
-
import './chunk-
|
|
4
|
+
import './chunk-HYW3MUXT.js';
|
|
5
5
|
import './chunk-HCIRL37O.js';
|
|
6
6
|
import './chunk-JXF23MPG.js';
|
|
7
7
|
import './chunk-L3525VXI.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { JOB_RUNNER_QUEUE } from './chunk-GO7PPYNU.js';
|
|
2
2
|
import { validateInventoryForConfirmedOrderLines, orderStatusHoldsStock, reconcileOrderInventoryBetweenSnapshots, orderInventorySnapshotFromRow, validateInventoryForOrderBecomingConfirmed } from './chunk-3K5AIEIZ.js';
|
|
3
|
-
import { resolveChatEmailToolSettings, CHAT_EMAIL_LOG, detectChatLeadIntent, parseIntentRecipientEmails, sendChatLeadEmail, buildTranscriptForLeadEmail, buildChatbotSystemPromptWithEmailTool, sendFcmPushNotification, parseEmailRecipientsFromConfig, isWhatsAppPluginEnabled, mergeWhatsAppConfigLayers, whatsAppConfigured, WhatsAppService, registerWhatsAppQueueProcessor, emailPlugin, initWhatsappTriggerDispatcher } from './chunk-
|
|
3
|
+
import { resolveChatEmailToolSettings, CHAT_EMAIL_LOG, detectChatLeadIntent, parseIntentRecipientEmails, sendChatLeadEmail, buildTranscriptForLeadEmail, buildChatbotSystemPromptWithEmailTool, validateFcmCredentials, sendFcmPushNotification, parseEmailRecipientsFromConfig, isWhatsAppPluginEnabled, mergeWhatsAppConfigLayers, whatsAppConfigured, WhatsAppService, registerWhatsAppQueueProcessor, emailPlugin, initWhatsappTriggerDispatcher } from './chunk-HYW3MUXT.js';
|
|
4
4
|
import { inviteStatusForActivation } from './chunk-JXF23MPG.js';
|
|
5
5
|
import { queueEmail, queueVendorOnboardEmails, registerEmailQueueProcessor } from './chunk-L3525VXI.js';
|
|
6
6
|
import { mergeEmailLayoutCompanyDetails, unwrapErpReadData, mapErpPayloadToFulfillment, extractChildOrderRefsFromSalePayload, mapErpPayloadToInvoiceNumber, streamOrderInvoicePdf } from './chunk-2KUCQVAQ.js';
|
|
@@ -12056,6 +12056,7 @@ var UserDeviceToken = class {
|
|
|
12056
12056
|
__name(this, "UserDeviceToken");
|
|
12057
12057
|
}
|
|
12058
12058
|
id;
|
|
12059
|
+
/** Staff/vendor app store. Null for customer/marketplace tokens (membership is `vendor_customers`). */
|
|
12059
12060
|
vendorId;
|
|
12060
12061
|
vendor;
|
|
12061
12062
|
userId;
|
|
@@ -12076,13 +12077,15 @@ _ts_decorate2([
|
|
|
12076
12077
|
_ts_decorate2([
|
|
12077
12078
|
Column({
|
|
12078
12079
|
type: "integer",
|
|
12079
|
-
name: "vendor_id"
|
|
12080
|
+
name: "vendor_id",
|
|
12081
|
+
nullable: true
|
|
12080
12082
|
}),
|
|
12081
|
-
_ts_metadata2("design:type",
|
|
12083
|
+
_ts_metadata2("design:type", Object)
|
|
12082
12084
|
], UserDeviceToken.prototype, "vendorId", void 0);
|
|
12083
12085
|
_ts_decorate2([
|
|
12084
12086
|
ManyToOne("Vendor", {
|
|
12085
|
-
onDelete: "CASCADE"
|
|
12087
|
+
onDelete: "CASCADE",
|
|
12088
|
+
nullable: true
|
|
12086
12089
|
}),
|
|
12087
12090
|
JoinColumn({
|
|
12088
12091
|
name: "vendor_id"
|
|
@@ -12179,6 +12182,22 @@ UserDeviceToken = _ts_decorate2([
|
|
|
12179
12182
|
], UserDeviceToken);
|
|
12180
12183
|
|
|
12181
12184
|
// src/api/device-tokens-handlers.ts
|
|
12185
|
+
function parseRequiredPositiveInt(value, field) {
|
|
12186
|
+
const n = parseInt(String(value ?? "").trim(), 10);
|
|
12187
|
+
if (!Number.isFinite(n) || n <= 0) {
|
|
12188
|
+
return {
|
|
12189
|
+
error: `${field} must be a positive integer`
|
|
12190
|
+
};
|
|
12191
|
+
}
|
|
12192
|
+
return n;
|
|
12193
|
+
}
|
|
12194
|
+
__name(parseRequiredPositiveInt, "parseRequiredPositiveInt");
|
|
12195
|
+
function parseOptionalVendorId(value) {
|
|
12196
|
+
if (value == null) return null;
|
|
12197
|
+
if (typeof value === "string" && value.trim() === "") return null;
|
|
12198
|
+
return parseRequiredPositiveInt(value, "vendor_id");
|
|
12199
|
+
}
|
|
12200
|
+
__name(parseOptionalVendorId, "parseOptionalVendorId");
|
|
12182
12201
|
function createDeviceTokensHandlers(config) {
|
|
12183
12202
|
const { dataSource, entityMap, json } = config;
|
|
12184
12203
|
return /* @__PURE__ */ __name(async function handleDeviceTokensApi(req, pathSegments) {
|
|
@@ -12250,18 +12269,28 @@ function createDeviceTokensHandlers(config) {
|
|
|
12250
12269
|
if (method === "POST") {
|
|
12251
12270
|
try {
|
|
12252
12271
|
const body = await req.json().catch(() => ({}));
|
|
12253
|
-
const
|
|
12254
|
-
const
|
|
12272
|
+
const vendorParsed = parseOptionalVendorId(body.vendor_id);
|
|
12273
|
+
const userParsed = parseRequiredPositiveInt(body.user_id, "user_id");
|
|
12255
12274
|
const token = body.token?.trim();
|
|
12256
12275
|
const platformRaw = body.platform?.trim().toLowerCase();
|
|
12257
|
-
if (
|
|
12276
|
+
if (vendorParsed !== null && typeof vendorParsed === "object") {
|
|
12258
12277
|
return json({
|
|
12259
12278
|
success: false,
|
|
12260
|
-
error:
|
|
12279
|
+
error: vendorParsed.error
|
|
12261
12280
|
}, {
|
|
12262
12281
|
status: 400
|
|
12263
12282
|
});
|
|
12264
12283
|
}
|
|
12284
|
+
if (typeof userParsed === "object" || !token || !platformRaw) {
|
|
12285
|
+
return json({
|
|
12286
|
+
success: false,
|
|
12287
|
+
error: (typeof userParsed === "object" ? userParsed.error : null) || "user_id, token, and platform (android|ios) are required"
|
|
12288
|
+
}, {
|
|
12289
|
+
status: 400
|
|
12290
|
+
});
|
|
12291
|
+
}
|
|
12292
|
+
const vendorId = vendorParsed;
|
|
12293
|
+
const userId = userParsed;
|
|
12265
12294
|
if (platformRaw !== "android" && platformRaw !== "ios") {
|
|
12266
12295
|
return json({
|
|
12267
12296
|
success: false,
|
|
@@ -12327,13 +12356,35 @@ function createDeviceTokensHandlers(config) {
|
|
|
12327
12356
|
if (method === "GET") {
|
|
12328
12357
|
try {
|
|
12329
12358
|
const url = new URL(req.url);
|
|
12330
|
-
const
|
|
12331
|
-
const
|
|
12359
|
+
const userIdRaw = url.searchParams.get("userId")?.trim();
|
|
12360
|
+
const vendorIdRaw = url.searchParams.get("vendorId")?.trim();
|
|
12332
12361
|
const whereCondition = {
|
|
12333
12362
|
isActive: true
|
|
12334
12363
|
};
|
|
12335
|
-
if (
|
|
12336
|
-
|
|
12364
|
+
if (userIdRaw) {
|
|
12365
|
+
const userId = parseRequiredPositiveInt(userIdRaw, "userId");
|
|
12366
|
+
if (typeof userId === "object") {
|
|
12367
|
+
return json({
|
|
12368
|
+
success: false,
|
|
12369
|
+
error: userId.error
|
|
12370
|
+
}, {
|
|
12371
|
+
status: 400
|
|
12372
|
+
});
|
|
12373
|
+
}
|
|
12374
|
+
whereCondition.userId = userId;
|
|
12375
|
+
}
|
|
12376
|
+
if (vendorIdRaw) {
|
|
12377
|
+
const vendorId = parseRequiredPositiveInt(vendorIdRaw, "vendorId");
|
|
12378
|
+
if (typeof vendorId === "object") {
|
|
12379
|
+
return json({
|
|
12380
|
+
success: false,
|
|
12381
|
+
error: vendorId.error
|
|
12382
|
+
}, {
|
|
12383
|
+
status: 400
|
|
12384
|
+
});
|
|
12385
|
+
}
|
|
12386
|
+
whereCondition.vendorId = vendorId;
|
|
12387
|
+
}
|
|
12337
12388
|
const tokens = await tokenRepo.find({
|
|
12338
12389
|
where: whereCondition,
|
|
12339
12390
|
order: {
|
|
@@ -12360,16 +12411,17 @@ function createDeviceTokensHandlers(config) {
|
|
|
12360
12411
|
if (method === "DELETE") {
|
|
12361
12412
|
try {
|
|
12362
12413
|
const body = await req.json().catch(() => ({}));
|
|
12363
|
-
const
|
|
12414
|
+
const userParsed = parseRequiredPositiveInt(body.user_id, "user_id");
|
|
12364
12415
|
const token = body.token?.trim();
|
|
12365
|
-
if (
|
|
12416
|
+
if (typeof userParsed === "object" || !token) {
|
|
12366
12417
|
return json({
|
|
12367
12418
|
success: false,
|
|
12368
|
-
error: "user_id and token are required to deactivate"
|
|
12419
|
+
error: (typeof userParsed === "object" ? userParsed.error : null) || "user_id and token are required to deactivate"
|
|
12369
12420
|
}, {
|
|
12370
12421
|
status: 400
|
|
12371
12422
|
});
|
|
12372
12423
|
}
|
|
12424
|
+
const userId = userParsed;
|
|
12373
12425
|
await tokenRepo.update({
|
|
12374
12426
|
userId,
|
|
12375
12427
|
token
|
|
@@ -29791,7 +29843,7 @@ function createCmsApiHandler(config) {
|
|
|
29791
29843
|
status: 400
|
|
29792
29844
|
});
|
|
29793
29845
|
}
|
|
29794
|
-
const { resendOrderNotification } = await import('./order-notification-dispatcher-
|
|
29846
|
+
const { resendOrderNotification } = await import('./order-notification-dispatcher-64WDCHHG.js');
|
|
29795
29847
|
const result = await resendOrderNotification(triggerKey, orderId, {
|
|
29796
29848
|
dataSource,
|
|
29797
29849
|
entityMap,
|