Compare commits
13
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
29c89d5634 | ||
|
|
76bec9a3ff | ||
|
|
e3bacd27d8 | ||
|
|
9c711bab74 | ||
|
|
5ccb131a67 | ||
|
|
cce1b874c1 | ||
|
|
0a394e16ca | ||
|
|
1531772365 | ||
|
|
c24a6dc74c | ||
|
|
aeef091084 | ||
|
|
97895db85e | ||
|
|
ce55e80bb4 | ||
|
|
ea14f99ae1 |
@@ -9,7 +9,7 @@ class Campaigns::CampaignConversationBuilder
|
|||||||
@contact_inbox.lock!
|
@contact_inbox.lock!
|
||||||
|
|
||||||
# We won't send campaigns if a conversation is already present
|
# We won't send campaigns if a conversation is already present
|
||||||
raise 'Conversation alread present' if @contact_inbox.reload.conversations.present?
|
raise 'Conversation already present' if @contact_inbox.reload.conversations.present?
|
||||||
|
|
||||||
@conversation = ::Conversation.create!(conversation_params)
|
@conversation = ::Conversation.create!(conversation_params)
|
||||||
Messages::MessageBuilder.new(@campaign.sender, @conversation, message_params).perform
|
Messages::MessageBuilder.new(@campaign.sender, @conversation, message_params).perform
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ const {
|
|||||||
isAWebWidgetInbox,
|
isAWebWidgetInbox,
|
||||||
isAWhatsAppChannel,
|
isAWhatsAppChannel,
|
||||||
isAnEmailChannel,
|
isAnEmailChannel,
|
||||||
isAInstagramChannel,
|
isAnInstagramChannel,
|
||||||
} = useInbox();
|
} = useInbox();
|
||||||
|
|
||||||
const {
|
const {
|
||||||
@@ -60,7 +60,7 @@ const isSent = computed(() => {
|
|||||||
isAFacebookInbox.value ||
|
isAFacebookInbox.value ||
|
||||||
isASmsInbox.value ||
|
isASmsInbox.value ||
|
||||||
isATelegramChannel.value ||
|
isATelegramChannel.value ||
|
||||||
isAInstagramChannel.value
|
isAnInstagramChannel.value
|
||||||
) {
|
) {
|
||||||
return sourceId.value && status.value === MESSAGE_STATUS.SENT;
|
return sourceId.value && status.value === MESSAGE_STATUS.SENT;
|
||||||
}
|
}
|
||||||
@@ -100,7 +100,7 @@ const isRead = computed(() => {
|
|||||||
isAWhatsAppChannel.value ||
|
isAWhatsAppChannel.value ||
|
||||||
isATwilioChannel.value ||
|
isATwilioChannel.value ||
|
||||||
isAFacebookInbox.value ||
|
isAFacebookInbox.value ||
|
||||||
isAInstagramChannel.value
|
isAnInstagramChannel.value
|
||||||
) {
|
) {
|
||||||
return sourceId.value && status.value === MESSAGE_STATUS.READ;
|
return sourceId.value && status.value === MESSAGE_STATUS.READ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -202,7 +202,7 @@ export default {
|
|||||||
if (this.isALineChannel) {
|
if (this.isALineChannel) {
|
||||||
return ALLOWED_FILE_TYPES_FOR_LINE;
|
return ALLOWED_FILE_TYPES_FOR_LINE;
|
||||||
}
|
}
|
||||||
if (this.isAInstagramChannel || this.isInstagramDM) {
|
if (this.isAnInstagramChannel || this.isInstagramDM) {
|
||||||
return ALLOWED_FILE_TYPES_FOR_INSTAGRAM;
|
return ALLOWED_FILE_TYPES_FOR_INSTAGRAM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -213,12 +213,17 @@ export default {
|
|||||||
// Check there is a instagram inbox exists with the same instagram_id
|
// Check there is a instagram inbox exists with the same instagram_id
|
||||||
hasDuplicateInstagramInbox() {
|
hasDuplicateInstagramInbox() {
|
||||||
const instagramId = this.inbox.instagram_id;
|
const instagramId = this.inbox.instagram_id;
|
||||||
|
const { additional_attributes: additionalAttributes = {} } = this.inbox;
|
||||||
const instagramInbox =
|
const instagramInbox =
|
||||||
this.$store.getters['inboxes/getInstagramInboxByInstagramId'](
|
this.$store.getters['inboxes/getInstagramInboxByInstagramId'](
|
||||||
instagramId
|
instagramId
|
||||||
);
|
);
|
||||||
|
|
||||||
return this.inbox.channel_type === INBOX_TYPES.FB && instagramInbox;
|
return (
|
||||||
|
this.inbox.channel_type === INBOX_TYPES.FB &&
|
||||||
|
additionalAttributes.type === 'instagram_direct_message' &&
|
||||||
|
instagramInbox
|
||||||
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
replyWindowBannerMessage() {
|
replyWindowBannerMessage() {
|
||||||
@@ -244,7 +249,7 @@ export default {
|
|||||||
return this.$t('CONVERSATION.CANNOT_REPLY');
|
return this.$t('CONVERSATION.CANNOT_REPLY');
|
||||||
},
|
},
|
||||||
replyWindowLink() {
|
replyWindowLink() {
|
||||||
if (this.isAFacebookInbox || this.isAInstagramChannel) {
|
if (this.isAFacebookInbox || this.isAnInstagramChannel) {
|
||||||
return REPLY_POLICY.FACEBOOK;
|
return REPLY_POLICY.FACEBOOK;
|
||||||
}
|
}
|
||||||
if (this.isAWhatsAppCloudChannel) {
|
if (this.isAWhatsAppCloudChannel) {
|
||||||
@@ -259,7 +264,7 @@ export default {
|
|||||||
if (
|
if (
|
||||||
this.isAWhatsAppChannel ||
|
this.isAWhatsAppChannel ||
|
||||||
this.isAFacebookInbox ||
|
this.isAFacebookInbox ||
|
||||||
this.isAInstagramChannel
|
this.isAnInstagramChannel
|
||||||
) {
|
) {
|
||||||
return this.$t('CONVERSATION.24_HOURS_WINDOW');
|
return this.$t('CONVERSATION.24_HOURS_WINDOW');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -241,15 +241,27 @@ export default {
|
|||||||
if (this.isAFacebookInbox) {
|
if (this.isAFacebookInbox) {
|
||||||
return MESSAGE_MAX_LENGTH.FACEBOOK;
|
return MESSAGE_MAX_LENGTH.FACEBOOK;
|
||||||
}
|
}
|
||||||
if (this.isAWhatsAppChannel) {
|
if (this.isAnInstagramChannel) {
|
||||||
|
return MESSAGE_MAX_LENGTH.INSTAGRAM;
|
||||||
|
}
|
||||||
|
if (this.isATwilioWhatsAppChannel) {
|
||||||
return MESSAGE_MAX_LENGTH.TWILIO_WHATSAPP;
|
return MESSAGE_MAX_LENGTH.TWILIO_WHATSAPP;
|
||||||
}
|
}
|
||||||
|
if (this.isAWhatsAppCloudChannel) {
|
||||||
|
return MESSAGE_MAX_LENGTH.WHATSAPP_CLOUD;
|
||||||
|
}
|
||||||
if (this.isASmsInbox) {
|
if (this.isASmsInbox) {
|
||||||
return MESSAGE_MAX_LENGTH.TWILIO_SMS;
|
return MESSAGE_MAX_LENGTH.TWILIO_SMS;
|
||||||
}
|
}
|
||||||
if (this.isAnEmailChannel) {
|
if (this.isAnEmailChannel) {
|
||||||
return MESSAGE_MAX_LENGTH.EMAIL;
|
return MESSAGE_MAX_LENGTH.EMAIL;
|
||||||
}
|
}
|
||||||
|
if (this.isATwilioSMSChannel) {
|
||||||
|
return MESSAGE_MAX_LENGTH.TWILIO_SMS;
|
||||||
|
}
|
||||||
|
if (this.isAWhatsAppChannel) {
|
||||||
|
return MESSAGE_MAX_LENGTH.WHATSAPP_CLOUD;
|
||||||
|
}
|
||||||
return MESSAGE_MAX_LENGTH.GENERAL;
|
return MESSAGE_MAX_LENGTH.GENERAL;
|
||||||
},
|
},
|
||||||
showFileUpload() {
|
showFileUpload() {
|
||||||
@@ -262,7 +274,7 @@ export default {
|
|||||||
this.isASmsInbox ||
|
this.isASmsInbox ||
|
||||||
this.isATelegramChannel ||
|
this.isATelegramChannel ||
|
||||||
this.isALineChannel ||
|
this.isALineChannel ||
|
||||||
this.isAInstagramChannel
|
this.isAnInstagramChannel
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
replyButtonLabel() {
|
replyButtonLabel() {
|
||||||
@@ -388,9 +400,14 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
currentChat(conversation) {
|
currentChat(conversation, oldConversation) {
|
||||||
const { can_reply: canReply } = conversation;
|
const { can_reply: canReply } = conversation;
|
||||||
this.setCCAndToEmailsFromLastChat();
|
if (oldConversation && oldConversation.id !== conversation.id) {
|
||||||
|
// Only update email fields when switching to a completely different conversation (by ID)
|
||||||
|
// This prevents overwriting user input (e.g., CC/BCC fields) when performing actions
|
||||||
|
// like self-assign or other updates that do not actually change the conversation context
|
||||||
|
this.setCCAndToEmailsFromLastChat();
|
||||||
|
}
|
||||||
|
|
||||||
if (this.isOnPrivateNote) {
|
if (this.isOnPrivateNote) {
|
||||||
return;
|
return;
|
||||||
@@ -406,13 +423,12 @@ export default {
|
|||||||
},
|
},
|
||||||
// When moving from one conversation to another, the store may not have the
|
// When moving from one conversation to another, the store may not have the
|
||||||
// list of all the messages. A fetch is subsequently made to get the messages.
|
// list of all the messages. A fetch is subsequently made to get the messages.
|
||||||
// However, this update does not trigger the `currentChat` watcher.
|
// This watcher handles two main cases:
|
||||||
// We can add a deep watcher to it, but then, that would be too broad of a net to cast
|
// 1. When switching conversations and messages are fetched/updated, ensures CC/BCC fields are set from the latest OUTGOING/INCOMING email (not activity/private messages).
|
||||||
// And would impact performance too. So we watch the messages directly.
|
// 2. Fixes and issue where CC/BCC fields could be reset/lost after assignment/activity actions or message mutations that did not represent a true email context change.
|
||||||
// The watcher here is `deep` too, because the messages array is mutated and
|
lastEmail: {
|
||||||
// not replaced. So, a shallow watcher would not catch the change.
|
handler(lastEmail) {
|
||||||
'currentChat.messages': {
|
if (!lastEmail) return;
|
||||||
handler() {
|
|
||||||
this.setCCAndToEmailsFromLastChat();
|
this.setCCAndToEmailsFromLastChat();
|
||||||
},
|
},
|
||||||
deep: true,
|
deep: true,
|
||||||
@@ -689,7 +705,7 @@ export default {
|
|||||||
// When users send messages containing both text and attachments on Instagram, Instagram treats them as separate messages.
|
// When users send messages containing both text and attachments on Instagram, Instagram treats them as separate messages.
|
||||||
// Although Chatwoot combines these into a single message, Instagram sends separate echo events for each component.
|
// Although Chatwoot combines these into a single message, Instagram sends separate echo events for each component.
|
||||||
// This can create duplicate messages in Chatwoot. To prevent this issue, we'll handle text and attachments as separate messages.
|
// This can create duplicate messages in Chatwoot. To prevent this issue, we'll handle text and attachments as separate messages.
|
||||||
const isOnInstagram = this.isAInstagramChannel;
|
const isOnInstagram = this.isAnInstagramChannel;
|
||||||
if ((isOnWhatsApp || isOnInstagram) && !this.isPrivate) {
|
if ((isOnWhatsApp || isOnInstagram) && !this.isPrivate) {
|
||||||
this.sendMessageAsMultipleMessages(this.message);
|
this.sendMessageAsMultipleMessages(this.message);
|
||||||
} else {
|
} else {
|
||||||
@@ -943,7 +959,7 @@ export default {
|
|||||||
const multipleMessagePayload = [];
|
const multipleMessagePayload = [];
|
||||||
|
|
||||||
if (this.attachedFiles && this.attachedFiles.length) {
|
if (this.attachedFiles && this.attachedFiles.length) {
|
||||||
let caption = this.isAInstagramChannel ? '' : message;
|
let caption = this.isAnInstagramChannel ? '' : message;
|
||||||
this.attachedFiles.forEach(attachment => {
|
this.attachedFiles.forEach(attachment => {
|
||||||
const attachedFile = this.globalConfig.directUploadsEnabled
|
const attachedFile = this.globalConfig.directUploadsEnabled
|
||||||
? attachment.blobSignedId
|
? attachment.blobSignedId
|
||||||
@@ -959,7 +975,7 @@ export default {
|
|||||||
attachmentPayload = this.setReplyToInPayload(attachmentPayload);
|
attachmentPayload = this.setReplyToInPayload(attachmentPayload);
|
||||||
multipleMessagePayload.push(attachmentPayload);
|
multipleMessagePayload.push(attachmentPayload);
|
||||||
// For WhatsApp, only the first attachment gets a caption
|
// For WhatsApp, only the first attachment gets a caption
|
||||||
if (!this.isAInstagramChannel) caption = '';
|
if (!this.isAnInstagramChannel) caption = '';
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -968,8 +984,8 @@ export default {
|
|||||||
// For Instagram, we need a separate text message
|
// For Instagram, we need a separate text message
|
||||||
// For WhatsApp, we only need a text message if there are no attachments
|
// For WhatsApp, we only need a text message if there are no attachments
|
||||||
if (
|
if (
|
||||||
(this.isAInstagramChannel && this.message) ||
|
(this.isAnInstagramChannel && this.message) ||
|
||||||
(!this.isAInstagramChannel && hasNoAttachments)
|
(!this.isAnInstagramChannel && hasNoAttachments)
|
||||||
) {
|
) {
|
||||||
let messagePayload = {
|
let messagePayload = {
|
||||||
conversationId: this.currentChat.id,
|
conversationId: this.currentChat.id,
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ onMounted(() => {
|
|||||||
v-if="linkedIssue"
|
v-if="linkedIssue"
|
||||||
:issue="linkedIssue.issue"
|
:issue="linkedIssue.issue"
|
||||||
:link-id="linkedIssue.id"
|
:link-id="linkedIssue.id"
|
||||||
class="absolute right-0 top-[40px] invisible group-hover:visible"
|
class="absolute right-0 top-[32px] invisible group-hover:visible"
|
||||||
@unlink-issue="unlinkIssue"
|
@unlink-issue="unlinkIssue"
|
||||||
/>
|
/>
|
||||||
<woot-modal
|
<woot-modal
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ export const useInbox = () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
const isAInstagramChannel = computed(() => {
|
const isAnInstagramChannel = computed(() => {
|
||||||
return channelType.value === INBOX_TYPES.INSTAGRAM;
|
return channelType.value === INBOX_TYPES.INSTAGRAM;
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -141,6 +141,6 @@ export const useInbox = () => {
|
|||||||
isAWhatsAppCloudChannel,
|
isAWhatsAppCloudChannel,
|
||||||
is360DialogWhatsAppChannel,
|
is360DialogWhatsAppChannel,
|
||||||
isAnEmailChannel,
|
isAnEmailChannel,
|
||||||
isAInstagramChannel,
|
isAnInstagramChannel,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,6 +1,44 @@
|
|||||||
export const buildPortalURL = portalSlug => {
|
/**
|
||||||
const { hostURL, helpCenterURL } = window.chatwootConfig;
|
* Formats a custom domain with https protocol if needed
|
||||||
|
* @param {string} customDomain - The custom domain to format
|
||||||
|
* @returns {string} Formatted domain with https protocol
|
||||||
|
*/
|
||||||
|
const formatCustomDomain = customDomain =>
|
||||||
|
customDomain.startsWith('https') ? customDomain : `https://${customDomain}`;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the default base URL from configuration
|
||||||
|
* @returns {string} The default base URL
|
||||||
|
* @throws {Error} If no valid base URL is found
|
||||||
|
*/
|
||||||
|
const getDefaultBaseURL = () => {
|
||||||
|
const { hostURL, helpCenterURL } = window.chatwootConfig || {};
|
||||||
const baseURL = helpCenterURL || hostURL || '';
|
const baseURL = helpCenterURL || hostURL || '';
|
||||||
|
|
||||||
|
if (!baseURL) {
|
||||||
|
throw new Error('No valid base URL found in configuration');
|
||||||
|
}
|
||||||
|
|
||||||
|
return baseURL;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the base URL from configuration or custom domain
|
||||||
|
* @param {string} [customDomain] - Optional custom domain for the portal
|
||||||
|
* @returns {string} The base URL for the portal
|
||||||
|
*/
|
||||||
|
const getPortalBaseURL = customDomain =>
|
||||||
|
customDomain ? formatCustomDomain(customDomain) : getDefaultBaseURL();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds a portal URL using the provided portal slug and optional custom domain
|
||||||
|
* @param {string} portalSlug - The slug identifier for the portal
|
||||||
|
* @param {string} [customDomain] - Optional custom domain for the portal
|
||||||
|
* @returns {string} The complete portal URL
|
||||||
|
* @throws {Error} If portalSlug is not provided or invalid
|
||||||
|
*/
|
||||||
|
export const buildPortalURL = (portalSlug, customDomain) => {
|
||||||
|
const baseURL = getPortalBaseURL(customDomain);
|
||||||
return `${baseURL}/hc/${portalSlug}`;
|
return `${baseURL}/hc/${portalSlug}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -8,9 +46,10 @@ export const buildPortalArticleURL = (
|
|||||||
portalSlug,
|
portalSlug,
|
||||||
categorySlug,
|
categorySlug,
|
||||||
locale,
|
locale,
|
||||||
articleSlug
|
articleSlug,
|
||||||
|
customDomain
|
||||||
) => {
|
) => {
|
||||||
const portalURL = buildPortalURL(portalSlug);
|
const portalURL = buildPortalURL(portalSlug, customDomain);
|
||||||
return `${portalURL}/articles/${articleSlug}`;
|
return `${portalURL}/articles/${articleSlug}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -25,5 +25,47 @@ describe('PortalHelper', () => {
|
|||||||
).toEqual('https://help.chatwoot.com/hc/handbook/articles/article-slug');
|
).toEqual('https://help.chatwoot.com/hc/handbook/articles/article-slug');
|
||||||
window.chatwootConfig = {};
|
window.chatwootConfig = {};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('returns the correct url with custom domain', () => {
|
||||||
|
window.chatwootConfig = {
|
||||||
|
hostURL: 'https://app.chatwoot.com',
|
||||||
|
helpCenterURL: 'https://help.chatwoot.com',
|
||||||
|
};
|
||||||
|
expect(
|
||||||
|
buildPortalArticleURL(
|
||||||
|
'handbook',
|
||||||
|
'culture',
|
||||||
|
'fr',
|
||||||
|
'article-slug',
|
||||||
|
'custom-domain.dev'
|
||||||
|
)
|
||||||
|
).toEqual('https://custom-domain.dev/hc/handbook/articles/article-slug');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('handles https in custom domain correctly', () => {
|
||||||
|
window.chatwootConfig = {
|
||||||
|
hostURL: 'https://app.chatwoot.com',
|
||||||
|
helpCenterURL: 'https://help.chatwoot.com',
|
||||||
|
};
|
||||||
|
expect(
|
||||||
|
buildPortalArticleURL(
|
||||||
|
'handbook',
|
||||||
|
'culture',
|
||||||
|
'fr',
|
||||||
|
'article-slug',
|
||||||
|
'https://custom-domain.dev'
|
||||||
|
)
|
||||||
|
).toEqual('https://custom-domain.dev/hc/handbook/articles/article-slug');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('uses hostURL when helpCenterURL is not available', () => {
|
||||||
|
window.chatwootConfig = {
|
||||||
|
hostURL: 'https://app.chatwoot.com',
|
||||||
|
helpCenterURL: '',
|
||||||
|
};
|
||||||
|
expect(
|
||||||
|
buildPortalArticleURL('handbook', 'culture', 'fr', 'article-slug')
|
||||||
|
).toEqual('https://app.chatwoot.com/hc/handbook/articles/article-slug');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -120,6 +120,7 @@ export default {
|
|||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
this.$store.dispatch('agents/get');
|
this.$store.dispatch('agents/get');
|
||||||
|
this.$store.dispatch('portals/index');
|
||||||
this.initialize();
|
this.initialize();
|
||||||
this.$watch('$store.state.route', () => this.initialize());
|
this.$watch('$store.state.route', () => this.initialize());
|
||||||
this.$watch('chatList.length', () => {
|
this.$watch('chatList.length', () => {
|
||||||
|
|||||||
+13
-2
@@ -1,6 +1,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import { debounce } from '@chatwoot/utils';
|
import { debounce } from '@chatwoot/utils';
|
||||||
import { useAlert } from 'dashboard/composables';
|
import { useAlert } from 'dashboard/composables';
|
||||||
|
import { mapGetters } from 'vuex';
|
||||||
import allLocales from 'shared/constants/locales.js';
|
import allLocales from 'shared/constants/locales.js';
|
||||||
|
|
||||||
import SearchHeader from './Header.vue';
|
import SearchHeader from './Header.vue';
|
||||||
@@ -33,6 +34,15 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
...mapGetters({
|
||||||
|
portalBySlug: 'portals/portalBySlug',
|
||||||
|
}),
|
||||||
|
portal() {
|
||||||
|
return this.portalBySlug(this.selectedPortalSlug);
|
||||||
|
},
|
||||||
|
portalCustomDomain() {
|
||||||
|
return this.portal?.custom_domain;
|
||||||
|
},
|
||||||
articleViewerUrl() {
|
articleViewerUrl() {
|
||||||
const article = this.activeArticle(this.activeId);
|
const article = this.activeArticle(this.activeId);
|
||||||
if (!article) return '';
|
if (!article) return '';
|
||||||
@@ -47,6 +57,7 @@ export default {
|
|||||||
|
|
||||||
return `${url}`;
|
return `${url}`;
|
||||||
},
|
},
|
||||||
|
|
||||||
searchResultsWithUrl() {
|
searchResultsWithUrl() {
|
||||||
return this.searchResults.map(article => ({
|
return this.searchResults.map(article => ({
|
||||||
...article,
|
...article,
|
||||||
@@ -65,7 +76,8 @@ export default {
|
|||||||
this.selectedPortalSlug,
|
this.selectedPortalSlug,
|
||||||
'',
|
'',
|
||||||
'',
|
'',
|
||||||
article.slug
|
article.slug,
|
||||||
|
this.portalCustomDomain
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
localeName(code) {
|
localeName(code) {
|
||||||
@@ -111,7 +123,6 @@ export default {
|
|||||||
},
|
},
|
||||||
onInsert(id) {
|
onInsert(id) {
|
||||||
const article = this.activeArticle(id || this.activeId);
|
const article = this.activeArticle(id || this.activeId);
|
||||||
|
|
||||||
this.$emit('insert', article);
|
this.$emit('insert', article);
|
||||||
useAlert(this.$t('HELP_CENTER.ARTICLE_SEARCH.SUCCESS_ARTICLE_INSERTED'));
|
useAlert(this.$t('HELP_CENTER.ARTICLE_SEARCH.SUCCESS_ARTICLE_INSERTED'));
|
||||||
this.onClose();
|
this.onClose();
|
||||||
|
|||||||
+9
-3
@@ -20,17 +20,23 @@ const articleById = useMapGetter('articles/articleById');
|
|||||||
|
|
||||||
const article = computed(() => articleById.value(articleSlug));
|
const article = computed(() => articleById.value(articleSlug));
|
||||||
|
|
||||||
|
const portalBySlug = useMapGetter('portals/portalBySlug');
|
||||||
|
|
||||||
|
const portal = computed(() => portalBySlug.value(portalSlug));
|
||||||
|
|
||||||
const isUpdating = ref(false);
|
const isUpdating = ref(false);
|
||||||
const isSaved = ref(false);
|
const isSaved = ref(false);
|
||||||
|
|
||||||
const portalLink = computed(() => {
|
const articleLink = computed(() => {
|
||||||
const { slug: categorySlug, locale: categoryLocale } = article.value.category;
|
const { slug: categorySlug, locale: categoryLocale } = article.value.category;
|
||||||
const { slug: articleSlugValue } = article.value;
|
const { slug: articleSlugValue } = article.value;
|
||||||
|
const portalCustomDomain = portal.value?.custom_domain;
|
||||||
return buildPortalArticleURL(
|
return buildPortalArticleURL(
|
||||||
portalSlug,
|
portalSlug,
|
||||||
categorySlug,
|
categorySlug,
|
||||||
categoryLocale,
|
categoryLocale,
|
||||||
articleSlugValue
|
articleSlugValue,
|
||||||
|
portalCustomDomain
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -91,7 +97,7 @@ const fetchArticleDetails = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const previewArticle = () => {
|
const previewArticle = () => {
|
||||||
window.open(portalLink.value, '_blank');
|
window.open(articleLink.value, '_blank');
|
||||||
useTrack(PORTALS_EVENTS.PREVIEW_ARTICLE, {
|
useTrack(PORTALS_EVENTS.PREVIEW_ARTICLE, {
|
||||||
status: article.value?.status,
|
status: article.value?.status,
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ export default {
|
|||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
instagramUnauthorized() {
|
instagramUnauthorized() {
|
||||||
return this.isAInstagramChannel && this.inbox.reauthorization_required;
|
return this.isAnInstagramChannel && this.inbox.reauthorization_required;
|
||||||
},
|
},
|
||||||
// Check if a instagram inbox exists with the same instagram_id
|
// Check if a instagram inbox exists with the same instagram_id
|
||||||
hasDuplicateInstagramInbox() {
|
hasDuplicateInstagramInbox() {
|
||||||
|
|||||||
+6
-2
@@ -1,5 +1,6 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import Banner from 'dashboard/components-next/banner/Banner.vue';
|
import Banner from 'dashboard/components-next/banner/Banner.vue';
|
||||||
|
import Icon from 'dashboard/components-next/icon/Icon.vue';
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
content: {
|
content: {
|
||||||
@@ -10,7 +11,10 @@ defineProps({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<Banner color="ruby">
|
<Banner color="amber">
|
||||||
{{ content }}
|
<div class="flex items-center gap-2">
|
||||||
|
<Icon icon="i-lucide-info" class="flex-shrink-0 size-4" />
|
||||||
|
<span>{{ content }}</span>
|
||||||
|
</div>
|
||||||
</Banner>
|
</Banner>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -135,7 +135,6 @@ export const SDK_CSS = `
|
|||||||
.woot-widget-bubble svg {
|
.woot-widget-bubble svg {
|
||||||
all: revert;
|
all: revert;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
margin: 20px;
|
|
||||||
width: 24px;
|
width: 24px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ export const ALLOWED_FILE_TYPES =
|
|||||||
'video/*,' +
|
'video/*,' +
|
||||||
'.3gpp,' +
|
'.3gpp,' +
|
||||||
'text/csv, text/plain, application/json, application/pdf, text/rtf,' +
|
'text/csv, text/plain, application/json, application/pdf, text/rtf,' +
|
||||||
|
'application/xml, text/xml,' +
|
||||||
'application/zip, application/x-7z-compressed application/vnd.rar application/x-tar,' +
|
'application/zip, application/x-7z-compressed application/vnd.rar application/x-tar,' +
|
||||||
'application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/vnd.oasis.opendocument.text,' +
|
'application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/vnd.oasis.opendocument.text,' +
|
||||||
'application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,' +
|
'application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,' +
|
||||||
|
|||||||
@@ -4,8 +4,20 @@ export const isASubmittedFormMessage = (message = {}) =>
|
|||||||
|
|
||||||
export const MESSAGE_MAX_LENGTH = {
|
export const MESSAGE_MAX_LENGTH = {
|
||||||
GENERAL: 10000,
|
GENERAL: 10000,
|
||||||
FACEBOOK: 1000,
|
// https://developers.facebook.com/docs/messenger-platform/reference/send-api#request
|
||||||
|
FACEBOOK: 2000,
|
||||||
|
// https://developers.facebook.com/docs/instagram-platform/instagram-api-with-instagram-login/messaging-api#send-a-text-message
|
||||||
|
INSTAGRAM: 1000,
|
||||||
|
// https://www.twilio.com/docs/glossary/what-sms-character-limit
|
||||||
TWILIO_SMS: 320,
|
TWILIO_SMS: 320,
|
||||||
|
// https://help.twilio.com/articles/360033806753-Maximum-Message-Length-with-Twilio-Programmable-Messaging
|
||||||
TWILIO_WHATSAPP: 1600,
|
TWILIO_WHATSAPP: 1600,
|
||||||
|
// https://developers.facebook.com/docs/whatsapp/cloud-api/reference/messages#text-object
|
||||||
|
WHATSAPP_CLOUD: 4096,
|
||||||
|
// https://support.bandwidth.com/hc/en-us/articles/360010235373-What-are-Bandwidth-s-SMS-character-limits-and-concatenation-practices
|
||||||
|
BANDWIDTH_SMS: 160,
|
||||||
|
// https://core.telegram.org/bots/api#sendmessage
|
||||||
|
TELEGRAM: 4096,
|
||||||
|
LINE: 2000,
|
||||||
EMAIL: 25000,
|
EMAIL: 25000,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ export default {
|
|||||||
this.isATwilioWhatsAppChannel
|
this.isATwilioWhatsAppChannel
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
isAInstagramChannel() {
|
isAnInstagramChannel() {
|
||||||
return this.channelType === INBOX_TYPES.INSTAGRAM;
|
return this.channelType === INBOX_TYPES.INSTAGRAM;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
The Chatwoot Enterprise license (the “Enterprise License”)
|
The Chatwoot Enterprise license (the “Enterprise License”)
|
||||||
Copyright (c) 2017-2021 Chatwoot Inc
|
Copyright (c) 2017-2025 Chatwoot Inc
|
||||||
|
|
||||||
With regard to the Chatwoot Software:
|
With regard to the Chatwoot Software:
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -138,7 +138,7 @@
|
|||||||
"prosemirror-model": "^1.22.3",
|
"prosemirror-model": "^1.22.3",
|
||||||
"size-limit": "^8.2.4",
|
"size-limit": "^8.2.4",
|
||||||
"tailwindcss": "^3.4.13",
|
"tailwindcss": "^3.4.13",
|
||||||
"vite": "^5.4.17",
|
"vite": "^5.4.18",
|
||||||
"vite-plugin-ruby": "^5.0.0",
|
"vite-plugin-ruby": "^5.0.0",
|
||||||
"vitest": "3.0.5"
|
"vitest": "3.0.5"
|
||||||
},
|
},
|
||||||
@@ -154,7 +154,7 @@
|
|||||||
"pnpm": {
|
"pnpm": {
|
||||||
"overrides": {
|
"overrides": {
|
||||||
"vite-node": "2.0.1",
|
"vite-node": "2.0.1",
|
||||||
"vite": "5.4.17",
|
"vite": "5.4.18",
|
||||||
"vitest": "3.0.5"
|
"vitest": "3.0.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Generated
+124
-124
@@ -6,7 +6,7 @@ settings:
|
|||||||
|
|
||||||
overrides:
|
overrides:
|
||||||
vite-node: 2.0.1
|
vite-node: 2.0.1
|
||||||
vite: 5.4.17
|
vite: 5.4.18
|
||||||
vitest: 3.0.5
|
vitest: 3.0.5
|
||||||
|
|
||||||
importers:
|
importers:
|
||||||
@@ -72,7 +72,7 @@ importers:
|
|||||||
version: 8.20.5(vue@3.5.12(typescript@5.6.2))
|
version: 8.20.5(vue@3.5.12(typescript@5.6.2))
|
||||||
'@vitejs/plugin-vue':
|
'@vitejs/plugin-vue':
|
||||||
specifier: ^5.1.4
|
specifier: ^5.1.4
|
||||||
version: 5.1.4(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))(vue@3.5.12(typescript@5.6.2))
|
version: 5.1.4(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))(vue@3.5.12(typescript@5.6.2))
|
||||||
'@vue/compiler-sfc':
|
'@vue/compiler-sfc':
|
||||||
specifier: ^3.5.8
|
specifier: ^3.5.8
|
||||||
version: 3.5.8
|
version: 3.5.8
|
||||||
@@ -238,7 +238,7 @@ importers:
|
|||||||
version: 1.8.1(tailwindcss@3.4.13)
|
version: 1.8.1(tailwindcss@3.4.13)
|
||||||
'@histoire/plugin-vue':
|
'@histoire/plugin-vue':
|
||||||
specifier: 0.17.15
|
specifier: 0.17.15
|
||||||
version: 0.17.15(histoire@0.17.15(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)))(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))(vue@3.5.12(typescript@5.6.2))
|
version: 0.17.15(histoire@0.17.15(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)))(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))(vue@3.5.12(typescript@5.6.2))
|
||||||
'@iconify-json/logos':
|
'@iconify-json/logos':
|
||||||
specifier: ^1.2.3
|
specifier: ^1.2.3
|
||||||
version: 1.2.3
|
version: 1.2.3
|
||||||
@@ -301,7 +301,7 @@ importers:
|
|||||||
version: 6.0.0
|
version: 6.0.0
|
||||||
histoire:
|
histoire:
|
||||||
specifier: 0.17.15
|
specifier: 0.17.15
|
||||||
version: 0.17.15(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
version: 0.17.15(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
||||||
husky:
|
husky:
|
||||||
specifier: ^7.0.0
|
specifier: ^7.0.0
|
||||||
version: 7.0.4
|
version: 7.0.4
|
||||||
@@ -330,11 +330,11 @@ importers:
|
|||||||
specifier: ^3.4.13
|
specifier: ^3.4.13
|
||||||
version: 3.4.13
|
version: 3.4.13
|
||||||
vite:
|
vite:
|
||||||
specifier: 5.4.17
|
specifier: 5.4.18
|
||||||
version: 5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)
|
version: 5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)
|
||||||
vite-plugin-ruby:
|
vite-plugin-ruby:
|
||||||
specifier: ^5.0.0
|
specifier: ^5.0.0
|
||||||
version: 5.0.0(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
version: 5.0.0(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
||||||
vitest:
|
vitest:
|
||||||
specifier: 3.0.5
|
specifier: 3.0.5
|
||||||
version: 3.0.5(@types/node@22.7.0)(jsdom@24.1.3)(sass@1.79.3)(terser@5.33.0)
|
version: 3.0.5(@types/node@22.7.0)(jsdom@24.1.3)(sass@1.79.3)(terser@5.33.0)
|
||||||
@@ -860,7 +860,7 @@ packages:
|
|||||||
'@histoire/shared@0.17.17':
|
'@histoire/shared@0.17.17':
|
||||||
resolution: {integrity: sha512-ueGtURysonT0MujCObPCR57+mgZluMEXCrbc2FBgKAD/DoAt38tNwSGsmLldk2O6nTr7lr6ClbVSgWrLwgY6Xw==}
|
resolution: {integrity: sha512-ueGtURysonT0MujCObPCR57+mgZluMEXCrbc2FBgKAD/DoAt38tNwSGsmLldk2O6nTr7lr6ClbVSgWrLwgY6Xw==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
vite: 5.4.17
|
vite: 5.4.18
|
||||||
|
|
||||||
'@histoire/vendors@0.17.17':
|
'@histoire/vendors@0.17.17':
|
||||||
resolution: {integrity: sha512-QZvmffdoJlLuYftPIkOU5Q2FPAdG2JjMuQ5jF7NmEl0n1XnmbMqtRkdYTZ4eF6CO1KLZ0Zyf6gBQvoT1uWNcjA==}
|
resolution: {integrity: sha512-QZvmffdoJlLuYftPIkOU5Q2FPAdG2JjMuQ5jF7NmEl0n1XnmbMqtRkdYTZ4eF6CO1KLZ0Zyf6gBQvoT1uWNcjA==}
|
||||||
@@ -1039,103 +1039,103 @@ packages:
|
|||||||
'@rails/ujs@7.1.400':
|
'@rails/ujs@7.1.400':
|
||||||
resolution: {integrity: sha512-YwvXm3BR5tn+VCAKYGycLejMRVZE3Ionj5gFjEeGXCZnI0Rpi+7dKpmyu90kdUY7dRUFpHTdu9zZceEzFLl38w==}
|
resolution: {integrity: sha512-YwvXm3BR5tn+VCAKYGycLejMRVZE3Ionj5gFjEeGXCZnI0Rpi+7dKpmyu90kdUY7dRUFpHTdu9zZceEzFLl38w==}
|
||||||
|
|
||||||
'@rollup/rollup-android-arm-eabi@4.39.0':
|
'@rollup/rollup-android-arm-eabi@4.40.0':
|
||||||
resolution: {integrity: sha512-lGVys55Qb00Wvh8DMAocp5kIcaNzEFTmGhfFd88LfaogYTRKrdxgtlO5H6S49v2Nd8R2C6wLOal0qv6/kCkOwA==}
|
resolution: {integrity: sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [android]
|
os: [android]
|
||||||
|
|
||||||
'@rollup/rollup-android-arm64@4.39.0':
|
'@rollup/rollup-android-arm64@4.40.0':
|
||||||
resolution: {integrity: sha512-It9+M1zE31KWfqh/0cJLrrsCPiF72PoJjIChLX+rEcujVRCb4NLQ5QzFkzIZW8Kn8FTbvGQBY5TkKBau3S8cCQ==}
|
resolution: {integrity: sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [android]
|
os: [android]
|
||||||
|
|
||||||
'@rollup/rollup-darwin-arm64@4.39.0':
|
'@rollup/rollup-darwin-arm64@4.40.0':
|
||||||
resolution: {integrity: sha512-lXQnhpFDOKDXiGxsU9/l8UEGGM65comrQuZ+lDcGUx+9YQ9dKpF3rSEGepyeR5AHZ0b5RgiligsBhWZfSSQh8Q==}
|
resolution: {integrity: sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
|
|
||||||
'@rollup/rollup-darwin-x64@4.39.0':
|
'@rollup/rollup-darwin-x64@4.40.0':
|
||||||
resolution: {integrity: sha512-mKXpNZLvtEbgu6WCkNij7CGycdw9cJi2k9v0noMb++Vab12GZjFgUXD69ilAbBh034Zwn95c2PNSz9xM7KYEAQ==}
|
resolution: {integrity: sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
|
|
||||||
'@rollup/rollup-freebsd-arm64@4.39.0':
|
'@rollup/rollup-freebsd-arm64@4.40.0':
|
||||||
resolution: {integrity: sha512-jivRRlh2Lod/KvDZx2zUR+I4iBfHcu2V/BA2vasUtdtTN2Uk3jfcZczLa81ESHZHPHy4ih3T/W5rPFZ/hX7RtQ==}
|
resolution: {integrity: sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [freebsd]
|
os: [freebsd]
|
||||||
|
|
||||||
'@rollup/rollup-freebsd-x64@4.39.0':
|
'@rollup/rollup-freebsd-x64@4.40.0':
|
||||||
resolution: {integrity: sha512-8RXIWvYIRK9nO+bhVz8DwLBepcptw633gv/QT4015CpJ0Ht8punmoHU/DuEd3iw9Hr8UwUV+t+VNNuZIWYeY7Q==}
|
resolution: {integrity: sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [freebsd]
|
os: [freebsd]
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm-gnueabihf@4.39.0':
|
'@rollup/rollup-linux-arm-gnueabihf@4.40.0':
|
||||||
resolution: {integrity: sha512-mz5POx5Zu58f2xAG5RaRRhp3IZDK7zXGk5sdEDj4o96HeaXhlUwmLFzNlc4hCQi5sGdR12VDgEUqVSHer0lI9g==}
|
resolution: {integrity: sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm-musleabihf@4.39.0':
|
'@rollup/rollup-linux-arm-musleabihf@4.40.0':
|
||||||
resolution: {integrity: sha512-+YDwhM6gUAyakl0CD+bMFpdmwIoRDzZYaTWV3SDRBGkMU/VpIBYXXEvkEcTagw/7VVkL2vA29zU4UVy1mP0/Yw==}
|
resolution: {integrity: sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm64-gnu@4.39.0':
|
'@rollup/rollup-linux-arm64-gnu@4.40.0':
|
||||||
resolution: {integrity: sha512-EKf7iF7aK36eEChvlgxGnk7pdJfzfQbNvGV/+l98iiMwU23MwvmV0Ty3pJ0p5WQfm3JRHOytSIqD9LB7Bq7xdQ==}
|
resolution: {integrity: sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm64-musl@4.39.0':
|
'@rollup/rollup-linux-arm64-musl@4.40.0':
|
||||||
resolution: {integrity: sha512-vYanR6MtqC7Z2SNr8gzVnzUul09Wi1kZqJaek3KcIlI/wq5Xtq4ZPIZ0Mr/st/sv/NnaPwy/D4yXg5x0B3aUUA==}
|
resolution: {integrity: sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-linux-loongarch64-gnu@4.39.0':
|
'@rollup/rollup-linux-loongarch64-gnu@4.40.0':
|
||||||
resolution: {integrity: sha512-NMRUT40+h0FBa5fb+cpxtZoGAggRem16ocVKIv5gDB5uLDgBIwrIsXlGqYbLwW8YyO3WVTk1FkFDjMETYlDqiw==}
|
resolution: {integrity: sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==}
|
||||||
cpu: [loong64]
|
cpu: [loong64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-linux-powerpc64le-gnu@4.39.0':
|
'@rollup/rollup-linux-powerpc64le-gnu@4.40.0':
|
||||||
resolution: {integrity: sha512-0pCNnmxgduJ3YRt+D+kJ6Ai/r+TaePu9ZLENl+ZDV/CdVczXl95CbIiwwswu4L+K7uOIGf6tMo2vm8uadRaICQ==}
|
resolution: {integrity: sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==}
|
||||||
cpu: [ppc64]
|
cpu: [ppc64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-linux-riscv64-gnu@4.39.0':
|
'@rollup/rollup-linux-riscv64-gnu@4.40.0':
|
||||||
resolution: {integrity: sha512-t7j5Zhr7S4bBtksT73bO6c3Qa2AV/HqiGlj9+KB3gNF5upcVkx+HLgxTm8DK4OkzsOYqbdqbLKwvGMhylJCPhQ==}
|
resolution: {integrity: sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==}
|
||||||
cpu: [riscv64]
|
cpu: [riscv64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-linux-riscv64-musl@4.39.0':
|
'@rollup/rollup-linux-riscv64-musl@4.40.0':
|
||||||
resolution: {integrity: sha512-m6cwI86IvQ7M93MQ2RF5SP8tUjD39Y7rjb1qjHgYh28uAPVU8+k/xYWvxRO3/tBN2pZkSMa5RjnPuUIbrwVxeA==}
|
resolution: {integrity: sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==}
|
||||||
cpu: [riscv64]
|
cpu: [riscv64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-linux-s390x-gnu@4.39.0':
|
'@rollup/rollup-linux-s390x-gnu@4.40.0':
|
||||||
resolution: {integrity: sha512-iRDJd2ebMunnk2rsSBYlsptCyuINvxUfGwOUldjv5M4tpa93K8tFMeYGpNk2+Nxl+OBJnBzy2/JCscGeO507kA==}
|
resolution: {integrity: sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==}
|
||||||
cpu: [s390x]
|
cpu: [s390x]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-linux-x64-gnu@4.39.0':
|
'@rollup/rollup-linux-x64-gnu@4.40.0':
|
||||||
resolution: {integrity: sha512-t9jqYw27R6Lx0XKfEFe5vUeEJ5pF3SGIM6gTfONSMb7DuG6z6wfj2yjcoZxHg129veTqU7+wOhY6GX8wmf90dA==}
|
resolution: {integrity: sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-linux-x64-musl@4.39.0':
|
'@rollup/rollup-linux-x64-musl@4.40.0':
|
||||||
resolution: {integrity: sha512-ThFdkrFDP55AIsIZDKSBWEt/JcWlCzydbZHinZ0F/r1h83qbGeenCt/G/wG2O0reuENDD2tawfAj2s8VK7Bugg==}
|
resolution: {integrity: sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-win32-arm64-msvc@4.39.0':
|
'@rollup/rollup-win32-arm64-msvc@4.40.0':
|
||||||
resolution: {integrity: sha512-jDrLm6yUtbOg2TYB3sBF3acUnAwsIksEYjLeHL+TJv9jg+TmTwdyjnDex27jqEMakNKf3RwwPahDIt7QXCSqRQ==}
|
resolution: {integrity: sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
'@rollup/rollup-win32-ia32-msvc@4.39.0':
|
'@rollup/rollup-win32-ia32-msvc@4.40.0':
|
||||||
resolution: {integrity: sha512-6w9uMuza+LbLCVoNKL5FSLE7yvYkq9laSd09bwS0tMjkwXrmib/4KmoJcrKhLWHvw19mwU+33ndC69T7weNNjQ==}
|
resolution: {integrity: sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==}
|
||||||
cpu: [ia32]
|
cpu: [ia32]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
'@rollup/rollup-win32-x64-msvc@4.39.0':
|
'@rollup/rollup-win32-x64-msvc@4.40.0':
|
||||||
resolution: {integrity: sha512-yAkUOkIKZlK5dl7u6dg897doBgLXmUHhIINM2c+sND3DZwnrdQkkSiDh7N75Ll4mM4dxSkYfXqU9fW3lLkMFug==}
|
resolution: {integrity: sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
@@ -1800,7 +1800,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==}
|
resolution: {integrity: sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==}
|
||||||
engines: {node: ^18.0.0 || >=20.0.0}
|
engines: {node: ^18.0.0 || >=20.0.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
vite: 5.4.17
|
vite: 5.4.18
|
||||||
vue: ^3.2.25
|
vue: ^3.2.25
|
||||||
|
|
||||||
'@vitest/coverage-v8@3.0.5':
|
'@vitest/coverage-v8@3.0.5':
|
||||||
@@ -1819,7 +1819,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-CLPNBFBIE7x6aEGbIjaQAX03ZZlBMaWwAjBdMkIf/cAn6xzLTiM3zYqO/WAbieEjsAZir6tO71mzeHZoodThvw==}
|
resolution: {integrity: sha512-CLPNBFBIE7x6aEGbIjaQAX03ZZlBMaWwAjBdMkIf/cAn6xzLTiM3zYqO/WAbieEjsAZir6tO71mzeHZoodThvw==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
msw: ^2.4.9
|
msw: ^2.4.9
|
||||||
vite: 5.4.17
|
vite: 5.4.18
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
msw:
|
msw:
|
||||||
optional: true
|
optional: true
|
||||||
@@ -3100,7 +3100,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-DiRMSIgj340z+zikqf0f3Pj0CTv2/xtdBMBIAO1EARat+QXxMwumbfK41Gi7f9IIBr+UVmomNcwFxVY2EM/vrw==}
|
resolution: {integrity: sha512-DiRMSIgj340z+zikqf0f3Pj0CTv2/xtdBMBIAO1EARat+QXxMwumbfK41Gi7f9IIBr+UVmomNcwFxVY2EM/vrw==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
vite: 5.4.17
|
vite: 5.4.18
|
||||||
|
|
||||||
hotkeys-js@3.8.7:
|
hotkeys-js@3.8.7:
|
||||||
resolution: {integrity: sha512-ckAx3EkUr5XjDwjEHDorHxRO2Kb7z6Z2Sxul4MbBkN8Nho7XDslQsgMJT+CiJ5Z4TgRxxvKHEpuLE3imzqy4Lg==}
|
resolution: {integrity: sha512-ckAx3EkUr5XjDwjEHDorHxRO2Kb7z6Z2Sxul4MbBkN8Nho7XDslQsgMJT+CiJ5Z4TgRxxvKHEpuLE3imzqy4Lg==}
|
||||||
@@ -4344,8 +4344,8 @@ packages:
|
|||||||
deprecated: Rimraf versions prior to v4 are no longer supported
|
deprecated: Rimraf versions prior to v4 are no longer supported
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
rollup@4.39.0:
|
rollup@4.40.0:
|
||||||
resolution: {integrity: sha512-thI8kNc02yNvnmJp8dr3fNWJ9tCONDhp6TV35X6HkKGGs9E6q7YWCHbe5vKiTa7TAiNcFEmXKj3X/pG2b3ci0g==}
|
resolution: {integrity: sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==}
|
||||||
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
|
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
@@ -4863,10 +4863,10 @@ packages:
|
|||||||
vite-plugin-ruby@5.0.0:
|
vite-plugin-ruby@5.0.0:
|
||||||
resolution: {integrity: sha512-c8PjTp21Ah/ttgnNUyu0qvCXZI08Jr9I24oUKg3TRIRhF5GcOZ++6wtlTCrNFd9COEQbpXHxlRIXd/MEg0iZJw==}
|
resolution: {integrity: sha512-c8PjTp21Ah/ttgnNUyu0qvCXZI08Jr9I24oUKg3TRIRhF5GcOZ++6wtlTCrNFd9COEQbpXHxlRIXd/MEg0iZJw==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
vite: 5.4.17
|
vite: 5.4.18
|
||||||
|
|
||||||
vite@5.4.17:
|
vite@5.4.18:
|
||||||
resolution: {integrity: sha512-5+VqZryDj4wgCs55o9Lp+p8GE78TLVg0lasCH5xFZ4jacZjtqZa6JUw9/p0WeAojaOfncSM6v77InkFPGnvPvg==}
|
resolution: {integrity: sha512-1oDcnEp3lVyHCuQ2YFelM4Alm2o91xNoMncRm1U7S+JdYfYOvbiGZ3/CxGttrOu2M/KcGz7cRC2DoNUA6urmMA==}
|
||||||
engines: {node: ^18.0.0 || >=20.0.0}
|
engines: {node: ^18.0.0 || >=20.0.0}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -5672,10 +5672,10 @@ snapshots:
|
|||||||
highlight.js: 11.10.0
|
highlight.js: 11.10.0
|
||||||
vue: 3.5.12(typescript@5.6.2)
|
vue: 3.5.12(typescript@5.6.2)
|
||||||
|
|
||||||
'@histoire/app@0.17.17(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))':
|
'@histoire/app@0.17.17(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@histoire/controls': 0.17.17(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
'@histoire/controls': 0.17.17(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
||||||
'@histoire/shared': 0.17.17(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
'@histoire/shared': 0.17.17(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
||||||
'@histoire/vendors': 0.17.17
|
'@histoire/vendors': 0.17.17
|
||||||
'@types/flexsearch': 0.7.6
|
'@types/flexsearch': 0.7.6
|
||||||
flexsearch: 0.7.21
|
flexsearch: 0.7.21
|
||||||
@@ -5683,7 +5683,7 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- vite
|
- vite
|
||||||
|
|
||||||
'@histoire/controls@0.17.17(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))':
|
'@histoire/controls@0.17.17(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@codemirror/commands': 6.7.0
|
'@codemirror/commands': 6.7.0
|
||||||
'@codemirror/lang-json': 6.0.1
|
'@codemirror/lang-json': 6.0.1
|
||||||
@@ -5692,26 +5692,26 @@ snapshots:
|
|||||||
'@codemirror/state': 6.4.1
|
'@codemirror/state': 6.4.1
|
||||||
'@codemirror/theme-one-dark': 6.1.2
|
'@codemirror/theme-one-dark': 6.1.2
|
||||||
'@codemirror/view': 6.34.1
|
'@codemirror/view': 6.34.1
|
||||||
'@histoire/shared': 0.17.17(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
'@histoire/shared': 0.17.17(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
||||||
'@histoire/vendors': 0.17.17
|
'@histoire/vendors': 0.17.17
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- vite
|
- vite
|
||||||
|
|
||||||
'@histoire/plugin-vue@0.17.15(histoire@0.17.15(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)))(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))(vue@3.5.12(typescript@5.6.2))':
|
'@histoire/plugin-vue@0.17.15(histoire@0.17.15(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)))(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))(vue@3.5.12(typescript@5.6.2))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@histoire/controls': 0.17.17(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
'@histoire/controls': 0.17.17(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
||||||
'@histoire/shared': 0.17.17(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
'@histoire/shared': 0.17.17(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
||||||
'@histoire/vendors': 0.17.17
|
'@histoire/vendors': 0.17.17
|
||||||
change-case: 4.1.2
|
change-case: 4.1.2
|
||||||
globby: 13.2.2
|
globby: 13.2.2
|
||||||
histoire: 0.17.15(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
histoire: 0.17.15(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
||||||
launch-editor: 2.9.1
|
launch-editor: 2.9.1
|
||||||
pathe: 1.1.2
|
pathe: 1.1.2
|
||||||
vue: 3.5.12(typescript@5.6.2)
|
vue: 3.5.12(typescript@5.6.2)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- vite
|
- vite
|
||||||
|
|
||||||
'@histoire/shared@0.17.17(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))':
|
'@histoire/shared@0.17.17(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@histoire/vendors': 0.17.17
|
'@histoire/vendors': 0.17.17
|
||||||
'@types/fs-extra': 9.0.13
|
'@types/fs-extra': 9.0.13
|
||||||
@@ -5719,7 +5719,7 @@ snapshots:
|
|||||||
chokidar: 3.6.0
|
chokidar: 3.6.0
|
||||||
pathe: 1.1.2
|
pathe: 1.1.2
|
||||||
picocolors: 1.1.0
|
picocolors: 1.1.0
|
||||||
vite: 5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)
|
vite: 5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)
|
||||||
|
|
||||||
'@histoire/vendors@0.17.17': {}
|
'@histoire/vendors@0.17.17': {}
|
||||||
|
|
||||||
@@ -5944,64 +5944,64 @@ snapshots:
|
|||||||
|
|
||||||
'@rails/ujs@7.1.400': {}
|
'@rails/ujs@7.1.400': {}
|
||||||
|
|
||||||
'@rollup/rollup-android-arm-eabi@4.39.0':
|
'@rollup/rollup-android-arm-eabi@4.40.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-android-arm64@4.39.0':
|
'@rollup/rollup-android-arm64@4.40.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-darwin-arm64@4.39.0':
|
'@rollup/rollup-darwin-arm64@4.40.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-darwin-x64@4.39.0':
|
'@rollup/rollup-darwin-x64@4.40.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-freebsd-arm64@4.39.0':
|
'@rollup/rollup-freebsd-arm64@4.40.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-freebsd-x64@4.39.0':
|
'@rollup/rollup-freebsd-x64@4.40.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm-gnueabihf@4.39.0':
|
'@rollup/rollup-linux-arm-gnueabihf@4.40.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm-musleabihf@4.39.0':
|
'@rollup/rollup-linux-arm-musleabihf@4.40.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm64-gnu@4.39.0':
|
'@rollup/rollup-linux-arm64-gnu@4.40.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm64-musl@4.39.0':
|
'@rollup/rollup-linux-arm64-musl@4.40.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-loongarch64-gnu@4.39.0':
|
'@rollup/rollup-linux-loongarch64-gnu@4.40.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-powerpc64le-gnu@4.39.0':
|
'@rollup/rollup-linux-powerpc64le-gnu@4.40.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-riscv64-gnu@4.39.0':
|
'@rollup/rollup-linux-riscv64-gnu@4.40.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-riscv64-musl@4.39.0':
|
'@rollup/rollup-linux-riscv64-musl@4.40.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-s390x-gnu@4.39.0':
|
'@rollup/rollup-linux-s390x-gnu@4.40.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-x64-gnu@4.39.0':
|
'@rollup/rollup-linux-x64-gnu@4.40.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-x64-musl@4.39.0':
|
'@rollup/rollup-linux-x64-musl@4.40.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-win32-arm64-msvc@4.39.0':
|
'@rollup/rollup-win32-arm64-msvc@4.40.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-win32-ia32-msvc@4.39.0':
|
'@rollup/rollup-win32-ia32-msvc@4.40.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-win32-x64-msvc@4.39.0':
|
'@rollup/rollup-win32-x64-msvc@4.40.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rtsao/scc@1.1.0': {}
|
'@rtsao/scc@1.1.0': {}
|
||||||
@@ -6802,9 +6802,9 @@ snapshots:
|
|||||||
global: 4.4.0
|
global: 4.4.0
|
||||||
is-function: 1.0.2
|
is-function: 1.0.2
|
||||||
|
|
||||||
'@vitejs/plugin-vue@5.1.4(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))(vue@3.5.12(typescript@5.6.2))':
|
'@vitejs/plugin-vue@5.1.4(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))(vue@3.5.12(typescript@5.6.2))':
|
||||||
dependencies:
|
dependencies:
|
||||||
vite: 5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)
|
vite: 5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)
|
||||||
vue: 3.5.12(typescript@5.6.2)
|
vue: 3.5.12(typescript@5.6.2)
|
||||||
|
|
||||||
'@vitest/coverage-v8@3.0.5(vitest@3.0.5(@types/node@22.7.0)(jsdom@24.1.3)(sass@1.79.3)(terser@5.33.0))':
|
'@vitest/coverage-v8@3.0.5(vitest@3.0.5(@types/node@22.7.0)(jsdom@24.1.3)(sass@1.79.3)(terser@5.33.0))':
|
||||||
@@ -6832,13 +6832,13 @@ snapshots:
|
|||||||
chai: 5.1.2
|
chai: 5.1.2
|
||||||
tinyrainbow: 2.0.0
|
tinyrainbow: 2.0.0
|
||||||
|
|
||||||
'@vitest/mocker@3.0.5(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))':
|
'@vitest/mocker@3.0.5(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitest/spy': 3.0.5
|
'@vitest/spy': 3.0.5
|
||||||
estree-walker: 3.0.3
|
estree-walker: 3.0.3
|
||||||
magic-string: 0.30.17
|
magic-string: 0.30.17
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
vite: 5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)
|
vite: 5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)
|
||||||
|
|
||||||
'@vitest/pretty-format@3.0.5':
|
'@vitest/pretty-format@3.0.5':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -8393,12 +8393,12 @@ snapshots:
|
|||||||
|
|
||||||
highlight.js@11.10.0: {}
|
highlight.js@11.10.0: {}
|
||||||
|
|
||||||
histoire@0.17.15(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)):
|
histoire@0.17.15(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@akryum/tinypool': 0.3.1
|
'@akryum/tinypool': 0.3.1
|
||||||
'@histoire/app': 0.17.17(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
'@histoire/app': 0.17.17(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
||||||
'@histoire/controls': 0.17.17(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
'@histoire/controls': 0.17.17(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
||||||
'@histoire/shared': 0.17.17(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
'@histoire/shared': 0.17.17(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
||||||
'@histoire/vendors': 0.17.17
|
'@histoire/vendors': 0.17.17
|
||||||
'@types/flexsearch': 0.7.6
|
'@types/flexsearch': 0.7.6
|
||||||
'@types/markdown-it': 12.2.3
|
'@types/markdown-it': 12.2.3
|
||||||
@@ -8425,7 +8425,7 @@ snapshots:
|
|||||||
sade: 1.8.1
|
sade: 1.8.1
|
||||||
shiki-es: 0.2.0
|
shiki-es: 0.2.0
|
||||||
sirv: 2.0.4
|
sirv: 2.0.4
|
||||||
vite: 5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)
|
vite: 5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)
|
||||||
vite-node: 2.0.1(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)
|
vite-node: 2.0.1(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/node'
|
- '@types/node'
|
||||||
@@ -9766,30 +9766,30 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
glob: 7.2.3
|
glob: 7.2.3
|
||||||
|
|
||||||
rollup@4.39.0:
|
rollup@4.40.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/estree': 1.0.7
|
'@types/estree': 1.0.7
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@rollup/rollup-android-arm-eabi': 4.39.0
|
'@rollup/rollup-android-arm-eabi': 4.40.0
|
||||||
'@rollup/rollup-android-arm64': 4.39.0
|
'@rollup/rollup-android-arm64': 4.40.0
|
||||||
'@rollup/rollup-darwin-arm64': 4.39.0
|
'@rollup/rollup-darwin-arm64': 4.40.0
|
||||||
'@rollup/rollup-darwin-x64': 4.39.0
|
'@rollup/rollup-darwin-x64': 4.40.0
|
||||||
'@rollup/rollup-freebsd-arm64': 4.39.0
|
'@rollup/rollup-freebsd-arm64': 4.40.0
|
||||||
'@rollup/rollup-freebsd-x64': 4.39.0
|
'@rollup/rollup-freebsd-x64': 4.40.0
|
||||||
'@rollup/rollup-linux-arm-gnueabihf': 4.39.0
|
'@rollup/rollup-linux-arm-gnueabihf': 4.40.0
|
||||||
'@rollup/rollup-linux-arm-musleabihf': 4.39.0
|
'@rollup/rollup-linux-arm-musleabihf': 4.40.0
|
||||||
'@rollup/rollup-linux-arm64-gnu': 4.39.0
|
'@rollup/rollup-linux-arm64-gnu': 4.40.0
|
||||||
'@rollup/rollup-linux-arm64-musl': 4.39.0
|
'@rollup/rollup-linux-arm64-musl': 4.40.0
|
||||||
'@rollup/rollup-linux-loongarch64-gnu': 4.39.0
|
'@rollup/rollup-linux-loongarch64-gnu': 4.40.0
|
||||||
'@rollup/rollup-linux-powerpc64le-gnu': 4.39.0
|
'@rollup/rollup-linux-powerpc64le-gnu': 4.40.0
|
||||||
'@rollup/rollup-linux-riscv64-gnu': 4.39.0
|
'@rollup/rollup-linux-riscv64-gnu': 4.40.0
|
||||||
'@rollup/rollup-linux-riscv64-musl': 4.39.0
|
'@rollup/rollup-linux-riscv64-musl': 4.40.0
|
||||||
'@rollup/rollup-linux-s390x-gnu': 4.39.0
|
'@rollup/rollup-linux-s390x-gnu': 4.40.0
|
||||||
'@rollup/rollup-linux-x64-gnu': 4.39.0
|
'@rollup/rollup-linux-x64-gnu': 4.40.0
|
||||||
'@rollup/rollup-linux-x64-musl': 4.39.0
|
'@rollup/rollup-linux-x64-musl': 4.40.0
|
||||||
'@rollup/rollup-win32-arm64-msvc': 4.39.0
|
'@rollup/rollup-win32-arm64-msvc': 4.40.0
|
||||||
'@rollup/rollup-win32-ia32-msvc': 4.39.0
|
'@rollup/rollup-win32-ia32-msvc': 4.40.0
|
||||||
'@rollup/rollup-win32-x64-msvc': 4.39.0
|
'@rollup/rollup-win32-x64-msvc': 4.40.0
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
|
|
||||||
rope-sequence@1.3.2: {}
|
rope-sequence@1.3.2: {}
|
||||||
@@ -10378,7 +10378,7 @@ snapshots:
|
|||||||
debug: 4.4.0
|
debug: 4.4.0
|
||||||
pathe: 1.1.2
|
pathe: 1.1.2
|
||||||
picocolors: 1.1.1
|
picocolors: 1.1.1
|
||||||
vite: 5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)
|
vite: 5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/node'
|
- '@types/node'
|
||||||
- less
|
- less
|
||||||
@@ -10390,19 +10390,19 @@ snapshots:
|
|||||||
- supports-color
|
- supports-color
|
||||||
- terser
|
- terser
|
||||||
|
|
||||||
vite-plugin-ruby@5.0.0(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)):
|
vite-plugin-ruby@5.0.0(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 4.3.5
|
debug: 4.3.5
|
||||||
fast-glob: 3.3.2
|
fast-glob: 3.3.2
|
||||||
vite: 5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)
|
vite: 5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0):
|
vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild: 0.21.5
|
esbuild: 0.21.5
|
||||||
postcss: 8.5.3
|
postcss: 8.5.3
|
||||||
rollup: 4.39.0
|
rollup: 4.40.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 22.7.0
|
'@types/node': 22.7.0
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
@@ -10412,7 +10412,7 @@ snapshots:
|
|||||||
vitest@3.0.5(@types/node@22.7.0)(jsdom@24.1.3)(sass@1.79.3)(terser@5.33.0):
|
vitest@3.0.5(@types/node@22.7.0)(jsdom@24.1.3)(sass@1.79.3)(terser@5.33.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitest/expect': 3.0.5
|
'@vitest/expect': 3.0.5
|
||||||
'@vitest/mocker': 3.0.5(vite@5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
'@vitest/mocker': 3.0.5(vite@5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0))
|
||||||
'@vitest/pretty-format': 3.0.5
|
'@vitest/pretty-format': 3.0.5
|
||||||
'@vitest/runner': 3.0.5
|
'@vitest/runner': 3.0.5
|
||||||
'@vitest/snapshot': 3.0.5
|
'@vitest/snapshot': 3.0.5
|
||||||
@@ -10428,7 +10428,7 @@ snapshots:
|
|||||||
tinyexec: 0.3.2
|
tinyexec: 0.3.2
|
||||||
tinypool: 1.0.2
|
tinypool: 1.0.2
|
||||||
tinyrainbow: 2.0.0
|
tinyrainbow: 2.0.0
|
||||||
vite: 5.4.17(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)
|
vite: 5.4.18(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)
|
||||||
vite-node: 2.0.1(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)
|
vite-node: 2.0.1(@types/node@22.7.0)(sass@1.79.3)(terser@5.33.0)
|
||||||
why-is-node-running: 2.3.0
|
why-is-node-running: 2.3.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
|
|||||||
Reference in New Issue
Block a user