@japcon-bot/bot 1.0.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 (88) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +21 -0
  3. package/dist/context/globalstateClass.d.ts +34 -0
  4. package/dist/context/globalstateClass.d.ts.map +1 -0
  5. package/dist/context/idlestateClass.d.ts +37 -0
  6. package/dist/context/idlestateClass.d.ts.map +1 -0
  7. package/dist/context/index.d.ts +4 -0
  8. package/dist/context/index.d.ts.map +1 -0
  9. package/dist/context/stateClass.d.ts +44 -0
  10. package/dist/context/stateClass.d.ts.map +1 -0
  11. package/dist/core/coreClass.d.ts +129 -0
  12. package/dist/core/coreClass.d.ts.map +1 -0
  13. package/dist/core/eventEmitterClass.d.ts +19 -0
  14. package/dist/core/eventEmitterClass.d.ts.map +1 -0
  15. package/dist/db/index.d.ts +16 -0
  16. package/dist/db/index.d.ts.map +1 -0
  17. package/dist/index.cjs +34954 -0
  18. package/dist/index.d.ts +35 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/io/events/eventAction.d.ts +3 -0
  21. package/dist/io/events/eventAction.d.ts.map +1 -0
  22. package/dist/io/events/eventCall.d.ts +4 -0
  23. package/dist/io/events/eventCall.d.ts.map +1 -0
  24. package/dist/io/events/eventCustom.d.ts +4 -0
  25. package/dist/io/events/eventCustom.d.ts.map +1 -0
  26. package/dist/io/events/eventDocument.d.ts +4 -0
  27. package/dist/io/events/eventDocument.d.ts.map +1 -0
  28. package/dist/io/events/eventLocation.d.ts +4 -0
  29. package/dist/io/events/eventLocation.d.ts.map +1 -0
  30. package/dist/io/events/eventMedia.d.ts +4 -0
  31. package/dist/io/events/eventMedia.d.ts.map +1 -0
  32. package/dist/io/events/eventOrder.d.ts +4 -0
  33. package/dist/io/events/eventOrder.d.ts.map +1 -0
  34. package/dist/io/events/eventTemplate.d.ts +4 -0
  35. package/dist/io/events/eventTemplate.d.ts.map +1 -0
  36. package/dist/io/events/eventVoiceNote.d.ts +4 -0
  37. package/dist/io/events/eventVoiceNote.d.ts.map +1 -0
  38. package/dist/io/events/eventWelcome.d.ts +3 -0
  39. package/dist/io/events/eventWelcome.d.ts.map +1 -0
  40. package/dist/io/events/index.d.ts +17 -0
  41. package/dist/io/events/index.d.ts.map +1 -0
  42. package/dist/io/flowClass.d.ts +20 -0
  43. package/dist/io/flowClass.d.ts.map +1 -0
  44. package/dist/io/methods/addAnswer.d.ts +9 -0
  45. package/dist/io/methods/addAnswer.d.ts.map +1 -0
  46. package/dist/io/methods/addChild.d.ts +10 -0
  47. package/dist/io/methods/addChild.d.ts.map +1 -0
  48. package/dist/io/methods/addKeyword.d.ts +10 -0
  49. package/dist/io/methods/addKeyword.d.ts.map +1 -0
  50. package/dist/io/methods/index.d.ts +8 -0
  51. package/dist/io/methods/index.d.ts.map +1 -0
  52. package/dist/io/methods/toCtx.d.ts +20 -0
  53. package/dist/io/methods/toCtx.d.ts.map +1 -0
  54. package/dist/io/methods/toJson.d.ts +4 -0
  55. package/dist/io/methods/toJson.d.ts.map +1 -0
  56. package/dist/io/methods/toSerialize.d.ts +9 -0
  57. package/dist/io/methods/toSerialize.d.ts.map +1 -0
  58. package/dist/provider/interface/provider.d.ts +163 -0
  59. package/dist/provider/interface/provider.d.ts.map +1 -0
  60. package/dist/provider/interface/server.d.ts +60 -0
  61. package/dist/provider/interface/server.d.ts.map +1 -0
  62. package/dist/provider/providerMock.d.ts +19 -0
  63. package/dist/provider/providerMock.d.ts.map +1 -0
  64. package/dist/types.d.ts +289 -0
  65. package/dist/types.d.ts.map +1 -0
  66. package/dist/utils/blacklistClass.d.ts +38 -0
  67. package/dist/utils/blacklistClass.d.ts.map +1 -0
  68. package/dist/utils/cleanImage.d.ts +8 -0
  69. package/dist/utils/cleanImage.d.ts.map +1 -0
  70. package/dist/utils/convertAudio.d.ts +7 -0
  71. package/dist/utils/convertAudio.d.ts.map +1 -0
  72. package/dist/utils/delay.d.ts +7 -0
  73. package/dist/utils/delay.d.ts.map +1 -0
  74. package/dist/utils/download.d.ts +10 -0
  75. package/dist/utils/download.d.ts.map +1 -0
  76. package/dist/utils/event.d.ts +19 -0
  77. package/dist/utils/event.d.ts.map +1 -0
  78. package/dist/utils/flattener.d.ts +10 -0
  79. package/dist/utils/flattener.d.ts.map +1 -0
  80. package/dist/utils/hash.d.ts +47 -0
  81. package/dist/utils/hash.d.ts.map +1 -0
  82. package/dist/utils/index.d.ts +12 -0
  83. package/dist/utils/index.d.ts.map +1 -0
  84. package/dist/utils/interactive.d.ts +10 -0
  85. package/dist/utils/interactive.d.ts.map +1 -0
  86. package/dist/utils/queueClass.d.ts +29 -0
  87. package/dist/utils/queueClass.d.ts.map +1 -0
  88. package/package.json +66 -0
