commandbar 1.10.0 → 1.10.2-alpha

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. package/build/commandbar/src/shared/services/analytics/EventHandler.d.ts +7 -2
  2. package/build/commandbar/src/shared/services/analytics/event-queue.d.ts +13 -0
  3. package/build/commandbar/src/shared/services/analytics/types.d.ts +1 -1
  4. package/build/commandbar/src/shared/services/analytics/v2/client.d.ts +54 -0
  5. package/build/commandbar/src/shared/services/analytics/v2/helpers.d.ts +6 -0
  6. package/build/commandbar/src/shared/services/analytics/v2/schema.d.ts +152 -0
  7. package/build/commandbar/src/shared/services/analytics/v2/types.d.ts +4 -0
  8. package/build/commandbar-js/src/index.d.ts +0 -1
  9. package/build/commandbar-js/src/index.js +1 -1
  10. package/build/commandbar-js/src/snippet.d.ts +7 -1
  11. package/build/internal/src/client/CommandBarClientSDK.d.ts +12 -0
  12. package/build/internal/src/client/CommandBarProxySDK.d.ts +1 -4
  13. package/build/internal/src/client/CommandBarSDK.d.ts +8 -4
  14. package/build/internal/src/client/SDKConfig.d.ts +3 -1
  15. package/build/internal/src/client/globals.d.ts +1 -0
  16. package/build/internal/src/client/symbols.d.ts +5 -1
  17. package/build/internal/src/middleware/CommandFromClientV.d.ts +16 -2
  18. package/build/internal/src/middleware/OrganizationV.d.ts +42 -16
  19. package/build/internal/src/middleware/additionalResource.d.ts +9 -9
  20. package/build/internal/src/middleware/api.d.ts +173 -0
  21. package/build/internal/src/middleware/billing.d.ts +10 -0
  22. package/build/internal/src/middleware/chat.d.ts +3662 -172
  23. package/build/internal/src/middleware/checklist.d.ts +18 -10
  24. package/build/internal/src/middleware/command.d.ts +540 -140
  25. package/build/internal/src/middleware/endUser.d.ts +2 -0
  26. package/build/internal/src/middleware/experienceTemplate.d.ts +2874 -8
  27. package/build/internal/src/middleware/experiencesSearch.d.ts +233 -28
  28. package/build/internal/src/middleware/flags.d.ts +14 -1
  29. package/build/internal/src/middleware/generics.d.ts +1 -0
  30. package/build/internal/src/middleware/helpDocsIntegration.d.ts +98 -0
  31. package/build/internal/src/middleware/helpDocsSearch.d.ts +165 -20
  32. package/build/internal/src/middleware/helpDocsSync.d.ts +4 -0
  33. package/build/internal/src/middleware/helpers/actions.d.ts +6 -6
  34. package/build/internal/src/middleware/helpers/commandTemplate.d.ts +2 -2
  35. package/build/internal/src/middleware/helpers/rules.d.ts +7 -7
  36. package/build/internal/src/middleware/localizedMessage.d.ts +50 -0
  37. package/build/internal/src/middleware/network.d.ts +8 -1
  38. package/build/internal/src/middleware/nudge.d.ts +96 -24
  39. package/build/internal/src/middleware/organization.d.ts +196 -78
  40. package/build/internal/src/middleware/organizationSettings.d.ts +8 -8
  41. package/build/internal/src/middleware/profile.d.ts +8 -0
  42. package/build/internal/src/middleware/recommendationSet.d.ts +18 -9
  43. package/build/internal/src/middleware/theme.d.ts +73 -60
  44. package/build/internal/src/middleware/types.d.ts +25 -6
  45. package/build/internal/src/middleware/user.d.ts +9 -1
  46. package/build/internal/src/middleware/workflow.d.ts +69 -0
  47. package/package.json +5 -2
  48. package/src/index.ts +0 -1
  49. package/src/init.ts +27 -12
  50. package/src/snippet.ts +79 -74
  51. package/build/internal/src/client/OrgConfig.d.ts +0 -5
  52. package/build/internal/src/middleware/guide.d.ts +0 -37
