@botonic/core 0.51.2 → 0.52.0-alpha.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 (50) hide show
  1. package/lib/cjs/models/bot-config.d.ts +24 -0
  2. package/lib/cjs/models/bot-config.js +10 -0
  3. package/lib/cjs/models/bot-config.js.map +1 -0
  4. package/lib/cjs/models/index.d.ts +1 -0
  5. package/lib/cjs/models/index.js +1 -0
  6. package/lib/cjs/models/index.js.map +1 -1
  7. package/lib/cjs/models/legacy-types.d.ts +0 -13
  8. package/lib/cjs/utils/bot-config.d.ts +3 -0
  9. package/lib/cjs/utils/bot-config.js +79 -0
  10. package/lib/cjs/utils/bot-config.js.map +1 -0
  11. package/lib/cjs/utils/check-providers.d.ts +8 -0
  12. package/lib/cjs/utils/check-providers.js +34 -0
  13. package/lib/cjs/utils/check-providers.js.map +1 -0
  14. package/lib/cjs/utils/functional.d.ts +10 -0
  15. package/lib/{esm/utils.js → cjs/utils/functional.js} +1 -32
  16. package/lib/cjs/utils/functional.js.map +1 -0
  17. package/lib/cjs/utils/index.d.ts +3 -0
  18. package/lib/cjs/utils/index.js +7 -0
  19. package/lib/cjs/utils/index.js.map +1 -0
  20. package/lib/esm/models/bot-config.d.ts +24 -0
  21. package/lib/esm/models/bot-config.js +10 -0
  22. package/lib/esm/models/bot-config.js.map +1 -0
  23. package/lib/esm/models/index.d.ts +1 -0
  24. package/lib/esm/models/index.js +1 -0
  25. package/lib/esm/models/index.js.map +1 -1
  26. package/lib/esm/models/legacy-types.d.ts +0 -13
  27. package/lib/esm/utils/bot-config.d.ts +3 -0
  28. package/lib/esm/utils/bot-config.js +79 -0
  29. package/lib/esm/utils/bot-config.js.map +1 -0
  30. package/lib/esm/utils/check-providers.d.ts +8 -0
  31. package/lib/esm/utils/check-providers.js +34 -0
  32. package/lib/esm/utils/check-providers.js.map +1 -0
  33. package/lib/esm/utils/functional.d.ts +10 -0
  34. package/lib/{cjs/utils.js → esm/utils/functional.js} +1 -32
  35. package/lib/esm/utils/functional.js.map +1 -0
  36. package/lib/esm/utils/index.d.ts +3 -0
  37. package/lib/esm/utils/index.js +7 -0
  38. package/lib/esm/utils/index.js.map +1 -0
  39. package/package.json +3 -2
  40. package/src/models/bot-config.ts +30 -0
  41. package/src/models/index.ts +1 -0
  42. package/src/models/legacy-types.ts +0 -17
  43. package/src/utils/bot-config.ts +124 -0
  44. package/src/utils/check-providers.ts +31 -0
  45. package/src/{utils.ts → utils/functional.ts} +0 -32
  46. package/src/utils/index.ts +3 -0
  47. package/lib/cjs/utils.d.ts +0 -18
  48. package/lib/cjs/utils.js.map +0 -1
  49. package/lib/esm/utils.d.ts +0 -18
  50. package/lib/esm/utils.js.map +0 -1
