n8n-nodes-preroll 0.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.
Files changed (30) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +96 -0
  3. package/dist/credentials/PreRollApi.credentials.d.ts +9 -0
  4. package/dist/credentials/PreRollApi.credentials.js +43 -0
  5. package/dist/nodes/PreRoll/PreRoll.node.d.ts +5 -0
  6. package/dist/nodes/PreRoll/PreRoll.node.js +340 -0
  7. package/dist/nodes/PreRoll/PreRollTrigger.node.d.ts +12 -0
  8. package/dist/nodes/PreRoll/PreRollTrigger.node.js +159 -0
  9. package/dist/nodes/PreRoll/preroll.svg +7 -0
  10. package/dist/nodes/PreRoll/resources/ActivityDescription.d.ts +3 -0
  11. package/dist/nodes/PreRoll/resources/ActivityDescription.js +36 -0
  12. package/dist/nodes/PreRoll/resources/AiDescription.d.ts +3 -0
  13. package/dist/nodes/PreRoll/resources/AiDescription.js +97 -0
  14. package/dist/nodes/PreRoll/resources/ClientDescription.d.ts +3 -0
  15. package/dist/nodes/PreRoll/resources/ClientDescription.js +72 -0
  16. package/dist/nodes/PreRoll/resources/DashboardDescription.d.ts +3 -0
  17. package/dist/nodes/PreRoll/resources/DashboardDescription.js +17 -0
  18. package/dist/nodes/PreRoll/resources/DeliverableDescription.d.ts +3 -0
  19. package/dist/nodes/PreRoll/resources/DeliverableDescription.js +123 -0
  20. package/dist/nodes/PreRoll/resources/EpisodeDescription.d.ts +3 -0
  21. package/dist/nodes/PreRoll/resources/EpisodeDescription.js +123 -0
  22. package/dist/nodes/PreRoll/resources/MeetingNoteDescription.d.ts +3 -0
  23. package/dist/nodes/PreRoll/resources/MeetingNoteDescription.js +50 -0
  24. package/dist/nodes/PreRoll/resources/PipelineStageDescription.d.ts +3 -0
  25. package/dist/nodes/PreRoll/resources/PipelineStageDescription.js +27 -0
  26. package/dist/nodes/PreRoll/resources/ShowDescription.d.ts +3 -0
  27. package/dist/nodes/PreRoll/resources/ShowDescription.js +134 -0
  28. package/dist/nodes/PreRoll/resources/TagDescription.d.ts +3 -0
  29. package/dist/nodes/PreRoll/resources/TagDescription.js +59 -0
  30. package/package.json +50 -0
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.episodeFields = exports.episodeOperations = void 0;
4
+ exports.episodeOperations = [
5
+ {
6
+ displayName: 'Operation',
7
+ name: 'operation',
8
+ type: 'options',
9
+ noDataExpression: true,
10
+ displayOptions: { show: { resource: ['episode'] } },
11
+ options: [
12
+ { name: 'Create', value: 'create', description: 'Create an episode', action: 'Create an episode' },
13
+ { name: 'Delete', value: 'delete', description: 'Delete an episode', action: 'Delete an episode' },
14
+ { name: 'Get', value: 'get', description: 'Get an episode', action: 'Get an episode' },
15
+ { name: 'Get Many', value: 'getAll', description: 'Get all episodes', action: 'Get all episodes' },
16
+ { name: 'Update', value: 'update', description: 'Update an episode', action: 'Update an episode' },
17
+ ],
18
+ default: 'getAll',
19
+ },
20
+ ];
21
+ exports.episodeFields = [
22
+ // ------ Show ID (needed for all episode ops) ------
23
+ {
24
+ displayName: 'Show ID',
25
+ name: 'showId',
26
+ type: 'string',
27
+ required: true,
28
+ default: '',
29
+ displayOptions: { show: { resource: ['episode'], operation: ['get', 'create', 'update', 'delete'] } },
30
+ description: 'UUID of the show',
31
+ },
32
+ // ------ Episode ID (get / update / delete) ------
33
+ {
34
+ displayName: 'Episode ID',
35
+ name: 'episodeId',
36
+ type: 'string',
37
+ required: true,
38
+ default: '',
39
+ displayOptions: { show: { resource: ['episode'], operation: ['get', 'update', 'delete'] } },
40
+ description: 'UUID of the episode',
41
+ },
42
+ // ------ Get Many filters ------
43
+ {
44
+ displayName: 'Filters',
45
+ name: 'filters',
46
+ type: 'collection',
47
+ placeholder: 'Add Filter',
48
+ default: {},
49
+ displayOptions: { show: { resource: ['episode'], operation: ['getAll'] } },
50
+ options: [
51
+ { displayName: 'Date From', name: 'from', type: 'string', default: '', placeholder: 'YYYY-MM-DD' },
52
+ { displayName: 'Date To', name: 'to', type: 'string', default: '', placeholder: 'YYYY-MM-DD' },
53
+ { displayName: 'Show ID', name: 'show_id', type: 'string', default: '' },
54
+ { displayName: 'Stage ID', name: 'stage_id', type: 'string', default: '' },
55
+ {
56
+ displayName: 'Status', name: 'status', type: 'options', default: '',
57
+ options: [
58
+ { name: 'All', value: '' },
59
+ { name: 'Approved', value: 'approved' },
60
+ { name: 'Editing', value: 'editing' },
61
+ { name: 'Planning', value: 'planning' },
62
+ { name: 'Published', value: 'published' },
63
+ { name: 'Recording', value: 'recording' },
64
+ { name: 'Review', value: 'review' },
65
+ ],
66
+ },
67
+ { displayName: 'Upcoming Only', name: 'upcoming', type: 'boolean', default: false },
68
+ ],
69
+ },
70
+ // ------ Create ------
71
+ {
72
+ displayName: 'Title',
73
+ name: 'title',
74
+ type: 'string',
75
+ required: true,
76
+ default: '',
77
+ displayOptions: { show: { resource: ['episode'], operation: ['create'] } },
78
+ description: 'Episode title',
79
+ },
80
+ {
81
+ displayName: 'Additional Fields',
82
+ name: 'additionalFields',
83
+ type: 'collection',
84
+ placeholder: 'Add Field',
85
+ default: {},
86
+ displayOptions: { show: { resource: ['episode'], operation: ['create'] } },
87
+ options: [
88
+ { displayName: 'Description', name: 'description', type: 'string', default: '' },
89
+ { displayName: 'Episode Number', name: 'episode_number', type: 'number', default: 0 },
90
+ { displayName: 'Notes', name: 'notes', type: 'string', default: '' },
91
+ { displayName: 'Scheduled Publish Date', name: 'scheduled_publish_date', type: 'string', default: '', placeholder: 'YYYY-MM-DD' },
92
+ { displayName: 'Stage ID', name: 'stage_id', type: 'string', default: '' },
93
+ ],
94
+ },
95
+ // ------ Update ------
96
+ {
97
+ displayName: 'Update Fields',
98
+ name: 'updateFields',
99
+ type: 'collection',
100
+ placeholder: 'Add Field',
101
+ default: {},
102
+ displayOptions: { show: { resource: ['episode'], operation: ['update'] } },
103
+ options: [
104
+ { displayName: 'Description', name: 'description', type: 'string', default: '' },
105
+ { displayName: 'Episode Number', name: 'episode_number', type: 'number', default: 0 },
106
+ { displayName: 'Notes', name: 'notes', type: 'string', default: '' },
107
+ { displayName: 'Scheduled Publish Date', name: 'scheduled_publish_date', type: 'string', default: '' },
108
+ { displayName: 'Stage ID', name: 'stage_id', type: 'string', default: '', description: 'Move episode to this pipeline stage' },
109
+ {
110
+ displayName: 'Status', name: 'status', type: 'options', default: '',
111
+ options: [
112
+ { name: 'Approved', value: 'approved' },
113
+ { name: 'Editing', value: 'editing' },
114
+ { name: 'Planning', value: 'planning' },
115
+ { name: 'Published', value: 'published' },
116
+ { name: 'Recording', value: 'recording' },
117
+ { name: 'Review', value: 'review' },
118
+ ],
119
+ },
120
+ { displayName: 'Title', name: 'title', type: 'string', default: '' },
121
+ ],
122
+ },
123
+ ];
@@ -0,0 +1,3 @@
1
+ import { INodeProperties } from 'n8n-workflow';
2
+ export declare const meetingNoteOperations: INodeProperties[];
3
+ export declare const meetingNoteFields: INodeProperties[];
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.meetingNoteFields = exports.meetingNoteOperations = void 0;
4
+ exports.meetingNoteOperations = [
5
+ {
6
+ displayName: 'Operation',
7
+ name: 'operation',
8
+ type: 'options',
9
+ noDataExpression: true,
10
+ displayOptions: { show: { resource: ['meetingNote'] } },
11
+ options: [
12
+ { name: 'Create', value: 'create', description: 'Create a meeting note', action: 'Create a meeting note' },
13
+ { name: 'Get Many', value: 'getAll', description: 'Get all meeting notes for a client', action: 'Get all meeting notes' },
14
+ ],
15
+ default: 'getAll',
16
+ },
17
+ ];
18
+ exports.meetingNoteFields = [
19
+ {
20
+ displayName: 'Client ID',
21
+ name: 'clientId',
22
+ type: 'string',
23
+ required: true,
24
+ default: '',
25
+ displayOptions: { show: { resource: ['meetingNote'] } },
26
+ description: 'UUID of the client',
27
+ },
28
+ {
29
+ displayName: 'Content',
30
+ name: 'content',
31
+ type: 'string',
32
+ required: true,
33
+ default: '',
34
+ displayOptions: { show: { resource: ['meetingNote'], operation: ['create'] } },
35
+ description: 'Note content',
36
+ typeOptions: { rows: 4 },
37
+ },
38
+ {
39
+ displayName: 'Additional Fields',
40
+ name: 'additionalFields',
41
+ type: 'collection',
42
+ placeholder: 'Add Field',
43
+ default: {},
44
+ displayOptions: { show: { resource: ['meetingNote'], operation: ['create'] } },
45
+ options: [
46
+ { displayName: 'Meeting Date', name: 'meeting_date', type: 'string', default: '', placeholder: 'YYYY-MM-DD' },
47
+ { displayName: 'Title', name: 'title', type: 'string', default: '' },
48
+ ],
49
+ },
50
+ ];
@@ -0,0 +1,3 @@
1
+ import { INodeProperties } from 'n8n-workflow';
2
+ export declare const pipelineStageOperations: INodeProperties[];
3
+ export declare const pipelineStageFields: INodeProperties[];
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pipelineStageFields = exports.pipelineStageOperations = void 0;
4
+ exports.pipelineStageOperations = [
5
+ {
6
+ displayName: 'Operation',
7
+ name: 'operation',
8
+ type: 'options',
9
+ noDataExpression: true,
10
+ displayOptions: { show: { resource: ['pipelineStage'] } },
11
+ options: [
12
+ { name: 'Get Many', value: 'getAll', description: 'Get all pipeline stages for a show', action: 'Get all pipeline stages' },
13
+ ],
14
+ default: 'getAll',
15
+ },
16
+ ];
17
+ exports.pipelineStageFields = [
18
+ {
19
+ displayName: 'Show ID',
20
+ name: 'showId',
21
+ type: 'string',
22
+ required: true,
23
+ default: '',
24
+ displayOptions: { show: { resource: ['pipelineStage'] } },
25
+ description: 'UUID of the show',
26
+ },
27
+ ];
@@ -0,0 +1,3 @@
1
+ import { INodeProperties } from 'n8n-workflow';
2
+ export declare const showOperations: INodeProperties[];
3
+ export declare const showFields: INodeProperties[];
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.showFields = exports.showOperations = void 0;
4
+ exports.showOperations = [
5
+ {
6
+ displayName: 'Operation',
7
+ name: 'operation',
8
+ type: 'options',
9
+ noDataExpression: true,
10
+ displayOptions: { show: { resource: ['show'] } },
11
+ options: [
12
+ { name: 'Create', value: 'create', description: 'Create a show', action: 'Create a show' },
13
+ { name: 'Delete', value: 'delete', description: 'Delete a show', action: 'Delete a show' },
14
+ { name: 'Get', value: 'get', description: 'Get a show', action: 'Get a show' },
15
+ { name: 'Get Many', value: 'getAll', description: 'Get all shows', action: 'Get all shows' },
16
+ { name: 'Update', value: 'update', description: 'Update a show', action: 'Update a show' },
17
+ ],
18
+ default: 'getAll',
19
+ },
20
+ ];
21
+ exports.showFields = [
22
+ // ------ Get / Update / Delete ------
23
+ {
24
+ displayName: 'Show ID',
25
+ name: 'showId',
26
+ type: 'string',
27
+ required: true,
28
+ default: '',
29
+ displayOptions: { show: { resource: ['show'], operation: ['get', 'update', 'delete'] } },
30
+ description: 'UUID of the show',
31
+ },
32
+ // ------ Get Many — optional filter ------
33
+ {
34
+ displayName: 'Client ID',
35
+ name: 'clientId',
36
+ type: 'string',
37
+ default: '',
38
+ displayOptions: { show: { resource: ['show'], operation: ['getAll'] } },
39
+ description: 'Filter shows by client UUID',
40
+ },
41
+ // ------ Create ------
42
+ {
43
+ displayName: 'Client ID',
44
+ name: 'clientId',
45
+ type: 'string',
46
+ required: true,
47
+ default: '',
48
+ displayOptions: { show: { resource: ['show'], operation: ['create'] } },
49
+ description: 'UUID of the client this show belongs to',
50
+ },
51
+ {
52
+ displayName: 'Name',
53
+ name: 'name',
54
+ type: 'string',
55
+ required: true,
56
+ default: '',
57
+ displayOptions: { show: { resource: ['show'], operation: ['create'] } },
58
+ description: 'Show name',
59
+ },
60
+ {
61
+ displayName: 'Additional Fields',
62
+ name: 'additionalFields',
63
+ type: 'collection',
64
+ placeholder: 'Add Field',
65
+ default: {},
66
+ displayOptions: { show: { resource: ['show'], operation: ['create'] } },
67
+ options: [
68
+ { displayName: 'Description', name: 'description', type: 'string', default: '' },
69
+ {
70
+ displayName: 'Format', name: 'format', type: 'options', default: 'interview',
71
+ options: [
72
+ { name: 'Interview', value: 'interview' },
73
+ { name: 'Narrative', value: 'narrative' },
74
+ { name: 'Other', value: 'other' },
75
+ { name: 'Panel', value: 'panel' },
76
+ { name: 'Solo', value: 'solo' },
77
+ ],
78
+ },
79
+ { displayName: 'Schedule', name: 'schedule', type: 'string', default: '', placeholder: 'Weekly on Tuesdays' },
80
+ ],
81
+ },
82
+ // ------ Update ------
83
+ {
84
+ displayName: 'Update Fields',
85
+ name: 'updateFields',
86
+ type: 'collection',
87
+ placeholder: 'Add Field',
88
+ default: {},
89
+ displayOptions: { show: { resource: ['show'], operation: ['update'] } },
90
+ options: [
91
+ { displayName: 'Description', name: 'description', type: 'string', default: '' },
92
+ {
93
+ displayName: 'Format', name: 'format', type: 'options', default: 'interview',
94
+ options: [
95
+ { name: 'Interview', value: 'interview' },
96
+ { name: 'Narrative', value: 'narrative' },
97
+ { name: 'Other', value: 'other' },
98
+ { name: 'Panel', value: 'panel' },
99
+ { name: 'Solo', value: 'solo' },
100
+ ],
101
+ },
102
+ { displayName: 'Name', name: 'name', type: 'string', default: '' },
103
+ { displayName: 'Schedule', name: 'schedule', type: 'string', default: '' },
104
+ {
105
+ displayName: 'AI Auto Generate', name: 'ai_auto_generate', type: 'multiOptions', default: [],
106
+ options: [
107
+ { name: 'Description', value: 'description' },
108
+ { name: 'Show Notes', value: 'show_notes' },
109
+ { name: 'Social — Instagram', value: 'social_instagram' },
110
+ { name: 'Social — LinkedIn', value: 'social_linkedin' },
111
+ { name: 'Social — Twitter', value: 'social_twitter' },
112
+ { name: 'Titles', value: 'titles' },
113
+ ],
114
+ },
115
+ { displayName: 'AI Auto Transcribe', name: 'ai_auto_transcribe', type: 'boolean', default: false },
116
+ {
117
+ displayName: 'AI Length', name: 'ai_length', type: 'options', default: 'standard',
118
+ options: [
119
+ { name: 'Brief', value: 'brief' },
120
+ { name: 'Detailed', value: 'detailed' },
121
+ { name: 'Standard', value: 'standard' },
122
+ ],
123
+ },
124
+ {
125
+ displayName: 'AI Tone', name: 'ai_tone', type: 'options', default: 'professional',
126
+ options: [
127
+ { name: 'Casual', value: 'casual' },
128
+ { name: 'Energetic', value: 'energetic' },
129
+ { name: 'Professional', value: 'professional' },
130
+ ],
131
+ },
132
+ ],
133
+ },
134
+ ];
@@ -0,0 +1,3 @@
1
+ import { INodeProperties } from 'n8n-workflow';
2
+ export declare const tagOperations: INodeProperties[];
3
+ export declare const tagFields: INodeProperties[];
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tagFields = exports.tagOperations = void 0;
4
+ exports.tagOperations = [
5
+ {
6
+ displayName: 'Operation',
7
+ name: 'operation',
8
+ type: 'options',
9
+ noDataExpression: true,
10
+ displayOptions: { show: { resource: ['tag'] } },
11
+ options: [
12
+ { name: 'Create', value: 'create', description: 'Create a tag', action: 'Create a tag' },
13
+ { name: 'Delete', value: 'delete', description: 'Delete a tag', action: 'Delete a tag' },
14
+ { name: 'Get Many', value: 'getAll', description: 'Get all tags', action: 'Get all tags' },
15
+ { name: 'Update', value: 'update', description: 'Update a tag', action: 'Update a tag' },
16
+ ],
17
+ default: 'getAll',
18
+ },
19
+ ];
20
+ exports.tagFields = [
21
+ {
22
+ displayName: 'Tag ID',
23
+ name: 'tagId',
24
+ type: 'string',
25
+ required: true,
26
+ default: '',
27
+ displayOptions: { show: { resource: ['tag'], operation: ['update', 'delete'] } },
28
+ description: 'UUID of the tag',
29
+ },
30
+ {
31
+ displayName: 'Name',
32
+ name: 'name',
33
+ type: 'string',
34
+ required: true,
35
+ default: '',
36
+ displayOptions: { show: { resource: ['tag'], operation: ['create'] } },
37
+ description: 'Tag name',
38
+ },
39
+ {
40
+ displayName: 'Color',
41
+ name: 'color',
42
+ type: 'color',
43
+ default: '#6366f1',
44
+ displayOptions: { show: { resource: ['tag'], operation: ['create'] } },
45
+ description: 'Tag color (hex)',
46
+ },
47
+ {
48
+ displayName: 'Update Fields',
49
+ name: 'updateFields',
50
+ type: 'collection',
51
+ placeholder: 'Add Field',
52
+ default: {},
53
+ displayOptions: { show: { resource: ['tag'], operation: ['update'] } },
54
+ options: [
55
+ { displayName: 'Color', name: 'color', type: 'color', default: '#6366f1' },
56
+ { displayName: 'Name', name: 'name', type: 'string', default: '' },
57
+ ],
58
+ },
59
+ ];
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "n8n-nodes-preroll",
3
+ "version": "0.1.0",
4
+ "description": "n8n community node for PreRoll — podcast production management platform",
5
+ "keywords": [
6
+ "n8n-community-node-package",
7
+ "n8n",
8
+ "preroll",
9
+ "podcast",
10
+ "production"
11
+ ],
12
+ "license": "MIT",
13
+ "author": {
14
+ "name": "Trevor O'Hare",
15
+ "email": "trevor@trevorohare.com"
16
+ },
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/tro2789/n8n-nodes-preroll.git"
20
+ },
21
+ "main": "index.js",
22
+ "scripts": {
23
+ "build": "tsc && gulp build:icons",
24
+ "dev": "tsc --watch",
25
+ "lint": "tslint -p tsconfig.json -c tslint.json",
26
+ "prepublishOnly": "npm run build"
27
+ },
28
+ "files": [
29
+ "dist"
30
+ ],
31
+ "n8n": {
32
+ "n8nNodesApiVersion": 1,
33
+ "credentials": [
34
+ "dist/credentials/PreRollApi.credentials.js"
35
+ ],
36
+ "nodes": [
37
+ "dist/nodes/PreRoll/PreRoll.node.js",
38
+ "dist/nodes/PreRoll/PreRollTrigger.node.js"
39
+ ]
40
+ },
41
+ "devDependencies": {
42
+ "@types/node": "^22.0.0",
43
+ "gulp": "^5.0.0",
44
+ "n8n-workflow": "^1.0.0",
45
+ "typescript": "^5.7.0"
46
+ },
47
+ "peerDependencies": {
48
+ "n8n-workflow": "*"
49
+ }
50
+ }