@salesforce/platform-sdk 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/LICENSE.txt +82 -0
  2. package/README.md +62 -0
  3. package/dist/analytics/analytics.d.ts +21 -0
  4. package/dist/analytics/analytics.d.ts.map +1 -0
  5. package/dist/analytics/error-listener.d.ts +9 -0
  6. package/dist/analytics/error-listener.d.ts.map +1 -0
  7. package/dist/analytics/index.d.ts +8 -0
  8. package/dist/analytics/index.d.ts.map +1 -0
  9. package/dist/analytics/method-configs.d.ts +11 -0
  10. package/dist/analytics/method-configs.d.ts.map +1 -0
  11. package/dist/analytics/proxy.d.ts +14 -0
  12. package/dist/analytics/proxy.d.ts.map +1 -0
  13. package/dist/analytics/schemas.d.ts +7 -0
  14. package/dist/analytics/schemas.d.ts.map +1 -0
  15. package/dist/analytics/subscribe-wrapper.d.ts +7 -0
  16. package/dist/analytics/subscribe-wrapper.d.ts.map +1 -0
  17. package/dist/analytics/types.d.ts +90 -0
  18. package/dist/analytics/types.d.ts.map +1 -0
  19. package/dist/chat/index.d.ts +22 -0
  20. package/dist/chat/index.d.ts.map +1 -0
  21. package/dist/chat/mcpapps.d.ts +61 -0
  22. package/dist/chat/mcpapps.d.ts.map +1 -0
  23. package/dist/chat/openai.d.ts +25 -0
  24. package/dist/chat/openai.d.ts.map +1 -0
  25. package/dist/chat/salesforce-acc.d.ts +13 -0
  26. package/dist/chat/salesforce-acc.d.ts.map +1 -0
  27. package/dist/chat/singleton.d.ts +32 -0
  28. package/dist/chat/singleton.d.ts.map +1 -0
  29. package/dist/core/acc-types.d.ts +49 -0
  30. package/dist/core/acc-types.d.ts.map +1 -0
  31. package/dist/core/capabilities.d.ts +40 -0
  32. package/dist/core/capabilities.d.ts.map +1 -0
  33. package/dist/core/chat.d.ts +203 -0
  34. package/dist/core/chat.d.ts.map +1 -0
  35. package/dist/core/data.d.ts +38 -0
  36. package/dist/core/data.d.ts.map +1 -0
  37. package/dist/core/index.d.ts +24 -0
  38. package/dist/core/index.d.ts.map +1 -0
  39. package/dist/core/jsonrpc-client.d.ts +167 -0
  40. package/dist/core/jsonrpc-client.d.ts.map +1 -0
  41. package/dist/core/jsonrpc.d.ts +123 -0
  42. package/dist/core/jsonrpc.d.ts.map +1 -0
  43. package/dist/core/lightning.d.ts +42 -0
  44. package/dist/core/lightning.d.ts.map +1 -0
  45. package/dist/core/mcpapps-session.d.ts +107 -0
  46. package/dist/core/mcpapps-session.d.ts.map +1 -0
  47. package/dist/core/mfe-protocol/message-channel-transport.d.ts +79 -0
  48. package/dist/core/mfe-protocol/message-channel-transport.d.ts.map +1 -0
  49. package/dist/core/options.d.ts +16 -0
  50. package/dist/core/options.d.ts.map +1 -0
  51. package/dist/core/platforms.d.ts +229 -0
  52. package/dist/core/platforms.d.ts.map +1 -0
  53. package/dist/core/sdk-promise.d.ts +14 -0
  54. package/dist/core/sdk-promise.d.ts.map +1 -0
  55. package/dist/core/surface.d.ts +24 -0
  56. package/dist/core/surface.d.ts.map +1 -0
  57. package/dist/core/view.d.ts +308 -0
  58. package/dist/core/view.d.ts.map +1 -0
  59. package/dist/data/gql.d.ts +7 -0
  60. package/dist/data/gql.d.ts.map +1 -0
  61. package/dist/data/index.d.ts +34 -0
  62. package/dist/data/index.d.ts.map +1 -0
  63. package/dist/data/mosaic/fetch.d.ts +21 -0
  64. package/dist/data/mosaic/fetch.d.ts.map +1 -0
  65. package/dist/data/mosaic/index.d.ts +22 -0
  66. package/dist/data/mosaic/index.d.ts.map +1 -0
  67. package/dist/data/openai/index.d.ts +9 -0
  68. package/dist/data/openai/index.d.ts.map +1 -0
  69. package/dist/data/shared/graphql/cache/command.d.ts +93 -0
  70. package/dist/data/shared/graphql/cache/command.d.ts.map +1 -0
  71. package/dist/data/shared/graphql/cache/index.d.ts +7 -0
  72. package/dist/data/shared/graphql/cache/index.d.ts.map +1 -0
  73. package/dist/data/shared/graphql/headers.d.ts +13 -0
  74. package/dist/data/shared/graphql/headers.d.ts.map +1 -0
  75. package/dist/data/shared/url-utils.d.ts +9 -0
  76. package/dist/data/shared/url-utils.d.ts.map +1 -0
  77. package/dist/data/webapp/client-headers.interceptor.d.ts +12 -0
  78. package/dist/data/webapp/client-headers.interceptor.d.ts.map +1 -0
  79. package/dist/data/webapp/csrf/header.interceptor.d.ts +19 -0
  80. package/dist/data/webapp/csrf/header.interceptor.d.ts.map +1 -0
  81. package/dist/data/webapp/csrf/retry.interceptor.d.ts +8 -0
  82. package/dist/data/webapp/csrf/retry.interceptor.d.ts.map +1 -0
  83. package/dist/data/webapp/csrf/retry.policy.d.ts +31 -0
  84. package/dist/data/webapp/csrf/retry.policy.d.ts.map +1 -0
  85. package/dist/data/webapp/csrf/token-manager.d.ts +42 -0
  86. package/dist/data/webapp/csrf/token-manager.d.ts.map +1 -0
  87. package/dist/data/webapp/fetch.d.ts +27 -0
  88. package/dist/data/webapp/fetch.d.ts.map +1 -0
  89. package/dist/data/webapp/index.d.ts +19 -0
  90. package/dist/data/webapp/index.d.ts.map +1 -0
  91. package/dist/index.d.ts +13 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +1506 -0
  94. package/dist/lightning/index.d.ts +15 -0
  95. package/dist/lightning/index.d.ts.map +1 -0
  96. package/dist/telemetry/action-piggyback.d.ts +7 -0
  97. package/dist/telemetry/action-piggyback.d.ts.map +1 -0
  98. package/dist/telemetry/buffer.d.ts +22 -0
  99. package/dist/telemetry/buffer.d.ts.map +1 -0
  100. package/dist/telemetry/index.d.ts +10 -0
  101. package/dist/telemetry/index.d.ts.map +1 -0
  102. package/dist/telemetry/transport.d.ts +3 -0
  103. package/dist/telemetry/transport.d.ts.map +1 -0
  104. package/dist/telemetry/types.d.ts +32 -0
  105. package/dist/telemetry/types.d.ts.map +1 -0
  106. package/dist/telemetry/uploader/TelemetryUploader.d.ts +43 -0
  107. package/dist/telemetry/uploader/TelemetryUploader.d.ts.map +1 -0
  108. package/dist/telemetry/uploader/interfaces.d.ts +61 -0
  109. package/dist/telemetry/uploader/interfaces.d.ts.map +1 -0
  110. package/dist/telemetry/widget-state-flush.d.ts +14 -0
  111. package/dist/telemetry/widget-state-flush.d.ts.map +1 -0
  112. package/dist/view/index.d.ts +22 -0
  113. package/dist/view/index.d.ts.map +1 -0
  114. package/dist/view/mcpapps.d.ts +24 -0
  115. package/dist/view/mcpapps.d.ts.map +1 -0
  116. package/dist/view/openai.d.ts +11 -0
  117. package/dist/view/openai.d.ts.map +1 -0
  118. package/dist/view/singleton.d.ts +32 -0
  119. package/dist/view/singleton.d.ts.map +1 -0
  120. package/dist/view/utils.d.ts +59 -0
  121. package/dist/view/utils.d.ts.map +1 -0
  122. package/package.json +51 -0
