kozz-module-maker 0.1.1 → 0.1.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 (188) hide show
  1. package/dist/Instance/Basic/index.d.ts +40 -0
  2. package/dist/Instance/Basic/index.js +43 -0
  3. package/dist/Instance/Basic/index.js.map +1 -0
  4. package/dist/Instance/BasicController/index.d.ts +40 -0
  5. package/dist/Instance/BasicController/index.js +43 -0
  6. package/dist/Instance/BasicController/index.js.map +1 -0
  7. package/dist/Instance/CommandHandler/index.d.ts +20 -0
  8. package/dist/Instance/CommandHandler/index.js +26 -0
  9. package/dist/Instance/CommandHandler/index.js.map +1 -0
  10. package/dist/Instance/Common/ResourceMap/index.d.ts +12 -0
  11. package/dist/Instance/Common/ResourceMap/index.js +19 -0
  12. package/dist/Instance/Common/ResourceMap/index.js.map +1 -0
  13. package/dist/Instance/Common/UseFns/index.d.ts +10 -0
  14. package/dist/Instance/Common/UseFns/index.js +16 -0
  15. package/dist/Instance/Common/UseFns/index.js.map +1 -0
  16. package/dist/Instance/Common/index.js +10 -0
  17. package/dist/Instance/Common/index.js.map +1 -0
  18. package/dist/Instance/Common/onEvent/index.d.ts +8 -0
  19. package/dist/Instance/Common/onEvent/index.js +87 -0
  20. package/dist/Instance/Common/onEvent/index.js.map +1 -0
  21. package/dist/Instance/GeneralHandler/index.d.ts +19 -0
  22. package/dist/Instance/GeneralHandler/index.js +49 -0
  23. package/dist/Instance/GeneralHandler/index.js.map +1 -0
  24. package/dist/Instance/GeneralModule/index.d.ts +53 -0
  25. package/dist/Instance/GeneralModule/index.js +55 -0
  26. package/dist/Instance/GeneralModule/index.js.map +1 -0
  27. package/dist/Instance/Handler/index.d.ts +23 -0
  28. package/dist/Instance/Handler/index.js +26 -0
  29. package/dist/Instance/Handler/index.js.map +1 -0
  30. package/dist/Instance/Proxy/index.d.ts +22 -0
  31. package/dist/Instance/Proxy/index.js +36 -0
  32. package/dist/Instance/Proxy/index.js.map +1 -0
  33. package/dist/Instance/index.d.ts +14 -0
  34. package/dist/Instance/index.js +20 -0
  35. package/dist/Instance/index.js.map +1 -0
  36. package/dist/Message/FromTemplate/index.d.ts +33 -0
  37. package/dist/Message/FromTemplate/index.js +62 -0
  38. package/dist/Message/FromTemplate/index.js.map +1 -0
  39. package/dist/Message/PayloadCreation/Media.d.ts +7 -0
  40. package/dist/Message/PayloadCreation/Media.js +44 -0
  41. package/dist/Message/PayloadCreation/Media.js.map +1 -0
  42. package/dist/Message/PayloadCreation/React.d.ts +3 -0
  43. package/dist/Message/PayloadCreation/React.js +13 -0
  44. package/dist/Message/PayloadCreation/React.js.map +1 -0
  45. package/dist/Message/PayloadCreation/Reply.d.ts +5 -0
  46. package/dist/Message/PayloadCreation/Reply.js +47 -0
  47. package/dist/Message/PayloadCreation/Reply.js.map +1 -0
  48. package/dist/Message/PayloadCreation/ReplyWithSticker.d.ts +0 -0
  49. package/dist/Message/PayloadCreation/ReplyWithSticker.js +1 -0
  50. package/dist/Message/PayloadCreation/ReplyWithText.d.ts +2 -0
  51. package/dist/Message/PayloadCreation/ReplyWithText.js +15 -0
  52. package/dist/Message/PayloadCreation/index.js +18 -0
  53. package/dist/Message/PayloadCreation/index.js.map +1 -0
  54. package/dist/Message/PayloadCreation/sendMessage.d.ts +2 -0
  55. package/dist/Message/PayloadCreation/sendMessage.js +24 -0
  56. package/dist/Message/PayloadCreation/sendMessage.js.map +1 -0
  57. package/dist/Message/ProxiedMessage/index.d.ts +42 -0
  58. package/dist/Message/ProxiedMessage/index.js +15 -0
  59. package/dist/Message/ProxiedMessage/index.js.map +1 -0
  60. package/dist/Message/RoutineCreation/AskResource/AskResourceApi/index.d.ts +14 -0
  61. package/dist/Message/RoutineCreation/AskResource/AskResourceApi/index.js +28 -0
  62. package/dist/Message/RoutineCreation/AskResource/AskResourceApi/index.js.map +1 -0
  63. package/dist/Message/RoutineCreation/AskResource/index.d.ts +16 -0
  64. package/dist/Message/RoutineCreation/AskResource/index.js +60 -0
  65. package/dist/Message/RoutineCreation/AskResource/index.js.map +1 -0
  66. package/dist/Message/RoutineCreation/Reply/WithMedia.d.ts +11 -0
  67. package/dist/Message/RoutineCreation/Reply/WithMedia.js +34 -0
  68. package/dist/Message/RoutineCreation/Reply/WithMedia.js.map +1 -0
  69. package/dist/Message/RoutineCreation/Reply/WithSticke.d.ts +3 -0
  70. package/dist/Message/RoutineCreation/Reply/WithSticke.js +9 -0
  71. package/dist/Message/RoutineCreation/Reply/WithSticke.js.map +1 -0
  72. package/dist/Message/RoutineCreation/Reply/WithSticker.d.ts +3 -0
  73. package/dist/Message/RoutineCreation/Reply/WithSticker.js +9 -0
  74. package/dist/Message/RoutineCreation/Reply/WithSticker.js.map +1 -0
  75. package/dist/Message/RoutineCreation/Reply/WithTemplate.d.ts +3 -0
  76. package/dist/Message/RoutineCreation/Reply/WithTemplate.js +20 -0
  77. package/dist/Message/RoutineCreation/Reply/WithTemplate.js.map +1 -0
  78. package/dist/Message/RoutineCreation/Reply/index.js +10 -0
  79. package/dist/Message/RoutineCreation/Reply/index.js.map +1 -0
  80. package/dist/Message/RoutineCreation/SendMessage/index.d.ts +10 -0
  81. package/dist/Message/RoutineCreation/SendMessage/index.js +25 -0
  82. package/dist/Message/RoutineCreation/SendMessage/index.js.map +1 -0
  83. package/dist/Message/RoutineCreation/reply.d.ts +15 -0
  84. package/dist/Message/RoutineCreation/reply.js +18 -0
  85. package/dist/Message/RoutineCreation/reply.js.map +1 -0
  86. package/dist/Message/index.d.ts +42 -0
  87. package/dist/Message/index.js +46 -0
  88. package/dist/Message/index.js.map +1 -0
  89. package/dist/Message/kozz-md.parser/index.d.ts +41 -0
  90. package/dist/Message/kozz-md.parser/index.js +122 -0
  91. package/dist/Message/kozz-md.parser/index.js.map +1 -0
  92. package/dist/Message/zap-md.parser/index.d.ts +1 -0
  93. package/dist/Message/zap-md.parser/index.js +2 -0
  94. package/dist/Schema/index.d.ts +37 -0
  95. package/dist/Schema/index.js +21 -0
  96. package/dist/Schema/index.js.map +1 -0
  97. package/dist/Socket/Events/Command.d.ts +3 -0
  98. package/dist/Socket/Events/Command.js +19 -0
  99. package/dist/Socket/Events/Command.js.map +1 -0
  100. package/dist/Socket/Events/Emit/ForwardEvent.d.ts +6 -0
  101. package/dist/Socket/Events/Emit/ForwardEvent.js +21 -0
  102. package/dist/Socket/Events/Emit/ForwardEvent.js.map +1 -0
  103. package/dist/Socket/Events/Emit/Introduction.d.ts +10 -0
  104. package/dist/Socket/Events/Emit/Introduction.js +21 -0
  105. package/dist/Socket/Events/Emit/Introduction.js.map +1 -0
  106. package/dist/Socket/Events/Emit/ProxyRequest.d.ts +0 -0
  107. package/dist/Socket/Events/Emit/ProxyRequest.js +2 -0
  108. package/dist/Socket/Events/Emit/ProxyRequest.js.map +1 -0
  109. package/dist/Socket/Events/Emit/RequestProxy.d.ts +18 -0
  110. package/dist/Socket/Events/Emit/RequestProxy.js +22 -0
  111. package/dist/Socket/Events/Emit/RequestProxy.js.map +1 -0
  112. package/dist/Socket/Events/Emit/RevokeProxy.d.ts +8 -0
  113. package/dist/Socket/Events/Emit/RevokeProxy.js +16 -0
  114. package/dist/Socket/Events/Emit/RevokeProxy.js.map +1 -0
  115. package/dist/Socket/Events/Handle/AskResource.d.ts +8 -0
  116. package/dist/Socket/Events/Handle/AskResource.js +36 -0
  117. package/dist/Socket/Events/Handle/AskResource.js.map +1 -0
  118. package/dist/Socket/Events/Handle/Command.d.ts +14 -0
  119. package/dist/Socket/Events/Handle/Command.js +48 -0
  120. package/dist/Socket/Events/Handle/Command.js.map +1 -0
  121. package/dist/Socket/Events/Handle/ProxiedMessage.d.ts +10 -0
  122. package/dist/Socket/Events/Handle/ProxiedMessage.js +18 -0
  123. package/dist/Socket/Events/Handle/ProxiedMessage.js.map +1 -0
  124. package/dist/Socket/Events/Introduction.d.ts +3 -0
  125. package/dist/Socket/Events/Introduction.js +15 -0
  126. package/dist/Socket/Events/Introduction.js.map +1 -0
  127. package/dist/Socket/Events/ProxiedMessage.d.ts +2 -0
  128. package/dist/Socket/Events/ProxiedMessage.js +10 -0
  129. package/dist/Socket/Events/ProxiedMessage.js.map +1 -0
  130. package/dist/Socket/Messages/Command.d.ts +2 -0
  131. package/dist/Socket/Messages/Command.js +6 -0
  132. package/dist/Socket/Messages/Command.js.map +1 -0
  133. package/dist/Socket/Messages/Introduction.d.ts +3 -0
  134. package/dist/Socket/Messages/Introduction.js +15 -0
  135. package/dist/Socket/Messages/Introduction.js.map +1 -0
  136. package/dist/Socket/index.d.ts +6 -0
  137. package/dist/Socket/index.js +19 -0
  138. package/dist/Socket/index.js.map +1 -0
  139. package/dist/Validator/index.d.ts +16 -0
  140. package/dist/Validator/index.js +55 -0
  141. package/dist/Validator/index.js.map +1 -0
  142. package/dist/debugIndex.d.ts +1 -0
  143. package/dist/debugIndex.js +21 -0
  144. package/dist/debugIndex.js.map +1 -0
  145. package/dist/index.js +19 -0
  146. package/dist/index.js.map +1 -0
  147. package/dist/util/index.d.ts +25 -0
  148. package/dist/util/index.js +81 -0
  149. package/dist/util/index.js.map +1 -0
  150. package/dist/util.d.ts +8 -0
  151. package/dist/util.js +36 -0
  152. package/dist/util.js.map +1 -0
  153. package/package.json +1 -1
  154. package/src/Instance/Common/ResourceMap/index.ts +0 -26
  155. package/src/Instance/Common/UseFns/index.ts +0 -22
  156. package/src/Instance/Common/onEvent/index.ts +0 -105
  157. package/src/Instance/GeneralModule/index.ts +0 -98
  158. package/src/Message/FromTemplate/index.ts +0 -74
  159. package/src/Message/PayloadCreation/Media.ts +0 -62
  160. package/src/Message/PayloadCreation/React.ts +0 -16
  161. package/src/Message/PayloadCreation/Reply.ts +0 -63
  162. package/src/Message/PayloadCreation/sendMessage.ts +0 -27
  163. package/src/Message/ProxiedMessage/index.ts +0 -27
  164. package/src/Message/RoutineCreation/AskResource/AskResourceApi/index.ts +0 -43
  165. package/src/Message/RoutineCreation/AskResource/index.ts +0 -85
  166. package/src/Message/RoutineCreation/Reply/WithMedia.ts +0 -63
  167. package/src/Message/RoutineCreation/Reply/WithSticker.ts +0 -9
  168. package/src/Message/RoutineCreation/Reply/WithTemplate.ts +0 -28
  169. package/src/Message/RoutineCreation/SendMessage/index.ts +0 -64
  170. package/src/Message/RoutineCreation/reply.ts +0 -23
  171. package/src/Message/index.ts +0 -44
  172. package/src/Message/kozz-md.parser/index.ts +0 -138
  173. package/src/Schema/index.ts +0 -102
  174. package/src/Socket/Events/Emit/ForwardEvent.ts +0 -22
  175. package/src/Socket/Events/Emit/Introduction.ts +0 -28
  176. package/src/Socket/Events/Emit/RequestProxy.ts +0 -38
  177. package/src/Socket/Events/Emit/RevokeProxy.ts +0 -15
  178. package/src/Socket/Events/Handle/AskResource.ts +0 -37
  179. package/src/Socket/Events/Handle/Command.ts +0 -68
  180. package/src/Socket/Events/Handle/ProxiedMessage.ts +0 -28
  181. package/src/Socket/index.ts +0 -40
  182. package/src/Validator/index.ts +0 -81
  183. package/src/messages.kozz.md +0 -52
  184. package/src/util/index.ts +0 -89
  185. /package/{src/Instance/Common/index.ts → dist/Instance/Common/index.d.ts} +0 -0
  186. /package/{src/Message/PayloadCreation/index.ts → dist/Message/PayloadCreation/index.d.ts} +0 -0
  187. /package/{src/Message/RoutineCreation/Reply/index.ts → dist/Message/RoutineCreation/Reply/index.d.ts} +0 -0
  188. /package/{src/index.ts → dist/index.d.ts} +0 -0
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.signInNodeEnvironment = exports.signInBrowser = exports.signPayload = exports.randomId = exports.normalizeString = exports.runUse = void 0;
7
+ const promises_1 = __importDefault(require("fs/promises"));
8
+ const crypto_1 = __importDefault(require("crypto"));
9
+ let privateKey;
10
+ const runUse = (useArr, args) => {
11
+ return useArr.reduce((res, fn) => {
12
+ return fn(res);
13
+ }, args);
14
+ };
15
+ exports.runUse = runUse;
16
+ function normalizeString(string) {
17
+ return string.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
18
+ }
19
+ exports.normalizeString = normalizeString;
20
+ const randomId = () => crypto_1.default.randomUUID();
21
+ exports.randomId = randomId;
22
+ const signPayload = (payload, signature) => {
23
+ if (signature) {
24
+ return {
25
+ ...payload,
26
+ signature,
27
+ };
28
+ }
29
+ try {
30
+ return (0, exports.signInNodeEnvironment)(payload);
31
+ }
32
+ catch (e) {
33
+ throw 'Please generate a keypair using the script "scripts/generate_key_pair.sh" and copy the publickey to the "${projetc_root}/keys/privatekey.pem". Leve the key names as it is';
34
+ }
35
+ };
36
+ exports.signPayload = signPayload;
37
+ /**
38
+ * Useful for when you need to authenticate in the web. Still didn't managed to make it work
39
+ * @param payload
40
+ * @returns
41
+ */
42
+ const signInBrowser = (payload) => {
43
+ try {
44
+ // @ts-ignore
45
+ return fetch('./keys/privatekey.pem')
46
+ .then((privateKey) => privateKey.text())
47
+ .then((privateKey) => {
48
+ const signature = crypto_1.default.sign('sha256', Buffer.from(JSON.stringify(payload, undefined, ' ')), { key: privateKey, padding: crypto_1.default.constants.RSA_PKCS1_PSS_PADDING });
49
+ return {
50
+ ...payload,
51
+ signature,
52
+ };
53
+ });
54
+ }
55
+ catch (e) {
56
+ throw 'Please generate a keypair using the script "scripts/generate_key_pair.sh" and copy the publickey to the "${projetc_root}/keys/privatekey.pem". Leve the key names as it is';
57
+ }
58
+ };
59
+ exports.signInBrowser = signInBrowser;
60
+ /**
61
+ * Sign any payload using fs to retrieve the key
62
+ * @param payload
63
+ * @returns
64
+ */
65
+ const signInNodeEnvironment = async (payload) => {
66
+ try {
67
+ privateKey = await promises_1.default.readFile('./keys/privatekey.pem', {
68
+ encoding: 'utf-8',
69
+ });
70
+ }
71
+ catch (e) {
72
+ throw 'Please generate a keypair using the script "scripts/generate_key_pair.sh" and copy the publickey to the "${project_root}/keys/privatekey.pem". Leve the key names as it is';
73
+ }
74
+ const signature = crypto_1.default.sign('sha256', Buffer.from(JSON.stringify(payload, undefined, ' ')), { key: privateKey, padding: crypto_1.default.constants.RSA_PKCS1_PSS_PADDING });
75
+ return {
76
+ ...payload,
77
+ signature,
78
+ };
79
+ };
80
+ exports.signInNodeEnvironment = signInNodeEnvironment;
81
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":";;;;;;AAEA,2DAA6B;AAC7B,oDAA4B;AAE5B,IAAI,UAA8B,CAAC;AAE5B,MAAM,MAAM,GAAG,CAAC,MAAe,EAAE,IAAa,EAAE,EAAE;IACxD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QAChC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC,EAAE,IAAI,CAAC,CAAC;AACV,CAAC,CAAC;AAJW,QAAA,MAAM,UAIjB;AAEF,SAAgB,eAAe,CAAC,MAAc;IAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;AAChE,CAAC;AAFD,0CAEC;AAEM,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,gBAAM,CAAC,UAAU,EAAE,CAAC;AAArC,QAAA,QAAQ,YAA6B;AAE3C,MAAM,WAAW,GAAG,CAC1B,OAAU,EACV,SAAkB,EACjB,EAAE;IACH,IAAI,SAAS,EAAE;QACd,OAAO;YACN,GAAG,OAAO;YACV,SAAS;SACT,CAAC;KACF;IACD,IAAI;QACH,OAAO,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;KACtC;IAAC,OAAO,CAAC,EAAE;QACX,MAAM,6KAA6K,CAAC;KACpL;AACF,CAAC,CAAC;AAfW,QAAA,WAAW,eAetB;AAEF;;;;GAIG;AACI,MAAM,aAAa,GAAG,CAAgC,OAAU,EAAE,EAAE;IAC1E,IAAI;QACH,aAAa;QACb,OAAO,KAAK,CAAC,uBAAuB,CAAC;aACnC,IAAI,CAAC,CAAC,UAAe,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;aAC5C,IAAI,CAAC,CAAC,UAAkB,EAAE,EAAE;YAC5B,MAAM,SAAS,GAAG,gBAAM,CAAC,IAAI,CAC5B,QAAQ,EACR,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,EACrD,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAM,CAAC,SAAS,CAAC,qBAAqB,EAAE,CACpE,CAAC;YAEF,OAAO;gBACN,GAAG,OAAO;gBACV,SAAS;aACT,CAAC;QACH,CAAC,CAAC,CAAC;KACJ;IAAC,OAAO,CAAC,EAAE;QACX,MAAM,6KAA6K,CAAC;KACpL;AACF,CAAC,CAAC;AApBW,QAAA,aAAa,iBAoBxB;AACF;;;;GAIG;AACI,MAAM,qBAAqB,GAAG,KAAK,EACzC,OAAU,EACT,EAAE;IACH,IAAI;QACH,UAAU,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,uBAAuB,EAAE;YACvD,QAAQ,EAAE,OAAO;SACjB,CAAC,CAAC;KACH;IAAC,OAAO,CAAC,EAAE;QACX,MAAM,6KAA6K,CAAC;KACpL;IAED,MAAM,SAAS,GAAG,gBAAM,CAAC,IAAI,CAC5B,QAAQ,EACR,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,EACrD,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAM,CAAC,SAAS,CAAC,qBAAqB,EAAE,CACpE,CAAC;IAEF,OAAO;QACN,GAAG,OAAO;QACV,SAAS;KACT,CAAC;AACH,CAAC,CAAC;AArBW,QAAA,qBAAqB,yBAqBhC"}
package/dist/util.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ /// <reference types="node" />
2
+ import { Command } from 'kozz-types';
3
+ import { UseFn } from './Instance/Handler';
4
+ export declare const runUse: (useArr: UseFn[], args: Command) => Command;
5
+ export declare function normalizeString(string: string): string;
6
+ export declare const signPayload: <T extends Record<string, any>>(payload: T) => T & {
7
+ signature: Buffer;
8
+ };
package/dist/util.js ADDED
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.signPayload = exports.normalizeString = exports.runUse = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const crypto_1 = __importDefault(require("crypto"));
9
+ let privateKey;
10
+ const runUse = (useArr, args) => {
11
+ return useArr.reduce((res, fn) => {
12
+ return fn(res);
13
+ }, args);
14
+ };
15
+ exports.runUse = runUse;
16
+ function normalizeString(string) {
17
+ return string.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
18
+ }
19
+ exports.normalizeString = normalizeString;
20
+ const signPayload = (payload) => {
21
+ try {
22
+ privateKey = fs_1.default.readFileSync('./keys/privatekey.pem', {
23
+ encoding: 'utf-8',
24
+ });
25
+ }
26
+ catch (e) {
27
+ throw 'Please generate a keypair using the script "scripts/generate_key_pair.sh" and copy the publickey to the "${gateway_root}/keys/publickey.pem". Leve the key names as it is';
28
+ }
29
+ const signature = crypto_1.default.sign('sha256', Buffer.from(JSON.stringify(payload, undefined, ' ')), { key: privateKey, padding: crypto_1.default.constants.RSA_PKCS1_PSS_PADDING });
30
+ return {
31
+ ...payload,
32
+ signature,
33
+ };
34
+ };
35
+ exports.signPayload = signPayload;
36
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;;;;AAEA,4CAAoB;AACpB,oDAA4B;AAE5B,IAAI,UAA8B,CAAC;AAE5B,MAAM,MAAM,GAAG,CAAC,MAAe,EAAE,IAAa,EAAE,EAAE;IACxD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QAChC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC,EAAE,IAAI,CAAC,CAAC;AACV,CAAC,CAAC;AAJW,QAAA,MAAM,UAIjB;AAEF,SAAgB,eAAe,CAAC,MAAc;IAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;AAChE,CAAC;AAFD,0CAEC;AAEM,MAAM,WAAW,GAAG,CAAgC,OAAU,EAAE,EAAE;IACxE,IAAI;QACH,UAAU,GAAG,YAAE,CAAC,YAAY,CAAC,uBAAuB,EAAE;YACrD,QAAQ,EAAE,OAAO;SACjB,CAAC,CAAC;KACH;IAAC,OAAO,CAAC,EAAE;QACX,MAAM,4KAA4K,CAAC;KACnL;IAED,MAAM,SAAS,GAAG,gBAAM,CAAC,IAAI,CAC5B,QAAQ,EACR,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,EACrD,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAM,CAAC,SAAS,CAAC,qBAAqB,EAAE,CACpE,CAAC;IAEF,OAAO;QACN,GAAG,OAAO;QACV,SAAS;KACT,CAAC;AACH,CAAC,CAAC;AAnBW,QAAA,WAAW,eAmBtB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kozz-module-maker",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Library to create new module for the Kozz-Bot protocol",
5
5
  "main": "./dist",