@@ -11,13 +11,12 @@ import { OrganizationStatusV, KeyEventV, RecordSettingsByContextKeyV, InternalSe
11
11
  import { OrganizationSettingsV } from './organizationSettings';
12
12
  import { UserV } from './user';
13
13
  import { ContextV } from './context';
14
- import { GuideV } from './guide';
15
14
  import { HistoryEventV } from './historyEvent';
16
15
  import { HelpDocSyncLogMessageV, HelpDocsSyncV } from './helpDocsSync';
17
16
  import { HelpDocsIntegrationV } from './helpDocsIntegration';
18
17
  import { EndUserStoreDataV, EndUserV, NudgeInteractionStateV, NudgeInteractionsV, ChecklistInteractionStateV, ChecklistInteractionsV, DecideResponseV } from './endUser';
19
18
  import { SkinV } from './skin';
20
- import { ThemeV, ThemeV2V } from './theme';
19
+ import { ThemeV, ThemeV2V, ThemeModeV } from './theme';
21
20
  import { ProfileV } from './profile';
22
21
  import { PlaceholderV } from './placeholder';
23
22
  import { EnvReleaseInfoV, ReleaseStepV, ReleaseV } from './releases';
@@ -32,7 +31,7 @@ import { AudienceV } from './helpers/audience';
32
31
  import { AdditionalResourceV } from './additionalResource';
33
32
  import { RecommendationSetV } from './recommendationSet';
34
33
  import { BillingProfileV, UsageV } from './billing';
35
- import { UserMessageV, AIMessageV, MessageV, AIAnswerPayloadV, AIAnswerV, ContinuationsPayloadV, ContinuationV, CreateAnswerFeedbackPayloadV, QuestionSuggestionsPayloadV, QuestionSuggestionsV, ExperienceV, CreateChatPayloadV, ChatV, CopilotSettingsPreviewV } from './chat';
34
+ import { UserMessageV, AIMessageV, AIMessageExtraV, MessageV, AIAnswerPayloadV, AIAnswerV, ContinuationsPayloadV, ContinuationV, CreateAnswerFeedbackPayloadV, QuestionSuggestionsPayloadV, QuestionSuggestionsV, ExperienceV, CreateChatPayloadV, ChatV, CopilotSettingsPreviewV, HandoffPayloadV, ExternalChatPayloadV, ExternalChatHistoryV } from './chat';
36
35
  import { HelpDocHitV, SearchHelpDocsPayloadV, SearchHelpDocsResponseV } from './helpDocsSearch';
37
36
  import { ExperienceHitV, ExperienceTypeOptions, SearchExperiencesPayloadV, SearchExperiencesResponseV } from './experiencesSearch';
38
37
  import { HelpHubLauncherSettingsV } from './helpHub';
@@ -40,13 +39,19 @@ import { EntityChangeV } from './entityChanges';
40
39
  import { Flags } from './flags';
41
40
  import { CopilotPersonalityAdjectiveV, CopilotPersonalityResponseFormatV, CopilotPersonalityResponseLengthV, CopilotPersonalityV } from './helpers/copilotPersonality';
42
41
  import { ExperienceTemplateV } from './experienceTemplate';
42
+ import { APIV } from './api';
43
+ import { LocalizedMessagePatchV, LocalizedMessageV, LocalizedMessages } from './localizedMessage';
44
+ import { WorkflowV } from './workflow';
43
45
  /*******************************************************************************/
44
46
  export type IInitOptions = {
47
+ apiOrigin?: string;
48
+ cdnOrigin?: string;
45
49
  debug?: boolean;
46
50
  environment?: string;
47
51
  version?: string;
48
52
  config?: any;
49
53
  nonce?: string;
54
+ silentMode?: boolean;
50
55
  };
51
56
  /** Additional foobar init options */
52
57
  export declare const SUPPORTED_FOOBAR_INIT_DEPLOYMENT_OPTIONS: readonly ["dev", "labs", "prod"];
@@ -63,9 +68,6 @@ export type IEditorCommandTypeLite = t.TypeOf<typeof EditorCommandLiteV> & unkno
63
68
  export type ICommandTypeLite = t.TypeOf<typeof CommandLiteV> & unknown;
64
69
  export type { ICommandFromClientType } from './ICommandFromClientType';
65
70
  export type ICommandCategoryType = t.TypeOf<typeof CommandCategoryV> & unknown;
66
- export type IGuideType = t.TypeOf<typeof GuideV> & {
67
- preview?: boolean;
68
- } & unknown;
69
71
  export type IHistoryEventType = t.TypeOf<typeof HistoryEventV> & unknown;
70
72
  export type IEntityChangeType = t.TypeOf<typeof EntityChangeV> & unknown;
71
73
  export type IHelpDocsSyncType = t.TypeOf<typeof HelpDocsSyncV> & unknown;
@@ -78,6 +80,7 @@ export type IInternalSettingsType = t.TypeOf<typeof InternalSettingsV> & unknown
78
80
  export type ISkinType = t.TypeOf<typeof SkinV> & unknown;
79
81
  export type IThemeType = t.TypeOf<typeof ThemeV> & unknown;
80
82
  export type IThemeV2Type = t.TypeOf<typeof ThemeV2V> & unknown;
83
+ export type IThemeModeType = t.TypeOf<typeof ThemeModeV> & unknown;
81
84
  export type IProfileType = t.TypeOf<typeof ProfileV> & unknown;
82
85
  export type IOrganizationSettingsType = t.TypeOf<typeof OrganizationSettingsV> & unknown;
83
86
  export type IPlaceholderType = t.TypeOf<typeof PlaceholderV> & unknown;
@@ -123,6 +126,12 @@ export type INudgeTooltipStepType = INudgeStepType & {
123
126
  type: 'tooltip';
124
127
  };
125
128
  };
