@infuro/cms-core 1.0.56 → 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/index.d.cts CHANGED
@@ -4069,8 +4069,11 @@ declare enum UserDevicePlatform {
4069
4069
  }
4070
4070
  declare class UserDeviceToken {
4071
4071
  id: string;
4072
- vendorId: string;
4073
- userId: string;
4072
+ /** Staff/vendor app store. Null for customer/marketplace tokens (membership is `vendor_customers`). */
4073
+ vendorId: number | null;
4074
+ vendor: unknown | null;
4075
+ userId: number;
4076
+ user: unknown;
4074
4077
  token: string;
4075
4078
  platform: UserDevicePlatform;
4076
4079
  deviceId: string | null;
package/dist/index.d.ts CHANGED
@@ -4069,8 +4069,11 @@ declare enum UserDevicePlatform {
4069
4069
  }
4070
4070
  declare class UserDeviceToken {
4071
4071
  id: string;
4072
- vendorId: string;
4073
- userId: string;
4072
+ /** Staff/vendor app store. Null for customer/marketplace tokens (membership is `vendor_customers`). */
4073
+ vendorId: number | null;
4074
+ vendor: unknown | null;
4075
+ userId: number;
4076
+ user: unknown;
4074
4077
  token: string;
4075
4078
  platform: UserDevicePlatform;
4076
4079
  deviceId: string | null;
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  export { emitOrderNotificationTrigger, fireOrderNotificationTrigger } from './chunk-MXIWUFBP.js';
2
- import { checkMultiVendorEnabled, loadUserVendorContext, getPublicSettingsGroup, BlogGeneratorService } from './chunk-LI3CUI54.js';
3
- export { Address, Attendee, Attribute, BLOG_GENERATOR_AGENT_NAME, BLOG_GENERATOR_DEFAULT_SYSTEM_INSTRUCTION, BLOG_GENERATOR_DEFAULT_VALIDATION_RULES, BLOG_GENERATOR_LLM_AGENT_SLUG, BLOG_GENERATOR_MARKDOWN_ARTICLE_SEPARATOR, BLOG_METADATA_ENRICHER_AGENT_NAME, BLOG_METADATA_ENRICHER_DEFAULT_SYSTEM_INSTRUCTION, BLOG_METADATA_ENRICHER_DEFAULT_VALIDATION_RULES, BLOG_METADATA_ENRICHER_LLM_AGENT_SLUG, Blog, BlogGeneratorService, Brand, CMS_ENTITY_MAP, Cart, CartItem, Category, ChatConversation, ChatMessage, Collection, Combo, ComboItem, Comment, Config, Contact, Currency, CurrencyExchange, Customer, Customer_Contacts, Discount, DiscountRules, Event, EventProduct, Form, FormField, FormSubmission, JobSchedule, JobScheduleRun, KnowledgeBaseChunk, KnowledgeBaseDocument, LlmAgent, LlmAgentKnowledgeDocument, Media, MessageTemplate, Order, OrderAddresses, OrderDiscounts, OrderItem, OrderNotificationBinding, OrderNotificationTrigger, OtpChallenge, Page, PasswordResetToken, Payment, Permission, Product, ProductAttribute, ProductCategory, ProductConfig, ProductVariant, RefundPolicy, RefundRequest, RssArticle, RssFeed, Seo, Tag, Tax, User, UserDeviceToken, UserGroup, Vendor, VendorCustomer, VendorRole, VendorRolePermission, VendorUser, VendorUserProfile, Wishlist, WishlistItem, ZIP_MIME_TYPES, applyApprovalStatusSideEffects, applyEventApprovalStatusSideEffects, applyRotatingVendorInvite, applyVendorCustomersContactFilter, applyVendorEventCreateApproval, applyVendorProductCreateApproval, assertCaptchaOk, assertContactAllowedForVendorOrder, assertEventApprovalUpdate, assertProductApprovalUpdate, buildBlogMetadataUserPrompt, buildCronFromSchedule, buildRssUserPromptFromFeeds, buildUserInviteLink, buildVendorInviteLink, calculateOrderRefundPreview, calculateRefundFromPolicy, checkAndIncrementDiscountUsage, checkEventsEnabled, checkMultiVendorEnabled, completeUserInviteAccept, consumeAppliedDiscountUsages, contactIsVendorCustomer, countDiscountOrdersForContact, countRecentOtpSends, createAnalyticsHandlers, createBlogBySlugHandler, createChangePasswordHandler, createCmsApiHandler, createCmsApp, createCmsAppWithMessaging, createCrudByIdHandler, createCrudHandler, createDashboardStatsHandler, createEcommerceAnalyticsHandler, createEventOrderMessageTemplateHandlers, createForgotPasswordHandler, createFormBySlugHandler, createInviteAcceptHandler, createJobScheduleHandlers, createLlmAgentKnowledgeHandlers, createMediaZipExtractHandler, createMessageTemplateRowLoader, createOtpChallenge, createSetPasswordHandler, createSettingsApiHandlers, createSocialMediaHandlers, createStorefrontApiHandler, createUploadHandler, createUserAuthApiRouter, createUserAvatarHandler, createUserProfileHandler, createUsersApiHandlers, createVendorDashboardHandler, createVendorOnboardHandlers, daysBeforeEventStart, decrementDiscountUsage, describeEventTierPolicy, ensureMessagingPluginsOnCms, ensureScheduleQueueWorker, ensureVendorCustomerForOrderContact, ensureVendorCustomersForOrder, findActiveRefundPolicyForVendor, findUserByInviteToken, findVendorByInviteToken, formatTierRange, generateNumericOtp, getPublicSettingsGroup, getRequireEventApproval, getRequireProductApproval, getRssArticleSummaryFromItem, getVendorCatalogCreateFlags, hashOtpCode, hydrateVendorSessionUser, invalidateEventsCache, invalidateMultiVendorCache, invalidateRequireEventApprovalCache, invalidateRequireProductApprovalCache, invalidateVendorCatalogCreateFlagsCache, isCustomerTypeContact, isMaxPerUserUsageReached, isMaxTotalUsageReached, isZipMedia, llmAgentToChatAgentOptions, loadSettingsGroupFromDb, loadUserVendorContext, mergeGuardrailsIntoSystemPrompt, messagingPlugins, metaFetchUserManagedPages, metaPostPageFeed, metaPostPagePhoto, metaResolvePageAccessToken, newUserInviteToken, normalizePhoneE164, normalizeRefundTiers, overlayCmsPlugins, parseBlogGeneratorAgentContent, parseBlogGeneratorModelOutput, parseBlogMetadataEnrichmentJson, parseLlmAgentValidationRules, pgBossScheduleNameForId, queueErpCreateContactIfEnabled, queueJobScheduleNow, queuePlugin, queueSms, recordDiscountUsage, registerJobRunnerWorker, registerMessagingQueueProcessors, registerSmsQueueProcessor, relativePathFromMediaParentId, resolveBlogCategoryIdByName, resolveSettingsEncryptionKey, resolveVendorIdForContactCheck, sanitizeMediaFolderPath, sanitizeStorageSegment, sendVendorOnboardEmails, simpleDecrypt, simpleEncrypt, syncJobScheduleToPgBoss, validateRefundTiers, validateScheduleInput, validateUserMessageAgainstAgentRules, validateUserMessageAgainstStructuredRules, verifyAndConsumeOtpChallenge, verifyOtpCodeHash, whatsappPlugin, wrapGetCmsWithMessaging } from './chunk-LI3CUI54.js';
2
+ import { checkMultiVendorEnabled, loadUserVendorContext, getPublicSettingsGroup, BlogGeneratorService } from './chunk-AGU3B5JW.js';
3
+ export { Address, Attendee, Attribute, BLOG_GENERATOR_AGENT_NAME, BLOG_GENERATOR_DEFAULT_SYSTEM_INSTRUCTION, BLOG_GENERATOR_DEFAULT_VALIDATION_RULES, BLOG_GENERATOR_LLM_AGENT_SLUG, BLOG_GENERATOR_MARKDOWN_ARTICLE_SEPARATOR, BLOG_METADATA_ENRICHER_AGENT_NAME, BLOG_METADATA_ENRICHER_DEFAULT_SYSTEM_INSTRUCTION, BLOG_METADATA_ENRICHER_DEFAULT_VALIDATION_RULES, BLOG_METADATA_ENRICHER_LLM_AGENT_SLUG, Blog, BlogGeneratorService, Brand, CMS_ENTITY_MAP, Cart, CartItem, Category, ChatConversation, ChatMessage, Collection, Combo, ComboItem, Comment, Config, Contact, Currency, CurrencyExchange, Customer, Customer_Contacts, Discount, DiscountRules, Event, EventProduct, Form, FormField, FormSubmission, JobSchedule, JobScheduleRun, KnowledgeBaseChunk, KnowledgeBaseDocument, LlmAgent, LlmAgentKnowledgeDocument, Media, MessageTemplate, Order, OrderAddresses, OrderDiscounts, OrderItem, OrderNotificationBinding, OrderNotificationTrigger, OtpChallenge, Page, PasswordResetToken, Payment, Permission, Product, ProductAttribute, ProductCategory, ProductConfig, ProductVariant, RefundPolicy, RefundRequest, RssArticle, RssFeed, Seo, Tag, Tax, User, UserDeviceToken, UserGroup, Vendor, VendorCustomer, VendorRole, VendorRolePermission, VendorUser, VendorUserProfile, Wishlist, WishlistItem, ZIP_MIME_TYPES, applyApprovalStatusSideEffects, applyEventApprovalStatusSideEffects, applyRotatingVendorInvite, applyVendorCustomersContactFilter, applyVendorEventCreateApproval, applyVendorProductCreateApproval, assertCaptchaOk, assertContactAllowedForVendorOrder, assertEventApprovalUpdate, assertProductApprovalUpdate, buildBlogMetadataUserPrompt, buildCronFromSchedule, buildRssUserPromptFromFeeds, buildUserInviteLink, buildVendorInviteLink, calculateOrderRefundPreview, calculateRefundFromPolicy, checkAndIncrementDiscountUsage, checkEventsEnabled, checkMultiVendorEnabled, completeUserInviteAccept, consumeAppliedDiscountUsages, contactIsVendorCustomer, countDiscountOrdersForContact, countRecentOtpSends, createAnalyticsHandlers, createBlogBySlugHandler, createChangePasswordHandler, createCmsApiHandler, createCmsApp, createCmsAppWithMessaging, createCrudByIdHandler, createCrudHandler, createDashboardStatsHandler, createEcommerceAnalyticsHandler, createEventOrderMessageTemplateHandlers, createForgotPasswordHandler, createFormBySlugHandler, createInviteAcceptHandler, createJobScheduleHandlers, createLlmAgentKnowledgeHandlers, createMediaZipExtractHandler, createMessageTemplateRowLoader, createOtpChallenge, createSetPasswordHandler, createSettingsApiHandlers, createSocialMediaHandlers, createStorefrontApiHandler, createUploadHandler, createUserAuthApiRouter, createUserAvatarHandler, createUserProfileHandler, createUsersApiHandlers, createVendorDashboardHandler, createVendorOnboardHandlers, daysBeforeEventStart, decrementDiscountUsage, describeEventTierPolicy, ensureMessagingPluginsOnCms, ensureScheduleQueueWorker, ensureVendorCustomerForOrderContact, ensureVendorCustomersForOrder, findActiveRefundPolicyForVendor, findUserByInviteToken, findVendorByInviteToken, formatTierRange, generateNumericOtp, getPublicSettingsGroup, getRequireEventApproval, getRequireProductApproval, getRssArticleSummaryFromItem, getVendorCatalogCreateFlags, hashOtpCode, hydrateVendorSessionUser, invalidateEventsCache, invalidateMultiVendorCache, invalidateRequireEventApprovalCache, invalidateRequireProductApprovalCache, invalidateVendorCatalogCreateFlagsCache, isCustomerTypeContact, isMaxPerUserUsageReached, isMaxTotalUsageReached, isZipMedia, llmAgentToChatAgentOptions, loadSettingsGroupFromDb, loadUserVendorContext, mergeGuardrailsIntoSystemPrompt, messagingPlugins, metaFetchUserManagedPages, metaPostPageFeed, metaPostPagePhoto, metaResolvePageAccessToken, newUserInviteToken, normalizePhoneE164, normalizeRefundTiers, overlayCmsPlugins, parseBlogGeneratorAgentContent, parseBlogGeneratorModelOutput, parseBlogMetadataEnrichmentJson, parseLlmAgentValidationRules, pgBossScheduleNameForId, queueErpCreateContactIfEnabled, queueJobScheduleNow, queuePlugin, queueSms, recordDiscountUsage, registerJobRunnerWorker, registerMessagingQueueProcessors, registerSmsQueueProcessor, relativePathFromMediaParentId, resolveBlogCategoryIdByName, resolveSettingsEncryptionKey, resolveVendorIdForContactCheck, sanitizeMediaFolderPath, sanitizeStorageSegment, sendVendorOnboardEmails, simpleDecrypt, simpleEncrypt, syncJobScheduleToPgBoss, validateRefundTiers, validateScheduleInput, validateUserMessageAgainstAgentRules, validateUserMessageAgainstStructuredRules, verifyAndConsumeOtpChallenge, verifyOtpCodeHash, whatsappPlugin, wrapGetCmsWithMessaging } from './chunk-AGU3B5JW.js';
4
4
  import { PgBossService } from './chunk-GO7PPYNU.js';
5
5
  export { JOB_RUNNER_QUEUE, PgBossService } from './chunk-GO7PPYNU.js';
6
6
  export { deductInventoryForConfirmedOrder, mergeInventoryLines, orderInventorySnapshotFromRow, orderStatusHoldsStock, reconcileOrderInventoryBetweenSnapshots, restoreInventoryForCancelledOrder, validateInventoryForConfirmedOrderLines, validateInventoryForOrderBecomingConfirmed } from './chunk-3K5AIEIZ.js';
7
- import { parseEmailRecipientsFromConfig } from './chunk-CTXBYO2J.js';
8
- export { EmailService, buildEventOrderTemplateVariables, emailPlugin, emailTemplates, initWhatsappTriggerDispatcher, joinRecipientsForSend, parseEmailRecipientsFromConfig, queueWhatsApp, registerWhatsAppQueueProcessor, renderEmail, renderLayout, resendOrderNotification, serializeEmailRecipients } from './chunk-CTXBYO2J.js';
7
+ import { parseEmailRecipientsFromConfig } from './chunk-HYW3MUXT.js';
8
+ export { EmailService, buildEventOrderTemplateVariables, emailPlugin, emailTemplates, initWhatsappTriggerDispatcher, joinRecipientsForSend, parseEmailRecipientsFromConfig, queueWhatsApp, registerWhatsAppQueueProcessor, renderEmail, renderLayout, resendOrderNotification, serializeEmailRecipients } from './chunk-HYW3MUXT.js';
9
9
  export { KNOWN_NOTIFICATION_TRIGGERS, notificationTriggerEmitter } from './chunk-HCIRL37O.js';
10
10
  import './chunk-JXF23MPG.js';
11
11
  import { queueOrderPlacedEmails } from './chunk-L3525VXI.js';
@@ -0,0 +1,118 @@
1
+ import type { MigrationInterface, QueryRunner } from 'typeorm';
2
+
3
+ export class ChangeUserDeviceTokenUserVendorIds1782600000000
4
+ implements MigrationInterface
5
+ {
6
+ name = 'ChangeUserDeviceTokenUserVendorIds1782600000000';
7
+
8
+ public async up(queryRunner: QueryRunner): Promise<void> {
9
+ // Remove existing constraints.
10
+ await queryRunner.query(`
11
+ ALTER TABLE "user_device_tokens"
12
+ DROP CONSTRAINT IF EXISTS "FK_user_device_tokens_vendor_id"
13
+ `);
14
+
15
+ await queryRunner.query(`
16
+ ALTER TABLE "user_device_tokens"
17
+ DROP CONSTRAINT IF EXISTS "FK_user_device_tokens_user_id"
18
+ `);
19
+
20
+ await queryRunner.query(`
21
+ ALTER TABLE "user_device_tokens"
22
+ DROP CONSTRAINT IF EXISTS "uq_user_device_token"
23
+ `);
24
+
25
+ // Since these columns currently contain UUIDs,
26
+ // remove them instead of attempting UUID -> integer casting.
27
+ await queryRunner.query(`
28
+ ALTER TABLE "user_device_tokens"
29
+ DROP COLUMN "vendor_id"
30
+ `);
31
+
32
+ await queryRunner.query(`
33
+ ALTER TABLE "user_device_tokens"
34
+ DROP COLUMN "user_id"
35
+ `);
36
+
37
+ // Recreate them using the same type as users.id/vendors.id.
38
+ await queryRunner.query(`
39
+ ALTER TABLE "user_device_tokens"
40
+ ADD COLUMN "vendor_id" integer NOT NULL
41
+ `);
42
+
43
+ await queryRunner.query(`
44
+ ALTER TABLE "user_device_tokens"
45
+ ADD COLUMN "user_id" integer NOT NULL
46
+ `);
47
+
48
+ // Restore unique constraint.
49
+ await queryRunner.query(`
50
+ ALTER TABLE "user_device_tokens"
51
+ ADD CONSTRAINT "uq_user_device_token"
52
+ UNIQUE ("user_id", "token")
53
+ `);
54
+
55
+ // Link vendor_id -> vendors.id.
56
+ await queryRunner.query(`
57
+ ALTER TABLE "user_device_tokens"
58
+ ADD CONSTRAINT "FK_user_device_tokens_vendor_id"
59
+ FOREIGN KEY ("vendor_id")
60
+ REFERENCES "vendors"("id")
61
+ ON DELETE CASCADE
62
+ ON UPDATE NO ACTION
63
+ `);
64
+
65
+ // Link user_id -> users.id.
66
+ await queryRunner.query(`
67
+ ALTER TABLE "user_device_tokens"
68
+ ADD CONSTRAINT "FK_user_device_tokens_user_id"
69
+ FOREIGN KEY ("user_id")
70
+ REFERENCES "users"("id")
71
+ ON DELETE CASCADE
72
+ ON UPDATE NO ACTION
73
+ `);
74
+ }
75
+
76
+ public async down(queryRunner: QueryRunner): Promise<void> {
77
+ await queryRunner.query(`
78
+ ALTER TABLE "user_device_tokens"
79
+ DROP CONSTRAINT IF EXISTS "FK_user_device_tokens_vendor_id"
80
+ `);
81
+
82
+ await queryRunner.query(`
83
+ ALTER TABLE "user_device_tokens"
84
+ DROP CONSTRAINT IF EXISTS "FK_user_device_tokens_user_id"
85
+ `);
86
+
87
+ await queryRunner.query(`
88
+ ALTER TABLE "user_device_tokens"
89
+ DROP CONSTRAINT IF EXISTS "uq_user_device_token"
90
+ `);
91
+
92
+ await queryRunner.query(`
93
+ ALTER TABLE "user_device_tokens"
94
+ DROP COLUMN "vendor_id"
95
+ `);
96
+
97
+ await queryRunner.query(`
98
+ ALTER TABLE "user_device_tokens"
99
+ DROP COLUMN "user_id"
100
+ `);
101
+
102
+ await queryRunner.query(`
103
+ ALTER TABLE "user_device_tokens"
104
+ ADD COLUMN "vendor_id" uuid NOT NULL
105
+ `);
106
+
107
+ await queryRunner.query(`
108
+ ALTER TABLE "user_device_tokens"
109
+ ADD COLUMN "user_id" uuid NOT NULL
110
+ `);
111
+
112
+ await queryRunner.query(`
113
+ ALTER TABLE "user_device_tokens"
114
+ ADD CONSTRAINT "uq_user_device_token"
115
+ UNIQUE ("user_id", "token")
116
+ `);
117
+ }
118
+ }
@@ -0,0 +1,28 @@
1
+ import type { MigrationInterface, QueryRunner } from 'typeorm';
2
+
3
+ /**
4
+ * Customer/marketplace apps register FCM tokens without a store.
5
+ * Multi-vendor membership stays on `vendor_customers`; staff apps still send vendor_id.
6
+ */
7
+ export class NullableUserDeviceTokenVendorId1782700000000 implements MigrationInterface {
8
+ name = 'NullableUserDeviceTokenVendorId1782700000000';
9
+
10
+ public async up(queryRunner: QueryRunner): Promise<void> {
11
+ await queryRunner.query(`
12
+ ALTER TABLE "user_device_tokens"
13
+ ALTER COLUMN "vendor_id" DROP NOT NULL
14
+ `);
15
+ }
16
+
17
+ public async down(queryRunner: QueryRunner): Promise<void> {
18
+ await queryRunner.query(`
19
+ UPDATE "user_device_tokens"
20
+ SET "vendor_id" = (SELECT v.id FROM "vendors" v WHERE v.deleted = false ORDER BY v.id LIMIT 1)
21
+ WHERE "vendor_id" IS NULL
22
+ `);
23
+ await queryRunner.query(`
24
+ ALTER TABLE "user_device_tokens"
25
+ ALTER COLUMN "vendor_id" SET NOT NULL
26
+ `);
27
+ }
28
+ }
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkJN4AFHZ4_cjs = require('./chunk-JN4AFHZ4.cjs');
3
+ var chunkHXLC56ZK_cjs = require('./chunk-HXLC56ZK.cjs');
4
4
  require('./chunk-UCKN4BBY.cjs');
5
5
  require('./chunk-V25RDUOU.cjs');
6
6
  require('./chunk-BXYZDMTZ.cjs');
@@ -12,13 +12,13 @@ require('./chunk-USNT2KNT.cjs');
12
12
 
13
13
  Object.defineProperty(exports, "getSettingsGroup", {
14
14
  enumerable: true,
15
- get: function () { return chunkJN4AFHZ4_cjs.getSettingsGroup; }
15
+ get: function () { return chunkHXLC56ZK_cjs.getSettingsGroup; }
16
16
  });
17
17
  Object.defineProperty(exports, "initWhatsappTriggerDispatcher", {
18
18
  enumerable: true,
19
- get: function () { return chunkJN4AFHZ4_cjs.initWhatsappTriggerDispatcher; }
19
+ get: function () { return chunkHXLC56ZK_cjs.initWhatsappTriggerDispatcher; }
20
20
  });
21
21
  Object.defineProperty(exports, "resendOrderNotification", {
22
22
  enumerable: true,
23
- get: function () { return chunkJN4AFHZ4_cjs.resendOrderNotification; }
23
+ get: function () { return chunkHXLC56ZK_cjs.resendOrderNotification; }
24
24
  });
@@ -1,4 +1,4 @@
1
- export { getSettingsGroup, initWhatsappTriggerDispatcher, resendOrderNotification } from './chunk-CTXBYO2J.js';
1
+ export { getSettingsGroup, initWhatsappTriggerDispatcher, resendOrderNotification } from './chunk-HYW3MUXT.js';
2
2
  import './chunk-HCIRL37O.js';
3
3
  import './chunk-L3525VXI.js';
4
4
  import './chunk-2KUCQVAQ.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infuro/cms-core",
3
- "version": "1.0.56",
3
+ "version": "1.0.58",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",