@atom8n/config 2.1.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 -0
- package/dist/configs/ai-assistant.config.d.ts +3 -0
- package/dist/configs/ai-assistant.config.js +27 -0
- package/dist/configs/ai-assistant.config.js.map +1 -0
- package/dist/configs/ai-builder.config.d.ts +3 -0
- package/dist/configs/ai-builder.config.js +27 -0
- package/dist/configs/ai-builder.config.js.map +1 -0
- package/dist/configs/ai.config.d.ts +4 -0
- package/dist/configs/ai.config.js +30 -0
- package/dist/configs/ai.config.js.map +1 -0
- package/dist/configs/auth.config.d.ts +11 -0
- package/dist/configs/auth.config.js +43 -0
- package/dist/configs/auth.config.js.map +1 -0
- package/dist/configs/cache.config.d.ts +17 -0
- package/dist/configs/cache.config.js +71 -0
- package/dist/configs/cache.config.js.map +1 -0
- package/dist/configs/credentials.config.d.ts +11 -0
- package/dist/configs/credentials.config.js +58 -0
- package/dist/configs/credentials.config.js.map +1 -0
- package/dist/configs/data-table.config.d.ts +10 -0
- package/dist/configs/data-table.config.js +57 -0
- package/dist/configs/data-table.config.js.map +1 -0
- package/dist/configs/database.config.d.ts +55 -0
- package/dist/configs/database.config.js +248 -0
- package/dist/configs/database.config.js.map +1 -0
- package/dist/configs/deployment.config.d.ts +3 -0
- package/dist/configs/deployment.config.js +27 -0
- package/dist/configs/deployment.config.js.map +1 -0
- package/dist/configs/diagnostics.config.d.ts +11 -0
- package/dist/configs/diagnostics.config.js +58 -0
- package/dist/configs/diagnostics.config.js.map +1 -0
- package/dist/configs/dynamic-banners.config.d.ts +4 -0
- package/dist/configs/dynamic-banners.config.js +32 -0
- package/dist/configs/dynamic-banners.config.js.map +1 -0
- package/dist/configs/endpoints.config.d.ts +38 -0
- package/dist/configs/endpoints.config.js +193 -0
- package/dist/configs/endpoints.config.js.map +1 -0
- package/dist/configs/event-bus.config.d.ts +14 -0
- package/dist/configs/event-bus.config.js +60 -0
- package/dist/configs/event-bus.config.js.map +1 -0
- package/dist/configs/executions.config.d.ts +37 -0
- package/dist/configs/executions.config.js +166 -0
- package/dist/configs/executions.config.js.map +1 -0
- package/dist/configs/external-hooks.config.d.ts +4 -0
- package/dist/configs/external-hooks.config.js +28 -0
- package/dist/configs/external-hooks.config.js.map +1 -0
- package/dist/configs/generic.config.d.ts +9 -0
- package/dist/configs/generic.config.js +39 -0
- package/dist/configs/generic.config.js.map +1 -0
- package/dist/configs/hiring-banner.config.d.ts +3 -0
- package/dist/configs/hiring-banner.config.js +27 -0
- package/dist/configs/hiring-banner.config.js.map +1 -0
- package/dist/configs/instance-settings-config.d.ts +7 -0
- package/dist/configs/instance-settings-config.js +40 -0
- package/dist/configs/instance-settings-config.js.map +1 -0
- package/dist/configs/license.config.d.ts +8 -0
- package/dist/configs/license.config.js +52 -0
- package/dist/configs/license.config.js.map +1 -0
- package/dist/configs/logging.config.d.ts +23 -0
- package/dist/configs/logging.config.js +115 -0
- package/dist/configs/logging.config.js.map +1 -0
- package/dist/configs/mfa.config.d.ts +3 -0
- package/dist/configs/mfa.config.js +27 -0
- package/dist/configs/mfa.config.js.map +1 -0
- package/dist/configs/multi-main-setup.config.d.ts +5 -0
- package/dist/configs/multi-main-setup.config.js +37 -0
- package/dist/configs/multi-main-setup.config.js.map +1 -0
- package/dist/configs/nodes.config.d.ts +10 -0
- package/dist/configs/nodes.config.js +58 -0
- package/dist/configs/nodes.config.js.map +1 -0
- package/dist/configs/personalization.config.d.ts +3 -0
- package/dist/configs/personalization.config.js +27 -0
- package/dist/configs/personalization.config.js.map +1 -0
- package/dist/configs/public-api.config.d.ts +5 -0
- package/dist/configs/public-api.config.js +37 -0
- package/dist/configs/public-api.config.js.map +1 -0
- package/dist/configs/redis.config.d.ts +3 -0
- package/dist/configs/redis.config.js +27 -0
- package/dist/configs/redis.config.js.map +1 -0
- package/dist/configs/runners.config.d.ts +19 -0
- package/dist/configs/runners.config.js +85 -0
- package/dist/configs/runners.config.js.map +1 -0
- package/dist/configs/scaling-mode.config.d.ts +35 -0
- package/dist/configs/scaling-mode.config.js +164 -0
- package/dist/configs/scaling-mode.config.js.map +1 -0
- package/dist/configs/security.config.d.ts +13 -0
- package/dist/configs/security.config.js +77 -0
- package/dist/configs/security.config.js.map +1 -0
- package/dist/configs/sentry.config.d.ts +6 -0
- package/dist/configs/sentry.config.js +42 -0
- package/dist/configs/sentry.config.js.map +1 -0
- package/dist/configs/sso.config.d.ts +27 -0
- package/dist/configs/sso.config.js +126 -0
- package/dist/configs/sso.config.js.map +1 -0
- package/dist/configs/tags.config.d.ts +3 -0
- package/dist/configs/tags.config.js +27 -0
- package/dist/configs/tags.config.js.map +1 -0
- package/dist/configs/templates.config.d.ts +4 -0
- package/dist/configs/templates.config.js +32 -0
- package/dist/configs/templates.config.js.map +1 -0
- package/dist/configs/user-management.config.d.ts +39 -0
- package/dist/configs/user-management.config.js +176 -0
- package/dist/configs/user-management.config.js.map +1 -0
- package/dist/configs/version-notifications.config.d.ts +7 -0
- package/dist/configs/version-notifications.config.js +47 -0
- package/dist/configs/version-notifications.config.js.map +1 -0
- package/dist/configs/workflow-history-compaction.config.d.ts +7 -0
- package/dist/configs/workflow-history-compaction.config.js +47 -0
- package/dist/configs/workflow-history-compaction.config.js.map +1 -0
- package/dist/configs/workflow-history.config.d.ts +3 -0
- package/dist/configs/workflow-history.config.js +27 -0
- package/dist/configs/workflow-history.config.js.map +1 -0
- package/dist/configs/workflows.config.d.ts +10 -0
- package/dist/configs/workflows.config.js +44 -0
- package/dist/configs/workflows.config.js.map +1 -0
- package/dist/custom-types.d.ts +10 -0
- package/dist/custom-types.js +23 -0
- package/dist/custom-types.js.map +1 -0
- package/dist/decorators.d.ts +13 -0
- package/dist/decorators.js +104 -0
- package/dist/decorators.js.map +1 -0
- package/dist/index.d.ts +110 -0
- package/dist/index.js +319 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/utils.d.ts +1 -0
- package/dist/utils/utils.js +13 -0
- package/dist/utils/utils.js.map +1 -0
- package/package.json +32 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.UserManagementConfig = exports.TemplateConfig = void 0;
|
|
13
|
+
const zod_1 = require("zod");
|
|
14
|
+
const decorators_1 = require("../decorators");
|
|
15
|
+
let SmtpAuth = class SmtpAuth {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.user = '';
|
|
18
|
+
this.pass = '';
|
|
19
|
+
this.serviceClient = '';
|
|
20
|
+
this.privateKey = '';
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
__decorate([
|
|
24
|
+
(0, decorators_1.Env)('N8N_SMTP_USER'),
|
|
25
|
+
__metadata("design:type", String)
|
|
26
|
+
], SmtpAuth.prototype, "user", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, decorators_1.Env)('N8N_SMTP_PASS'),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], SmtpAuth.prototype, "pass", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, decorators_1.Env)('N8N_SMTP_OAUTH_SERVICE_CLIENT'),
|
|
33
|
+
__metadata("design:type", String)
|
|
34
|
+
], SmtpAuth.prototype, "serviceClient", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, decorators_1.Env)('N8N_SMTP_OAUTH_PRIVATE_KEY'),
|
|
37
|
+
__metadata("design:type", String)
|
|
38
|
+
], SmtpAuth.prototype, "privateKey", void 0);
|
|
39
|
+
SmtpAuth = __decorate([
|
|
40
|
+
decorators_1.Config
|
|
41
|
+
], SmtpAuth);
|
|
42
|
+
let SmtpConfig = class SmtpConfig {
|
|
43
|
+
constructor() {
|
|
44
|
+
this.host = '';
|
|
45
|
+
this.port = 465;
|
|
46
|
+
this.secure = true;
|
|
47
|
+
this.startTLS = true;
|
|
48
|
+
this.sender = '';
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
__decorate([
|
|
52
|
+
(0, decorators_1.Env)('N8N_SMTP_HOST'),
|
|
53
|
+
__metadata("design:type", String)
|
|
54
|
+
], SmtpConfig.prototype, "host", void 0);
|
|
55
|
+
__decorate([
|
|
56
|
+
(0, decorators_1.Env)('N8N_SMTP_PORT'),
|
|
57
|
+
__metadata("design:type", Number)
|
|
58
|
+
], SmtpConfig.prototype, "port", void 0);
|
|
59
|
+
__decorate([
|
|
60
|
+
(0, decorators_1.Env)('N8N_SMTP_SSL'),
|
|
61
|
+
__metadata("design:type", Boolean)
|
|
62
|
+
], SmtpConfig.prototype, "secure", void 0);
|
|
63
|
+
__decorate([
|
|
64
|
+
(0, decorators_1.Env)('N8N_SMTP_STARTTLS'),
|
|
65
|
+
__metadata("design:type", Boolean)
|
|
66
|
+
], SmtpConfig.prototype, "startTLS", void 0);
|
|
67
|
+
__decorate([
|
|
68
|
+
(0, decorators_1.Env)('N8N_SMTP_SENDER'),
|
|
69
|
+
__metadata("design:type", String)
|
|
70
|
+
], SmtpConfig.prototype, "sender", void 0);
|
|
71
|
+
__decorate([
|
|
72
|
+
decorators_1.Nested,
|
|
73
|
+
__metadata("design:type", SmtpAuth)
|
|
74
|
+
], SmtpConfig.prototype, "auth", void 0);
|
|
75
|
+
SmtpConfig = __decorate([
|
|
76
|
+
decorators_1.Config
|
|
77
|
+
], SmtpConfig);
|
|
78
|
+
let TemplateConfig = class TemplateConfig {
|
|
79
|
+
constructor() {
|
|
80
|
+
this['user-invited'] = '';
|
|
81
|
+
this['password-reset-requested'] = '';
|
|
82
|
+
this['workflow-shared'] = '';
|
|
83
|
+
this['workflow-deactivated'] = '';
|
|
84
|
+
this['credentials-shared'] = '';
|
|
85
|
+
this['project-shared'] = '';
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
exports.TemplateConfig = TemplateConfig;
|
|
89
|
+
__decorate([
|
|
90
|
+
(0, decorators_1.Env)('N8N_UM_EMAIL_TEMPLATES_INVITE'),
|
|
91
|
+
__metadata("design:type", String)
|
|
92
|
+
], TemplateConfig.prototype, "user-invited", void 0);
|
|
93
|
+
__decorate([
|
|
94
|
+
(0, decorators_1.Env)('N8N_UM_EMAIL_TEMPLATES_PWRESET'),
|
|
95
|
+
__metadata("design:type", String)
|
|
96
|
+
], TemplateConfig.prototype, "password-reset-requested", void 0);
|
|
97
|
+
__decorate([
|
|
98
|
+
(0, decorators_1.Env)('N8N_UM_EMAIL_TEMPLATES_WORKFLOW_SHARED'),
|
|
99
|
+
__metadata("design:type", String)
|
|
100
|
+
], TemplateConfig.prototype, "workflow-shared", void 0);
|
|
101
|
+
__decorate([
|
|
102
|
+
(0, decorators_1.Env)('N8N_UM_EMAIL_TEMPLATES_WORKFLOW_AUTODEACTIVATED'),
|
|
103
|
+
__metadata("design:type", String)
|
|
104
|
+
], TemplateConfig.prototype, "workflow-deactivated", void 0);
|
|
105
|
+
__decorate([
|
|
106
|
+
(0, decorators_1.Env)('N8N_UM_EMAIL_TEMPLATES_CREDENTIALS_SHARED'),
|
|
107
|
+
__metadata("design:type", String)
|
|
108
|
+
], TemplateConfig.prototype, "credentials-shared", void 0);
|
|
109
|
+
__decorate([
|
|
110
|
+
(0, decorators_1.Env)('N8N_UM_EMAIL_TEMPLATES_PROJECT_SHARED'),
|
|
111
|
+
__metadata("design:type", String)
|
|
112
|
+
], TemplateConfig.prototype, "project-shared", void 0);
|
|
113
|
+
exports.TemplateConfig = TemplateConfig = __decorate([
|
|
114
|
+
decorators_1.Config
|
|
115
|
+
], TemplateConfig);
|
|
116
|
+
const emailModeSchema = zod_1.z.enum(['', 'smtp']);
|
|
117
|
+
let EmailConfig = class EmailConfig {
|
|
118
|
+
constructor() {
|
|
119
|
+
this.mode = 'smtp';
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
__decorate([
|
|
123
|
+
(0, decorators_1.Env)('N8N_EMAIL_MODE', emailModeSchema),
|
|
124
|
+
__metadata("design:type", String)
|
|
125
|
+
], EmailConfig.prototype, "mode", void 0);
|
|
126
|
+
__decorate([
|
|
127
|
+
decorators_1.Nested,
|
|
128
|
+
__metadata("design:type", SmtpConfig)
|
|
129
|
+
], EmailConfig.prototype, "smtp", void 0);
|
|
130
|
+
__decorate([
|
|
131
|
+
decorators_1.Nested,
|
|
132
|
+
__metadata("design:type", TemplateConfig)
|
|
133
|
+
], EmailConfig.prototype, "template", void 0);
|
|
134
|
+
EmailConfig = __decorate([
|
|
135
|
+
decorators_1.Config
|
|
136
|
+
], EmailConfig);
|
|
137
|
+
const INVALID_JWT_REFRESH_TIMEOUT_WARNING = 'N8N_USER_MANAGEMENT_JWT_REFRESH_TIMEOUT_HOURS needs to be smaller than N8N_USER_MANAGEMENT_JWT_DURATION_HOURS. Setting N8N_USER_MANAGEMENT_JWT_REFRESH_TIMEOUT_HOURS to 0.';
|
|
138
|
+
let UserManagementConfig = class UserManagementConfig {
|
|
139
|
+
constructor() {
|
|
140
|
+
this.jwtSecret = '';
|
|
141
|
+
this.jwtSessionDurationHours = 168;
|
|
142
|
+
this.inviteLinksEmailOnly = false;
|
|
143
|
+
this.jwtRefreshTimeoutHours = 0;
|
|
144
|
+
}
|
|
145
|
+
sanitize() {
|
|
146
|
+
if (this.jwtRefreshTimeoutHours >= this.jwtSessionDurationHours) {
|
|
147
|
+
console.warn(INVALID_JWT_REFRESH_TIMEOUT_WARNING);
|
|
148
|
+
this.jwtRefreshTimeoutHours = 0;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
exports.UserManagementConfig = UserManagementConfig;
|
|
153
|
+
__decorate([
|
|
154
|
+
decorators_1.Nested,
|
|
155
|
+
__metadata("design:type", EmailConfig)
|
|
156
|
+
], UserManagementConfig.prototype, "emails", void 0);
|
|
157
|
+
__decorate([
|
|
158
|
+
(0, decorators_1.Env)('N8N_USER_MANAGEMENT_JWT_SECRET'),
|
|
159
|
+
__metadata("design:type", String)
|
|
160
|
+
], UserManagementConfig.prototype, "jwtSecret", void 0);
|
|
161
|
+
__decorate([
|
|
162
|
+
(0, decorators_1.Env)('N8N_USER_MANAGEMENT_JWT_DURATION_HOURS'),
|
|
163
|
+
__metadata("design:type", Number)
|
|
164
|
+
], UserManagementConfig.prototype, "jwtSessionDurationHours", void 0);
|
|
165
|
+
__decorate([
|
|
166
|
+
(0, decorators_1.Env)('N8N_INVITE_LINKS_EMAIL_ONLY'),
|
|
167
|
+
__metadata("design:type", Boolean)
|
|
168
|
+
], UserManagementConfig.prototype, "inviteLinksEmailOnly", void 0);
|
|
169
|
+
__decorate([
|
|
170
|
+
(0, decorators_1.Env)('N8N_USER_MANAGEMENT_JWT_REFRESH_TIMEOUT_HOURS'),
|
|
171
|
+
__metadata("design:type", Number)
|
|
172
|
+
], UserManagementConfig.prototype, "jwtRefreshTimeoutHours", void 0);
|
|
173
|
+
exports.UserManagementConfig = UserManagementConfig = __decorate([
|
|
174
|
+
decorators_1.Config
|
|
175
|
+
], UserManagementConfig);
|
|
176
|
+
//# sourceMappingURL=user-management.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-management.config.js","sourceRoot":"","sources":["../../src/configs/user-management.config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.VersionNotificationsConfig = void 0;
|
|
13
|
+
const decorators_1 = require("../decorators");
|
|
14
|
+
let VersionNotificationsConfig = class VersionNotificationsConfig {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.enabled = true;
|
|
17
|
+
this.endpoint = 'https://api.n8n.io/api/versions/';
|
|
18
|
+
this.whatsNewEnabled = true;
|
|
19
|
+
this.whatsNewEndpoint = 'https://api.n8n.io/api/whats-new';
|
|
20
|
+
this.infoUrl = 'https://docs.n8n.io/hosting/installation/updating/';
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
exports.VersionNotificationsConfig = VersionNotificationsConfig;
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, decorators_1.Env)('N8N_VERSION_NOTIFICATIONS_ENABLED'),
|
|
26
|
+
__metadata("design:type", Boolean)
|
|
27
|
+
], VersionNotificationsConfig.prototype, "enabled", void 0);
|
|
28
|
+
__decorate([
|
|
29
|
+
(0, decorators_1.Env)('N8N_VERSION_NOTIFICATIONS_ENDPOINT'),
|
|
30
|
+
__metadata("design:type", String)
|
|
31
|
+
], VersionNotificationsConfig.prototype, "endpoint", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, decorators_1.Env)('N8N_VERSION_NOTIFICATIONS_WHATS_NEW_ENABLED'),
|
|
34
|
+
__metadata("design:type", Boolean)
|
|
35
|
+
], VersionNotificationsConfig.prototype, "whatsNewEnabled", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
(0, decorators_1.Env)('N8N_VERSION_NOTIFICATIONS_WHATS_NEW_ENDPOINT'),
|
|
38
|
+
__metadata("design:type", String)
|
|
39
|
+
], VersionNotificationsConfig.prototype, "whatsNewEndpoint", void 0);
|
|
40
|
+
__decorate([
|
|
41
|
+
(0, decorators_1.Env)('N8N_VERSION_NOTIFICATIONS_INFO_URL'),
|
|
42
|
+
__metadata("design:type", String)
|
|
43
|
+
], VersionNotificationsConfig.prototype, "infoUrl", void 0);
|
|
44
|
+
exports.VersionNotificationsConfig = VersionNotificationsConfig = __decorate([
|
|
45
|
+
decorators_1.Config
|
|
46
|
+
], VersionNotificationsConfig);
|
|
47
|
+
//# sourceMappingURL=version-notifications.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-notifications.config.js","sourceRoot":"","sources":["../../src/configs/version-notifications.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA4C;AAGrC,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAAhC;QAGN,YAAO,GAAY,IAAI,CAAC;QAIxB,aAAQ,GAAW,kCAAkC,CAAC;QAItD,oBAAe,GAAY,IAAI,CAAC;QAIhC,qBAAgB,GAAW,kCAAkC,CAAC;QAI9D,YAAO,GAAW,oDAAoD,CAAC;IACxE,CAAC;CAAA,CAAA;AApBY,gEAA0B;AAGtC;IADC,IAAA,gBAAG,EAAC,mCAAmC,CAAC;;2DACjB;AAIxB;IADC,IAAA,gBAAG,EAAC,oCAAoC,CAAC;;4DACY;AAItD;IADC,IAAA,gBAAG,EAAC,6CAA6C,CAAC;;mEACnB;AAIhC;IADC,IAAA,gBAAG,EAAC,8CAA8C,CAAC;;oEACU;AAI9D;IADC,IAAA,gBAAG,EAAC,oCAAoC,CAAC;;2DAC6B;qCAnB3D,0BAA0B;IADtC,mBAAM;GACM,0BAA0B,CAoBtC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.WorkflowHistoryCompactionConfig = void 0;
|
|
13
|
+
const decorators_1 = require("../decorators");
|
|
14
|
+
let WorkflowHistoryCompactionConfig = class WorkflowHistoryCompactionConfig {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.compactingMinimumAgeHours = 24;
|
|
17
|
+
this.compactingTimeWindowHours = 2;
|
|
18
|
+
this.batchSize = 1_000;
|
|
19
|
+
this.batchDelayMs = 1_000;
|
|
20
|
+
this.compactOnStartUp = false;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
exports.WorkflowHistoryCompactionConfig = WorkflowHistoryCompactionConfig;
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, decorators_1.Env)('N8N_WORKFLOW_HISTORY_COMPACTION_MINIMUM_AGE_HOURS'),
|
|
26
|
+
__metadata("design:type", Number)
|
|
27
|
+
], WorkflowHistoryCompactionConfig.prototype, "compactingMinimumAgeHours", void 0);
|
|
28
|
+
__decorate([
|
|
29
|
+
(0, decorators_1.Env)('N8N_WORKFLOW_HISTORY_COMPACTION_TIME_WINDOW_HOURS'),
|
|
30
|
+
__metadata("design:type", Number)
|
|
31
|
+
], WorkflowHistoryCompactionConfig.prototype, "compactingTimeWindowHours", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, decorators_1.Env)('N8N_WORKFLOW_HISTORY_COMPACTION_BATCH_SIZE'),
|
|
34
|
+
__metadata("design:type", Number)
|
|
35
|
+
], WorkflowHistoryCompactionConfig.prototype, "batchSize", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
(0, decorators_1.Env)('N8N_WORKFLOW_HISTORY_COMPACTION_BATCH_DELAY_MS'),
|
|
38
|
+
__metadata("design:type", Number)
|
|
39
|
+
], WorkflowHistoryCompactionConfig.prototype, "batchDelayMs", void 0);
|
|
40
|
+
__decorate([
|
|
41
|
+
(0, decorators_1.Env)('N8N_WORKFLOW_HISTORY_COMPACTION_RUN_ON_START_UP'),
|
|
42
|
+
__metadata("design:type", Boolean)
|
|
43
|
+
], WorkflowHistoryCompactionConfig.prototype, "compactOnStartUp", void 0);
|
|
44
|
+
exports.WorkflowHistoryCompactionConfig = WorkflowHistoryCompactionConfig = __decorate([
|
|
45
|
+
decorators_1.Config
|
|
46
|
+
], WorkflowHistoryCompactionConfig);
|
|
47
|
+
//# sourceMappingURL=workflow-history-compaction.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-history-compaction.config.js","sourceRoot":"","sources":["../../src/configs/workflow-history-compaction.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA4C;AAGrC,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAArC;QAWN,8BAAyB,GAAW,EAAE,CAAC;QAavC,8BAAyB,GAAW,CAAC,CAAC;QAOtC,cAAS,GAAW,KAAK,CAAC;QAO1B,iBAAY,GAAW,KAAK,CAAC;QAW7B,qBAAgB,GAAY,KAAK,CAAC;IACnC,CAAC;CAAA,CAAA;AAlDY,0EAA+B;AAW3C;IAVC,IAAA,gBAAG,EAAC,mDAAmD,CAAC;;kFAUlB;AAavC;IADC,IAAA,gBAAG,EAAC,mDAAmD,CAAC;;kFACnB;AAOtC;IADC,IAAA,gBAAG,EAAC,4CAA4C,CAAC;;kEACxB;AAO1B;IADC,IAAA,gBAAG,EAAC,gDAAgD,CAAC;;qEACzB;AAW7B;IADC,IAAA,gBAAG,EAAC,iDAAiD,CAAC;;yEACrB;0CAjDtB,+BAA+B;IAD3C,mBAAM;GACM,+BAA+B,CAkD3C"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.WorkflowHistoryConfig = void 0;
|
|
13
|
+
const decorators_1 = require("../decorators");
|
|
14
|
+
let WorkflowHistoryConfig = class WorkflowHistoryConfig {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.pruneTime = -1;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
exports.WorkflowHistoryConfig = WorkflowHistoryConfig;
|
|
20
|
+
__decorate([
|
|
21
|
+
(0, decorators_1.Env)('N8N_WORKFLOW_HISTORY_PRUNE_TIME'),
|
|
22
|
+
__metadata("design:type", Number)
|
|
23
|
+
], WorkflowHistoryConfig.prototype, "pruneTime", void 0);
|
|
24
|
+
exports.WorkflowHistoryConfig = WorkflowHistoryConfig = __decorate([
|
|
25
|
+
decorators_1.Config
|
|
26
|
+
], WorkflowHistoryConfig);
|
|
27
|
+
//# sourceMappingURL=workflow-history.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-history.config.js","sourceRoot":"","sources":["../../src/configs/workflow-history.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA4C;AAGrC,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAA3B;QAGN,cAAS,GAAW,CAAC,CAAC,CAAC;IACxB,CAAC;CAAA,CAAA;AAJY,sDAAqB;AAGjC;IADC,IAAA,gBAAG,EAAC,iCAAiC,CAAC;;wDAChB;gCAHX,qBAAqB;IADjC,mBAAM;GACM,qBAAqB,CAIjC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
declare const callerPolicySchema: z.ZodEnum<["any", "none", "workflowsFromAList", "workflowsFromSameOwner"]>;
|
|
3
|
+
type CallerPolicy = z.infer<typeof callerPolicySchema>;
|
|
4
|
+
export declare class WorkflowsConfig {
|
|
5
|
+
defaultName: string;
|
|
6
|
+
callerPolicyDefaultOption: CallerPolicy;
|
|
7
|
+
activationBatchSize: number;
|
|
8
|
+
indexingEnabled: boolean;
|
|
9
|
+
}
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.WorkflowsConfig = void 0;
|
|
13
|
+
const zod_1 = require("zod");
|
|
14
|
+
const decorators_1 = require("../decorators");
|
|
15
|
+
const callerPolicySchema = zod_1.z.enum(['any', 'none', 'workflowsFromAList', 'workflowsFromSameOwner']);
|
|
16
|
+
let WorkflowsConfig = class WorkflowsConfig {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.defaultName = 'My workflow';
|
|
19
|
+
this.callerPolicyDefaultOption = 'workflowsFromSameOwner';
|
|
20
|
+
this.activationBatchSize = 1;
|
|
21
|
+
this.indexingEnabled = false;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
exports.WorkflowsConfig = WorkflowsConfig;
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, decorators_1.Env)('WORKFLOWS_DEFAULT_NAME'),
|
|
27
|
+
__metadata("design:type", String)
|
|
28
|
+
], WorkflowsConfig.prototype, "defaultName", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, decorators_1.Env)('N8N_WORKFLOW_CALLER_POLICY_DEFAULT_OPTION', callerPolicySchema),
|
|
31
|
+
__metadata("design:type", String)
|
|
32
|
+
], WorkflowsConfig.prototype, "callerPolicyDefaultOption", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, decorators_1.Env)('N8N_WORKFLOW_ACTIVATION_BATCH_SIZE'),
|
|
35
|
+
__metadata("design:type", Number)
|
|
36
|
+
], WorkflowsConfig.prototype, "activationBatchSize", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, decorators_1.Env)('N8N_WORKFLOWS_INDEXING_ENABLED'),
|
|
39
|
+
__metadata("design:type", Boolean)
|
|
40
|
+
], WorkflowsConfig.prototype, "indexingEnabled", void 0);
|
|
41
|
+
exports.WorkflowsConfig = WorkflowsConfig = __decorate([
|
|
42
|
+
decorators_1.Config
|
|
43
|
+
], WorkflowsConfig);
|
|
44
|
+
//# sourceMappingURL=workflows.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflows.config.js","sourceRoot":"","sources":["../../src/configs/workflows.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6BAAwB;AAExB,8CAA4C;AAE5C,MAAM,kBAAkB,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,wBAAwB,CAAC,CAAC,CAAC;AAI5F,IAAM,eAAe,GAArB,MAAM,eAAe;IAArB;QAGN,gBAAW,GAAW,aAAa,CAAC;QAIpC,8BAAyB,GAAiB,wBAAwB,CAAC;QAInE,wBAAmB,GAAW,CAAC,CAAC;QAIhC,oBAAe,GAAY,KAAK,CAAC;IAClC,CAAC;CAAA,CAAA;AAhBY,0CAAe;AAG3B;IADC,IAAA,gBAAG,EAAC,wBAAwB,CAAC;;oDACM;AAIpC;IADC,IAAA,gBAAG,EAAC,2CAA2C,EAAE,kBAAkB,CAAC;;kEACF;AAInE;IADC,IAAA,gBAAG,EAAC,oCAAoC,CAAC;;4DACV;AAIhC;IADC,IAAA,gBAAG,EAAC,gCAAgC,CAAC;;wDACL;0BAfrB,eAAe;IAD3B,mBAAM;GACM,eAAe,CAgB3B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
declare abstract class StringArray<T extends string> extends Array<T> {
|
|
2
|
+
constructor(str: string, delimiter: string);
|
|
3
|
+
}
|
|
4
|
+
export declare class CommaSeparatedStringArray<T extends string> extends StringArray<T> {
|
|
5
|
+
constructor(str: string);
|
|
6
|
+
}
|
|
7
|
+
export declare class ColonSeparatedStringArray<T extends string = string> extends StringArray<T> {
|
|
8
|
+
constructor(str: string);
|
|
9
|
+
}
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ColonSeparatedStringArray = exports.CommaSeparatedStringArray = void 0;
|
|
4
|
+
class StringArray extends Array {
|
|
5
|
+
constructor(str, delimiter) {
|
|
6
|
+
super();
|
|
7
|
+
const parsed = str.split(delimiter);
|
|
8
|
+
return parsed.filter((i) => typeof i === 'string' && i.length);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
class CommaSeparatedStringArray extends StringArray {
|
|
12
|
+
constructor(str) {
|
|
13
|
+
super(str, ',');
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.CommaSeparatedStringArray = CommaSeparatedStringArray;
|
|
17
|
+
class ColonSeparatedStringArray extends StringArray {
|
|
18
|
+
constructor(str) {
|
|
19
|
+
super(str, ':');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.ColonSeparatedStringArray = ColonSeparatedStringArray;
|
|
23
|
+
//# sourceMappingURL=custom-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-types.js","sourceRoot":"","sources":["../src/custom-types.ts"],"names":[],"mappings":";;;AAAA,MAAe,WAA8B,SAAQ,KAAQ;IAC5D,YAAY,GAAW,EAAE,SAAiB;QACzC,KAAK,EAAE,CAAC;QACR,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAS,CAAC;QAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;CACD;AAED,MAAa,yBAA4C,SAAQ,WAAc;IAC9E,YAAY,GAAW;QACtB,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjB,CAAC;CACD;AAJD,8DAIC;AAED,MAAa,yBAAqD,SAAQ,WAAc;IACvF,YAAY,GAAW;QACtB,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjB,CAAC;CACD;AAJD,8DAIC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
type Class = Function;
|
|
4
|
+
type PropertyType = number | boolean | string | Class;
|
|
5
|
+
interface PropertyMetadata {
|
|
6
|
+
type: PropertyType;
|
|
7
|
+
envName?: string;
|
|
8
|
+
schema?: z.ZodType<unknown>;
|
|
9
|
+
}
|
|
10
|
+
export declare const Config: ClassDecorator;
|
|
11
|
+
export declare const Nested: PropertyDecorator;
|
|
12
|
+
export declare const Env: (envName: string, schema?: PropertyMetadata["schema"]) => PropertyDecorator;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Env = exports.Nested = exports.Config = void 0;
|
|
4
|
+
require("reflect-metadata");
|
|
5
|
+
const di_1 = require("@n8n/di");
|
|
6
|
+
const fs_1 = require("fs");
|
|
7
|
+
const zod_1 = require("zod");
|
|
8
|
+
const globalMetadata = new Map();
|
|
9
|
+
const readEnv = (envName) => {
|
|
10
|
+
if (envName in process.env)
|
|
11
|
+
return process.env[envName];
|
|
12
|
+
const filePath = process.env[`${envName}_FILE`];
|
|
13
|
+
if (filePath)
|
|
14
|
+
return (0, fs_1.readFileSync)(filePath, 'utf8');
|
|
15
|
+
return undefined;
|
|
16
|
+
};
|
|
17
|
+
const Config = (ConfigClass) => {
|
|
18
|
+
const factory = function (...args) {
|
|
19
|
+
const config = new ConfigClass(...args);
|
|
20
|
+
const classMetadata = globalMetadata.get(ConfigClass);
|
|
21
|
+
if (!classMetadata) {
|
|
22
|
+
throw new Error('Invalid config class: ' + ConfigClass.name);
|
|
23
|
+
}
|
|
24
|
+
for (const [key, { type, envName, schema }] of classMetadata) {
|
|
25
|
+
if (typeof type === 'function' && globalMetadata.has(type)) {
|
|
26
|
+
config[key] = di_1.Container.get(type);
|
|
27
|
+
}
|
|
28
|
+
else if (envName) {
|
|
29
|
+
const value = readEnv(envName);
|
|
30
|
+
if (value === undefined)
|
|
31
|
+
continue;
|
|
32
|
+
if (schema) {
|
|
33
|
+
const result = schema.safeParse(value);
|
|
34
|
+
if (result.error) {
|
|
35
|
+
console.warn(`Invalid value for ${envName} - ${result.error.issues[0].message}. Falling back to default value.`);
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
config[key] = result.data;
|
|
39
|
+
}
|
|
40
|
+
else if (type === Number) {
|
|
41
|
+
const parsed = Number(value);
|
|
42
|
+
if (isNaN(parsed)) {
|
|
43
|
+
console.warn(`Invalid number value for ${envName}: ${value}`);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
config[key] = parsed;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else if (type === Boolean) {
|
|
50
|
+
if (['true', '1'].includes(value.toLowerCase())) {
|
|
51
|
+
config[key] = true;
|
|
52
|
+
}
|
|
53
|
+
else if (['false', '0'].includes(value.toLowerCase())) {
|
|
54
|
+
config[key] = false;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
console.warn(`Invalid boolean value for ${envName}: ${value}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else if (type === Date) {
|
|
61
|
+
const timestamp = Date.parse(value);
|
|
62
|
+
if (isNaN(timestamp)) {
|
|
63
|
+
console.warn(`Invalid timestamp value for ${envName}: ${value}`);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
config[key] = new Date(timestamp);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else if (type === String) {
|
|
70
|
+
config[key] = value.trim().replace(/^(['"])(.*)\1$/, '$2');
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
config[key] = new type(value);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (typeof config.sanitize === 'function')
|
|
78
|
+
config.sanitize();
|
|
79
|
+
return config;
|
|
80
|
+
};
|
|
81
|
+
return (0, di_1.Service)({ factory })(ConfigClass);
|
|
82
|
+
};
|
|
83
|
+
exports.Config = Config;
|
|
84
|
+
const Nested = (target, key) => {
|
|
85
|
+
const ConfigClass = target.constructor;
|
|
86
|
+
const classMetadata = globalMetadata.get(ConfigClass) ?? new Map();
|
|
87
|
+
const type = Reflect.getMetadata('design:type', target, key);
|
|
88
|
+
classMetadata.set(key, { type });
|
|
89
|
+
globalMetadata.set(ConfigClass, classMetadata);
|
|
90
|
+
};
|
|
91
|
+
exports.Nested = Nested;
|
|
92
|
+
const Env = (envName, schema) => (target, key) => {
|
|
93
|
+
const ConfigClass = target.constructor;
|
|
94
|
+
const classMetadata = globalMetadata.get(ConfigClass) ?? new Map();
|
|
95
|
+
const type = Reflect.getMetadata('design:type', target, key);
|
|
96
|
+
const isZodSchema = schema instanceof zod_1.z.ZodType;
|
|
97
|
+
if (type === Object && !isZodSchema) {
|
|
98
|
+
throw new Error(`Invalid decorator metadata on key "${key}" on ${ConfigClass.name}\n Please use explicit typing on all config fields`);
|
|
99
|
+
}
|
|
100
|
+
classMetadata.set(key, { type, envName, schema });
|
|
101
|
+
globalMetadata.set(ConfigClass, classMetadata);
|
|
102
|
+
};
|
|
103
|
+
exports.Env = Env;
|
|
104
|
+
//# sourceMappingURL=decorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
|