@atom8n/decorators 1.2.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/command/command-metadata.d.ts +7 -0
- package/dist/command/command-metadata.js +29 -0
- package/dist/command/command-metadata.js.map +1 -0
- package/dist/command/command.d.ts +2 -0
- package/dist/command/command.js +17 -0
- package/dist/command/command.js.map +1 -0
- package/dist/command/index.d.ts +3 -0
- package/dist/command/index.js +8 -0
- package/dist/command/index.js.map +1 -0
- package/dist/command/types.d.ts +24 -0
- package/dist/command/types.js +3 -0
- package/dist/command/types.js.map +1 -0
- package/dist/context-establishment/context-establishment-hook-metadata.d.ts +12 -0
- package/dist/context-establishment/context-establishment-hook-metadata.js +36 -0
- package/dist/context-establishment/context-establishment-hook-metadata.js.map +1 -0
- package/dist/context-establishment/context-establishment-hook.d.ts +25 -0
- package/dist/context-establishment/context-establishment-hook.js +3 -0
- package/dist/context-establishment/context-establishment-hook.js.map +1 -0
- package/dist/context-establishment/index.d.ts +2 -0
- package/dist/context-establishment/index.js +7 -0
- package/dist/context-establishment/index.js.map +1 -0
- package/dist/controller/args.d.ts +3 -0
- package/dist/controller/args.js +14 -0
- package/dist/controller/args.js.map +1 -0
- package/dist/controller/controller-registry-metadata.d.ts +7 -0
- package/dist/controller/controller-registry-metadata.js +46 -0
- package/dist/controller/controller-registry-metadata.js.map +1 -0
- package/dist/controller/index.d.ts +9 -0
- package/dist/controller/index.js +29 -0
- package/dist/controller/index.js.map +1 -0
- package/dist/controller/licensed.d.ts +2 -0
- package/dist/controller/licensed.js +11 -0
- package/dist/controller/licensed.js.map +1 -0
- package/dist/controller/middleware.d.ts +1 -0
- package/dist/controller/middleware.js +11 -0
- package/dist/controller/middleware.js.map +1 -0
- package/dist/controller/rest-controller.d.ts +1 -0
- package/dist/controller/rest-controller.js +13 -0
- package/dist/controller/rest-controller.js.map +1 -0
- package/dist/controller/root-level-controller.d.ts +1 -0
- package/dist/controller/root-level-controller.js +13 -0
- package/dist/controller/root-level-controller.js.map +1 -0
- package/dist/controller/route.d.ts +19 -0
- package/dist/controller/route.js +25 -0
- package/dist/controller/route.js.map +1 -0
- package/dist/controller/scoped.d.ts +3 -0
- package/dist/controller/scoped.js +14 -0
- package/dist/controller/scoped.js.map +1 -0
- package/dist/controller/types.d.ts +46 -0
- package/dist/controller/types.js +3 -0
- package/dist/controller/types.js.map +1 -0
- package/dist/credential-resolver/credential-resolver-metadata.d.ts +12 -0
- package/dist/credential-resolver/credential-resolver-metadata.js +36 -0
- package/dist/credential-resolver/credential-resolver-metadata.js.map +1 -0
- package/dist/credential-resolver/credential-resolver.d.ts +24 -0
- package/dist/credential-resolver/credential-resolver.js +3 -0
- package/dist/credential-resolver/credential-resolver.js.map +1 -0
- package/dist/credential-resolver/errors.d.ts +9 -0
- package/dist/credential-resolver/errors.js +25 -0
- package/dist/credential-resolver/errors.js.map +1 -0
- package/dist/credential-resolver/index.d.ts +3 -0
- package/dist/credential-resolver/index.js +22 -0
- package/dist/credential-resolver/index.js.map +1 -0
- package/dist/debounce.d.ts +1 -0
- package/dist/debounce.js +20 -0
- package/dist/debounce.js.map +1 -0
- package/dist/errors.d.ts +4 -0
- package/dist/errors.js +11 -0
- package/dist/errors.js.map +1 -0
- package/dist/execution-lifecycle/index.d.ts +3 -0
- package/dist/execution-lifecycle/index.js +8 -0
- package/dist/execution-lifecycle/index.js.map +1 -0
- package/dist/execution-lifecycle/lifecycle-metadata.d.ts +41 -0
- package/dist/execution-lifecycle/lifecycle-metadata.js +26 -0
- package/dist/execution-lifecycle/lifecycle-metadata.js.map +1 -0
- package/dist/execution-lifecycle/on-lifecycle-event.d.ts +2 -0
- package/dist/execution-lifecycle/on-lifecycle-event.js +20 -0
- package/dist/execution-lifecycle/on-lifecycle-event.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/memoized.d.ts +1 -0
- package/dist/memoized.js +23 -0
- package/dist/memoized.js.map +1 -0
- package/dist/module/index.d.ts +3 -0
- package/dist/module/index.js +8 -0
- package/dist/module/index.js.map +1 -0
- package/dist/module/module-metadata.d.ts +15 -0
- package/dist/module/module-metadata.js +32 -0
- package/dist/module/module-metadata.js.map +1 -0
- package/dist/module/module.d.ts +38 -0
- package/dist/module/module.js +15 -0
- package/dist/module/module.js.map +1 -0
- package/dist/multi-main/index.d.ts +2 -0
- package/dist/multi-main/index.js +9 -0
- package/dist/multi-main/index.js.map +1 -0
- package/dist/multi-main/multi-main-metadata.d.ts +11 -0
- package/dist/multi-main/multi-main-metadata.js +28 -0
- package/dist/multi-main/multi-main-metadata.js.map +1 -0
- package/dist/multi-main/on-multi-main-event.d.ts +2 -0
- package/dist/multi-main/on-multi-main-event.js +23 -0
- package/dist/multi-main/on-multi-main-event.js.map +1 -0
- package/dist/pubsub/index.d.ts +3 -0
- package/dist/pubsub/index.js +8 -0
- package/dist/pubsub/index.js.map +1 -0
- package/dist/pubsub/on-pubsub-event.d.ts +2 -0
- package/dist/pubsub/on-pubsub-event.js +21 -0
- package/dist/pubsub/on-pubsub-event.js.map +1 -0
- package/dist/pubsub/pubsub-metadata.d.ts +19 -0
- package/dist/pubsub/pubsub-metadata.js +26 -0
- package/dist/pubsub/pubsub-metadata.js.map +1 -0
- package/dist/redactable.d.ts +7 -0
- package/dist/redactable.js +34 -0
- package/dist/redactable.js.map +1 -0
- package/dist/shutdown/constants.d.ts +3 -0
- package/dist/shutdown/constants.js +7 -0
- package/dist/shutdown/constants.js.map +1 -0
- package/dist/shutdown/index.d.ts +4 -0
- package/dist/shutdown/index.js +12 -0
- package/dist/shutdown/index.js.map +1 -0
- package/dist/shutdown/on-shutdown.d.ts +1 -0
- package/dist/shutdown/on-shutdown.js +20 -0
- package/dist/shutdown/on-shutdown.js.map +1 -0
- package/dist/shutdown/shutdown-metadata.d.ts +7 -0
- package/dist/shutdown/shutdown-metadata.js +36 -0
- package/dist/shutdown/shutdown-metadata.js.map +1 -0
- package/dist/shutdown/types.d.ts +8 -0
- package/dist/shutdown/types.js +3 -0
- package/dist/shutdown/types.js.map +1 -0
- package/dist/timed.d.ts +9 -0
- package/dist/timed.js +26 -0
- package/dist/timed.js.map +1 -0
- package/dist/types.d.ts +9 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +36 -0
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.CommandMetadata = void 0;
|
|
10
|
+
const di_1 = require("@n8n/di");
|
|
11
|
+
let CommandMetadata = class CommandMetadata {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.commands = new Map();
|
|
14
|
+
}
|
|
15
|
+
register(name, entry) {
|
|
16
|
+
this.commands.set(name, entry);
|
|
17
|
+
}
|
|
18
|
+
get(name) {
|
|
19
|
+
return this.commands.get(name);
|
|
20
|
+
}
|
|
21
|
+
getEntries() {
|
|
22
|
+
return [...this.commands.entries()];
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
exports.CommandMetadata = CommandMetadata;
|
|
26
|
+
exports.CommandMetadata = CommandMetadata = __decorate([
|
|
27
|
+
(0, di_1.Service)()
|
|
28
|
+
], CommandMetadata);
|
|
29
|
+
//# sourceMappingURL=command-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-metadata.js","sourceRoot":"","sources":["../../src/command/command-metadata.ts"],"names":[],"mappings":";;;;;;;;;AAAA,gCAAkC;AAK3B,IAAM,eAAe,GAArB,MAAM,eAAe;IAArB;QACW,aAAQ,GAA8B,IAAI,GAAG,EAAE,CAAC;IAalE,CAAC;IAXA,QAAQ,CAAC,IAAY,EAAE,KAAmB;QACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,GAAG,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,UAAU;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;CACD,CAAA;AAdY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,YAAO,GAAE;GACG,eAAe,CAc3B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Command = void 0;
|
|
4
|
+
const di_1 = require("@n8n/di");
|
|
5
|
+
const command_metadata_1 = require("./command-metadata");
|
|
6
|
+
const Command = ({ name, description, examples, flagsSchema }) => (target) => {
|
|
7
|
+
const commandClass = target;
|
|
8
|
+
di_1.Container.get(command_metadata_1.CommandMetadata).register(name, {
|
|
9
|
+
description,
|
|
10
|
+
flagsSchema,
|
|
11
|
+
class: commandClass,
|
|
12
|
+
examples,
|
|
13
|
+
});
|
|
14
|
+
return (0, di_1.Service)()(target);
|
|
15
|
+
};
|
|
16
|
+
exports.Command = Command;
|
|
17
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/command/command.ts"],"names":[],"mappings":";;;AAAA,gCAA6C;AAE7C,yDAAqD;AAG9C,MAAM,OAAO,GACnB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAkB,EAAkB,EAAE,CACjF,CAAC,MAAM,EAAE,EAAE;IACV,MAAM,YAAY,GAAG,MAAiC,CAAC;IACvD,cAAS,CAAC,GAAG,CAAC,kCAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC7C,WAAW;QACX,WAAW;QACX,KAAK,EAAE,YAAY;QACnB,QAAQ;KACR,CAAC,CAAC;IAEH,OAAO,IAAA,YAAO,GAAE,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC,CAAC;AAZU,QAAA,OAAO,WAYjB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommandMetadata = exports.Command = void 0;
|
|
4
|
+
var command_1 = require("./command");
|
|
5
|
+
Object.defineProperty(exports, "Command", { enumerable: true, get: function () { return command_1.Command; } });
|
|
6
|
+
var command_metadata_1 = require("./command-metadata");
|
|
7
|
+
Object.defineProperty(exports, "CommandMetadata", { enumerable: true, get: function () { return command_metadata_1.CommandMetadata; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/command/index.ts"],"names":[],"mappings":";;;AAAA,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Constructable } from '@n8n/di';
|
|
2
|
+
import type { ZodObject, ZodTypeAny } from 'zod';
|
|
3
|
+
type FlagsSchema = ZodObject<Record<string, ZodTypeAny>>;
|
|
4
|
+
export type CommandOptions = {
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
examples?: string[];
|
|
8
|
+
flagsSchema?: FlagsSchema;
|
|
9
|
+
};
|
|
10
|
+
export type ICommand = {
|
|
11
|
+
flags?: object;
|
|
12
|
+
init?: () => Promise<void>;
|
|
13
|
+
run: () => Promise<void>;
|
|
14
|
+
catch?: (e: Error) => Promise<void>;
|
|
15
|
+
finally?: (e?: Error) => Promise<void>;
|
|
16
|
+
};
|
|
17
|
+
export type CommandClass = Constructable<ICommand>;
|
|
18
|
+
export type CommandEntry = {
|
|
19
|
+
class: CommandClass;
|
|
20
|
+
description: string;
|
|
21
|
+
examples?: string[];
|
|
22
|
+
flagsSchema?: FlagsSchema;
|
|
23
|
+
};
|
|
24
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/command/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ContextEstablishmentHookClass } from './context-establishment-hook';
|
|
2
|
+
type ContextEstablishmentHookEntry = {
|
|
3
|
+
class: ContextEstablishmentHookClass;
|
|
4
|
+
};
|
|
5
|
+
export declare class ContextEstablishmentHookMetadata {
|
|
6
|
+
private readonly contextEstablishmentHooks;
|
|
7
|
+
register(hookEntry: ContextEstablishmentHookEntry): void;
|
|
8
|
+
getEntries(): [ContextEstablishmentHookEntry, ContextEstablishmentHookEntry][];
|
|
9
|
+
getClasses(): ContextEstablishmentHookClass[];
|
|
10
|
+
}
|
|
11
|
+
export declare const ContextEstablishmentHook: <T extends ContextEstablishmentHookClass>() => (target: T) => any;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ContextEstablishmentHook = exports.ContextEstablishmentHookMetadata = void 0;
|
|
10
|
+
const di_1 = require("@n8n/di");
|
|
11
|
+
let ContextEstablishmentHookMetadata = class ContextEstablishmentHookMetadata {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.contextEstablishmentHooks = new Set();
|
|
14
|
+
}
|
|
15
|
+
register(hookEntry) {
|
|
16
|
+
this.contextEstablishmentHooks.add(hookEntry);
|
|
17
|
+
}
|
|
18
|
+
getEntries() {
|
|
19
|
+
return [...this.contextEstablishmentHooks.entries()];
|
|
20
|
+
}
|
|
21
|
+
getClasses() {
|
|
22
|
+
return [...this.contextEstablishmentHooks.values()].map((entry) => entry.class);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
exports.ContextEstablishmentHookMetadata = ContextEstablishmentHookMetadata;
|
|
26
|
+
exports.ContextEstablishmentHookMetadata = ContextEstablishmentHookMetadata = __decorate([
|
|
27
|
+
(0, di_1.Service)()
|
|
28
|
+
], ContextEstablishmentHookMetadata);
|
|
29
|
+
const ContextEstablishmentHook = () => (target) => {
|
|
30
|
+
di_1.Container.get(ContextEstablishmentHookMetadata).register({
|
|
31
|
+
class: target,
|
|
32
|
+
});
|
|
33
|
+
return (0, di_1.Service)()(target);
|
|
34
|
+
};
|
|
35
|
+
exports.ContextEstablishmentHook = ContextEstablishmentHook;
|
|
36
|
+
//# sourceMappingURL=context-establishment-hook-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-establishment-hook-metadata.js","sourceRoot":"","sources":["../../src/context-establishment/context-establishment-hook-metadata.ts"],"names":[],"mappings":";;;;;;;;;AAAA,gCAA6C;AAmCtC,IAAM,gCAAgC,GAAtC,MAAM,gCAAgC;IAAtC;QAOW,8BAAyB,GAAuC,IAAI,GAAG,EAAE,CAAC;IA0E5F,CAAC;IA3DA,QAAQ,CAAC,SAAwC;QAChD,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAoBD,UAAU;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;IAgCD,UAAU;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjF,CAAC;CACD,CAAA;AAjFY,4EAAgC;2CAAhC,gCAAgC;IAD5C,IAAA,YAAO,GAAE;GACG,gCAAgC,CAiF5C;AAwEM,MAAM,wBAAwB,GACpC,GAA4C,EAAE,CAC9C,CAAC,MAAS,EAAE,EAAE;IAEb,cAAS,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,QAAQ,CAAC;QACxD,KAAK,EAAE,MAAM;KACb,CAAC,CAAC;IAIH,OAAO,IAAA,YAAO,GAAE,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC,CAAC;AAXU,QAAA,wBAAwB,4BAWlC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Constructable } from '@n8n/di';
|
|
2
|
+
import type { INode, INodeExecutionData, INodeProperties, PlaintextExecutionContext, Workflow } from 'n8n-workflow';
|
|
3
|
+
export type ContextEstablishmentOptions = {
|
|
4
|
+
triggerNode: INode;
|
|
5
|
+
workflow: Workflow;
|
|
6
|
+
triggerItems: INodeExecutionData[] | null;
|
|
7
|
+
context: PlaintextExecutionContext;
|
|
8
|
+
options?: Record<string, unknown>;
|
|
9
|
+
};
|
|
10
|
+
export type ContextEstablishmentResult = {
|
|
11
|
+
triggerItems?: INodeExecutionData[];
|
|
12
|
+
contextUpdate?: Partial<PlaintextExecutionContext>;
|
|
13
|
+
};
|
|
14
|
+
export type HookDescription = {
|
|
15
|
+
name: string;
|
|
16
|
+
displayName?: string;
|
|
17
|
+
options?: INodeProperties[];
|
|
18
|
+
};
|
|
19
|
+
export interface IContextEstablishmentHook {
|
|
20
|
+
hookDescription: HookDescription;
|
|
21
|
+
execute(options: ContextEstablishmentOptions): Promise<ContextEstablishmentResult>;
|
|
22
|
+
isApplicableToTriggerNode(nodeType: string): boolean;
|
|
23
|
+
init?(): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
export type ContextEstablishmentHookClass = Constructable<IContextEstablishmentHook>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-establishment-hook.js","sourceRoot":"","sources":["../../src/context-establishment/context-establishment-hook.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ContextEstablishmentHook = exports.ContextEstablishmentHookMetadata = void 0;
|
|
4
|
+
var context_establishment_hook_metadata_1 = require("./context-establishment-hook-metadata");
|
|
5
|
+
Object.defineProperty(exports, "ContextEstablishmentHookMetadata", { enumerable: true, get: function () { return context_establishment_hook_metadata_1.ContextEstablishmentHookMetadata; } });
|
|
6
|
+
Object.defineProperty(exports, "ContextEstablishmentHook", { enumerable: true, get: function () { return context_establishment_hook_metadata_1.ContextEstablishmentHook; } });
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context-establishment/index.ts"],"names":[],"mappings":";;;AAAA,6FAG+C;AAF9C,uJAAA,gCAAgC,OAAA;AAChC,+IAAA,wBAAwB,OAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Param = exports.Query = exports.Body = void 0;
|
|
4
|
+
const di_1 = require("@n8n/di");
|
|
5
|
+
const controller_registry_metadata_1 = require("./controller-registry-metadata");
|
|
6
|
+
const ArgDecorator = (arg) => (target, handlerName, parameterIndex) => {
|
|
7
|
+
const routeMetadata = di_1.Container.get(controller_registry_metadata_1.ControllerRegistryMetadata).getRouteMetadata(target.constructor, String(handlerName));
|
|
8
|
+
routeMetadata.args[parameterIndex] = arg;
|
|
9
|
+
};
|
|
10
|
+
exports.Body = ArgDecorator({ type: 'body' });
|
|
11
|
+
exports.Query = ArgDecorator({ type: 'query' });
|
|
12
|
+
const Param = (key) => ArgDecorator({ type: 'param', key });
|
|
13
|
+
exports.Param = Param;
|
|
14
|
+
//# sourceMappingURL=args.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/controller/args.ts"],"names":[],"mappings":";;;AAAA,gCAAoC;AAEpC,iFAA4E;AAG5E,MAAM,YAAY,GACjB,CAAC,GAAQ,EAAsB,EAAE,CACjC,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE;IACvC,MAAM,aAAa,GAAG,cAAS,CAAC,GAAG,CAAC,yDAA0B,CAAC,CAAC,gBAAgB,CAC/E,MAAM,CAAC,WAAyB,EAChC,MAAM,CAAC,WAAW,CAAC,CACnB,CAAC;IACF,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC;AAC1C,CAAC,CAAC;AAGU,QAAA,IAAI,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAGtC,QAAA,KAAK,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAG9C,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;AAA9D,QAAA,KAAK,SAAyD"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Controller, ControllerMetadata, HandlerName, RouteMetadata } from './types';
|
|
2
|
+
export declare class ControllerRegistryMetadata {
|
|
3
|
+
private registry;
|
|
4
|
+
getControllerMetadata(controllerClass: Controller): ControllerMetadata;
|
|
5
|
+
getRouteMetadata(controllerClass: Controller, handlerName: HandlerName): RouteMetadata;
|
|
6
|
+
get controllerClasses(): MapIterator<Controller>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ControllerRegistryMetadata = void 0;
|
|
10
|
+
const di_1 = require("@n8n/di");
|
|
11
|
+
let ControllerRegistryMetadata = class ControllerRegistryMetadata {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.registry = new Map();
|
|
14
|
+
}
|
|
15
|
+
getControllerMetadata(controllerClass) {
|
|
16
|
+
let metadata = this.registry.get(controllerClass);
|
|
17
|
+
if (!metadata) {
|
|
18
|
+
metadata = {
|
|
19
|
+
basePath: '/',
|
|
20
|
+
registerOnRootPath: false,
|
|
21
|
+
middlewares: [],
|
|
22
|
+
routes: new Map(),
|
|
23
|
+
};
|
|
24
|
+
this.registry.set(controllerClass, metadata);
|
|
25
|
+
}
|
|
26
|
+
return metadata;
|
|
27
|
+
}
|
|
28
|
+
getRouteMetadata(controllerClass, handlerName) {
|
|
29
|
+
const metadata = this.getControllerMetadata(controllerClass);
|
|
30
|
+
let route = metadata.routes.get(handlerName);
|
|
31
|
+
if (!route) {
|
|
32
|
+
route = {};
|
|
33
|
+
route.args = [];
|
|
34
|
+
metadata.routes.set(handlerName, route);
|
|
35
|
+
}
|
|
36
|
+
return route;
|
|
37
|
+
}
|
|
38
|
+
get controllerClasses() {
|
|
39
|
+
return this.registry.keys();
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
exports.ControllerRegistryMetadata = ControllerRegistryMetadata;
|
|
43
|
+
exports.ControllerRegistryMetadata = ControllerRegistryMetadata = __decorate([
|
|
44
|
+
(0, di_1.Service)()
|
|
45
|
+
], ControllerRegistryMetadata);
|
|
46
|
+
//# sourceMappingURL=controller-registry-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller-registry-metadata.js","sourceRoot":"","sources":["../../src/controller/controller-registry-metadata.ts"],"names":[],"mappings":";;;;;;;;;AAAA,gCAAkC;AAK3B,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAAhC;QACE,aAAQ,GAAG,IAAI,GAAG,EAAkC,CAAC;IA8B9D,CAAC;IA5BA,qBAAqB,CAAC,eAA2B;QAChD,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,QAAQ,GAAG;gBACV,QAAQ,EAAE,GAAG;gBACb,kBAAkB,EAAE,KAAK;gBACzB,WAAW,EAAE,EAAE;gBACf,MAAM,EAAE,IAAI,GAAG,EAAE;aACjB,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,gBAAgB,CAAC,eAA2B,EAAE,WAAwB;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAC7D,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,KAAK,GAAG,EAAmB,CAAC;YAC5B,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;YAChB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;CACD,CAAA;AA/BY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,YAAO,GAAE;GACG,0BAA0B,CA+BtC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { Body, Query, Param } from './args';
|
|
2
|
+
export { RestController } from './rest-controller';
|
|
3
|
+
export { RootLevelController } from './root-level-controller';
|
|
4
|
+
export { Get, Post, Put, Patch, Delete, Head, Options } from './route';
|
|
5
|
+
export { Middleware } from './middleware';
|
|
6
|
+
export { ControllerRegistryMetadata } from './controller-registry-metadata';
|
|
7
|
+
export { Licensed } from './licensed';
|
|
8
|
+
export { GlobalScope, ProjectScope } from './scoped';
|
|
9
|
+
export type { AccessScope, Controller, RateLimit, StaticRouterMetadata } from './types';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProjectScope = exports.GlobalScope = exports.Licensed = exports.ControllerRegistryMetadata = exports.Middleware = exports.Options = exports.Head = exports.Delete = exports.Patch = exports.Put = exports.Post = exports.Get = exports.RootLevelController = exports.RestController = exports.Param = exports.Query = exports.Body = void 0;
|
|
4
|
+
var args_1 = require("./args");
|
|
5
|
+
Object.defineProperty(exports, "Body", { enumerable: true, get: function () { return args_1.Body; } });
|
|
6
|
+
Object.defineProperty(exports, "Query", { enumerable: true, get: function () { return args_1.Query; } });
|
|
7
|
+
Object.defineProperty(exports, "Param", { enumerable: true, get: function () { return args_1.Param; } });
|
|
8
|
+
var rest_controller_1 = require("./rest-controller");
|
|
9
|
+
Object.defineProperty(exports, "RestController", { enumerable: true, get: function () { return rest_controller_1.RestController; } });
|
|
10
|
+
var root_level_controller_1 = require("./root-level-controller");
|
|
11
|
+
Object.defineProperty(exports, "RootLevelController", { enumerable: true, get: function () { return root_level_controller_1.RootLevelController; } });
|
|
12
|
+
var route_1 = require("./route");
|
|
13
|
+
Object.defineProperty(exports, "Get", { enumerable: true, get: function () { return route_1.Get; } });
|
|
14
|
+
Object.defineProperty(exports, "Post", { enumerable: true, get: function () { return route_1.Post; } });
|
|
15
|
+
Object.defineProperty(exports, "Put", { enumerable: true, get: function () { return route_1.Put; } });
|
|
16
|
+
Object.defineProperty(exports, "Patch", { enumerable: true, get: function () { return route_1.Patch; } });
|
|
17
|
+
Object.defineProperty(exports, "Delete", { enumerable: true, get: function () { return route_1.Delete; } });
|
|
18
|
+
Object.defineProperty(exports, "Head", { enumerable: true, get: function () { return route_1.Head; } });
|
|
19
|
+
Object.defineProperty(exports, "Options", { enumerable: true, get: function () { return route_1.Options; } });
|
|
20
|
+
var middleware_1 = require("./middleware");
|
|
21
|
+
Object.defineProperty(exports, "Middleware", { enumerable: true, get: function () { return middleware_1.Middleware; } });
|
|
22
|
+
var controller_registry_metadata_1 = require("./controller-registry-metadata");
|
|
23
|
+
Object.defineProperty(exports, "ControllerRegistryMetadata", { enumerable: true, get: function () { return controller_registry_metadata_1.ControllerRegistryMetadata; } });
|
|
24
|
+
var licensed_1 = require("./licensed");
|
|
25
|
+
Object.defineProperty(exports, "Licensed", { enumerable: true, get: function () { return licensed_1.Licensed; } });
|
|
26
|
+
var scoped_1 = require("./scoped");
|
|
27
|
+
Object.defineProperty(exports, "GlobalScope", { enumerable: true, get: function () { return scoped_1.GlobalScope; } });
|
|
28
|
+
Object.defineProperty(exports, "ProjectScope", { enumerable: true, get: function () { return scoped_1.ProjectScope; } });
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/controller/index.ts"],"names":[],"mappings":";;;AAAA,+BAA4C;AAAnC,4FAAA,IAAI,OAAA;AAAE,6FAAA,KAAK,OAAA;AAAE,6FAAA,KAAK,OAAA;AAC3B,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;AAC5B,iCAAuE;AAA9D,4FAAA,GAAG,OAAA;AAAE,6FAAA,IAAI,OAAA;AAAE,4FAAA,GAAG,OAAA;AAAE,8FAAA,KAAK,OAAA;AAAE,+FAAA,MAAM,OAAA;AAAE,6FAAA,IAAI,OAAA;AAAE,gGAAA,OAAO,OAAA;AACrD,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,+EAA4E;AAAnE,0IAAA,0BAA0B,OAAA;AACnC,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,mCAAqD;AAA5C,qGAAA,WAAW,OAAA;AAAE,sGAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Licensed = void 0;
|
|
4
|
+
const di_1 = require("@n8n/di");
|
|
5
|
+
const controller_registry_metadata_1 = require("./controller-registry-metadata");
|
|
6
|
+
const Licensed = (licenseFeature) => (target, handlerName) => {
|
|
7
|
+
const routeMetadata = di_1.Container.get(controller_registry_metadata_1.ControllerRegistryMetadata).getRouteMetadata(target.constructor, String(handlerName));
|
|
8
|
+
routeMetadata.licenseFeature = licenseFeature;
|
|
9
|
+
};
|
|
10
|
+
exports.Licensed = Licensed;
|
|
11
|
+
//# sourceMappingURL=licensed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"licensed.js","sourceRoot":"","sources":["../../src/controller/licensed.ts"],"names":[],"mappings":";;;AACA,gCAAoC;AAEpC,iFAA4E;AAGrE,MAAM,QAAQ,GACpB,CAAC,cAAqC,EAAmB,EAAE,CAC3D,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;IACvB,MAAM,aAAa,GAAG,cAAS,CAAC,GAAG,CAAC,yDAA0B,CAAC,CAAC,gBAAgB,CAC/E,MAAM,CAAC,WAAyB,EAChC,MAAM,CAAC,WAAW,CAAC,CACnB,CAAC;IACF,aAAa,CAAC,cAAc,GAAG,cAAc,CAAC;AAC/C,CAAC,CAAC;AARU,QAAA,QAAQ,YAQlB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const Middleware: () => MethodDecorator;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Middleware = void 0;
|
|
4
|
+
const di_1 = require("@n8n/di");
|
|
5
|
+
const controller_registry_metadata_1 = require("./controller-registry-metadata");
|
|
6
|
+
const Middleware = () => (target, handlerName) => {
|
|
7
|
+
const metadata = di_1.Container.get(controller_registry_metadata_1.ControllerRegistryMetadata).getControllerMetadata(target.constructor);
|
|
8
|
+
metadata.middlewares.push(String(handlerName));
|
|
9
|
+
};
|
|
10
|
+
exports.Middleware = Middleware;
|
|
11
|
+
//# sourceMappingURL=middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/controller/middleware.ts"],"names":[],"mappings":";;;AAAA,gCAAoC;AAEpC,iFAA4E;AAGrE,MAAM,UAAU,GAAG,GAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;IACxE,MAAM,QAAQ,GAAG,cAAS,CAAC,GAAG,CAAC,yDAA0B,CAAC,CAAC,qBAAqB,CAC/E,MAAM,CAAC,WAAyB,CAChC,CAAC;IACF,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC;AALW,QAAA,UAAU,cAKrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const RestController: (basePath?: `/${string}`) => ClassDecorator;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RestController = void 0;
|
|
4
|
+
const di_1 = require("@n8n/di");
|
|
5
|
+
const controller_registry_metadata_1 = require("./controller-registry-metadata");
|
|
6
|
+
const RestController = (basePath = '/') => (target) => {
|
|
7
|
+
const metadata = di_1.Container.get(controller_registry_metadata_1.ControllerRegistryMetadata).getControllerMetadata(target);
|
|
8
|
+
metadata.basePath = basePath;
|
|
9
|
+
metadata.registerOnRootPath = false;
|
|
10
|
+
return (0, di_1.Service)()(target);
|
|
11
|
+
};
|
|
12
|
+
exports.RestController = RestController;
|
|
13
|
+
//# sourceMappingURL=rest-controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rest-controller.js","sourceRoot":"","sources":["../../src/controller/rest-controller.ts"],"names":[],"mappings":";;;AAAA,gCAA6C;AAE7C,iFAA4E;AAGrE,MAAM,cAAc,GAC1B,CAAC,WAAyB,GAAG,EAAkB,EAAE,CACjD,CAAC,MAAM,EAAE,EAAE;IACV,MAAM,QAAQ,GAAG,cAAS,CAAC,GAAG,CAAC,yDAA0B,CAAC,CAAC,qBAAqB,CAC/E,MAA+B,CAC/B,CAAC;IACF,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAEpC,OAAO,IAAA,YAAO,GAAE,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC,CAAC;AAVU,QAAA,cAAc,kBAUxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const RootLevelController: (basePath?: `/${string}`) => ClassDecorator;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RootLevelController = void 0;
|
|
4
|
+
const di_1 = require("@n8n/di");
|
|
5
|
+
const controller_registry_metadata_1 = require("./controller-registry-metadata");
|
|
6
|
+
const RootLevelController = (basePath = '/') => (target) => {
|
|
7
|
+
const metadata = di_1.Container.get(controller_registry_metadata_1.ControllerRegistryMetadata).getControllerMetadata(target);
|
|
8
|
+
metadata.basePath = basePath;
|
|
9
|
+
metadata.registerOnRootPath = true;
|
|
10
|
+
return (0, di_1.Service)()(target);
|
|
11
|
+
};
|
|
12
|
+
exports.RootLevelController = RootLevelController;
|
|
13
|
+
//# sourceMappingURL=root-level-controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"root-level-controller.js","sourceRoot":"","sources":["../../src/controller/root-level-controller.ts"],"names":[],"mappings":";;;AAAA,gCAA6C;AAE7C,iFAA4E;AAQrE,MAAM,mBAAmB,GAC/B,CAAC,WAAyB,GAAG,EAAkB,EAAE,CACjD,CAAC,MAAM,EAAE,EAAE;IACV,MAAM,QAAQ,GAAG,cAAS,CAAC,GAAG,CAAC,yDAA0B,CAAC,CAAC,qBAAqB,CAC/E,MAA+B,CAC/B,CAAC;IACF,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAEnC,OAAO,IAAA,YAAO,GAAE,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC,CAAC;AAVU,QAAA,mBAAmB,uBAU7B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { RequestHandler } from 'express';
|
|
2
|
+
import type { RateLimit } from './types';
|
|
3
|
+
interface RouteOptions {
|
|
4
|
+
middlewares?: RequestHandler[];
|
|
5
|
+
usesTemplates?: boolean;
|
|
6
|
+
skipAuth?: boolean;
|
|
7
|
+
allowSkipPreviewAuth?: boolean;
|
|
8
|
+
allowSkipMFA?: boolean;
|
|
9
|
+
rateLimit?: boolean | RateLimit;
|
|
10
|
+
apiKeyAuth?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare const Get: (path: `/${string}`, options?: RouteOptions) => MethodDecorator;
|
|
13
|
+
export declare const Post: (path: `/${string}`, options?: RouteOptions) => MethodDecorator;
|
|
14
|
+
export declare const Put: (path: `/${string}`, options?: RouteOptions) => MethodDecorator;
|
|
15
|
+
export declare const Patch: (path: `/${string}`, options?: RouteOptions) => MethodDecorator;
|
|
16
|
+
export declare const Delete: (path: `/${string}`, options?: RouteOptions) => MethodDecorator;
|
|
17
|
+
export declare const Head: (path: `/${string}`, options?: RouteOptions) => MethodDecorator;
|
|
18
|
+
export declare const Options: (path: `/${string}`, options?: RouteOptions) => MethodDecorator;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Options = exports.Head = exports.Delete = exports.Patch = exports.Put = exports.Post = exports.Get = void 0;
|
|
4
|
+
const di_1 = require("@n8n/di");
|
|
5
|
+
const controller_registry_metadata_1 = require("./controller-registry-metadata");
|
|
6
|
+
const RouteFactory = (method) => (path, options = {}) => (target, handlerName) => {
|
|
7
|
+
const routeMetadata = di_1.Container.get(controller_registry_metadata_1.ControllerRegistryMetadata).getRouteMetadata(target.constructor, String(handlerName));
|
|
8
|
+
routeMetadata.method = method;
|
|
9
|
+
routeMetadata.path = path;
|
|
10
|
+
routeMetadata.middlewares = options.middlewares ?? [];
|
|
11
|
+
routeMetadata.usesTemplates = options.usesTemplates ?? false;
|
|
12
|
+
routeMetadata.skipAuth = options.skipAuth ?? false;
|
|
13
|
+
routeMetadata.allowSkipPreviewAuth = options.allowSkipPreviewAuth ?? false;
|
|
14
|
+
routeMetadata.allowSkipMFA = options.allowSkipMFA ?? false;
|
|
15
|
+
routeMetadata.apiKeyAuth = options.apiKeyAuth ?? false;
|
|
16
|
+
routeMetadata.rateLimit = options.rateLimit;
|
|
17
|
+
};
|
|
18
|
+
exports.Get = RouteFactory('get');
|
|
19
|
+
exports.Post = RouteFactory('post');
|
|
20
|
+
exports.Put = RouteFactory('put');
|
|
21
|
+
exports.Patch = RouteFactory('patch');
|
|
22
|
+
exports.Delete = RouteFactory('delete');
|
|
23
|
+
exports.Head = RouteFactory('head');
|
|
24
|
+
exports.Options = RouteFactory('options');
|
|
25
|
+
//# sourceMappingURL=route.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/controller/route.ts"],"names":[],"mappings":";;;AAAA,gCAAoC;AAGpC,iFAA4E;AAiB5E,MAAM,YAAY,GACjB,CAAC,MAAc,EAAE,EAAE,CACnB,CAAC,IAAkB,EAAE,UAAwB,EAAE,EAAmB,EAAE,CACpE,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;IACvB,MAAM,aAAa,GAAG,cAAS,CAAC,GAAG,CAAC,yDAA0B,CAAC,CAAC,gBAAgB,CAC/E,MAAM,CAAC,WAAyB,EAChC,MAAM,CAAC,WAAW,CAAC,CACnB,CAAC;IACF,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC;IAC9B,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC;IAC1B,aAAa,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;IACtD,aAAa,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC;IAC7D,aAAa,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;IACnD,aAAa,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,IAAI,KAAK,CAAC;IAC3E,aAAa,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC;IAC3D,aAAa,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC;IACvD,aAAa,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;AAC7C,CAAC,CAAC;AAEU,QAAA,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AAC1B,QAAA,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAC5B,QAAA,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AAC1B,QAAA,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;AAC9B,QAAA,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AAChC,QAAA,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAC5B,QAAA,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProjectScope = exports.GlobalScope = void 0;
|
|
4
|
+
const di_1 = require("@n8n/di");
|
|
5
|
+
const controller_registry_metadata_1 = require("./controller-registry-metadata");
|
|
6
|
+
const Scoped = (scope, { globalOnly } = { globalOnly: false }) => (target, handlerName) => {
|
|
7
|
+
const routeMetadata = di_1.Container.get(controller_registry_metadata_1.ControllerRegistryMetadata).getRouteMetadata(target.constructor, String(handlerName));
|
|
8
|
+
routeMetadata.accessScope = { scope, globalOnly };
|
|
9
|
+
};
|
|
10
|
+
const GlobalScope = (scope) => Scoped(scope, { globalOnly: true });
|
|
11
|
+
exports.GlobalScope = GlobalScope;
|
|
12
|
+
const ProjectScope = (scope) => Scoped(scope);
|
|
13
|
+
exports.ProjectScope = ProjectScope;
|
|
14
|
+
//# sourceMappingURL=scoped.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scoped.js","sourceRoot":"","sources":["../../src/controller/scoped.ts"],"names":[],"mappings":";;;AAAA,gCAAoC;AAGpC,iFAA4E;AAG5E,MAAM,MAAM,GACX,CAAC,KAAY,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,EAAmB,EAAE,CAC1E,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;IACvB,MAAM,aAAa,GAAG,cAAS,CAAC,GAAG,CAAC,yDAA0B,CAAC,CAAC,gBAAgB,CAC/E,MAAM,CAAC,WAAyB,EAChC,MAAM,CAAC,WAAW,CAAC,CACnB,CAAC;IACF,aAAa,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACnD,CAAC,CAAC;AAkBI,MAAM,WAAW,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AAApE,QAAA,WAAW,eAAyD;AAmB1E,MAAM,YAAY,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAA/C,QAAA,YAAY,gBAAmC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { BooleanLicenseFeature } from '@n8n/constants';
|
|
2
|
+
import type { Constructable } from '@n8n/di';
|
|
3
|
+
import type { Scope } from '@n8n/permissions';
|
|
4
|
+
import type { RequestHandler, Router } from 'express';
|
|
5
|
+
export type Method = 'get' | 'post' | 'put' | 'patch' | 'delete' | 'head' | 'options';
|
|
6
|
+
export type Arg = {
|
|
7
|
+
type: 'body' | 'query';
|
|
8
|
+
} | {
|
|
9
|
+
type: 'param';
|
|
10
|
+
key: string;
|
|
11
|
+
};
|
|
12
|
+
export interface RateLimit {
|
|
13
|
+
limit?: number;
|
|
14
|
+
windowMs?: number;
|
|
15
|
+
}
|
|
16
|
+
export type HandlerName = string;
|
|
17
|
+
export interface AccessScope {
|
|
18
|
+
scope: Scope;
|
|
19
|
+
globalOnly: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface RouteMetadata {
|
|
22
|
+
method: Method;
|
|
23
|
+
path: string;
|
|
24
|
+
middlewares: RequestHandler[];
|
|
25
|
+
usesTemplates: boolean;
|
|
26
|
+
skipAuth: boolean;
|
|
27
|
+
allowSkipPreviewAuth: boolean;
|
|
28
|
+
allowSkipMFA: boolean;
|
|
29
|
+
apiKeyAuth: boolean;
|
|
30
|
+
rateLimit?: boolean | RateLimit;
|
|
31
|
+
licenseFeature?: BooleanLicenseFeature;
|
|
32
|
+
accessScope?: AccessScope;
|
|
33
|
+
args: Arg[];
|
|
34
|
+
router?: Router;
|
|
35
|
+
}
|
|
36
|
+
export type StaticRouterMetadata = {
|
|
37
|
+
path: string;
|
|
38
|
+
router: Router;
|
|
39
|
+
} & Partial<Pick<RouteMetadata, 'skipAuth' | 'allowSkipPreviewAuth' | 'allowSkipMFA' | 'middlewares' | 'rateLimit' | 'licenseFeature' | 'accessScope'>>;
|
|
40
|
+
export interface ControllerMetadata {
|
|
41
|
+
basePath: `/${string}`;
|
|
42
|
+
registerOnRootPath?: boolean;
|
|
43
|
+
middlewares: HandlerName[];
|
|
44
|
+
routes: Map<HandlerName, RouteMetadata>;
|
|
45
|
+
}
|
|
46
|
+
export type Controller = Constructable<object> & Record<HandlerName, (...args: unknown[]) => Promise<unknown>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/controller/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CredentialResolverClass } from './credential-resolver';
|
|
2
|
+
type CredentialResolverEntry = {
|
|
3
|
+
class: CredentialResolverClass;
|
|
4
|
+
};
|
|
5
|
+
export declare class CredentialResolverEntryMetadata {
|
|
6
|
+
private readonly credentialResolverEntries;
|
|
7
|
+
register(credentialResolverEntry: CredentialResolverEntry): void;
|
|
8
|
+
getEntries(): [CredentialResolverEntry, CredentialResolverEntry][];
|
|
9
|
+
getClasses(): CredentialResolverClass[];
|
|
10
|
+
}
|
|
11
|
+
export declare const CredentialResolver: <T extends CredentialResolverClass>() => (target: T) => any;
|
|
12
|
+
export {};
|