@@ -0,0 +1,35 @@
1
+ import { CoreClass } from './core/coreClass';
2
+ import { EventEmitterClass } from './core/eventEmitterClass';
3
+ import { MemoryDB } from './db';
4
+ import { LIST_ALL as EVENTS } from './io/events';
5
+ import FlowClass from './io/flowClass';
6
+ import { addAnswer } from './io/methods/addAnswer';
7
+ import { addKeyword } from './io/methods/addKeyword';
8
+ import { ProviderClass } from './provider/interface/provider';
9
+ import { TestProvider } from './provider/providerMock';
10
+ import type { GeneralArgs, TFlow } from './types';
11
+ import * as utils from './utils';
12
+ /**
13
+ * Crear instancia de clase Bot
14
+ */
15
+ declare const createBot: <P extends ProviderClass = any, D extends MemoryDB = any>({ flow, database, provider }: {
16
+ flow: FlowClass;
17
+ database: D;
18
+ provider: P;
19
+ }, args?: Omit<GeneralArgs, "listEvents">) => Promise<CoreClass<P, D>>;
20
+ /**
21
+ * Crear instancia de clase Io (Flow)
22
+ */
23
+ declare const createFlow: (args: TFlow[]) => FlowClass;
24
+ /**
25
+ * Crear instancia de clase Provider
26
+ * Depdendiendo del Provider puedes pasar argumentos
27
+ * Ver Documentacion
28
+ */
29
+ declare const createProvider: <T = ProviderClass, K = typeof ProviderClass.prototype.globalVendorArgs>(providerClass: new (args: K) => T, args?: K) => T;
30
+ declare const TestTool: {
31
+ TestProvider: typeof TestProvider;
32
+ TestDB: typeof MemoryDB;
33
+ };
34
+ export { createBot, createFlow, createProvider, addKeyword, addAnswer, ProviderClass, EventEmitterClass, CoreClass, EVENTS, MemoryDB, TestTool, utils, };
35
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,EAAE,QAAQ,IAAI,MAAM,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAEhC;;GAEG;AACH,QAAA,MAAM,SAAS,GAAU,CAAC,SAAS,aAAa,GAAG,GAAG,EAAE,CAAC,SAAS,QAAQ,GAAG,GAAG,EAC5E,8BAA8B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,CAAC,CAAC;IAAC,QAAQ,EAAE,CAAC,CAAA;CAAE,EAC3E,OAAO,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,KACvC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAqBzB,CAAA;AAED;;GAEG;AACH,QAAA,MAAM,UAAU,GAAI,MAAM,KAAK,EAAE,KAAG,SAEnC,CAAA;AAED;;;;GAIG;AACH,QAAA,MAAM,cAAc,GAAI,CAAC,GAAG,aAAa,EAAE,CAAC,GAAG,OAAO,aAAa,CAAC,SAAS,CAAC,gBAAgB,EAC1F,eAAe,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,EACjC,OAAM,CAAQ,KACf,CAGF,CAAA;AAED,QAAA,MAAM,QAAQ;;;CAGb,CAAA;AAED,OAAO,EACH,SAAS,EACT,UAAU,EACV,cAAc,EACd,UAAU,EACV,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,KAAK,GACR,CAAA"}
@@ -0,0 +1,3 @@
1
+ declare const eventAction: () => string;
2
+ export { eventAction };
3
+ //# sourceMappingURL=eventAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventAction.d.ts","sourceRoot":"","sources":["../../../src/io/events/eventAction.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,WAAW,QAAO,MAEvB,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -0,0 +1,4 @@
1
+ declare const eventCall: () => string;
2
+ declare const REGEX_EVENT_CALL: RegExp;
3
+ export { eventCall, REGEX_EVENT_CALL };
4
+ //# sourceMappingURL=eventCall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventCall.d.ts","sourceRoot":"","sources":["../../../src/io/events/eventCall.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,SAAS,QAAO,MAErB,CAAA;AAED,QAAA,MAAM,gBAAgB,QAA+B,CAAA;AAErD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA"}
@@ -0,0 +1,4 @@
1
+ declare const REGEX_EVENT_CUSTOM: RegExp;
2
+ declare const eventCustom: () => string;
3
+ export { eventCustom, REGEX_EVENT_CUSTOM };
4
+ //# sourceMappingURL=eventCustom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventCustom.d.ts","sourceRoot":"","sources":["../../../src/io/events/eventCustom.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,kBAAkB,QAA2D,CAAA;AAEnF,QAAA,MAAM,WAAW,QAAO,MAEvB,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAA"}
@@ -0,0 +1,4 @@
1
+ declare const eventDocument: () => string;
2
+ declare const REGEX_EVENT_DOCUMENT: RegExp;
3
+ export { eventDocument, REGEX_EVENT_DOCUMENT };
4
+ //# sourceMappingURL=eventDocument.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventDocument.d.ts","sourceRoot":"","sources":["../../../src/io/events/eventDocument.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,aAAa,QAAO,MAEzB,CAAA;AAED,QAAA,MAAM,oBAAoB,QAAmC,CAAA;AAE7D,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAA"}
@@ -0,0 +1,4 @@
1
+ declare const eventLocation: () => string;
2
+ declare const REGEX_EVENT_LOCATION: RegExp;
3
+ export { eventLocation, REGEX_EVENT_LOCATION };
4
+ //# sourceMappingURL=eventLocation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventLocation.d.ts","sourceRoot":"","sources":["../../../src/io/events/eventLocation.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,aAAa,QAAO,MAEzB,CAAA;AAED,QAAA,MAAM,oBAAoB,QAAmC,CAAA;AAE7D,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAA"}
@@ -0,0 +1,4 @@
1
+ declare const eventMedia: () => string;
2
+ declare const REGEX_EVENT_MEDIA: RegExp;
3
+ export { eventMedia, REGEX_EVENT_MEDIA };
4
+ //# sourceMappingURL=eventMedia.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventMedia.d.ts","sourceRoot":"","sources":["../../../src/io/events/eventMedia.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,UAAU,QAAO,MAEtB,CAAA;AAED,QAAA,MAAM,iBAAiB,QAAgC,CAAA;AAEvD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAA"}
@@ -0,0 +1,4 @@
1
+ declare const eventOrder: () => string;
2
+ declare const REGEX_EVENT_ORDER: RegExp;
3
+ export { eventOrder, REGEX_EVENT_ORDER };
4
+ //# sourceMappingURL=eventOrder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventOrder.d.ts","sourceRoot":"","sources":["../../../src/io/events/eventOrder.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,UAAU,QAAO,MAEtB,CAAA;AAED,QAAA,MAAM,iBAAiB,QAAgC,CAAA;AAEvD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAA"}
@@ -0,0 +1,4 @@
1
+ declare const eventTemplate: () => string;
2
+ declare const REGEX_EVENT_TEMPLATE: RegExp;
3
+ export { eventTemplate, REGEX_EVENT_TEMPLATE };
4
+ //# sourceMappingURL=eventTemplate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventTemplate.d.ts","sourceRoot":"","sources":["../../../src/io/events/eventTemplate.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,aAAa,QAAO,MAEzB,CAAA;AAED,QAAA,MAAM,oBAAoB,QAAmC,CAAA;AAE7D,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAA"}
@@ -0,0 +1,4 @@
1
+ declare const eventVoiceNote: () => string;
2
+ declare const REGEX_EVENT_VOICE_NOTE: RegExp;
3
+ export { eventVoiceNote, REGEX_EVENT_VOICE_NOTE };
4
+ //# sourceMappingURL=eventVoiceNote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventVoiceNote.d.ts","sourceRoot":"","sources":["../../../src/io/events/eventVoiceNote.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,cAAc,QAAO,MAE1B,CAAA;AAED,QAAA,MAAM,sBAAsB,QAAqC,CAAA;AAEjE,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,CAAA"}
@@ -0,0 +1,3 @@
1
+ declare const eventWelcome: () => string;
2
+ export { eventWelcome };
3
+ //# sourceMappingURL=eventWelcome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventWelcome.d.ts","sourceRoot":"","sources":["../../../src/io/events/eventWelcome.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,YAAY,QAAO,MAExB,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -0,0 +1,17 @@
1
+ type EventFunctionRegex = {
2
+ [key: string]: RegExp;
3
+ };
4
+ declare const LIST_ALL: {
5
+ WELCOME: string;
6
+ MEDIA: string;
7
+ LOCATION: string;
8
+ DOCUMENT: string;
9
+ VOICE_NOTE: string;
10
+ ACTION: string;
11
+ ORDER: string;
12
+ TEMPLATE: string;
13
+ CALL: string;
14
+ };
15
+ declare const LIST_REGEX: EventFunctionRegex;
16
+ export { LIST_ALL, LIST_REGEX };
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/io/events/index.ts"],"names":[],"mappings":"AAWA,KAAK,kBAAkB,GAAG;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CACxB,CAAA;AAED,QAAA,MAAM,QAAQ;;;;;;;;;;CAUb,CAAA;AAED,QAAA,MAAM,UAAU,EAAE,kBASjB,CAAA;AAED,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAA"}
@@ -0,0 +1,20 @@
1
+ import type { TContext, TFlow } from '../types';
2
+ /**
3
+ * Esta clase se encarga de manejar la manipulación de los flows
4
+ * y la creación de índices donde almacenar los callbacks.
5
+ */
6
+ declare class FlowClass {
7
+ allCallbacks: Record<string, Function>;
8
+ flowSerialize: TContext[];
9
+ flowRaw: TFlow[];
10
+ constructor(_flow: TFlow[]);
11
+ find(keyOrWord: string, symbol?: boolean, overFlow?: TContext[] | null): TContext[];
12
+ findBySerialize(refSerialize: string, k?: number): TContext | undefined;
13
+ findIndexByRef(ref: string): number;
14
+ findSerializeByRef(ref: string): TContext | undefined;
15
+ findSerializeByKeyword(keyword: string): TContext | undefined;
16
+ getRefToContinueChild(keyword: string): TContext | undefined;
17
+ getFlowsChild(): TContext[];
18
+ }
19
+ export default FlowClass;
20
+ //# sourceMappingURL=flowClass.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flowClass.d.ts","sourceRoot":"","sources":["../../src/io/flowClass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAI/C;;;GAGG;AACH,cAAM,SAAS;IACX,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACtC,aAAa,EAAE,QAAQ,EAAE,CAAA;IACzB,OAAO,EAAE,KAAK,EAAE,CAAA;gBAEJ,KAAK,EAAE,KAAK,EAAE;IAW1B,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,OAAe,EAAE,QAAQ,GAAE,QAAQ,EAAE,GAAG,IAAW,GAAG,QAAQ,EAAE;IAuChG,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,QAAQ,GAAG,SAAS;IAK1E,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAInC,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIrD,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI7D,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAa5D,aAAa,IAAI,QAAQ,EAAE;CAc9B;AAED,eAAe,SAAS,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { TContext, TFlow, CallbackFunction, ActionPropertiesKeyword } from '../../types';
2
+ /**
3
+ * @public
4
+ * @param inCtx
5
+ * @returns
6
+ */
7
+ declare const _addAnswer: <P = any, B = any>(inCtx: TContext | TFlow<P, B>) => (answer: string | string[], options?: ActionPropertiesKeyword, cb?: CallbackFunction<P, B> | null, nested?: TFlow<P>[] | TFlow<P>) => TFlow<P>;
8
+ export { _addAnswer as addAnswer };
9
+ //# sourceMappingURL=addAnswer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addAnswer.d.ts","sourceRoot":"","sources":["../../../src/io/methods/addAnswer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAER,QAAQ,EACR,KAAK,EACL,gBAAgB,EAEhB,uBAAuB,EAC1B,MAAM,aAAa,CAAA;AAIpB;;;;GAIG;AACH,QAAA,MAAM,UAAU,GACX,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,OAAO,QAAQ,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAE5C,QAAQ,MAAM,GAAG,MAAM,EAAE,EACzB,UAAU,uBAAuB,EACjC,KAAK,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAClC,SAAS,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,KAC/B,KAAK,CAAC,CAAC,CAyGT,CAAA;AAEL,OAAO,EAAE,UAAU,IAAI,SAAS,EAAE,CAAA"}
@@ -0,0 +1,10 @@
1
+ import type { TContext, TFlow } from '../../types';
2
+ /**
3
+ * @private
4
+ * @param answer - This parameter is not used in the function body and can be removed.
5
+ * @param options - This parameter is not used in the function body and can be removed.
6
+ * @returns Serialized flow object
7
+ */
8
+ declare const addChild: <P>(flowIn?: TFlow<P> | null) => TContext[];
9
+ export { addChild };
10
+ //# sourceMappingURL=addChild.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addChild.d.ts","sourceRoot":"","sources":["../../../src/io/methods/addChild.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAElD;;;;;GAKG;AACH,QAAA,MAAM,QAAQ,GAAI,CAAC,EAAE,SAAQ,KAAK,CAAC,CAAC,CAAC,GAAG,IAAW,KAAG,QAAQ,EAK7D,CAAA;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,10 @@
1
+ import type { ActionPropertiesKeyword, TFlow } from '../../types';
2
+ /**
3
+ * @public
4
+ * @param keyword
5
+ * @param options
6
+ * @returns
7
+ */
8
+ declare const addKeyword: <P = any, B = any>(keyword: string | [string, ...string[]], options?: ActionPropertiesKeyword) => TFlow<P, B>;
9
+ export { addKeyword };
10
+ //# sourceMappingURL=addKeyword.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addKeyword.d.ts","sourceRoot":"","sources":["../../../src/io/methods/addKeyword.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAA8B,KAAK,EAAE,MAAM,aAAa,CAAA;AAG7F;;;;;GAKG;AACH,QAAA,MAAM,UAAU,GAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAChC,SAAS,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,EACvC,UAAU,uBAAuB,KAClC,KAAK,CAAC,CAAC,EAAE,CAAC,CAwCZ,CAAA;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { addAnswer } from './addAnswer';
2
+ import { addChild } from './addChild';
3
+ import { addKeyword } from './addKeyword';
4
+ import { toCtx } from './toCtx';
5
+ import { toJson } from './toJson';
6
+ import { toSerialize } from './toSerialize';
7
+ export { addAnswer, addKeyword, addChild, toCtx, toJson, toSerialize };
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/io/methods/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA"}
@@ -0,0 +1,20 @@
1
+ import type { ActionPropertiesKeyword, TContext } from '../../types';
2
+ type Options = Partial<ActionPropertiesKeyword>;
3
+ interface ToCtxParams {
4
+ body: string;
5
+ from: string;
6
+ prevRef?: string;
7
+ keyword?: string;
8
+ options?: Options;
9
+ index?: number;
10
+ source_id?: string;
11
+ source_type?: string;
12
+ ctwa_id?: string;
13
+ }
14
+ /**
15
+ * @param params ToCtxParams
16
+ * @returns Context
17
+ */
18
+ declare const toCtx: ({ body, from, prevRef, keyword, options, index, source_id, source_type, ctwa_id, }: ToCtxParams) => TContext;
19
+ export { toCtx };
20
+ //# sourceMappingURL=toCtx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toCtx.d.ts","sourceRoot":"","sources":["../../../src/io/methods/toCtx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAGpE,KAAK,OAAO,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;AAE/C,UAAU,WAAW;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;GAGG;AACH,QAAA,MAAM,KAAK,GAAI,oFAUZ,WAAW,KAAG,QAYhB,CAAA;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { TContext } from '../../types';
2
+ declare const toJson: (inCtx: TContext) => (() => TContext[]);
3
+ export { toJson };
4
+ //# sourceMappingURL=toJson.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toJson.d.ts","sourceRoot":"","sources":["../../../src/io/methods/toJson.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,QAAA,MAAM,MAAM,GAAI,OAAO,QAAQ,KAAG,CAAC,MAAM,QAAQ,EAAE,CAGlD,CAAA;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { TContext } from '../../types';
2
+ /**
3
+ * Crear referencia serializada
4
+ * @param flowJson - Array de objetos que se van a serializar.
5
+ * @returns Array de objetos serializados.
6
+ */
7
+ declare const toSerialize: (flowJson: TContext | TContext[] | Partial<TContext> | Partial<TContext>[]) => TContext[];
8
+ export { toSerialize };
9
+ //# sourceMappingURL=toSerialize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toSerialize.d.ts","sourceRoot":"","sources":["../../../src/io/methods/toSerialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAG3C;;;;GAIG;AACH,QAAA,MAAM,WAAW,GAAI,UAAU,QAAQ,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAG,QAAQ,EAaxG,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -0,0 +1,163 @@
1
+ import { type Polka } from 'polka';
2
+ import type { PolkaRes, ProviderHttpServer } from './server';
3
+ import { EventEmitterClass } from '../../core/eventEmitterClass';
4
+ import type { GlobalVendorArgs, BotCtxMiddlewareOptions, BotCtxMiddleware, ProviderEventTypes } from '../../types';
5
+ export type Vendor<T = {}> = {} & T;
6
+ /**
7
+ * Abstract class representing a ProviderClass.
8
+ * @abstract
9
+ * @extends EventEmitterClass
10
+ * @implements ProviderHttpServer
11
+ * @typeparam V - Type parameter for vendor.
12
+ */
13
+ declare abstract class ProviderClass<V = any> extends EventEmitterClass<ProviderEventTypes> implements ProviderHttpServer {
14
+ /**
15
+ * Global arguments for vendor.
16
+ * @abstract
17
+ * @type {GlobalVendorArgs}
18
+ */
19
+ abstract globalVendorArgs: GlobalVendorArgs;
20
+ /**
21
+ * Vendor instance.
22
+ * @type {Vendor<V>}
23
+ */
24
+ vendor: Vendor<V>;
25
+ /**
26
+ * HTTP server instance.
27
+ * @type {Polka}
28
+ */
29
+ server: Polka;
30
+ /**
31
+ * Bot name identifier.
32
+ * @type {string}
33
+ */
34
+ idBotName: string;
35
+ /**
36
+ * Context bot identifier.
37
+ * @type {string}
38
+ */
39
+ idCtxBot: string;
40
+ /**
41
+ * Constructs a ProviderClass instance.
42
+ */
43
+ constructor();
44
+ /**
45
+ * Abstract method to be executed before http initialization.
46
+ * @protected
47
+ * @abstract
48
+ */
49
+ protected abstract beforeHttpServerInit(): void;
50
+ /**
51
+ * Abstract method to be executed after http initialization.
52
+ * @protected
53
+ * @abstract
54
+ */
55
+ protected abstract afterHttpServerInit(): void;
56
+ /**
57
+ * Abstract method to define bus events.
58
+ * @protected
59
+ * @abstract
60
+ * @returns {Array<{ event: string | number | symbol; func: Function }>} Array of event definitions.
61
+ */
62
+ protected abstract busEvents(): Array<{
63
+ event: string | number | symbol;
64
+ func: Function;
65
+ }>;
66
+ /**
67
+ * Abstract method to initialize vendor.
68
+ * @protected
69
+ * @abstract
70
+ * @returns {Promise<any>} A promise indicating the completion of vendor initialization.
71
+ */
72
+ protected abstract initVendor(): Promise<any>;
73
+ /**
74
+ * Abstract method to send a message.
75
+ * @public
76
+ * @abstract
77
+ * @template K
78
+ * @param {string} userId - User identifier.
79
+ * @param {*} message - Message to be sent.
80
+ * @param {*} [args] - Additional arguments.
81
+ * @returns {Promise<K>} A promise resolving to the sent message.
82
+ */
83
+ abstract sendMessage<K = any>(userId: string, message: any, args?: any): Promise<K>;
84
+ /**
85
+ * Abstract method to save a file.
86
+ * @public
87
+ * @abstract
88
+ * @param {*} ctx - Context information.
89
+ * @param {{ path: string }} [options] - File save options.
90
+ * @returns {Promise<string>} A promise resolving to the path of the saved file.
91
+ */
92
+ abstract saveFile(ctx: any, options?: {
93
+ path: string;
94
+ }): Promise<string>;
95
+ /**
96
+ * Listen on vendor events.
97
+ * @protected
98
+ * @param {{ on: any, [key: string]: any }} vendor - Vendor instance.
99
+ * @returns {void}
100
+ */
101
+ protected listenOnEvents(vendor: Vendor<any>): void;
102
+ /**
103
+ * Start the HTTP server.
104
+ * @public
105
+ * @param {BotCtxMiddleware} vendor - Bot context middleware.
106
+ * @param {(arg?: any) => void} [cb=() => null] - Callback function.
107
+ * @returns {void}
108
+ */
109
+ start(vendor: BotCtxMiddleware, cb?: (arg?: any) => void): void;
110
+ /**
111
+ * Stop the HTTP server.
112
+ * @public
113
+ * @returns {Promise<void>} A promise indicating the completion of server shutdown.
114
+ */
115
+ stop(): Promise<void>;
116
+ /**
117
+ * Handle context middleware.
118
+ * @public
119
+ * @param {Function} ctxPolka - Context polka function.
120
+ * @returns {Function} Request handler function.
121
+ */
122
+ inHandleCtx<T extends Pick<ProviderClass<V>, 'sendMessage'> & {
123
+ provider: V;
124
+ }>(ctxPolka: (bot: T, req: Request, res: PolkaRes) => Promise<void>): (...args: any[]) => any;
125
+ /**
126
+ * Trigger send inside event
127
+ * @param payload
128
+ */
129
+ dispatchInside(payload: {
130
+ body: string;
131
+ name: string;
132
+ from: string;
133
+ }): void;
134
+ /**
135
+ * Get list of routes registered on the server.
136
+ * @public
137
+ * @param {Polka} app - Polka application instance.
138
+ * @returns {string[]} Array of route definitions.
139
+ */
140
+ getListRoutes(app: Polka): string[];
141
+ /**
142
+ * Build the HTTP server.
143
+ * @public
144
+ * @returns {Polka} Polka instance.
145
+ */
146
+ buildHTTPServer(): Polka;
147
+ /**
148
+ * Get instance of the vendor.
149
+ * @public
150
+ * @returns {Vendor} Vendor instance.
151
+ */
152
+ getInstance(): Vendor;
153
+ /**
154
+ * Initialize HTTP server and vendor.
155
+ * @public
156
+ * @param {number} port - Port number.
157
+ * @param {Pick<BotCtxMiddlewareOptions, 'blacklist'>} opts - Middleware options.
158
+ * @returns {void}
159
+ */
160
+ initAll: (port: number, opts: Pick<BotCtxMiddlewareOptions, "blacklist" | "state" | "globalState" | "emit" | "ctxMethods">) => void;
161
+ }
162
+ export { ProviderClass };
163
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/provider/interface/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import type { Polka } from 'polka';
2
+ import type { BotCtxMiddleware } from '../../types';
3
+ /**
4
+ * Interface representing a Provider HTTP Server.
5
+ */
6
+ export interface ProviderHttpServer {
7
+ /**
8
+ * Polka server instance.
9
+ */
10
+ server: Polka;
11
+ /**
12
+ * Starts the HTTP server.
13
+ * @param vendor Bot context middleware.
14
+ * @param port Optional port number. If not provided, defaults to the port specified in the 'port' property.
15
+ * @param args Additional arguments, such as botName.
16
+ * @param cb Callback function to be executed after the server starts.
17
+ */
18
+ start(vendor: BotCtxMiddleware, cb?: (arg?: any) => void): void;
19
+ /**
20
+ * Stops the HTTP server.
21
+ * @returns A Promise that resolves when the server is stopped.
22
+ */
23
+ stop(): Promise<void>;
24
+ /**
25
+ * Middleware function to handle context for incoming requests.
26
+ * @param ctxPolka Function to handle the context.
27
+ * @returns A function to be used as middleware.
28
+ */
29
+ inHandleCtx<T extends Pick<any, 'sendMessage'> & {
30
+ provider: any;
31
+ }>(ctxPolka: (bot: T | undefined, req: Request, res: PolkaRes) => Promise<void>): (...args: any[]) => any;
32
+ /**
33
+ * Retrieves a list of routes registered on the provided Polka instance.
34
+ * @param app Polka instance.
35
+ * @returns An array of route strings.
36
+ */
37
+ getListRoutes(app: Polka): string[];
38
+ /**
39
+ * Builds an instance of Polka HTTP server.
40
+ * @returns A Polka instance.
41
+ */
42
+ buildHTTPServer(): Polka;
43
+ }
44
+ /**
45
+ * Polka Response object interface.
46
+ */
47
+ export type PolkaRes = {
48
+ /**
49
+ * Writes the HTTP response header with the specified status code and headers.
50
+ * @param code HTTP status code.
51
+ * @param headers Object containing the headers.
52
+ */
53
+ writeHead(code: number, headers: any): void;
54
+ /**
55
+ * Ends the response process by sending the specified data.
56
+ * @param data Data to send as response body.
57
+ */
58
+ end(data: any | string): void;
59
+ };
60
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/provider/interface/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAElC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEnD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,MAAM,EAAE,KAAK,CAAA;IAEb;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAA;IAE/D;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAErB;;;;OAIG;IACH,WAAW,CAAC,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,GAAG;QAAE,QAAQ,EAAE,GAAG,CAAA;KAAE,EAC9D,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,GAC7E,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IAC1B;;;;OAIG;IACH,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,EAAE,CAAA;IAEnC;;;OAGG;IACH,eAAe,IAAI,KAAK,CAAA;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACnB;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI,CAAA;IAE3C;;;OAGG;IACH,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAAA;CAChC,CAAA"}
@@ -0,0 +1,19 @@
1
+ import type { ProviderEventTypes } from '../types';
2
+ import { ProviderClass } from './interface/provider';
3
+ declare class TestProvider extends ProviderClass {
4
+ protected afterHttpServerInit(): void;
5
+ globalVendorArgs: {
6
+ name: string;
7
+ };
8
+ protected beforeHttpServerInit(): void;
9
+ protected initVendor(): Promise<void>;
10
+ protected busEvents(): {
11
+ event: string;
12
+ func: Function;
13
+ }[];
14
+ saveFile(): Promise<string>;
15
+ delaySendMessage(milliseconds: number, eventName: keyof ProviderEventTypes, payload: any): Promise<void>;
16
+ sendMessage(userId: string, message: string): Promise<any>;
17
+ }
18
+ export { TestProvider };
19
+ //# sourceMappingURL=providerMock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerMock.d.ts","sourceRoot":"","sources":["../../src/provider/providerMock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,cAAM,YAAa,SAAQ,aAAa;IACpC,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAE9B,gBAAgB;;MAEtB;IAED,SAAS,CAAC,oBAAoB,IAAI,IAAI;cAEtB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAE3C,SAAS,CAAC,SAAS,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,EAAE;IAI7C,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAI3B,gBAAgB,CACzB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,kBAAkB,EACnC,OAAO,EAAE,GAAG,GACb,OAAO,CAAC,IAAI,CAAC;IAKH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;CAG1E;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}