@superbuilders/primer-tives 3.5.1 → 3.6.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.
- package/README.md +234 -126
- package/dist/client/auth/provider.d.ts +18 -3
- package/dist/client/auth/provider.d.ts.map +1 -1
- package/dist/client/auth/storage.d.ts +2 -1
- package/dist/client/auth/storage.d.ts.map +1 -1
- package/dist/client/index.d.ts +3 -3
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +201 -45
- package/dist/client/index.js.map +8 -7
- package/dist/client/session-context.d.ts +1 -1
- package/dist/client/session-context.d.ts.map +1 -1
- package/dist/client/{create.d.ts → start.d.ts} +7 -5
- package/dist/client/start.d.ts.map +1 -0
- package/dist/client/start.type-test.d.ts +2 -0
- package/dist/client/start.type-test.d.ts.map +1 -0
- package/dist/client/types.d.ts +7 -2
- package/dist/client/types.d.ts.map +1 -1
- package/dist/client/unauthenticated-state.d.ts +10 -0
- package/dist/client/unauthenticated-state.d.ts.map +1 -0
- package/dist/version.d.ts +1 -1
- package/package.json +1 -1
- package/dist/client/create.d.ts.map +0 -1
- package/dist/client/create.type-test.d.ts +0 -2
- package/dist/client/create.type-test.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/client/auth/provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/client/auth/provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAKN,KAAK,iBAAiB,EACtB,MAAM,iDAAiD,CAAA;AAMxD,OAAO,EAEN,KAAK,mBAAmB,EACxB,MAAM,sDAAsD,CAAA;AAU7D,KAAK,0BAA0B,GAAG;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;CAC7B,CAAA;AAED,KAAK,yBAAyB,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAA;CACzC,CAAA;AAED,KAAK,gCAAgC,GAAG;IACvC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAC5B,CAAA;AAED,KAAK,sBAAsB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CACrB,CAAA;AAED,KAAK,yBAAyB,GAC3B,yBAAyB,GACzB,gCAAgC,GAChC,sBAAsB,CAAA;AAEzB,KAAK,iBAAiB,GAAG,yBAAyB,GAAG,gCAAgC,CAAA;AAkGrF,iBAAS,0BAA0B,CAClC,OAAO,EAAE,0BAA0B,GACjC,yBAAyB,CAqB3B;AAED,iBAAe,gBAAgB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqC/F;AAED,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,CAAA;AACvD,YAAY,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -2,8 +2,9 @@ declare function accessTokenStorageKey(publishableKey: string): string;
|
|
|
2
2
|
declare function authStateStorageKey(publishableKey: string): string;
|
|
3
3
|
declare function loadStoredAccessToken(storage: Storage, publishableKey: string): string | null;
|
|
4
4
|
declare function storeAccessToken(storage: Storage, publishableKey: string, accessToken: string): void;
|
|
5
|
+
declare function clearStoredAccessToken(storage: Storage, publishableKey: string): void;
|
|
5
6
|
declare function loadAuthState(storage: Storage, publishableKey: string): string | null;
|
|
6
7
|
declare function storeAuthState(storage: Storage, publishableKey: string, state: string): void;
|
|
7
8
|
declare function clearAuthState(storage: Storage, publishableKey: string): void;
|
|
8
|
-
export { accessTokenStorageKey, authStateStorageKey, clearAuthState, loadAuthState, loadStoredAccessToken, storeAccessToken, storeAuthState };
|
|
9
|
+
export { accessTokenStorageKey, authStateStorageKey, clearAuthState, clearStoredAccessToken, loadAuthState, loadStoredAccessToken, storeAccessToken, storeAuthState };
|
|
9
10
|
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/client/auth/storage.ts"],"names":[],"mappings":"AAGA,iBAAS,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,iBAAS,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,iBAAS,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMtF;AAED,iBAAS,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAE7F;AAED,iBAAS,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM9E;AAED,iBAAS,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAErF;AAED,iBAAS,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAEtE;AAED,OAAO,EACN,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,CAAA"}
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/client/auth/storage.ts"],"names":[],"mappings":"AAGA,iBAAS,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,iBAAS,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,iBAAS,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMtF;AAED,iBAAS,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAE7F;AAED,iBAAS,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAE9E;AAED,iBAAS,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM9E;AAED,iBAAS,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAErF;AAED,iBAAS,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAEtE;AAED,OAAO,EACN,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,CAAA"}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export type { PrimerOptions } from "./
|
|
3
|
-
export type { ChoiceState, CompletedState, ErroredState, ExtendedTextMultipleState, ExtendedTextSingleState, ExtendedTextState, FatalState, FeedbackState, InteractionState, MatchState, NonSerializable, ObservationState, OrderState, PciInteractionState, PciPendingRenderProps, PciRenderProps, PciSubmittedRenderProps, PrimerState, TextEntryState } from "./types";
|
|
1
|
+
export { start } from "./start";
|
|
2
|
+
export type { PrimerOptions } from "./start";
|
|
3
|
+
export type { ChoiceState, CompletedState, ErroredState, ExtendedTextMultipleState, ExtendedTextSingleState, ExtendedTextState, FatalState, FeedbackState, InteractionState, MatchState, NonSerializable, ObservationState, OrderState, PciInteractionState, PciPendingRenderProps, PciRenderProps, PciSubmittedRenderProps, PrimerState, TextEntryState, UnauthenticatedState } from "./types";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0CAA0C,CAAA;AAChE,YAAY,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAA;AAE7E,YAAY,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,yBAAyB,EACzB,uBAAuB,EACvB,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,uBAAuB,EACvB,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,MAAM,0CAA0C,CAAA"}
|
package/dist/client/index.js
CHANGED
|
@@ -341,7 +341,7 @@ function submissionValidationMessage(result) {
|
|
|
341
341
|
import * as errors2 from "@superbuilders/errors";
|
|
342
342
|
|
|
343
343
|
// src/version.ts
|
|
344
|
-
var SDK_VERSION = "3.
|
|
344
|
+
var SDK_VERSION = "3.6.0";
|
|
345
345
|
var NPM_PACKAGE_URL = "https://www.npmjs.com/package/@superbuilders/primer-tives";
|
|
346
346
|
|
|
347
347
|
// src/client/transport.ts
|
|
@@ -1133,6 +1133,9 @@ function makeSession(sc) {
|
|
|
1133
1133
|
return { execute };
|
|
1134
1134
|
}
|
|
1135
1135
|
|
|
1136
|
+
// src/client/auth/provider.ts
|
|
1137
|
+
import * as errors13 from "@superbuilders/errors";
|
|
1138
|
+
|
|
1136
1139
|
// src/client/auth/browser.ts
|
|
1137
1140
|
import * as errors10 from "@superbuilders/errors";
|
|
1138
1141
|
function browserStorage(options, logger) {
|
|
@@ -1383,6 +1386,9 @@ function loadStoredAccessToken(storage, publishableKey) {
|
|
|
1383
1386
|
function storeAccessToken(storage, publishableKey, accessToken) {
|
|
1384
1387
|
storage.setItem(accessTokenStorageKey(publishableKey), accessToken);
|
|
1385
1388
|
}
|
|
1389
|
+
function clearStoredAccessToken(storage, publishableKey) {
|
|
1390
|
+
storage.removeItem(accessTokenStorageKey(publishableKey));
|
|
1391
|
+
}
|
|
1386
1392
|
function loadAuthState(storage, publishableKey) {
|
|
1387
1393
|
const state = storage.getItem(authStateStorageKey(publishableKey));
|
|
1388
1394
|
if (state === null || state.length === 0) {
|
|
@@ -1398,44 +1404,153 @@ function clearAuthState(storage, publishableKey) {
|
|
|
1398
1404
|
}
|
|
1399
1405
|
|
|
1400
1406
|
// src/client/auth/provider.ts
|
|
1401
|
-
|
|
1407
|
+
function resolveProvidedAccessToken(token, logger) {
|
|
1408
|
+
const result = errors13.trySync(function resolveProvidedToken() {
|
|
1409
|
+
return resolveAccessToken(token, logger);
|
|
1410
|
+
});
|
|
1411
|
+
if (result.error) {
|
|
1412
|
+
return { kind: "fatal", error: result.error };
|
|
1413
|
+
}
|
|
1414
|
+
return { kind: "resolved", accessToken: result.data };
|
|
1415
|
+
}
|
|
1416
|
+
function resolveManagedAccessToken(token, logger) {
|
|
1417
|
+
const result = errors13.trySync(function resolveManagedToken() {
|
|
1418
|
+
return resolveAccessToken(token, logger);
|
|
1419
|
+
});
|
|
1420
|
+
if (result.error) {
|
|
1421
|
+
return { kind: "unauthenticated", error: result.error };
|
|
1422
|
+
}
|
|
1423
|
+
return { kind: "resolved", accessToken: result.data };
|
|
1424
|
+
}
|
|
1425
|
+
function readBrowserAuthContext(options) {
|
|
1426
|
+
const logger = options.logger;
|
|
1427
|
+
const contextResult = errors13.trySync(function readContext() {
|
|
1428
|
+
const storage = browserStorage(options.hostedAuth, logger);
|
|
1429
|
+
const url = currentUrl(options.hostedAuth, logger);
|
|
1430
|
+
return { storage, url };
|
|
1431
|
+
});
|
|
1432
|
+
if (contextResult.error) {
|
|
1433
|
+
return { kind: "unauthenticated", error: contextResult.error };
|
|
1434
|
+
}
|
|
1435
|
+
return contextResult.data;
|
|
1436
|
+
}
|
|
1437
|
+
function resolveCallbackAccessToken(context, options) {
|
|
1402
1438
|
const logger = options.logger;
|
|
1403
|
-
const
|
|
1404
|
-
|
|
1405
|
-
|
|
1439
|
+
const callbackResult = errors13.trySync(function readCallback() {
|
|
1440
|
+
return readAuthCallback(context.url, logger);
|
|
1441
|
+
});
|
|
1442
|
+
if (callbackResult.error) {
|
|
1443
|
+
clearAuthState(context.storage, options.publishableKey);
|
|
1444
|
+
return { kind: "unauthenticated", error: callbackResult.error };
|
|
1445
|
+
}
|
|
1446
|
+
const callback = callbackResult.data;
|
|
1447
|
+
if (callback === null) {
|
|
1448
|
+
return null;
|
|
1449
|
+
}
|
|
1450
|
+
const stateResult = errors13.trySync(function requireState() {
|
|
1451
|
+
requireMatchingCallbackState(callback, loadAuthState(context.storage, options.publishableKey), logger);
|
|
1452
|
+
});
|
|
1453
|
+
if (stateResult.error) {
|
|
1454
|
+
clearAuthState(context.storage, options.publishableKey);
|
|
1455
|
+
return { kind: "unauthenticated", error: stateResult.error };
|
|
1456
|
+
}
|
|
1457
|
+
const resolved = resolveManagedAccessToken(callback.accessToken, logger);
|
|
1458
|
+
if (resolved.kind === "unauthenticated") {
|
|
1459
|
+
clearAuthState(context.storage, options.publishableKey);
|
|
1460
|
+
return resolved;
|
|
1461
|
+
}
|
|
1462
|
+
storeAccessToken(context.storage, options.publishableKey, callback.accessToken);
|
|
1463
|
+
clearAuthState(context.storage, options.publishableKey);
|
|
1464
|
+
clearCallbackHash(options.hostedAuth, context.url);
|
|
1465
|
+
return resolved;
|
|
1466
|
+
}
|
|
1467
|
+
function resolveStoredAccessToken(context, options) {
|
|
1468
|
+
const stored = loadStoredAccessToken(context.storage, options.publishableKey);
|
|
1469
|
+
if (stored === null) {
|
|
1470
|
+
return null;
|
|
1471
|
+
}
|
|
1472
|
+
const resolved = resolveManagedAccessToken(stored, options.logger);
|
|
1473
|
+
if (resolved.kind === "unauthenticated") {
|
|
1474
|
+
clearStoredAccessToken(context.storage, options.publishableKey);
|
|
1475
|
+
}
|
|
1476
|
+
return resolved;
|
|
1477
|
+
}
|
|
1478
|
+
function resolveExistingAccessToken(options) {
|
|
1479
|
+
if (options.accessToken !== undefined) {
|
|
1480
|
+
return resolveProvidedAccessToken(options.accessToken, options.logger);
|
|
1481
|
+
}
|
|
1482
|
+
const context = readBrowserAuthContext(options);
|
|
1483
|
+
if ("kind" in context) {
|
|
1484
|
+
return context;
|
|
1485
|
+
}
|
|
1486
|
+
const callback = resolveCallbackAccessToken(context, options);
|
|
1406
1487
|
if (callback !== null) {
|
|
1407
|
-
|
|
1408
|
-
storeAccessToken(storage, options.publishableKey, callback.accessToken);
|
|
1409
|
-
clearAuthState(storage, options.publishableKey);
|
|
1410
|
-
clearCallbackHash(options.hostedAuth, url);
|
|
1411
|
-
return resolveAccessToken(callback.accessToken, logger);
|
|
1488
|
+
return callback;
|
|
1412
1489
|
}
|
|
1413
|
-
const stored =
|
|
1490
|
+
const stored = resolveStoredAccessToken(context, options);
|
|
1414
1491
|
if (stored !== null) {
|
|
1415
|
-
return
|
|
1492
|
+
return stored;
|
|
1493
|
+
}
|
|
1494
|
+
return { kind: "unauthenticated", error: null };
|
|
1495
|
+
}
|
|
1496
|
+
async function beginHostedLogin(options) {
|
|
1497
|
+
const logger = options.logger;
|
|
1498
|
+
const context = readBrowserAuthContext(options);
|
|
1499
|
+
if ("kind" in context) {
|
|
1500
|
+
return context;
|
|
1501
|
+
}
|
|
1502
|
+
const clientStateResult = errors13.trySync(function prepareHostedLogin() {
|
|
1503
|
+
const clientState2 = randomClientState(logger);
|
|
1504
|
+
storeAuthState(context.storage, options.publishableKey, clientState2);
|
|
1505
|
+
return clientState2;
|
|
1506
|
+
});
|
|
1507
|
+
if (clientStateResult.error) {
|
|
1508
|
+
return { kind: "unauthenticated", error: clientStateResult.error };
|
|
1416
1509
|
}
|
|
1417
|
-
const clientState =
|
|
1418
|
-
|
|
1419
|
-
const accessToken = await beginHostedPopup({
|
|
1510
|
+
const clientState = clientStateResult.data;
|
|
1511
|
+
const accessTokenResult = await errors13.try(beginHostedPopup({
|
|
1420
1512
|
origin: options.origin,
|
|
1421
1513
|
publishableKey: options.publishableKey,
|
|
1422
|
-
currentUrl: url,
|
|
1514
|
+
currentUrl: context.url,
|
|
1423
1515
|
clientState,
|
|
1424
1516
|
options: options.hostedAuth,
|
|
1425
1517
|
logger
|
|
1426
|
-
});
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1518
|
+
}));
|
|
1519
|
+
if (accessTokenResult.error) {
|
|
1520
|
+
clearAuthState(context.storage, options.publishableKey);
|
|
1521
|
+
return { kind: "unauthenticated", error: accessTokenResult.error };
|
|
1522
|
+
}
|
|
1523
|
+
const resolved = resolveManagedAccessToken(accessTokenResult.data, logger);
|
|
1524
|
+
if (resolved.kind === "unauthenticated") {
|
|
1525
|
+
clearAuthState(context.storage, options.publishableKey);
|
|
1526
|
+
return resolved;
|
|
1527
|
+
}
|
|
1528
|
+
storeAccessToken(context.storage, options.publishableKey, accessTokenResult.data);
|
|
1529
|
+
clearAuthState(context.storage, options.publishableKey);
|
|
1530
|
+
return resolved;
|
|
1430
1531
|
}
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1532
|
+
|
|
1533
|
+
// src/client/unauthenticated-state.ts
|
|
1534
|
+
function unauthenticatedState(config) {
|
|
1535
|
+
let pending;
|
|
1536
|
+
function login() {
|
|
1537
|
+
if (pending) {
|
|
1538
|
+
return pending;
|
|
1539
|
+
}
|
|
1540
|
+
pending = config.login().finally(function clearPending() {
|
|
1541
|
+
pending = undefined;
|
|
1542
|
+
});
|
|
1543
|
+
return pending;
|
|
1434
1544
|
}
|
|
1435
|
-
return
|
|
1545
|
+
return {
|
|
1546
|
+
phase: "unauthenticated",
|
|
1547
|
+
error: config.error,
|
|
1548
|
+
login,
|
|
1549
|
+
toJSON: poisonToJSON
|
|
1550
|
+
};
|
|
1436
1551
|
}
|
|
1437
1552
|
|
|
1438
|
-
// src/client/
|
|
1553
|
+
// src/client/start.ts
|
|
1439
1554
|
function supportedPcisOrEmpty(supportedPcis) {
|
|
1440
1555
|
if (supportedPcis !== undefined) {
|
|
1441
1556
|
return supportedPcis;
|
|
@@ -1448,35 +1563,76 @@ function runtimeSubject(subject) {
|
|
|
1448
1563
|
}
|
|
1449
1564
|
return subject;
|
|
1450
1565
|
}
|
|
1451
|
-
async function
|
|
1452
|
-
const logger = options.logger;
|
|
1453
|
-
logger.debug("create");
|
|
1454
|
-
const subject = runtimeSubject(options.subject);
|
|
1455
|
-
const accessToken = await resolveRuntimeAccessToken({
|
|
1456
|
-
accessToken: options.accessToken,
|
|
1457
|
-
publishableKey: options.publishableKey,
|
|
1458
|
-
origin: options.origin,
|
|
1459
|
-
logger
|
|
1460
|
-
});
|
|
1566
|
+
async function startRuntime(config, accessToken) {
|
|
1461
1567
|
const transport = createTransport({
|
|
1462
1568
|
accessToken,
|
|
1569
|
+
publishableKey: config.publishableKey,
|
|
1570
|
+
subject: config.subject,
|
|
1571
|
+
origin: config.origin,
|
|
1572
|
+
fetch: config.fetch,
|
|
1573
|
+
abort: config.abort,
|
|
1574
|
+
logger: config.logger
|
|
1575
|
+
});
|
|
1576
|
+
const session = makeSession({
|
|
1577
|
+
subject: config.subject,
|
|
1578
|
+
supportedPcis: config.supportedPcis,
|
|
1579
|
+
logger: config.logger,
|
|
1580
|
+
transport
|
|
1581
|
+
});
|
|
1582
|
+
return session.execute({ kind: "observation" }, "start");
|
|
1583
|
+
}
|
|
1584
|
+
function makeUnauthenticatedState(config, error) {
|
|
1585
|
+
return unauthenticatedState({
|
|
1586
|
+
error,
|
|
1587
|
+
login: function login() {
|
|
1588
|
+
return loginAndStart(config);
|
|
1589
|
+
}
|
|
1590
|
+
});
|
|
1591
|
+
}
|
|
1592
|
+
async function loginAndStart(config) {
|
|
1593
|
+
const result = await beginHostedLogin({
|
|
1594
|
+
origin: config.origin,
|
|
1595
|
+
publishableKey: config.publishableKey,
|
|
1596
|
+
logger: config.logger
|
|
1597
|
+
});
|
|
1598
|
+
if (result.kind === "unauthenticated") {
|
|
1599
|
+
return makeUnauthenticatedState(config, result.error);
|
|
1600
|
+
}
|
|
1601
|
+
return startRuntime(config, result.accessToken);
|
|
1602
|
+
}
|
|
1603
|
+
async function start(options) {
|
|
1604
|
+
const logger = options.logger;
|
|
1605
|
+
logger.debug("start");
|
|
1606
|
+
const config = {
|
|
1463
1607
|
publishableKey: options.publishableKey,
|
|
1464
|
-
subject,
|
|
1465
1608
|
origin: options.origin,
|
|
1466
1609
|
fetch: options.fetch,
|
|
1467
1610
|
abort: options.abort,
|
|
1468
|
-
logger
|
|
1469
|
-
});
|
|
1470
|
-
const session = makeSession({
|
|
1471
|
-
subject,
|
|
1472
|
-
supportedPcis: supportedPcisOrEmpty(options.supportedPcis),
|
|
1473
1611
|
logger,
|
|
1474
|
-
|
|
1612
|
+
subject: runtimeSubject(options.subject),
|
|
1613
|
+
supportedPcis: supportedPcisOrEmpty(options.supportedPcis)
|
|
1614
|
+
};
|
|
1615
|
+
const accessToken = resolveExistingAccessToken({
|
|
1616
|
+
accessToken: options.accessToken,
|
|
1617
|
+
publishableKey: options.publishableKey,
|
|
1618
|
+
origin: options.origin,
|
|
1619
|
+
logger
|
|
1475
1620
|
});
|
|
1476
|
-
|
|
1621
|
+
if (accessToken.kind === "fatal") {
|
|
1622
|
+
return {
|
|
1623
|
+
phase: "fatal",
|
|
1624
|
+
error: accessToken.error,
|
|
1625
|
+
retriable: false,
|
|
1626
|
+
toJSON: poisonToJSON
|
|
1627
|
+
};
|
|
1628
|
+
}
|
|
1629
|
+
if (accessToken.kind === "unauthenticated") {
|
|
1630
|
+
return makeUnauthenticatedState(config, accessToken.error);
|
|
1631
|
+
}
|
|
1632
|
+
return startRuntime(config, accessToken.accessToken);
|
|
1477
1633
|
}
|
|
1478
1634
|
export {
|
|
1479
|
-
|
|
1635
|
+
start
|
|
1480
1636
|
};
|
|
1481
1637
|
|
|
1482
|
-
//# debugId=
|
|
1638
|
+
//# debugId=94171F205AFFEEE264756E2164756E21
|