6
6
  "license": "MIT",
@@ -1,26 +0,0 @@
1
- import { AskResourcePayload } from 'kozz-types/dist';
2
-
3
- type ResourceName = string;
4
- type ResourceGetter = (args: AskResourcePayload['request']['data']) => any;
5
-
6
- export type ResourceMap = {
7
- [key: ResourceName]: ResourceGetter;
8
- };
9
-
10
- export const createResourceMap = () => {
11
- const resourceMap: ResourceMap = {};
12
-
13
- const upsertResource = (name: ResourceName, getter: ResourceGetter) => {
14
- resourceMap[name] = getter;
15
- };
16
-
17
- const removeResource = (name: ResourceName) => {
18
- delete resourceMap[name];
19
- };
20
-
21
- return {
22
- resourceMap,
23
- upsertResource,
24
- removeResource,
25
- };
26
- };
@@ -1,22 +0,0 @@
1
- import { Command } from 'kozz-types';
2
-
3
- // [TODO] Better type for this
4
- type HandlerOrProxy = any;
5
- type HandleOrProxyGetter = () => HandlerOrProxy;
6
-
7
- export type UseFn = (args: Command) => Command;
8
- export type OriginalFn = (args: Command) => any;
9
-
10
- export const createUseFns = (instanceGetter: HandleOrProxyGetter) => {
11
- const moduleUseFns: UseFn[] = [];
12
-
13
- const use = (useFn: UseFn) => {
14
- moduleUseFns.push(useFn);
15
- return instanceGetter();
16
- };
17
-
18
- return {
19
- moduleUseFns,
20
- use,
21
- };
22
- };
@@ -1,105 +0,0 @@
1
- import { Socket } from 'socket.io-client';
2
- import { ForwardedEventPayload } from 'kozz-types';
3
- import crypto from 'crypto';
4
-
5
- type OnEvent = {
6
- name: string;
7
- source: string;
8
- listeners: {
9
- id: string;
10
- cb: (ev: any) => any;
11
- }[];
12
- };
13
-
14
- export const onEvent = (socket: Socket, handlerId: string) => {
15
- const eventListeners: OnEvent[] = [];
16
-
17
- const getListenersFromEvent = (evName: string) => {
18
- return eventListeners.find(ev => ev.name === evName);
19
- };
20
-
21
- const on = (
22
- evName: string,
23
- eventSource: string,
24
- callback: (ev: any) => any
25
- ) => {
26
- if (!eventListeners.find(listener => listener.name === evName)) {
27
- eventListeners.push({
28
- name: evName,
29
- source: eventSource,
30
- listeners: [],
31
- });
32
- }
33
-
34
- const id = crypto.randomUUID();
35
-
36
- eventListeners
37
- .find(listener => listener.name === evName)
38
- ?.listeners.push({
39
- id,
40
- cb: callback,
41
- });
42
-
43
- socket.emit('event_forward_request', {
44
- sourceId: eventSource,
45
- destination: {
46
- id: handlerId,
47
- type: 'Handler',
48
- },
49
- eventName: evName,
50
- });
51
-
52
- return {
53
- eventId: id,
54
- revoke: removeListener(evName, id),
55
- };
56
- };
57
-
58
- const resendEvents = () => {
59
- eventListeners.forEach(({ name, listeners, source }) => {
60
- listeners.forEach(({ id, cb }) => {
61
- socket.emit('event_forward_request', {
62
- sourceId: source,
63
- destination: {
64
- id: handlerId,
65
- type: 'Handler',
66
- },
67
- eventName: name,
68
- });
69
- });
70
- });
71
- };
72
-
73
- const removeListener = (evName: string, evId: string) => () => {
74
- const event = getListenersFromEvent(evName);
75
- if (!event?.listeners) return;
76
- event.listeners = event?.listeners.filter(listener => listener.id !== evId);
77
- if (event.listeners.length === 0) {
78
- socket.emit('event_forward_revoke', {
79
- eventName: evName,
80
- destination: {
81
- id: handlerId,
82
- type: 'Handler',
83
- },
84
- });
85
- }
86
- };
87
-
88
- const tryRunEventListeners = (evName: string, eventPayload: any) => {
89
- const event = getListenersFromEvent(evName);
90
- if (!event?.listeners) return;
91
- event.listeners.forEach(listener => listener.cb(eventPayload));
92
- };
93
-
94
- socket.on('forwarded_event', (event: ForwardedEventPayload) => {
95
- console.log('Received Event aaa');
96
- tryRunEventListeners(event.eventName, event.payload);
97
- });
98
-
99
- socket.on('connect', resendEvents);
100
-
101
- return {
102
- on,
103
- tryRunEventListeners,
104
- };
105
- };
@@ -1,98 +0,0 @@
1
- import { Method, TypeString } from '../../Schema';
2
- import { createResourceMap, createUseFns, onEvent } from '../Common';
3
- import { connect } from '../../Socket';
4
- import { revokeProxy } from '../../Socket/Events/Emit/RevokeProxy';
5
- import { requestProxy } from '../../Socket/Events/Emit/RequestProxy';
6
- import { ProxiedMessageObject } from '../../Message/ProxiedMessage';
7
- import { Source } from 'kozz-types';
8
- import { onAskResource } from '../../Socket/Events/Handle/AskResource';
9
- import { sendMessageToContact } from '../../Message/RoutineCreation/SendMessage';
10
- import { createAskResource } from '../../Message/RoutineCreation/AskResource';
11
-
12
- export type ControllerInitParams<Methods extends Record<string, TypeString>> = {
13
- name: string;
14
- address: string;
15
- templatePath?: string;
16
- signature?: string;
17
-
18
- commands?: {
19
- boundariesToHandle: string[];
20
- methods?: Record<string, Method<Methods>>;
21
- };
22
-
23
- proxy?: {
24
- source: Source;
25
- destinationOverride?: string;
26
- onMessage: (message: ProxiedMessageObject) => any;
27
- keepAliveProxy?: boolean;
28
- };
29
- };
30
-
31
- export const createModule = <Methods extends Record<string, TypeString>>({
32
- name,
33
- address,
34
- commands,
35
- proxy,
36
- signature,
37
- templatePath,
38
- }: ControllerInitParams<Methods>) => {
39
- const { moduleUseFns, use } = createUseFns(() => instance);
40
-
41
- const { socket, registerMethods } = connect(
42
- address,
43
- moduleUseFns,
44
- templatePath || '',
45
- name,
46
- commands?.methods || {},
47
- commands?.boundariesToHandle || [],
48
- signature
49
- );
50
-
51
- if (commands?.methods) {
52
- registerMethods(commands?.methods);
53
- }
54
-
55
- if (proxy) {
56
- requestProxy(socket, {
57
- address,
58
- name,
59
- ...proxy,
60
- });
61
- }
62
-
63
- const { removeResource, resourceMap, upsertResource } = createResourceMap();
64
- onAskResource(socket, resourceMap);
65
-
66
- const sendMessage = sendMessageToContact(socket, name);
67
-
68
- let revoke = () => {
69
- if (proxy) {
70
- revokeProxy(socket, proxy.source);
71
- }
72
- };
73
-
74
- const { on } = onEvent(socket, name);
75
-
76
- const ask = createAskResource(socket, {
77
- requester: {
78
- id: name,
79
- type: 'Handler',
80
- },
81
- });
82
-
83
- const instance = {
84
- use,
85
- on,
86
- sendMessage,
87
- resources: {
88
- removeResource,
89
- upsertResource,
90
- },
91
- proxy: {
92
- revoke,
93
- },
94
- ask,
95
- };
96
-
97
- return instance;
98
- };
@@ -1,74 +0,0 @@
1
- import fs from 'fs/promises';
2
- import parseDocument from '../kozz-md.parser';
3
-
4
- export type Line = {
5
- line: Text[];
6
- };
7
-
8
- export type Text = {
9
- style: keyof typeof styleMap;
10
- text: string;
11
- };
12
-
13
- export const bold = (s: string) => `*${s}*`;
14
- export const italic = (s: string) => `_${s}_`;
15
- export const stroke = (s: string) => `~${s}~`;
16
- export const monospace = (s: string) => `\`\`\`${s}\`\`\``;
17
-
18
- const styleMap = {
19
- bold: bold,
20
- stroke: stroke,
21
- italic: italic,
22
- code: monospace,
23
- boldAndItalic: (s: string) => bold(italic(s)),
24
- normal: (s: string) => s,
25
- template: (s: string) => s,
26
- paragraph: (s: string) => `${bold(s)}\n`,
27
- listItem: (s: string) => ` - ${s}`,
28
- lineBreak: (s: string) => '',
29
- };
30
-
31
- export const getTemplates = (path: string) =>
32
- fs.readFile(path, { encoding: 'utf-8' });
33
-
34
- const textMessageFromTemplate = (
35
- templateName: string,
36
- documentAsString: string,
37
- templateData: Record<string, any> = {}
38
- ) => {
39
- const { result } = parseDocument(documentAsString, templateData);
40
-
41
- const myMessage = result.filter(msg => msg.messageName === templateName)[0];
42
-
43
- if (!myMessage) {
44
- return console.error('No message found for the provided name');
45
- }
46
-
47
- return myMessage.messageBody.reduce((msg, { line }) => {
48
- line.forEach(styledText => {
49
- // I know this type asting is ugly
50
- const stylingFn = styleMap[styledText.style as keyof typeof styleMap];
51
- return (msg += stylingFn(styledText.text));
52
- });
53
- return (msg += '\n');
54
- }, '');
55
- };
56
-
57
- /**
58
- * Creates the ability to send messages from a message template
59
- * @param path
60
- * @returns
61
- */
62
- export const loadTemplates = (path: string) => {
63
- const getTextFromTemplate = (
64
- templateName: string,
65
- templateData: Record<string, any> = {}
66
- ) => {
67
- return getTemplates(path).then(templates => {
68
- return textMessageFromTemplate(templateName, templates, templateData);
69
- });
70
- };
71
- return {
72
- getTextFromTemplate,
73
- };
74
- };
@@ -1,62 +0,0 @@
1
- import fs from 'fs/promises';
2
- import { Media } from 'kozz-types';
3
-
4
- export type MimeType =
5
- | 'video/mp4'
6
- | 'image/gif'
7
- | 'image'
8
- | 'video'
9
- | 'video/mpeg'
10
- | 'audio/webm';
11
-
12
- export const loadMediaFromPath = async (
13
- filePath: string,
14
- mimeType: MimeType
15
- ): Promise<Media> => {
16
- const b64 = await fs.readFile(filePath, 'base64');
17
- const fileName = null;
18
-
19
- return {
20
- data: b64,
21
- fileName,
22
- mimeType,
23
- sizeInBytes: Buffer.from(b64, 'base64').length,
24
- transportType: 'b64',
25
- };
26
- };
27
-
28
- export const createMediaFromBuffer = (
29
- buffer: Buffer,
30
- mimeType: MimeType,
31
- fileName?: string
32
- ): Media => ({
33
- data: buffer.toString('base64'),
34
- fileName: fileName || null,
35
- mimeType: mimeType,
36
- sizeInBytes: buffer.length,
37
- transportType: 'b64',
38
- });
39
-
40
- export const createMediaFromB64 = (
41
- b64: string,
42
- mimeType: MimeType,
43
- fileName?: string
44
- ): Media => ({
45
- data: b64,
46
- fileName: fileName || mimeType,
47
- mimeType: mimeType,
48
- sizeInBytes: Buffer.from(b64, 'base64').length,
49
- transportType: 'b64',
50
- });
51
-
52
- export const createMediaFromUrl = (
53
- url: string,
54
- mimeType: MimeType,
55
- fileName?: string
56
- ): Media => ({
57
- data: url,
58
- fileName: fileName || mimeType,
59
- mimeType: mimeType,
60
- sizeInBytes: null,
61
- transportType: 'url',
62
- });
@@ -1,16 +0,0 @@
1
- import { Command, MessageReceivedByGateway } from 'kozz-types';
2
- import { Socket } from 'socket.io-client';
3
-
4
- export const createReact = (
5
- socket: Socket,
6
- messagePayload: MessageReceivedByGateway
7
- ) => {
8
- const react = (emote: string) =>
9
- socket.emit('react_message', {
10
- messageId: messagePayload.id,
11
- boundaryId: messagePayload.boundaryId,
12
- emote,
13
- });
14
-
15
- return react;
16
- };
@@ -1,63 +0,0 @@
1
- import {
2
- Command,
3
- Media,
4
- MessageReceivedByGateway,
5
- SendMessagePayload,
6
- } from 'kozz-types';
7
-
8
- export const replyWithText = (
9
- messagePayload: MessageReceivedByGateway,
10
- string: string
11
- ): SendMessagePayload => ({
12
- body: string,
13
- boundaryId: messagePayload.boundaryId,
14
- chatId: messagePayload.to,
15
- contact: messagePayload.contact,
16
- platform: messagePayload.platform,
17
- timestamp: new Date().getTime(),
18
- quoteId: messagePayload.id,
19
- });
20
-
21
- export const replyWithSticker = (
22
- messagePayload: MessageReceivedByGateway,
23
- media: Media
24
- ): SendMessagePayload => ({
25
- body: '',
26
- media: media,
27
- chatId: messagePayload.to,
28
- platform: 'WA',
29
- timestamp: new Date().getTime(),
30
- quoteId: messagePayload.id,
31
- boundaryId: messagePayload.boundaryId,
32
- contact: messagePayload.contact,
33
- });
34
-
35
- export const replyWithMedia = (
36
- messagePayload: MessageReceivedByGateway,
37
- media: Media,
38
- caption?: string
39
- ): SendMessagePayload => ({
40
- body: caption || '',
41
- media: media,
42
- chatId: messagePayload.to,
43
- platform: 'WA',
44
- timestamp: new Date().getTime(),
45
- quoteId: messagePayload.id,
46
- boundaryId: messagePayload.boundaryId,
47
- contact: messagePayload.contact,
48
- });
49
-
50
- export const replyWithMediaFromUrl = (
51
- messagePayload: MessageReceivedByGateway,
52
- media: Media,
53
- caption?: string
54
- ): SendMessagePayload => ({
55
- body: caption || '',
56
- media: media,
57
- chatId: messagePayload.to,
58
- platform: 'WA',
59
- timestamp: new Date().getTime(),
60
- quoteId: messagePayload.id,
61
- boundaryId: messagePayload.boundaryId,
62
- contact: messagePayload.contact,
63
- });
@@ -1,27 +0,0 @@
1
- import { Media, SendMessagePayload } from 'kozz-types';
2
-
3
- export const createSendMessagePayload = (
4
- handlerName: string,
5
- contactId: string,
6
- boundaryId: string,
7
- body: string,
8
- media?: Media
9
- ): SendMessagePayload => {
10
- return {
11
- body,
12
- boundaryId: boundaryId,
13
- chatId: contactId,
14
- contact: {
15
- publicName: handlerName,
16
- privateName: handlerName,
17
- id: handlerName,
18
- isBlocked: false,
19
- hostAdded: true,
20
- isGroup: false,
21
- },
22
- platform: 'WA',
23
- timestamp: new Date().getTime(),
24
- quoteId: undefined,
25
- media,
26
- };
27
- };
@@ -1,27 +0,0 @@
1
- import {
2
- Command,
3
- MessageReceived,
4
- MessageReceivedByGateway,
5
- Source,
6
- } from 'kozz-types';
7
- import { Socket } from 'socket.io-client';
8
- import { createMessageObject } from '..';
9
- import { revokeProxy } from '../../Socket/Events/Emit/RevokeProxy';
10
-
11
- export type ProxiedMessageObject = ReturnType<typeof createProxiedMessageOject>;
12
-
13
- export const createProxiedMessageOject = (
14
- socket: Socket,
15
- source: Source,
16
- message: MessageReceivedByGateway,
17
- handlerName: string
18
- ) => {
19
- const messageObject = createMessageObject(socket, message, handlerName);
20
-
21
- const revoke = () => revokeProxy(socket, source);
22
-
23
- return {
24
- ...messageObject,
25
- revoke,
26
- };
27
- };