129
+ export type INudgePinStepType = INudgeStepType & {
130
+ form_factor: {
131
+ type: 'pin';
132
+ };
133
+ };
134
+ export type INudgeAnchorableStepType = INudgeTooltipStepType | INudgePinStepType;
126
135
  export type INudgeStepContentBlockType = t.TypeOf<typeof NudgeContentBlockV> & unknown;
127
136
  export type INudgeStepContentMarkdownBlockType = t.TypeOf<typeof NudgeContentMarkdownBlockV> & unknown;
128
137
  export type INudgeStepContentImageBlockType = t.TypeOf<typeof NudgeContentImageBlockV> & unknown;
@@ -166,6 +175,7 @@ export type NudgeInteractions = t.TypeOf<typeof NudgeInteractionsV> & unknown;
166
175
  export type IMessageType = t.TypeOf<typeof MessageV> & unknown;
167
176
  export type IUserMessageType = t.TypeOf<typeof UserMessageV> & unknown;
168
177
  export type IAIMessageType = t.TypeOf<typeof AIMessageV> & unknown;
178
+ export type IAIMessageExtraType = t.TypeOf<typeof AIMessageExtraV> & unknown;
169
179
  export type IQuestionSuggestionsType = t.TypeOf<typeof QuestionSuggestionsV> & unknown;
170
180
  export type IQuestionSuggestionsPayloadType = t.TypeOf<typeof QuestionSuggestionsPayloadV> & unknown;
171
181
  export type ICreateChatPayloadType = t.TypeOf<typeof CreateChatPayloadV> & unknown;
@@ -174,6 +184,9 @@ export type IExperienceType = t.TypeOf<typeof ExperienceV> & unknown;
174
184
  export type IContinuationsPayloadType = t.TypeOf<typeof ContinuationsPayloadV> & unknown;
175
185
  export type IAIAnswerType = t.TypeOf<typeof AIAnswerV> & unknown;
176
186
  export type IAIAnswerPayloadType = t.TypeOf<typeof AIAnswerPayloadV> & unknown;
187
+ export type IHandoffPayloadType = t.TypeOf<typeof HandoffPayloadV> & unknown;
188
+ export type IExternalChatPayloadType = t.TypeOf<typeof ExternalChatPayloadV> & unknown;
189
+ export type IExternalChatHistoryType = t.TypeOf<typeof ExternalChatHistoryV> & unknown;
177
190
  export type ICreateAnswerFeedbackPayloadType = t.TypeOf<typeof CreateAnswerFeedbackPayloadV> & unknown;
