@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.
Files changed (137) hide show
  1. package/dist/build.tsbuildinfo +1 -0
  2. package/dist/command/command-metadata.d.ts +7 -0
  3. package/dist/command/command-metadata.js +29 -0
  4. package/dist/command/command-metadata.js.map +1 -0
  5. package/dist/command/command.d.ts +2 -0
  6. package/dist/command/command.js +17 -0
  7. package/dist/command/command.js.map +1 -0
  8. package/dist/command/index.d.ts +3 -0
  9. package/dist/command/index.js +8 -0
  10. package/dist/command/index.js.map +1 -0
  11. package/dist/command/types.d.ts +24 -0
  12. package/dist/command/types.js +3 -0
  13. package/dist/command/types.js.map +1 -0
  14. package/dist/context-establishment/context-establishment-hook-metadata.d.ts +12 -0
  15. package/dist/context-establishment/context-establishment-hook-metadata.js +36 -0
  16. package/dist/context-establishment/context-establishment-hook-metadata.js.map +1 -0
  17. package/dist/context-establishment/context-establishment-hook.d.ts +25 -0
  18. package/dist/context-establishment/context-establishment-hook.js +3 -0
  19. package/dist/context-establishment/context-establishment-hook.js.map +1 -0
  20. package/dist/context-establishment/index.d.ts +2 -0
  21. package/dist/context-establishment/index.js +7 -0
  22. package/dist/context-establishment/index.js.map +1 -0
  23. package/dist/controller/args.d.ts +3 -0
  24. package/dist/controller/args.js +14 -0
  25. package/dist/controller/args.js.map +1 -0
  26. package/dist/controller/controller-registry-metadata.d.ts +7 -0
  27. package/dist/controller/controller-registry-metadata.js +46 -0
  28. package/dist/controller/controller-registry-metadata.js.map +1 -0
  29. package/dist/controller/index.d.ts +9 -0
  30. package/dist/controller/index.js +29 -0
  31. package/dist/controller/index.js.map +1 -0
  32. package/dist/controller/licensed.d.ts +2 -0
  33. package/dist/controller/licensed.js +11 -0
  34. package/dist/controller/licensed.js.map +1 -0
  35. package/dist/controller/middleware.d.ts +1 -0
  36. package/dist/controller/middleware.js +11 -0
  37. package/dist/controller/middleware.js.map +1 -0
  38. package/dist/controller/rest-controller.d.ts +1 -0
  39. package/dist/controller/rest-controller.js +13 -0
  40. package/dist/controller/rest-controller.js.map +1 -0
  41. package/dist/controller/root-level-controller.d.ts +1 -0
  42. package/dist/controller/root-level-controller.js +13 -0
  43. package/dist/controller/root-level-controller.js.map +1 -0
  44. package/dist/controller/route.d.ts +19 -0
  45. package/dist/controller/route.js +25 -0
  46. package/dist/controller/route.js.map +1 -0
  47. package/dist/controller/scoped.d.ts +3 -0
  48. package/dist/controller/scoped.js +14 -0
  49. package/dist/controller/scoped.js.map +1 -0
  50. package/dist/controller/types.d.ts +46 -0
  51. package/dist/controller/types.js +3 -0
  52. package/dist/controller/types.js.map +1 -0
  53. package/dist/credential-resolver/credential-resolver-metadata.d.ts +12 -0
  54. package/dist/credential-resolver/credential-resolver-metadata.js +36 -0
  55. package/dist/credential-resolver/credential-resolver-metadata.js.map +1 -0
  56. package/dist/credential-resolver/credential-resolver.d.ts +24 -0
  57. package/dist/credential-resolver/credential-resolver.js +3 -0
  58. package/dist/credential-resolver/credential-resolver.js.map +1 -0
  59. package/dist/credential-resolver/errors.d.ts +9 -0
  60. package/dist/credential-resolver/errors.js +25 -0
  61. package/dist/credential-resolver/errors.js.map +1 -0
  62. package/dist/credential-resolver/index.d.ts +3 -0
  63. package/dist/credential-resolver/index.js +22 -0
  64. package/dist/credential-resolver/index.js.map +1 -0
  65. package/dist/debounce.d.ts +1 -0
  66. package/dist/debounce.js +20 -0
  67. package/dist/debounce.js.map +1 -0
  68. package/dist/errors.d.ts +4 -0
  69. package/dist/errors.js +11 -0
  70. package/dist/errors.js.map +1 -0
  71. package/dist/execution-lifecycle/index.d.ts +3 -0
  72. package/dist/execution-lifecycle/index.js +8 -0
  73. package/dist/execution-lifecycle/index.js.map +1 -0
  74. package/dist/execution-lifecycle/lifecycle-metadata.d.ts +41 -0
  75. package/dist/execution-lifecycle/lifecycle-metadata.js +26 -0
  76. package/dist/execution-lifecycle/lifecycle-metadata.js.map +1 -0
  77. package/dist/execution-lifecycle/on-lifecycle-event.d.ts +2 -0
  78. package/dist/execution-lifecycle/on-lifecycle-event.js +20 -0
  79. package/dist/execution-lifecycle/on-lifecycle-event.js.map +1 -0
  80. package/dist/index.d.ts +15 -0
  81. package/dist/index.js +36 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/memoized.d.ts +1 -0
  84. package/dist/memoized.js +23 -0
  85. package/dist/memoized.js.map +1 -0
  86. package/dist/module/index.d.ts +3 -0
  87. package/dist/module/index.js +8 -0
  88. package/dist/module/index.js.map +1 -0
  89. package/dist/module/module-metadata.d.ts +15 -0
  90. package/dist/module/module-metadata.js +32 -0
  91. package/dist/module/module-metadata.js.map +1 -0
  92. package/dist/module/module.d.ts +38 -0
  93. package/dist/module/module.js +15 -0
  94. package/dist/module/module.js.map +1 -0
  95. package/dist/multi-main/index.d.ts +2 -0
  96. package/dist/multi-main/index.js +9 -0
  97. package/dist/multi-main/index.js.map +1 -0
  98. package/dist/multi-main/multi-main-metadata.d.ts +11 -0
  99. package/dist/multi-main/multi-main-metadata.js +28 -0
  100. package/dist/multi-main/multi-main-metadata.js.map +1 -0
  101. package/dist/multi-main/on-multi-main-event.d.ts +2 -0
  102. package/dist/multi-main/on-multi-main-event.js +23 -0
  103. package/dist/multi-main/on-multi-main-event.js.map +1 -0
  104. package/dist/pubsub/index.d.ts +3 -0
  105. package/dist/pubsub/index.js +8 -0
  106. package/dist/pubsub/index.js.map +1 -0
  107. package/dist/pubsub/on-pubsub-event.d.ts +2 -0
  108. package/dist/pubsub/on-pubsub-event.js +21 -0
  109. package/dist/pubsub/on-pubsub-event.js.map +1 -0
  110. package/dist/pubsub/pubsub-metadata.d.ts +19 -0
  111. package/dist/pubsub/pubsub-metadata.js +26 -0
  112. package/dist/pubsub/pubsub-metadata.js.map +1 -0
  113. package/dist/redactable.d.ts +7 -0
  114. package/dist/redactable.js +34 -0
  115. package/dist/redactable.js.map +1 -0
  116. package/dist/shutdown/constants.d.ts +3 -0
  117. package/dist/shutdown/constants.js +7 -0
  118. package/dist/shutdown/constants.js.map +1 -0
  119. package/dist/shutdown/index.d.ts +4 -0
  120. package/dist/shutdown/index.js +12 -0
  121. package/dist/shutdown/index.js.map +1 -0
  122. package/dist/shutdown/on-shutdown.d.ts +1 -0
  123. package/dist/shutdown/on-shutdown.js +20 -0
  124. package/dist/shutdown/on-shutdown.js.map +1 -0
  125. package/dist/shutdown/shutdown-metadata.d.ts +7 -0
  126. package/dist/shutdown/shutdown-metadata.js +36 -0
  127. package/dist/shutdown/shutdown-metadata.js.map +1 -0
  128. package/dist/shutdown/types.d.ts +8 -0
  129. package/dist/shutdown/types.js +3 -0
  130. package/dist/shutdown/types.js.map +1 -0
  131. package/dist/timed.d.ts +9 -0
  132. package/dist/timed.js +26 -0
  133. package/dist/timed.js.map +1 -0
  134. package/dist/types.d.ts +9 -0
  135. package/dist/types.js +3 -0
  136. package/dist/types.js.map +1 -0
  137. package/package.json +36 -0
