@botonic/core 0.55.1 → 0.57.0-rslib-esm.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 (131) hide show
  1. package/lib/esm/constants.js +7 -7
  2. package/lib/esm/constants.js.map +1 -1
  3. package/lib/esm/core-bot.d.ts +3 -3
  4. package/lib/esm/core-bot.js +87 -50
  5. package/lib/esm/core-bot.js.map +1 -1
  6. package/lib/esm/debug/index.d.ts +1 -1
  7. package/lib/esm/debug/index.js +5 -4
  8. package/lib/esm/debug/index.js.map +1 -1
  9. package/lib/esm/debug/inspector.d.ts +1 -1
  10. package/lib/esm/debug/inspector.js +27 -21
  11. package/lib/esm/debug/inspector.js.map +1 -1
  12. package/lib/esm/handoff.d.ts +1 -1
  13. package/lib/esm/handoff.js +82 -53
  14. package/lib/esm/handoff.js.map +1 -1
  15. package/lib/esm/hubtype-service.d.ts +3 -3
  16. package/lib/esm/hubtype-service.js +100 -64
  17. package/lib/esm/hubtype-service.js.map +1 -1
  18. package/lib/esm/index.d.ts +9 -9
  19. package/lib/esm/index.js +21 -12
  20. package/lib/esm/index.js.map +1 -1
  21. package/lib/esm/models/ai-agents.js +15 -15
  22. package/lib/esm/models/ai-agents.js.map +1 -1
  23. package/lib/esm/models/bot-config.js +6 -6
  24. package/lib/esm/models/bot-config.js.map +1 -1
  25. package/lib/esm/models/hubtype-analytics.d.ts +1 -1
  26. package/lib/esm/models/hubtype-analytics.js +10 -10
  27. package/lib/esm/models/hubtype-analytics.js.map +1 -1
  28. package/lib/esm/models/index.d.ts +4 -4
  29. package/lib/esm/models/index.js +11 -7
  30. package/lib/esm/models/index.js.map +1 -1
  31. package/lib/esm/models/legacy-types.d.ts +3 -1
  32. package/lib/esm/models/legacy-types.js +25 -24
  33. package/lib/esm/models/legacy-types.js.map +1 -1
  34. package/lib/esm/package.json +3 -0
  35. package/lib/esm/plugins.d.ts +1 -1
  36. package/lib/esm/plugins.js +7 -8
  37. package/lib/esm/plugins.js.map +1 -1
  38. package/lib/esm/pusher-utils.js +15 -10
  39. package/lib/esm/pusher-utils.js.map +1 -1
  40. package/lib/esm/routing/index.d.ts +2 -2
  41. package/lib/esm/routing/index.js +7 -5
  42. package/lib/esm/routing/index.js.map +1 -1
  43. package/lib/esm/routing/router-utils.d.ts +1 -1
  44. package/lib/esm/routing/router-utils.js +37 -30
  45. package/lib/esm/routing/router-utils.js.map +1 -1
  46. package/lib/esm/routing/router.d.ts +2 -2
  47. package/lib/esm/routing/router.js +152 -149
  48. package/lib/esm/routing/router.js.map +1 -1
  49. package/lib/esm/testing/index.d.ts +1 -1
  50. package/lib/esm/testing/index.js +60 -94
  51. package/lib/esm/testing/index.js.map +1 -1
  52. package/lib/esm/utils/bot-config.d.ts +1 -1
  53. package/lib/esm/utils/bot-config.js +57 -28
  54. package/lib/esm/utils/bot-config.js.map +1 -1
  55. package/lib/esm/utils/check-providers.d.ts +1 -1
  56. package/lib/esm/utils/check-providers.js +14 -17
  57. package/lib/esm/utils/check-providers.js.map +1 -1
  58. package/lib/esm/utils/functional.js +19 -38
  59. package/lib/esm/utils/functional.js.map +1 -1
  60. package/lib/esm/utils/index.d.ts +3 -3
  61. package/lib/esm/utils/index.js +9 -6
  62. package/lib/esm/utils/index.js.map +1 -1
  63. package/package.json +12 -11
  64. package/src/hubtype-service.ts +4 -2
  65. package/src/models/legacy-types.ts +3 -0
  66. package/lib/cjs/constants.d.ts +0 -4
  67. package/lib/cjs/constants.js +0 -8
  68. package/lib/cjs/constants.js.map +0 -1
  69. package/lib/cjs/core-bot.d.ts +0 -43
  70. package/lib/cjs/core-bot.js +0 -205
  71. package/lib/cjs/core-bot.js.map +0 -1
  72. package/lib/cjs/debug/index.d.ts +0 -1
  73. package/lib/cjs/debug/index.js +0 -5
  74. package/lib/cjs/debug/index.js.map +0 -1
  75. package/lib/cjs/debug/inspector.d.ts +0 -24
  76. package/lib/cjs/debug/inspector.js +0 -70
  77. package/lib/cjs/debug/inspector.js.map +0 -1
  78. package/lib/cjs/handoff.d.ts +0 -110
  79. package/lib/cjs/handoff.js +0 -238
  80. package/lib/cjs/handoff.js.map +0 -1
  81. package/lib/cjs/hubtype-service.d.ts +0 -58
  82. package/lib/cjs/hubtype-service.js +0 -205
  83. package/lib/cjs/hubtype-service.js.map +0 -1
  84. package/lib/cjs/index.d.ts +0 -9
  85. package/lib/cjs/index.js +0 -13
  86. package/lib/cjs/index.js.map +0 -1
  87. package/lib/cjs/models/ai-agents.d.ts +0 -140
  88. package/lib/cjs/models/ai-agents.js +0 -30
  89. package/lib/cjs/models/ai-agents.js.map +0 -1
  90. package/lib/cjs/models/bot-config.d.ts +0 -24
  91. package/lib/cjs/models/bot-config.js +0 -10
  92. package/lib/cjs/models/bot-config.js.map +0 -1
  93. package/lib/cjs/models/hubtype-analytics.d.ts +0 -210
  94. package/lib/cjs/models/hubtype-analytics.js +0 -38
  95. package/lib/cjs/models/hubtype-analytics.js.map +0 -1
  96. package/lib/cjs/models/index.d.ts +0 -4
  97. package/lib/cjs/models/index.js +0 -8
  98. package/lib/cjs/models/index.js.map +0 -1
  99. package/lib/cjs/models/legacy-types.d.ts +0 -330
  100. package/lib/cjs/models/legacy-types.js +0 -83
  101. package/lib/cjs/models/legacy-types.js.map +0 -1
  102. package/lib/cjs/plugins.d.ts +0 -9
  103. package/lib/cjs/plugins.js +0 -24
  104. package/lib/cjs/plugins.js.map +0 -1
  105. package/lib/cjs/pusher-utils.d.ts +0 -7
  106. package/lib/cjs/pusher-utils.js +0 -18
  107. package/lib/cjs/pusher-utils.js.map +0 -1
  108. package/lib/cjs/routing/index.d.ts +0 -2
  109. package/lib/cjs/routing/index.js +0 -6
  110. package/lib/cjs/routing/index.js.map +0 -1
  111. package/lib/cjs/routing/router-utils.d.ts +0 -11
  112. package/lib/cjs/routing/router-utils.js +0 -96
  113. package/lib/cjs/routing/router-utils.js.map +0 -1
  114. package/lib/cjs/routing/router.d.ts +0 -54
  115. package/lib/cjs/routing/router.js +0 -330
  116. package/lib/cjs/routing/router.js.map +0 -1
  117. package/lib/cjs/testing/index.d.ts +0 -91
  118. package/lib/cjs/testing/index.js +0 -196
  119. package/lib/cjs/testing/index.js.map +0 -1
  120. package/lib/cjs/utils/bot-config.d.ts +0 -4
  121. package/lib/cjs/utils/bot-config.js +0 -94
  122. package/lib/cjs/utils/bot-config.js.map +0 -1
  123. package/lib/cjs/utils/check-providers.d.ts +0 -8
  124. package/lib/cjs/utils/check-providers.js +0 -34
  125. package/lib/cjs/utils/check-providers.js.map +0 -1
  126. package/lib/cjs/utils/functional.d.ts +0 -10
  127. package/lib/cjs/utils/functional.js +0 -88
  128. package/lib/cjs/utils/functional.js.map +0 -1
  129. package/lib/cjs/utils/index.d.ts +0 -3
  130. package/lib/cjs/utils/index.js +0 -7
  131. package/lib/cjs/utils/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/routing/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routing/router.js","sources":["../../../src/routing/router.ts"],"sourcesContent":["import { NOT_FOUND_PATH } from '../constants'\nimport { RouteInspector } from '../debug/inspector'\nimport type {\n Input,\n MatchedValue,\n Matcher,\n MatchingProp,\n Nullable,\n ProcessInputResult,\n Route,\n RouteParams,\n RoutePath,\n RoutingState,\n Session,\n} from '../models'\nimport { cloneObject } from '../utils'\nimport {\n getEmptyAction,\n getNotFoundAction,\n getPathParamsFromPathPayload,\n isPathPayload,\n} from './router-utils'\n\nexport class Router {\n routes: Route[]\n routeInspector: RouteInspector\n\n constructor(\n routes: Route[],\n routeInspector: RouteInspector | undefined = undefined\n ) {\n this.routes = routes\n this.routeInspector = routeInspector || new RouteInspector()\n }\n\n /**\n * Processes an input and return a representation of the new bot state.\n * The algorithm is splitted in two main parts:\n * 1. Getting the current routing state.\n * 2. Given a routing state, resolve the different possible scenarios and return the new bot state.\n * The new bot state can return three type of actions:\n * - action: an action directly resolved from a matching route\n * - emptyAction: optional action that can exists or not only within childRoutes\n * - fallbackAction: any other action that acts as a fallback (404, )\n */\n\n // eslint-disable-next-line complexity\n processInput(\n input: Input,\n session: Session,\n lastRoutePath: RoutePath = null\n ): ProcessInputResult {\n session.__retries = session?.__retries ?? 0\n\n // 1. Getting the current routing state.\n const { currentRoute, matchedRoute, params, isFlowBroken } =\n this.getRoutingState(input, session, lastRoutePath)\n\n const currentRoutePath = currentRoute?.path ?? null\n const matchedRoutePath = matchedRoute?.path ?? null\n\n // 2. Given a routing state, resolve the different possible scenarios and return the new bot state.\n\n /**\n * Redirect Scenario:\n * We have matched a redirect route with a given redirection path, so we try to obtain the redirectionRoute with getRouteByPath.\n * Independently of whether the redirectionRoute is found or not, the intent is to trigger a redirection which by definition breaks the flow, so retries are set to 0.\n * It has preference over ignoring retries.\n */\n if (matchedRoute?.redirect) {\n session.__retries = 0\n const redirectionRoute = this.getRouteByPath(matchedRoute.redirect)\n if (redirectionRoute) {\n return {\n action: redirectionRoute.action,\n emptyAction: getEmptyAction(redirectionRoute.childRoutes),\n fallbackAction: null,\n lastRoutePath: matchedRoute.redirect,\n params,\n }\n }\n return {\n action: null,\n emptyAction: null,\n fallbackAction: getNotFoundAction(input, this.routes),\n lastRoutePath: null,\n params,\n }\n }\n\n /**\n * Ignore Retry Scenario:\n * We have matched a route with an ignore retry, so we return directly the new bot state. The intent is to break the flow, so retries are set to 0.\n */\n if (matchedRoute?.ignoreRetry) {\n session.__retries = 0\n return {\n action: matchedRoute.action,\n emptyAction: getEmptyAction(matchedRoute.childRoutes),\n fallbackAction: null,\n lastRoutePath: matchedRoutePath,\n params,\n }\n }\n\n /**\n * Retry Scenario:\n * We were in a route which had retries enabled, so we check if the number of retries is exceeded.\n * If we have not surpassed the limit of retries and we haven't matched an ignoreRetry route, update them, and then return the new bot state.\n */\n if (\n isFlowBroken &&\n currentRoute &&\n currentRoute.retry &&\n session.__retries < currentRoute.retry\n ) {\n session.__retries = session.__retries !== 0 ? session.__retries + 1 : 1\n if (matchedRoute && matchedRoutePath !== NOT_FOUND_PATH) {\n return {\n action: currentRoute.action,\n emptyAction: getEmptyAction(matchedRoute.childRoutes),\n fallbackAction: matchedRoute.action,\n lastRoutePath: currentRoutePath,\n params,\n }\n }\n return {\n action: currentRoute.action ?? null,\n emptyAction: getEmptyAction(currentRoute.childRoutes),\n fallbackAction: getNotFoundAction(input, this.routes),\n lastRoutePath: currentRoutePath,\n params,\n }\n }\n\n /**\n * Default Scenario:\n * We have matched a route or not, but we don't need to execute retries logic, so retries stay to 0.\n */\n session.__retries = 0\n\n /**\n * Matching Route Scenario:\n * We have matched a route, so we return the new bot state.\n */\n if (matchedRoute && matchedRoutePath !== NOT_FOUND_PATH) {\n return {\n action: matchedRoute.action ?? null,\n emptyAction: getEmptyAction(matchedRoute.childRoutes),\n fallbackAction: null,\n lastRoutePath: matchedRoutePath,\n params,\n }\n }\n\n /**\n * 404 Scenario (No Route Found):\n * We have not matched any route, so we return the new bot state.\n */\n return {\n action: null,\n emptyAction: null,\n fallbackAction: getNotFoundAction(input, this.routes),\n params,\n lastRoutePath: currentRoutePath,\n }\n }\n\n /**\n * Find the route that matches the given input, if it match with some of the entries, return the whole Route of the entry with optional params captured if matcher was a regex.\n * IMPORTANT: It returns a cloned route instead of the route itself to avoid modifying original routes and introduce side effects\n * */\n getRoute(\n input: Input | Partial<Input>,\n routes: Route[],\n session: Session,\n lastRoutePath: RoutePath\n ): RouteParams | null {\n let params = {}\n const route = routes.find(r =>\n Object.entries(r)\n .filter(\n ([key, _]) =>\n key !== 'action' && key !== 'childRoutes' && key !== 'path'\n )\n .some(([key, value]) => {\n const match = this.matchRoute(\n r,\n key as MatchingProp,\n value as Matcher,\n input as Input,\n session,\n lastRoutePath\n )\n try {\n if (match !== null && typeof match !== 'boolean' && match.groups) {\n // Strip '[Object: null prototype]' from groups result: https://stackoverflow.com/a/62945609/6237608\n params = { ...match.groups }\n }\n } catch (_e) {}\n return Boolean(match)\n })\n )\n if (route) {\n return { route: cloneObject(route), params }\n }\n return null\n }\n\n /**\n * Find the route that matches the given path. Path can include concatenations, e.g: 'Flow1/Subflow1.1'.\n * IMPORTANT: It returns a cloned route instead of the route itself to avoid modifying original routes and introduce side effects\n * */\n getRouteByPath(\n path: RoutePath,\n routeList: Route[] = this.routes\n ): Nullable<Route> {\n if (!path) {\n return null\n }\n const [currentPath, ...childPath] = path.split('/')\n for (const route of routeList) {\n // iterate over all routeList\n if (route.path === currentPath) {\n if (route.childRoutes?.length && childPath.length > 0) {\n // evaluate childroute over next actions\n const computedRoute = this.getRouteByPath(\n childPath.join('/'),\n route.childRoutes\n )\n // IMPORTANT: Returning a new object to avoid modifying dev routes and introduce side effects\n if (computedRoute) {\n return cloneObject(computedRoute)\n }\n } else if (childPath.length === 0) {\n return cloneObject(route) // last action and found route\n }\n }\n }\n return null\n }\n\n /**\n * Returns the matched value for a specific route.\n * Matching Props: ('text' | 'payload' | 'intent' | 'type' | 'input' | 'session' | 'request' ...)\n * Matchers: (string: exact match | regex: regular expression match | function: return true)\n * input: user input object, e.g.: {type: 'text', data: 'Hi'}\n * */\n matchRoute(\n route: Route,\n prop: MatchingProp,\n matcher: Matcher,\n input: Input,\n session: Session,\n lastRoutePath: RoutePath\n ): MatchedValue {\n let value: any = null\n if (Object.keys(input).indexOf(prop) > -1) {\n value = input[prop]\n } else if (prop === 'text') {\n value = input.data\n } else if (prop === 'input') {\n value = input\n } else if (prop === 'session') {\n value = session\n } else if (prop === 'request') {\n value = { input, session, lastRoutePath }\n }\n const matched = this.matchValue(matcher, value)\n if (matched) {\n this.routeInspector.routeMatched(route, prop, matcher, value)\n } else {\n this.routeInspector.routeNotMatched(route, prop, matcher, value)\n }\n return matched\n }\n\n /**\n * Runs the matcher against the given value.\n * If there is a match, it will return a truthy value (true, RegExp result), o.w., it will return a falsy value.\n * */\n matchValue(matcher: Matcher, value: any): MatchedValue {\n if (typeof matcher === 'string') {\n return value === matcher\n }\n if (matcher instanceof RegExp) {\n if (value === undefined || value === null) {\n return false\n }\n return matcher.exec(value)\n }\n if (typeof matcher === 'function') {\n return matcher(value)\n }\n return false\n }\n\n /**\n * It resolves the current state of navigation. Two scenarios:\n * 1. Given a path payload input (__PATH_PAYLOAD__somePath?someParam=someValue), we can resolve the routing state directly from it (using getRouteByPath).\n * 2. Given any other type of input, we resolve the routing state with normal resolution (using getRoute).\n * */\n getRoutingState(\n input: Input,\n session: Session,\n lastRoutePath: RoutePath\n ): RoutingState {\n const currentRoute = this.getRouteByPath(lastRoutePath)\n if (currentRoute && lastRoutePath) {\n currentRoute.path = lastRoutePath\n }\n if (typeof input.payload === 'string' && isPathPayload(input.payload)) {\n return this.getRoutingStateFromPathPayload(currentRoute, input.payload)\n }\n return this.getRoutingStateFromInput(currentRoute, input, session)\n }\n\n /**\n * Given a non path payload input, try to run it against the routes, update matching routes information in consequence and dictamine if the flow has been broken.\n * */\n getRoutingStateFromInput(\n currentRoute: Nullable<Route>,\n input: Input,\n session: Session\n ): RoutingState {\n // get route depending of current ChildRoutes\n if (currentRoute?.childRoutes) {\n const routeParams = this.getRoute(\n input,\n currentRoute.childRoutes,\n session,\n currentRoute.path\n )\n if (routeParams) {\n return {\n currentRoute,\n matchedRoute: {\n ...routeParams.route,\n path:\n routeParams.route && currentRoute.path\n ? `${currentRoute.path}/${routeParams.route.path}`\n : currentRoute.path,\n },\n params: routeParams.params,\n isFlowBroken: false,\n }\n }\n }\n /**\n * we couldn't find a route in the state of the currentRoute childRoutes,\n * so let's find in the general routes\n */\n const routeParams = this.getRoute(\n input,\n this.routes,\n session,\n currentRoute?.path ?? null\n )\n const isFlowBroken = Boolean(currentRoute?.path)\n if (routeParams?.route) {\n return {\n currentRoute,\n matchedRoute: {\n ...routeParams.route,\n path: routeParams.route?.path ?? null,\n },\n params: routeParams.params,\n isFlowBroken,\n }\n }\n return {\n currentRoute,\n matchedRoute: null,\n params: {},\n isFlowBroken,\n }\n }\n\n /**\n * Given a path payload input, try to run the path against the routes, update matching routes information in consequence and dictamine if the flow has been broken.\n * */\n getRoutingStateFromPathPayload(\n currentRoute: Nullable<Route>,\n pathPayload: string\n ): RoutingState {\n const { path, params } = getPathParamsFromPathPayload(pathPayload)\n /**\n * shorthand function to update the matching information given a path\n */\n const getRoutingStateFromPath = (seekPath: string): RoutingState => {\n const matchedRoute = this.getRouteByPath(seekPath)\n if (!matchedRoute) {\n return {\n currentRoute,\n matchedRoute: null,\n params: {},\n isFlowBroken: true,\n }\n }\n return {\n currentRoute,\n matchedRoute: { ...matchedRoute, path: seekPath },\n params,\n isFlowBroken: false,\n }\n }\n /**\n * Given a valid path: 'Flow1/Subflow1' we are in one of the two scenarios below.\n */\n // 1. Received __PATH_PAYLOAD__Subflow2, so we need to first try to concatenate it with Flow1 (lastRoutePath)\n if (currentRoute?.path) {\n const routingState = getRoutingStateFromPath(\n `${currentRoute.path}/${path}`\n )\n if (routingState.matchedRoute) {\n return routingState\n }\n }\n // 2. Received __PATH_PAYLOAD__Flow1/Subflow1, so we can resolve it directly\n return getRoutingStateFromPath(path as string)\n }\n}\n"],"names":["NOT_FOUND_PATH","RouteInspector","cloneObject","getEmptyAction","getNotFoundAction","getPathParamsFromPathPayload","isPathPayload","Router","input","session","lastRoutePath","currentRoute","matchedRoute","params","isFlowBroken","currentRoutePath","matchedRoutePath","redirectionRoute","routes","route","r","Object","key","_","value","match","_e","Boolean","path","routeList","currentPath","childPath","computedRoute","prop","matcher","matched","RegExp","undefined","routeParams","pathPayload","getRoutingStateFromPath","seekPath","routingState","routeInspector"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type BotContext, type BotRequest, type BotSecrets, type BotSettings, type ContactInfo, type Input, type ProviderType, type ResolvedPlugins, type Session, type SessionUser } from '../models';
1
+ import { type BotContext, type BotRequest, type BotSecrets, type BotSettings, type ContactInfo, type Input, type ProviderType, type ResolvedPlugins, type Session, type SessionUser } from '../models/index.js';
2
2
  export declare const TEST_DEFAULTS: {
3
3
  HUBTYPE_API_URL: string;
4
4
  STATIC_URL: string;
@@ -1,28 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createTestPluginPreRequest = exports.TEST_DEFAULTS = void 0;
4
- exports.createTestSettings = createTestSettings;
5
- exports.createTestSecrets = createTestSecrets;
6
- exports.createTestSessionUser = createTestSessionUser;
7
- exports.createTestSession = createTestSession;
8
- exports.createTestInput = createTestInput;
9
- exports.createTestBotRequest = createTestBotRequest;
10
- exports.createTestBotContext = createTestBotContext;
11
- exports.createTestPluginPostRequest = createTestPluginPostRequest;
12
- const models_1 = require("../models");
1
+ import { INPUT, PROVIDER } from "../models/index.js";
2
+
3
+
4
+
13
5
  // ---------------------------------------------------------------------------
14
6
  // Default values
15
7
  // ---------------------------------------------------------------------------
16
- exports.TEST_DEFAULTS = {
8
+ const TEST_DEFAULTS = {
17
9
  HUBTYPE_API_URL: 'https://api.hubtype.com',
18
10
  STATIC_URL: 'https://static.hubtype.com',
19
11
  LITELLM_API_URL: 'https://api.litellm.com',
20
12
  AZURE_OPENAI_API_BASE: 'https://api.openai.com',
21
13
  AZURE_OPENAI_API_VERSION: '2026-02-01',
22
14
  LANGUAGE_DETECTION_ENABLED: true,
23
- HUBTYPE_ACCESS_TOKEN: 'testAccessToken', // pragma: allowlist secret
24
- LITELLM_API_KEY: 'testLiteLLMAPIKey', // pragma: allowlist secret
25
- AZURE_OPENAI_API_KEY: 'testAzureOpenAIAPIKey', // pragma: allowlist secret
15
+ HUBTYPE_ACCESS_TOKEN: 'testAccessToken',
16
+ LITELLM_API_KEY: 'testLiteLLMAPIKey',
17
+ AZURE_OPENAI_API_KEY: 'testAzureOpenAIAPIKey',
26
18
  ACCESS_TOKEN: 'fake_access_token',
27
19
  HUBTYPE_API_HOST: 'https://api.hubtype.com',
28
20
  FLOW_THREAD_ID: 'testFlowThreadId',
@@ -30,81 +22,83 @@ exports.TEST_DEFAULTS = {
30
22
  USER_ID: 'testUserId',
31
23
  ORG_ID: 'testOrgId',
32
24
  ORG_NAME: 'testOrg',
33
- PROVIDER: models_1.PROVIDER.WEBCHAT,
25
+ PROVIDER: PROVIDER.WEBCHAT,
34
26
  LOCALE: 'en',
35
27
  COUNTRY: 'US',
36
28
  BOT_INTERACTION_ID: 'testInteractionId',
37
29
  MESSAGE_ID: 'testMessageId',
38
- LAST_ROUTE_PATH: '',
30
+ LAST_ROUTE_PATH: ''
39
31
  };
40
32
  // ---------------------------------------------------------------------------
41
33
  // Leaf factories
42
34
  // ---------------------------------------------------------------------------
43
35
  function createTestSettings(overrides) {
44
36
  return {
45
- HUBTYPE_API_URL: exports.TEST_DEFAULTS.HUBTYPE_API_URL,
46
- STATIC_URL: exports.TEST_DEFAULTS.STATIC_URL,
47
- LITELLM_API_URL: exports.TEST_DEFAULTS.LITELLM_API_URL,
48
- AZURE_OPENAI_API_BASE: exports.TEST_DEFAULTS.AZURE_OPENAI_API_BASE,
49
- AZURE_OPENAI_API_VERSION: exports.TEST_DEFAULTS.AZURE_OPENAI_API_VERSION,
50
- LANGUAGE_DETECTION_ENABLED: exports.TEST_DEFAULTS.LANGUAGE_DETECTION_ENABLED,
37
+ HUBTYPE_API_URL: TEST_DEFAULTS.HUBTYPE_API_URL,
38
+ STATIC_URL: TEST_DEFAULTS.STATIC_URL,
39
+ LITELLM_API_URL: TEST_DEFAULTS.LITELLM_API_URL,
40
+ AZURE_OPENAI_API_BASE: TEST_DEFAULTS.AZURE_OPENAI_API_BASE,
41
+ AZURE_OPENAI_API_VERSION: TEST_DEFAULTS.AZURE_OPENAI_API_VERSION,
42
+ LANGUAGE_DETECTION_ENABLED: TEST_DEFAULTS.LANGUAGE_DETECTION_ENABLED,
51
43
  CUSTOM_SHORT_URL_HOST: null,
52
44
  custom: {},
53
- ...overrides,
45
+ ...overrides
54
46
  };
55
47
  }
56
48
  function createTestSecrets(overrides) {
57
49
  return {
58
- HUBTYPE_ACCESS_TOKEN: exports.TEST_DEFAULTS.HUBTYPE_ACCESS_TOKEN,
59
- LITELLM_API_KEY: exports.TEST_DEFAULTS.LITELLM_API_KEY,
60
- AZURE_OPENAI_API_KEY: exports.TEST_DEFAULTS.AZURE_OPENAI_API_KEY,
50
+ HUBTYPE_ACCESS_TOKEN: TEST_DEFAULTS.HUBTYPE_ACCESS_TOKEN,
51
+ LITELLM_API_KEY: TEST_DEFAULTS.LITELLM_API_KEY,
52
+ AZURE_OPENAI_API_KEY: TEST_DEFAULTS.AZURE_OPENAI_API_KEY,
61
53
  custom: {},
62
- ...overrides,
54
+ ...overrides
63
55
  };
64
56
  }
65
57
  function createTestSessionUser(options) {
66
- const locale = options?.locale ?? exports.TEST_DEFAULTS.LOCALE;
67
- const country = options?.country ?? exports.TEST_DEFAULTS.COUNTRY;
58
+ const locale = options?.locale ?? TEST_DEFAULTS.LOCALE;
59
+ const country = options?.country ?? TEST_DEFAULTS.COUNTRY;
68
60
  return {
69
- id: options?.id ?? exports.TEST_DEFAULTS.USER_ID,
70
- provider: options?.provider ?? exports.TEST_DEFAULTS.PROVIDER,
61
+ id: options?.id ?? TEST_DEFAULTS.USER_ID,
62
+ provider: options?.provider ?? TEST_DEFAULTS.PROVIDER,
71
63
  locale,
72
64
  country,
73
65
  system_locale: options?.systemLocale ?? locale,
74
66
  contact_info: options?.contactInfo ?? [],
75
- extra_data: options?.extraData ?? {},
67
+ extra_data: options?.extraData ?? {}
76
68
  };
77
69
  }
78
70
  function createTestSession(options) {
79
71
  return {
80
- bot: { id: options?.botId ?? exports.TEST_DEFAULTS.BOT_ID },
72
+ bot: {
73
+ id: options?.botId ?? TEST_DEFAULTS.BOT_ID
74
+ },
81
75
  user: createTestSessionUser(options?.user),
82
- organization: options?.organization ?? exports.TEST_DEFAULTS.ORG_NAME,
83
- organization_id: options?.organizationId ?? exports.TEST_DEFAULTS.ORG_ID,
76
+ organization: options?.organization ?? TEST_DEFAULTS.ORG_NAME,
77
+ organization_id: options?.organizationId ?? TEST_DEFAULTS.ORG_ID,
84
78
  is_first_interaction: options?.isFirstInteraction ?? false,
85
79
  is_test_integration: options?.isTestIntegration ?? false,
86
- _access_token: options?.accessToken ?? exports.TEST_DEFAULTS.ACCESS_TOKEN,
87
- _hubtype_api: options?.hubtypeApi ?? exports.TEST_DEFAULTS.HUBTYPE_API_HOST,
88
- flow_thread_id: options?.flowThreadId ?? exports.TEST_DEFAULTS.FLOW_THREAD_ID,
80
+ _access_token: options?.accessToken ?? TEST_DEFAULTS.ACCESS_TOKEN,
81
+ _hubtype_api: options?.hubtypeApi ?? TEST_DEFAULTS.HUBTYPE_API_HOST,
82
+ flow_thread_id: options?.flowThreadId ?? TEST_DEFAULTS.FLOW_THREAD_ID,
89
83
  __retries: options?.retries ?? 0,
90
84
  _shadowing: options?.shadowing,
91
85
  _hubtype_case_id: options?.hubtypeCaseId,
92
- capture_user_input: options?.captureUserInputNodeId
93
- ? { node_id: options.captureUserInputNodeId }
94
- : undefined,
86
+ capture_user_input: options?.captureUserInputNodeId ? {
87
+ node_id: options.captureUserInputNodeId
88
+ } : undefined
95
89
  };
96
90
  }
97
91
  function createTestInput(options) {
98
92
  return {
99
- type: options?.type ?? models_1.INPUT.TEXT,
93
+ type: options?.type ?? INPUT.TEXT,
100
94
  data: options?.data,
101
95
  text: options?.text ?? options?.data,
102
96
  payload: options?.payload,
103
97
  src: options?.src,
104
98
  transcript: options?.transcript,
105
99
  context: options?.context,
106
- bot_interaction_id: options?.botInteractionId ?? exports.TEST_DEFAULTS.BOT_INTERACTION_ID,
107
- message_id: options?.messageId ?? exports.TEST_DEFAULTS.MESSAGE_ID,
100
+ bot_interaction_id: options?.botInteractionId ?? TEST_DEFAULTS.BOT_INTERACTION_ID,
101
+ message_id: options?.messageId ?? TEST_DEFAULTS.MESSAGE_ID
108
102
  };
109
103
  }
110
104
  function isFullInput(v) {
@@ -114,57 +108,27 @@ function isFullSession(v) {
114
108
  return 'bot' in v && '__retries' in v;
115
109
  }
116
110
  function isFullSettings(v) {
117
- return ('HUBTYPE_API_URL' in v &&
118
- 'STATIC_URL' in v &&
119
- 'LITELLM_API_URL' in v &&
120
- 'AZURE_OPENAI_API_BASE' in v &&
121
- 'AZURE_OPENAI_API_VERSION' in v &&
122
- 'LANGUAGE_DETECTION_ENABLED' in v &&
123
- 'CUSTOM_SHORT_URL_HOST' in v &&
124
- 'custom' in v);
111
+ return 'HUBTYPE_API_URL' in v && 'STATIC_URL' in v && 'LITELLM_API_URL' in v && 'AZURE_OPENAI_API_BASE' in v && 'AZURE_OPENAI_API_VERSION' in v && 'LANGUAGE_DETECTION_ENABLED' in v && 'CUSTOM_SHORT_URL_HOST' in v && 'custom' in v;
125
112
  }
126
113
  function isFullSecrets(v) {
127
- return ('HUBTYPE_ACCESS_TOKEN' in v &&
128
- 'LITELLM_API_KEY' in v &&
129
- 'AZURE_OPENAI_API_KEY' in v &&
130
- 'custom' in v);
114
+ return 'HUBTYPE_ACCESS_TOKEN' in v && 'LITELLM_API_KEY' in v && 'AZURE_OPENAI_API_KEY' in v && 'custom' in v;
131
115
  }
132
116
  function createTestBotRequest(options) {
133
- const input = options?.input == null
134
- ? createTestInput()
135
- : isFullInput(options.input)
136
- ? options.input
137
- : createTestInput(options.input);
138
- const session = options?.session == null
139
- ? createTestSession()
140
- : isFullSession(options.session)
141
- ? options.session
142
- : createTestSession(options.session);
143
- const settings = options?.settings == null
144
- ? createTestSettings()
145
- : isFullSettings(options.settings)
146
- ? options.settings
147
- : createTestSettings(options.settings);
148
- const secrets = options?.secrets == null
149
- ? createTestSecrets()
150
- : isFullSecrets(options.secrets)
151
- ? options.secrets
152
- : createTestSecrets(options.secrets);
117
+ const input = options?.input == null ? createTestInput() : isFullInput(options.input) ? options.input : createTestInput(options.input);
118
+ const session = options?.session == null ? createTestSession() : isFullSession(options.session) ? options.session : createTestSession(options.session);
119
+ const settings = options?.settings == null ? createTestSettings() : isFullSettings(options.settings) ? options.settings : createTestSettings(options.settings);
120
+ const secrets = options?.secrets == null ? createTestSecrets() : isFullSecrets(options.secrets) ? options.secrets : createTestSecrets(options.secrets);
153
121
  return {
154
122
  input,
155
123
  session,
156
- lastRoutePath: options?.lastRoutePath ?? exports.TEST_DEFAULTS.LAST_ROUTE_PATH,
124
+ lastRoutePath: options?.lastRoutePath ?? TEST_DEFAULTS.LAST_ROUTE_PATH,
157
125
  settings,
158
- secrets,
126
+ secrets
159
127
  };
160
128
  }
161
129
  function createTestBotContext(options) {
162
130
  const request = createTestBotRequest(options);
163
- const sessionForLocale = options?.session == null
164
- ? createTestSession()
165
- : isFullSession(options.session)
166
- ? options.session
167
- : createTestSession(options.session);
131
+ const sessionForLocale = options?.session == null ? createTestSession() : isFullSession(options.session) ? options.session : createTestSession(options.session);
168
132
  const locale = sessionForLocale.user.locale;
169
133
  const country = sessionForLocale.user.country;
170
134
  const systemLocale = sessionForLocale.user.system_locale;
@@ -174,23 +138,25 @@ function createTestBotContext(options) {
174
138
  params: options?.params ?? {},
175
139
  defaultDelay: options?.defaultDelay ?? 0,
176
140
  defaultTyping: options?.defaultTyping ?? 0,
177
- getUserLocale: () => locale,
178
- getUserCountry: () => country,
179
- getSystemLocale: () => systemLocale,
180
- setUserLocale: () => undefined,
181
- setUserCountry: () => undefined,
182
- setSystemLocale: () => undefined,
141
+ getUserLocale: ()=>locale,
142
+ getUserCountry: ()=>country,
143
+ getSystemLocale: ()=>systemLocale,
144
+ setUserLocale: ()=>undefined,
145
+ setUserCountry: ()=>undefined,
146
+ setSystemLocale: ()=>undefined
183
147
  };
184
148
  }
185
149
  /**
186
150
  * Alias for `createTestBotContext` typed as `PluginPreRequest`.
187
151
  * PluginPreRequest === BotContext in @botonic/core.
188
- */
189
- exports.createTestPluginPreRequest = createTestBotContext;
152
+ */ const createTestPluginPreRequest = createTestBotContext;
190
153
  function createTestPluginPostRequest(options) {
191
154
  return {
192
155
  ...createTestBotContext(options),
193
- response: options?.response ?? null,
156
+ response: options?.response ?? null
194
157
  };
195
158
  }
159
+
160
+ export { TEST_DEFAULTS, createTestBotContext, createTestBotRequest, createTestInput, createTestPluginPostRequest, createTestPluginPreRequest, createTestSecrets, createTestSession, createTestSessionUser, createTestSettings };
161
+
196
162
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":";;;AAgDA,gDAcC;AAED,8CAQC;AAYD,sDAcC;AAkBD,8CAoBC;AAcD,0CAaC;AA8CD,oDAsCC;AAWD,oDA6BC;AAcD,kEASC;AAtTD,sCAakB;AAElB,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAEjE,QAAA,aAAa,GAAG;IAC3B,eAAe,EAAE,yBAAyB;IAC1C,UAAU,EAAE,4BAA4B;IACxC,eAAe,EAAE,yBAAyB;IAC1C,qBAAqB,EAAE,wBAAwB;IAC/C,wBAAwB,EAAE,YAAY;IACtC,0BAA0B,EAAE,IAAI;IAChC,oBAAoB,EAAE,iBAAiB,EAAE,2BAA2B;IACpE,eAAe,EAAE,mBAAmB,EAAE,2BAA2B;IACjE,oBAAoB,EAAE,uBAAuB,EAAE,2BAA2B;IAC1E,YAAY,EAAE,mBAAmB;IACjC,gBAAgB,EAAE,yBAAyB;IAC3C,cAAc,EAAE,kBAAkB;IAClC,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,iBAAQ,CAAC,OAAuB;IAC1C,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,kBAAkB,EAAE,mBAAmB;IACvC,UAAU,EAAE,eAAe;IAC3B,eAAe,EAAE,EAAE;CACpB,CAAA;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,SAAgB,kBAAkB,CAChC,SAAgC;IAEhC,OAAO;QACL,eAAe,EAAE,qBAAa,CAAC,eAAe;QAC9C,UAAU,EAAE,qBAAa,CAAC,UAAU;QACpC,eAAe,EAAE,qBAAa,CAAC,eAAe;QAC9C,qBAAqB,EAAE,qBAAa,CAAC,qBAAqB;QAC1D,wBAAwB,EAAE,qBAAa,CAAC,wBAAwB;QAChE,0BAA0B,EAAE,qBAAa,CAAC,0BAA0B;QACpE,qBAAqB,EAAE,IAAI;QAC3B,MAAM,EAAE,EAAE;QACV,GAAG,SAAS;KACb,CAAA;AACH,CAAC;AAED,SAAgB,iBAAiB,CAAC,SAA+B;IAC/D,OAAO;QACL,oBAAoB,EAAE,qBAAa,CAAC,oBAAoB;QACxD,eAAe,EAAE,qBAAa,CAAC,eAAe;QAC9C,oBAAoB,EAAE,qBAAa,CAAC,oBAAoB;QACxD,MAAM,EAAE,EAAE;QACV,GAAG,SAAS;KACb,CAAA;AACH,CAAC;AAYD,SAAgB,qBAAqB,CACnC,OAAyB;IAEzB,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,qBAAa,CAAC,MAAM,CAAA;IACtD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,qBAAa,CAAC,OAAO,CAAA;IACzD,OAAO;QACL,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,qBAAa,CAAC,OAAO;QACxC,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,qBAAa,CAAC,QAAQ;QACrD,MAAM;QACN,OAAO;QACP,aAAa,EAAE,OAAO,EAAE,YAAY,IAAI,MAAM;QAC9C,YAAY,EAAE,OAAO,EAAE,WAAW,IAAI,EAAE;QACxC,UAAU,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE;KACrC,CAAA;AACH,CAAC;AAkBD,SAAgB,iBAAiB,CAC/B,OAA4B;IAE5B,OAAO;QACL,GAAG,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,IAAI,qBAAa,CAAC,MAAM,EAAE;QACnD,IAAI,EAAE,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC;QAC1C,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,qBAAa,CAAC,QAAQ;QAC7D,eAAe,EAAE,OAAO,EAAE,cAAc,IAAI,qBAAa,CAAC,MAAM;QAChE,oBAAoB,EAAE,OAAO,EAAE,kBAAkB,IAAI,KAAK;QAC1D,mBAAmB,EAAE,OAAO,EAAE,iBAAiB,IAAI,KAAK;QACxD,aAAa,EAAE,OAAO,EAAE,WAAW,IAAI,qBAAa,CAAC,YAAY;QACjE,YAAY,EAAE,OAAO,EAAE,UAAU,IAAI,qBAAa,CAAC,gBAAgB;QACnE,cAAc,EAAE,OAAO,EAAE,YAAY,IAAI,qBAAa,CAAC,cAAc;QACrE,SAAS,EAAE,OAAO,EAAE,OAAO,IAAI,CAAC;QAChC,UAAU,EAAE,OAAO,EAAE,SAAS;QAC9B,gBAAgB,EAAE,OAAO,EAAE,aAAa;QACxC,kBAAkB,EAAE,OAAO,EAAE,sBAAsB;YACjD,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,sBAAsB,EAAE;YAC7C,CAAC,CAAC,SAAS;KACd,CAAA;AACH,CAAC;AAcD,SAAgB,eAAe,CAAC,OAA0B;IACxD,OAAO;QACL,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,cAAK,CAAC,IAAI;QACjC,IAAI,EAAE,OAAO,EAAE,IAAI;QACnB,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,IAAI;QACpC,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,GAAG,EAAE,OAAO,EAAE,GAAG;QACjB,UAAU,EAAE,OAAO,EAAE,UAAU;QAC/B,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,kBAAkB,EAChB,OAAO,EAAE,gBAAgB,IAAI,qBAAa,CAAC,kBAAkB;QAC/D,UAAU,EAAE,OAAO,EAAE,SAAS,IAAI,qBAAa,CAAC,UAAU;KAC3D,CAAA;AACH,CAAC;AAcD,SAAS,WAAW,CAAC,CAA2B;IAC9C,OAAO,oBAAoB,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,CAAA;AACvD,CAAC;AAED,SAAS,aAAa,CAAC,CAA+B;IACpD,OAAO,KAAK,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,CAAA;AACvC,CAAC;AAED,SAAS,cAAc,CACrB,CAAqC;IAErC,OAAO,CACL,iBAAiB,IAAI,CAAC;QACtB,YAAY,IAAI,CAAC;QACjB,iBAAiB,IAAI,CAAC;QACtB,uBAAuB,IAAI,CAAC;QAC5B,0BAA0B,IAAI,CAAC;QAC/B,4BAA4B,IAAI,CAAC;QACjC,uBAAuB,IAAI,CAAC;QAC5B,QAAQ,IAAI,CAAC,CACd,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,CAAmC;IACxD,OAAO,CACL,sBAAsB,IAAI,CAAC;QAC3B,iBAAiB,IAAI,CAAC;QACtB,sBAAsB,IAAI,CAAC;QAC3B,QAAQ,IAAI,CAAC,CACd,CAAA;AACH,CAAC;AAED,SAAgB,oBAAoB,CAClC,OAA+B;IAE/B,MAAM,KAAK,GACT,OAAO,EAAE,KAAK,IAAI,IAAI;QACpB,CAAC,CAAC,eAAe,EAAE;QACnB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;YAC1B,CAAC,CAAC,OAAO,CAAC,KAAK;YACf,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAEtC,MAAM,OAAO,GACX,OAAO,EAAE,OAAO,IAAI,IAAI;QACtB,CAAC,CAAC,iBAAiB,EAAE;QACrB,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;YAC9B,CAAC,CAAC,OAAO,CAAC,OAAO;YACjB,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAE1C,MAAM,QAAQ,GACZ,OAAO,EAAE,QAAQ,IAAI,IAAI;QACvB,CAAC,CAAC,kBAAkB,EAAE;QACtB,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC;YAChC,CAAC,CAAC,OAAO,CAAC,QAAQ;YAClB,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAE5C,MAAM,OAAO,GACX,OAAO,EAAE,OAAO,IAAI,IAAI;QACtB,CAAC,CAAC,iBAAiB,EAAE;QACrB,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;YAC9B,CAAC,CAAC,OAAO,CAAC,OAAO;YACjB,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAE1C,OAAO;QACL,KAAK;QACL,OAAO;QACP,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,qBAAa,CAAC,eAAe;QACtE,QAAQ;QACR,OAAO;KACR,CAAA;AACH,CAAC;AAWD,SAAgB,oBAAoB,CAElC,OAAyC;IACzC,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAA;IAE7C,MAAM,gBAAgB,GACpB,OAAO,EAAE,OAAO,IAAI,IAAI;QACtB,CAAC,CAAC,iBAAiB,EAAE;QACrB,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;YAC9B,CAAC,CAAC,OAAO,CAAC,OAAO;YACjB,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAE1C,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAA;IAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAA;IAC7C,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAA;IAExD,OAAO;QACL,GAAG,OAAO;QACV,OAAO,EAAE,OAAO,EAAE,OAAO,IAAK,EAAe;QAC7C,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE;QAC7B,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,CAAC;QACxC,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,CAAC;QAC1C,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM;QAC3B,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO;QAC7B,eAAe,EAAE,GAAG,EAAE,CAAC,YAAY;QACnC,aAAa,EAAE,GAAG,EAAE,CAAC,SAAS;QAC9B,cAAc,EAAE,GAAG,EAAE,CAAC,SAAS;QAC/B,eAAe,EAAE,GAAG,EAAE,CAAC,SAAS;KACjC,CAAA;AACH,CAAC;AAED;;;GAGG;AACU,QAAA,0BAA0B,GAAG,oBAAoB,CAAA;AAQ9D,SAAgB,2BAA2B,CAGzC,OAAgD;IAEhD,OAAO;QACL,GAAG,oBAAoB,CAAC,OAAO,CAAC;QAChC,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI;KACpC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"testing/index.js","sources":["../../../src/testing/index.ts"],"sourcesContent":["import {\n type BotContext,\n type BotRequest,\n type BotSecrets,\n type BotSettings,\n type ContactInfo,\n INPUT,\n type Input,\n PROVIDER,\n type ProviderType,\n type ResolvedPlugins,\n type Session,\n type SessionUser,\n} from '../models'\n\n// ---------------------------------------------------------------------------\n// Default values\n// ---------------------------------------------------------------------------\n\nexport const TEST_DEFAULTS = {\n HUBTYPE_API_URL: 'https://api.hubtype.com',\n STATIC_URL: 'https://static.hubtype.com',\n LITELLM_API_URL: 'https://api.litellm.com',\n AZURE_OPENAI_API_BASE: 'https://api.openai.com',\n AZURE_OPENAI_API_VERSION: '2026-02-01',\n LANGUAGE_DETECTION_ENABLED: true,\n HUBTYPE_ACCESS_TOKEN: 'testAccessToken', // pragma: allowlist secret\n LITELLM_API_KEY: 'testLiteLLMAPIKey', // pragma: allowlist secret\n AZURE_OPENAI_API_KEY: 'testAzureOpenAIAPIKey', // pragma: allowlist secret\n ACCESS_TOKEN: 'fake_access_token',\n HUBTYPE_API_HOST: 'https://api.hubtype.com',\n FLOW_THREAD_ID: 'testFlowThreadId',\n BOT_ID: 'testBotId',\n USER_ID: 'testUserId',\n ORG_ID: 'testOrgId',\n ORG_NAME: 'testOrg',\n PROVIDER: PROVIDER.WEBCHAT as ProviderType,\n LOCALE: 'en',\n COUNTRY: 'US',\n BOT_INTERACTION_ID: 'testInteractionId',\n MESSAGE_ID: 'testMessageId',\n LAST_ROUTE_PATH: '',\n}\n\n// ---------------------------------------------------------------------------\n// Leaf factories\n// ---------------------------------------------------------------------------\n\nexport function createTestSettings(\n overrides?: Partial<BotSettings>\n): BotSettings {\n return {\n HUBTYPE_API_URL: TEST_DEFAULTS.HUBTYPE_API_URL,\n STATIC_URL: TEST_DEFAULTS.STATIC_URL,\n LITELLM_API_URL: TEST_DEFAULTS.LITELLM_API_URL,\n AZURE_OPENAI_API_BASE: TEST_DEFAULTS.AZURE_OPENAI_API_BASE,\n AZURE_OPENAI_API_VERSION: TEST_DEFAULTS.AZURE_OPENAI_API_VERSION,\n LANGUAGE_DETECTION_ENABLED: TEST_DEFAULTS.LANGUAGE_DETECTION_ENABLED,\n CUSTOM_SHORT_URL_HOST: null,\n custom: {},\n ...overrides,\n }\n}\n\nexport function createTestSecrets(overrides?: Partial<BotSecrets>): BotSecrets {\n return {\n HUBTYPE_ACCESS_TOKEN: TEST_DEFAULTS.HUBTYPE_ACCESS_TOKEN,\n LITELLM_API_KEY: TEST_DEFAULTS.LITELLM_API_KEY,\n AZURE_OPENAI_API_KEY: TEST_DEFAULTS.AZURE_OPENAI_API_KEY,\n custom: {},\n ...overrides,\n }\n}\n\nexport interface TestUserOptions {\n id?: string\n provider?: ProviderType\n locale?: string\n country?: string\n systemLocale?: string\n contactInfo?: ContactInfo[]\n extraData?: Record<string, any>\n}\n\nexport function createTestSessionUser(\n options?: TestUserOptions\n): SessionUser<Record<string, any>> {\n const locale = options?.locale ?? TEST_DEFAULTS.LOCALE\n const country = options?.country ?? TEST_DEFAULTS.COUNTRY\n return {\n id: options?.id ?? TEST_DEFAULTS.USER_ID,\n provider: options?.provider ?? TEST_DEFAULTS.PROVIDER,\n locale,\n country,\n system_locale: options?.systemLocale ?? locale,\n contact_info: options?.contactInfo ?? [],\n extra_data: options?.extraData ?? {},\n }\n}\n\nexport interface TestSessionOptions {\n user?: TestUserOptions\n botId?: string\n organization?: string\n organizationId?: string\n isFirstInteraction?: boolean\n isTestIntegration?: boolean\n accessToken?: string\n hubtypeApi?: string\n flowThreadId?: string\n retries?: number\n shadowing?: boolean\n hubtypeCaseId?: string\n captureUserInputNodeId?: string\n}\n\nexport function createTestSession(\n options?: TestSessionOptions\n): Session<Record<string, any>> {\n return {\n bot: { id: options?.botId ?? TEST_DEFAULTS.BOT_ID },\n user: createTestSessionUser(options?.user),\n organization: options?.organization ?? TEST_DEFAULTS.ORG_NAME,\n organization_id: options?.organizationId ?? TEST_DEFAULTS.ORG_ID,\n is_first_interaction: options?.isFirstInteraction ?? false,\n is_test_integration: options?.isTestIntegration ?? false,\n _access_token: options?.accessToken ?? TEST_DEFAULTS.ACCESS_TOKEN,\n _hubtype_api: options?.hubtypeApi ?? TEST_DEFAULTS.HUBTYPE_API_HOST,\n flow_thread_id: options?.flowThreadId ?? TEST_DEFAULTS.FLOW_THREAD_ID,\n __retries: options?.retries ?? 0,\n _shadowing: options?.shadowing,\n _hubtype_case_id: options?.hubtypeCaseId,\n capture_user_input: options?.captureUserInputNodeId\n ? { node_id: options.captureUserInputNodeId }\n : undefined,\n }\n}\n\nexport interface TestInputOptions {\n type?: Input['type']\n data?: string\n text?: string\n payload?: string\n src?: string\n botInteractionId?: string\n messageId?: string\n context?: Input['context']\n transcript?: string\n}\n\nexport function createTestInput(options?: TestInputOptions): Input {\n return {\n type: options?.type ?? INPUT.TEXT,\n data: options?.data,\n text: options?.text ?? options?.data,\n payload: options?.payload,\n src: options?.src,\n transcript: options?.transcript,\n context: options?.context,\n bot_interaction_id:\n options?.botInteractionId ?? TEST_DEFAULTS.BOT_INTERACTION_ID,\n message_id: options?.messageId ?? TEST_DEFAULTS.MESSAGE_ID,\n }\n}\n\n// ---------------------------------------------------------------------------\n// Composite factories\n// ---------------------------------------------------------------------------\n\nexport interface TestBotRequestOptions {\n input?: TestInputOptions | Input\n session?: TestSessionOptions | Session\n lastRoutePath?: string\n settings?: Partial<BotSettings> | BotSettings\n secrets?: Partial<BotSecrets> | BotSecrets\n}\n\nfunction isFullInput(v: TestInputOptions | Input): v is Input {\n return 'bot_interaction_id' in v && 'message_id' in v\n}\n\nfunction isFullSession(v: TestSessionOptions | Session): v is Session {\n return 'bot' in v && '__retries' in v\n}\n\nfunction isFullSettings(\n v: Partial<BotSettings> | BotSettings\n): v is BotSettings {\n return (\n 'HUBTYPE_API_URL' in v &&\n 'STATIC_URL' in v &&\n 'LITELLM_API_URL' in v &&\n 'AZURE_OPENAI_API_BASE' in v &&\n 'AZURE_OPENAI_API_VERSION' in v &&\n 'LANGUAGE_DETECTION_ENABLED' in v &&\n 'CUSTOM_SHORT_URL_HOST' in v &&\n 'custom' in v\n )\n}\n\nfunction isFullSecrets(v: Partial<BotSecrets> | BotSecrets): v is BotSecrets {\n return (\n 'HUBTYPE_ACCESS_TOKEN' in v &&\n 'LITELLM_API_KEY' in v &&\n 'AZURE_OPENAI_API_KEY' in v &&\n 'custom' in v\n )\n}\n\nexport function createTestBotRequest(\n options?: TestBotRequestOptions\n): BotRequest {\n const input =\n options?.input == null\n ? createTestInput()\n : isFullInput(options.input)\n ? options.input\n : createTestInput(options.input)\n\n const session =\n options?.session == null\n ? createTestSession()\n : isFullSession(options.session)\n ? options.session\n : createTestSession(options.session)\n\n const settings =\n options?.settings == null\n ? createTestSettings()\n : isFullSettings(options.settings)\n ? options.settings\n : createTestSettings(options.settings)\n\n const secrets =\n options?.secrets == null\n ? createTestSecrets()\n : isFullSecrets(options.secrets)\n ? options.secrets\n : createTestSecrets(options.secrets)\n\n return {\n input,\n session,\n lastRoutePath: options?.lastRoutePath ?? TEST_DEFAULTS.LAST_ROUTE_PATH,\n settings,\n secrets,\n }\n}\n\nexport interface TestBotContextOptions<\n TPlugins extends ResolvedPlugins = ResolvedPlugins,\n> extends TestBotRequestOptions {\n plugins?: TPlugins\n params?: Record<string, string>\n defaultDelay?: number\n defaultTyping?: number\n}\n\nexport function createTestBotContext<\n TPlugins extends ResolvedPlugins = ResolvedPlugins,\n>(options?: TestBotContextOptions<TPlugins>): BotContext<TPlugins> {\n const request = createTestBotRequest(options)\n\n const sessionForLocale =\n options?.session == null\n ? createTestSession()\n : isFullSession(options.session)\n ? options.session\n : createTestSession(options.session)\n\n const locale = sessionForLocale.user.locale\n const country = sessionForLocale.user.country\n const systemLocale = sessionForLocale.user.system_locale\n\n return {\n ...request,\n plugins: options?.plugins ?? ({} as TPlugins),\n params: options?.params ?? {},\n defaultDelay: options?.defaultDelay ?? 0,\n defaultTyping: options?.defaultTyping ?? 0,\n getUserLocale: () => locale,\n getUserCountry: () => country,\n getSystemLocale: () => systemLocale,\n setUserLocale: () => undefined,\n setUserCountry: () => undefined,\n setSystemLocale: () => undefined,\n }\n}\n\n/**\n * Alias for `createTestBotContext` typed as `PluginPreRequest`.\n * PluginPreRequest === BotContext in @botonic/core.\n */\nexport const createTestPluginPreRequest = createTestBotContext\n\nexport interface TestPluginPostRequestOptions<\n TPlugins extends ResolvedPlugins = ResolvedPlugins,\n> extends TestBotContextOptions<TPlugins> {\n response?: string | null\n}\n\nexport function createTestPluginPostRequest<\n TPlugins extends ResolvedPlugins = ResolvedPlugins,\n>(\n options?: TestPluginPostRequestOptions<TPlugins>\n): BotContext<TPlugins> & { response: string | null } {\n return {\n ...createTestBotContext(options),\n response: options?.response ?? null,\n }\n}\n"],"names":["INPUT","PROVIDER","TEST_DEFAULTS","createTestSettings","overrides","createTestSecrets","createTestSessionUser","options","locale","country","createTestSession","undefined","createTestInput","isFullInput","v","isFullSession","isFullSettings","isFullSecrets","createTestBotRequest","input","session","settings","secrets","createTestBotContext","request","sessionForLocale","systemLocale","createTestPluginPreRequest","createTestPluginPostRequest"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { type ZodType } from 'zod';
2
- import { type VariableConfigJSON } from '../models/index';
2
+ import { type VariableConfigJSON } from '../models/index.js';
3
3
  export declare const BASE_SESSION_VARIABLES: VariableConfigJSON[];
4
4
  export declare function getSessionVariables(extraDataSchema?: ZodType): VariableConfigJSON[];
@@ -1,47 +1,68 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BASE_SESSION_VARIABLES = void 0;
4
- exports.getSessionVariables = getSessionVariables;
5
- const zod_1 = require("zod");
6
- const index_1 = require("../models/index");
1
+ import { z } from "zod";
2
+ import { VariableType } from "../models/index.js";
3
+
4
+
5
+
6
+
7
+
7
8
  const SESSION_USER_EXTRA_DATA_PREFIX = 'session.user.extra_data';
8
- exports.BASE_SESSION_VARIABLES = [
9
- { key_path: 'input.data', type: index_1.VariableType.String },
10
- { key_path: 'input.type', type: index_1.VariableType.String },
9
+ const BASE_SESSION_VARIABLES = [
10
+ {
11
+ key_path: 'input.data',
12
+ type: VariableType.String
13
+ },
14
+ {
15
+ key_path: 'input.type',
16
+ type: VariableType.String
17
+ },
11
18
  {
12
19
  key_path: 'session.is_first_interaction',
13
- type: index_1.VariableType.Boolean,
20
+ type: VariableType.Boolean
14
21
  },
15
22
  {
16
23
  key_path: 'session.is_test_integration',
17
- type: index_1.VariableType.Boolean,
24
+ type: VariableType.Boolean
25
+ },
26
+ {
27
+ key_path: 'session._shadowing',
28
+ type: VariableType.Boolean
29
+ },
30
+ {
31
+ key_path: 'session.user.locale',
32
+ type: VariableType.String
18
33
  },
19
- { key_path: 'session._shadowing', type: index_1.VariableType.Boolean },
20
- { key_path: 'session.user.locale', type: index_1.VariableType.String },
21
34
  {
22
35
  key_path: 'session.user.country',
23
- type: index_1.VariableType.String,
36
+ type: VariableType.String
24
37
  },
25
- { key_path: 'session.user.system_locale', type: index_1.VariableType.String },
26
- { key_path: 'session.user.username', type: index_1.VariableType.String },
27
38
  {
28
- key_path: 'session.user.unformatted_phone_number',
29
- type: index_1.VariableType.String,
39
+ key_path: 'session.user.system_locale',
40
+ type: VariableType.String
41
+ },
42
+ {
43
+ key_path: 'session.user.username',
44
+ type: VariableType.String
30
45
  },
46
+ {
47
+ key_path: 'session.user.unformatted_phone_number',
48
+ type: VariableType.String
49
+ }
31
50
  ];
32
51
  function getSessionVariables(extraDataSchema) {
33
- const variables = [...exports.BASE_SESSION_VARIABLES];
52
+ const variables = [
53
+ ...BASE_SESSION_VARIABLES
54
+ ];
34
55
  if (extraDataSchema) {
35
56
  variables.push(...getSessionVariablesFromZodSchema(extraDataSchema));
36
57
  }
37
58
  return variables;
38
59
  }
39
60
  function getSessionVariablesFromZodSchema(schema) {
40
- const jsonSchema = zod_1.z.toJSONSchema(schema);
61
+ const jsonSchema = z.toJSONSchema(schema);
41
62
  if (!jsonSchema.properties) {
42
63
  return [];
43
64
  }
44
- return Object.entries(jsonSchema.properties).flatMap(([key, propertySchema]) => getSessionVariablesFromJsonSchema(propertySchema, `${SESSION_USER_EXTRA_DATA_PREFIX}.${key}`));
65
+ return Object.entries(jsonSchema.properties).flatMap(([key, propertySchema])=>getSessionVariablesFromJsonSchema(propertySchema, `${SESSION_USER_EXTRA_DATA_PREFIX}.${key}`));
45
66
  }
46
67
  function getSessionVariablesFromJsonSchema(schema, keyPath) {
47
68
  const type = getJsonSchemaType(schema);
@@ -51,19 +72,24 @@ function getSessionVariablesFromJsonSchema(schema, keyPath) {
51
72
  return [];
52
73
  }
53
74
  if (type === 'object' && schema.properties) {
54
- return Object.entries(schema.properties).flatMap(([key, propertySchema]) => getSessionVariablesFromJsonSchema(propertySchema, `${keyPath}.${key}`));
75
+ return Object.entries(schema.properties).flatMap(([key, propertySchema])=>getSessionVariablesFromJsonSchema(propertySchema, `${keyPath}.${key}`));
55
76
  }
56
77
  const variableType = getVariableTypeFromJsonSchema(schema);
57
78
  if (!variableType) {
58
79
  return [];
59
80
  }
60
- return [{ key_path: keyPath, type: variableType }];
81
+ return [
82
+ {
83
+ key_path: keyPath,
84
+ type: variableType
85
+ }
86
+ ];
61
87
  }
62
88
  function getJsonSchemaType(schema) {
63
89
  const resolved = resolveJsonSchemaNode(schema);
64
90
  const { type } = resolved;
65
91
  if (Array.isArray(type)) {
66
- return type.find(candidate => candidate !== 'null');
92
+ return type.find((candidate)=>candidate !== 'null');
67
93
  }
68
94
  return type;
69
95
  }
@@ -72,23 +98,26 @@ function getVariableTypeFromJsonSchema(schema) {
72
98
  const type = getJsonSchemaType(resolved);
73
99
  // enum is transformed to string. Review in the future, how to handle them
74
100
  if (type === 'string' || resolved.enum !== undefined) {
75
- return index_1.VariableType.String;
101
+ return VariableType.String;
76
102
  }
77
103
  if (type === 'number' || type === 'integer') {
78
- return index_1.VariableType.Number;
104
+ return VariableType.Number;
79
105
  }
80
106
  if (type === 'boolean') {
81
- return index_1.VariableType.Boolean;
107
+ return VariableType.Boolean;
82
108
  }
83
109
  return undefined;
84
110
  }
85
111
  function resolveJsonSchemaNode(schema) {
86
112
  if (schema.anyOf?.length) {
87
- const nonNullSchema = schema.anyOf.find(candidate => candidate.type !== 'null');
113
+ const nonNullSchema = schema.anyOf.find((candidate)=>candidate.type !== 'null');
88
114
  if (nonNullSchema) {
89
115
  return resolveJsonSchemaNode(nonNullSchema);
90
116
  }
91
117
  }
92
118
  return schema;
93
119
  }
120
+
121
+ export { BASE_SESSION_VARIABLES, getSessionVariables };
122
+
94
123
  //# sourceMappingURL=bot-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bot-config.js","sourceRoot":"","sources":["../../../src/utils/bot-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils/bot-config.js","sources":["../../../src/utils/bot-config.ts"],"sourcesContent":["import { type ZodType, z } from 'zod'\nimport { type VariableConfigJSON, VariableType } from '../models/index'\n\nconst SESSION_USER_EXTRA_DATA_PREFIX = 'session.user.extra_data'\n\nexport const BASE_SESSION_VARIABLES: VariableConfigJSON[] = [\n { key_path: 'input.data', type: VariableType.String },\n { key_path: 'input.type', type: VariableType.String },\n {\n key_path: 'session.is_first_interaction',\n type: VariableType.Boolean,\n },\n {\n key_path: 'session.is_test_integration',\n type: VariableType.Boolean,\n },\n { key_path: 'session._shadowing', type: VariableType.Boolean },\n { key_path: 'session.user.locale', type: VariableType.String },\n {\n key_path: 'session.user.country',\n type: VariableType.String,\n },\n { key_path: 'session.user.system_locale', type: VariableType.String },\n { key_path: 'session.user.username', type: VariableType.String },\n {\n key_path: 'session.user.unformatted_phone_number',\n type: VariableType.String,\n },\n]\n\nexport function getSessionVariables(\n extraDataSchema?: ZodType\n): VariableConfigJSON[] {\n const variables = [...BASE_SESSION_VARIABLES]\n\n if (extraDataSchema) {\n variables.push(...getSessionVariablesFromZodSchema(extraDataSchema))\n }\n\n return variables\n}\n\nfunction getSessionVariablesFromZodSchema(\n schema: ZodType\n): VariableConfigJSON[] {\n const jsonSchema = z.toJSONSchema(schema) as JsonSchemaNode\n\n if (!jsonSchema.properties) {\n return []\n }\n\n return Object.entries(jsonSchema.properties).flatMap(\n ([key, propertySchema]) =>\n getSessionVariablesFromJsonSchema(\n propertySchema,\n `${SESSION_USER_EXTRA_DATA_PREFIX}.${key}`\n )\n )\n}\n\nfunction getSessionVariablesFromJsonSchema(\n schema: JsonSchemaNode,\n keyPath: string\n): VariableConfigJSON[] {\n const type = getJsonSchemaType(schema)\n\n // TODO:Arrays are not supported yet. Review in the future, how to handle them\n // in the frontend feature-flow-builder and in the plugin-flow-builder.\n if (type === 'array') {\n return []\n }\n\n if (type === 'object' && schema.properties) {\n return Object.entries(schema.properties).flatMap(([key, propertySchema]) =>\n getSessionVariablesFromJsonSchema(propertySchema, `${keyPath}.${key}`)\n )\n }\n\n const variableType = getVariableTypeFromJsonSchema(schema)\n if (!variableType) {\n return []\n }\n\n return [{ key_path: keyPath, type: variableType }]\n}\n\nfunction getJsonSchemaType(schema: JsonSchemaNode): string | undefined {\n const resolved = resolveJsonSchemaNode(schema)\n const { type } = resolved\n\n if (Array.isArray(type)) {\n return type.find(candidate => candidate !== 'null')\n }\n\n return type\n}\n\nfunction getVariableTypeFromJsonSchema(\n schema: JsonSchemaNode\n): VariableType | undefined {\n const resolved = resolveJsonSchemaNode(schema)\n const type = getJsonSchemaType(resolved)\n\n // enum is transformed to string. Review in the future, how to handle them\n if (type === 'string' || resolved.enum !== undefined) {\n return VariableType.String\n }\n\n if (type === 'number' || type === 'integer') {\n return VariableType.Number\n }\n\n if (type === 'boolean') {\n return VariableType.Boolean\n }\n\n return undefined\n}\n\ntype JsonSchemaNode = {\n type?: string | string[]\n enum?: unknown[]\n properties?: Record<string, JsonSchemaNode>\n anyOf?: JsonSchemaNode[]\n}\n\nfunction resolveJsonSchemaNode(schema: JsonSchemaNode): JsonSchemaNode {\n if (schema.anyOf?.length) {\n const nonNullSchema = schema.anyOf.find(\n candidate => candidate.type !== 'null'\n )\n if (nonNullSchema) {\n return resolveJsonSchemaNode(nonNullSchema)\n }\n }\n\n return schema\n}\n"],"names":["z","VariableType","SESSION_USER_EXTRA_DATA_PREFIX","BASE_SESSION_VARIABLES","getSessionVariables","extraDataSchema","variables","getSessionVariablesFromZodSchema","schema","jsonSchema","Object","key","propertySchema","getSessionVariablesFromJsonSchema","keyPath","type","getJsonSchemaType","variableType","getVariableTypeFromJsonSchema","resolved","resolveJsonSchemaNode","Array","candidate","undefined","nonNullSchema"],"mappings":";;;;;AAAqC;AACkC;AAEvE,MAAME,8BAA8BA,GAAG;AAEhC,MAAMC,sBAAsBA,GAAyB;IAC1D;QAAE,UAAU;QAAc,MAAMF,mBAAmB;IAAC;IACpD;QAAE,UAAU;QAAc,MAAMA,mBAAmB;IAAC;IACpD;QACE,UAAU;QACV,MAAMA,oBAAoB;IAC5B;IACA;QACE,UAAU;QACV,MAAMA,oBAAoB;IAC5B;IACA;QAAE,UAAU;QAAsB,MAAMA,oBAAoB;IAAC;IAC7D;QAAE,UAAU;QAAuB,MAAMA,mBAAmB;IAAC;IAC7D;QACE,UAAU;QACV,MAAMA,mBAAmB;IAC3B;IACA;QAAE,UAAU;QAA8B,MAAMA,mBAAmB;IAAC;IACpE;QAAE,UAAU;QAAyB,MAAMA,mBAAmB;IAAC;IAC/D;QACE,UAAU;QACV,MAAMA,mBAAmB;IAC3B;CACD;AAEM,SAASG,mBAAmBA,CACjCC,eAAyB;IAEzB,MAAMC,YAAY;WAAIH,sBAAsBA;KAAC;IAE7C,IAAIE,iBAAiB;QACnBC,UAAU,IAAI,IAAIC,gCAAgCA,CAACF;IACrD;IAEA,OAAOC;AACT;AAEA,SAASC,gCAAgCA,CACvCC,MAAe;IAEf,MAAMC,aAAaT,cAAc,CAACQ;IAElC,IAAI,CAACC,WAAW,UAAU,EAAE;QAC1B,OAAO,EAAE;IACX;IAEA,OAAOC,OAAO,OAAO,CAACD,WAAW,UAAU,EAAE,OAAO,CAClD,CAAC,CAACE,KAAKC,eAAe,GACpBC,iCAAiCA,CAC/BD,gBACA,GAAGV,8BAA8BA,CAAC,CAAC,EAAES,KAAK;AAGlD;AAEA,SAASE,iCAAiCA,CACxCL,MAAsB,EACtBM,OAAe;IAEf,MAAMC,OAAOC,iBAAiBA,CAACR;IAE/B,8EAA8E;IAC9E,wEAAwE;IACxE,IAAIO,SAAS,SAAS;QACpB,OAAO,EAAE;IACX;IAEA,IAAIA,SAAS,YAAYP,OAAO,UAAU,EAAE;QAC1C,OAAOE,OAAO,OAAO,CAACF,OAAO,UAAU,EAAE,OAAO,CAAC,CAAC,CAACG,KAAKC,eAAe,GACrEC,iCAAiCA,CAACD,gBAAgB,GAAGE,QAAQ,CAAC,EAAEH,KAAK;IAEzE;IAEA,MAAMM,eAAeC,6BAA6BA,CAACV;IACnD,IAAI,CAACS,cAAc;QACjB,OAAO,EAAE;IACX;IAEA,OAAO;QAAC;YAAE,UAAUH;YAAS,MAAMG;QAAa;KAAE;AACpD;AAEA,SAASD,iBAAiBA,CAACR,MAAsB;IAC/C,MAAMW,WAAWC,qBAAqBA,CAACZ;IACvC,MAAM,EAAEO,IAAI,EAAE,GAAGI;IAEjB,IAAIE,MAAM,OAAO,CAACN,OAAO;QACvB,OAAOA,KAAK,IAAI,CAACO,CAAAA,YAAaA,cAAc;IAC9C;IAEA,OAAOP;AACT;AAEA,SAASG,6BAA6BA,CACpCV,MAAsB;IAEtB,MAAMW,WAAWC,qBAAqBA,CAACZ;IACvC,MAAMO,OAAOC,iBAAiBA,CAACG;IAE/B,0EAA0E;IAC1E,IAAIJ,SAAS,YAAYI,SAAS,IAAI,KAAKI,WAAW;QACpD,OAAOtB,mBAAmB;IAC5B;IAEA,IAAIc,SAAS,YAAYA,SAAS,WAAW;QAC3C,OAAOd,mBAAmB;IAC5B;IAEA,IAAIc,SAAS,WAAW;QACtB,OAAOd,oBAAoB;IAC7B;IAEA,OAAOsB;AACT;AASA,SAASH,qBAAqBA,CAACZ,MAAsB;IACnD,IAAIA,OAAO,KAAK,EAAE,QAAQ;QACxB,MAAMgB,gBAAgBhB,OAAO,KAAK,CAAC,IAAI,CACrCc,CAAAA,YAAaA,UAAU,IAAI,KAAK;QAElC,IAAIE,eAAe;YACjB,OAAOJ,qBAAqBA,CAACI;QAC/B;IACF;IAEA,OAAOhB;AACT"}
@@ -1,4 +1,4 @@
1
- import { type Session } from '../models/legacy-types';
1
+ import { type Session } from '../models/legacy-types.js';
2
2
  export declare function isDev(session: Session): boolean;
3
3
  export declare function isWebchat(session: Session): boolean;
4
4
  export declare function isWhatsapp(session: Session): boolean;
@@ -1,34 +1,31 @@
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");
1
+ import { PROVIDER } from "../models/legacy-types.js";
2
+
3
+
4
+
11
5
  // To check Provider in session
12
6
  function isDev(session) {
13
- return session.user.provider === legacy_types_1.PROVIDER.DEV;
7
+ return session.user.provider === PROVIDER.DEV;
14
8
  }
15
9
  function isWebchat(session) {
16
10
  // When the provider is DEV should we return true because it is a webchat?
17
- return session.user.provider === legacy_types_1.PROVIDER.WEBCHAT;
11
+ return session.user.provider === PROVIDER.WEBCHAT;
18
12
  }
19
13
  function isWhatsapp(session) {
20
- return session.user.provider === legacy_types_1.PROVIDER.WHATSAPP;
14
+ return session.user.provider === PROVIDER.WHATSAPP;
21
15
  }
22
16
  function isTelegram(session) {
23
- return session.user.provider === legacy_types_1.PROVIDER.TELEGRAM;
17
+ return session.user.provider === PROVIDER.TELEGRAM;
24
18
  }
25
19
  function isFacebook(session) {
26
- return session.user.provider === legacy_types_1.PROVIDER.FACEBOOK;
20
+ return session.user.provider === PROVIDER.FACEBOOK;
27
21
  }
28
22
  function isInstagram(session) {
29
- return session.user.provider === legacy_types_1.PROVIDER.INSTAGRAM;
23
+ return session.user.provider === PROVIDER.INSTAGRAM;
30
24
  }
31
25
  function isTwitter(session) {
32
- return session.user.provider === legacy_types_1.PROVIDER.TWITTER;
26
+ return session.user.provider === PROVIDER.TWITTER;
33
27
  }
28
+
29
+ export { isDev, isFacebook, isInstagram, isTelegram, isTwitter, isWebchat, isWhatsapp };
30
+
34
31
  //# sourceMappingURL=check-providers.js.map