@@ -0,0 +1,24 @@
1
+ import type { core } from 'zod';
2
+ export interface BotConfigJSON {
3
+ tools: ToolConfigJSON[];
4
+ payloads: string[];
5
+ webviews: WebviewConfigJSON[];
6
+ variables?: VariableConfigJSON[];
7
+ }
8
+ export interface ToolConfigJSON {
9
+ name: string;
10
+ schema?: core.JSONSchema.JSONSchema;
11
+ description: string;
12
+ }
13
+ export interface WebviewConfigJSON {
14
+ name: string;
15
+ }
16
+ export declare enum VariableType {
17
+ String = "string",
18
+ Number = "number",
19
+ Boolean = "boolean"
20
+ }
21
+ export interface VariableConfigJSON {
22
+ key_path: string;
23
+ type: VariableType;
24
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VariableType = void 0;
4
+ var VariableType;
5
+ (function (VariableType) {
6
+ VariableType["String"] = "string";
7
+ VariableType["Number"] = "number";
8
+ VariableType["Boolean"] = "boolean";
9
+ })(VariableType || (exports.VariableType = VariableType = {}));
10
+ //# sourceMappingURL=bot-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-config.js","sourceRoot":"","sources":["../../../src/models/bot-config.ts"],"names":[],"mappings":";;;AAoBA,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,mCAAmB,CAAA;AACrB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB"}
@@ -1,4 +1,5 @@
1
1
  export * from './ai-agents';
2
+ export * from './bot-config';
2
3
  export * from './hubtype-analytics';
3
4
  export * from './knowledge-bases';
4
5
  export * from './legacy-types';
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./ai-agents"), exports);
5
+ tslib_1.__exportStar(require("./bot-config"), exports);
5
6
  tslib_1.__exportStar(require("./hubtype-analytics"), exports);
6
7
  tslib_1.__exportStar(require("./knowledge-bases"), exports);
7
8
  tslib_1.__exportStar(require("./legacy-types"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":";;;AAAA,sDAA2B;AAC3B,8DAAmC;AACnC,4DAAiC;AACjC,yDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":";;;AAAA,sDAA2B;AAC3B,uDAA4B;AAC5B,8DAAmC;AACnC,4DAAiC;AACjC,yDAA8B"}
@@ -327,17 +327,4 @@ export declare enum BotonicAction {
327
327
  DeleteUser = "delete_user",
328
328
  DiscardCase = "discard_case"
329
329
  }
330
- export interface BotConfigJSON {
331
- tools: ToolConfigJSON[];
332
- payloads: string[];
333
- webviews: WebviewConfigJSON[];
334
- }
335
- export interface ToolConfigJSON {
336
- name: string;
337
- schema?: any;
338
- description: string;
339
- }
340
- export interface WebviewConfigJSON {
341
- name: string;
342
- }
343
330
  export {};
@@ -0,0 +1,3 @@
1
+ import { type ZodType } from 'zod';
2
+ import { type VariableConfigJSON } from '../models/index';
3
+ export declare function getSessionVariables(extraDataSchema?: ZodType): VariableConfigJSON[];
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSessionVariables = getSessionVariables;
4
+ const zod_1 = require("zod");
5
+ const index_1 = require("../models/index");
6
+ const SESSION_USER_EXTRA_DATA_PREFIX = 'session.user.extra_data';
7
+ const BASE_SESSION_VARIABLES = [
8
+ { key_path: 'input.data', type: index_1.VariableType.String },
9
+ { key_path: 'input.type', type: index_1.VariableType.String },
10
+ { key_path: 'session.user.locale', type: index_1.VariableType.String },
11
+ {
12
+ key_path: 'session.user.country',
13
+ type: index_1.VariableType.String,
14
+ },
15
+ { key_path: 'session.user.system_locale', type: index_1.VariableType.String },
16
+ ];
17
+ function getSessionVariables(extraDataSchema) {
18
+ const variables = [...BASE_SESSION_VARIABLES];
19
+ if (extraDataSchema) {
20
+ variables.push(...getSessionVariablesFromZodSchema(extraDataSchema));
21
+ }
22
+ return variables;
23
+ }
24
+ function getSessionVariablesFromZodSchema(schema) {
25
+ const jsonSchema = zod_1.z.toJSONSchema(schema);
26
+ if (!jsonSchema.properties) {
27
+ return [];
28
+ }
29
+ return Object.entries(jsonSchema.properties).flatMap(([key, propertySchema]) => getSessionVariablesFromJsonSchema(propertySchema, `${SESSION_USER_EXTRA_DATA_PREFIX}.${key}`));
30
+ }
31
+ function getSessionVariablesFromJsonSchema(schema, keyPath) {
32
+ const type = getJsonSchemaType(schema);
33
+ // TODO:Arrays are not supported yet. Review in the future, how to handle them
34
+ // in the frontend feature-flow-builder and in the plugin-flow-builder.
35
+ if (type === 'array') {
36
+ return [];
37
+ }
38
+ if (type === 'object' && schema.properties) {
39
+ return Object.entries(schema.properties).flatMap(([key, propertySchema]) => getSessionVariablesFromJsonSchema(propertySchema, `${keyPath}.${key}`));
40
+ }
41
+ const variableType = getVariableTypeFromJsonSchema(schema);
42
+ if (!variableType) {
43
+ return [];
44
+ }
45
+ return [{ key_path: keyPath, type: variableType }];
46
+ }
47
+ function getJsonSchemaType(schema) {
48
+ const resolved = resolveJsonSchemaNode(schema);
49
+ const { type } = resolved;
50
+ if (Array.isArray(type)) {
51
+ return type.find(candidate => candidate !== 'null');
52
+ }
53
+ return type;
54
+ }
55
+ function getVariableTypeFromJsonSchema(schema) {
56
+ const resolved = resolveJsonSchemaNode(schema);
57
+ const type = getJsonSchemaType(resolved);
58
+ // enum is transformed to string. Review in the future, how to handle them
59
+ if (type === 'string' || resolved.enum !== undefined) {
60
+ return index_1.VariableType.String;
61
+ }
62
+ if (type === 'number' || type === 'integer') {
63
+ return index_1.VariableType.Number;
64
+ }
65
+ if (type === 'boolean') {
66
+ return index_1.VariableType.Boolean;
67
+ }
68
+ return undefined;
69
+ }
70
+ function resolveJsonSchemaNode(schema) {
71
+ if (schema.anyOf?.length) {
72
+ const nonNullSchema = schema.anyOf.find(candidate => candidate.type !== 'null');
73
+ if (nonNullSchema) {
74
+ return resolveJsonSchemaNode(nonNullSchema);
75
+ }
76
+ }
77
+ return schema;
78
+ }
79
+ //# sourceMappingURL=bot-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-config.js","sourceRoot":"","sources":["../../../src/utils/bot-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type Session } from '../models/legacy-types';
2
+ export declare function isDev(session: Session): boolean;
3
+ export declare function isWebchat(session: Session): boolean;
4
+ export declare function isWhatsapp(session: Session): boolean;
5
+ export declare function isTelegram(session: Session): boolean;
6
+ export declare function isFacebook(session: Session): boolean;
7
+ export declare function isInstagram(session: Session): boolean;
8
+ export declare function isTwitter(session: Session): boolean;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isDev = isDev;
4
+ exports.isWebchat = isWebchat;
5
+ exports.isWhatsapp = isWhatsapp;
6
+ exports.isTelegram = isTelegram;
7
+ exports.isFacebook = isFacebook;
8
+ exports.isInstagram = isInstagram;
9
+ exports.isTwitter = isTwitter;
10
+ const legacy_types_1 = require("../models/legacy-types");
11
+ // To check Provider in session
12
+ function isDev(session) {
13
+ return session.user.provider === legacy_types_1.PROVIDER.DEV;
14
+ }
15
+ function isWebchat(session) {
16
+ // When the provider is DEV should we return true because it is a webchat?
17
+ return session.user.provider === legacy_types_1.PROVIDER.WEBCHAT;
18
+ }
19
+ function isWhatsapp(session) {
20
+ return session.user.provider === legacy_types_1.PROVIDER.WHATSAPP;
21
+ }
22
+ function isTelegram(session) {
23
+ return session.user.provider === legacy_types_1.PROVIDER.TELEGRAM;
24
+ }
25
+ function isFacebook(session) {
26
+ return session.user.provider === legacy_types_1.PROVIDER.FACEBOOK;
27
+ }
28
+ function isInstagram(session) {
29
+ return session.user.provider === legacy_types_1.PROVIDER.INSTAGRAM;
30
+ }
31
+ function isTwitter(session) {
32
+ return session.user.provider === legacy_types_1.PROVIDER.TWITTER;
33
+ }
34
+ //# sourceMappingURL=check-providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-providers.js","sourceRoot":"","sources":["../../../src/utils/check-providers.ts"],"names":[],"mappings":";;AAGA,sBAEC;AAED,8BAGC;AAED,gCAEC;AAED,gCAEC;AAED,gCAEC;AAED,kCAEC;AAED,8BAEC;AA9BD,yDAA+D;AAE/D,+BAA+B;AAC/B,SAAgB,KAAK,CAAC,OAAgB;IACpC,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,uBAAQ,CAAC,GAAG,CAAA;AAC/C,CAAC;AAED,SAAgB,SAAS,CAAC,OAAgB;IACxC,0EAA0E;IAC1E,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,uBAAQ,CAAC,OAAO,CAAA;AACnD,CAAC;AAED,SAAgB,UAAU,CAAC,OAAgB;IACzC,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,uBAAQ,CAAC,QAAQ,CAAA;AACpD,CAAC;AAED,SAAgB,UAAU,CAAC,OAAgB;IACzC,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,uBAAQ,CAAC,QAAQ,CAAA;AACpD,CAAC;AAED,SAAgB,UAAU,CAAC,OAAgB;IACzC,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,uBAAQ,CAAC,QAAQ,CAAA;AACpD,CAAC;AAED,SAAgB,WAAW,CAAC,OAAgB;IAC1C,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,uBAAQ,CAAC,SAAS,CAAA;AACrD,CAAC;AAED,SAAgB,SAAS,CAAC,OAAgB;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,uBAAQ,CAAC,OAAO,CAAA;AACnD,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare const isNode: () => boolean;
2
+ export declare const isBrowser: () => boolean;
3
+ export declare const isMobile: (mobileBreakpoint?: number) => boolean;
4
+ export declare function isFunction(o: any): boolean;
5
+ export declare function cloneObject(object: any): any;
6
+ export declare const params2queryString: (params: {
7
+ [key: string]: string;
8
+ }) => string;
9
+ export declare const join: (...segments: string[]) => string;
10
+ export declare const dirname: (path: string) => string;
@@ -3,14 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.dirname = exports.join = exports.params2queryString = exports.isMobile = exports.isBrowser = exports.isNode = void 0;
4
4
  exports.isFunction = isFunction;
5
5
  exports.cloneObject = cloneObject;
6
- exports.isDev = isDev;
7
- exports.isWebchat = isWebchat;
8
- exports.isWhatsapp = isWhatsapp;
9
- exports.isTelegram = isTelegram;
10
- exports.isFacebook = isFacebook;
11
- exports.isInstagram = isInstagram;
12
- exports.isTwitter = isTwitter;
13
- const legacy_types_1 = require("./models/legacy-types");
14
6
  const isNode = () => {
15
7
  // @ts-expect-error
16
8
  return typeof IS_NODE !== 'undefined'
@@ -93,27 +85,4 @@ exports.join = join;
93
85
  // Trailing slashes are ignored. Leading slash is preserved.
94
86
  const dirname = (path) => (0, exports.join)(path, '..');
95
87
  exports.dirname = dirname;
96
- // To check Provider in session
97
- function isDev(session) {
98
- return session.user.provider === legacy_types_1.PROVIDER.DEV;
99
- }
100
- function isWebchat(session) {
101
- // When the provider is DEV should we return true because it is a webchat?
102
- return session.user.provider === legacy_types_1.PROVIDER.WEBCHAT;
103
- }
104
- function isWhatsapp(session) {
105
- return session.user.provider === legacy_types_1.PROVIDER.WHATSAPP;
106
- }
107
- function isTelegram(session) {
108
- return session.user.provider === legacy_types_1.PROVIDER.TELEGRAM;
109
- }
110
- function isFacebook(session) {
111
- return session.user.provider === legacy_types_1.PROVIDER.FACEBOOK;
112
- }
113
- function isInstagram(session) {
114
- return session.user.provider === legacy_types_1.PROVIDER.INSTAGRAM;
115
- }
116
- function isTwitter(session) {
117
- return session.user.provider === legacy_types_1.PROVIDER.TWITTER;
118
- }
119
- //# sourceMappingURL=utils.js.map
88
+ //# sourceMappingURL=functional.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functional.js","sourceRoot":"","sources":["../../../src/utils/functional.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './bot-config';
2
+ export * from './check-providers';
3
+ export * from './functional';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./bot-config"), exports);
5
+ tslib_1.__exportStar(require("./check-providers"), exports);
6
+ tslib_1.__exportStar(require("./functional"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,uDAA4B;AAC5B,4DAAiC;AACjC,uDAA4B"}
@@ -0,0 +1,24 @@
1
+ import type { core } from 'zod';
2
+ export interface BotConfigJSON {
3
+ tools: ToolConfigJSON[];
4
+ payloads: string[];
5
+ webviews: WebviewConfigJSON[];
6
+ variables?: VariableConfigJSON[];
7
+ }
8
+ export interface ToolConfigJSON {
9
+ name: string;
10
+ schema?: core.JSONSchema.JSONSchema;
11
+ description: string;
12
+ }
13
+ export interface WebviewConfigJSON {
14
+ name: string;
15
+ }
16
+ export declare enum VariableType {
17
+ String = "string",
18
+ Number = "number",
19
+ Boolean = "boolean"
20
+ }
21
+ export interface VariableConfigJSON {
22
+ key_path: string;
23
+ type: VariableType;
24
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VariableType = void 0;
4
+ var VariableType;
5
+ (function (VariableType) {
6
+ VariableType["String"] = "string";
7
+ VariableType["Number"] = "number";
8
+ VariableType["Boolean"] = "boolean";
9
+ })(VariableType || (exports.VariableType = VariableType = {}));
10
+ //# sourceMappingURL=bot-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-config.js","sourceRoot":"","sources":["../../../src/models/bot-config.ts"],"names":[],"mappings":";;;AAoBA,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,mCAAmB,CAAA;AACrB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB"}
@@ -1,4 +1,5 @@
1
1
  export * from './ai-agents';
2
+ export * from './bot-config';
2
3
  export * from './hubtype-analytics';
3
4
  export * from './knowledge-bases';
4
5
  export * from './legacy-types';
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./ai-agents"), exports);
5
+ tslib_1.__exportStar(require("./bot-config"), exports);
5
6
  tslib_1.__exportStar(require("./hubtype-analytics"), exports);
6
7
  tslib_1.__exportStar(require("./knowledge-bases"), exports);
7
8
  tslib_1.__exportStar(require("./legacy-types"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":";;;AAAA,sDAA2B;AAC3B,8DAAmC;AACnC,4DAAiC;AACjC,yDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":";;;AAAA,sDAA2B;AAC3B,uDAA4B;AAC5B,8DAAmC;AACnC,4DAAiC;AACjC,yDAA8B"}
@@ -327,17 +327,4 @@ export declare enum BotonicAction {
327
327
  DeleteUser = "delete_user",
328
328
  DiscardCase = "discard_case"
329
329
  }
330
- export interface BotConfigJSON {
331
- tools: ToolConfigJSON[];
332
- payloads: string[];
333
- webviews: WebviewConfigJSON[];
334
- }
335
- export interface ToolConfigJSON {
336
- name: string;
337
- schema?: any;
338
- description: string;
339
- }
340
- export interface WebviewConfigJSON {
341
- name: string;
342
- }
343
330
  export {};
@@ -0,0 +1,3 @@
1
+ import { type ZodType } from 'zod';
2
+ import { type VariableConfigJSON } from '../models/index';
3
+ export declare function getSessionVariables(extraDataSchema?: ZodType): VariableConfigJSON[];
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSessionVariables = getSessionVariables;
4
+ const zod_1 = require("zod");
5
+ const index_1 = require("../models/index");
6
+ const SESSION_USER_EXTRA_DATA_PREFIX = 'session.user.extra_data';
7
+ const BASE_SESSION_VARIABLES = [
8
+ { key_path: 'input.data', type: index_1.VariableType.String },
9
+ { key_path: 'input.type', type: index_1.VariableType.String },
10
+ { key_path: 'session.user.locale', type: index_1.VariableType.String },
11
+ {
12
+ key_path: 'session.user.country',
13
+ type: index_1.VariableType.String,
14
+ },
15
+ { key_path: 'session.user.system_locale', type: index_1.VariableType.String },
16
+ ];
17
+ function getSessionVariables(extraDataSchema) {
18
+ const variables = [...BASE_SESSION_VARIABLES];
19
+ if (extraDataSchema) {
20
+ variables.push(...getSessionVariablesFromZodSchema(extraDataSchema));
21
+ }
22
+ return variables;
23
+ }
24
+ function getSessionVariablesFromZodSchema(schema) {
25
+ const jsonSchema = zod_1.z.toJSONSchema(schema);
26
+ if (!jsonSchema.properties) {
27
+ return [];
28
+ }
29
+ return Object.entries(jsonSchema.properties).flatMap(([key, propertySchema]) => getSessionVariablesFromJsonSchema(propertySchema, `${SESSION_USER_EXTRA_DATA_PREFIX}.${key}`));
30
+ }
31
+ function getSessionVariablesFromJsonSchema(schema, keyPath) {
32
+ const type = getJsonSchemaType(schema);
33
+ // TODO:Arrays are not supported yet. Review in the future, how to handle them
34
+ // in the frontend feature-flow-builder and in the plugin-flow-builder.
35
+ if (type === 'array') {
36
+ return [];
37
+ }
38
+ if (type === 'object' && schema.properties) {
39
+ return Object.entries(schema.properties).flatMap(([key, propertySchema]) => getSessionVariablesFromJsonSchema(propertySchema, `${keyPath}.${key}`));
40
+ }
41
+ const variableType = getVariableTypeFromJsonSchema(schema);
42
+ if (!variableType) {
43
+ return [];
44
+ }
45
+ return [{ key_path: keyPath, type: variableType }];
46
+ }
47
+ function getJsonSchemaType(schema) {
48
+ const resolved = resolveJsonSchemaNode(schema);
49
+ const { type } = resolved;
50
+ if (Array.isArray(type)) {
51
+ return type.find(candidate => candidate !== 'null');
52
+ }
53
+ return type;
54
+ }
55
+ function getVariableTypeFromJsonSchema(schema) {
56
+ const resolved = resolveJsonSchemaNode(schema);
57
+ const type = getJsonSchemaType(resolved);
58
+ // enum is transformed to string. Review in the future, how to handle them
59
+ if (type === 'string' || resolved.enum !== undefined) {
60
+ return index_1.VariableType.String;
61
+ }
62
+ if (type === 'number' || type === 'integer') {
63
+ return index_1.VariableType.Number;
64
+ }
65
+ if (type === 'boolean') {
66
+ return index_1.VariableType.Boolean;
67
+ }
68
+ return undefined;
69
+ }
70
+ function resolveJsonSchemaNode(schema) {
71
+ if (schema.anyOf?.length) {
72
+ const nonNullSchema = schema.anyOf.find(candidate => candidate.type !== 'null');
73
+ if (nonNullSchema) {
74
+ return resolveJsonSchemaNode(nonNullSchema);
75
+ }
76
+ }
77
+ return schema;
78
+ }
79
+ //# sourceMappingURL=bot-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-config.js","sourceRoot":"","sources":["../../../src/utils/bot-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type Session } from '../models/legacy-types';
2
+ export declare function isDev(session: Session): boolean;
3
+ export declare function isWebchat(session: Session): boolean;
4
+ export declare function isWhatsapp(session: Session): boolean;
5
+ export declare function isTelegram(session: Session): boolean;
6
+ export declare function isFacebook(session: Session): boolean;
7
+ export declare function isInstagram(session: Session): boolean;
8
+ export declare function isTwitter(session: Session): boolean;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isDev = isDev;
4
+ exports.isWebchat = isWebchat;
5
+ exports.isWhatsapp = isWhatsapp;
6
+ exports.isTelegram = isTelegram;
7
+ exports.isFacebook = isFacebook;
8
+ exports.isInstagram = isInstagram;
9
+ exports.isTwitter = isTwitter;
10
+ const legacy_types_1 = require("../models/legacy-types");
11
+ // To check Provider in session
12
+ function isDev(session) {
13
+ return session.user.provider === legacy_types_1.PROVIDER.DEV;
14
+ }
15
+ function isWebchat(session) {
16
+ // When the provider is DEV should we return true because it is a webchat?
17
+ return session.user.provider === legacy_types_1.PROVIDER.WEBCHAT;
18
+ }
19
+ function isWhatsapp(session) {
20
+ return session.user.provider === legacy_types_1.PROVIDER.WHATSAPP;
21
+ }
22
+ function isTelegram(session) {
23
+ return session.user.provider === legacy_types_1.PROVIDER.TELEGRAM;
24
+ }
25
+ function isFacebook(session) {
26
+ return session.user.provider === legacy_types_1.PROVIDER.FACEBOOK;
27
+ }
28
+ function isInstagram(session) {
29
+ return session.user.provider === legacy_types_1.PROVIDER.INSTAGRAM;
30
+ }
31
+ function isTwitter(session) {
32
+ return session.user.provider === legacy_types_1.PROVIDER.TWITTER;
33
+ }
34
+ //# sourceMappingURL=check-providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-providers.js","sourceRoot":"","sources":["../../../src/utils/check-providers.ts"],"names":[],"mappings":";;AAGA,sBAEC;AAED,8BAGC;AAED,gCAEC;AAED,gCAEC;AAED,gCAEC;AAED,kCAEC;AAED,8BAEC;AA9BD,yDAA+D;AAE/D,+BAA+B;AAC/B,SAAgB,KAAK,CAAC,OAAgB;IACpC,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,uBAAQ,CAAC,GAAG,CAAA;AAC/C,CAAC;AAED,SAAgB,SAAS,CAAC,OAAgB;IACxC,0EAA0E;IAC1E,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,uBAAQ,CAAC,OAAO,CAAA;AACnD,CAAC;AAED,SAAgB,UAAU,CAAC,OAAgB;IACzC,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,uBAAQ,CAAC,QAAQ,CAAA;AACpD,CAAC;AAED,SAAgB,UAAU,CAAC,OAAgB;IACzC,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,uBAAQ,CAAC,QAAQ,CAAA;AACpD,CAAC;AAED,SAAgB,UAAU,CAAC,OAAgB;IACzC,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,uBAAQ,CAAC,QAAQ,CAAA;AACpD,CAAC;AAED,SAAgB,WAAW,CAAC,OAAgB;IAC1C,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,uBAAQ,CAAC,SAAS,CAAA;AACrD,CAAC;AAED,SAAgB,SAAS,CAAC,OAAgB;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,uBAAQ,CAAC,OAAO,CAAA;AACnD,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare const isNode: () => boolean;
2
+ export declare const isBrowser: () => boolean;
3
+ export declare const isMobile: (mobileBreakpoint?: number) => boolean;
4
+ export declare function isFunction(o: any): boolean;
5
+ export declare function cloneObject(object: any): any;
6
+ export declare const params2queryString: (params: {
7
+ [key: string]: string;
8
+ }) => string;
9
+ export declare const join: (...segments: string[]) => string;
10
+ export declare const dirname: (path: string) => string;
@@ -3,14 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.dirname = exports.join = exports.params2queryString = exports.isMobile = exports.isBrowser = exports.isNode = void 0;
4
4
  exports.isFunction = isFunction;
5
5
  exports.cloneObject = cloneObject;
6
- exports.isDev = isDev;
7
- exports.isWebchat = isWebchat;
8
- exports.isWhatsapp = isWhatsapp;
9
- exports.isTelegram = isTelegram;
10
- exports.isFacebook = isFacebook;
11
- exports.isInstagram = isInstagram;
12
- exports.isTwitter = isTwitter;
13
- const legacy_types_1 = require("./models/legacy-types");
14
6
  const isNode = () => {
15
7
  // @ts-expect-error
16
8
  return typeof IS_NODE !== 'undefined'
@@ -93,27 +85,4 @@ exports.join = join;
93
85
  // Trailing slashes are ignored. Leading slash is preserved.
94
86
  const dirname = (path) => (0, exports.join)(path, '..');
95
87
  exports.dirname = dirname;
96
- // To check Provider in session
97
- function isDev(session) {
98
- return session.user.provider === legacy_types_1.PROVIDER.DEV;
99
- }
100
- function isWebchat(session) {
101
- // When the provider is DEV should we return true because it is a webchat?
102
- return session.user.provider === legacy_types_1.PROVIDER.WEBCHAT;
103
- }
104
- function isWhatsapp(session) {
105
- return session.user.provider === legacy_types_1.PROVIDER.WHATSAPP;
106
- }
107
- function isTelegram(session) {
108
- return session.user.provider === legacy_types_1.PROVIDER.TELEGRAM;
109
- }
110
- function isFacebook(session) {
111
- return session.user.provider === legacy_types_1.PROVIDER.FACEBOOK;
112
- }
113
- function isInstagram(session) {
114
- return session.user.provider === legacy_types_1.PROVIDER.INSTAGRAM;
115
- }
116
- function isTwitter(session) {
117
- return session.user.provider === legacy_types_1.PROVIDER.TWITTER;
118
- }
119
- //# sourceMappingURL=utils.js.map
88
+ //# sourceMappingURL=functional.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functional.js","sourceRoot":"","sources":["../../../src/utils/functional.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './bot-config';
2
+ export * from './check-providers';
3
+ export * from './functional';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./bot-config"), exports);
5
+ tslib_1.__exportStar(require("./check-providers"), exports);
6
+ tslib_1.__exportStar(require("./functional"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,uDAA4B;AAC5B,4DAAiC;AACjC,uDAA4B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@botonic/core",
3
- "version": "0.51.2",
3
+ "version": "0.52.0-alpha.0",
4
4
  "license": "MIT",
5
5
  "description": "Build Chatbots using React",
6
6
  "main": "./lib/cjs/index.js",
@@ -51,7 +51,8 @@
51
51
  "axios": "^1.15.2",
52
52
  "pako": "^2.1.0",
53
53
  "process": "^0.11.10",
54
- "pusher-js": "^5.1.1"
54
+ "pusher-js": "^5.1.1",
55
+ "zod": "^4.4.3"
55
56
  },
56
57
  "devDependencies": {
57
58
  "@types/pako": "^1.0.2",
@@ -0,0 +1,30 @@
1
+ import type { core } from 'zod'
2
+
3
+ // This types are used in the bot-config.ts file to load the bot config when deploy a bot.
4
+ export interface BotConfigJSON {
5
+ tools: ToolConfigJSON[]
6
+ payloads: string[]
7
+ webviews: WebviewConfigJSON[]
8
+ variables?: VariableConfigJSON[]
9
+ }
10
+
11
+ export interface ToolConfigJSON {
12
+ name: string
13
+ schema?: core.JSONSchema.JSONSchema
14
+ description: string
15
+ }
16
+
17
+ export interface WebviewConfigJSON {
18
+ name: string
19
+ }
20
+
21
+ export enum VariableType {
22
+ String = 'string',
23
+ Number = 'number',
24
+ Boolean = 'boolean',
25
+ }
26
+
27
+ export interface VariableConfigJSON {
28
+ key_path: string
29
+ type: VariableType
30
+ }
@@ -1,4 +1,5 @@
1
1
  export * from './ai-agents'
2
+ export * from './bot-config'
2
3
  export * from './hubtype-analytics'
3
4
  export * from './knowledge-bases'
4
5
  export * from './legacy-types'
@@ -458,20 +458,3 @@ export enum BotonicAction {
458
458
  DeleteUser = 'delete_user',
459
459
  DiscardCase = 'discard_case',
460
460
  }
461
-
462
- // This types are used in the bot-config.ts file to load the bot config when deploy a bot.
463
- export interface BotConfigJSON {
464
- tools: ToolConfigJSON[]
465
- payloads: string[]
466
- webviews: WebviewConfigJSON[]
467
- }
468
-
469
- export interface ToolConfigJSON {
470
- name: string
471
- schema?: any
472
- description: string
473
- }
474
-
475
- export interface WebviewConfigJSON {
476
- name: string
477
- }
@@ -0,0 +1,124 @@
1
+ import { type ZodType, z } from 'zod'
2
+ import { type VariableConfigJSON, VariableType } from '../models/index'
3
+
4
+ const SESSION_USER_EXTRA_DATA_PREFIX = 'session.user.extra_data'
5
+
6
+ const BASE_SESSION_VARIABLES: VariableConfigJSON[] = [
7
+ { key_path: 'input.data', type: VariableType.String },
8
+ { key_path: 'input.type', type: VariableType.String },
9
+ { key_path: 'session.user.locale', type: VariableType.String },
10
+ {
11
+ key_path: 'session.user.country',
12
+ type: VariableType.String,
13
+ },
14
+ { key_path: 'session.user.system_locale', type: VariableType.String },
15
+ ]
16
+
17
+ export function getSessionVariables(
18
+ extraDataSchema?: ZodType
19
+ ): VariableConfigJSON[] {
20
+ const variables = [...BASE_SESSION_VARIABLES]
21
+
22
+ if (extraDataSchema) {
23
+ variables.push(...getSessionVariablesFromZodSchema(extraDataSchema))
24
+ }
25
+
26
+ return variables
27
+ }
28
+
29
+ function getSessionVariablesFromZodSchema(
30
+ schema: ZodType
31
+ ): VariableConfigJSON[] {
32
+ const jsonSchema = z.toJSONSchema(schema) as JsonSchemaNode
33
+
34
+ if (!jsonSchema.properties) {
35
+ return []
36
+ }
37
+
38
+ return Object.entries(jsonSchema.properties).flatMap(
39
+ ([key, propertySchema]) =>
40
+ getSessionVariablesFromJsonSchema(
41
+ propertySchema,
42
+ `${SESSION_USER_EXTRA_DATA_PREFIX}.${key}`
43
+ )
44
+ )
45
+ }
46
+
47
+ function getSessionVariablesFromJsonSchema(
48
+ schema: JsonSchemaNode,
49
+ keyPath: string
50
+ ): VariableConfigJSON[] {
51
+ const type = getJsonSchemaType(schema)
52
+
53
+ // TODO:Arrays are not supported yet. Review in the future, how to handle them
54
+ // in the frontend feature-flow-builder and in the plugin-flow-builder.
55
+ if (type === 'array') {
56
+ return []
57
+ }
58
+
59
+ if (type === 'object' && schema.properties) {
60
+ return Object.entries(schema.properties).flatMap(([key, propertySchema]) =>
61
+ getSessionVariablesFromJsonSchema(propertySchema, `${keyPath}.${key}`)
62
+ )
63
+ }
64
+
65
+ const variableType = getVariableTypeFromJsonSchema(schema)
66
+ if (!variableType) {
67
+ return []
68
+ }
69
+
70
+ return [{ key_path: keyPath, type: variableType }]
71
+ }
72
+
73
+ function getJsonSchemaType(schema: JsonSchemaNode): string | undefined {
74
+ const resolved = resolveJsonSchemaNode(schema)
75
+ const { type } = resolved
76
+
77
+ if (Array.isArray(type)) {
78
+ return type.find(candidate => candidate !== 'null')
79
+ }
80
+
81
+ return type
82
+ }
83
+
84
+ function getVariableTypeFromJsonSchema(
85
+ schema: JsonSchemaNode
86
+ ): VariableType | undefined {
87
+ const resolved = resolveJsonSchemaNode(schema)
88
+ const type = getJsonSchemaType(resolved)
89
+
90
+ // enum is transformed to string. Review in the future, how to handle them
91
+ if (type === 'string' || resolved.enum !== undefined) {
92
+ return VariableType.String
93
+ }
94
+
95
+ if (type === 'number' || type === 'integer') {
96
+ return VariableType.Number
97
+ }
98
+
99
+ if (type === 'boolean') {
100
+ return VariableType.Boolean
101
+ }
102
+
103
+ return undefined
104
+ }
105
+
106
+ type JsonSchemaNode = {
107
+ type?: string | string[]
108
+ enum?: unknown[]
109
+ properties?: Record<string, JsonSchemaNode>
110
+ anyOf?: JsonSchemaNode[]
111
+ }
112
+
113
+ function resolveJsonSchemaNode(schema: JsonSchemaNode): JsonSchemaNode {
114
+ if (schema.anyOf?.length) {
115
+ const nonNullSchema = schema.anyOf.find(
116
+ candidate => candidate.type !== 'null'
117
+ )
118
+ if (nonNullSchema) {
119
+ return resolveJsonSchemaNode(nonNullSchema)
120
+ }
121
+ }
122
+
123
+ return schema
124
+ }
@@ -0,0 +1,31 @@
1
+ import { PROVIDER, type Session } from '../models/legacy-types'
2
+
3
+ // To check Provider in session
4
+ export function isDev(session: Session) {
5
+ return session.user.provider === PROVIDER.DEV
6
+ }
7
+
8
+ export function isWebchat(session: Session) {
9
+ // When the provider is DEV should we return true because it is a webchat?
10
+ return session.user.provider === PROVIDER.WEBCHAT
11
+ }
12
+
13
+ export function isWhatsapp(session: Session) {
14
+ return session.user.provider === PROVIDER.WHATSAPP
15
+ }
16
+
17
+ export function isTelegram(session: Session) {
18
+ return session.user.provider === PROVIDER.TELEGRAM
19
+ }
20
+
21
+ export function isFacebook(session: Session) {
22
+ return session.user.provider === PROVIDER.FACEBOOK
23
+ }
24
+
25
+ export function isInstagram(session: Session) {
26
+ return session.user.provider === PROVIDER.INSTAGRAM
27
+ }
28
+
29
+ export function isTwitter(session: Session) {
30
+ return session.user.provider === PROVIDER.TWITTER
31
+ }
@@ -1,5 +1,3 @@
1
- import { PROVIDER, type Session } from './models/legacy-types'
2
-
3
1
  export const isNode = (): boolean => {
4
2
  // @ts-expect-error
5
3
  return typeof IS_NODE !== 'undefined'
@@ -87,33 +85,3 @@ export const join = (...segments: string[]): string => {
87
85
  // A simple function to get the dirname of a path
88
86
  // Trailing slashes are ignored. Leading slash is preserved.
89
87
  export const dirname = (path: string): string => join(path, '..')
90
-
91
- // To check Provider in session
92
- export function isDev(session: Session) {
93
- return session.user.provider === PROVIDER.DEV
94
- }
95
-
96
- export function isWebchat(session: Session) {
97
- // When the provider is DEV should we return true because it is a webchat?
98
- return session.user.provider === PROVIDER.WEBCHAT
99
- }
100
-
101
- export function isWhatsapp(session: Session) {
102
- return session.user.provider === PROVIDER.WHATSAPP
103
- }
104
-
105
- export function isTelegram(session: Session) {
106
- return session.user.provider === PROVIDER.TELEGRAM
107
- }
108
-
109
- export function isFacebook(session: Session) {
110
- return session.user.provider === PROVIDER.FACEBOOK
111
- }
112
-
113
- export function isInstagram(session: Session) {
114
- return session.user.provider === PROVIDER.INSTAGRAM
115
- }
116
-
117
- export function isTwitter(session: Session) {
118
- return session.user.provider === PROVIDER.TWITTER
119
- }
@@ -0,0 +1,3 @@
1
+ export * from './bot-config'
2
+ export * from './check-providers'
3
+ export * from './functional'
@@ -1,18 +0,0 @@
1
- import { type Session } from './models/legacy-types';
2
- export declare const isNode: () => boolean;
3
- export declare const isBrowser: () => boolean;
4
- export declare const isMobile: (mobileBreakpoint?: number) => boolean;
5
- export declare function isFunction(o: any): boolean;
6
- export declare function cloneObject(object: any): any;
7
- export declare const params2queryString: (params: {
8
- [key: string]: string;
9
- }) => string;
10
- export declare const join: (...segments: string[]) => string;
11
- export declare const dirname: (path: string) => string;
12
- export declare function isDev(session: Session): boolean;
13
- export declare function isWebchat(session: Session): boolean;
14
- export declare function isWhatsapp(session: Session): boolean;
15
- export declare function isTelegram(session: Session): boolean;
16
- export declare function isFacebook(session: Session): boolean;
17
- export declare function isInstagram(session: Session): boolean;
18
- export declare function isTwitter(session: Session): boolean;
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import { type Session } from './models/legacy-types';
2
- export declare const isNode: () => boolean;
3
- export declare const isBrowser: () => boolean;
4
- export declare const isMobile: (mobileBreakpoint?: number) => boolean;
5
- export declare function isFunction(o: any): boolean;
6
- export declare function cloneObject(object: any): any;
7
- export declare const params2queryString: (params: {
8
- [key: string]: string;
9
- }) => string;
10
- export declare const join: (...segments: string[]) => string;
11
- export declare const dirname: (path: string) => string;
12
- export declare function isDev(session: Session): boolean;
13
- export declare function isWebchat(session: Session): boolean;
14
- export declare function isWhatsapp(session: Session): boolean;
15
- export declare function isTelegram(session: Session): boolean;
16
- export declare function isFacebook(session: Session): boolean;
17
- export declare function isInstagram(session: Session): boolean;
18
- export declare function isTwitter(session: Session): boolean;
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}