@@ -0,0 +1,15 @@
1
+ import { LightningSDK, SDKOptions } from '../core';
2
+ /**
3
+ * Options for creating a LightningSDK instance.
4
+ */
5
+ export interface LightningSDKOptions extends SDKOptions {
6
+ }
7
+ /**
8
+ * Create and initialize a LightningSDK instance based on the detected surface
9
+ *
10
+ * @param options - Optional configuration including surface override
11
+ * @returns Promise resolving to an initialized LightningSDK instance
12
+ */
13
+ export declare function createLightningSDK(options?: LightningSDKOptions): Promise<LightningSDK>;
14
+ export type { LightningSDK, SDKOptions } from '../core';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lightning/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAExD;;GAEG;AAEH,MAAM,WAAW,mBAAoB,SAAQ,UAAU;CAAG;AAE1D;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CAuBvF;AAED,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { TelemetryBuffer } from './buffer';
2
+ export declare class ActionPiggybackAdapter {
3
+ private readonly buffer;
4
+ constructor(buffer: TelemetryBuffer);
5
+ wrapAction(args: Record<string, unknown>): Record<string, unknown>;
6
+ }
7
+ //# sourceMappingURL=action-piggyback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-piggyback.d.ts","sourceRoot":"","sources":["../../src/telemetry/action-piggyback.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,qBAAa,sBAAsB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;gBAE7B,MAAM,EAAE,eAAe;IAInC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQlE"}
@@ -0,0 +1,22 @@
1
+ import { EnvelopeEntry, EnvelopeMetadata } from './types';
2
+ interface BufferOptions {
3
+ maxBufferSize: number;
4
+ onError?: (context: {
5
+ reason: string;
6
+ droppedCount?: number;
7
+ }) => void;
8
+ }
9
+ export declare class TelemetryBuffer {
10
+ private entries;
11
+ private totalBytes;
12
+ private readonly maxBufferSize;
13
+ private readonly onError?;
14
+ constructor(options: BufferOptions);
15
+ get size(): number;
16
+ get isEmpty(): boolean;
17
+ enqueue(envelope: Uint8Array, metadata?: EnvelopeMetadata): void;
18
+ drain(): EnvelopeEntry[];
19
+ private evict;
20
+ }
21
+ export {};
22
+ //# sourceMappingURL=buffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../../src/telemetry/buffer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAW/D,UAAU,aAAa;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACvE;AAED,qBAAa,eAAe;IAC3B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAA+D;gBAE5E,OAAO,EAAE,aAAa;IAKlC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAmBhE,KAAK,IAAI,aAAa,EAAE;IAOxB,OAAO,CAAC,KAAK;CAWb"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ export { createTelemetryTransport } from './transport';
7
+ export { registerTelemetryUploader, TelemetryUploader } from './uploader/TelemetryUploader';
8
+ export type { TelemetryTransport, TelemetryTransportOptions, TelemetryPayload, EnvelopeEntry, EnvelopeMetadata, } from './types';
9
+ export type { TelemetryUploaderOptions, OnEnvelopeCallback, FlushReason, TelemetryUploadContext, TelemetryUploaderErrorContext, InstrumentedAppLike, DisposeOptions, } from './uploader/interfaces';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC5F,YAAY,EACX,kBAAkB,EAClB,yBAAyB,EACzB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,GAChB,MAAM,SAAS,CAAC;AACjB,YAAY,EACX,wBAAwB,EACxB,kBAAkB,EAClB,WAAW,EACX,sBAAsB,EACtB,6BAA6B,EAC7B,mBAAmB,EACnB,cAAc,GACd,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { TelemetryTransport, TelemetryTransportOptions } from './types';
2
+ export declare function createTelemetryTransport(options: TelemetryTransportOptions): TelemetryTransport;
3
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/telemetry/transport.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,yBAAyB,EAAoB,MAAM,SAAS,CAAC;AAM/F,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,kBAAkB,CA2B/F"}
@@ -0,0 +1,32 @@
1
+ import { ChatSDK } from '../core';
2
+ export interface EnvelopeMetadata {
3
+ traceId?: string;
4
+ instanceId?: string;
5
+ componentRef?: string;
6
+ }
7
+ export interface EnvelopeEntry {
8
+ data: string;
9
+ traceId?: string;
10
+ instanceId?: string;
11
+ componentRef?: string;
12
+ timestamp: number;
13
+ }
14
+ export interface TelemetryPayload {
15
+ envelopes: EnvelopeEntry[];
16
+ }
17
+ export interface TelemetryTransportOptions {
18
+ sdk: ChatSDK;
19
+ flushOnAction?: boolean;
20
+ maxBufferSize?: number;
21
+ flushInterval?: number;
22
+ onError?: (context: {
23
+ reason: string;
24
+ droppedCount?: number;
25
+ }) => void;
26
+ }
27
+ export interface TelemetryTransport {
28
+ enqueue(envelope: Uint8Array, metadata?: EnvelopeMetadata): void;
29
+ wrapAction(args: Record<string, unknown>): Record<string, unknown>;
30
+ dispose(): void;
31
+ }
32
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/telemetry/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,WAAW,gBAAgB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAChC,SAAS,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACzC,GAAG,EAAE,OAAO,CAAC;IACb,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACvE;AAED,MAAM,WAAW,kBAAkB;IAClC,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnE,OAAO,IAAI,IAAI,CAAC;CAChB"}
@@ -0,0 +1,43 @@
1
+ import { DisposeOptions, FlushReason, InstrumentedAppLike, LogCollectorLike, MetricsCollectorLike, MetricsExtractorMethodsLike, TelemetryUploaderOptions } from './interfaces';
2
+ export declare class TelemetryUploader implements LogCollectorLike, MetricsCollectorLike {
3
+ private readonly _collector;
4
+ private readonly _onEnvelope;
5
+ private readonly _onError?;
6
+ private readonly _enableClickTrigger;
7
+ private readonly _enableVisibilityTrigger;
8
+ private readonly _messagesLimit;
9
+ private readonly _metricsLimit;
10
+ private readonly _uploadInterval;
11
+ private readonly _clickUploadDelay;
12
+ private readonly _clickTriggerCooldown;
13
+ private readonly _boundClickListener;
14
+ private readonly _boundVisibilityChangeListener;
15
+ private readonly _boundPageHideListener;
16
+ private _intervalHandle?;
17
+ private _clickTimeoutHandle?;
18
+ private _flushPromise?;
19
+ private _pendingFlushReason?;
20
+ private _lastClickTriggeredAt;
21
+ private _isDisposed;
22
+ constructor(options: TelemetryUploaderOptions);
23
+ get hasData(): boolean;
24
+ get estimatedByteSize(): number;
25
+ get messagesCount(): number;
26
+ get metricsCount(): number;
27
+ getIsCollectDisabled(): boolean;
28
+ collect(schema: unknown, data: unknown, logMeta: unknown): void;
29
+ receiveMetricsExtractors(extractors: MetricsExtractorMethodsLike): void;
30
+ flush(reason?: FlushReason): Promise<void>;
31
+ dispose(options?: DisposeOptions): Promise<void>;
32
+ private _attachWindowListeners;
33
+ private _detachWindowListeners;
34
+ private _handleClick;
35
+ private _handleVisibilityChange;
36
+ private _handlePageHide;
37
+ private _restartInterval;
38
+ private _stopInterval;
39
+ private _shouldFlushForThreshold;
40
+ private _flushInternal;
41
+ }
42
+ export declare function registerTelemetryUploader(instrumentedApp: InstrumentedAppLike, options: TelemetryUploaderOptions): TelemetryUploader;
43
+ //# sourceMappingURL=TelemetryUploader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TelemetryUploader.d.ts","sourceRoot":"","sources":["../../../src/telemetry/uploader/TelemetryUploader.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACX,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,EAG3B,wBAAwB,EACxB,MAAM,cAAc,CAAC;AAuBtB,qBAAa,iBAAkB,YAAW,gBAAgB,EAAE,oBAAoB;IAC/E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyC;IACrE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAsC;IAChE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAU;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAgC;IACpE,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAA2C;IAC1F,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAmC;IAC1E,OAAO,CAAC,eAAe,CAAC,CAAiC;IACzD,OAAO,CAAC,mBAAmB,CAAC,CAAgC;IAC5D,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,mBAAmB,CAAC,CAAc;IAC1C,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,EAAE,wBAAwB;IA4B7C,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,oBAAoB,IAAI,OAAO;IAI/B,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAO/D,wBAAwB,CAAC,UAAU,EAAE,2BAA2B,GAAG,IAAI;IAIjE,KAAK,CAAC,MAAM,GAAE,WAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBpD,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAatD,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,YAAY;IAwBpB,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,wBAAwB;YAIlB,cAAc;CA2B5B;AAED,wBAAgB,yBAAyB,CACxC,eAAe,EAAE,mBAAmB,EACpC,OAAO,EAAE,wBAAwB,GAC/B,iBAAiB,CAcnB"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ export type FlushReason = "manual" | "interval" | "threshold" | "click" | "visibilitychange" | "pagehide" | "dispose";
7
+ export interface TelemetryEnvironment {
8
+ appName?: string;
9
+ appVersion?: string;
10
+ appExperience?: string;
11
+ deviceId?: string;
12
+ deviceModel?: string;
13
+ sdkVersion?: string;
14
+ }
15
+ export interface TelemetryUploadContext {
16
+ reason: FlushReason;
17
+ messagesCount: number;
18
+ metricsCount: number;
19
+ estimatedByteSize: number;
20
+ triggeredAt: number;
21
+ }
22
+ export type OnEnvelopeCallback = (coreEnvelope: Uint8Array, context: TelemetryUploadContext) => void | Promise<void>;
23
+ export interface TelemetryUploaderErrorContext extends TelemetryUploadContext {
24
+ error: unknown;
25
+ }
26
+ export interface TelemetryUploaderOptions {
27
+ onEnvelope: OnEnvelopeCallback;
28
+ environment?: TelemetryEnvironment;
29
+ uploadInterval?: number;
30
+ messagesLimit?: number;
31
+ metricsLimit?: number;
32
+ maxUniqueSchemas?: number;
33
+ enableClickTrigger?: boolean;
34
+ enableVisibilityTrigger?: boolean;
35
+ clickUploadDelay?: number;
36
+ clickTriggerCooldown?: number;
37
+ onError?: (context: TelemetryUploaderErrorContext) => void;
38
+ }
39
+ export interface MetricsExtractorMethodsLike {
40
+ getAllBucketHistograms(): unknown[];
41
+ getAllUpCounters(): unknown[];
42
+ getAllValueRecorders(): unknown[];
43
+ }
44
+ export interface LogCollectorLike {
45
+ getIsCollectDisabled?(): boolean;
46
+ collect(schema: unknown, data: unknown, logMeta: unknown): void;
47
+ }
48
+ export interface MetricsCollectorLike {
49
+ receiveMetricsExtractors(extractors: MetricsExtractorMethodsLike): void;
50
+ }
51
+ export interface InstrumentedAppLike {
52
+ registerLogCollector(collector: LogCollectorLike, options?: {
53
+ retroactive?: boolean;
54
+ }): void;
55
+ registerMetricsCollector(collector: MetricsCollectorLike): void;
56
+ activateClickTracker?(): void;
57
+ }
58
+ export interface DisposeOptions {
59
+ flush?: boolean;
60
+ }
61
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/telemetry/uploader/interfaces.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,WAAW,GACpB,QAAQ,GACR,UAAU,GACV,WAAW,GACX,OAAO,GACP,kBAAkB,GAClB,UAAU,GACV,SAAS,CAAC;AAEb,MAAM,WAAW,oBAAoB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACtC,MAAM,EAAE,WAAW,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,kBAAkB,GAAG,CAChC,YAAY,EAAE,UAAU,EACxB,OAAO,EAAE,sBAAsB,KAC3B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,WAAW,6BAA8B,SAAQ,sBAAsB;IAC5E,KAAK,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACxC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,6BAA6B,KAAK,IAAI,CAAC;CAC3D;AAED,MAAM,WAAW,2BAA2B;IAC3C,sBAAsB,IAAI,OAAO,EAAE,CAAC;IACpC,gBAAgB,IAAI,OAAO,EAAE,CAAC;IAC9B,oBAAoB,IAAI,OAAO,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAChC,oBAAoB,CAAC,IAAI,OAAO,CAAC;IACjC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CAChE;AAED,MAAM,WAAW,oBAAoB;IACpC,wBAAwB,CAAC,UAAU,EAAE,2BAA2B,GAAG,IAAI,CAAC;CACxE;AAED,MAAM,WAAW,mBAAmB;IACnC,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7F,wBAAwB,CAAC,SAAS,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAChE,oBAAoB,CAAC,IAAI,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB"}
@@ -0,0 +1,14 @@
1
+ import { ChatSDK } from '../core';
2
+ import { TelemetryBuffer } from './buffer';
3
+ export declare class WidgetStateFlushAdapter {
4
+ private readonly buffer;
5
+ private readonly sdk;
6
+ private timerId;
7
+ private disposed;
8
+ private readonly handleVisibilityChange;
9
+ private readonly handlePageHide;
10
+ constructor(buffer: TelemetryBuffer, sdk: ChatSDK, flushInterval: number);
11
+ flush(): void;
12
+ dispose(): void;
13
+ }
14
+ //# sourceMappingURL=widget-state-flush.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-state-flush.d.ts","sourceRoot":"","sources":["../../src/telemetry/widget-state-flush.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,qBAAa,uBAAuB;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,OAAO,CAA+C;IAC9D,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAIrC;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAE7B;gBAEU,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM;IASxE,KAAK,IAAI,IAAI;IASb,OAAO,IAAI,IAAI;CAcf"}
@@ -0,0 +1,22 @@
1
+ import { SDKOptions, ViewSDK, McpAppsSessionOptions } from '../core';
2
+ /**
3
+ * Options for creating a ViewSDK instance.
4
+ */
5
+ export interface ViewSDKOptions extends SDKOptions {
6
+ /** MCP Apps session options (app identity, handshake timeout) */
7
+ mcpApps?: McpAppsSessionOptions;
8
+ }
9
+ /**
10
+ * Create and initialize a ViewSDK instance based on the detected surface
11
+ *
12
+ * For MCP Apps surfaces, this obtains the shared {@link McpAppsSession} singleton
13
+ * (performing the SEP-1865 handshake on the first call across all SDK factories).
14
+ *
15
+ * @param options - Optional configuration including surface override
16
+ * @returns Promise resolving to an initialized ViewSDK instance
17
+ */
18
+ export declare function createViewSDK(options?: ViewSDKOptions): Promise<ViewSDK>;
19
+ export { MCPAppsViewSDK } from './mcpapps';
20
+ export { getViewSDK, getViewSDKSync, resetViewSDK } from './singleton';
21
+ export type { AlertOptions, ModalOptions, SDKOptions, Theme, ThemeMode, ToastOptions, ViewSDK, } from '../core';
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/view/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAI1E;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,UAAU;IACjD,iEAAiE;IACjE,OAAO,CAAC,EAAE,qBAAqB,CAAC;CAChC;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CA6BxE;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvE,YAAY,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,KAAK,EACL,SAAS,EACT,YAAY,EACZ,OAAO,GACP,MAAM,SAAS,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { ViewSDK, AlertOptions, ToastOptions, ModalOptions, Theme, McpAppsSession } from '../core';
2
+ /**
3
+ * ViewSDK implementation for MCP Apps surface.
4
+ *
5
+ * Uses a shared {@link McpAppsSession} for JSON-RPC 2.0 transport instead of
6
+ * owning its own postMessage listener, avoiding duplicate listeners and ID
7
+ * counter collisions when used alongside MCPAppsChatSDK.
8
+ */
9
+ export declare class MCPAppsViewSDK implements ViewSDK {
10
+ private session;
11
+ constructor(session: McpAppsSession);
12
+ /**
13
+ * Send a formatted message to the host via ui/message
14
+ * @param message - The message text
15
+ * @param level - The message severity level (defaults to "info")
16
+ */
17
+ private sendMessage;
18
+ displayAlert(options: AlertOptions): Promise<void>;
19
+ displayToast(options: ToastOptions): Promise<void>;
20
+ displayModal(_options: ModalOptions): Promise<void>;
21
+ getTheme(): Theme | null;
22
+ resize(width: string, height: string): Promise<void>;
23
+ }
24
+ //# sourceMappingURL=mcpapps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpapps.d.ts","sourceRoot":"","sources":["../../src/view/mcpapps.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACX,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,KAAK,EAEL,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C;;;;;;GAMG;AACH,qBAAa,cAAe,YAAW,OAAO;IACjC,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,cAAc;IAE3C;;;;OAIG;YACW,WAAW;IAcnB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzD,QAAQ,IAAI,KAAK,GAAG,IAAI;IAKlB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA2B1D"}
@@ -0,0 +1,11 @@
1
+ import { ViewSDK, AlertOptions, ToastOptions, ModalOptions, Theme } from '../core';
2
+ /**
3
+ * ViewSDK implementation for OpenAI surface
4
+ */
5
+ export declare class OpenAIViewSDK implements ViewSDK {
6
+ displayAlert(options: AlertOptions): Promise<void>;
7
+ displayToast(options: ToastOptions): Promise<void>;
8
+ displayModal(options: ModalOptions): Promise<void>;
9
+ getTheme(): Theme | null;
10
+ }
11
+ //# sourceMappingURL=openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/view/openai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGxF;;GAEG;AACH,qBAAa,aAAc,YAAW,OAAO;IACtC,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlD,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlD,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxD,QAAQ,IAAI,KAAK,GAAG,IAAI;CAIxB"}
@@ -0,0 +1,32 @@
1
+ import { ViewSDK } from '../core';
2
+ import { ViewSDKOptions } from './index';
3
+ /**
4
+ * Get or create a singleton ViewSDK instance.
5
+ *
6
+ * The first caller may provide options (e.g. surface-specific configuration).
7
+ * Subsequent callers receive the same cached Promise regardless of arguments.
8
+ *
9
+ * The Promise itself is cached (not the resolved value) so concurrent callers
10
+ * do not race to create multiple instances.
11
+ *
12
+ * @param options - Optional configuration (only used on first call)
13
+ * @returns Promise resolving to the shared ViewSDK instance
14
+ */
15
+ export declare function getViewSDK(options?: ViewSDKOptions): Promise<ViewSDK>;
16
+ /**
17
+ * Synchronously get the singleton ViewSDK instance.
18
+ *
19
+ * Returns the resolved instance if {@link getViewSDK} has already been
20
+ * called and completed, or `null` if not yet initialized. Use this in
21
+ * contexts where async is not available (e.g., imperative mosaic components).
22
+ *
23
+ * @returns The singleton ViewSDK instance, or null if not yet ready
24
+ */
25
+ export declare function getViewSDKSync(): ViewSDK | null;
26
+ /**
27
+ * Reset the singleton ViewSDK cache.
28
+ *
29
+ * Useful for testing and session reset scenarios.
30
+ */
31
+ export declare function resetViewSDK(): void;
32
+ //# sourceMappingURL=singleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/view/singleton.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAK9C;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAQrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,IAAI,OAAO,GAAG,IAAI,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAGnC"}
@@ -0,0 +1,59 @@
1
+ import { MessageLevel } from '../core';
2
+ /**
3
+ * Get the icon emoji for a given message level
4
+ *
5
+ * Maps message severity levels to their corresponding emoji icons:
6
+ * - info: ℹ️
7
+ * - success: ✅
8
+ * - warning: ⚠️
9
+ * - error: ❌
10
+ *
11
+ * @param level - The message severity level
12
+ * @returns The emoji icon for the level
13
+ */
14
+ export declare function getIconForLevel(level: MessageLevel): string;
15
+ /**
16
+ * Format a message with an icon based on the severity level
17
+ *
18
+ * Prepends the appropriate emoji icon to the message text.
19
+ *
20
+ * @param message - The message text
21
+ * @param level - The message severity level
22
+ * @returns The formatted message with icon prefix (e.g., "ℹ️ Your message")
23
+ */
24
+ export declare function formatMessageWithLevel(message: string, level: MessageLevel): string;
25
+ /**
26
+ * Result type for dimension parsing
27
+ */
28
+ export type ParseDimensionResult = {
29
+ success: true;
30
+ value: number | undefined;
31
+ } | {
32
+ success: false;
33
+ error: string;
34
+ };
35
+ /**
36
+ * Parse a dimension string to a numeric pixel value
37
+ *
38
+ * Supports formats:
39
+ * - "800px" - pixel value with unit
40
+ * - "800" - unitless value (treated as pixels)
41
+ * - "" - empty string returns undefined
42
+ *
43
+ * Rejects with error message:
44
+ * - Invalid formats (e.g., "800rem", "50%", "auto")
45
+ * - Negative values
46
+ * - Non-numeric values
47
+ *
48
+ * @param value - The dimension string to parse
49
+ * @param dimensionName - Name of the dimension for error messages ("width" or "height")
50
+ * @returns Result object with success flag and either value or error message
51
+ *
52
+ * @example
53
+ * parseDimension("800px", "width") // Returns { success: true, value: 800 }
54
+ * parseDimension("600", "height") // Returns { success: true, value: 600 }
55
+ * parseDimension("", "width") // Returns { success: true, value: undefined }
56
+ * parseDimension("50%", "width") // Returns { success: false, error: "Invalid width..." }
57
+ */
58
+ export declare function parseDimension(value: string, dimensionName: string): ParseDimensionResult;
59
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/view/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAa3D;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,CAGnF;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC7B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC5C;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,oBAAoB,CAiCzF"}
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@salesforce/platform-sdk",
3
+ "version": "3.0.0",
4
+ "license": "SEE LICENSE IN LICENSE.txt",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "sideEffects": false,
10
+ "exports": {
11
+ "./package.json": "./package.json",
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js",
15
+ "default": "./dist/index.js"
16
+ }
17
+ },
18
+ "files": [
19
+ "dist"
20
+ ],
21
+ "scripts": {
22
+ "build": "vite build",
23
+ "clean": "rm -rf dist",
24
+ "dev": "vite build --watch",
25
+ "test": "vitest run",
26
+ "test:watch": "vitest",
27
+ "test:coverage": "vitest run --coverage"
28
+ },
29
+ "dependencies": {
30
+ "@conduit-client/command-http-cache-control": "3.17.0",
31
+ "@conduit-client/onestore-graphql-parser": "3.17.0",
32
+ "@conduit-client/service-cache": "3.17.0",
33
+ "@conduit-client/service-cache-control": "3.17.0",
34
+ "@conduit-client/service-cache-inclusion-policy": "3.17.0",
35
+ "@conduit-client/service-fetch-network": "3.17.0",
36
+ "@conduit-client/service-pubsub": "3.17.0",
37
+ "@conduit-client/utils": "3.17.0"
38
+ },
39
+ "peerDependencies": {
40
+ "o11y": ">=260.0.0",
41
+ "o11y_schema": ">=260.63.0"
42
+ },
43
+ "devDependencies": {
44
+ "vite": "^7.3.1",
45
+ "vite-plugin-dts": "^4.5.4",
46
+ "vitest": "^4.0.6"
47
+ },
48
+ "publishConfig": {
49
+ "access": "public"
50
+ }
51
+ }