n8n 1.100.2 → 1.101.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/abstract-server.d.ts +1 -1
- package/dist/abstract-server.js +4 -4
- package/dist/abstract-server.js.map +1 -1
- package/dist/active-executions.d.ts +2 -1
- package/dist/active-executions.js +20 -0
- package/dist/active-executions.js.map +1 -1
- package/dist/auth/auth.service.d.ts +1 -2
- package/dist/auth/auth.service.js +7 -6
- package/dist/auth/auth.service.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/collaboration/collaboration.state.js +1 -1
- package/dist/collaboration/collaboration.state.js.map +1 -1
- package/dist/commands/base-command.d.ts +1 -1
- package/dist/commands/base-command.js +2 -2
- package/dist/commands/base-command.js.map +1 -1
- package/dist/commands/db/revert.js +1 -2
- package/dist/commands/db/revert.js.map +1 -1
- package/dist/config/index.d.ts +0 -3
- package/dist/config/schema.d.ts +0 -18
- package/dist/config/schema.js +0 -18
- package/dist/config/schema.js.map +1 -1
- package/dist/constants.d.ts +0 -22
- package/dist/constants.js +4 -25
- package/dist/constants.js.map +1 -1
- package/dist/controller.registry.d.ts +3 -1
- package/dist/controller.registry.js +11 -3
- package/dist/controller.registry.js.map +1 -1
- package/dist/controllers/ai.controller.d.ts +1 -1
- package/dist/controllers/ai.controller.js.map +1 -1
- package/dist/controllers/api-keys.controller.d.ts +1 -1
- package/dist/controllers/api-keys.controller.js.map +1 -1
- package/dist/controllers/auth.controller.d.ts +2 -2
- package/dist/controllers/auth.controller.js.map +1 -1
- package/dist/controllers/cta.controller.d.ts +1 -1
- package/dist/controllers/cta.controller.js.map +1 -1
- package/dist/controllers/dynamic-node-parameters.controller.d.ts +1 -1
- package/dist/controllers/dynamic-node-parameters.controller.js.map +1 -1
- package/dist/controllers/e2e.controller.d.ts +65 -0
- package/dist/controllers/e2e.controller.js +271 -0
- package/dist/controllers/e2e.controller.js.map +1 -0
- package/dist/controllers/folder.controller.d.ts +1 -1
- package/dist/controllers/folder.controller.js.map +1 -1
- package/dist/controllers/invitation.controller.d.ts +2 -2
- package/dist/controllers/invitation.controller.js.map +1 -1
- package/dist/controllers/me.controller.d.ts +2 -2
- package/dist/controllers/me.controller.js.map +1 -1
- package/dist/controllers/mfa.controller.d.ts +2 -2
- package/dist/controllers/mfa.controller.js.map +1 -1
- package/dist/controllers/oauth/abstract-oauth.controller.d.ts +2 -2
- package/dist/controllers/oauth/abstract-oauth.controller.js +3 -2
- package/dist/controllers/oauth/abstract-oauth.controller.js.map +1 -1
- package/dist/controllers/owner.controller.d.ts +1 -2
- package/dist/controllers/owner.controller.js.map +1 -1
- package/dist/controllers/project.controller.d.ts +4 -3
- package/dist/controllers/project.controller.js +11 -3
- package/dist/controllers/project.controller.js.map +1 -1
- package/dist/controllers/tags.controller.d.ts +1 -1
- package/dist/controllers/tags.controller.js.map +1 -1
- package/dist/controllers/users.controller.d.ts +4 -2
- package/dist/controllers/users.controller.js.map +1 -1
- package/dist/credentials/credentials.controller.d.ts +2 -2
- package/dist/credentials/credentials.controller.js.map +1 -1
- package/dist/environments.ee/source-control/source-control-helper.ee.js +20 -4
- package/dist/environments.ee/source-control/source-control-helper.ee.js.map +1 -1
- package/dist/environments.ee/source-control/source-control-scoped.service.d.ts +2 -2
- package/dist/environments.ee/source-control/source-control-scoped.service.js.map +1 -1
- package/dist/environments.ee/source-control/source-control.controller.ee.d.ts +1 -1
- package/dist/environments.ee/source-control/source-control.controller.ee.js.map +1 -1
- package/dist/environments.ee/source-control/types/requests.d.ts +1 -1
- package/dist/evaluation.ee/test-runs.types.ee.d.ts +2 -1
- package/dist/eventbus/event-bus.controller.d.ts +1 -1
- package/dist/eventbus/event-bus.controller.js.map +1 -1
- package/dist/events/events.controller.d.ts +1 -1
- package/dist/events/events.controller.js.map +1 -1
- package/dist/events/maps/relay.event-map.d.ts +2 -2
- package/dist/executions/execution.types.d.ts +1 -2
- package/dist/interfaces.d.ts +2 -1
- package/dist/ldap.ee/types.d.ts +1 -2
- package/dist/license/license.controller.d.ts +2 -1
- package/dist/license/license.controller.js.map +1 -1
- package/dist/license.d.ts +1 -0
- package/dist/license.js +17 -1
- package/dist/license.js.map +1 -1
- package/dist/manual-execution.service.js +1 -7
- package/dist/manual-execution.service.js.map +1 -1
- package/dist/metrics/prometheus-metrics.service.js +3 -2
- package/dist/metrics/prometheus-metrics.service.js.map +1 -1
- package/dist/modules/external-secrets.ee/types.d.ts +1 -1
- package/dist/modules/external-secrets.ee/types.js.map +1 -1
- package/dist/modules/insights/database/entities/insights-raw.d.ts +1 -1
- package/dist/modules/insights/database/repositories/insights-by-period.repository.d.ts +11 -10
- package/dist/modules/insights/database/repositories/insights-by-period.repository.js +39 -32
- package/dist/modules/insights/database/repositories/insights-by-period.repository.js.map +1 -1
- package/dist/modules/insights/insights-pruning.service.js +1 -1
- package/dist/modules/insights/insights-pruning.service.js.map +1 -1
- package/dist/modules/insights/insights.controller.d.ts +3 -1
- package/dist/modules/insights/insights.controller.js +19 -2
- package/dist/modules/insights/insights.controller.js.map +1 -1
- package/dist/modules/insights/insights.service.d.ts +15 -12
- package/dist/modules/insights/insights.service.js +13 -10
- package/dist/modules/insights/insights.service.js.map +1 -1
- package/dist/public-api/types.d.ts +2 -2
- package/dist/public-api/v1/handlers/audit/audit.handler.d.ts +1 -1
- package/dist/public-api/v1/handlers/credentials/credentials.handler.d.ts +2 -2
- package/dist/public-api/v1/handlers/projects/projects.handler.d.ts +1 -1
- package/dist/public-api/v1/handlers/projects/projects.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/source-control/source-control.handler.d.ts +1 -1
- package/dist/public-api/v1/handlers/source-control/source-control.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/tags/tags.handler.d.ts +5 -5
- package/dist/public-api/v1/handlers/users/users.handler.ee.d.ts +1 -1
- package/dist/public-api/v1/handlers/users/users.handler.ee.js.map +1 -1
- package/dist/public-api/v1/handlers/variables/variables.handler.d.ts +4 -4
- package/dist/public-api/v1/handlers/workflows/workflows.handler.d.ts +8 -8
- package/dist/public-api/v1/shared/middlewares/global.middleware.d.ts +1 -1
- package/dist/public-api/v1/shared/middlewares/global.middleware.js.map +1 -1
- package/dist/push/types.d.ts +1 -2
- package/dist/requests.d.ts +1 -12
- package/dist/requests.js.map +1 -1
- package/dist/scaling/job-processor.js +16 -1
- package/dist/scaling/job-processor.js.map +1 -1
- package/dist/scaling/multi-main-setup.ee.js +1 -1
- package/dist/scaling/multi-main-setup.ee.js.map +1 -1
- package/dist/scaling/scaling.service.js +10 -6
- package/dist/scaling/scaling.service.js.map +1 -1
- package/dist/scaling/scaling.types.d.ts +8 -2
- package/dist/scaling/worker-server.d.ts +1 -1
- package/dist/scaling/worker-server.js +2 -2
- package/dist/scaling/worker-server.js.map +1 -1
- package/dist/server.js +8 -7
- package/dist/server.js.map +1 -1
- package/dist/services/cache/cache.service.js +1 -1
- package/dist/services/cache/cache.service.js.map +1 -1
- package/dist/services/folder.service.d.ts +1 -0
- package/dist/services/folder.service.js +12 -0
- package/dist/services/folder.service.js.map +1 -1
- package/dist/services/frontend.service.js +2 -0
- package/dist/services/frontend.service.js.map +1 -1
- package/dist/services/hooks.service.d.ts +1 -2
- package/dist/services/hooks.service.js.map +1 -1
- package/dist/services/last-active-at.service.d.ts +12 -0
- package/dist/services/last-active-at.service.js +55 -0
- package/dist/services/last-active-at.service.js.map +1 -0
- package/dist/services/project.service.ee.d.ts +4 -1
- package/dist/services/project.service.ee.js +2 -0
- package/dist/services/project.service.ee.js.map +1 -1
- package/dist/services/pruning/executions-pruning.service.d.ts +1 -2
- package/dist/services/pruning/executions-pruning.service.js +2 -3
- package/dist/services/pruning/executions-pruning.service.js.map +1 -1
- package/dist/services/public-api-key.service.d.ts +4 -3
- package/dist/services/public-api-key.service.js +6 -2
- package/dist/services/public-api-key.service.js.map +1 -1
- package/dist/services/url.service.js +1 -5
- package/dist/services/url.service.js.map +1 -1
- package/dist/services/workflow-loader.service.js +1 -1
- package/dist/services/workflow-loader.service.js.map +1 -1
- package/dist/sso.ee/oidc/routes/oidc.controller.ee.d.ts +1 -1
- package/dist/sso.ee/oidc/routes/oidc.controller.ee.js.map +1 -1
- package/dist/sso.ee/saml/routes/saml.controller.ee.d.ts +2 -1
- package/dist/sso.ee/saml/routes/saml.controller.ee.js.map +1 -1
- package/dist/task-runners/task-broker/auth/task-broker-auth.service.js +1 -1
- package/dist/task-runners/task-broker/auth/task-broker-auth.service.js.map +1 -1
- package/dist/task-runners/task-broker/task-broker-ws-server.js +5 -4
- package/dist/task-runners/task-broker/task-broker-ws-server.js.map +1 -1
- package/dist/task-runners/task-broker/task-broker.service.js +1 -1
- package/dist/task-runners/task-broker/task-broker.service.js.map +1 -1
- package/dist/task-runners/task-runner-process-restart-loop-detector.js +1 -1
- package/dist/task-runners/task-runner-process-restart-loop-detector.js.map +1 -1
- package/dist/user-management/email/interfaces.d.ts +1 -0
- package/dist/user-management/email/templates/project-shared.handlebars +196 -0
- package/dist/user-management/email/user-management-mailer.d.ts +14 -2
- package/dist/user-management/email/user-management-mailer.js +73 -52
- package/dist/user-management/email/user-management-mailer.js.map +1 -1
- package/dist/webhooks/webhook-helpers.js +12 -4
- package/dist/webhooks/webhook-helpers.js.map +1 -1
- package/dist/workflow-execute-additional-data.js +3 -0
- package/dist/workflow-execute-additional-data.js.map +1 -1
- package/dist/workflow-runner.js +8 -0
- package/dist/workflow-runner.js.map +1 -1
- package/dist/workflows/workflow-history.ee/workflow-history-manager.ee.js +1 -1
- package/dist/workflows/workflow-history.ee/workflow-history-manager.ee.js.map +1 -1
- package/dist/workflows/workflow.request.d.ts +2 -1
- package/dist/workflows/workflows.controller.d.ts +1 -2
- package/dist/workflows/workflows.controller.js.map +1 -1
- package/package.json +20 -21
- package/dist/databases/db-connection-options.d.ts +0 -21
- package/dist/databases/db-connection-options.js +0 -144
- package/dist/databases/db-connection-options.js.map +0 -1
- package/dist/databases/db-connection.d.ts +0 -23
- package/dist/databases/db-connection.js +0 -108
- package/dist/databases/db-connection.js.map +0 -1
- package/dist/utils/sql.d.ts +0 -1
- package/dist/utils/sql.js +0 -13
- package/dist/utils/sql.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Logger } from '@n8n/backend-common';
|
|
2
2
|
import { GlobalConfig } from '@n8n/config';
|
|
3
|
+
import { DbConnection } from '@n8n/db';
|
|
3
4
|
import express from 'express';
|
|
4
5
|
import type { Server } from 'http';
|
|
5
|
-
import { DbConnection } from './databases/db-connection';
|
|
6
6
|
import { ExternalHooks } from './external-hooks';
|
|
7
7
|
export declare abstract class AbstractServer {
|
|
8
8
|
protected logger: Logger;
|
package/dist/abstract-server.js
CHANGED
|
@@ -48,6 +48,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
48
48
|
exports.AbstractServer = void 0;
|
|
49
49
|
const backend_common_1 = require("@n8n/backend-common");
|
|
50
50
|
const config_1 = require("@n8n/config");
|
|
51
|
+
const db_1 = require("@n8n/db");
|
|
51
52
|
const decorators_1 = require("@n8n/decorators");
|
|
52
53
|
const di_1 = require("@n8n/di");
|
|
53
54
|
const compression_1 = __importDefault(require("compression"));
|
|
@@ -57,7 +58,6 @@ const promises_1 = require("fs/promises");
|
|
|
57
58
|
const isbot_1 = __importDefault(require("isbot"));
|
|
58
59
|
const config_2 = __importDefault(require("./config"));
|
|
59
60
|
const constants_1 = require("./constants");
|
|
60
|
-
const db_connection_1 = require("./databases/db-connection");
|
|
61
61
|
const service_unavailable_error_1 = require("./errors/response-errors/service-unavailable.error");
|
|
62
62
|
const external_hooks_1 = require("./external-hooks");
|
|
63
63
|
const middlewares_1 = require("./middlewares");
|
|
@@ -70,7 +70,7 @@ const webhook_request_handler_1 = require("./webhooks/webhook-request-handler");
|
|
|
70
70
|
let AbstractServer = class AbstractServer {
|
|
71
71
|
constructor() {
|
|
72
72
|
this.globalConfig = di_1.Container.get(config_1.GlobalConfig);
|
|
73
|
-
this.dbConnection = di_1.Container.get(
|
|
73
|
+
this.dbConnection = di_1.Container.get(db_1.DbConnection);
|
|
74
74
|
this.webhooksEnabled = true;
|
|
75
75
|
this.testWebhooksEnabled = false;
|
|
76
76
|
this.app = (0, express_1.default)();
|
|
@@ -82,8 +82,8 @@ let AbstractServer = class AbstractServer {
|
|
|
82
82
|
const proxyHops = this.globalConfig.proxy_hops;
|
|
83
83
|
if (proxyHops > 0)
|
|
84
84
|
this.app.set('trust proxy', proxyHops);
|
|
85
|
-
this.sslKey =
|
|
86
|
-
this.sslCert =
|
|
85
|
+
this.sslKey = this.globalConfig.ssl_key;
|
|
86
|
+
this.sslCert = this.globalConfig.ssl_cert;
|
|
87
87
|
const { endpoints } = this.globalConfig;
|
|
88
88
|
this.restEndpoint = endpoints.rest;
|
|
89
89
|
this.endpointForm = endpoints.form;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-server.js","sourceRoot":"","sources":["../src/abstract-server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAAoE;AACpE,wCAA2C;AAC3C,gDAA6C;AAC7C,gCAA6C;AAC7C,8DAAsC;AACtC,sDAA8B;AAC9B,2DAAiE;AACjE,0CAAuC;AAEvC,kDAA0B;AAE1B,sDAA8B;AAC9B,2CAAyD;AACzD,
|
|
1
|
+
{"version":3,"file":"abstract-server.js","sourceRoot":"","sources":["../src/abstract-server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAAoE;AACpE,wCAA2C;AAC3C,gCAAuC;AACvC,gDAA6C;AAC7C,gCAA6C;AAC7C,8DAAsC;AACtC,sDAA8B;AAC9B,2DAAiE;AACjE,0CAAuC;AAEvC,kDAA0B;AAE1B,sDAA8B;AAC9B,2CAAyD;AACzD,kGAA6F;AAC7F,qDAAiD;AACjD,+CAA0E;AAC1E,uDAA4D;AAC5D,4DAAwD;AACxD,4DAAwD;AACxD,4DAAwD;AACxD,kEAA8D;AAC9D,gFAA6E;AAGtE,IAAe,cAAc,GAA7B,MAAe,cAAc;IAyCnC;QAhCU,iBAAY,GAAG,cAAS,CAAC,GAAG,CAAC,qBAAY,CAAC,CAAC;QAE3C,iBAAY,GAAG,cAAS,CAAC,GAAG,CAAC,iBAAY,CAAC,CAAC;QAwB3C,oBAAe,GAAG,IAAI,CAAC;QAEvB,wBAAmB,GAAG,KAAK,CAAC;QAKrC,IAAI,CAAC,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,IAAA,2BAAiB,EAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,yBAAa,CAAC,CAAC;QAErC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;QAC/C,IAAI,SAAS,GAAG,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QAE1D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;QAE1C,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC;QAEnC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,QAAQ,CAAC;QAC3C,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC,WAAW,CAAC;QAEjD,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC,WAAW,CAAC;QACjD,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,cAAc,CAAC;QAEvD,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC;QAEzC,IAAI,CAAC,MAAM,GAAG,cAAS,CAAC,GAAG,CAAC,uBAAM,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,SAAS;IAEf,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC/B,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAGrB,MAAM,EAAE,wBAAwB,EAAE,GAAG,wDAAa,cAAc,GAAC,CAAC;QAClE,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAEO,sBAAsB;QAE7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAA,qBAAW,GAAE,CAAC,CAAC;QAG5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,2BAAa,CAAC,CAAC;IAC7B,CAAC;IAEO,mBAAmB;QAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,4BAAc,CAAC,CAAC;IAC9B,CAAC;IAES,eAAe,KAAI,CAAC;IAEtB,KAAK,CAAC,gBAAgB;QAE7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACtC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;QAE9C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAChD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC;YAChD,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;gBAC3B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACP,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAC3C,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAChC,IAAI,eAAe,CAAC,SAAS,EAAE,CAAC;gBAC/B,IAAI,eAAe,CAAC,QAAQ;oBAAE,IAAI,EAAE,CAAC;;oBAChC,GAAG,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAClD,CAAC;;gBAAM,IAAA,mCAAiB,EAAC,GAAG,EAAE,IAAI,mDAAuB,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI;QACT,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACtC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;QAEvC,IAAI,QAAQ,KAAK,OAAO,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,wDAAa,OAAO,GAAC,CAAC;YACpC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,YAAY,CAC/B;gBACC,GAAG,EAAE,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;gBACxC,IAAI,EAAE,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;aAC1C,EACD,GAAG,CACH,CAAC;QACH,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,GAAG,wDAAa,MAAM,GAAC,CAAC;YAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,cAAS,CAAC,GAAG,CAAC,qBAAY,CAAC,CAAC;QAEtE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAA+B,EAAE,EAAE;YAC3D,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CACf,cAAc,IAAI,0EAA0E,CAC5F,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAEzF,IAAI,CAAC,aAAa,GAAG,cAAS,CAAC,GAAG,CAAC,8BAAa,CAAC,CAAC;QAElD,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,OAAO,UAAU,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,KAAK;QACV,IAAI,CAAC,uBAAM,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAChC,IAAI,CAAC,eAAe,EAAE,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAG9B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,0BAA0B,GAAG,IAAA,iDAAuB,EAAC,cAAS,CAAC,GAAG,CAAC,4BAAY,CAAC,CAAC,CAAC;YAExF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,QAAQ,EAAE,0BAA0B,CAAC,CAAC;YAGxE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,QAAQ,EAAE,0BAA0B,CAAC,CAAC;YAG3E,IAAI,CAAC,GAAG,CAAC,GAAG,CACX,IAAI,IAAI,CAAC,mBAAmB,kBAAkB,EAC9C,IAAA,iDAAuB,EAAC,cAAS,CAAC,GAAG,CAAC,4BAAY,CAAC,CAAC,CACpD,CAAC;YAGF,IAAI,CAAC,GAAG,CAAC,GAAG,CACX,IAAI,IAAI,CAAC,sBAAsB,kBAAkB,EACjD,IAAA,iDAAuB,EAAC,cAAS,CAAC,GAAG,CAAC,kCAAe,CAAC,CAAC,CACvD,CAAC;YAGF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,QAAQ,EAAE,0BAA0B,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,MAAM,0BAA0B,GAAG,IAAA,iDAAuB,EAAC,cAAS,CAAC,GAAG,CAAC,4BAAY,CAAC,CAAC,CAAC;YAGxF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,QAAQ,EAAE,0BAA0B,CAAC,CAAC;YAC5E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,mBAAmB,QAAQ,EAAE,0BAA0B,CAAC,CAAC;YAG/E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,QAAQ,EAAE,0BAA0B,CAAC,CAAC;QAC5E,CAAC;QAGD,MAAM,UAAU,GAAG,eAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAC/B,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,SAAS,SAAS,GAAG,CAAC,CAAC;gBACxE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACvB,CAAC;;gBAAM,IAAI,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,IAAI,8BAAa,EAAE,CAAC;YACnB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,cAAS,CAAC,GAAG,CAAC,4BAAY,CAAC,CAAC;YAGjD,IAAI,CAAC,GAAG,CAAC,MAAM,CACd,IAAI,IAAI,CAAC,YAAY,mBAAmB,EACxC,IAAA,sBAAI,EAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CACpE,CAAC;QACH,CAAC;QAGD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,wBAAU,CAAC,CAAC;QAEzB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEvB,IAAI,CAAC,uBAAM,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,uBAAW,EAAE,CAAC,CAAC;YAE5C,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;YAC5C,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,aAAa,EAAE,CAAC,CAAC;YAC9C,CAAC;YAED,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,gBAAM,CAAC,CAAC,CAAC;QAC3D,CAAC;IACF,CAAC;IAQK,AAAN,KAAK,CAAC,UAAU;QACf,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO;QACR,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;QAEvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,QAAQ,SAAS,CAAC,CAAC;QAEtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,IAAI,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,QAAQ,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,mBAAmB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACJ,CAAC;CACD,CAAA;AA7QqB,wCAAc;AA4P7B;IADL,IAAA,uBAAU,GAAE;;;;gDAiBZ;yBA5QoB,cAAc;IADnC,IAAA,YAAO,GAAE;;GACY,cAAc,CA6QnC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Logger } from '@n8n/backend-common';
|
|
2
2
|
import { ExecutionRepository } from '@n8n/db';
|
|
3
|
-
import type { IDeferredPromise, IExecuteResponsePromiseData, IRun, ExecutionStatus, IWorkflowExecutionDataProcess } from 'n8n-workflow';
|
|
3
|
+
import type { IDeferredPromise, IExecuteResponsePromiseData, IRun, ExecutionStatus, IWorkflowExecutionDataProcess, StructuredChunk } from 'n8n-workflow';
|
|
4
4
|
import type PCancelable from 'p-cancelable';
|
|
5
5
|
import type { IExecutingWorkflowData, IExecutionsCurrentSummary } from './interfaces';
|
|
6
6
|
import { ConcurrencyControlService } from './concurrency/concurrency-control.service';
|
|
@@ -15,6 +15,7 @@ export declare class ActiveExecutions {
|
|
|
15
15
|
attachWorkflowExecution(executionId: string, workflowExecution: PCancelable<IRun>): void;
|
|
16
16
|
attachResponsePromise(executionId: string, responsePromise: IDeferredPromise<IExecuteResponsePromiseData>): void;
|
|
17
17
|
resolveResponsePromise(executionId: string, response: IExecuteResponsePromiseData): void;
|
|
18
|
+
sendChunk(executionId: string, chunkText: StructuredChunk): void;
|
|
18
19
|
stopExecution(executionId: string): void;
|
|
19
20
|
finalizeExecution(executionId: string, fullRunData?: IRun): void;
|
|
20
21
|
resolveExecutionResponsePromise(executionId: string): void;
|
|
@@ -75,6 +75,7 @@ let ActiveExecutions = class ActiveExecutions {
|
|
|
75
75
|
postExecutePromise,
|
|
76
76
|
status: executionStatus,
|
|
77
77
|
responsePromise: resumingExecution?.responsePromise,
|
|
78
|
+
httpResponse: executionData.httpResponse ?? undefined,
|
|
78
79
|
};
|
|
79
80
|
this.activeExecutions[executionId] = execution;
|
|
80
81
|
void postExecutePromise.promise
|
|
@@ -106,6 +107,13 @@ let ActiveExecutions = class ActiveExecutions {
|
|
|
106
107
|
const execution = this.activeExecutions[executionId];
|
|
107
108
|
execution?.responsePromise?.resolve(response);
|
|
108
109
|
}
|
|
110
|
+
sendChunk(executionId, chunkText) {
|
|
111
|
+
const execution = this.activeExecutions[executionId];
|
|
112
|
+
if (execution?.httpResponse) {
|
|
113
|
+
execution?.httpResponse.write(JSON.stringify(chunkText) + '\n');
|
|
114
|
+
execution?.httpResponse.flush();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
109
117
|
stopExecution(executionId) {
|
|
110
118
|
const execution = this.activeExecutions[executionId];
|
|
111
119
|
if (execution === undefined) {
|
|
@@ -126,6 +134,18 @@ let ActiveExecutions = class ActiveExecutions {
|
|
|
126
134
|
if (!this.has(executionId))
|
|
127
135
|
return;
|
|
128
136
|
const execution = this.getExecutionOrFail(executionId);
|
|
137
|
+
if (execution.executionData.httpResponse) {
|
|
138
|
+
try {
|
|
139
|
+
this.logger.debug('Closing response for execution', { executionId });
|
|
140
|
+
execution.executionData.httpResponse.end();
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
this.logger.error('Error closing streaming response', {
|
|
144
|
+
executionId,
|
|
145
|
+
error: error.message,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
129
149
|
execution.postExecutePromise.resolve(fullRunData);
|
|
130
150
|
this.logger.debug('Execution finalized', { executionId });
|
|
131
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"active-executions.js","sourceRoot":"","sources":["../src/active-executions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wDAA6C;AAE7C,gCAA8C;AAC9C,gCAAkC;
|
|
1
|
+
{"version":3,"file":"active-executions.js","sourceRoot":"","sources":["../src/active-executions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { Logger } from '@n8n/backend-common';
|
|
2
2
|
import { GlobalConfig } from '@n8n/config';
|
|
3
|
-
import type { User } from '@n8n/db';
|
|
3
|
+
import type { AuthenticatedRequest, User } from '@n8n/db';
|
|
4
4
|
import { InvalidAuthTokenRepository, UserRepository } from '@n8n/db';
|
|
5
5
|
import type { NextFunction, Response } from 'express';
|
|
6
6
|
import type { StringValue as TimeUnitValue } from 'ms';
|
|
7
7
|
import { License } from '../license';
|
|
8
|
-
import type { AuthenticatedRequest } from '../requests';
|
|
9
8
|
import { JwtService } from '../services/jwt.service';
|
|
10
9
|
import { UrlService } from '../services/url.service';
|
|
11
10
|
export declare class AuthService {
|
|
@@ -15,12 +15,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.AuthService = void 0;
|
|
16
16
|
const backend_common_1 = require("@n8n/backend-common");
|
|
17
17
|
const config_1 = require("@n8n/config");
|
|
18
|
+
const constants_1 = require("@n8n/constants");
|
|
18
19
|
const db_1 = require("@n8n/db");
|
|
19
20
|
const di_1 = require("@n8n/di");
|
|
20
21
|
const crypto_1 = require("crypto");
|
|
21
22
|
const jsonwebtoken_1 = require("jsonwebtoken");
|
|
22
23
|
const config_2 = __importDefault(require("../config"));
|
|
23
|
-
const
|
|
24
|
+
const constants_2 = require("../constants");
|
|
24
25
|
const auth_error_1 = require("../errors/response-errors/auth.error");
|
|
25
26
|
const forbidden_error_1 = require("../errors/response-errors/forbidden.error");
|
|
26
27
|
const license_1 = require("../license");
|
|
@@ -45,7 +46,7 @@ let AuthService = class AuthService {
|
|
|
45
46
|
];
|
|
46
47
|
}
|
|
47
48
|
async authMiddleware(req, res, next) {
|
|
48
|
-
const token = req.cookies[
|
|
49
|
+
const token = req.cookies[constants_2.AUTH_COOKIE_NAME];
|
|
49
50
|
if (token) {
|
|
50
51
|
try {
|
|
51
52
|
const isInvalid = await this.invalidAuthTokenRepository.existsBy({ token });
|
|
@@ -68,10 +69,10 @@ let AuthService = class AuthService {
|
|
|
68
69
|
res.status(401).json({ status: 'error', message: 'Unauthorized' });
|
|
69
70
|
}
|
|
70
71
|
clearCookie(res) {
|
|
71
|
-
res.clearCookie(
|
|
72
|
+
res.clearCookie(constants_2.AUTH_COOKIE_NAME);
|
|
72
73
|
}
|
|
73
74
|
async invalidateToken(req) {
|
|
74
|
-
const token = req.cookies[
|
|
75
|
+
const token = req.cookies[constants_2.AUTH_COOKIE_NAME];
|
|
75
76
|
if (!token)
|
|
76
77
|
return;
|
|
77
78
|
try {
|
|
@@ -92,11 +93,11 @@ let AuthService = class AuthService {
|
|
|
92
93
|
if (config_2.default.getEnv('userManagement.isInstanceOwnerSetUp') &&
|
|
93
94
|
user.role !== 'global:owner' &&
|
|
94
95
|
!isWithinUsersLimit) {
|
|
95
|
-
throw new forbidden_error_1.ForbiddenError(
|
|
96
|
+
throw new forbidden_error_1.ForbiddenError(constants_2.RESPONSE_ERROR_MESSAGES.USERS_QUOTA_REACHED);
|
|
96
97
|
}
|
|
97
98
|
const token = this.issueJWT(user, browserId);
|
|
98
99
|
const { samesite, secure } = this.globalConfig.auth.cookie;
|
|
99
|
-
res.cookie(
|
|
100
|
+
res.cookie(constants_2.AUTH_COOKIE_NAME, token, {
|
|
100
101
|
maxAge: this.jwtExpiration * constants_1.Time.seconds.toMilliseconds,
|
|
101
102
|
httpOnly: true,
|
|
102
103
|
sameSite: samesite,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/auth/auth.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wDAA6C;AAC7C,wCAA2C;
|
|
1
|
+
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/auth/auth.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wDAA6C;AAC7C,wCAA2C;AAC3C,8CAAsC;AAEtC,gCAAqE;AACrE,gCAAkC;AAClC,mCAAoC;AAEpC,+CAAoE;AAGpE,sDAA8B;AAC9B,2CAAwE;AACxE,oEAAgE;AAChE,8EAA0E;AAC1E,uCAAoC;AACpC,wDAAoD;AACpD,wDAAoD;AAqB7C,IAAM,WAAW,GAAjB,MAAM,WAAW;IAIvB,YACkB,YAA0B,EAC1B,MAAc,EACd,OAAgB,EAChB,UAAsB,EACtB,UAAsB,EACtB,cAA8B,EAC9B,0BAAsD;QANtD,iBAAY,GAAZ,YAAY,CAAc;QAC1B,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAS;QAChB,eAAU,GAAV,UAAU,CAAY;QACtB,eAAU,GAAV,UAAU,CAAY;QACtB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,+BAA0B,GAA1B,0BAA0B,CAA4B;QAGvE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErD,MAAM,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC;QACjD,IAAI,CAAC,2BAA2B,GAAG;YAGlC,IAAI,YAAY,OAAO;YAGvB,IAAI,YAAY,eAAe;YAG/B,IAAI,YAAY,6BAA6B;YAC7C,IAAI,YAAY,6BAA6B;SAC7C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAyB,EAAE,GAAa,EAAE,IAAkB;QAChF,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,4BAAgB,CAAC,CAAC;QAC5C,IAAI,KAAK,EAAE,CAAC;YACX,IAAI,CAAC;gBACJ,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC5E,IAAI,SAAS;oBAAE,MAAM,IAAI,sBAAS,CAAC,cAAc,CAAC,CAAC;gBACnD,GAAG,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,KAAK,YAAY,gCAAiB,IAAI,KAAK,YAAY,sBAAS,EAAE,CAAC;oBACtE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACP,MAAM,KAAK,CAAC;gBACb,CAAC;YACF,CAAC;QACF,CAAC;QAED,IAAI,GAAG,CAAC,IAAI;YAAE,IAAI,EAAE,CAAC;;YAChB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,WAAW,CAAC,GAAa;QACxB,GAAG,CAAC,WAAW,CAAC,4BAAgB,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAyB;QAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,4BAAgB,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,IAAI,CAAC;YACJ,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC;oBAC5C,KAAK;oBACL,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;iBAC/B,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACtF,CAAC;IACF,CAAC;IAED,WAAW,CAAC,GAAa,EAAE,IAAU,EAAE,SAAkB;QAGxD,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC7D,IACC,gBAAM,CAAC,MAAM,CAAC,qCAAqC,CAAC;YACpD,IAAI,CAAC,IAAI,KAAK,cAAc;YAC5B,CAAC,kBAAkB,EAClB,CAAC;YACF,MAAM,IAAI,gCAAc,CAAC,mCAAuB,CAAC,mBAAmB,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC7C,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3D,GAAG,CAAC,MAAM,CAAC,4BAAgB,EAAE,KAAK,EAAE;YACnC,MAAM,EAAE,IAAI,CAAC,aAAa,GAAG,gBAAI,CAAC,OAAO,CAAC,cAAc;YACxD,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,QAAQ;YAClB,MAAM;SACN,CAAC,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,IAAU,EAAE,SAAkB;QACtC,MAAM,OAAO,GAAmB;YAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YAC9B,SAAS,EAAE,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;SAC5C,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE;YACpC,SAAS,EAAE,IAAI,CAAC,aAAa;SAC7B,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,GAAyB,EAAE,GAAa;QACvE,MAAM,UAAU,GAAc,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE;YAC3D,UAAU,EAAE,CAAC,OAAO,CAAC;SACrB,CAAC,CAAC;QAGH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC9C,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE;SAC5B,CAAC,CAAC;QAEH,IAEC,CAAC,IAAI;YAEL,IAAI,CAAC,QAAQ;YAEb,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAC3C,CAAC;YACF,MAAM,IAAI,sBAAS,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC;QAGD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;QAC7E,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;aAAM,IACN,UAAU,CAAC,SAAS;YACpB,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EACpE,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;YAC1D,MAAM,IAAI,sBAAS,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,UAAU,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC5D,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED,0BAA0B,CAAC,IAAU,EAAE,YAA2B,KAAK;QACtE,MAAM,OAAO,GAAuB,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACrF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,wBAAwB,CAAC,IAAU;QAClC,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;QAC7D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,eAAe,kBAAkB,CAAC,CAAC;QAE1D,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAElE,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,KAAa;QAC5C,IAAI,YAAgC,CAAC;QACrC,IAAI,CAAC;YACJ,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,gCAAiB,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,OAAO;QACR,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC9C,KAAK,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC,GAAG,EAAE;YAC/B,SAAS,EAAE,CAAC,gBAAgB,CAAC;SAC7B,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAChB,6FAA6F,EAC7F,EAAE,MAAM,EAAE,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,CACnC,CAAC;YACF,OAAO;QACR,CAAC;QAED,IAAI,YAAY,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,OAAO;QACR,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAQ;QAC7D,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClC,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAEO,IAAI,CAAC,KAAa;QACzB,OAAO,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAGD,IAAI,iBAAiB;QACpB,MAAM,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,GAAG,gBAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACzF,IAAI,sBAAsB,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,KAAK,CAAC,uBAAuB,GAAG,IAAI,GAAG,gBAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACP,OAAO,IAAI,CAAC,KAAK,CAAC,sBAAsB,GAAG,gBAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACvE,CAAC;IACF,CAAC;IAGD,IAAI,aAAa;QAChB,OAAO,gBAAM,CAAC,GAAG,CAAC,wCAAwC,CAAC,GAAG,gBAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IACpF,CAAC;CACD,CAAA;AA5NY,kCAAW;sBAAX,WAAW;IADvB,IAAA,YAAO,GAAE;qCAMuB,qBAAY;QAClB,uBAAM;QACL,iBAAO;QACJ,wBAAU;QACV,wBAAU;QACN,mBAAc;QACF,+BAA0B;GAX5D,WAAW,CA4NvB"}
|