mirror of
https://github.com/n8n-io/n8n.git
synced 2024-11-14 08:34:07 -08:00
feat: Github star button in-app (#11695)
This commit is contained in:
parent
145d0921b2
commit
0fd684d90c
|
@ -23,6 +23,7 @@ describe('Workflows', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should create multiple new workflows using add workflow button', () => {
|
it('should create multiple new workflows using add workflow button', () => {
|
||||||
|
cy.viewport(1920, 1080);
|
||||||
[...Array(multipleWorkflowsCount).keys()].forEach(() => {
|
[...Array(multipleWorkflowsCount).keys()].forEach(() => {
|
||||||
cy.visit(WorkflowsPage.url);
|
cy.visit(WorkflowsPage.url);
|
||||||
WorkflowsPage.getters.createWorkflowButton().click();
|
WorkflowsPage.getters.createWorkflowButton().click();
|
||||||
|
@ -35,6 +36,7 @@ describe('Workflows', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should search for a workflow', () => {
|
it('should search for a workflow', () => {
|
||||||
|
cy.viewport(1920, 1080);
|
||||||
// One Result
|
// One Result
|
||||||
WorkflowsPage.getters.searchBar().type('Empty State Card Workflow');
|
WorkflowsPage.getters.searchBar().type('Empty State Card Workflow');
|
||||||
WorkflowsPage.getters.workflowCards().should('have.length', 1);
|
WorkflowsPage.getters.workflowCards().should('have.length', 1);
|
||||||
|
@ -60,6 +62,7 @@ describe('Workflows', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should delete all the workflows', () => {
|
it('should delete all the workflows', () => {
|
||||||
|
cy.viewport(1920, 1080);
|
||||||
WorkflowsPage.getters.workflowCards().should('have.length', multipleWorkflowsCount + 1);
|
WorkflowsPage.getters.workflowCards().should('have.length', multipleWorkflowsCount + 1);
|
||||||
|
|
||||||
WorkflowsPage.getters.workflowCards().each(($el) => {
|
WorkflowsPage.getters.workflowCards().each(($el) => {
|
||||||
|
@ -75,6 +78,7 @@ describe('Workflows', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should respect tag querystring filter when listing workflows', () => {
|
it('should respect tag querystring filter when listing workflows', () => {
|
||||||
|
cy.viewport(1920, 1080);
|
||||||
WorkflowsPage.getters.newWorkflowButtonCard().click();
|
WorkflowsPage.getters.newWorkflowButtonCard().click();
|
||||||
|
|
||||||
cy.createFixtureWorkflow('Test_workflow_2.json', getUniqueWorkflowName('My New Workflow'));
|
cy.createFixtureWorkflow('Test_workflow_2.json', getUniqueWorkflowName('My New Workflow'));
|
||||||
|
|
|
@ -53,6 +53,7 @@ describe('Workflow tags', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should detach a tag inline by clicking on X on tag pill', () => {
|
it('should detach a tag inline by clicking on X on tag pill', () => {
|
||||||
|
cy.viewport(1920, 1080);
|
||||||
wf.getters.createTagButton().click();
|
wf.getters.createTagButton().click();
|
||||||
wf.actions.addTags(TEST_TAGS);
|
wf.actions.addTags(TEST_TAGS);
|
||||||
wf.getters.nthTagPill(1).click();
|
wf.getters.nthTagPill(1).click();
|
||||||
|
@ -73,6 +74,7 @@ describe('Workflow tags', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should not show non existing tag as a selectable option', () => {
|
it('should not show non existing tag as a selectable option', () => {
|
||||||
|
cy.viewport(1920, 1080);
|
||||||
const NON_EXISTING_TAG = 'My Test Tag';
|
const NON_EXISTING_TAG = 'My Test Tag';
|
||||||
|
|
||||||
wf.getters.createTagButton().click();
|
wf.getters.createTagButton().click();
|
||||||
|
|
|
@ -514,6 +514,7 @@ describe('Execution', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should send proper payload for node rerun', () => {
|
it('should send proper payload for node rerun', () => {
|
||||||
|
cy.viewport(1920, 1080);
|
||||||
cy.createFixtureWorkflow('Multiple_trigger_node_rerun.json', 'Multiple trigger node rerun');
|
cy.createFixtureWorkflow('Multiple_trigger_node_rerun.json', 'Multiple trigger node rerun');
|
||||||
|
|
||||||
workflowPage.getters.zoomToFitButton().click();
|
workflowPage.getters.zoomToFitButton().click();
|
||||||
|
|
|
@ -101,6 +101,7 @@ describe('Workflow Executions', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should show workflow data in executions tab after hard reload and modify name and tags', () => {
|
it('should show workflow data in executions tab after hard reload and modify name and tags', () => {
|
||||||
|
cy.viewport(1920, 1080);
|
||||||
executionsTab.actions.switchToExecutionsTab();
|
executionsTab.actions.switchToExecutionsTab();
|
||||||
checkMainHeaderELements();
|
checkMainHeaderELements();
|
||||||
workflowPage.getters.saveButton().find('button').should('not.exist');
|
workflowPage.getters.saveButton().find('button').should('not.exist');
|
||||||
|
|
|
@ -182,6 +182,7 @@ describe('Template credentials setup', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should fill credentials from workflow editor', () => {
|
it('should fill credentials from workflow editor', () => {
|
||||||
|
cy.viewport(1920, 1080);
|
||||||
templateCredentialsSetupPage.visitTemplateCredentialSetupPage(testTemplate.id);
|
templateCredentialsSetupPage.visitTemplateCredentialSetupPage(testTemplate.id);
|
||||||
templateCredentialsSetupPage.getters.skipLink().click();
|
templateCredentialsSetupPage.getters.skipLink().click();
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,7 @@ describe('AI Assistant::enabled', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('renders placeholder UI', () => {
|
it('renders placeholder UI', () => {
|
||||||
|
cy.viewport(1920, 1080);
|
||||||
aiAssistant.getters.askAssistantFloatingButton().should('be.visible');
|
aiAssistant.getters.askAssistantFloatingButton().should('be.visible');
|
||||||
aiAssistant.getters.askAssistantFloatingButton().click();
|
aiAssistant.getters.askAssistantFloatingButton().click();
|
||||||
aiAssistant.getters.askAssistantChat().should('be.visible');
|
aiAssistant.getters.askAssistantChat().should('be.visible');
|
||||||
|
|
|
@ -66,6 +66,7 @@ describe('NDV', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should disconect Switch outputs if rules order was changed', () => {
|
it('should disconect Switch outputs if rules order was changed', () => {
|
||||||
|
cy.viewport(1920, 1080);
|
||||||
cy.createFixtureWorkflow('NDV-test-switch_reorder.json', 'NDV test switch reorder');
|
cy.createFixtureWorkflow('NDV-test-switch_reorder.json', 'NDV test switch reorder');
|
||||||
workflowPage.actions.zoomToFit();
|
workflowPage.actions.zoomToFit();
|
||||||
|
|
||||||
|
@ -232,6 +233,7 @@ describe('NDV', () => {
|
||||||
ndv.getters.outputPanel().find('[class*=_pagination]').should('exist');
|
ndv.getters.outputPanel().find('[class*=_pagination]').should('exist');
|
||||||
});
|
});
|
||||||
it('should display large schema', () => {
|
it('should display large schema', () => {
|
||||||
|
cy.viewport(1920, 1080);
|
||||||
cy.createFixtureWorkflow(
|
cy.createFixtureWorkflow(
|
||||||
'Test_workflow_schema_test_pinned_data.json',
|
'Test_workflow_schema_test_pinned_data.json',
|
||||||
'NDV test schema view 2',
|
'NDV test schema view 2',
|
||||||
|
@ -718,6 +720,7 @@ describe('NDV', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Should open appropriate node creator after clicking on connection hint link', () => {
|
it('Should open appropriate node creator after clicking on connection hint link', () => {
|
||||||
|
cy.viewport(1920, 1080);
|
||||||
const nodeCreator = new NodeCreator();
|
const nodeCreator = new NodeCreator();
|
||||||
const hintMapper = {
|
const hintMapper = {
|
||||||
Memory: 'AI Nodes',
|
Memory: 'AI Nodes',
|
||||||
|
|
|
@ -74,6 +74,7 @@
|
||||||
"vue": "catalog:frontend",
|
"vue": "catalog:frontend",
|
||||||
"vue-agile": "^2.0.0",
|
"vue-agile": "^2.0.0",
|
||||||
"vue-chartjs": "^5.2.0",
|
"vue-chartjs": "^5.2.0",
|
||||||
|
"vue-github-button": "^3.1.3",
|
||||||
"vue-i18n": "^9.2.2",
|
"vue-i18n": "^9.2.2",
|
||||||
"vue-json-pretty": "2.2.4",
|
"vue-json-pretty": "2.2.4",
|
||||||
"vue-markdown-render": "catalog:frontend",
|
"vue-markdown-render": "catalog:frontend",
|
||||||
|
|
|
@ -18,6 +18,8 @@ import { useWorkflowsStore } from '@/stores/workflows.store';
|
||||||
import { useExecutionsStore } from '@/stores/executions.store';
|
import { useExecutionsStore } from '@/stores/executions.store';
|
||||||
import { usePushConnection } from '@/composables/usePushConnection';
|
import { usePushConnection } from '@/composables/usePushConnection';
|
||||||
|
|
||||||
|
import GithubButton from 'vue-github-button';
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const locale = useI18n();
|
const locale = useI18n();
|
||||||
|
@ -161,7 +163,7 @@ async function navigateToExecutionsView(openInNewTab: boolean) {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div class="container">
|
||||||
<div :class="{ 'main-header': true, expanded: !uiStore.sidebarMenuCollapsed }">
|
<div :class="{ 'main-header': true, expanded: !uiStore.sidebarMenuCollapsed }">
|
||||||
<div v-show="!hideMenuBar" class="top-menu">
|
<div v-show="!hideMenuBar" class="top-menu">
|
||||||
<WorkflowDetails
|
<WorkflowDetails
|
||||||
|
@ -174,18 +176,35 @@ async function navigateToExecutionsView(openInNewTab: boolean) {
|
||||||
:active="workflow.active"
|
:active="workflow.active"
|
||||||
:read-only="readOnly"
|
:read-only="readOnly"
|
||||||
/>
|
/>
|
||||||
<TabBar
|
|
||||||
v-if="onWorkflowPage"
|
|
||||||
:items="tabBarItems"
|
|
||||||
:model-value="activeHeaderTab"
|
|
||||||
@update:model-value="onTabSelected"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
|
<TabBar
|
||||||
|
v-if="onWorkflowPage"
|
||||||
|
:items="tabBarItems"
|
||||||
|
:model-value="activeHeaderTab"
|
||||||
|
@update:model-value="onTabSelected"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="github-button">
|
||||||
|
<GithubButton
|
||||||
|
href="https://github.com/n8n-io/n8n"
|
||||||
|
:data-color-scheme="uiStore.appliedTheme"
|
||||||
|
data-size="large"
|
||||||
|
data-show-count="true"
|
||||||
|
aria-label="Star n8n-io/n8n on GitHub"
|
||||||
|
>Star</GithubButton
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
.container {
|
||||||
|
display: flex;
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
.main-header {
|
.main-header {
|
||||||
background-color: var(--color-background-xlight);
|
background-color: var(--color-background-xlight);
|
||||||
height: $header-height;
|
height: $header-height;
|
||||||
|
@ -201,6 +220,18 @@ async function navigateToExecutionsView(openInNewTab: boolean) {
|
||||||
font-size: 0.9em;
|
font-size: 0.9em;
|
||||||
height: $header-height;
|
height: $header-height;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
padding: 0 var(--spacing-m) 0 var(--spacing-xs);
|
padding: 0 var(--spacing-m) 0 var(--spacing-m);
|
||||||
|
}
|
||||||
|
|
||||||
|
.github-button {
|
||||||
|
display: flex;
|
||||||
|
position: relative;
|
||||||
|
align-items: center;
|
||||||
|
height: $header-height;
|
||||||
|
padding-left: var(--spacing-m);
|
||||||
|
padding-right: var(--spacing-m);
|
||||||
|
background-color: var(--color-background-xlight);
|
||||||
|
border-bottom: var(--border-width-base) var(--border-style-base) var(--color-foreground-base);
|
||||||
|
border-left: var(--border-width-base) var(--border-style-base) var(--color-foreground-base);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
158
pnpm-lock.yaml
158
pnpm-lock.yaml
|
@ -265,7 +265,7 @@ importers:
|
||||||
version: 4.0.7
|
version: 4.0.7
|
||||||
axios:
|
axios:
|
||||||
specifier: 'catalog:'
|
specifier: 'catalog:'
|
||||||
version: 1.7.4
|
version: 1.7.4(debug@4.3.7)
|
||||||
dotenv:
|
dotenv:
|
||||||
specifier: 8.6.0
|
specifier: 8.6.0
|
||||||
version: 8.6.0
|
version: 8.6.0
|
||||||
|
@ -333,7 +333,7 @@ importers:
|
||||||
dependencies:
|
dependencies:
|
||||||
axios:
|
axios:
|
||||||
specifier: 'catalog:'
|
specifier: 'catalog:'
|
||||||
version: 1.7.4
|
version: 1.7.4(debug@4.3.7)
|
||||||
|
|
||||||
packages/@n8n/codemirror-lang:
|
packages/@n8n/codemirror-lang:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -407,7 +407,7 @@ importers:
|
||||||
version: 3.666.0(@aws-sdk/client-sts@3.666.0)
|
version: 3.666.0(@aws-sdk/client-sts@3.666.0)
|
||||||
'@getzep/zep-cloud':
|
'@getzep/zep-cloud':
|
||||||
specifier: 1.0.12
|
specifier: 1.0.12
|
||||||
version: 1.0.12(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(langchain@0.3.5(7umjwzmwnymi4lyinuvazmp6ki))
|
version: 1.0.12(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(langchain@0.3.5(4ubssgvn2k3t3hxnzmxuoc2aja))
|
||||||
'@getzep/zep-js':
|
'@getzep/zep-js':
|
||||||
specifier: 0.9.0
|
specifier: 0.9.0
|
||||||
version: 0.9.0
|
version: 0.9.0
|
||||||
|
@ -434,7 +434,7 @@ importers:
|
||||||
version: 0.3.1(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)
|
version: 0.3.1(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)
|
||||||
'@langchain/community':
|
'@langchain/community':
|
||||||
specifier: 0.3.11
|
specifier: 0.3.11
|
||||||
version: 0.3.11(simkpjwqw7qnwbripe37u5qu7a)
|
version: 0.3.11(tzffvezibmkr4px5bpuitcp7xu)
|
||||||
'@langchain/core':
|
'@langchain/core':
|
||||||
specifier: 'catalog:'
|
specifier: 'catalog:'
|
||||||
version: 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))
|
version: 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))
|
||||||
|
@ -521,7 +521,7 @@ importers:
|
||||||
version: 23.0.1
|
version: 23.0.1
|
||||||
langchain:
|
langchain:
|
||||||
specifier: 0.3.5
|
specifier: 0.3.5
|
||||||
version: 0.3.5(7umjwzmwnymi4lyinuvazmp6ki)
|
version: 0.3.5(4ubssgvn2k3t3hxnzmxuoc2aja)
|
||||||
lodash:
|
lodash:
|
||||||
specifier: 'catalog:'
|
specifier: 'catalog:'
|
||||||
version: 4.17.21
|
version: 4.17.21
|
||||||
|
@ -774,7 +774,7 @@ importers:
|
||||||
version: 1.11.0
|
version: 1.11.0
|
||||||
axios:
|
axios:
|
||||||
specifier: 'catalog:'
|
specifier: 'catalog:'
|
||||||
version: 1.7.4
|
version: 1.7.4(debug@4.3.7)
|
||||||
bcryptjs:
|
bcryptjs:
|
||||||
specifier: 2.4.3
|
specifier: 2.4.3
|
||||||
version: 2.4.3
|
version: 2.4.3
|
||||||
|
@ -1093,7 +1093,7 @@ importers:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@langchain/core':
|
'@langchain/core':
|
||||||
specifier: 'catalog:'
|
specifier: 'catalog:'
|
||||||
version: 0.3.15(openai@4.69.0(zod@3.23.8))
|
version: 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))
|
||||||
'@n8n/client-oauth2':
|
'@n8n/client-oauth2':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../@n8n/client-oauth2
|
version: link:../@n8n/client-oauth2
|
||||||
|
@ -1105,7 +1105,7 @@ importers:
|
||||||
version: 1.11.0
|
version: 1.11.0
|
||||||
axios:
|
axios:
|
||||||
specifier: 'catalog:'
|
specifier: 'catalog:'
|
||||||
version: 1.7.4
|
version: 1.7.4(debug@4.3.7)
|
||||||
concat-stream:
|
concat-stream:
|
||||||
specifier: 2.0.0
|
specifier: 2.0.0
|
||||||
version: 2.0.0
|
version: 2.0.0
|
||||||
|
@ -1395,7 +1395,7 @@ importers:
|
||||||
version: 10.11.0(vue@3.5.11(typescript@5.6.2))
|
version: 10.11.0(vue@3.5.11(typescript@5.6.2))
|
||||||
axios:
|
axios:
|
||||||
specifier: 'catalog:'
|
specifier: 'catalog:'
|
||||||
version: 1.7.4
|
version: 1.7.4(debug@4.3.7)
|
||||||
bowser:
|
bowser:
|
||||||
specifier: 2.11.0
|
specifier: 2.11.0
|
||||||
version: 2.11.0
|
version: 2.11.0
|
||||||
|
@ -1477,6 +1477,9 @@ importers:
|
||||||
vue-chartjs:
|
vue-chartjs:
|
||||||
specifier: ^5.2.0
|
specifier: ^5.2.0
|
||||||
version: 5.2.0(chart.js@4.4.0)(vue@3.5.11(typescript@5.6.2))
|
version: 5.2.0(chart.js@4.4.0)(vue@3.5.11(typescript@5.6.2))
|
||||||
|
vue-github-button:
|
||||||
|
specifier: ^3.1.3
|
||||||
|
version: 3.1.3
|
||||||
vue-i18n:
|
vue-i18n:
|
||||||
specifier: ^9.2.2
|
specifier: ^9.2.2
|
||||||
version: 9.2.2(vue@3.5.11(typescript@5.6.2))
|
version: 9.2.2(vue@3.5.11(typescript@5.6.2))
|
||||||
|
@ -1872,7 +1875,7 @@ importers:
|
||||||
version: 0.15.2
|
version: 0.15.2
|
||||||
axios:
|
axios:
|
||||||
specifier: 'catalog:'
|
specifier: 'catalog:'
|
||||||
version: 1.7.4
|
version: 1.7.4(debug@4.3.7)
|
||||||
callsites:
|
callsites:
|
||||||
specifier: 3.1.0
|
specifier: 3.1.0
|
||||||
version: 3.1.0
|
version: 3.1.0
|
||||||
|
@ -1918,7 +1921,7 @@ importers:
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@langchain/core':
|
'@langchain/core':
|
||||||
specifier: 'catalog:'
|
specifier: 'catalog:'
|
||||||
version: 0.3.15(openai@4.69.0)
|
version: 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))
|
||||||
'@types/deep-equal':
|
'@types/deep-equal':
|
||||||
specifier: ^1.0.1
|
specifier: ^1.0.1
|
||||||
version: 1.0.1
|
version: 1.0.1
|
||||||
|
@ -5392,6 +5395,7 @@ packages:
|
||||||
'@xmldom/xmldom@0.8.6':
|
'@xmldom/xmldom@0.8.6':
|
||||||
resolution: {integrity: sha512-uRjjusqpoqfmRkTaNuLJ2VohVr67Q5YwDATW3VU7PfzTj6IRaihGrYI7zckGZjxQPBIp63nfvJbM+Yu5ICh0Bg==}
|
resolution: {integrity: sha512-uRjjusqpoqfmRkTaNuLJ2VohVr67Q5YwDATW3VU7PfzTj6IRaihGrYI7zckGZjxQPBIp63nfvJbM+Yu5ICh0Bg==}
|
||||||
engines: {node: '>=10.0.0'}
|
engines: {node: '>=10.0.0'}
|
||||||
|
deprecated: this version has critical issues, please update to the latest version
|
||||||
|
|
||||||
a-sync-waterfall@1.0.1:
|
a-sync-waterfall@1.0.1:
|
||||||
resolution: {integrity: sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==}
|
resolution: {integrity: sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==}
|
||||||
|
@ -7632,6 +7636,9 @@ packages:
|
||||||
getpass@0.1.7:
|
getpass@0.1.7:
|
||||||
resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==}
|
resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==}
|
||||||
|
|
||||||
|
github-buttons@2.29.1:
|
||||||
|
resolution: {integrity: sha512-TV3YgAKda5hPz75n7QXmGCsSzgVya1vvmBieebg3EB5ScmashTZ0FldViG1aU2d4V5rcAGrtQ7k5uAaCo0A4PA==}
|
||||||
|
|
||||||
github-from-package@0.0.0:
|
github-from-package@0.0.0:
|
||||||
resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
|
resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
|
||||||
|
|
||||||
|
@ -12074,6 +12081,9 @@ packages:
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: '>=6.0.0'
|
eslint: '>=6.0.0'
|
||||||
|
|
||||||
|
vue-github-button@3.1.3:
|
||||||
|
resolution: {integrity: sha512-ZdOnUuYJL/wUsxISsC96TARzCdf1twaWooZoI14+g4RHsJltPY+Agw6Ox6pjuMqMX0uhSK1JOMFUFNCQGlcZGA==}
|
||||||
|
|
||||||
vue-i18n@9.2.2:
|
vue-i18n@9.2.2:
|
||||||
resolution: {integrity: sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==}
|
resolution: {integrity: sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==}
|
||||||
engines: {node: '>= 14'}
|
engines: {node: '>= 14'}
|
||||||
|
@ -14066,7 +14076,7 @@ snapshots:
|
||||||
'@gar/promisify@1.1.3':
|
'@gar/promisify@1.1.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@getzep/zep-cloud@1.0.12(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(langchain@0.3.5(7umjwzmwnymi4lyinuvazmp6ki))':
|
'@getzep/zep-cloud@1.0.12(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(langchain@0.3.5(4ubssgvn2k3t3hxnzmxuoc2aja))':
|
||||||
dependencies:
|
dependencies:
|
||||||
form-data: 4.0.0
|
form-data: 4.0.0
|
||||||
node-fetch: 2.7.0(encoding@0.1.13)
|
node-fetch: 2.7.0(encoding@0.1.13)
|
||||||
|
@ -14075,7 +14085,7 @@ snapshots:
|
||||||
zod: 3.23.8
|
zod: 3.23.8
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))
|
'@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))
|
||||||
langchain: 0.3.5(7umjwzmwnymi4lyinuvazmp6ki)
|
langchain: 0.3.5(4ubssgvn2k3t3hxnzmxuoc2aja)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- encoding
|
- encoding
|
||||||
|
|
||||||
|
@ -14542,7 +14552,7 @@ snapshots:
|
||||||
- aws-crt
|
- aws-crt
|
||||||
- encoding
|
- encoding
|
||||||
|
|
||||||
'@langchain/community@0.3.11(simkpjwqw7qnwbripe37u5qu7a)':
|
'@langchain/community@0.3.11(tzffvezibmkr4px5bpuitcp7xu)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@ibm-cloud/watsonx-ai': 1.1.2
|
'@ibm-cloud/watsonx-ai': 1.1.2
|
||||||
'@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))
|
'@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))
|
||||||
|
@ -14552,7 +14562,7 @@ snapshots:
|
||||||
flat: 5.0.2
|
flat: 5.0.2
|
||||||
ibm-cloud-sdk-core: 5.1.0
|
ibm-cloud-sdk-core: 5.1.0
|
||||||
js-yaml: 4.1.0
|
js-yaml: 4.1.0
|
||||||
langchain: 0.3.5(7umjwzmwnymi4lyinuvazmp6ki)
|
langchain: 0.3.5(4ubssgvn2k3t3hxnzmxuoc2aja)
|
||||||
langsmith: 0.2.3(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))
|
langsmith: 0.2.3(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))
|
||||||
uuid: 10.0.0
|
uuid: 10.0.0
|
||||||
zod: 3.23.8
|
zod: 3.23.8
|
||||||
|
@ -14565,7 +14575,7 @@ snapshots:
|
||||||
'@aws-sdk/client-s3': 3.666.0
|
'@aws-sdk/client-s3': 3.666.0
|
||||||
'@aws-sdk/credential-provider-node': 3.666.0(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@aws-sdk/client-sts@3.666.0)
|
'@aws-sdk/credential-provider-node': 3.666.0(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@aws-sdk/client-sts@3.666.0)
|
||||||
'@azure/storage-blob': 12.18.0(encoding@0.1.13)
|
'@azure/storage-blob': 12.18.0(encoding@0.1.13)
|
||||||
'@getzep/zep-cloud': 1.0.12(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(langchain@0.3.5(7umjwzmwnymi4lyinuvazmp6ki))
|
'@getzep/zep-cloud': 1.0.12(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(langchain@0.3.5(4ubssgvn2k3t3hxnzmxuoc2aja))
|
||||||
'@getzep/zep-js': 0.9.0
|
'@getzep/zep-js': 0.9.0
|
||||||
'@google-ai/generativelanguage': 2.6.0(encoding@0.1.13)
|
'@google-ai/generativelanguage': 2.6.0(encoding@0.1.13)
|
||||||
'@google-cloud/storage': 7.12.1(encoding@0.1.13)
|
'@google-cloud/storage': 7.12.1(encoding@0.1.13)
|
||||||
|
@ -14629,38 +14639,6 @@ snapshots:
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- openai
|
- openai
|
||||||
|
|
||||||
'@langchain/core@0.3.15(openai@4.69.0(zod@3.23.8))':
|
|
||||||
dependencies:
|
|
||||||
ansi-styles: 5.2.0
|
|
||||||
camelcase: 6.3.0
|
|
||||||
decamelize: 1.2.0
|
|
||||||
js-tiktoken: 1.0.12
|
|
||||||
langsmith: 0.2.3(openai@4.69.0(zod@3.23.8))
|
|
||||||
mustache: 4.2.0
|
|
||||||
p-queue: 6.6.2
|
|
||||||
p-retry: 4.6.2
|
|
||||||
uuid: 10.0.0
|
|
||||||
zod: 3.23.8
|
|
||||||
zod-to-json-schema: 3.23.3(zod@3.23.8)
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- openai
|
|
||||||
|
|
||||||
'@langchain/core@0.3.15(openai@4.69.0)':
|
|
||||||
dependencies:
|
|
||||||
ansi-styles: 5.2.0
|
|
||||||
camelcase: 6.3.0
|
|
||||||
decamelize: 1.2.0
|
|
||||||
js-tiktoken: 1.0.12
|
|
||||||
langsmith: 0.2.3(openai@4.69.0)
|
|
||||||
mustache: 4.2.0
|
|
||||||
p-queue: 6.6.2
|
|
||||||
p-retry: 4.6.2
|
|
||||||
uuid: 10.0.0
|
|
||||||
zod: 3.23.8
|
|
||||||
zod-to-json-schema: 3.23.3(zod@3.23.8)
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- openai
|
|
||||||
|
|
||||||
'@langchain/google-common@0.1.1(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8)':
|
'@langchain/google-common@0.1.1(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))
|
'@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))
|
||||||
|
@ -15278,7 +15256,7 @@ snapshots:
|
||||||
|
|
||||||
'@rudderstack/rudder-sdk-node@2.0.9(tslib@2.6.2)':
|
'@rudderstack/rudder-sdk-node@2.0.9(tslib@2.6.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
axios: 1.7.4
|
axios: 1.7.4(debug@4.3.7)
|
||||||
axios-retry: 3.7.0
|
axios-retry: 3.7.0
|
||||||
component-type: 1.2.1
|
component-type: 1.2.1
|
||||||
join-component: 1.1.0
|
join-component: 1.1.0
|
||||||
|
@ -17534,23 +17512,7 @@ snapshots:
|
||||||
'@babel/runtime': 7.24.7
|
'@babel/runtime': 7.24.7
|
||||||
is-retry-allowed: 2.2.0
|
is-retry-allowed: 2.2.0
|
||||||
|
|
||||||
axios@1.7.4:
|
|
||||||
dependencies:
|
|
||||||
follow-redirects: 1.15.6(debug@4.3.6)
|
|
||||||
form-data: 4.0.0
|
|
||||||
proxy-from-env: 1.1.0
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- debug
|
|
||||||
|
|
||||||
axios@1.7.4(debug@4.3.7):
|
axios@1.7.4(debug@4.3.7):
|
||||||
dependencies:
|
|
||||||
follow-redirects: 1.15.6(debug@4.3.7)
|
|
||||||
form-data: 4.0.0
|
|
||||||
proxy-from-env: 1.1.0
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- debug
|
|
||||||
|
|
||||||
axios@1.7.7:
|
|
||||||
dependencies:
|
dependencies:
|
||||||
follow-redirects: 1.15.6(debug@4.3.6)
|
follow-redirects: 1.15.6(debug@4.3.6)
|
||||||
form-data: 4.0.0
|
form-data: 4.0.0
|
||||||
|
@ -19226,7 +19188,7 @@ snapshots:
|
||||||
|
|
||||||
eslint-import-resolver-node@0.3.9:
|
eslint-import-resolver-node@0.3.9:
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 3.2.7(supports-color@5.5.0)
|
debug: 3.2.7(supports-color@8.1.1)
|
||||||
is-core-module: 2.13.1
|
is-core-module: 2.13.1
|
||||||
resolve: 1.22.8
|
resolve: 1.22.8
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
@ -19251,7 +19213,7 @@ snapshots:
|
||||||
|
|
||||||
eslint-module-utils@2.8.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0):
|
eslint-module-utils@2.8.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 3.2.7(supports-color@5.5.0)
|
debug: 3.2.7(supports-color@8.1.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.6.2)
|
'@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.6.2)
|
||||||
eslint: 8.57.0
|
eslint: 8.57.0
|
||||||
|
@ -19271,7 +19233,7 @@ snapshots:
|
||||||
array.prototype.findlastindex: 1.2.3
|
array.prototype.findlastindex: 1.2.3
|
||||||
array.prototype.flat: 1.3.2
|
array.prototype.flat: 1.3.2
|
||||||
array.prototype.flatmap: 1.3.2
|
array.prototype.flatmap: 1.3.2
|
||||||
debug: 3.2.7(supports-color@5.5.0)
|
debug: 3.2.7(supports-color@8.1.1)
|
||||||
doctrine: 2.1.0
|
doctrine: 2.1.0
|
||||||
eslint: 8.57.0
|
eslint: 8.57.0
|
||||||
eslint-import-resolver-node: 0.3.9
|
eslint-import-resolver-node: 0.3.9
|
||||||
|
@ -19983,6 +19945,8 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
assert-plus: 1.0.0
|
assert-plus: 1.0.0
|
||||||
|
|
||||||
|
github-buttons@2.29.1: {}
|
||||||
|
|
||||||
github-from-package@0.0.0: {}
|
github-from-package@0.0.0: {}
|
||||||
|
|
||||||
github-slugger@2.0.0: {}
|
github-slugger@2.0.0: {}
|
||||||
|
@ -20062,7 +20026,7 @@ snapshots:
|
||||||
array-parallel: 0.1.3
|
array-parallel: 0.1.3
|
||||||
array-series: 0.1.5
|
array-series: 0.1.5
|
||||||
cross-spawn: 4.0.2
|
cross-spawn: 4.0.2
|
||||||
debug: 3.2.7(supports-color@5.5.0)
|
debug: 3.2.7(supports-color@8.1.1)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
@ -20448,7 +20412,7 @@ snapshots:
|
||||||
|
|
||||||
infisical-node@1.3.0:
|
infisical-node@1.3.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
axios: 1.7.7
|
axios: 1.7.7(debug@4.3.6)
|
||||||
dotenv: 16.3.1
|
dotenv: 16.3.1
|
||||||
tweetnacl: 1.0.3
|
tweetnacl: 1.0.3
|
||||||
tweetnacl-util: 0.15.1
|
tweetnacl-util: 0.15.1
|
||||||
|
@ -21378,7 +21342,7 @@ snapshots:
|
||||||
|
|
||||||
kuler@2.0.0: {}
|
kuler@2.0.0: {}
|
||||||
|
|
||||||
langchain@0.3.5(7umjwzmwnymi4lyinuvazmp6ki):
|
langchain@0.3.5(4ubssgvn2k3t3hxnzmxuoc2aja):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))
|
'@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))
|
||||||
'@langchain/openai': 0.3.11(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)
|
'@langchain/openai': 0.3.11(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)
|
||||||
|
@ -21402,7 +21366,7 @@ snapshots:
|
||||||
'@langchain/groq': 0.1.2(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)
|
'@langchain/groq': 0.1.2(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)
|
||||||
'@langchain/mistralai': 0.1.1(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)
|
'@langchain/mistralai': 0.1.1(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)
|
||||||
'@langchain/ollama': 0.1.1(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))
|
'@langchain/ollama': 0.1.1(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))
|
||||||
axios: 1.7.4
|
axios: 1.7.4(debug@4.3.7)
|
||||||
cheerio: 1.0.0
|
cheerio: 1.0.0
|
||||||
handlebars: 4.7.8
|
handlebars: 4.7.8
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
@ -21421,28 +21385,6 @@ snapshots:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
openai: 4.69.0(encoding@0.1.13)(zod@3.23.8)
|
openai: 4.69.0(encoding@0.1.13)(zod@3.23.8)
|
||||||
|
|
||||||
langsmith@0.2.3(openai@4.69.0(zod@3.23.8)):
|
|
||||||
dependencies:
|
|
||||||
'@types/uuid': 10.0.0
|
|
||||||
commander: 10.0.1
|
|
||||||
p-queue: 6.6.2
|
|
||||||
p-retry: 4.6.2
|
|
||||||
semver: 7.6.0
|
|
||||||
uuid: 10.0.0
|
|
||||||
optionalDependencies:
|
|
||||||
openai: 4.69.0(zod@3.23.8)
|
|
||||||
|
|
||||||
langsmith@0.2.3(openai@4.69.0):
|
|
||||||
dependencies:
|
|
||||||
'@types/uuid': 10.0.0
|
|
||||||
commander: 10.0.1
|
|
||||||
p-queue: 6.6.2
|
|
||||||
p-retry: 4.6.2
|
|
||||||
semver: 7.6.0
|
|
||||||
uuid: 10.0.0
|
|
||||||
optionalDependencies:
|
|
||||||
openai: 4.69.0(zod@3.23.8)
|
|
||||||
|
|
||||||
lazy-ass@1.6.0: {}
|
lazy-ass@1.6.0: {}
|
||||||
|
|
||||||
ldapts@4.2.6:
|
ldapts@4.2.6:
|
||||||
|
@ -22777,22 +22719,6 @@ snapshots:
|
||||||
- encoding
|
- encoding
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
openai@4.69.0(zod@3.23.8):
|
|
||||||
dependencies:
|
|
||||||
'@types/node': 18.16.16
|
|
||||||
'@types/node-fetch': 2.6.4
|
|
||||||
abort-controller: 3.0.0
|
|
||||||
agentkeepalive: 4.2.1
|
|
||||||
form-data-encoder: 1.7.2
|
|
||||||
formdata-node: 4.4.1
|
|
||||||
node-fetch: 2.7.0(encoding@0.1.13)
|
|
||||||
optionalDependencies:
|
|
||||||
zod: 3.23.8
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- encoding
|
|
||||||
- supports-color
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
openapi-sampler@1.5.1:
|
openapi-sampler@1.5.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/json-schema': 7.0.15
|
'@types/json-schema': 7.0.15
|
||||||
|
@ -22973,7 +22899,7 @@ snapshots:
|
||||||
|
|
||||||
pdf-parse@1.1.1:
|
pdf-parse@1.1.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 3.2.7(supports-color@5.5.0)
|
debug: 3.2.7(supports-color@8.1.1)
|
||||||
node-ensure: 0.0.0
|
node-ensure: 0.0.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
@ -23175,7 +23101,7 @@ snapshots:
|
||||||
|
|
||||||
posthog-node@3.2.1:
|
posthog-node@3.2.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
axios: 1.7.7
|
axios: 1.7.7(debug@4.3.6)
|
||||||
rusha: 0.8.14
|
rusha: 0.8.14
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- debug
|
- debug
|
||||||
|
@ -23804,7 +23730,7 @@ snapshots:
|
||||||
|
|
||||||
rhea@1.0.24:
|
rhea@1.0.24:
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 3.2.7(supports-color@5.5.0)
|
debug: 3.2.7(supports-color@8.1.1)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
@ -24180,7 +24106,7 @@ snapshots:
|
||||||
asn1.js: 5.4.1
|
asn1.js: 5.4.1
|
||||||
asn1.js-rfc2560: 5.0.1(asn1.js@5.4.1)
|
asn1.js-rfc2560: 5.0.1(asn1.js@5.4.1)
|
||||||
asn1.js-rfc5280: 3.0.0
|
asn1.js-rfc5280: 3.0.0
|
||||||
axios: 1.7.7
|
axios: 1.7.7(debug@4.3.6)
|
||||||
big-integer: 1.6.51
|
big-integer: 1.6.51
|
||||||
bignumber.js: 9.1.2
|
bignumber.js: 9.1.2
|
||||||
binascii: 0.0.2
|
binascii: 0.0.2
|
||||||
|
@ -25420,6 +25346,10 @@ snapshots:
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
vue-github-button@3.1.3:
|
||||||
|
dependencies:
|
||||||
|
github-buttons: 2.29.1
|
||||||
|
|
||||||
vue-i18n@9.2.2(vue@3.5.11(typescript@5.6.2)):
|
vue-i18n@9.2.2(vue@3.5.11(typescript@5.6.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@intlify/core-base': 9.2.2
|
'@intlify/core-base': 9.2.2
|
||||||
|
|
Loading…
Reference in a new issue