@ac-codeprod/n8n-nodes-alexa-remote 0.2.3

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 (64) hide show
  1. package/LICENSE +21 -0
  2. package/README.fr.md +300 -0
  3. package/README.md +300 -0
  4. package/dist/credentials/AlexaRemoteApi.credentials.d.ts +9 -0
  5. package/dist/credentials/AlexaRemoteApi.credentials.js +162 -0
  6. package/dist/credentials/AlexaRemoteApi.credentials.js.map +1 -0
  7. package/dist/credentials/alexa.svg +15 -0
  8. package/dist/nodes/AlexaRemote/AlexaRemote.node.d.ts +18 -0
  9. package/dist/nodes/AlexaRemote/AlexaRemote.node.js +330 -0
  10. package/dist/nodes/AlexaRemote/AlexaRemote.node.js.map +1 -0
  11. package/dist/nodes/AlexaRemote/AlexaRemote.node.json +18 -0
  12. package/dist/nodes/AlexaRemote/AlexaRemoteTrigger.node.d.ts +5 -0
  13. package/dist/nodes/AlexaRemote/AlexaRemoteTrigger.node.js +131 -0
  14. package/dist/nodes/AlexaRemote/AlexaRemoteTrigger.node.js.map +1 -0
  15. package/dist/nodes/AlexaRemote/AlexaRemoteTrigger.node.json +18 -0
  16. package/dist/nodes/AlexaRemote/alexa.svg +15 -0
  17. package/dist/nodes/AlexaRemote/lib/alexa-remote-ext.d.ts +57 -0
  18. package/dist/nodes/AlexaRemote/lib/alexa-remote-ext.js +667 -0
  19. package/dist/nodes/AlexaRemote/lib/alexa-remote-ext.js.map +1 -0
  20. package/dist/nodes/AlexaRemote/lib/cookie-crypto.d.ts +2 -0
  21. package/dist/nodes/AlexaRemote/lib/cookie-crypto.js +65 -0
  22. package/dist/nodes/AlexaRemote/lib/cookie-crypto.js.map +1 -0
  23. package/dist/nodes/AlexaRemote/lib/helpers.d.ts +14 -0
  24. package/dist/nodes/AlexaRemote/lib/helpers.js +174 -0
  25. package/dist/nodes/AlexaRemote/lib/helpers.js.map +1 -0
  26. package/dist/nodes/AlexaRemote/lib/types.d.ts +208 -0
  27. package/dist/nodes/AlexaRemote/lib/types.js +3 -0
  28. package/dist/nodes/AlexaRemote/lib/types.js.map +1 -0
  29. package/dist/nodes/AlexaRemote/properties/index.d.ts +14 -0
  30. package/dist/nodes/AlexaRemote/properties/index.js +90 -0
  31. package/dist/nodes/AlexaRemote/properties/index.js.map +1 -0
  32. package/dist/nodes/AlexaRemote/resources/account/index.d.ts +4 -0
  33. package/dist/nodes/AlexaRemote/resources/account/index.js +56 -0
  34. package/dist/nodes/AlexaRemote/resources/account/index.js.map +1 -0
  35. package/dist/nodes/AlexaRemote/resources/auth/index.d.ts +4 -0
  36. package/dist/nodes/AlexaRemote/resources/auth/index.js +108 -0
  37. package/dist/nodes/AlexaRemote/resources/auth/index.js.map +1 -0
  38. package/dist/nodes/AlexaRemote/resources/bluetooth/index.d.ts +4 -0
  39. package/dist/nodes/AlexaRemote/resources/bluetooth/index.js +108 -0
  40. package/dist/nodes/AlexaRemote/resources/bluetooth/index.js.map +1 -0
  41. package/dist/nodes/AlexaRemote/resources/conversation/index.d.ts +4 -0
  42. package/dist/nodes/AlexaRemote/resources/conversation/index.js +86 -0
  43. package/dist/nodes/AlexaRemote/resources/conversation/index.js.map +1 -0
  44. package/dist/nodes/AlexaRemote/resources/device/index.d.ts +4 -0
  45. package/dist/nodes/AlexaRemote/resources/device/index.js +164 -0
  46. package/dist/nodes/AlexaRemote/resources/device/index.js.map +1 -0
  47. package/dist/nodes/AlexaRemote/resources/interaction/index.d.ts +4 -0
  48. package/dist/nodes/AlexaRemote/resources/interaction/index.js +365 -0
  49. package/dist/nodes/AlexaRemote/resources/interaction/index.js.map +1 -0
  50. package/dist/nodes/AlexaRemote/resources/list/index.d.ts +4 -0
  51. package/dist/nodes/AlexaRemote/resources/list/index.js +142 -0
  52. package/dist/nodes/AlexaRemote/resources/list/index.js.map +1 -0
  53. package/dist/nodes/AlexaRemote/resources/notification/index.d.ts +4 -0
  54. package/dist/nodes/AlexaRemote/resources/notification/index.js +146 -0
  55. package/dist/nodes/AlexaRemote/resources/notification/index.js.map +1 -0
  56. package/dist/nodes/AlexaRemote/resources/routine/index.d.ts +4 -0
  57. package/dist/nodes/AlexaRemote/resources/routine/index.js +49 -0
  58. package/dist/nodes/AlexaRemote/resources/routine/index.js.map +1 -0
  59. package/dist/nodes/AlexaRemote/resources/smarthome/index.d.ts +4 -0
  60. package/dist/nodes/AlexaRemote/resources/smarthome/index.js +92 -0
  61. package/dist/nodes/AlexaRemote/resources/smarthome/index.js.map +1 -0
  62. package/dist/package.json +71 -0
  63. package/dist/tsconfig.tsbuildinfo +1 -0
  64. package/package.json +71 -0
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.description = void 0;
4
+ exports.execute = execute;
5
+ exports.description = [
6
+ {
7
+ displayName: 'Operation',
8
+ name: 'operation',
9
+ type: 'options',
10
+ noDataExpression: true,
11
+ displayOptions: {
12
+ show: {
13
+ resource: ['account'],
14
+ },
15
+ },
16
+ options: [
17
+ {
18
+ name: 'Get Accounts',
19
+ value: 'getAccount',
20
+ description: 'Get account information',
21
+ action: 'Get account',
22
+ },
23
+ {
24
+ name: 'Get Contacts',
25
+ value: 'getContacts',
26
+ description: 'Get Alexa contacts',
27
+ action: 'Get contacts',
28
+ },
29
+ {
30
+ name: 'Get Music Providers',
31
+ value: 'getMusicProviders',
32
+ description: 'Get available music providers',
33
+ action: 'Get music providers',
34
+ },
35
+ {
36
+ name: 'Get Routines',
37
+ value: 'getRoutines',
38
+ description: 'Get all automation routines',
39
+ action: 'Get routines',
40
+ },
41
+ ],
42
+ default: 'getAccount',
43
+ },
44
+ ];
45
+ async function execute(alexa, operation) {
46
+ if (operation === 'getAccount')
47
+ return alexa.getAccount();
48
+ if (operation === 'getContacts')
49
+ return alexa.getContacts();
50
+ if (operation === 'getMusicProviders')
51
+ return alexa.getMusicProviders();
52
+ if (operation === 'getRoutines')
53
+ return alexa.getAutomationRoutines();
54
+ return undefined;
55
+ }
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/AlexaRemote/resources/account/index.ts"],"names":[],"mappings":";;;AA6CA,0BAUC;AAnDY,QAAA,WAAW,GAAsB;IAC5C;QACE,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE;YACd,IAAI,EAAE;gBACJ,QAAQ,EAAE,CAAC,SAAS,CAAC;aACtB;SACF;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,YAAY;gBACnB,WAAW,EAAE,yBAAyB;gBACtC,MAAM,EAAE,aAAa;aACtB;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,oBAAoB;gBACjC,MAAM,EAAE,cAAc;aACvB;YACD;gBACE,IAAI,EAAE,qBAAqB;gBAC3B,KAAK,EAAE,mBAAmB;gBAC1B,WAAW,EAAE,+BAA+B;gBAC5C,MAAM,EAAE,qBAAqB;aAC9B;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,6BAA6B;gBAC1C,MAAM,EAAE,cAAc;aACvB;SACF;QACD,OAAO,EAAE,YAAY;KACtB;CACF,CAAC;AAEK,KAAK,UAAU,OAAO,CAE3B,KAAqB,EACrB,SAAiB;IAEjB,IAAI,SAAS,KAAK,YAAY;QAAE,OAAO,KAAK,CAAC,UAAU,EAAE,CAAC;IAC1D,IAAI,SAAS,KAAK,aAAa;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAC5D,IAAI,SAAS,KAAK,mBAAmB;QAAE,OAAO,KAAK,CAAC,iBAAiB,EAAE,CAAC;IACxE,IAAI,SAAS,KAAK,aAAa;QAAE,OAAO,KAAK,CAAC,qBAAqB,EAAE,CAAC;IACtE,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeProperties } from 'n8n-workflow';
2
+ export declare const description: INodeProperties[];
3
+ export declare function execute(this: IExecuteFunctions, credentials: Record<string, unknown>): Promise<INodeExecutionData[][]>;
4
+ export declare function guardCookieFile(this: IExecuteFunctions, credentials: Record<string, unknown>): void;
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.description = void 0;
4
+ exports.execute = execute;
5
+ exports.guardCookieFile = guardCookieFile;
6
+ const node_fs_1 = require("node:fs");
7
+ const n8n_workflow_1 = require("n8n-workflow");
8
+ const alexa_remote_ext_1 = require("../../lib/alexa-remote-ext");
9
+ const cookie_crypto_1 = require("../../lib/cookie-crypto");
10
+ exports.description = [
11
+ {
12
+ displayName: 'Operation',
13
+ name: 'operation',
14
+ type: 'options',
15
+ noDataExpression: true,
16
+ displayOptions: {
17
+ show: {
18
+ resource: ['auth'],
19
+ },
20
+ },
21
+ options: [
22
+ {
23
+ name: 'Authenticate',
24
+ value: 'authenticate',
25
+ description: 'Start the proxy and wait for Amazon login. Once executed, open the proxy URL (http://[Proxy Own IP]:[Proxy Port]/ from your credentials) in your browser to complete the Amazon login.',
26
+ action: 'Authenticate via proxy',
27
+ },
28
+ ],
29
+ default: 'authenticate',
30
+ },
31
+ {
32
+ displayName: 'Once the workflow is running, open the proxy URL (http://[Proxy Own IP]:[Proxy Port]/ as configured in your credentials) in your browser to complete the Amazon login.',
33
+ name: 'authNotice',
34
+ type: 'notice',
35
+ default: '',
36
+ displayOptions: {
37
+ show: {
38
+ resource: ['auth'],
39
+ operation: ['authenticate'],
40
+ },
41
+ },
42
+ },
43
+ {
44
+ displayName: 'Login Timeout (Minutes)',
45
+ name: 'loginTimeout',
46
+ type: 'number',
47
+ default: 5,
48
+ displayOptions: {
49
+ show: {
50
+ resource: ['auth'],
51
+ operation: ['authenticate'],
52
+ },
53
+ },
54
+ description: 'Maximum time to wait for the user to complete the Amazon login in their browser (minutes)',
55
+ },
56
+ ];
57
+ async function execute(credentials) {
58
+ const loginTimeout = this.getNodeParameter('loginTimeout', 0, 5) * 60 * 1000;
59
+ const cookiePath = credentials.cookieFile;
60
+ const proxyUrl = `http://${credentials.proxyOwnIp}:${credentials.proxyPort}`;
61
+ const authProxy = new alexa_remote_ext_1.AlexaRemoteExt();
62
+ let resolvedProxyUrl = proxyUrl;
63
+ const cookieStr = await authProxy.startProxyAuth({
64
+ alexaServiceHost: credentials.alexaServiceHost,
65
+ amazonPage: credentials.amazonPage,
66
+ acceptLanguage: credentials.acceptLanguage,
67
+ proxyOwnIp: credentials.proxyOwnIp,
68
+ proxyPort: credentials.proxyPort,
69
+ }, loginTimeout, (url) => {
70
+ resolvedProxyUrl = url;
71
+ this.logger.info(`[Alexa Remote] Proxy ready — open your browser: ${url}`);
72
+ });
73
+ if (cookiePath) {
74
+ try {
75
+ const toWrite = typeof cookieStr === 'string' ? cookieStr : JSON.stringify(cookieStr, null, 2);
76
+ (0, cookie_crypto_1.writeCookieFile)(cookiePath, toWrite);
77
+ this.logger.info(`[Alexa Remote] Cookie saved to: ${cookiePath}`);
78
+ }
79
+ catch (writeError) {
80
+ const msg = writeError instanceof Error ? writeError.message : String(writeError);
81
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Authentication succeeded but failed to write cookie file: ${msg}`);
82
+ }
83
+ }
84
+ return [
85
+ [
86
+ {
87
+ json: {
88
+ success: true,
89
+ message: 'Authentication successful. Cookie saved.',
90
+ cookieFile: credentials.cookieFile,
91
+ proxyUrl: resolvedProxyUrl,
92
+ },
93
+ },
94
+ ],
95
+ ];
96
+ }
97
+ function guardCookieFile(credentials) {
98
+ if (!credentials.cookieFile) {
99
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Cookie File Path is required. Set a valid path in the credentials (e.g. /home/node/.n8n/.alexa-cookie.json).');
100
+ }
101
+ const cookiePath = credentials.cookieFile;
102
+ if (!(0, node_fs_1.existsSync)(cookiePath)) {
103
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Cookie file not found at "${cookiePath}". Run the "Auth → Authenticate" operation first to complete Amazon login.`, {
104
+ description: 'Add this node with Resource = "Auth" and Operation = "Authenticate", run it once, and follow the browser login prompt.',
105
+ });
106
+ }
107
+ }
108
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/AlexaRemote/resources/auth/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { INodeProperties, IExecuteFunctions } from 'n8n-workflow';
2
+ import type { AlexaRemoteExt } from '../../lib/alexa-remote-ext';
3
+ export declare const description: INodeProperties[];
4
+ export declare function execute(this: IExecuteFunctions, alexa: AlexaRemoteExt, operation: string, itemIndex: number): Promise<unknown>;
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.description = void 0;
4
+ exports.execute = execute;
5
+ exports.description = [
6
+ {
7
+ displayName: 'Operation',
8
+ name: 'operation',
9
+ type: 'options',
10
+ noDataExpression: true,
11
+ displayOptions: {
12
+ show: {
13
+ resource: ['bluetooth'],
14
+ },
15
+ },
16
+ options: [
17
+ {
18
+ name: 'Get State',
19
+ value: 'getState',
20
+ description: 'Get paired Bluetooth devices and connection state',
21
+ action: 'Get bluetooth state',
22
+ },
23
+ {
24
+ name: 'Connect',
25
+ value: 'connect',
26
+ description: 'Connect to a paired Bluetooth device',
27
+ action: 'Connect bluetooth device',
28
+ },
29
+ {
30
+ name: 'Disconnect',
31
+ value: 'disconnect',
32
+ description: 'Disconnect the current Bluetooth device',
33
+ action: 'Disconnect bluetooth device',
34
+ },
35
+ {
36
+ name: 'Unpair',
37
+ value: 'unpair',
38
+ description: 'Unpair a Bluetooth device',
39
+ action: 'Unpair bluetooth device',
40
+ },
41
+ ],
42
+ default: 'getState',
43
+ },
44
+ {
45
+ displayName: 'Device Name or ID',
46
+ name: 'device',
47
+ type: 'options',
48
+ typeOptions: { loadOptionsMethod: 'getEchoDevices' },
49
+ default: '',
50
+ required: true,
51
+ displayOptions: {
52
+ show: {
53
+ resource: ['bluetooth'],
54
+ operation: ['connect', 'disconnect', 'unpair'],
55
+ },
56
+ },
57
+ description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
58
+ },
59
+ {
60
+ displayName: 'Bluetooth MAC Address',
61
+ name: 'mac',
62
+ type: 'string',
63
+ default: '',
64
+ required: true,
65
+ displayOptions: {
66
+ show: {
67
+ resource: ['bluetooth'],
68
+ operation: ['connect', 'unpair'],
69
+ },
70
+ },
71
+ description: 'MAC address of the Bluetooth device (e.g. AA:BB:CC:DD:EE:FF)',
72
+ },
73
+ {
74
+ displayName: 'Use Cache',
75
+ name: 'cached',
76
+ type: 'boolean',
77
+ default: true,
78
+ displayOptions: {
79
+ show: {
80
+ resource: ['bluetooth'],
81
+ operation: ['getState'],
82
+ },
83
+ },
84
+ description: 'Whether to use the cached Bluetooth state',
85
+ },
86
+ ];
87
+ async function execute(alexa, operation, itemIndex) {
88
+ if (operation === 'getState') {
89
+ const cached = this.getNodeParameter('cached', itemIndex, true);
90
+ return alexa.getBluetooth(cached);
91
+ }
92
+ if (operation === 'connect') {
93
+ const device = this.getNodeParameter('device', itemIndex);
94
+ const mac = this.getNodeParameter('mac', itemIndex);
95
+ return alexa.connectBluetooth(device, mac);
96
+ }
97
+ if (operation === 'disconnect') {
98
+ const device = this.getNodeParameter('device', itemIndex);
99
+ return alexa.disconnectBluetooth(device);
100
+ }
101
+ if (operation === 'unpair') {
102
+ const device = this.getNodeParameter('device', itemIndex);
103
+ const mac = this.getNodeParameter('mac', itemIndex);
104
+ return alexa.unpairBluetooth(device, mac);
105
+ }
106
+ return undefined;
107
+ }
108
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/AlexaRemote/resources/bluetooth/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { INodeProperties, IExecuteFunctions } from 'n8n-workflow';
2
+ import type { AlexaRemoteExt } from '../../lib/alexa-remote-ext';
3
+ export declare const description: INodeProperties[];
4
+ export declare function execute(this: IExecuteFunctions, alexa: AlexaRemoteExt, operation: string, itemIndex: number): Promise<unknown>;
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.description = void 0;
4
+ exports.execute = execute;
5
+ exports.description = [
6
+ {
7
+ displayName: 'Operation',
8
+ name: 'operation',
9
+ type: 'options',
10
+ noDataExpression: true,
11
+ displayOptions: {
12
+ show: {
13
+ resource: ['conversation'],
14
+ },
15
+ },
16
+ options: [
17
+ {
18
+ name: 'Get Conversations',
19
+ value: 'getConversations',
20
+ description: 'Get Alexa conversations',
21
+ action: 'Get conversations',
22
+ },
23
+ {
24
+ name: 'Send Message',
25
+ value: 'sendMessage',
26
+ description: 'Send a text message to a conversation',
27
+ action: 'Send message',
28
+ },
29
+ ],
30
+ default: 'getConversations',
31
+ },
32
+ {
33
+ displayName: 'Unread Only',
34
+ name: 'unread',
35
+ type: 'boolean',
36
+ default: false,
37
+ displayOptions: {
38
+ show: {
39
+ resource: ['conversation'],
40
+ operation: ['getConversations'],
41
+ },
42
+ },
43
+ description: 'Whether to return only unread conversations',
44
+ },
45
+ {
46
+ displayName: 'Conversation ID',
47
+ name: 'conversationId',
48
+ type: 'string',
49
+ default: '',
50
+ required: true,
51
+ displayOptions: {
52
+ show: {
53
+ resource: ['conversation'],
54
+ operation: ['sendMessage'],
55
+ },
56
+ },
57
+ description: 'ID of the conversation (from Get Conversations)',
58
+ },
59
+ {
60
+ displayName: 'Message',
61
+ name: 'message',
62
+ type: 'string',
63
+ default: '',
64
+ required: true,
65
+ displayOptions: {
66
+ show: {
67
+ resource: ['conversation'],
68
+ operation: ['sendMessage'],
69
+ },
70
+ },
71
+ description: 'Text message to send',
72
+ },
73
+ ];
74
+ async function execute(alexa, operation, itemIndex) {
75
+ if (operation === 'getConversations') {
76
+ const unread = this.getNodeParameter('unread', itemIndex, false);
77
+ return alexa.getConversations({ unread });
78
+ }
79
+ if (operation === 'sendMessage') {
80
+ const conversationId = this.getNodeParameter('conversationId', itemIndex);
81
+ const message = this.getNodeParameter('message', itemIndex);
82
+ return alexa.sendTextMessage(conversationId, message);
83
+ }
84
+ return undefined;
85
+ }
86
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/AlexaRemote/resources/conversation/index.ts"],"names":[],"mappings":";;;AA0EA,0BAgBC;AAtFY,QAAA,WAAW,GAAsB;IAC5C;QACE,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE;YACd,IAAI,EAAE;gBACJ,QAAQ,EAAE,CAAC,cAAc,CAAC;aAC3B;SACF;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,mBAAmB;gBACzB,KAAK,EAAE,kBAAkB;gBACzB,WAAW,EAAE,yBAAyB;gBACtC,MAAM,EAAE,mBAAmB;aAC5B;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,uCAAuC;gBACpD,MAAM,EAAE,cAAc;aACvB;SACF;QACD,OAAO,EAAE,kBAAkB;KAC5B;IACD;QACE,WAAW,EAAE,aAAa;QAC1B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,cAAc,EAAE;YACd,IAAI,EAAE;gBACJ,QAAQ,EAAE,CAAC,cAAc,CAAC;gBAC1B,SAAS,EAAE,CAAC,kBAAkB,CAAC;aAChC;SACF;QACD,WAAW,EAAE,6CAA6C;KAC3D;IACD;QACE,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,cAAc,EAAE;YACd,IAAI,EAAE;gBACJ,QAAQ,EAAE,CAAC,cAAc,CAAC;gBAC1B,SAAS,EAAE,CAAC,aAAa,CAAC;aAC3B;SACF;QACD,WAAW,EAAE,iDAAiD;KAC/D;IACD;QACE,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,cAAc,EAAE;YACd,IAAI,EAAE;gBACJ,QAAQ,EAAE,CAAC,cAAc,CAAC;gBAC1B,SAAS,EAAE,CAAC,aAAa,CAAC;aAC3B;SACF;QACD,WAAW,EAAE,sBAAsB;KACpC;CACF,CAAC;AAEK,KAAK,UAAU,OAAO,CAE3B,KAAqB,EACrB,SAAiB,EACjB,SAAiB;IAEjB,IAAI,SAAS,KAAK,kBAAkB,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAY,CAAC;QAC5E,OAAO,KAAK,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;QAChC,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,SAAS,CAAW,CAAC;QACpF,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAW,CAAC;QACtE,OAAO,KAAK,CAAC,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { INodeProperties, IExecuteFunctions } from 'n8n-workflow';
2
+ import type { AlexaRemoteExt } from '../../lib/alexa-remote-ext';
3
+ export declare const description: INodeProperties[];
4
+ export declare function execute(this: IExecuteFunctions, alexa: AlexaRemoteExt, operation: string, itemIndex: number): Promise<unknown>;
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.description = void 0;
4
+ exports.execute = execute;
5
+ exports.description = [
6
+ {
7
+ displayName: 'Operation',
8
+ name: 'operation',
9
+ type: 'options',
10
+ noDataExpression: true,
11
+ displayOptions: {
12
+ show: {
13
+ resource: ['device'],
14
+ },
15
+ },
16
+ options: [
17
+ {
18
+ name: 'Get Device Info',
19
+ value: 'getDeviceInfo',
20
+ description: 'Get information about a specific device',
21
+ action: 'Get device info',
22
+ },
23
+ {
24
+ name: 'Get Devices',
25
+ value: 'getDevices',
26
+ description: 'Get all Echo devices',
27
+ action: 'Get all devices',
28
+ },
29
+ {
30
+ name: 'Get Player Info',
31
+ value: 'getPlayerInfo',
32
+ description: 'Get current player info (track, state, volume…)',
33
+ action: 'Get player info',
34
+ },
35
+ {
36
+ name: 'Get Player Queue',
37
+ value: 'getPlayerQueue',
38
+ description: 'Get the current playback queue',
39
+ action: 'Get player queue',
40
+ },
41
+ {
42
+ name: 'Send Command',
43
+ value: 'sendCommand',
44
+ description: 'Send a command to a device (play, pause, next, etc.)',
45
+ action: 'Send command to device',
46
+ },
47
+ {
48
+ name: 'Set Do Not Disturb',
49
+ value: 'setDoNotDisturb',
50
+ description: 'Enable or disable Do Not Disturb mode',
51
+ action: 'Set do not disturb',
52
+ },
53
+ ],
54
+ default: 'getDevices',
55
+ },
56
+ {
57
+ displayName: 'Device Name or ID',
58
+ name: 'device',
59
+ type: 'options',
60
+ typeOptions: { loadOptionsMethod: 'getEchoDevices' },
61
+ default: '',
62
+ required: true,
63
+ displayOptions: {
64
+ show: {
65
+ resource: ['device'],
66
+ operation: ['getDeviceInfo', 'sendCommand', 'setDoNotDisturb', 'getPlayerInfo', 'getPlayerQueue'],
67
+ },
68
+ },
69
+ description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
70
+ },
71
+ {
72
+ displayName: 'Command',
73
+ name: 'command',
74
+ type: 'options',
75
+ options: [
76
+ { name: 'Forward', value: 'forward' },
77
+ { name: 'Next', value: 'next' },
78
+ { name: 'Pause', value: 'pause' },
79
+ { name: 'Play', value: 'play' },
80
+ { name: 'Previous', value: 'previous' },
81
+ { name: 'Repeat', value: 'repeat' },
82
+ { name: 'Rewind', value: 'rewind' },
83
+ { name: 'Shuffle', value: 'shuffle' },
84
+ ],
85
+ default: 'play',
86
+ displayOptions: {
87
+ show: {
88
+ resource: ['device'],
89
+ operation: ['sendCommand'],
90
+ },
91
+ },
92
+ description: 'Command to send to device',
93
+ },
94
+ {
95
+ displayName: 'Command Value',
96
+ name: 'commandValue',
97
+ type: 'string',
98
+ default: '',
99
+ displayOptions: {
100
+ show: {
101
+ resource: ['device'],
102
+ operation: ['sendCommand'],
103
+ },
104
+ },
105
+ description: 'Optional command value (e.g., for shuffle: true/false)',
106
+ },
107
+ {
108
+ displayName: 'Enabled',
109
+ name: 'enabled',
110
+ type: 'boolean',
111
+ default: true,
112
+ displayOptions: {
113
+ show: {
114
+ resource: ['device'],
115
+ operation: ['setDoNotDisturb'],
116
+ },
117
+ },
118
+ description: 'Whether to enable Do Not Disturb mode',
119
+ },
120
+ {
121
+ displayName: 'Queue Size',
122
+ name: 'queueSize',
123
+ type: 'number',
124
+ default: 50,
125
+ displayOptions: {
126
+ show: {
127
+ resource: ['device'],
128
+ operation: ['getPlayerQueue'],
129
+ },
130
+ },
131
+ description: 'Number of items to retrieve',
132
+ },
133
+ ];
134
+ async function execute(alexa, operation, itemIndex) {
135
+ if (operation === 'getDevices') {
136
+ return alexa.getDevices();
137
+ }
138
+ if (operation === 'getDeviceInfo') {
139
+ const device = this.getNodeParameter('device', itemIndex);
140
+ return alexa.getDeviceInfo(device);
141
+ }
142
+ if (operation === 'sendCommand') {
143
+ const device = this.getNodeParameter('device', itemIndex);
144
+ const command = this.getNodeParameter('command', itemIndex);
145
+ const commandValue = this.getNodeParameter('commandValue', itemIndex, '');
146
+ return alexa.sendCommand(device, command, commandValue || null);
147
+ }
148
+ if (operation === 'setDoNotDisturb') {
149
+ const device = this.getNodeParameter('device', itemIndex);
150
+ const enabled = this.getNodeParameter('enabled', itemIndex);
151
+ return alexa.setDoNotDisturb(device, enabled);
152
+ }
153
+ if (operation === 'getPlayerInfo') {
154
+ const device = this.getNodeParameter('device', itemIndex);
155
+ return alexa.getPlayerInfo(device);
156
+ }
157
+ if (operation === 'getPlayerQueue') {
158
+ const device = this.getNodeParameter('device', itemIndex);
159
+ const queueSize = this.getNodeParameter('queueSize', itemIndex, 50);
160
+ return alexa.getPlayerQueue(device, queueSize);
161
+ }
162
+ return undefined;
163
+ }
164
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/AlexaRemote/resources/device/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { INodeProperties, IExecuteFunctions } from 'n8n-workflow';
2
+ import type { AlexaRemoteExt } from '../../lib/alexa-remote-ext';
3
+ export declare const description: INodeProperties[];
4
+ export declare function execute(this: IExecuteFunctions, alexa: AlexaRemoteExt, operation: string, itemIndex: number, credentials: Record<string, unknown>): Promise<unknown>;