@kittl/sdk 0.0.7 → 0.0.9
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.
- package/dist/editorContentPanel/sdk.d.ts +2752 -0
- package/dist/editorContentPanel/sdk.esm.js +1286 -0
- package/dist/editorContentPanel/sdk.js +1286 -0
- package/dist/editorScriptRunner/sdk.d.ts +2685 -0
- package/dist/editorScriptRunner/sdk.esm.js +1284 -0
- package/dist/editorScriptRunner/sdk.js +1282 -0
- package/dist/kittl-sdk.esm.js +207 -159
- package/dist/kittl-sdk.js +208 -158
- package/dist/sdk.d.ts +547 -215
- package/dist/sharedFileBrowser/sdk.d.ts +2752 -0
- package/dist/sharedFileBrowser/sdk.esm.js +1001 -0
- package/dist/sharedFileBrowser/sdk.js +1001 -0
- package/package.json +19 -1
package/dist/kittl-sdk.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
"use strict";
|
|
5
5
|
(() => {
|
|
6
|
-
|
|
6
|
+
|
|
7
7
|
var FROM_EXTENSION_COMMANDS = {
|
|
8
8
|
/** SDK API call */
|
|
9
9
|
SDK_CALL: "sdk-call",
|
|
@@ -69,7 +69,6 @@
|
|
|
69
69
|
APP_STATE_UPDATE: "app-state-update"
|
|
70
70
|
};
|
|
71
71
|
|
|
72
|
-
// ../../packages/editor-core/sdk/sdk-bridge/dist/bridge/types/toExtensions.js
|
|
73
72
|
var isSDKResponseMessage = (data) => {
|
|
74
73
|
return typeof data === "object" && data !== null && "command" in data && data.command === TO_EXTENSION_COMMANDS.SDK_RESPONSE && "messageId" in data && typeof data.messageId === "string";
|
|
75
74
|
};
|
|
@@ -92,7 +91,13 @@
|
|
|
92
91
|
return typeof data === "object" && data !== null && "command" in data && data.command === TO_EXTENSION_COMMANDS.FILE_BROWSER_FETCH_CONTENT_REQUEST && "requestId" in data && typeof data.requestId === "string" && "subscriptionId" in data && typeof data.subscriptionId === "string";
|
|
93
92
|
};
|
|
94
93
|
|
|
95
|
-
|
|
94
|
+
var generateMessageId = () => {
|
|
95
|
+
if (crypto?.randomUUID && typeof crypto.randomUUID === "function") {
|
|
96
|
+
return crypto.randomUUID();
|
|
97
|
+
}
|
|
98
|
+
return Math.random().toString(36).substring(7);
|
|
99
|
+
};
|
|
100
|
+
|
|
96
101
|
var buildMethodPath = (rootPrefix, pathSegments) => {
|
|
97
102
|
if (!rootPrefix) {
|
|
98
103
|
return pathSegments.join(".");
|
|
@@ -128,10 +133,6 @@
|
|
|
128
133
|
return createNode([]);
|
|
129
134
|
};
|
|
130
135
|
|
|
131
|
-
// ../../packages/editor-core/sdk/sdk-bridge/dist/bridge/shared/index.js
|
|
132
|
-
var EDITOR_URL = typeof window !== "undefined" ? window.location?.origin : "";
|
|
133
|
-
|
|
134
|
-
// ../../packages/editor-core/sdk/sdk-bridge/dist/bridge/sandboxed/utils/approvedDomain/approvedDomain.js
|
|
135
136
|
var parentDomain;
|
|
136
137
|
var APPROVED_EXTENSION_COMMUNICATION_DOMAINS = [
|
|
137
138
|
"https://app.stagingdesigner.com",
|
|
@@ -191,14 +192,7 @@
|
|
|
191
192
|
return parentDomain;
|
|
192
193
|
};
|
|
193
194
|
|
|
194
|
-
// ../../packages/editor-core/sdk/sdk-bridge/dist/bridge/sandboxed/messageSender.js
|
|
195
195
|
var pendingRequests = /* @__PURE__ */ new Map();
|
|
196
|
-
var generateMessageId = () => {
|
|
197
|
-
if (crypto?.randomUUID && typeof crypto.randomUUID === "function") {
|
|
198
|
-
return crypto.randomUUID();
|
|
199
|
-
}
|
|
200
|
-
return Math.random().toString(36).substring(7);
|
|
201
|
-
};
|
|
202
196
|
var postMessageToParent = (message) => {
|
|
203
197
|
window.parent.postMessage(message, getParentDomain());
|
|
204
198
|
};
|
|
@@ -222,7 +216,6 @@
|
|
|
222
216
|
postMessageToParent(message);
|
|
223
217
|
};
|
|
224
218
|
|
|
225
|
-
// ../../packages/editor-core/sdk/sdk-bridge/dist/bridge/sandboxed/handlers/apiProxy/index.js
|
|
226
219
|
var createSDKCallMessage = {
|
|
227
220
|
ai: (dots, args, messageId) => ({
|
|
228
221
|
command: FROM_EXTENSION_COMMANDS.SDK_CALL,
|
|
@@ -245,6 +238,13 @@
|
|
|
245
238
|
messageId,
|
|
246
239
|
apiType: "design"
|
|
247
240
|
}),
|
|
241
|
+
export: (dots, args, messageId) => ({
|
|
242
|
+
command: FROM_EXTENSION_COMMANDS.SDK_CALL,
|
|
243
|
+
dots,
|
|
244
|
+
args,
|
|
245
|
+
messageId,
|
|
246
|
+
apiType: "export"
|
|
247
|
+
}),
|
|
248
248
|
font: (dots, args, messageId) => ({
|
|
249
249
|
command: FROM_EXTENSION_COMMANDS.SDK_CALL,
|
|
250
250
|
dots,
|
|
@@ -288,7 +288,6 @@
|
|
|
288
288
|
});
|
|
289
289
|
}
|
|
290
290
|
|
|
291
|
-
// ../../packages/editor-core/sdk/sdk-bridge/dist/bridge/sandboxed/handlers/apiProxy/aiApiProxy.js
|
|
292
291
|
var generationHandlers = /* @__PURE__ */ new Map();
|
|
293
292
|
var generationSubscriptions = /* @__PURE__ */ new Map();
|
|
294
293
|
var dispatchAIGenerationUpdate = (subscriptionId, update) => {
|
|
@@ -390,9 +389,11 @@
|
|
|
390
389
|
};
|
|
391
390
|
}
|
|
392
391
|
|
|
393
|
-
// ../../packages/editor-core/sdk/sdk-bridge/dist/bridge/sandboxed/handlers/apiProxy/fileBrowserApiProxy.js
|
|
394
392
|
var fetchContentHandlers = /* @__PURE__ */ new Map();
|
|
395
393
|
var tabIdToSubscriptionId = /* @__PURE__ */ new Map();
|
|
394
|
+
var removeSubscriptionHandlers = (subscriptionId) => {
|
|
395
|
+
fetchContentHandlers.delete(subscriptionId);
|
|
396
|
+
};
|
|
396
397
|
var dispatchFileBrowserFetchContentRequest = (requestId, subscriptionId, params) => {
|
|
397
398
|
const handler = fetchContentHandlers.get(subscriptionId);
|
|
398
399
|
if (!handler) {
|
|
@@ -412,12 +413,12 @@
|
|
|
412
413
|
next: result.next
|
|
413
414
|
};
|
|
414
415
|
postMessageToParent(responseMessage);
|
|
415
|
-
}).catch((
|
|
416
|
+
}).catch((error) => {
|
|
416
417
|
const responseMessage = {
|
|
417
418
|
command: FROM_EXTENSION_COMMANDS.FILE_BROWSER_FETCH_CONTENT_RESPONSE,
|
|
418
419
|
requestId,
|
|
419
420
|
content: [],
|
|
420
|
-
error:
|
|
421
|
+
error: error instanceof Error ? error.message : "Unknown error"
|
|
421
422
|
};
|
|
422
423
|
postMessageToParent(responseMessage);
|
|
423
424
|
});
|
|
@@ -428,7 +429,7 @@
|
|
|
428
429
|
const subscriptionId = generateMessageId();
|
|
429
430
|
const existingSubscriptionId = tabIdToSubscriptionId.get(tab.id);
|
|
430
431
|
if (existingSubscriptionId) {
|
|
431
|
-
|
|
432
|
+
removeSubscriptionHandlers(existingSubscriptionId);
|
|
432
433
|
}
|
|
433
434
|
fetchContentHandlers.set(subscriptionId, tab.fetchContent);
|
|
434
435
|
tabIdToSubscriptionId.set(tab.id, subscriptionId);
|
|
@@ -437,12 +438,14 @@
|
|
|
437
438
|
messageId: generateMessageId(),
|
|
438
439
|
tabId: tab.id,
|
|
439
440
|
label: tab.label,
|
|
441
|
+
order: tab.order,
|
|
442
|
+
emptyState: tab.emptyState,
|
|
440
443
|
subscriptionId
|
|
441
444
|
};
|
|
442
445
|
try {
|
|
443
446
|
const response = await sendMessage(registerMessage);
|
|
444
447
|
if (!response.isOk) {
|
|
445
|
-
|
|
448
|
+
removeSubscriptionHandlers(subscriptionId);
|
|
446
449
|
tabIdToSubscriptionId.delete(tab.id);
|
|
447
450
|
return {
|
|
448
451
|
isOk: false,
|
|
@@ -454,7 +457,8 @@
|
|
|
454
457
|
result: void 0
|
|
455
458
|
};
|
|
456
459
|
} catch {
|
|
457
|
-
|
|
460
|
+
removeSubscriptionHandlers(subscriptionId);
|
|
461
|
+
tabIdToSubscriptionId.delete(tab.id);
|
|
458
462
|
return {
|
|
459
463
|
isOk: false,
|
|
460
464
|
error: {
|
|
@@ -467,7 +471,6 @@
|
|
|
467
471
|
};
|
|
468
472
|
}
|
|
469
473
|
|
|
470
|
-
// ../../packages/editor-core/sdk/sdk-bridge/dist/bridge/sandboxed/handlers/appState/index.js
|
|
471
474
|
var sendUnsubscribe = (selectorIds) => {
|
|
472
475
|
const message = {
|
|
473
476
|
command: FROM_EXTENSION_COMMANDS.APP_STATE_UNSUBSCRIBE,
|
|
@@ -532,105 +535,126 @@
|
|
|
532
535
|
return { subscribe, dispatch };
|
|
533
536
|
};
|
|
534
537
|
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
return base64.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
543
|
-
};
|
|
544
|
-
var generatePKCECode = () => {
|
|
545
|
-
if (!window.crypto) {
|
|
546
|
-
throw new Error("Crypto API not available");
|
|
538
|
+
var SandboxedAuthClient = class {
|
|
539
|
+
/**
|
|
540
|
+
* Binds the public start method because the exported SDK API may pass it
|
|
541
|
+
* around without its client object as the receiver.
|
|
542
|
+
*/
|
|
543
|
+
constructor() {
|
|
544
|
+
this.startAuth = this.startAuth.bind(this);
|
|
547
545
|
}
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
546
|
+
/**
|
|
547
|
+
* Starts provider authentication and optionally adds an RFC 7636 PKCE
|
|
548
|
+
* challenge to the request. Successful responses include the verifier that
|
|
549
|
+
* the caller must pass to {@link exchangeCode}.
|
|
550
|
+
*/
|
|
551
|
+
async startAuth(request) {
|
|
552
|
+
const state = generateMessageId();
|
|
553
|
+
let pkceCode = "";
|
|
554
|
+
let code_verifier = "";
|
|
555
|
+
if (request.generatePKCE) {
|
|
556
|
+
code_verifier = this.generatePKCECode();
|
|
557
|
+
pkceCode = await this.hashPKCECode(code_verifier);
|
|
558
|
+
}
|
|
559
|
+
const message = {
|
|
560
|
+
command: FROM_EXTENSION_COMMANDS.AUTH_START,
|
|
561
|
+
messageId: generateMessageId(),
|
|
562
|
+
state,
|
|
563
|
+
provider: request.provider,
|
|
564
|
+
params: {
|
|
565
|
+
...request.params,
|
|
566
|
+
...pkceCode ? {
|
|
567
|
+
code_challenge: pkceCode,
|
|
568
|
+
code_challenge_method: "S256"
|
|
569
|
+
} : {}
|
|
561
570
|
}
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
} : {}
|
|
573
|
-
}
|
|
574
|
-
};
|
|
575
|
-
const response = await sendMessage(message);
|
|
576
|
-
if (!response.isOk) {
|
|
577
|
-
return response;
|
|
571
|
+
};
|
|
572
|
+
const response = await sendMessage(message);
|
|
573
|
+
if (!response.isOk) {
|
|
574
|
+
return response;
|
|
575
|
+
}
|
|
576
|
+
return {
|
|
577
|
+
...response,
|
|
578
|
+
result: {
|
|
579
|
+
...response.result,
|
|
580
|
+
code_verifier
|
|
578
581
|
}
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
582
|
+
};
|
|
583
|
+
}
|
|
584
|
+
/** Exchanges the provider authorization code for an auth token. */
|
|
585
|
+
exchangeCode(request) {
|
|
586
|
+
const message = {
|
|
587
|
+
command: FROM_EXTENSION_COMMANDS.AUTH_EXCHANGE,
|
|
588
|
+
messageId: generateMessageId(),
|
|
589
|
+
code: request.code,
|
|
590
|
+
code_verifier: request.code_verifier,
|
|
591
|
+
provider: request.provider,
|
|
592
|
+
params: request.params,
|
|
593
|
+
headers: request.headers
|
|
594
|
+
};
|
|
595
|
+
return sendMessage(message);
|
|
596
|
+
}
|
|
597
|
+
/** Requests the current auth token for a provider. */
|
|
598
|
+
getAuthToken(request) {
|
|
599
|
+
const message = {
|
|
600
|
+
command: FROM_EXTENSION_COMMANDS.AUTH_GET_TOKEN,
|
|
601
|
+
messageId: generateMessageId(),
|
|
602
|
+
provider: request.provider
|
|
603
|
+
};
|
|
604
|
+
return sendMessage(message);
|
|
605
|
+
}
|
|
606
|
+
/** Refreshes the auth token for a provider. */
|
|
607
|
+
refreshToken(request) {
|
|
608
|
+
const message = {
|
|
609
|
+
command: FROM_EXTENSION_COMMANDS.AUTH_REFRESH,
|
|
610
|
+
messageId: generateMessageId(),
|
|
611
|
+
provider: request.provider
|
|
612
|
+
};
|
|
613
|
+
return sendMessage(message);
|
|
614
|
+
}
|
|
615
|
+
/** Logs the current user out of a provider. */
|
|
616
|
+
logout(request) {
|
|
617
|
+
const message = {
|
|
618
|
+
command: FROM_EXTENSION_COMMANDS.AUTH_LOGOUT,
|
|
619
|
+
messageId: generateMessageId(),
|
|
620
|
+
provider: request.provider
|
|
621
|
+
};
|
|
622
|
+
return sendMessage(message);
|
|
623
|
+
}
|
|
624
|
+
/** Requests the authenticated user's user token from the parent window. */
|
|
625
|
+
getUserToken() {
|
|
626
|
+
const message = {
|
|
627
|
+
command: FROM_EXTENSION_COMMANDS.AUTH_GET_USER_TOKEN,
|
|
628
|
+
messageId: generateMessageId()
|
|
629
|
+
};
|
|
630
|
+
return sendMessage(message);
|
|
631
|
+
}
|
|
632
|
+
/** Hashes a PKCE verifier and encodes the SHA-256 digest as Base64URL. */
|
|
633
|
+
async hashPKCECode(input) {
|
|
634
|
+
const subtle = window.crypto?.subtle;
|
|
635
|
+
if (!subtle) {
|
|
636
|
+
throw new Error("Web Crypto SubtleCrypto API not available");
|
|
629
637
|
}
|
|
630
|
-
|
|
638
|
+
const textAsBuffer = new TextEncoder().encode(input);
|
|
639
|
+
const hashBuffer = await subtle.digest("SHA-256", textAsBuffer);
|
|
640
|
+
const hashArray = new Uint8Array(hashBuffer);
|
|
641
|
+
const binaryString = String.fromCharCode(...hashArray);
|
|
642
|
+
const base64 = btoa(binaryString);
|
|
643
|
+
return base64.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
644
|
+
}
|
|
645
|
+
/** Generates a high-entropy RFC 7636-compatible PKCE verifier. */
|
|
646
|
+
generatePKCECode() {
|
|
647
|
+
if (!window.crypto) {
|
|
648
|
+
throw new Error("Crypto API not available");
|
|
649
|
+
}
|
|
650
|
+
const array = new Uint32Array(56);
|
|
651
|
+
window.crypto.getRandomValues(array);
|
|
652
|
+
return Array.from(array, (dec) => `0${dec.toString(16)}`.slice(-2)).join(
|
|
653
|
+
""
|
|
654
|
+
);
|
|
655
|
+
}
|
|
631
656
|
};
|
|
632
657
|
|
|
633
|
-
// ../../packages/editor-core/sdk/sdk-bridge/dist/bridge/sandboxed/handlers/batch/index.js
|
|
634
658
|
var createBatch = async () => {
|
|
635
659
|
const response = await sendMessage({
|
|
636
660
|
command: FROM_EXTENSION_COMMANDS.BATCH_CREATE,
|
|
@@ -675,7 +699,6 @@
|
|
|
675
699
|
return buildNode([]);
|
|
676
700
|
};
|
|
677
701
|
|
|
678
|
-
// ../../packages/editor-core/sdk/sdk-bridge/dist/bridge/sandboxed/handlers/context/contextBridge.js
|
|
679
702
|
var createContextBridgeApi = () => {
|
|
680
703
|
const contextProxy = createApiProxy("context");
|
|
681
704
|
const subscriptionCallbacks = /* @__PURE__ */ new Map();
|
|
@@ -722,7 +745,6 @@
|
|
|
722
745
|
return { api, dispatch };
|
|
723
746
|
};
|
|
724
747
|
|
|
725
|
-
// ../../packages/editor-core/sdk/sdk-bridge/dist/bridge/sandboxed/handlers/designState/index.js
|
|
726
748
|
var sendUnsubscribe2 = (selectorIds) => {
|
|
727
749
|
const message = {
|
|
728
750
|
command: FROM_EXTENSION_COMMANDS.DESIGN_STATE_UNSUBSCRIBE,
|
|
@@ -789,7 +811,6 @@
|
|
|
789
811
|
return { subscribe, dispatch };
|
|
790
812
|
};
|
|
791
813
|
|
|
792
|
-
// ../../packages/editor-core/sdk/sdk-bridge/dist/bridge/sandboxed/handlers/stateless/index.js
|
|
793
814
|
var createStatelessBridgeApi = () => {
|
|
794
815
|
const subscribers = /* @__PURE__ */ new Map();
|
|
795
816
|
return {
|
|
@@ -839,11 +860,11 @@
|
|
|
839
860
|
};
|
|
840
861
|
};
|
|
841
862
|
|
|
842
|
-
// ../../packages/editor-core/sdk/sdk-bridge/dist/bridge/sandboxed/handlers.js
|
|
843
863
|
var statelessApi = createStatelessBridgeApi();
|
|
844
864
|
var designStateApi = createDesignStateBridgeApi();
|
|
845
865
|
var appStateApi = createAppStateBridgeApi();
|
|
846
866
|
var { api: contextApi, dispatch: dispatchContextUpdate } = createContextBridgeApi();
|
|
867
|
+
var authClient = new SandboxedAuthClient();
|
|
847
868
|
var handleIncomingMessage = (event) => {
|
|
848
869
|
const parent = window.parent;
|
|
849
870
|
if (!parent || parent === window) {
|
|
@@ -897,11 +918,12 @@
|
|
|
897
918
|
design: createApiProxy("design"),
|
|
898
919
|
designStore: designStateApi,
|
|
899
920
|
appStore: appStateApi,
|
|
921
|
+
export: createApiProxy("export"),
|
|
900
922
|
font: createApiProxy("font"),
|
|
901
923
|
state: createApiProxy("state"),
|
|
902
924
|
upload: createApiProxy("upload"),
|
|
903
925
|
fileBrowser: createFileBrowserApiProxy(),
|
|
904
|
-
auth:
|
|
926
|
+
auth: authClient,
|
|
905
927
|
stateless: statelessApi,
|
|
906
928
|
createBatch
|
|
907
929
|
};
|
|
@@ -1175,6 +1197,31 @@
|
|
|
1175
1197
|
}
|
|
1176
1198
|
};
|
|
1177
1199
|
|
|
1200
|
+
// src/createEditorSDKAPIs.ts
|
|
1201
|
+
function createEditorSDKAPIs() {
|
|
1202
|
+
return {
|
|
1203
|
+
ai: bridgeHandlers.ai,
|
|
1204
|
+
data: bridgeHandlers.data,
|
|
1205
|
+
design: bridgeHandlers.design,
|
|
1206
|
+
export: bridgeHandlers.export,
|
|
1207
|
+
designStore: bridgeHandlers.designStore,
|
|
1208
|
+
appStore: bridgeHandlers.appStore,
|
|
1209
|
+
context: bridgeHandlers.context,
|
|
1210
|
+
dragAndDrop: new DragAndDropApi({
|
|
1211
|
+
state: bridgeHandlers.state,
|
|
1212
|
+
context: bridgeHandlers.context,
|
|
1213
|
+
design: bridgeHandlers.design,
|
|
1214
|
+
upload: bridgeHandlers.upload
|
|
1215
|
+
}),
|
|
1216
|
+
state: bridgeHandlers.state,
|
|
1217
|
+
auth: bridgeHandlers.auth,
|
|
1218
|
+
upload: bridgeHandlers.upload,
|
|
1219
|
+
stateless: bridgeHandlers.stateless,
|
|
1220
|
+
font: bridgeHandlers.font,
|
|
1221
|
+
createBatch: bridgeHandlers.createBatch
|
|
1222
|
+
};
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1178
1225
|
// src/utils/syncHtmlDataThemeFromHostContext.ts
|
|
1179
1226
|
async function syncHtmlDataThemeFromHostContext(kittl2) {
|
|
1180
1227
|
if (typeof document === "undefined") {
|
|
@@ -1193,44 +1240,47 @@
|
|
|
1193
1240
|
});
|
|
1194
1241
|
}
|
|
1195
1242
|
|
|
1196
|
-
// src/
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1243
|
+
// src/createKittlSDK.ts
|
|
1244
|
+
function createKittlSDK(apis) {
|
|
1245
|
+
const kittl2 = {
|
|
1246
|
+
onLoadedCallback: null,
|
|
1247
|
+
loaded: false,
|
|
1248
|
+
onReady: (callback) => {
|
|
1249
|
+
if (kittl2.loaded) {
|
|
1250
|
+
callback();
|
|
1251
|
+
return;
|
|
1252
|
+
}
|
|
1253
|
+
kittl2.onLoadedCallback = callback;
|
|
1254
|
+
},
|
|
1255
|
+
...apis
|
|
1256
|
+
};
|
|
1257
|
+
const initSdk = () => {
|
|
1258
|
+
kittl2.loaded = true;
|
|
1259
|
+
window.addEventListener(
|
|
1260
|
+
"message",
|
|
1261
|
+
(event) => {
|
|
1262
|
+
handleIncomingMessage(event);
|
|
1263
|
+
}
|
|
1264
|
+
);
|
|
1265
|
+
void syncHtmlDataThemeFromHostContext(kittl2).then(() => {
|
|
1266
|
+
kittl2.onLoadedCallback?.();
|
|
1267
|
+
sendLoaded();
|
|
1268
|
+
});
|
|
1269
|
+
};
|
|
1270
|
+
if (typeof document !== "undefined" && typeof window !== "undefined") {
|
|
1271
|
+
window.kittl = kittl2;
|
|
1272
|
+
if (document.readyState === "loading") {
|
|
1273
|
+
document.addEventListener("DOMContentLoaded", initSdk);
|
|
1274
|
+
} else {
|
|
1275
|
+
initSdk();
|
|
1221
1276
|
}
|
|
1222
|
-
);
|
|
1223
|
-
void syncHtmlDataThemeFromHostContext(kittl).then(() => {
|
|
1224
|
-
kittl.onLoadedCallback?.();
|
|
1225
|
-
sendLoaded();
|
|
1226
|
-
});
|
|
1227
|
-
};
|
|
1228
|
-
if (typeof document !== "undefined" && typeof window !== "undefined") {
|
|
1229
|
-
window.kittl = kittl;
|
|
1230
|
-
if (document.readyState === "loading") {
|
|
1231
|
-
document.addEventListener("DOMContentLoaded", initSdk);
|
|
1232
|
-
} else {
|
|
1233
|
-
initSdk();
|
|
1234
1277
|
}
|
|
1278
|
+
return kittl2;
|
|
1235
1279
|
}
|
|
1280
|
+
|
|
1281
|
+
// src/index.ts
|
|
1282
|
+
var kittl = createKittlSDK({
|
|
1283
|
+
...createEditorSDKAPIs(),
|
|
1284
|
+
fileBrowser: bridgeHandlers.fileBrowser
|
|
1285
|
+
});
|
|
1236
1286
|
})();
|