178
191
  export type ISearchHelpDocsPayloadType = t.TypeOf<typeof SearchHelpDocsPayloadV> & unknown;
179
192
  export type ISearchHelpDocsResponseType = t.TypeOf<typeof SearchHelpDocsResponseV> & unknown;
@@ -229,6 +242,10 @@ export interface IResourceType extends IUserContext {
229
242
  }
230
243
  export type IAdditionalResource = t.TypeOf<typeof AdditionalResourceV> & unknown;
231
244
  export type IRecommendationSet = t.TypeOf<typeof RecommendationSetV> & unknown;
245
+ export type ILocalizedMessage = t.TypeOf<typeof LocalizedMessageV> & unknown;
246
+ export type ILocalizedMessagePatch = t.TypeOf<typeof LocalizedMessagePatchV> & unknown;
247
+ export type IAPI = t.TypeOf<typeof APIV> & unknown;
248
+ export type IWorkflow = t.TypeOf<typeof WorkflowV> & unknown;
232
249
  export type IConfigEndpointResponse = {
233
250
  commands: any[];
234
251
  categories: any[];
@@ -244,6 +261,7 @@ export type IConfigEndpointResponse = {
244
261
  __meta__?: {
245
262
  latest_foobar_version?: string;
246
263
  };
264
+ localized_messages: LocalizedMessages;
247
265
  };
248
266
  export type IConfigType = {
249
267
  commands: ICommandType[];
@@ -260,6 +278,7 @@ export type IConfigType = {
260
278
  latest_foobar_version?: string;
261
279
  };
262
280
  flags: Flags;
281
+ localized_messages: LocalizedMessages;
263
282
  };
264
283
  export type { IRecordSettings } from './IRecordSettings';
265
284
  export type IRecordSettingsByContextKey = t.TypeOf<typeof RecordSettingsByContextKeyV> & unknown;
@@ -7,7 +7,15 @@ export declare const UserV: t.IntersectionC<[t.TypeC<{
7
7
  organization: t.StringC;
8
8
  organization_name: t.StringC;
9
9
  api_token: t.UnionC<[t.StringC, t.NullC]>;
10
- profile: t.NumberC;
10
+ profile: t.TypeC<{
11
+ user: t.StringC;
12
+ organization: t.StringC;
13
+ is_active: t.BooleanC;
14
+ role: t.UnionC<[t.LiteralC<"admin">, t.LiteralC<"editor">, t.LiteralC<"contributor">, t.LiteralC<"viewer">]>;
15
+ first_name: t.StringC;
16
+ last_name: t.StringC;
17
+ email: t.StringC;
18
+ }>;
11
19
  has_updated_password: t.BooleanC;
12
20
  is_active: t.BooleanC;
13
21
  is_hijacked: t.BooleanC;
@@ -0,0 +1,69 @@
1
+ import * as t from 'io-ts';
2
+ export declare const WorkflowV: t.TypeC<{
3
+ id: t.NumberC;
4
+ archived: t.BooleanC;
5
+ is_live: t.BooleanC;
6
+ title: t.StringC;
7
+ prompt: t.StringC;
8
+ trigger: t.AnyC;
9
+ }>;
10
+ export declare class Workflow {
11
+ static decode: (data: any) => {
12
+ id: number;
13
+ archived: boolean;
14
+ is_live: boolean;
15
+ title: string;
16
+ prompt: string;
17
+ trigger: any;
18
+ };
19
+ static create: (object: {
20
+ id: number;
21
+ archived: boolean;
22
+ is_live: boolean;
23
+ title: string;
24
+ prompt: string;
25
+ trigger: any;
26
+ }, onSuccess?: (() => void) | undefined, onError?: ((err: string) => void) | undefined) => Promise<{
27
+ id: number;
28
+ archived: boolean;
29
+ is_live: boolean;
30
+ title: string;
31
+ prompt: string;
32
+ trigger: any;
33
+ }>;
34
+ static update: (object: {
35
+ id: number;
36
+ archived: boolean;
37
+ is_live: boolean;
38
+ title: string;
39
+ prompt: string;
40
+ trigger: any;
41
+ }, onSuccess?: (() => void) | undefined, onError?: ((err: string) => void) | undefined) => Promise<{
42
+ id: number;
43
+ archived: boolean;
44
+ is_live: boolean;
45
+ title: string;
46
+ prompt: string;
47
+ trigger: any;
48
+ }>;
49
+ static delete: (id: string | number, params?: Record<string, string> | undefined, onSuccess?: (() => void) | undefined, onError?: ((err: string) => void) | undefined) => Promise<void>;
50
+ static list: (onSuccess?: (() => void) | undefined, onError?: ((err: string) => void) | undefined) => Promise<{
51
+ id: number;
52
+ archived: boolean;
53
+ is_live: boolean;
54
+ title: string;
55
+ prompt: string;
56
+ trigger: any;
57
+ }[]>;
58
+ static read: (arg0: string, params?: Record<string, string> | undefined, callbacks?: {
59
+ onSuccess?: (() => void) | undefined;
60
+ onError?: ((err: string) => void) | undefined;
61
+ } | undefined) => Promise<{
62
+ id: number;
63
+ archived: boolean;
64
+ is_live: boolean;
65
+ title: string;
66
+ prompt: string;
67
+ trigger: any;
68
+ }>;
69
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "commandbar",
3
- "version": "1.10.0",
3
+ "version": "1.10.2-alpha",
4
4
  "description": "Javascript Utility for CommandBar",
5
5
  "main": "build/commandbar-js/src/index.js",
6
6
  "types": "build/commandbar-js/src/index.d.ts",
@@ -8,7 +8,7 @@
8
8
  "scripts": {
9
9
  "clean": "rimraf build",
10
10
  "build": "NODE_ENV=production webpack build && tsc",
11
- "minify-snippet": "ts-node scripts/minify-snippet.ts",
11
+ "minify-snippet": "tsx scripts/minify-snippet.ts",
12
12
  "prepublishOnly": "yarn run clean && yarn run build",
13
13
  "test": "jest --runInBand",
14
14
  "test:watch": "jest --watch --verbose false --silent false",
@@ -23,7 +23,10 @@
23
23
  "io-ts": "^2.2.14"
24
24
  },
25
25
  "devDependencies": {
26
+ "@types/jest": "^29.5.3",
27
+ "jest": "^29.7.0",
26
28
  "rimraf": "3.0.2",
29
+ "tsx": "^4.9.3",
27
30
  "typescript": "5.1.5",
28
31
  "webpack": "^5.74.0"
29
32
  }
package/src/index.ts CHANGED
@@ -3,7 +3,6 @@ import type { CommandBarClientSDK } from '@commandbar/internal/src/client/Comman
3
3
 
4
4
  export { default as init } from './init';
5
5
  export { initProxySDK as initProxy } from '@commandbar/internal/src/client/proxy';
6
- export { snippet } from './snippet';
7
6
  export { CommandBarClientSDK };
8
7
  export { Launcher, getControlKey };
9
8
 
package/src/init.ts CHANGED
@@ -5,8 +5,8 @@ import { getProxySDK } from '../../internal/src/client/proxy';
5
5
  import { _configuration } from '../../internal/src/client/symbols';
6
6
  import { IInitOptions } from '../../internal/src/middleware/types';
7
7
 
8
- const getSrc = (org: string, nonce?: string) => {
9
- let origin = 'https://api.commandbar.com';
8
+ const getSrc = (org: string, opts: IInitOptions) => {
9
+ let origin = opts.apiOrigin || 'https://api.commandbar.com';
10
10
  const params = [];
11
11
 
12
12
  const lc = localStorage.getItem('commandbar.lc');
@@ -21,8 +21,16 @@ const getSrc = (org: string, nonce?: string) => {
21
21
  params.push('lc=' + lc);
22
22
  }
23
23
 
24
- if (nonce) {
25
- params.push('nonce=' + nonce);
24
+ if (opts.nonce) {
25
+ params.push('nonce=' + encodeURIComponent(opts.nonce));
26
+ }
27
+
28
+ if (opts.silentMode) {
29
+ params.push('silent=true');
30
+ }
31
+
32
+ if (opts.cdnOrigin) {
33
+ params.push('cdn=' + encodeURIComponent(opts.cdnOrigin));
26
34
  }
27
35
 
28
36
  const version = 2;
@@ -32,14 +40,14 @@ const getSrc = (org: string, nonce?: string) => {
32
40
  return src;
33
41
  };
34
42
 
35
- const loadLatest = (org: string, nonce?: string) => {
43
+ const loadLatest = (org: string, opts: IInitOptions) => {
36
44
  if (document.readyState !== 'complete') {
37
45
  // NOTE: `once` is not supported by IE11 and this will cause a (minor!) memory leak.
38
- window.addEventListener('load', loadLatest.bind(null, org, nonce), { capture: false, once: true });
46
+ window.addEventListener('load', loadLatest.bind(null, org, opts), { capture: false, once: true });
39
47
  return;
40
48
  }
41
49
 
42
- const src = getSrc(org, nonce);
50
+ const src = getSrc(org, opts);
43
51
 
44
52
  const el = document.createElement('script');
45
53
  el.type = 'text/javascript';
@@ -48,7 +56,10 @@ const loadLatest = (org: string, nonce?: string) => {
48
56
  document.head.appendChild(el);
49
57
  };
50
58
 
51
- const DEFAULT_OPTS = { debug: false };
59
+ const DEFAULT_OPTS = {
60
+ debug: false,
61
+ silentMode: false,
62
+ } as const;
52
63
 
53
64
  /**
54
65
  * Initializes CommandBar and injects the scripts required to load it into the <head> of the document. After calling
@@ -76,13 +87,17 @@ const init = (org: string, opts: IInitOptions = DEFAULT_OPTS) => {
76
87
  config.debug && console.log('CommandBar init...', { environment: opts.environment, version: opts.version });
77
88
 
78
89
  getProxySDK()[_configuration] = {
90
+ api: config.apiOrigin,
91
+ cdn: config.cdnOrigin,
79
92
  uuid: org,
80
- environment: opts.environment,
81
- version: opts.version,
82
- config: opts.config, // TODO: We should update this type to correctly reflect the structure of the response from /config/ https://cmd-k.slack.com/archives/C0315KNU7FY/p1711558822136239?thread_ts=1711554558.063509&cid=C0315KNU7FY
93
+ environment: config.environment,
94
+ version: config.version,
95
+ config: config.config, // TODO: We should update this type to correctly reflect the structure of the response from /config/ https://cmd-k.slack.com/archives/C0315KNU7FY/p1711558822136239?thread_ts=1711554558.063509&cid=C0315KNU7FY
96
+ nonce: config.nonce,
97
+ silent: config.silentMode,
83
98
  };
84
99
 
85
- loadLatest(org, opts.nonce);
100
+ loadLatest(org, config);
86
101
  };
87
102
 
88
103
  export default init;
package/src/snippet.ts CHANGED
@@ -2,94 +2,99 @@
2
2
  /* eslint-disable prefer-rest-params */
3
3
 
4
4
  /* eslint-disable @typescript-eslint/no-inferrable-types */
5
- export const snippet = (org: string) => {
6
- const polyfills = ['Object.assign', 'Symbol', 'Symbol.for'].join('%2C');
7
- const w = window as unknown as Record<string, unknown>;
5
+ let org = '<org_id>';
6
+ let api = 'https://api.commandbar.com';
7
+ let cdn: string | undefined = undefined;
8
8
 
9
- function loadScript(src: string, async = false) {
10
- if (document.readyState !== 'complete') {
11
- window.addEventListener('load', loadScript.bind(null, src, async), { capture: false, once: true });
12
- }
13
- const el = document.createElement('script');
14
- el.type = 'text/javascript';
15
- el.async = async;
16
- el.src = src;
17
- document.head.appendChild(el);
9
+ const polyfills = ['Object.assign', 'Symbol', 'Symbol.for'].join('%2C');
10
+ const w = window as unknown as Record<string, unknown>;
11
+
12
+ function loadScript(src: string, async = false) {
13
+ if (document.readyState !== 'complete') {
14
+ window.addEventListener('load', loadScript.bind(null, src, async), { capture: false, once: true });
18
15
  }
16
+ const el = document.createElement('script');
17
+ el.type = 'text/javascript';
18
+ el.async = async;
19
+ el.src = src;
20
+ document.head.appendChild(el);
21
+ }
22
+
23
+ function bootstrap() {
24
+ if (w.CommandBar !== undefined) return;
25
+ delete w.__CommandBarBootstrap__;
19
26
 
20
- function bootstrap() {
21
- if (w.CommandBar !== undefined) return;
22
- delete w.__CommandBarBootstrap__;
27
+ const _configuration = Symbol.for('CommandBar::configuration');
28
+ const _disposed = Symbol.for('CommandBar::disposed');
29
+ const _isProxy = Symbol.for('CommandBar::isProxy');
30
+ const _queue = Symbol.for('CommandBar::queue');
31
+ const _unwrap = Symbol.for('CommandBar::unwrap');
32
+ const _eventSubscriptions = Symbol.for('CommandBar::eventSubscriptions');
23
33
 
24
- const _configuration = Symbol.for('CommandBar::configuration');
25
- const _orgConfig = Symbol.for('CommandBar::orgConfig');
26
- const _disposed = Symbol.for('CommandBar::disposed');
27
- const _isProxy = Symbol.for('CommandBar::isProxy');
28
- const _queue = Symbol.for('CommandBar::queue');
29
- const _unwrap = Symbol.for('CommandBar::unwrap');
30
- const _eventSubscriptions = Symbol.for('CommandBar::eventSubscriptions');
34
+ const params = [];
35
+ const lc = localStorage.getItem('commandbar.lc');
31
36
 
32
- const params = [];
33
- const lc = localStorage.getItem('commandbar.lc');
34
- const origin = lc && lc.includes('local') ? 'http://localhost:8000' : 'https://api.commandbar.com';
37
+ if (lc && lc.includes('local')) {
38
+ api = 'http://localhost:8000';
39
+ cdn = undefined;
40
+ }
35
41
 
36
- const proxy = Object.assign(
37
- {
38
- [_configuration]: { uuid: org },
39
- [_orgConfig]: {},
40
- [_disposed]: false,
41
- [_isProxy]: true,
42
- [_queue]: new Array<unknown>(),
43
- [_unwrap]: () => proxy,
44
- [_eventSubscriptions]: undefined,
45
- },
46
- w.CommandBar,
47
- );
42
+ const proxy = Object.assign(
43
+ {
44
+ [_configuration]: { uuid: org, api, cdn },
45
+ [_disposed]: false,
46
+ [_isProxy]: true,
47
+ [_queue]: new Array<unknown>(),
48
+ [_unwrap]: () => proxy,
49
+ [_eventSubscriptions]: undefined,
50
+ },
51
+ w.CommandBar,
52
+ );
48
53
 
49
- const ASYNC_METHODS_SNIPPET = ['addCommand', 'boot', 'addEventSubscriber', 'addRecordAction', 'setFormFactor'];
54
+ const ASYNC_METHODS_SNIPPET = ['addCommand', 'boot', 'addEventSubscriber', 'addRecordAction', 'setFormFactor'];
50
55
 
51
- const sdk = proxy;
56
+ const sdk = proxy;
52
57
 
53
- Object.assign(proxy, {
54
- shareCallbacks: () => ({}),
55
- shareContext: () => ({}),
56
- });
58
+ Object.assign(proxy, {
59
+ shareCallbacks: () => ({}),
60
+ shareContext: () => ({}),
61
+ });
57
62
 
58
- w.CommandBar = new Proxy(proxy, {
59
- get: function (_, prop) {
60
- if (prop in sdk) return proxy[prop];
61
- if ((prop as any) === 'then') return undefined;
62
- if (ASYNC_METHODS_SNIPPET.includes(prop as string)) {
63
- return function () {
64
- // eslint-disable-next-line prefer-rest-params
65
- const a = Array.prototype.slice.call(arguments);
66
- return new Promise((resolve, reject) => {
67
- a.unshift(prop, resolve, reject);
68
- (proxy[_queue] as Array<unknown>).push(a);
69
- });
70
- };
71
- }
63
+ w.CommandBar = new Proxy(proxy, {
64
+ get: function (_, prop) {
65
+ if (prop in sdk) return proxy[prop];
66
+ if ((prop as any) === 'then') return undefined;
67
+ if (ASYNC_METHODS_SNIPPET.includes(prop as string)) {
72
68
  return function () {
73
69
  // eslint-disable-next-line prefer-rest-params
74
70
  const a = Array.prototype.slice.call(arguments);
75
- a.unshift(prop);
76
- (proxy[_queue] as Array<unknown>).push(a);
71
+ return new Promise((resolve, reject) => {
72
+ a.unshift(prop, resolve, reject);
73
+ (proxy[_queue] as Array<unknown>).push(a);
74
+ });
77
75
  };
78
- },
79
- });
76
+ }
77
+ return function () {
78
+ // eslint-disable-next-line prefer-rest-params
79
+ const a = Array.prototype.slice.call(arguments);
80
+ a.unshift(prop);
81
+ (proxy[_queue] as Array<unknown>).push(a);
82
+ };
83
+ },
84
+ });
80
85
 
81
- if (lc !== null) params.push(`lc=${lc}`);
82
- params.push('version=2');
86
+ if (lc !== null) params.push(`lc=${lc}`);
87
+ params.push('version=2');
88
+ if (cdn) params.push(`cdn=${encodeURIComponent(cdn)}`);
83
89
 
84
- loadScript(`${origin}/latest/${org}?${params.join('&')}`, true);
85
- }
90
+ loadScript(`${api}/latest/${org}?${params.join('&')}`, true);
91
+ }
86
92
 
87
- if (typeof Object.assign === 'undefined' || typeof Symbol === 'undefined' || typeof Symbol.for === 'undefined') {
88
- w.__CommandBarBootstrap__ = bootstrap;
89
- loadScript(
90
- 'https://polyfill.io/v3/polyfill.min.js?version=3.101.0&callback=__CommandBarBootstrap__&features=' + polyfills,
91
- );
92
- } else {
93
- bootstrap();
94
- }
95
- };
93
+ if (typeof Object.assign === 'undefined' || typeof Symbol === 'undefined' || typeof Symbol.for === 'undefined') {
94
+ w.__CommandBarBootstrap__ = bootstrap;
95
+ loadScript(
96
+ 'https://polyfill.io/v3/polyfill.min.js?version=3.101.0&callback=__CommandBarBootstrap__&features=' + polyfills,
97
+ );
98
+ } else {
99
+ bootstrap();
100
+ }
@@ -1,5 +0,0 @@
1
- export interface OrgConfig {
2
- name?: string;
3
- silent?: boolean;
4
- eventAttributeBlockList?: string[];
5
- }
@@ -1,37 +0,0 @@
1
- import * as t from 'io-ts';
2
- export declare const GuideV: t.IntersectionC<[t.TypeC<{
3
- id: t.NumberC;
4
- organization: t.StringC;
5
- event: t.StringC;
6
- nudge: t.StringC;
7
- guidance: t.StringC;
8
- }>, t.PartialC<{}>]>;
9
- export declare class Guide {
10
- static create: (object: {
11
- id: number;
12
- organization: string;
13
- event: string;
14
- nudge: string;
15
- guidance: string;
16
- } & {}, onSuccess?: (() => void) | undefined, onError?: ((err: string) => void) | undefined) => Promise<{
17
- id: number;
18
- organization: string;
19
- event: string;
20
- nudge: string;
21
- guidance: string;
22
- } & {}>;
23
- static update: (object: {
24
- id: number;
25
- organization: string;
26
- event: string;
27
- nudge: string;
28
- guidance: string;
29
- } & {}, onSuccess?: (() => void) | undefined, onError?: ((err: string) => void) | undefined) => Promise<{
30
- id: number;
31
- organization: string;
32
- event: string;
33
- nudge: string;
34
- guidance: string;
35
- } & {}>;
36
- static delete: (id: string | number, params?: Record<string, string> | undefined, onSuccess?: (() => void) | undefined, onError?: ((err: string) => void) | undefined) => Promise<void>;
37
- }