@n8n/db 1.25.1 → 1.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build.tsbuildinfo +1 -1
- package/dist/connection/db-connection-monitor.d.ts +25 -0
- package/dist/connection/db-connection-monitor.js +166 -0
- package/dist/connection/db-connection-monitor.js.map +1 -0
- package/dist/connection/db-connection-options.js +7 -0
- package/dist/connection/db-connection-options.js.map +1 -1
- package/dist/connection/db-connection.d.ts +1 -4
- package/dist/connection/db-connection.js +8 -45
- package/dist/connection/db-connection.js.map +1 -1
- package/dist/entities/credentials-entity.d.ts +1 -1
- package/dist/entities/index.d.ts +2 -3
- package/dist/entities/index.js +2 -1
- package/dist/entities/index.js.map +1 -1
- package/dist/entities/types-db.d.ts +23 -2
- package/dist/entities/types-db.js +22 -1
- package/dist/entities/types-db.js.map +1 -1
- package/dist/entities/user.d.ts +1 -1
- package/dist/entities/workflow-entity.js.map +1 -1
- package/dist/entities/workflow-publication-outbox.d.ts +8 -1
- package/dist/entities/workflow-publication-outbox.js +10 -3
- package/dist/entities/workflow-publication-outbox.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/migrations/common/1690000000030-RemoveResetPasswordColumns.js +4 -5
- package/dist/migrations/common/1690000000030-RemoveResetPasswordColumns.js.map +1 -1
- package/dist/migrations/common/1690000000040-AddMfaColumns.js +4 -2
- package/dist/migrations/common/1690000000040-AddMfaColumns.js.map +1 -1
- package/dist/migrations/common/1693491613982-ExecutionSoftDelete.js +4 -2
- package/dist/migrations/common/1693491613982-ExecutionSoftDelete.js.map +1 -1
- package/dist/migrations/common/1693554410387-DisallowOrphanExecutions.js +2 -2
- package/dist/migrations/common/1693554410387-DisallowOrphanExecutions.js.map +1 -1
- package/dist/migrations/common/1695128658538-AddWorkflowMetadata.js +2 -2
- package/dist/migrations/common/1695128658538-AddWorkflowMetadata.js.map +1 -1
- package/dist/migrations/common/1695829275184-ModifyWorkflowHistoryNodesAndConnections.js +4 -4
- package/dist/migrations/common/1695829275184-ModifyWorkflowHistoryNodesAndConnections.js.map +1 -1
- package/dist/migrations/common/1705429061930-DropRoleMapping.js +6 -6
- package/dist/migrations/common/1705429061930-DropRoleMapping.js.map +1 -1
- package/dist/migrations/common/1712044305787-RemoveNodesAccess.js +1 -1
- package/dist/migrations/common/1712044305787-RemoveNodesAccess.js.map +1 -1
- package/dist/migrations/common/1714133768519-CreateProject.js +2 -2
- package/dist/migrations/common/1714133768519-CreateProject.js.map +1 -1
- package/dist/migrations/common/1714133768521-MakeExecutionStatusNonNullable.js +3 -1
- package/dist/migrations/common/1714133768521-MakeExecutionStatusNonNullable.js.map +1 -1
- package/dist/migrations/common/1724951148974-AddApiKeysTable.js +1 -1
- package/dist/migrations/common/1724951148974-AddApiKeysTable.js.map +1 -1
- package/dist/migrations/common/1727427440136-SeparateExecutionCreationFromStart.js +4 -6
- package/dist/migrations/common/1727427440136-SeparateExecutionCreationFromStart.js.map +1 -1
- package/dist/migrations/common/1729607673464-UpdateProcessedDataValueColumnToText.js +2 -2
- package/dist/migrations/common/1729607673464-UpdateProcessedDataValueColumnToText.js.map +1 -1
- package/dist/migrations/common/1729607673469-AddProjectIcons.js +2 -2
- package/dist/migrations/common/1729607673469-AddProjectIcons.js.map +1 -1
- package/dist/migrations/common/1731404028106-AddDescriptionToTestDefinition.js +4 -2
- package/dist/migrations/common/1731404028106-AddDescriptionToTestDefinition.js.map +1 -1
- package/dist/migrations/common/1742918400000-AddScopesColumnToApiKeys.js +2 -2
- package/dist/migrations/common/1742918400000-AddScopesColumnToApiKeys.js.map +1 -1
- package/dist/migrations/common/1750252139168-LinkRoleToUserTable.js +4 -2
- package/dist/migrations/common/1750252139168-LinkRoleToUserTable.js.map +1 -1
- package/dist/migrations/common/1750252139170-RemoveOldRoleColumn.js +4 -2
- package/dist/migrations/common/1750252139170-RemoveOldRoleColumn.js.map +1 -1
- package/dist/migrations/common/1752669793000-AddInputsOutputsToTestCaseExecution.js +6 -2
- package/dist/migrations/common/1752669793000-AddInputsOutputsToTestCaseExecution.js.map +1 -1
- package/dist/migrations/common/1756906557570-AddTimestampsToRoleAndRoleIndexes.js +1 -1
- package/dist/migrations/common/1756906557570-AddTimestampsToRoleAndRoleIndexes.js.map +1 -1
- package/dist/migrations/common/1758731786132-AddAudienceColumnToApiKey.js +2 -4
- package/dist/migrations/common/1758731786132-AddAudienceColumnToApiKey.js.map +1 -1
- package/dist/migrations/common/1760020000000-CreateChatHubAgentTable.js +4 -4
- package/dist/migrations/common/1760020000000-CreateChatHubAgentTable.js.map +1 -1
- package/dist/migrations/common/1760965142113-DropUnusedChatHubColumns.js +6 -4
- package/dist/migrations/common/1760965142113-DropUnusedChatHubColumns.js.map +1 -1
- package/dist/migrations/common/1761773155024-AddAttachmentsToChatHubMessages.js +2 -2
- package/dist/migrations/common/1761773155024-AddAttachmentsToChatHubMessages.js.map +1 -1
- package/dist/migrations/common/1761830340990-AddToolsColumnToChatHubTables.js +4 -4
- package/dist/migrations/common/1761830340990-AddToolsColumnToChatHubTables.js.map +1 -1
- package/dist/migrations/common/1762177736257-AddWorkflowDescriptionColumn.js +4 -2
- package/dist/migrations/common/1762177736257-AddWorkflowDescriptionColumn.js.map +1 -1
- package/dist/migrations/common/1762763704614-BackfillMissingWorkflowHistoryRecords.js +3 -1
- package/dist/migrations/common/1762763704614-BackfillMissingWorkflowHistoryRecords.js.map +1 -1
- package/dist/migrations/common/1762847206508-AddWorkflowHistoryAutoSaveFields.js +4 -2
- package/dist/migrations/common/1762847206508-AddWorkflowHistoryAutoSaveFields.js.map +1 -1
- package/dist/migrations/common/1763047800000-AddActiveVersionIdColumn.js +6 -2
- package/dist/migrations/common/1763047800000-AddActiveVersionIdColumn.js.map +1 -1
- package/dist/migrations/common/1764276827837-AddCreatorIdToProjectTable.js +2 -4
- package/dist/migrations/common/1764276827837-AddCreatorIdToProjectTable.js.map +1 -1
- package/dist/migrations/common/1765459448000-AddResolvableFieldsToCredentials.js +2 -6
- package/dist/migrations/common/1765459448000-AddResolvableFieldsToCredentials.js.map +1 -1
- package/dist/migrations/common/1765788427674-AddIconToAgentTable.js +2 -2
- package/dist/migrations/common/1765788427674-AddIconToAgentTable.js.map +1 -1
- package/dist/migrations/common/1766068346315-AddChatMessageIndices.js +2 -2
- package/dist/migrations/common/1766068346315-AddChatMessageIndices.js.map +1 -1
- package/dist/migrations/common/1769000000000-AddPublishedVersionIdToWorkflowDependency.js +6 -2
- package/dist/migrations/common/1769000000000-AddPublishedVersionIdToWorkflowDependency.js.map +1 -1
- package/dist/migrations/common/1770000000000-CreateChatHubToolsTable.js +8 -4
- package/dist/migrations/common/1770000000000-CreateChatHubToolsTable.js.map +1 -1
- package/dist/migrations/common/1771500000002-AddFilesColumnToChatHubAgents.js +4 -2
- package/dist/migrations/common/1771500000002-AddFilesColumnToChatHubAgents.js.map +1 -1
- package/dist/migrations/common/1772000000000-AddSuggestedPromptsToAgentTable.js +4 -2
- package/dist/migrations/common/1772000000000-AddSuggestedPromptsToAgentTable.js.map +1 -1
- package/dist/migrations/common/1772619247761-AddRoleColumnToProjectSecretsProviderAccess.js +2 -2
- package/dist/migrations/common/1772619247761-AddRoleColumnToProjectSecretsProviderAccess.js.map +1 -1
- package/dist/migrations/common/1772700000000-AddTypeToChatHubSessions.js +2 -2
- package/dist/migrations/common/1772700000000-AddTypeToChatHubSessions.js.map +1 -1
- package/dist/migrations/common/1774280963551-AddRestoreFieldsToWorkflowBuilderSession.js +2 -5
- package/dist/migrations/common/1774280963551-AddRestoreFieldsToWorkflowBuilderSession.js.map +1 -1
- package/dist/migrations/common/1775740765000-ChangeWorkflowPublishHistoryVersionIdToSetNull.js +2 -2
- package/dist/migrations/common/1775740765000-ChangeWorkflowPublishHistoryVersionIdToSetNull.js.map +1 -1
- package/dist/migrations/common/1777045000000-AddTracingContextToExecution.js +4 -2
- package/dist/migrations/common/1777045000000-AddTracingContextToExecution.js.map +1 -1
- package/dist/migrations/common/1777100000000-AddLangsmithIdsToInstanceAiRunSnapshots.js +4 -2
- package/dist/migrations/common/1777100000000-AddLangsmithIdsToInstanceAiRunSnapshots.js.map +1 -1
- package/dist/migrations/common/1778000000000-AddExecutionDeduplicationKey.js +4 -2
- package/dist/migrations/common/1778000000000-AddExecutionDeduplicationKey.js.map +1 -1
- package/dist/migrations/common/1778100002000-AddEvaluationConfigColumnsToTestRun.js +7 -3
- package/dist/migrations/common/1778100002000-AddEvaluationConfigColumnsToTestRun.js.map +1 -1
- package/dist/migrations/common/1778496086558-CreateEvaluationCollection.js +4 -2
- package/dist/migrations/common/1778496086558-CreateEvaluationCollection.js.map +1 -1
- package/dist/migrations/common/1784000000002-DropAgentExecutionWorkingMemory.js +4 -2
- package/dist/migrations/common/1784000000002-DropAgentExecutionWorkingMemory.js.map +1 -1
- package/dist/migrations/common/1784000000006-AddNodeGroupsColumnToWorkflowAndHistory.js +8 -4
- package/dist/migrations/common/1784000000006-AddNodeGroupsColumnToWorkflowAndHistory.js.map +1 -1
- package/dist/migrations/common/1784000000007-CreateInstanceAiCheckpointTable.js +5 -3
- package/dist/migrations/common/1784000000007-CreateInstanceAiCheckpointTable.js.map +1 -1
- package/dist/migrations/common/1784000000011-CreateAgentHistoryTable.js +8 -4
- package/dist/migrations/common/1784000000011-CreateAgentHistoryTable.js.map +1 -1
- package/dist/migrations/common/1784000000014-PersistInstanceAiPendingConfirmations.js +6 -4
- package/dist/migrations/common/1784000000014-PersistInstanceAiPendingConfirmations.js.map +1 -1
- package/dist/migrations/common/1784000000015-AddSourceWorkflowIdToWorkflow.js +6 -2
- package/dist/migrations/common/1784000000015-AddSourceWorkflowIdToWorkflow.js.map +1 -1
- package/dist/migrations/common/1784000000017-AddLastUsedAtToApiKey.js +4 -2
- package/dist/migrations/common/1784000000017-AddLastUsedAtToApiKey.js.map +1 -1
- package/dist/migrations/common/1784000000018-CreateAgentFilesTable.js +4 -2
- package/dist/migrations/common/1784000000018-CreateAgentFilesTable.js.map +1 -1
- package/dist/migrations/common/1784000000019-AddCustomTelemetryTagsToProject.js +4 -2
- package/dist/migrations/common/1784000000019-AddCustomTelemetryTagsToProject.js.map +1 -1
- package/dist/migrations/common/1784000000021-CreateAgentTaskDefinitionTable.js +4 -2
- package/dist/migrations/common/1784000000021-CreateAgentTaskDefinitionTable.js.map +1 -1
- package/dist/migrations/common/1784000000022-AddSubAgentLinkageToAgentExecutionThreads.d.ts +5 -0
- package/dist/migrations/common/1784000000022-AddSubAgentLinkageToAgentExecutionThreads.js +54 -0
- package/dist/migrations/common/1784000000022-AddSubAgentLinkageToAgentExecutionThreads.js.map +1 -0
- package/dist/migrations/common/1784000000023-CreateInstanceAiMcpRegistryConnectionTable.d.ts +5 -0
- package/dist/migrations/common/1784000000023-CreateInstanceAiMcpRegistryConnectionTable.js +31 -0
- package/dist/migrations/common/1784000000023-CreateInstanceAiMcpRegistryConnectionTable.js.map +1 -0
- package/dist/migrations/common/1784000000024-AddResourceToOAuthAuthorizationCodes.d.ts +5 -0
- package/dist/migrations/common/1784000000024-AddResourceToOAuthAuthorizationCodes.js +20 -0
- package/dist/migrations/common/1784000000024-AddResourceToOAuthAuthorizationCodes.js.map +1 -0
- package/dist/migrations/common/1784000000025-MigrateRedactionEnforcementToFloor.d.ts +6 -0
- package/dist/migrations/common/1784000000025-MigrateRedactionEnforcementToFloor.js +54 -0
- package/dist/migrations/common/1784000000025-MigrateRedactionEnforcementToFloor.js.map +1 -0
- package/dist/migrations/common/1784000000026-AddScopeColumnToOAuthTables.d.ts +5 -0
- package/dist/migrations/common/1784000000026-AddScopeColumnToOAuthTables.js +25 -0
- package/dist/migrations/common/1784000000026-AddScopeColumnToOAuthTables.js.map +1 -0
- package/dist/migrations/common/{1784000000020-CreateWorkflowPublicationOutboxTable.d.ts → 1784000000027-CreateWorkflowPublicationOutboxTable.d.ts} +1 -1
- package/dist/migrations/common/{1784000000020-CreateWorkflowPublicationOutboxTable.js → 1784000000027-CreateWorkflowPublicationOutboxTable.js} +5 -5
- package/dist/migrations/common/{1784000000020-CreateWorkflowPublicationOutboxTable.js.map → 1784000000027-CreateWorkflowPublicationOutboxTable.js.map} +1 -1
- package/dist/migrations/common/AddProjectIdToInstanceAiThreadBase.d.ts +11 -0
- package/dist/migrations/common/AddProjectIdToInstanceAiThreadBase.js +77 -0
- package/dist/migrations/common/AddProjectIdToInstanceAiThreadBase.js.map +1 -0
- package/dist/migrations/dsl/index.d.ts +10 -6
- package/dist/migrations/dsl/index.js +6 -6
- package/dist/migrations/dsl/index.js.map +1 -1
- package/dist/migrations/dsl/table.js.map +1 -1
- package/dist/migrations/postgresdb/1758794506893-AddProjectIdToVariableTable.js +4 -2
- package/dist/migrations/postgresdb/1758794506893-AddProjectIdToVariableTable.js.map +1 -1
- package/dist/migrations/postgresdb/1784000000028-AddProjectIdToInstanceAiThread.d.ts +6 -0
- package/dist/migrations/postgresdb/1784000000028-AddProjectIdToInstanceAiThread.js +25 -0
- package/dist/migrations/postgresdb/1784000000028-AddProjectIdToInstanceAiThread.js.map +1 -0
- package/dist/migrations/postgresdb/index.js +14 -2
- package/dist/migrations/postgresdb/index.js.map +1 -1
- package/dist/migrations/sqlite/1764276827837-AddCreatorIdToProjectTable.js +2 -4
- package/dist/migrations/sqlite/1764276827837-AddCreatorIdToProjectTable.js.map +1 -1
- package/dist/migrations/sqlite/1764689448000-AddResolvableFieldsToCredentials.js +2 -6
- package/dist/migrations/sqlite/1764689448000-AddResolvableFieldsToCredentials.js.map +1 -1
- package/dist/migrations/sqlite/1784000000026-AddScopeColumnToOAuthTables.d.ts +4 -0
- package/dist/migrations/sqlite/1784000000026-AddScopeColumnToOAuthTables.js +12 -0
- package/dist/migrations/sqlite/1784000000026-AddScopeColumnToOAuthTables.js.map +1 -0
- package/dist/migrations/sqlite/1784000000028-AddProjectIdToInstanceAiThread.d.ts +8 -0
- package/dist/migrations/sqlite/1784000000028-AddProjectIdToInstanceAiThread.js +47 -0
- package/dist/migrations/sqlite/1784000000028-AddProjectIdToInstanceAiThread.js.map +1 -0
- package/dist/migrations/sqlite/index.js +14 -2
- package/dist/migrations/sqlite/index.js.map +1 -1
- package/dist/repositories/execution-data.repository.d.ts +0 -3
- package/dist/repositories/execution-data.repository.js +0 -11
- package/dist/repositories/execution-data.repository.js.map +1 -1
- package/dist/repositories/execution.repository.d.ts +0 -4
- package/dist/repositories/execution.repository.js +0 -43
- package/dist/repositories/execution.repository.js.map +1 -1
- package/dist/repositories/shared-credentials.repository.d.ts +7 -0
- package/dist/repositories/shared-credentials.repository.js +21 -0
- package/dist/repositories/shared-credentials.repository.js.map +1 -1
- package/dist/repositories/test-run.repository.ee.d.ts +2 -1
- package/dist/repositories/test-run.repository.ee.js +2 -1
- package/dist/repositories/test-run.repository.ee.js.map +1 -1
- package/dist/repositories/workflow-publication-outbox.repository.d.ts +13 -1
- package/dist/repositories/workflow-publication-outbox.repository.js +93 -2
- package/dist/repositories/workflow-publication-outbox.repository.js.map +1 -1
- package/dist/repositories/workflow.repository.d.ts +3 -3
- package/dist/utils/test-utils/mock-entity-manager.d.ts +85 -44
- package/dist/utils/test-utils/mock-entity-manager.js +2 -2
- package/dist/utils/test-utils/mock-entity-manager.js.map +1 -1
- package/dist/utils/test-utils/mock-instance.d.ts +2 -2
- package/dist/utils/test-utils/mock-instance.js +2 -2
- package/dist/utils/test-utils/mock-instance.js.map +1 -1
- package/dist/utils/validators/no-url.validator.js +1 -1
- package/dist/utils/validators/no-url.validator.js.map +1 -1
- package/dist/utils/validators/no-xss.validator.js +1 -1
- package/dist/utils/validators/no-xss.validator.js.map +1 -1
- package/package.json +24 -18
- package/dist/migrations/migration-helpers.test.d.ts +0 -1
- package/dist/migrations/migration-helpers.test.js +0 -64
- package/dist/migrations/migration-helpers.test.js.map +0 -1
|
@@ -1,5 +1,17 @@
|
|
|
1
|
+
import { GlobalConfig } from '@n8n/config';
|
|
1
2
|
import { DataSource, Repository } from '@n8n/typeorm';
|
|
2
3
|
import { WorkflowPublicationOutbox } from '../entities/workflow-publication-outbox';
|
|
3
4
|
export declare class WorkflowPublicationOutboxRepository extends Repository<WorkflowPublicationOutbox> {
|
|
4
|
-
|
|
5
|
+
private readonly globalConfig;
|
|
6
|
+
constructor(dataSource: DataSource, globalConfig: GlobalConfig);
|
|
7
|
+
enqueue(workflowId: string, publishedVersionId: string): Promise<void>;
|
|
8
|
+
private enqueueWithPostgresUpsert;
|
|
9
|
+
private enqueueWithSqliteUpsert;
|
|
10
|
+
claimNextPendingRecord(): Promise<WorkflowPublicationOutbox | null>;
|
|
11
|
+
private claimWithPostgresLocking;
|
|
12
|
+
private claimWithSqliteTransaction;
|
|
13
|
+
markCompleted(id: number): Promise<void>;
|
|
14
|
+
markFailed(id: number, errorMessage: string): Promise<void>;
|
|
15
|
+
private assertSingleRowAffected;
|
|
16
|
+
private getTableName;
|
|
5
17
|
}
|
|
@@ -10,17 +10,108 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.WorkflowPublicationOutboxRepository = void 0;
|
|
13
|
+
const config_1 = require("@n8n/config");
|
|
13
14
|
const di_1 = require("@n8n/di");
|
|
14
15
|
const typeorm_1 = require("@n8n/typeorm");
|
|
16
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
15
17
|
const workflow_publication_outbox_1 = require("../entities/workflow-publication-outbox");
|
|
16
18
|
let WorkflowPublicationOutboxRepository = class WorkflowPublicationOutboxRepository extends typeorm_1.Repository {
|
|
17
|
-
constructor(dataSource) {
|
|
19
|
+
constructor(dataSource, globalConfig) {
|
|
18
20
|
super(workflow_publication_outbox_1.WorkflowPublicationOutbox, dataSource.manager);
|
|
21
|
+
this.globalConfig = globalConfig;
|
|
22
|
+
}
|
|
23
|
+
async enqueue(workflowId, publishedVersionId) {
|
|
24
|
+
if (this.globalConfig.database.type === 'postgresdb') {
|
|
25
|
+
await this.enqueueWithPostgresUpsert(workflowId, publishedVersionId);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
await this.enqueueWithSqliteUpsert(workflowId, publishedVersionId);
|
|
29
|
+
}
|
|
30
|
+
async enqueueWithPostgresUpsert(workflowId, publishedVersionId) {
|
|
31
|
+
const tableName = this.getTableName('workflow_publication_outbox');
|
|
32
|
+
await this.query(`INSERT INTO ${tableName} ("workflowId", "publishedVersionId", "status")
|
|
33
|
+
VALUES ($1, $2, '${workflow_publication_outbox_1.WorkflowPublicationOutboxStatus.Pending}')
|
|
34
|
+
ON CONFLICT ("workflowId", "status") WHERE "status" IN ('${workflow_publication_outbox_1.WorkflowPublicationOutboxStatus.Pending}', '${workflow_publication_outbox_1.WorkflowPublicationOutboxStatus.InProgress}')
|
|
35
|
+
DO UPDATE SET "publishedVersionId" = EXCLUDED."publishedVersionId", "updatedAt" = CURRENT_TIMESTAMP(3)`, [workflowId, publishedVersionId]);
|
|
36
|
+
}
|
|
37
|
+
async enqueueWithSqliteUpsert(workflowId, publishedVersionId) {
|
|
38
|
+
const tableName = this.getTableName('workflow_publication_outbox');
|
|
39
|
+
await this.query(`INSERT INTO ${tableName} ("workflowId", "publishedVersionId", "status")
|
|
40
|
+
VALUES (?, ?, '${workflow_publication_outbox_1.WorkflowPublicationOutboxStatus.Pending}')
|
|
41
|
+
ON CONFLICT ("workflowId", "status") WHERE "status" IN ('${workflow_publication_outbox_1.WorkflowPublicationOutboxStatus.Pending}', '${workflow_publication_outbox_1.WorkflowPublicationOutboxStatus.InProgress}')
|
|
42
|
+
DO UPDATE SET "publishedVersionId" = excluded."publishedVersionId", "updatedAt" = STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')`, [workflowId, publishedVersionId]);
|
|
43
|
+
}
|
|
44
|
+
async claimNextPendingRecord() {
|
|
45
|
+
if (this.globalConfig.database.type === 'postgresdb') {
|
|
46
|
+
return await this.claimWithPostgresLocking();
|
|
47
|
+
}
|
|
48
|
+
return await this.claimWithSqliteTransaction();
|
|
49
|
+
}
|
|
50
|
+
async claimWithPostgresLocking() {
|
|
51
|
+
const tableName = this.getTableName('workflow_publication_outbox');
|
|
52
|
+
const [rows] = await this.query(`UPDATE ${tableName}
|
|
53
|
+
SET "status" = '${workflow_publication_outbox_1.WorkflowPublicationOutboxStatus.InProgress}', "updatedAt" = CURRENT_TIMESTAMP(3)
|
|
54
|
+
WHERE "id" = (
|
|
55
|
+
SELECT o."id" FROM ${tableName} o
|
|
56
|
+
WHERE o."status" = '${workflow_publication_outbox_1.WorkflowPublicationOutboxStatus.Pending}'
|
|
57
|
+
AND NOT EXISTS (
|
|
58
|
+
SELECT 1 FROM ${tableName} ip
|
|
59
|
+
WHERE ip."workflowId" = o."workflowId" AND ip."status" = '${workflow_publication_outbox_1.WorkflowPublicationOutboxStatus.InProgress}'
|
|
60
|
+
)
|
|
61
|
+
ORDER BY o."id" ASC
|
|
62
|
+
LIMIT 1
|
|
63
|
+
FOR UPDATE SKIP LOCKED
|
|
64
|
+
)
|
|
65
|
+
RETURNING *`);
|
|
66
|
+
return rows[0] ?? null;
|
|
67
|
+
}
|
|
68
|
+
async claimWithSqliteTransaction() {
|
|
69
|
+
return await this.manager.transaction(async (tx) => {
|
|
70
|
+
const record = await tx
|
|
71
|
+
.createQueryBuilder(workflow_publication_outbox_1.WorkflowPublicationOutbox, 'o')
|
|
72
|
+
.where('o.status = :pending', { pending: workflow_publication_outbox_1.WorkflowPublicationOutboxStatus.Pending })
|
|
73
|
+
.andWhere((qb) => {
|
|
74
|
+
const sub = qb
|
|
75
|
+
.subQuery()
|
|
76
|
+
.select('1')
|
|
77
|
+
.from(workflow_publication_outbox_1.WorkflowPublicationOutbox, 'ip')
|
|
78
|
+
.where('ip.workflowId = o.workflowId')
|
|
79
|
+
.andWhere('ip.status = :inProgress')
|
|
80
|
+
.getQuery();
|
|
81
|
+
return `NOT EXISTS ${sub}`;
|
|
82
|
+
})
|
|
83
|
+
.setParameter('inProgress', workflow_publication_outbox_1.WorkflowPublicationOutboxStatus.InProgress)
|
|
84
|
+
.orderBy('o.id', 'ASC')
|
|
85
|
+
.getOne();
|
|
86
|
+
if (!record)
|
|
87
|
+
return null;
|
|
88
|
+
await tx.update(workflow_publication_outbox_1.WorkflowPublicationOutbox, { id: record.id, status: workflow_publication_outbox_1.WorkflowPublicationOutboxStatus.Pending }, { status: workflow_publication_outbox_1.WorkflowPublicationOutboxStatus.InProgress });
|
|
89
|
+
record.status = workflow_publication_outbox_1.WorkflowPublicationOutboxStatus.InProgress;
|
|
90
|
+
return record;
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
async markCompleted(id) {
|
|
94
|
+
const result = await this.update({ id, status: workflow_publication_outbox_1.WorkflowPublicationOutboxStatus.InProgress }, { status: workflow_publication_outbox_1.WorkflowPublicationOutboxStatus.Completed, errorMessage: null });
|
|
95
|
+
this.assertSingleRowAffected(result.affected, id, workflow_publication_outbox_1.WorkflowPublicationOutboxStatus.Completed);
|
|
96
|
+
}
|
|
97
|
+
async markFailed(id, errorMessage) {
|
|
98
|
+
const result = await this.update({ id, status: workflow_publication_outbox_1.WorkflowPublicationOutboxStatus.InProgress }, { status: workflow_publication_outbox_1.WorkflowPublicationOutboxStatus.Failed, errorMessage });
|
|
99
|
+
this.assertSingleRowAffected(result.affected, id, workflow_publication_outbox_1.WorkflowPublicationOutboxStatus.Failed);
|
|
100
|
+
}
|
|
101
|
+
assertSingleRowAffected(affected, id, target) {
|
|
102
|
+
if (affected !== 1) {
|
|
103
|
+
throw new n8n_workflow_1.UnexpectedError(`Expected to transition outbox record ${id} to '${target}', but ${affected ?? 0} rows were affected. The record may not be in progress.`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
getTableName(name) {
|
|
107
|
+
const { tablePrefix } = this.globalConfig.database;
|
|
108
|
+
return this.manager.connection.driver.escape(`${tablePrefix}${name}`);
|
|
19
109
|
}
|
|
20
110
|
};
|
|
21
111
|
exports.WorkflowPublicationOutboxRepository = WorkflowPublicationOutboxRepository;
|
|
22
112
|
exports.WorkflowPublicationOutboxRepository = WorkflowPublicationOutboxRepository = __decorate([
|
|
23
113
|
(0, di_1.Service)(),
|
|
24
|
-
__metadata("design:paramtypes", [typeorm_1.DataSource
|
|
114
|
+
__metadata("design:paramtypes", [typeorm_1.DataSource,
|
|
115
|
+
config_1.GlobalConfig])
|
|
25
116
|
], WorkflowPublicationOutboxRepository);
|
|
26
117
|
//# sourceMappingURL=workflow-publication-outbox.repository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-publication-outbox.repository.js","sourceRoot":"","sources":["../../src/repositories/workflow-publication-outbox.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gCAAkC;AAClC,0CAAsD;
|
|
1
|
+
{"version":3,"file":"workflow-publication-outbox.repository.js","sourceRoot":"","sources":["../../src/repositories/workflow-publication-outbox.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,9 +68,9 @@ export declare class WorkflowRepository extends Repository<WorkflowEntity> {
|
|
|
68
68
|
private getWorkflowsIds;
|
|
69
69
|
private fetchExtraData;
|
|
70
70
|
private enrichDataWithExtras;
|
|
71
|
-
getMany(workflowIds: string[], options?: ListQuery.Options): Promise<(Pick<WorkflowEntity, "id"> & Partial<Pick<WorkflowEntity, "name" | "
|
|
71
|
+
getMany(workflowIds: string[], options?: ListQuery.Options): Promise<(Pick<WorkflowEntity, "id"> & Partial<Pick<WorkflowEntity, "name" | "createdAt" | "updatedAt" | "tags" | "description" | "active" | "versionId" | "activeVersionId">>)[]>;
|
|
72
72
|
getManyAndCount(sharedWorkflowIds: string[], options?: ListQuery.Options): Promise<{
|
|
73
|
-
workflows: (Pick<WorkflowEntity, "id"> & Partial<Pick<WorkflowEntity, "name" | "
|
|
73
|
+
workflows: ListQueryDb.Workflow.WithSharing[] | (Pick<WorkflowEntity, "id"> & Partial<Pick<WorkflowEntity, "name" | "createdAt" | "updatedAt" | "tags" | "description" | "active" | "versionId" | "activeVersionId">>)[];
|
|
74
74
|
count: number;
|
|
75
75
|
}>;
|
|
76
76
|
getManyAndCountWithSharingSubquery(user: User, sharingOptions: {
|
|
@@ -81,7 +81,7 @@ export declare class WorkflowRepository extends Repository<WorkflowEntity> {
|
|
|
81
81
|
personalProjectOwnerId?: string;
|
|
82
82
|
onlySharedWithMe?: boolean;
|
|
83
83
|
}, options?: ListQuery.Options): Promise<{
|
|
84
|
-
workflows: (Pick<WorkflowEntity, "id"> & Partial<Pick<WorkflowEntity, "name" | "
|
|
84
|
+
workflows: ListQueryDb.Workflow.WithSharing[] | (Pick<WorkflowEntity, "id"> & Partial<Pick<WorkflowEntity, "name" | "createdAt" | "updatedAt" | "tags" | "description" | "active" | "versionId" | "activeVersionId">>)[];
|
|
85
85
|
count: number;
|
|
86
86
|
}>;
|
|
87
87
|
private getManyQueryWithSharingSubquery;
|
|
@@ -4,48 +4,89 @@ export declare const mockEntityManager: (entityClass: Class) => {
|
|
|
4
4
|
readonly "@instanceof": symbol;
|
|
5
5
|
readonly connection: DataSource;
|
|
6
6
|
readonly queryRunner?: import("@n8n/typeorm").QueryRunner | undefined;
|
|
7
|
-
transaction:
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
7
|
+
transaction: {
|
|
8
|
+
<T>(runInTransaction: (entityManager: EntityManager) => Promise<T>): Promise<T>;
|
|
9
|
+
<T>(isolationLevel: import("@n8n/typeorm/driver/types/IsolationLevel").IsolationLevel, runInTransaction: (entityManager: EntityManager) => Promise<T>): Promise<T>;
|
|
10
|
+
} & import("vitest-mock-extended").CalledWithMock<Promise<unknown>, [isolationLevel: import("@n8n/typeorm/driver/types/IsolationLevel").IsolationLevel, runInTransaction: (entityManager: EntityManager) => Promise<unknown>]>;
|
|
11
|
+
query: (<T = any>(query: string, parameters?: any[]) => Promise<T>) & import("vitest-mock-extended").CalledWithMock<Promise<unknown>, [query: string, parameters?: any[] | undefined]>;
|
|
12
|
+
createQueryBuilder: {
|
|
13
|
+
<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, alias: string, queryRunner?: import("@n8n/typeorm").QueryRunner): import("@n8n/typeorm").SelectQueryBuilder<Entity>;
|
|
14
|
+
(queryRunner?: import("@n8n/typeorm").QueryRunner): import("@n8n/typeorm").SelectQueryBuilder<any>;
|
|
15
|
+
} & import("vitest-mock-extended").CalledWithMock<import("@n8n/typeorm").SelectQueryBuilder<any>, [queryRunner?: import("@n8n/typeorm").QueryRunner | undefined]>;
|
|
16
|
+
hasId: {
|
|
17
|
+
(entity: any): boolean;
|
|
18
|
+
(target: Function | string, entity: any): boolean;
|
|
19
|
+
} & import("vitest-mock-extended").CalledWithMock<boolean, [target: string | Function, entity: any]>;
|
|
20
|
+
getId: {
|
|
21
|
+
(entity: any): any;
|
|
22
|
+
(target: import("@n8n/typeorm").EntityTarget<any>, entity: any): any;
|
|
23
|
+
} & import("vitest-mock-extended").CalledWithMock<any, [target: import("@n8n/typeorm").EntityTarget<any>, entity: any]>;
|
|
24
|
+
create: {
|
|
25
|
+
<Entity, EntityLike extends import("@n8n/typeorm").DeepPartial<Entity>>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, plainObject?: EntityLike): Entity;
|
|
26
|
+
<Entity, EntityLike extends import("@n8n/typeorm").DeepPartial<Entity>>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, plainObjects?: EntityLike[]): Entity[];
|
|
27
|
+
} & import("vitest-mock-extended").CalledWithMock<unknown[], [entityClass: import("@n8n/typeorm").EntityTarget<unknown>, plainObjects?: unknown[] | undefined]>;
|
|
28
|
+
merge: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, mergeIntoEntity: Entity, ...entityLikes: import("@n8n/typeorm").DeepPartial<Entity>[]) => Entity) & import("vitest-mock-extended").CalledWithMock<import("@n8n/typeorm").ObjectLiteral, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, mergeIntoEntity: import("@n8n/typeorm").ObjectLiteral, ...entityLikes: import("@n8n/typeorm").DeepPartial<import("@n8n/typeorm").ObjectLiteral>[]]>;
|
|
29
|
+
preload: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, entityLike: import("@n8n/typeorm").DeepPartial<Entity>) => Promise<Entity | undefined>) & import("vitest-mock-extended").CalledWithMock<Promise<import("@n8n/typeorm").ObjectLiteral | undefined>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, entityLike: import("@n8n/typeorm").DeepPartial<import("@n8n/typeorm").ObjectLiteral>]>;
|
|
30
|
+
save: {
|
|
31
|
+
<Entity>(entities: Entity[], options?: import("@n8n/typeorm").SaveOptions): Promise<Entity[]>;
|
|
32
|
+
<Entity>(entity: Entity, options?: import("@n8n/typeorm").SaveOptions): Promise<Entity>;
|
|
33
|
+
<Entity, T extends import("@n8n/typeorm").DeepPartial<Entity>>(targetOrEntity: import("@n8n/typeorm").EntityTarget<Entity>, entities: T[], options: import("@n8n/typeorm").SaveOptions & {
|
|
34
|
+
reload: false;
|
|
35
|
+
}): Promise<T[]>;
|
|
36
|
+
<Entity, T extends import("@n8n/typeorm").DeepPartial<Entity>>(targetOrEntity: import("@n8n/typeorm").EntityTarget<Entity>, entities: T[], options?: import("@n8n/typeorm").SaveOptions): Promise<(T & Entity)[]>;
|
|
37
|
+
<Entity, T extends import("@n8n/typeorm").DeepPartial<Entity>>(targetOrEntity: import("@n8n/typeorm").EntityTarget<Entity>, entity: T, options: import("@n8n/typeorm").SaveOptions & {
|
|
38
|
+
reload: false;
|
|
39
|
+
}): Promise<T>;
|
|
40
|
+
<Entity, T extends import("@n8n/typeorm").DeepPartial<Entity>>(targetOrEntity: import("@n8n/typeorm").EntityTarget<Entity>, entity: T, options?: import("@n8n/typeorm").SaveOptions): Promise<T & Entity>;
|
|
41
|
+
} & import("vitest-mock-extended").CalledWithMock<Promise<unknown>, [targetOrEntity: import("@n8n/typeorm").EntityTarget<unknown>, entity: unknown, options?: import("@n8n/typeorm").SaveOptions | undefined]>;
|
|
42
|
+
remove: {
|
|
43
|
+
<Entity>(entity: Entity, options?: import("@n8n/typeorm").RemoveOptions): Promise<Entity>;
|
|
44
|
+
<Entity>(targetOrEntity: import("@n8n/typeorm").EntityTarget<Entity>, entity: Entity, options?: import("@n8n/typeorm").RemoveOptions): Promise<Entity>;
|
|
45
|
+
<Entity>(entity: Entity[], options?: import("@n8n/typeorm").RemoveOptions): Promise<Entity>;
|
|
46
|
+
<Entity>(targetOrEntity: import("@n8n/typeorm").EntityTarget<Entity>, entity: Entity[], options?: import("@n8n/typeorm").RemoveOptions): Promise<Entity[]>;
|
|
47
|
+
} & import("vitest-mock-extended").CalledWithMock<Promise<unknown[]>, [targetOrEntity: import("@n8n/typeorm").EntityTarget<unknown>, entity: unknown[], options?: import("@n8n/typeorm").RemoveOptions | undefined]>;
|
|
48
|
+
softRemove: {
|
|
49
|
+
<Entity>(entities: Entity[], options?: import("@n8n/typeorm").SaveOptions): Promise<Entity[]>;
|
|
50
|
+
<Entity>(entity: Entity, options?: import("@n8n/typeorm").SaveOptions): Promise<Entity>;
|
|
51
|
+
<Entity, T extends import("@n8n/typeorm").DeepPartial<Entity>>(targetOrEntity: import("@n8n/typeorm").EntityTarget<Entity>, entities: T[], options?: import("@n8n/typeorm").SaveOptions): Promise<T[]>;
|
|
52
|
+
<Entity, T extends import("@n8n/typeorm").DeepPartial<Entity>>(targetOrEntity: import("@n8n/typeorm").EntityTarget<Entity>, entity: T, options?: import("@n8n/typeorm").SaveOptions): Promise<T>;
|
|
53
|
+
} & import("vitest-mock-extended").CalledWithMock<Promise<unknown>, [targetOrEntity: import("@n8n/typeorm").EntityTarget<unknown>, entity: unknown, options?: import("@n8n/typeorm").SaveOptions | undefined]>;
|
|
54
|
+
recover: {
|
|
55
|
+
<Entity>(entities: Entity[], options?: import("@n8n/typeorm").SaveOptions): Promise<Entity[]>;
|
|
56
|
+
<Entity>(entity: Entity, options?: import("@n8n/typeorm").SaveOptions): Promise<Entity>;
|
|
57
|
+
<Entity, T extends import("@n8n/typeorm").DeepPartial<Entity>>(targetOrEntity: import("@n8n/typeorm").EntityTarget<Entity>, entities: T[], options?: import("@n8n/typeorm").SaveOptions): Promise<T[]>;
|
|
58
|
+
<Entity, T extends import("@n8n/typeorm").DeepPartial<Entity>>(targetOrEntity: import("@n8n/typeorm").EntityTarget<Entity>, entity: T, options?: import("@n8n/typeorm").SaveOptions): Promise<T>;
|
|
59
|
+
} & import("vitest-mock-extended").CalledWithMock<Promise<unknown>, [targetOrEntity: import("@n8n/typeorm").EntityTarget<unknown>, entity: unknown, options?: import("@n8n/typeorm").SaveOptions | undefined]>;
|
|
60
|
+
insert: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(target: import("@n8n/typeorm").EntityTarget<Entity>, entity: import("@n8n/typeorm/query-builder/QueryPartialEntity").QueryDeepPartialEntity<Entity> | import("@n8n/typeorm/query-builder/QueryPartialEntity").QueryDeepPartialEntity<Entity>[]) => Promise<import("@n8n/typeorm").InsertResult>) & import("vitest-mock-extended").CalledWithMock<Promise<import("@n8n/typeorm").InsertResult>, [target: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, entity: {} | {}[]]>;
|
|
61
|
+
upsert: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(target: import("@n8n/typeorm").EntityTarget<Entity>, entityOrEntities: import("@n8n/typeorm/query-builder/QueryPartialEntity").QueryDeepPartialEntity<Entity> | import("@n8n/typeorm/query-builder/QueryPartialEntity").QueryDeepPartialEntity<Entity>[], conflictPathsOrOptions: string[] | import("@n8n/typeorm/repository/UpsertOptions").UpsertOptions<Entity>) => Promise<import("@n8n/typeorm").InsertResult>) & import("vitest-mock-extended").CalledWithMock<Promise<import("@n8n/typeorm").InsertResult>, [target: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, entityOrEntities: {} | {}[], conflictPathsOrOptions: string[] | import("@n8n/typeorm/repository/UpsertOptions").UpsertOptions<import("@n8n/typeorm").ObjectLiteral>]>;
|
|
62
|
+
update: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(target: import("@n8n/typeorm").EntityTarget<Entity>, criteria: string | string[] | number | number[] | Date | Date[] | any, partialEntity: import("@n8n/typeorm/query-builder/QueryPartialEntity").QueryDeepPartialEntity<Entity>) => Promise<import("@n8n/typeorm").UpdateResult>) & import("vitest-mock-extended").CalledWithMock<Promise<import("@n8n/typeorm").UpdateResult>, [target: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, criteria: any, partialEntity: {}]>;
|
|
63
|
+
delete: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(targetOrEntity: import("@n8n/typeorm").EntityTarget<Entity>, criteria: string | string[] | number | number[] | Date | Date[] | any) => Promise<import("@n8n/typeorm").DeleteResult>) & import("vitest-mock-extended").CalledWithMock<Promise<import("@n8n/typeorm").DeleteResult>, [targetOrEntity: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, criteria: any]>;
|
|
64
|
+
softDelete: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(targetOrEntity: import("@n8n/typeorm").EntityTarget<Entity>, criteria: string | string[] | number | number[] | Date | Date[] | any) => Promise<import("@n8n/typeorm").UpdateResult>) & import("vitest-mock-extended").CalledWithMock<Promise<import("@n8n/typeorm").UpdateResult>, [targetOrEntity: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, criteria: any]>;
|
|
65
|
+
restore: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(targetOrEntity: import("@n8n/typeorm").EntityTarget<Entity>, criteria: string | string[] | number | number[] | Date | Date[] | any) => Promise<import("@n8n/typeorm").UpdateResult>) & import("vitest-mock-extended").CalledWithMock<Promise<import("@n8n/typeorm").UpdateResult>, [targetOrEntity: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, criteria: any]>;
|
|
66
|
+
exists: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, options?: import("@n8n/typeorm").FindManyOptions<Entity>) => Promise<boolean>) & import("vitest-mock-extended").CalledWithMock<Promise<boolean>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, options?: import("@n8n/typeorm").FindManyOptions<import("@n8n/typeorm").ObjectLiteral> | undefined]>;
|
|
67
|
+
existsBy: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, where: import("@n8n/typeorm").FindOptionsWhere<Entity> | import("@n8n/typeorm").FindOptionsWhere<Entity>[]) => Promise<boolean>) & import("vitest-mock-extended").CalledWithMock<Promise<boolean>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, where: import("@n8n/typeorm").FindOptionsWhere<import("@n8n/typeorm").ObjectLiteral> | import("@n8n/typeorm").FindOptionsWhere<import("@n8n/typeorm").ObjectLiteral>[]]>;
|
|
68
|
+
count: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, options?: import("@n8n/typeorm").FindManyOptions<Entity>) => Promise<number>) & import("vitest-mock-extended").CalledWithMock<Promise<number>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, options?: import("@n8n/typeorm").FindManyOptions<import("@n8n/typeorm").ObjectLiteral> | undefined]>;
|
|
69
|
+
countBy: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, where: import("@n8n/typeorm").FindOptionsWhere<Entity> | import("@n8n/typeorm").FindOptionsWhere<Entity>[]) => Promise<number>) & import("vitest-mock-extended").CalledWithMock<Promise<number>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, where: import("@n8n/typeorm").FindOptionsWhere<import("@n8n/typeorm").ObjectLiteral> | import("@n8n/typeorm").FindOptionsWhere<import("@n8n/typeorm").ObjectLiteral>[]]>;
|
|
70
|
+
sum: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, columnName: import("@n8n/typeorm/common/PickKeysByType").PickKeysByType<Entity, number>, where?: import("@n8n/typeorm").FindOptionsWhere<Entity> | import("@n8n/typeorm").FindOptionsWhere<Entity>[]) => Promise<number | null>) & import("vitest-mock-extended").CalledWithMock<Promise<number | null>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, columnName: string, where?: import("@n8n/typeorm").FindOptionsWhere<import("@n8n/typeorm").ObjectLiteral> | import("@n8n/typeorm").FindOptionsWhere<import("@n8n/typeorm").ObjectLiteral>[] | undefined]>;
|
|
71
|
+
average: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, columnName: import("@n8n/typeorm/common/PickKeysByType").PickKeysByType<Entity, number>, where?: import("@n8n/typeorm").FindOptionsWhere<Entity> | import("@n8n/typeorm").FindOptionsWhere<Entity>[]) => Promise<number | null>) & import("vitest-mock-extended").CalledWithMock<Promise<number | null>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, columnName: string, where?: import("@n8n/typeorm").FindOptionsWhere<import("@n8n/typeorm").ObjectLiteral> | import("@n8n/typeorm").FindOptionsWhere<import("@n8n/typeorm").ObjectLiteral>[] | undefined]>;
|
|
72
|
+
minimum: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, columnName: import("@n8n/typeorm/common/PickKeysByType").PickKeysByType<Entity, number>, where?: import("@n8n/typeorm").FindOptionsWhere<Entity> | import("@n8n/typeorm").FindOptionsWhere<Entity>[]) => Promise<number | null>) & import("vitest-mock-extended").CalledWithMock<Promise<number | null>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, columnName: string, where?: import("@n8n/typeorm").FindOptionsWhere<import("@n8n/typeorm").ObjectLiteral> | import("@n8n/typeorm").FindOptionsWhere<import("@n8n/typeorm").ObjectLiteral>[] | undefined]>;
|
|
73
|
+
maximum: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, columnName: import("@n8n/typeorm/common/PickKeysByType").PickKeysByType<Entity, number>, where?: import("@n8n/typeorm").FindOptionsWhere<Entity> | import("@n8n/typeorm").FindOptionsWhere<Entity>[]) => Promise<number | null>) & import("vitest-mock-extended").CalledWithMock<Promise<number | null>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, columnName: string, where?: import("@n8n/typeorm").FindOptionsWhere<import("@n8n/typeorm").ObjectLiteral> | import("@n8n/typeorm").FindOptionsWhere<import("@n8n/typeorm").ObjectLiteral>[] | undefined]>;
|
|
74
|
+
find: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, options?: import("@n8n/typeorm").FindManyOptions<Entity>) => Promise<Entity[]>) & import("vitest-mock-extended").CalledWithMock<Promise<import("@n8n/typeorm").ObjectLiteral[]>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, options?: import("@n8n/typeorm").FindManyOptions<import("@n8n/typeorm").ObjectLiteral> | undefined]>;
|
|
75
|
+
findBy: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, where: import("@n8n/typeorm").FindOptionsWhere<Entity> | import("@n8n/typeorm").FindOptionsWhere<Entity>[]) => Promise<Entity[]>) & import("vitest-mock-extended").CalledWithMock<Promise<import("@n8n/typeorm").ObjectLiteral[]>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, where: import("@n8n/typeorm").FindOptionsWhere<import("@n8n/typeorm").ObjectLiteral> | import("@n8n/typeorm").FindOptionsWhere<import("@n8n/typeorm").ObjectLiteral>[]]>;
|
|
76
|
+
findAndCount: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, options?: import("@n8n/typeorm").FindManyOptions<Entity>) => Promise<[Entity[], number]>) & import("vitest-mock-extended").CalledWithMock<Promise<[import("@n8n/typeorm").ObjectLiteral[], number]>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, options?: import("@n8n/typeorm").FindManyOptions<import("@n8n/typeorm").ObjectLiteral> | undefined]>;
|
|
77
|
+
findAndCountBy: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, where: import("@n8n/typeorm").FindOptionsWhere<Entity> | import("@n8n/typeorm").FindOptionsWhere<Entity>[]) => Promise<[Entity[], number]>) & import("vitest-mock-extended").CalledWithMock<Promise<[import("@n8n/typeorm").ObjectLiteral[], number]>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, where: import("@n8n/typeorm").FindOptionsWhere<import("@n8n/typeorm").ObjectLiteral> | import("@n8n/typeorm").FindOptionsWhere<import("@n8n/typeorm").ObjectLiteral>[]]>;
|
|
78
|
+
findByIds: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, ids: any[]) => Promise<Entity[]>) & import("vitest-mock-extended").CalledWithMock<Promise<import("@n8n/typeorm").ObjectLiteral[]>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, ids: any[]]>;
|
|
79
|
+
findOne: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, options: import("@n8n/typeorm").FindOneOptions<Entity>) => Promise<Entity | null>) & import("vitest-mock-extended").CalledWithMock<Promise<import("@n8n/typeorm").ObjectLiteral | null>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, options: import("@n8n/typeorm").FindOneOptions<import("@n8n/typeorm").ObjectLiteral>]>;
|
|
80
|
+
findOneBy: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, where: import("@n8n/typeorm").FindOptionsWhere<Entity> | import("@n8n/typeorm").FindOptionsWhere<Entity>[]) => Promise<Entity | null>) & import("vitest-mock-extended").CalledWithMock<Promise<import("@n8n/typeorm").ObjectLiteral | null>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, where: import("@n8n/typeorm").FindOptionsWhere<import("@n8n/typeorm").ObjectLiteral> | import("@n8n/typeorm").FindOptionsWhere<import("@n8n/typeorm").ObjectLiteral>[]]>;
|
|
81
|
+
findOneById: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, id: number | string | Date) => Promise<Entity | null>) & import("vitest-mock-extended").CalledWithMock<Promise<import("@n8n/typeorm").ObjectLiteral | null>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, id: string | number | Date]>;
|
|
82
|
+
findOneOrFail: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, options: import("@n8n/typeorm").FindOneOptions<Entity>) => Promise<Entity>) & import("vitest-mock-extended").CalledWithMock<Promise<import("@n8n/typeorm").ObjectLiteral>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, options: import("@n8n/typeorm").FindOneOptions<import("@n8n/typeorm").ObjectLiteral>]>;
|
|
83
|
+
findOneByOrFail: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, where: import("@n8n/typeorm").FindOptionsWhere<Entity> | import("@n8n/typeorm").FindOptionsWhere<Entity>[]) => Promise<Entity>) & import("vitest-mock-extended").CalledWithMock<Promise<import("@n8n/typeorm").ObjectLiteral>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, where: import("@n8n/typeorm").FindOptionsWhere<import("@n8n/typeorm").ObjectLiteral> | import("@n8n/typeorm").FindOptionsWhere<import("@n8n/typeorm").ObjectLiteral>[]]>;
|
|
84
|
+
clear: (<Entity>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>) => Promise<void>) & import("vitest-mock-extended").CalledWithMock<Promise<void>, [entityClass: import("@n8n/typeorm").EntityTarget<unknown>]>;
|
|
85
|
+
increment: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, conditions: any, propertyPath: string, value: number | string) => Promise<import("@n8n/typeorm").UpdateResult>) & import("vitest-mock-extended").CalledWithMock<Promise<import("@n8n/typeorm").UpdateResult>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, conditions: any, propertyPath: string, value: string | number]>;
|
|
86
|
+
decrement: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(entityClass: import("@n8n/typeorm").EntityTarget<Entity>, conditions: any, propertyPath: string, value: number | string) => Promise<import("@n8n/typeorm").UpdateResult>) & import("vitest-mock-extended").CalledWithMock<Promise<import("@n8n/typeorm").UpdateResult>, [entityClass: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>, conditions: any, propertyPath: string, value: string | number]>;
|
|
87
|
+
getRepository: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(target: import("@n8n/typeorm").EntityTarget<Entity>) => import("@n8n/typeorm").Repository<Entity>) & import("vitest-mock-extended").CalledWithMock<import("@n8n/typeorm").Repository<import("@n8n/typeorm").ObjectLiteral>, [target: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>]>;
|
|
88
|
+
getTreeRepository: (<Entity extends import("@n8n/typeorm").ObjectLiteral>(target: import("@n8n/typeorm").EntityTarget<Entity>) => import("@n8n/typeorm").TreeRepository<Entity>) & import("vitest-mock-extended").CalledWithMock<import("@n8n/typeorm").TreeRepository<import("@n8n/typeorm").ObjectLiteral>, [target: import("@n8n/typeorm").EntityTarget<import("@n8n/typeorm").ObjectLiteral>]>;
|
|
89
|
+
withRepository: (<Entity extends import("@n8n/typeorm").ObjectLiteral, R extends import("@n8n/typeorm").Repository<any>>(repository: R & import("@n8n/typeorm").Repository<Entity>) => R) & import("vitest-mock-extended").CalledWithMock<import("@n8n/typeorm").Repository<any>, [repository: import("@n8n/typeorm").Repository<any> & import("@n8n/typeorm").Repository<import("@n8n/typeorm").ObjectLiteral>]>;
|
|
90
|
+
getCustomRepository: (<T>(customRepository: import("@n8n/typeorm").ObjectType<T>) => T) & import("vitest-mock-extended").CalledWithMock<unknown, [customRepository: import("@n8n/typeorm").ObjectType<unknown>]>;
|
|
91
|
+
release: (() => Promise<void>) & import("vitest-mock-extended").CalledWithMock<Promise<void>, []>;
|
|
51
92
|
} & EntityManager;
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.mockEntityManager = void 0;
|
|
4
4
|
const typeorm_1 = require("@n8n/typeorm");
|
|
5
|
-
const
|
|
5
|
+
const vitest_mock_extended_1 = require("vitest-mock-extended");
|
|
6
6
|
const mock_instance_1 = require("./mock-instance");
|
|
7
7
|
const mockEntityManager = (entityClass) => {
|
|
8
8
|
const entityManager = (0, mock_instance_1.mockInstance)(typeorm_1.EntityManager);
|
|
9
9
|
const dataSource = (0, mock_instance_1.mockInstance)(typeorm_1.DataSource, {
|
|
10
10
|
manager: entityManager,
|
|
11
|
-
getMetadata: () => (0,
|
|
11
|
+
getMetadata: () => (0, vitest_mock_extended_1.mock)({ target: entityClass }),
|
|
12
12
|
});
|
|
13
13
|
Object.assign(entityManager, { connection: dataSource });
|
|
14
14
|
return entityManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-entity-manager.js","sourceRoot":"","sources":["../../../src/utils/test-utils/mock-entity-manager.ts"],"names":[],"mappings":";;;AAAA,0CAA8E;
|
|
1
|
+
{"version":3,"file":"mock-entity-manager.js","sourceRoot":"","sources":["../../../src/utils/test-utils/mock-entity-manager.ts"],"names":[],"mappings":";;;AAAA,0CAA8E;AAE9E,+DAA4C;AAE5C,mDAA+C;AAExC,MAAM,iBAAiB,GAAG,CAAC,WAAkB,EAAE,EAAE;IACvD,MAAM,aAAa,GAAG,IAAA,4BAAY,EAAC,uBAAa,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,IAAA,4BAAY,EAAC,oBAAU,EAAE;QAC3C,OAAO,EAAE,aAAa;QACtB,WAAW,EAAE,GAAG,EAAE,CAAC,IAAA,2BAAI,EAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;KAChE,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IACzD,OAAO,aAAa,CAAC;AACtB,CAAC,CAAC;AARW,QAAA,iBAAiB,qBAQ5B"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type Constructable } from '@n8n/di';
|
|
2
|
-
import { mock } from '
|
|
3
|
-
export declare const mockInstance: <T>(serviceClass: Constructable<T>, data?: Parameters<typeof mock<T>>[0]) => { [K in keyof T]: T[K] extends (...args: infer A) => infer B ? import("
|
|
2
|
+
import { mock } from 'vitest-mock-extended';
|
|
3
|
+
export declare const mockInstance: <T>(serviceClass: Constructable<T>, data?: Parameters<typeof mock<T>>[0]) => { [K in keyof T]: T[K] extends (...args: infer A) => infer B ? T[K] & import("vitest-mock-extended").CalledWithMock<B, A> : T[K]; } & T;
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.mockInstance = void 0;
|
|
4
4
|
const di_1 = require("@n8n/di");
|
|
5
|
-
const
|
|
5
|
+
const vitest_mock_extended_1 = require("vitest-mock-extended");
|
|
6
6
|
const mockInstance = (serviceClass, data) => {
|
|
7
|
-
const instance = (0,
|
|
7
|
+
const instance = (0, vitest_mock_extended_1.mock)(data);
|
|
8
8
|
di_1.Container.set(serviceClass, instance);
|
|
9
9
|
return instance;
|
|
10
10
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-instance.js","sourceRoot":"","sources":["../../../src/utils/test-utils/mock-instance.ts"],"names":[],"mappings":";;;AAAA,gCAAwD;AACxD
|
|
1
|
+
{"version":3,"file":"mock-instance.js","sourceRoot":"","sources":["../../../src/utils/test-utils/mock-instance.ts"],"names":[],"mappings":";;;AAAA,gCAAwD;AACxD,+DAA4C;AAErC,MAAM,YAAY,GAAG,CAC3B,YAA8B,EAC9B,IAAoC,EACnC,EAAE;IACH,MAAM,QAAQ,GAAG,IAAA,2BAAI,EAAI,IAAI,CAAC,CAAC;IAC/B,cAAS,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtC,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC;AAPW,QAAA,YAAY,gBAOvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-url.validator.js","sourceRoot":"","sources":["../../../src/utils/validators/no-url.validator.ts"],"names":[],"mappings":";;;;;;;;AAgBA,sBAUC;AAzBD,qDAAyE;AAEzE,MAAM,SAAS,GAAG,wCAAwC,CAAC;AAG3D,IAAM,eAAe,GAArB,MAAM,eAAe;IACpB,QAAQ,CAAC,KAAa;QACrB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,cAAc;QACb,OAAO,
|
|
1
|
+
{"version":3,"file":"no-url.validator.js","sourceRoot":"","sources":["../../../src/utils/validators/no-url.validator.ts"],"names":[],"mappings":";;;;;;;;AAgBA,sBAUC;AAzBD,qDAAyE;AAEzE,MAAM,SAAS,GAAG,wCAAwC,CAAC;AAG3D,IAAM,eAAe,GAArB,MAAM,eAAe;IACpB,QAAQ,CAAC,KAAa;QACrB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,cAAc;QACb,OAAO,sBAAsB,CAAC;IAC/B,CAAC;CACD,CAAA;AARK,eAAe;IADpB,IAAA,qCAAmB,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;GAC/C,eAAe,CAQpB;AAED,SAAgB,KAAK,CAAC,OAA2B;IAChD,OAAO,UAAU,MAAc,EAAE,YAAoB;QACpD,IAAA,mCAAiB,EAAC;YACjB,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY;YACZ,OAAO;YACP,SAAS,EAAE,eAAe;SAC1B,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-xss.validator.js","sourceRoot":"","sources":["../../../src/utils/validators/no-xss.validator.ts"],"names":[],"mappings":";;;;;;;;;;;AAsBA,sBAUC;AA/BD,qDAAyE;AACzE,8CAAsB;AAGtB,IAAM,eAAe,GAArB,MAAM,eAAe;IACpB,QAAQ,CAAC,KAAc;QACtB,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE5C,OAAO,CACN,KAAK;YACL,IAAA,aAAG,EAAC,KAAK,EAAE;gBACV,SAAS,EAAE,EAAE;aACb,CAAC,CACF,CAAC;IACH,CAAC;IAED,cAAc;QACb,OAAO,
|
|
1
|
+
{"version":3,"file":"no-xss.validator.js","sourceRoot":"","sources":["../../../src/utils/validators/no-xss.validator.ts"],"names":[],"mappings":";;;;;;;;;;;AAsBA,sBAUC;AA/BD,qDAAyE;AACzE,8CAAsB;AAGtB,IAAM,eAAe,GAArB,MAAM,eAAe;IACpB,QAAQ,CAAC,KAAc;QACtB,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE5C,OAAO,CACN,KAAK;YACL,IAAA,aAAG,EAAC,KAAK,EAAE;gBACV,SAAS,EAAE,EAAE;aACb,CAAC,CACF,CAAC;IACH,CAAC;IAED,cAAc;QACb,OAAO,2DAA2D,CAAC;IACpE,CAAC;CACD,CAAA;AAfK,eAAe;IADpB,IAAA,qCAAmB,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;GAC/C,eAAe,CAepB;AAED,SAAgB,KAAK,CAAC,OAA2B;IAChD,OAAO,UAAU,MAAc,EAAE,YAAoB;QACpD,IAAA,mCAAiB,EAAC;YACjB,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY;YACZ,OAAO;YACP,SAAS,EAAE,eAAe;SAC1B,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@n8n/db",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.26.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "src/index.ts",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"files": [
|
|
8
8
|
"dist/**/*",
|
|
9
|
-
"
|
|
10
|
-
"
|
|
9
|
+
"LICENSE.md",
|
|
10
|
+
"LICENSE_EE.md"
|
|
11
11
|
],
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@n8n/typeorm": "0.3.20-17",
|
|
@@ -17,24 +17,29 @@
|
|
|
17
17
|
"nanoid": "3.3.8",
|
|
18
18
|
"p-lazy": "3.1.0",
|
|
19
19
|
"reflect-metadata": "0.2.2",
|
|
20
|
-
"uuid": "
|
|
20
|
+
"uuid": "11.1.1",
|
|
21
21
|
"xss": "1.0.15",
|
|
22
22
|
"zod": "3.25.67",
|
|
23
|
-
"@n8n/
|
|
24
|
-
"@n8n/api-types": "1.
|
|
25
|
-
"@n8n/
|
|
26
|
-
"@n8n/
|
|
27
|
-
"@n8n/
|
|
28
|
-
"@n8n/
|
|
29
|
-
"@n8n/utils": "1.
|
|
30
|
-
"n8n
|
|
31
|
-
"n8n-
|
|
32
|
-
"
|
|
23
|
+
"@n8n/backend-common": "1.26.0",
|
|
24
|
+
"@n8n/api-types": "1.26.0",
|
|
25
|
+
"@n8n/config": "2.24.0",
|
|
26
|
+
"@n8n/di": "0.13.0",
|
|
27
|
+
"@n8n/constants": "0.26.0",
|
|
28
|
+
"@n8n/decorators": "1.26.0",
|
|
29
|
+
"@n8n/utils": "1.34.0",
|
|
30
|
+
"@n8n/permissions": "0.63.0",
|
|
31
|
+
"n8n-core": "2.26.0",
|
|
32
|
+
"n8n-workflow": "2.26.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/lodash": "4.17.17",
|
|
36
|
+
"@vitest/coverage-v8": "4.1.1",
|
|
36
37
|
"express": "5.1.0",
|
|
37
|
-
"
|
|
38
|
+
"typescript": "6.0.2",
|
|
39
|
+
"vitest": "^4.1.1",
|
|
40
|
+
"vitest-mock-extended": "^3.1.0",
|
|
41
|
+
"@n8n/vitest-config": "1.14.0",
|
|
42
|
+
"@n8n/typescript-config": "1.5.0"
|
|
38
43
|
},
|
|
39
44
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
40
45
|
"homepage": "https://n8n.io",
|
|
@@ -51,14 +56,15 @@
|
|
|
51
56
|
"dev": "pnpm watch",
|
|
52
57
|
"typecheck": "tsc --noEmit",
|
|
53
58
|
"build": "tsc -p tsconfig.build.json",
|
|
59
|
+
"build:unchecked": "tsc -p tsconfig.build.json --noCheck",
|
|
54
60
|
"format": "biome format --write .",
|
|
55
61
|
"format:check": "biome ci .",
|
|
56
62
|
"lint": "eslint . --quiet",
|
|
57
63
|
"lint:fix": "eslint . --fix",
|
|
58
64
|
"watch": "tsc -p tsconfig.build.json --watch",
|
|
59
|
-
"test": "
|
|
60
|
-
"test:unit": "
|
|
61
|
-
"test:dev": "
|
|
65
|
+
"test": "vitest run",
|
|
66
|
+
"test:unit": "vitest run",
|
|
67
|
+
"test:dev": "vitest --silent=false",
|
|
62
68
|
"migration:new": "node scripts/new-migration.mjs"
|
|
63
69
|
}
|
|
64
70
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|