@kittl/sdk 0.0.9 → 1.0.0-alpha.2
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/creativeAgentPanel/sdk.d.ts +8667 -0
- package/dist/{kittl-sdk.esm.js → creativeAgentPanel/sdk.esm.js} +199 -301
- package/dist/{kittl-sdk.js → creativeAgentPanel/sdk.js} +199 -301
- package/dist/dashboardStandalonePage/sdk.d.ts +8656 -0
- package/dist/dashboardStandalonePage/sdk.esm.js +1184 -0
- package/dist/dashboardStandalonePage/sdk.js +1184 -0
- package/dist/editorContentPanel/sdk.d.ts +6318 -103
- package/dist/editorContentPanel/sdk.esm.js +214 -30
- package/dist/editorContentPanel/sdk.js +214 -30
- package/dist/editorScriptRunner/sdk.d.ts +5732 -146
- package/dist/editorScriptRunner/sdk.esm.js +212 -30
- package/dist/editorScriptRunner/sdk.js +212 -30
- package/dist/sharedFileBrowser/sdk.d.ts +188 -2609
- package/dist/sharedFileBrowser/sdk.esm.js +200 -16
- package/dist/sharedFileBrowser/sdk.js +200 -16
- package/package.json +14 -7
- package/dist/sdk.d.ts +0 -2756
|
@@ -11,6 +11,10 @@ function unwrapResult(result) {
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
var FROM_EXTENSION_COMMANDS = {
|
|
14
|
+
/** Capability-owned AI callback registration. */
|
|
15
|
+
AI_GENERATOR_SUBSCRIBE: "ai-generator-subscribe",
|
|
16
|
+
/** Capability-owned AI callback teardown. */
|
|
17
|
+
AI_GENERATOR_UNSUBSCRIBE: "ai-generator-unsubscribe",
|
|
14
18
|
/** SDK API call */
|
|
15
19
|
SDK_CALL: "sdk-call",
|
|
16
20
|
/** AI handler registration */
|
|
@@ -59,6 +63,8 @@ var FROM_EXTENSION_COMMANDS = {
|
|
|
59
63
|
LOADED: "loaded"
|
|
60
64
|
};
|
|
61
65
|
var TO_EXTENSION_COMMANDS = {
|
|
66
|
+
/** Callback payload for generator or pending-set subscriptions. */
|
|
67
|
+
AI_GENERATOR_UPDATE: "ai-generator-update",
|
|
62
68
|
/** SDK API response */
|
|
63
69
|
SDK_RESPONSE: "sdk-response",
|
|
64
70
|
/** File browser fetch content request */
|
|
@@ -75,6 +81,10 @@ var TO_EXTENSION_COMMANDS = {
|
|
|
75
81
|
APP_STATE_UPDATE: "app-state-update"
|
|
76
82
|
};
|
|
77
83
|
|
|
84
|
+
function isAIGeneratorUpdateMessage(data) {
|
|
85
|
+
return !!data && typeof data === "object" && "command" in data && data.command === "ai-generator-update" && "subscriptionId" in data && typeof data.subscriptionId === "string";
|
|
86
|
+
}
|
|
87
|
+
|
|
78
88
|
var isSDKResponseMessage = (data) => {
|
|
79
89
|
return typeof data === "object" && data !== null && "command" in data && data.command === TO_EXTENSION_COMMANDS.SDK_RESPONSE && "messageId" in data && typeof data.messageId === "string";
|
|
80
90
|
};
|
|
@@ -144,7 +154,10 @@ var APPROVED_EXTENSION_COMMUNICATION_DOMAINS = [
|
|
|
144
154
|
"https://app.stagingdesigner.com",
|
|
145
155
|
"https://*.stagingdesigner.com",
|
|
146
156
|
"http://localhost:3000",
|
|
147
|
-
"https://app.kittl.com"
|
|
157
|
+
"https://app.kittl.com",
|
|
158
|
+
// website, for sandboxed standalone dashboard pages
|
|
159
|
+
"http://localhost:3003",
|
|
160
|
+
"https://www.kittl.com"
|
|
148
161
|
];
|
|
149
162
|
var toOrigin = (value) => {
|
|
150
163
|
if (!value) {
|
|
@@ -199,8 +212,15 @@ var getParentDomain = () => {
|
|
|
199
212
|
};
|
|
200
213
|
|
|
201
214
|
var pendingRequests = /* @__PURE__ */ new Map();
|
|
215
|
+
var sdkVersion;
|
|
216
|
+
function setSDKVersion(version2) {
|
|
217
|
+
sdkVersion = version2;
|
|
218
|
+
}
|
|
202
219
|
var postMessageToParent = (message) => {
|
|
203
|
-
window.parent.postMessage(
|
|
220
|
+
window.parent.postMessage(
|
|
221
|
+
sdkVersion === void 0 ? message : { ...message, sdkVersion },
|
|
222
|
+
getParentDomain()
|
|
223
|
+
);
|
|
204
224
|
};
|
|
205
225
|
var sendMessage = (message) => {
|
|
206
226
|
postMessageToParent(message);
|
|
@@ -223,6 +243,27 @@ var sendLoaded = () => {
|
|
|
223
243
|
};
|
|
224
244
|
|
|
225
245
|
var createSDKCallMessage = {
|
|
246
|
+
aiGenerator: (dots, args, messageId) => ({
|
|
247
|
+
command: FROM_EXTENSION_COMMANDS.SDK_CALL,
|
|
248
|
+
dots,
|
|
249
|
+
args,
|
|
250
|
+
messageId,
|
|
251
|
+
apiType: "aiGenerator"
|
|
252
|
+
}),
|
|
253
|
+
mockup: (dots, args, messageId) => ({
|
|
254
|
+
command: FROM_EXTENSION_COMMANDS.SDK_CALL,
|
|
255
|
+
dots,
|
|
256
|
+
args,
|
|
257
|
+
messageId,
|
|
258
|
+
apiType: "mockup"
|
|
259
|
+
}),
|
|
260
|
+
fileBrowser: (dots, args, messageId) => ({
|
|
261
|
+
command: FROM_EXTENSION_COMMANDS.SDK_CALL,
|
|
262
|
+
dots,
|
|
263
|
+
args,
|
|
264
|
+
messageId,
|
|
265
|
+
apiType: "fileBrowser"
|
|
266
|
+
}),
|
|
226
267
|
ai: (dots, args, messageId) => ({
|
|
227
268
|
command: FROM_EXTENSION_COMMANDS.SDK_CALL,
|
|
228
269
|
dots,
|
|
@@ -258,6 +299,13 @@ var createSDKCallMessage = {
|
|
|
258
299
|
messageId,
|
|
259
300
|
apiType: "font"
|
|
260
301
|
}),
|
|
302
|
+
project: (dots, args, messageId) => ({
|
|
303
|
+
command: FROM_EXTENSION_COMMANDS.SDK_CALL,
|
|
304
|
+
dots,
|
|
305
|
+
args,
|
|
306
|
+
messageId,
|
|
307
|
+
apiType: "project"
|
|
308
|
+
}),
|
|
261
309
|
state: (dots, args, messageId) => ({
|
|
262
310
|
command: FROM_EXTENSION_COMMANDS.SDK_CALL,
|
|
263
311
|
dots,
|
|
@@ -278,6 +326,34 @@ var createSDKCallMessage = {
|
|
|
278
326
|
args,
|
|
279
327
|
messageId,
|
|
280
328
|
apiType: "data"
|
|
329
|
+
}),
|
|
330
|
+
brandKit: (dots, args, messageId) => ({
|
|
331
|
+
command: FROM_EXTENSION_COMMANDS.SDK_CALL,
|
|
332
|
+
dots,
|
|
333
|
+
args,
|
|
334
|
+
messageId,
|
|
335
|
+
apiType: "brandKit"
|
|
336
|
+
}),
|
|
337
|
+
openMicroEditor: (dots, args, messageId) => ({
|
|
338
|
+
command: FROM_EXTENSION_COMMANDS.SDK_CALL,
|
|
339
|
+
dots,
|
|
340
|
+
args,
|
|
341
|
+
messageId,
|
|
342
|
+
apiType: "openMicroEditor"
|
|
343
|
+
}),
|
|
344
|
+
openMainEditor: (dots, args, messageId) => ({
|
|
345
|
+
command: FROM_EXTENSION_COMMANDS.SDK_CALL,
|
|
346
|
+
dots,
|
|
347
|
+
args,
|
|
348
|
+
messageId,
|
|
349
|
+
apiType: "openMainEditor"
|
|
350
|
+
}),
|
|
351
|
+
agent: (dots, args, messageId) => ({
|
|
352
|
+
command: FROM_EXTENSION_COMMANDS.SDK_CALL,
|
|
353
|
+
dots,
|
|
354
|
+
args,
|
|
355
|
+
messageId,
|
|
356
|
+
apiType: "agent"
|
|
281
357
|
})
|
|
282
358
|
};
|
|
283
359
|
function createApiProxy(apiType) {
|
|
@@ -294,6 +370,64 @@ function createApiProxy(apiType) {
|
|
|
294
370
|
});
|
|
295
371
|
}
|
|
296
372
|
|
|
373
|
+
function createAIGeneratorBridgeApi() {
|
|
374
|
+
const callbacks = /* @__PURE__ */ new Map();
|
|
375
|
+
const proxy = createApiProxy("aiGenerator");
|
|
376
|
+
async function subscribe(request, callback) {
|
|
377
|
+
const subscriptionId = generateMessageId();
|
|
378
|
+
callbacks.set(subscriptionId, callback);
|
|
379
|
+
let response;
|
|
380
|
+
try {
|
|
381
|
+
response = await sendMessage({
|
|
382
|
+
command: "ai-generator-subscribe",
|
|
383
|
+
...request,
|
|
384
|
+
subscriptionId,
|
|
385
|
+
messageId: generateMessageId()
|
|
386
|
+
});
|
|
387
|
+
} catch (error) {
|
|
388
|
+
callbacks.delete(subscriptionId);
|
|
389
|
+
throw error;
|
|
390
|
+
}
|
|
391
|
+
if (!response.isOk) {
|
|
392
|
+
callbacks.delete(subscriptionId);
|
|
393
|
+
throw new Error(response.error.message);
|
|
394
|
+
}
|
|
395
|
+
return () => {
|
|
396
|
+
callbacks.delete(subscriptionId);
|
|
397
|
+
postMessageToParent({
|
|
398
|
+
command: "ai-generator-unsubscribe",
|
|
399
|
+
subscriptionId
|
|
400
|
+
});
|
|
401
|
+
};
|
|
402
|
+
}
|
|
403
|
+
const methods = {
|
|
404
|
+
registerGenerator: (id, callback) => subscribe({ method: "registerGenerator", args: [id] }, (update) => {
|
|
405
|
+
if (update) callback(update);
|
|
406
|
+
}),
|
|
407
|
+
subscribeToGenerationUpdates: (ids, callback) => subscribe(
|
|
408
|
+
{ method: "subscribeToGenerationUpdates", args: [ids] },
|
|
409
|
+
(update) => {
|
|
410
|
+
if (update) callback(update);
|
|
411
|
+
}
|
|
412
|
+
),
|
|
413
|
+
subscribeToPendingGenerations: (callback) => subscribe(
|
|
414
|
+
{ method: "subscribeToPendingGenerations", args: [] },
|
|
415
|
+
() => callback()
|
|
416
|
+
),
|
|
417
|
+
/** Callers may reuse richer internal submission objects; never send their local abort callbacks. */
|
|
418
|
+
cancelGenerations: (submission) => proxy.cancelGenerations({
|
|
419
|
+
generationIds: submission.generationIds,
|
|
420
|
+
until: submission.until
|
|
421
|
+
})
|
|
422
|
+
};
|
|
423
|
+
return {
|
|
424
|
+
api: new Proxy(proxy, {
|
|
425
|
+
get: (target, property, receiver) => property in methods ? methods[property] : Reflect.get(target, property, receiver)
|
|
426
|
+
}),
|
|
427
|
+
dispatch: (message) => callbacks.get(message.subscriptionId)?.(message.update)
|
|
428
|
+
};
|
|
429
|
+
}
|
|
430
|
+
|
|
297
431
|
var generationHandlers = /* @__PURE__ */ new Map();
|
|
298
432
|
var generationSubscriptions = /* @__PURE__ */ new Map();
|
|
299
433
|
var dispatchAIGenerationUpdate = (subscriptionId, update) => {
|
|
@@ -661,7 +795,7 @@ var SandboxedAuthClient = class {
|
|
|
661
795
|
}
|
|
662
796
|
};
|
|
663
797
|
|
|
664
|
-
var
|
|
798
|
+
var createBatchFor = async (apiType) => {
|
|
665
799
|
const response = await sendMessage({
|
|
666
800
|
command: FROM_EXTENSION_COMMANDS.BATCH_CREATE,
|
|
667
801
|
messageId: generateMessageId()
|
|
@@ -670,14 +804,17 @@ var createBatch = async () => {
|
|
|
670
804
|
throw response.error;
|
|
671
805
|
}
|
|
672
806
|
const { batchKey } = response.result;
|
|
673
|
-
const sendDesignCall = (dots, args) =>
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
807
|
+
const sendDesignCall = (dots, args) => {
|
|
808
|
+
const message = {
|
|
809
|
+
command: FROM_EXTENSION_COMMANDS.SDK_CALL,
|
|
810
|
+
dots: apiType === "project" ? ["design", "api", ...dots] : dots,
|
|
811
|
+
args,
|
|
812
|
+
messageId: generateMessageId(),
|
|
813
|
+
apiType,
|
|
814
|
+
batchKey
|
|
815
|
+
};
|
|
816
|
+
return sendMessage(message);
|
|
817
|
+
};
|
|
681
818
|
const commit = async () => {
|
|
682
819
|
const res = await sendMessage({
|
|
683
820
|
command: FROM_EXTENSION_COMMANDS.BATCH_COMMIT,
|
|
@@ -704,6 +841,8 @@ var createBatch = async () => {
|
|
|
704
841
|
};
|
|
705
842
|
return buildNode([]);
|
|
706
843
|
};
|
|
844
|
+
var createBatch = () => createBatchFor("design");
|
|
845
|
+
var createProjectBatch = () => createBatchFor("project");
|
|
707
846
|
|
|
708
847
|
var createContextBridgeApi = () => {
|
|
709
848
|
const contextProxy = createApiProxy("context");
|
|
@@ -871,6 +1010,7 @@ var designStateApi = createDesignStateBridgeApi();
|
|
|
871
1010
|
var appStateApi = createAppStateBridgeApi();
|
|
872
1011
|
var { api: contextApi, dispatch: dispatchContextUpdate } = createContextBridgeApi();
|
|
873
1012
|
var authClient = new SandboxedAuthClient();
|
|
1013
|
+
var aiGeneratorBridge = createAIGeneratorBridgeApi();
|
|
874
1014
|
var handleIncomingMessage = (event) => {
|
|
875
1015
|
const parent = window.parent;
|
|
876
1016
|
if (!parent || parent === window) {
|
|
@@ -893,6 +1033,10 @@ var handleIncomingMessage = (event) => {
|
|
|
893
1033
|
statelessApi.dispatch(data.type, data.payload);
|
|
894
1034
|
return;
|
|
895
1035
|
}
|
|
1036
|
+
if (isAIGeneratorUpdateMessage(data)) {
|
|
1037
|
+
aiGeneratorBridge.dispatch(data);
|
|
1038
|
+
return;
|
|
1039
|
+
}
|
|
896
1040
|
if (isAIGenerationUpdatePushMessage(data)) {
|
|
897
1041
|
dispatchAIGenerationUpdate(data.subscriptionId, data.update);
|
|
898
1042
|
return;
|
|
@@ -917,7 +1061,29 @@ var handleIncomingMessage = (event) => {
|
|
|
917
1061
|
);
|
|
918
1062
|
}
|
|
919
1063
|
};
|
|
1064
|
+
var projectProxy = createApiProxy("project");
|
|
1065
|
+
var projectApi = {
|
|
1066
|
+
design: {
|
|
1067
|
+
state: {
|
|
1068
|
+
getState: projectProxy.design.state.getState,
|
|
1069
|
+
subscribe: designStateApi.subscribe
|
|
1070
|
+
},
|
|
1071
|
+
api: projectProxy.design.api,
|
|
1072
|
+
createBatch: createProjectBatch
|
|
1073
|
+
},
|
|
1074
|
+
app: {
|
|
1075
|
+
state: {
|
|
1076
|
+
getState: projectProxy.app.state.getState,
|
|
1077
|
+
subscribe: appStateApi.subscribe
|
|
1078
|
+
},
|
|
1079
|
+
api: projectProxy.app.api
|
|
1080
|
+
}
|
|
1081
|
+
};
|
|
920
1082
|
var bridgeHandlers = {
|
|
1083
|
+
agent: createApiProxy("agent"),
|
|
1084
|
+
aiGenerator: aiGeneratorBridge.api,
|
|
1085
|
+
brandKit: createApiProxy("brandKit"),
|
|
1086
|
+
mockup: createApiProxy("mockup"),
|
|
921
1087
|
ai: createAIApiProxy(),
|
|
922
1088
|
context: contextApi,
|
|
923
1089
|
data: createApiProxy("data"),
|
|
@@ -926,12 +1092,17 @@ var bridgeHandlers = {
|
|
|
926
1092
|
appStore: appStateApi,
|
|
927
1093
|
export: createApiProxy("export"),
|
|
928
1094
|
font: createApiProxy("font"),
|
|
1095
|
+
project: projectApi,
|
|
929
1096
|
state: createApiProxy("state"),
|
|
930
1097
|
upload: createApiProxy("upload"),
|
|
931
|
-
fileBrowser:
|
|
1098
|
+
fileBrowser: { getFiles: createApiProxy("fileBrowser").getFiles },
|
|
1099
|
+
fileBrowserRegistration: createFileBrowserApiProxy(),
|
|
1100
|
+
openMicroEditor: createApiProxy("openMicroEditor"),
|
|
1101
|
+
openMainEditor: createApiProxy("openMainEditor"),
|
|
932
1102
|
auth: authClient,
|
|
933
1103
|
stateless: statelessApi,
|
|
934
|
-
createBatch
|
|
1104
|
+
createBatch,
|
|
1105
|
+
createProjectBatch
|
|
935
1106
|
};
|
|
936
1107
|
|
|
937
1108
|
// src/api/dragAndDrop/DragAndDropApi.ts
|
|
@@ -966,7 +1137,7 @@ var DragAndDropApi = class {
|
|
|
966
1137
|
async dropImage(input) {
|
|
967
1138
|
let objectId = null;
|
|
968
1139
|
try {
|
|
969
|
-
const offset = unwrapResult(await this.context.get()).
|
|
1140
|
+
const offset = unwrapResult(await this.context.get()).iframeOffset;
|
|
970
1141
|
const params = this.buildDropImageParams(input, offset);
|
|
971
1142
|
objectId = await this.addDroppedImage(params);
|
|
972
1143
|
if (input.persistImage) {
|
|
@@ -1197,29 +1368,31 @@ var DragAndDropApi = class {
|
|
|
1197
1368
|
|
|
1198
1369
|
// src/createEditorSDKAPIs.ts
|
|
1199
1370
|
function createEditorSDKAPIs() {
|
|
1371
|
+
const { project } = bridgeHandlers;
|
|
1372
|
+
const dragAndDrop = new DragAndDropApi({
|
|
1373
|
+
state: project.app.api,
|
|
1374
|
+
context: bridgeHandlers.context,
|
|
1375
|
+
design: project.design.api,
|
|
1376
|
+
upload: bridgeHandlers.upload
|
|
1377
|
+
});
|
|
1200
1378
|
return {
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1379
|
+
aiGenerator: bridgeHandlers.aiGenerator,
|
|
1380
|
+
mockup: bridgeHandlers.mockup,
|
|
1381
|
+
project,
|
|
1204
1382
|
export: bridgeHandlers.export,
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
context: bridgeHandlers.context,
|
|
1208
|
-
dragAndDrop: new DragAndDropApi({
|
|
1209
|
-
state: bridgeHandlers.state,
|
|
1210
|
-
context: bridgeHandlers.context,
|
|
1211
|
-
design: bridgeHandlers.design,
|
|
1212
|
-
upload: bridgeHandlers.upload
|
|
1213
|
-
}),
|
|
1214
|
-
state: bridgeHandlers.state,
|
|
1383
|
+
helpers: { dragAndDrop },
|
|
1384
|
+
dragAndDrop,
|
|
1215
1385
|
auth: bridgeHandlers.auth,
|
|
1216
1386
|
upload: bridgeHandlers.upload,
|
|
1217
1387
|
stateless: bridgeHandlers.stateless,
|
|
1218
1388
|
font: bridgeHandlers.font,
|
|
1219
|
-
|
|
1389
|
+
fileBrowser: bridgeHandlers.fileBrowser
|
|
1220
1390
|
};
|
|
1221
1391
|
}
|
|
1222
1392
|
|
|
1393
|
+
// package.json
|
|
1394
|
+
var version = "1.0.0";
|
|
1395
|
+
|
|
1223
1396
|
// src/utils/syncHtmlDataThemeFromHostContext.ts
|
|
1224
1397
|
async function syncHtmlDataThemeFromHostContext(kittl2) {
|
|
1225
1398
|
if (typeof document === "undefined") {
|
|
@@ -1260,12 +1433,17 @@ function createKittlSDK(apis) {
|
|
|
1260
1433
|
handleIncomingMessage(event);
|
|
1261
1434
|
}
|
|
1262
1435
|
);
|
|
1263
|
-
|
|
1436
|
+
const { context } = apis;
|
|
1437
|
+
const themeSynced = context?.get && context.subscribe ? syncHtmlDataThemeFromHostContext({
|
|
1438
|
+
context
|
|
1439
|
+
}) : Promise.resolve();
|
|
1440
|
+
void themeSynced.catch(() => void 0).then(() => {
|
|
1264
1441
|
kittl2.onLoadedCallback?.();
|
|
1265
1442
|
sendLoaded();
|
|
1266
1443
|
});
|
|
1267
1444
|
};
|
|
1268
1445
|
if (typeof document !== "undefined" && typeof window !== "undefined") {
|
|
1446
|
+
setSDKVersion(version);
|
|
1269
1447
|
window.kittl = kittl2;
|
|
1270
1448
|
if (document.readyState === "loading") {
|
|
1271
1449
|
document.addEventListener("DOMContentLoaded", initSdk);
|
|
@@ -1277,7 +1455,11 @@ function createKittlSDK(apis) {
|
|
|
1277
1455
|
}
|
|
1278
1456
|
|
|
1279
1457
|
// src/editorScriptRunner.ts
|
|
1280
|
-
var kittl = createKittlSDK(
|
|
1458
|
+
var kittl = createKittlSDK({
|
|
1459
|
+
...createEditorSDKAPIs(),
|
|
1460
|
+
// nothing is contextually relevant to a hidden script runner yet
|
|
1461
|
+
context: {}
|
|
1462
|
+
});
|
|
1281
1463
|
export {
|
|
1282
1464
|
kittl,
|
|
1283
1465
|
unwrapResult
|