@@ -0,0 +1,7 @@
1
+ import type { CommandEntry } from './types';
2
+ export declare class CommandMetadata {
3
+ private readonly commands;
4
+ register(name: string, entry: CommandEntry): void;
5
+ get(name: string): CommandEntry | undefined;
6
+ getEntries(): [string, CommandEntry][];
7
+ }
@@ -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,2 @@
1
+ import type { CommandOptions } from './types';
2
+ export declare const Command: ({ name, description, examples, flagsSchema }: CommandOptions) => ClassDecorator;
@@ -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,3 @@
1
+ export { Command } from './command';
2
+ export { CommandMetadata } from './command-metadata';
3
+ export type { ICommand, CommandClass, CommandEntry } from './types';
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=context-establishment-hook.js.map
@@ -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,2 @@
1
+ export { ContextEstablishmentHookMetadata, ContextEstablishmentHook, } from './context-establishment-hook-metadata';
2
+ export type * from './context-establishment-hook';
@@ -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,3 @@
1
+ export declare const Body: ParameterDecorator;
2
+ export declare const Query: ParameterDecorator;
3
+ export declare const Param: (key: string) => ParameterDecorator;
@@ -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,2 @@
1
+ import type { BooleanLicenseFeature } from '@n8n/constants';
2
+ export declare const Licensed: (licenseFeature: BooleanLicenseFeature) => MethodDecorator;
@@ -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,3 @@
1
+ import type { Scope } from '@n8n/permissions';
2
+ export declare const GlobalScope: (scope: Scope) => MethodDecorator;
3
+ export declare const ProjectScope: (scope: Scope) => MethodDecorator;
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -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 {};