@turnkey/sdk-browser 1.5.0 → 1.7.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/CHANGELOG.md +47 -0
- package/dist/__generated__/sdk-client-base.d.ts.map +1 -1
- package/dist/__generated__/sdk-client-base.js +32 -37
- package/dist/__generated__/sdk-client-base.js.map +1 -1
- package/dist/__generated__/sdk-client-base.mjs +32 -37
- package/dist/__generated__/sdk-client-base.mjs.map +1 -1
- package/dist/__generated__/sdk_api_types.d.ts +51 -51
- package/dist/__generated__/sdk_api_types.d.ts.map +1 -1
- package/dist/__generated__/version.d.ts +1 -1
- package/dist/__generated__/version.js +1 -1
- package/dist/__generated__/version.mjs +1 -1
- package/dist/__inputs__/public_api.types.d.ts +59 -59
- package/dist/__inputs__/public_api.types.d.ts.map +1 -1
- package/dist/__types__/base.d.ts +10 -8
- package/dist/__types__/base.d.ts.map +1 -1
- package/dist/__types__/base.js.map +1 -1
- package/dist/__types__/base.mjs.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/models.d.ts +9 -0
- package/dist/models.d.ts.map +1 -1
- package/dist/sdk-client.d.ts +58 -13
- package/dist/sdk-client.d.ts.map +1 -1
- package/dist/sdk-client.js +105 -45
- package/dist/sdk-client.js.map +1 -1
- package/dist/sdk-client.mjs +105 -45
- package/dist/sdk-client.mjs.map +1 -1
- package/package.json +5 -5
package/dist/__types__/base.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { TActivityId, TActivityStatus } from "@turnkey/http";
|
|
1
2
|
export type GrpcStatus = {
|
|
2
3
|
message: string;
|
|
3
4
|
code: number;
|
|
@@ -25,24 +26,25 @@ export declare class TurnkeyRequestError extends Error {
|
|
|
25
26
|
}
|
|
26
27
|
export interface ActivityResponse {
|
|
27
28
|
activity: {
|
|
28
|
-
id:
|
|
29
|
-
status:
|
|
29
|
+
id: TActivityId;
|
|
30
|
+
status: TActivityStatus;
|
|
30
31
|
result: Record<string, any>;
|
|
31
32
|
};
|
|
32
33
|
}
|
|
33
34
|
export interface ActivityMetadata {
|
|
34
35
|
activity: {
|
|
35
|
-
id:
|
|
36
|
-
status:
|
|
36
|
+
id: TActivityId;
|
|
37
|
+
status: TActivityStatus;
|
|
37
38
|
};
|
|
38
39
|
}
|
|
40
|
+
export type TActivityPollerConfig = {
|
|
41
|
+
intervalMs: number;
|
|
42
|
+
numRetries: number;
|
|
43
|
+
};
|
|
39
44
|
interface BaseSDKClientConfig {
|
|
40
45
|
apiBaseUrl: string;
|
|
41
46
|
organizationId: string;
|
|
42
|
-
activityPoller?:
|
|
43
|
-
duration: number;
|
|
44
|
-
timeout: number;
|
|
45
|
-
};
|
|
47
|
+
activityPoller?: TActivityPollerConfig | undefined;
|
|
46
48
|
}
|
|
47
49
|
interface SDKClientConfigWithStamper extends BaseSDKClientConfig {
|
|
48
50
|
stamper: TStamper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/__types__/base.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,oBAAY,UAAU;IACpB,GAAG,IAAA;IACH,IAAI,IAAA;IACJ,OAAO,IAAA;CACR;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;gBAED,KAAK,EAAE,UAAU;CAa9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE;QACR,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/__types__/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAElE,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,oBAAY,UAAU;IACpB,GAAG,IAAA;IACH,IAAI,IAAA;IACJ,OAAO,IAAA;CACR;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;gBAED,KAAK,EAAE,UAAU;CAa9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE;QACR,EAAE,EAAE,WAAW,CAAC;QAChB,MAAM,EAAE,eAAe,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC7B,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE;QACR,EAAE,EAAE,WAAW,CAAC;QAChB,MAAM,EAAE,eAAe,CAAC;KACzB,CAAC;CACH;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,UAAU,mBAAmB;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;CACpD;AAED,UAAU,0BAA2B,SAAQ,mBAAmB;IAC9D,OAAO,EAAE,QAAQ,CAAC;IAClB,eAAe,CAAC,EAAE,KAAK,CAAC;CACzB;AAED,UAAU,kCAAmC,SAAQ,mBAAmB;IACtE,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,sBAAsB,GAC9B,0BAA0B,GAC1B,kCAAkC,CAAC;AAEvC,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sources":["../../src/__types__/base.ts"],"sourcesContent":[null],"names":["MethodType"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"base.js","sources":["../../src/__types__/base.ts"],"sourcesContent":[null],"names":["MethodType"],"mappings":";;AAQYA,4BAIX;AAJD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACH,IAAA,UAAA,CAAA,UAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,UAAA,CAAA,UAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACT,CAAC,EAJWA,kBAAU,KAAVA,kBAAU,GAIrB,EAAA,CAAA,CAAA,CAAA;AAeK,MAAO,mBAAoB,SAAQ,KAAK,CAAA;AAI5C,IAAA,WAAA,CAAY,KAAiB,EAAA;QAC3B,IAAI,mBAAmB,GAAG,CAAA,cAAA,EAAiB,KAAK,CAAC,IAAI,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC;AAE1E,QAAA,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE;YACzB,mBAAmB,IAAI,CAAc,WAAA,EAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA,CAAA,CAAG,CAAC;AACvE,SAAA;QAED,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAE3B,QAAA,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC;AACrC,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;KACxB;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.mjs","sources":["../../src/__types__/base.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.mjs","sources":["../../src/__types__/base.ts"],"sourcesContent":[null],"names":[],"mappings":"IAQY,WAIX;AAJD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACH,IAAA,UAAA,CAAA,UAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,UAAA,CAAA,UAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACT,CAAC,EAJW,UAAU,KAAV,UAAU,GAIrB,EAAA,CAAA,CAAA,CAAA;AAeK,MAAO,mBAAoB,SAAQ,KAAK,CAAA;AAI5C,IAAA,WAAA,CAAY,KAAiB,EAAA;QAC3B,IAAI,mBAAmB,GAAG,CAAA,cAAA,EAAiB,KAAK,CAAC,IAAI,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC;AAE1E,QAAA,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE;YACzB,mBAAmB,IAAI,CAAc,WAAA,EAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA,CAAA,CAAG,CAAC;AACvE,SAAA;QAED,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAE3B,QAAA,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC;AACrC,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;KACxB;AACF;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createActivityPoller, getWebAuthnAttestation, sealAndStampRequestBody,
|
|
1
|
+
import { createActivityPoller, getWebAuthnAttestation, sealAndStampRequestBody, TurnkeyActivityError, TurnkeyApi, TurnkeyRequestError, type TSignedRequest, type TActivity, type TurnkeyApiTypes } from "@turnkey/http";
|
|
2
2
|
import { ApiKeyStamper, signWithApiKey, TApiKeyStamperConfig } from "@turnkey/api-key-stamper";
|
|
3
3
|
import { IframeEventType, IframeStamper, TIframeStamperConfig } from "@turnkey/iframe-stamper";
|
|
4
4
|
import { TWebauthnStamperConfig, WebauthnStamper } from "@turnkey/webauthn-stamper";
|
|
@@ -8,7 +8,7 @@ import { defaultEthereumAccountAtIndex, DEFAULT_ETHEREUM_ACCOUNTS, defaultSolana
|
|
|
8
8
|
import type { TurnkeySDKClientConfig, TurnkeySDKBrowserConfig } from "./__types__/base";
|
|
9
9
|
import type * as TurnkeySDKApiTypes from "./__generated__/sdk_api_types";
|
|
10
10
|
export { ApiKeyStamper, IframeStamper, TurnkeyActivityError, TurnkeyBrowserSDK as Turnkey, TurnkeyBrowserClient, TurnkeyIframeClient, TurnkeyPasskeyClient, TurnkeyRequestError, WebauthnStamper, };
|
|
11
|
-
export type { TApiKeyStamperConfig, TIframeStamperConfig, TSignedRequest, TurnkeyApiTypes, TurnkeySDKApiTypes, TurnkeySDKClientConfig, TurnkeySDKBrowserConfig, TWebauthnStamperConfig, };
|
|
11
|
+
export type { TActivity, TApiKeyStamperConfig, TIframeStamperConfig, TSignedRequest, TurnkeyApiTypes, TurnkeySDKApiTypes, TurnkeySDKClientConfig, TurnkeySDKBrowserConfig, TWebauthnStamperConfig, };
|
|
12
12
|
export { createActivityPoller, defaultEthereumAccountAtIndex, defaultSolanaAccountAtIndex, getWebAuthnAttestation, sealAndStampRequestBody, signWithApiKey, };
|
|
13
13
|
export { DEFAULT_ETHEREUM_ACCOUNTS, DEFAULT_SOLANA_ACCOUNTS };
|
|
14
14
|
export { IframeEventType };
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,UAAU,EACV,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,eAAe,EACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,aAAa,EACb,cAAc,EACd,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,eAAe,EACf,aAAa,EACb,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,sBAAsB,EACtB,eAAe,EAChB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE1E,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,KAAK,kBAAkB,MAAM,+BAA+B,CAAC;AAGzE,OAAO,EACL,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,iBAAiB,IAAI,OAAO,EAC5B,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,GAChB,CAAC;AAGF,YAAY,EACV,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,GACvB,CAAC;AAGF,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,2BAA2B,EAC3B,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,GACf,CAAC;AAGF,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,CAAC;AAG9D,OAAO,EAAE,eAAe,EAAE,CAAC;AAG3B,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/models.d.ts
CHANGED
|
@@ -20,4 +20,13 @@ export type EmbeddedAPIKey = {
|
|
|
20
20
|
authBundle: string;
|
|
21
21
|
publicKey: string;
|
|
22
22
|
};
|
|
23
|
+
export type Passkey = {
|
|
24
|
+
encodedChallenge: string;
|
|
25
|
+
attestation: {
|
|
26
|
+
credentialId: string;
|
|
27
|
+
clientDataJson: string;
|
|
28
|
+
attestationObject: string;
|
|
29
|
+
transports: ("AUTHENTICATOR_TRANSPORT_BLE" | "AUTHENTICATOR_TRANSPORT_INTERNAL" | "AUTHENTICATOR_TRANSPORT_NFC" | "AUTHENTICATOR_TRANSPORT_USB" | "AUTHENTICATOR_TRANSPORT_HYBRID")[];
|
|
30
|
+
};
|
|
31
|
+
};
|
|
23
32
|
//# sourceMappingURL=models.d.ts.map
|
package/dist/models.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,eAAe,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC"}
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,eAAe,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE;QACX,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,UAAU,EAAE,CACR,6BAA6B,GAC7B,kCAAkC,GAClC,6BAA6B,GAC7B,6BAA6B,GAC7B,gCAAgC,CACnC,EAAE,CAAC;KACL,CAAC;CACH,CAAC"}
|
package/dist/sdk-client.d.ts
CHANGED
|
@@ -2,39 +2,84 @@ import { KeyFormat } from "@turnkey/iframe-stamper";
|
|
|
2
2
|
import type { TurnkeySDKClientConfig, TurnkeySDKBrowserConfig, IframeClientParams } from "./__types__/base";
|
|
3
3
|
import { TurnkeySDKClientBase } from "./__generated__/sdk-client-base";
|
|
4
4
|
import type * as SdkApiTypes from "./__generated__/sdk_api_types";
|
|
5
|
-
import type { User, SubOrganization, ReadWriteSession } from "./models";
|
|
5
|
+
import type { User, SubOrganization, ReadWriteSession, Passkey } from "./models";
|
|
6
6
|
export declare class TurnkeyBrowserSDK {
|
|
7
7
|
config: TurnkeySDKBrowserConfig;
|
|
8
8
|
constructor(config: TurnkeySDKBrowserConfig);
|
|
9
|
-
currentUserSession: () => Promise<TurnkeyBrowserClient | undefined>;
|
|
10
9
|
passkeyClient: (rpId?: string) => TurnkeyPasskeyClient;
|
|
11
10
|
iframeClient: (params: IframeClientParams) => Promise<TurnkeyIframeClient>;
|
|
12
11
|
serverSign: <TResponseType>(methodName: string, params: any[], serverSignUrl?: string) => Promise<TResponseType>;
|
|
12
|
+
/**
|
|
13
|
+
* If there is a valid, current user session, this will return a read-enabled TurnkeyBrowserClient that can make read requests to Turnkey without additional authentication. This is powered by a session header resulting from a prior successful `login` call.
|
|
14
|
+
*
|
|
15
|
+
* @returns {Promise<TurnkeyBrowserClient | undefined>}
|
|
16
|
+
*/
|
|
17
|
+
currentUserSession: () => Promise<TurnkeyBrowserClient | undefined>;
|
|
18
|
+
/**
|
|
19
|
+
* If there is a valid, current read-session, this will return an auth bundle and its expiration. This auth bundle can be used in conjunction with an iframeStamper to create a read + write session.
|
|
20
|
+
*
|
|
21
|
+
* @returns {Promise<ReadWriteSession | undefined>}
|
|
22
|
+
*/
|
|
23
|
+
getReadWriteSession: () => Promise<ReadWriteSession | undefined>;
|
|
24
|
+
/**
|
|
25
|
+
* Fetches an auth bundle stored in local storage.
|
|
26
|
+
*
|
|
27
|
+
* @returns {Promise<string | undefined>}
|
|
28
|
+
*/
|
|
13
29
|
getAuthBundle: () => Promise<string | undefined>;
|
|
30
|
+
/**
|
|
31
|
+
* Fetches the current user's organization details.
|
|
32
|
+
*
|
|
33
|
+
* @returns {Promise<SubOrganization | undefined>}
|
|
34
|
+
*/
|
|
14
35
|
getCurrentSubOrganization: () => Promise<SubOrganization | undefined>;
|
|
36
|
+
/**
|
|
37
|
+
* Fetches the currently active user.
|
|
38
|
+
*
|
|
39
|
+
* @returns {Promise<User | undefined>}
|
|
40
|
+
*/
|
|
15
41
|
getCurrentUser: () => Promise<User | undefined>;
|
|
42
|
+
/**
|
|
43
|
+
* Clears out all data pertaining to a user session.
|
|
44
|
+
*
|
|
45
|
+
* @returns {Promise<boolean>}
|
|
46
|
+
*/
|
|
16
47
|
logoutUser: () => Promise<boolean>;
|
|
17
|
-
getReadWriteSession: () => Promise<ReadWriteSession | undefined>;
|
|
18
48
|
}
|
|
19
49
|
export declare class TurnkeyBrowserClient extends TurnkeySDKClientBase {
|
|
20
50
|
constructor(config: TurnkeySDKClientConfig);
|
|
21
51
|
login: (config?: {
|
|
22
52
|
organizationId?: string;
|
|
23
53
|
}) => Promise<SdkApiTypes.TCreateReadOnlySessionResponse>;
|
|
54
|
+
/**
|
|
55
|
+
* Creates a read-write session. This method infers the current user's organization ID and target userId. To be used in conjunction with an `iframeStamper`: the resulting session's credential bundle can be injected into an iframeStamper to create a session that enables both read and write requests.
|
|
56
|
+
*
|
|
57
|
+
* @param email
|
|
58
|
+
* @param targetEmbeddedKey
|
|
59
|
+
* @param expirationSeconds
|
|
60
|
+
* @returns {Promise<SdkApiTypes.TCreateReadWriteSessionResponse>}
|
|
61
|
+
*/
|
|
62
|
+
loginWithReadWriteSession: (targetEmbeddedKey: string, expirationSeconds?: string, userId?: string) => Promise<SdkApiTypes.TCreateReadWriteSessionResponse>;
|
|
24
63
|
}
|
|
25
64
|
export declare class TurnkeyPasskeyClient extends TurnkeyBrowserClient {
|
|
26
65
|
rpId: string;
|
|
27
66
|
constructor(config: TurnkeySDKClientConfig);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
67
|
+
/**
|
|
68
|
+
* Create a passkey for an end-user, taking care of various lower-level details.
|
|
69
|
+
*
|
|
70
|
+
* @returns {Promise<Passkey>}
|
|
71
|
+
*/
|
|
72
|
+
createUserPasskey: (config?: Record<any, any>) => Promise<Passkey>;
|
|
73
|
+
/**
|
|
74
|
+
* Uses passkey authentication to create a read-write session, via an embedded API key, and stores + returns the resulting auth bundle that contains the encrypted API key. This auth bundle (also referred to as a credential bundle) can be injected into an iframeStamper, resulting in a touch-free authenticator. Unlike `loginWithReadWriteSession`, this method assumes the end-user's organization ID (i.e. the sub-organization ID) is already known.
|
|
75
|
+
*
|
|
76
|
+
* @param userId
|
|
77
|
+
* @param targetEmbeddedKey
|
|
78
|
+
* @param expirationSeconds
|
|
79
|
+
* @param curveType
|
|
80
|
+
* @returns {Promise<ReadWriteSession>}
|
|
81
|
+
*/
|
|
82
|
+
createPasskeySession: (userId: string, targetEmbeddedKey: string, expirationSeconds?: string, organizationId?: string) => Promise<ReadWriteSession>;
|
|
38
83
|
}
|
|
39
84
|
export declare class TurnkeyIframeClient extends TurnkeyBrowserClient {
|
|
40
85
|
iframePublicKey: string | null;
|
package/dist/sdk-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-client.d.ts","sourceRoot":"","sources":["../src/sdk-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAMnE,OAAO,KAAK,EAEV,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,KAAK,WAAW,MAAM,+BAA+B,CAAC;AAElE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"sdk-client.d.ts","sourceRoot":"","sources":["../src/sdk-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAMnE,OAAO,KAAK,EAEV,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,KAAK,WAAW,MAAM,+BAA+B,CAAC;AAElE,OAAO,KAAK,EACV,IAAI,EACJ,eAAe,EACf,gBAAgB,EAChB,OAAO,EACR,MAAM,UAAU,CAAC;AAelB,qBAAa,iBAAiB;IAC5B,MAAM,EAAE,uBAAuB,CAAC;gBAEpB,MAAM,EAAE,uBAAuB;IAI3C,aAAa,UAAW,MAAM,KAAG,oBAAoB,CAmBnD;IAEF,YAAY,WACF,kBAAkB,KACzB,QAAQ,mBAAmB,CAAC,CAuB7B;IAEF,UAAU,8BACI,MAAM,UACV,GAAG,EAAE,kBACG,MAAM,4BAoCtB;IAEF;;;;OAIG;IACH,kBAAkB,QAAa,QAAQ,oBAAoB,GAAG,SAAS,CAAC,CAmBtE;IAEF;;;;OAIG;IACH,mBAAmB,QAAa,QAAQ,gBAAgB,GAAG,SAAS,CAAC,CAanE;IAEF;;;;OAIG;IACH,aAAa,QAAa,QAAQ,MAAM,GAAG,SAAS,CAAC,CAEnD;IAEF;;;;OAIG;IACH,yBAAyB,QAAa,QACpC,eAAe,GAAG,SAAS,CAC5B,CAGC;IAEF;;;;OAIG;IACH,cAAc,QAAa,QAAQ,IAAI,GAAG,SAAS,CAAC,CAElD;IAEF;;;;OAIG;IACH,UAAU,QAAa,QAAQ,OAAO,CAAC,CAMrC;CACH;AAED,qBAAa,oBAAqB,SAAQ,oBAAoB;gBAChD,MAAM,EAAE,sBAAsB;IAI1C,KAAK,YAAmB;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,KAAG,QAAQ,YAAY,8BAA8B,CAAC,CAsBrD;IAEF;;;;;;;OAOG;IACH,yBAAyB,sBACJ,MAAM,sBACN,MAAM,WAChB,MAAM,KACd,QAAQ,YAAY,+BAA+B,CAAC,CAcrD;CACH;AAED,qBAAa,oBAAqB,SAAQ,oBAAoB;IAC5D,IAAI,EAAE,MAAM,CAAC;gBAED,MAAM,EAAE,sBAAsB;IAK1C;;;;OAIG;IACH,iBAAiB,YACP,OAAO,GAAG,EAAE,GAAG,CAAC,KACvB,QAAQ,OAAO,CAAC,CAwDjB;IAEF;;;;;;;;OAQG;IACH,oBAAoB,WACV,MAAM,qBACK,MAAM,sBACN,MAAM,mBACR,MAAM,KACtB,QAAQ,gBAAgB,CAAC,CA+B1B;CACH;AAED,qBAAa,mBAAoB,SAAQ,oBAAoB;IAC3D,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEnB,MAAM,EAAE,sBAAsB;IAK1C,sBAAsB,qBACF,MAAM,KACvB,QAAQ,OAAO,CAAC,CAGjB;IAEF,wBAAwB,qBACJ,MAAM,kBACR,MAAM,KACrB,QAAQ,OAAO,CAAC,CAMjB;IAEF,qBAAqB,qBACD,MAAM,kBACR,MAAM,cACV,SAAS,GAAG,SAAS,KAChC,QAAQ,OAAO,CAAC,CAOjB;IAEF,kBAAkB,WACR,MAAM,kBACE,MAAM,UACd,MAAM,KACb,QAAQ,OAAO,CAAC,CAGjB;IAEF,4BAA4B,QAAa,QAAQ,MAAM,CAAC,CAGtD;IAEF,yBAAyB,QAAa,QAAQ,MAAM,CAAC,CAGnD;CACH"}
|
package/dist/sdk-client.js
CHANGED
|
@@ -10,26 +10,9 @@ var sdkClientBase = require('./__generated__/sdk-client-base.js');
|
|
|
10
10
|
var storage = require('./storage.js');
|
|
11
11
|
var utils = require('./utils.js');
|
|
12
12
|
|
|
13
|
+
const DEFAULT_SESSION_EXPIRATION = "900"; // default to 15 minutes
|
|
13
14
|
class TurnkeyBrowserSDK {
|
|
14
15
|
constructor(config) {
|
|
15
|
-
this.currentUserSession = async () => {
|
|
16
|
-
const currentUser = await this.getCurrentUser();
|
|
17
|
-
if (!currentUser?.readOnlySession) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
if (currentUser?.readOnlySession?.sessionExpiry > Date.now()) {
|
|
21
|
-
return new TurnkeyBrowserClient({
|
|
22
|
-
readOnlySession: currentUser?.readOnlySession?.session,
|
|
23
|
-
apiBaseUrl: this.config.apiBaseUrl,
|
|
24
|
-
organizationId: currentUser?.organization?.organizationId ??
|
|
25
|
-
this.config.defaultOrganizationId,
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
this.logoutUser();
|
|
30
|
-
}
|
|
31
|
-
return;
|
|
32
|
-
};
|
|
33
16
|
this.passkeyClient = (rpId) => {
|
|
34
17
|
const targetRpId = rpId ?? this.config.rpId ?? window.location.hostname;
|
|
35
18
|
if (!targetRpId) {
|
|
@@ -92,23 +75,34 @@ class TurnkeyBrowserSDK {
|
|
|
92
75
|
const data = await response.json();
|
|
93
76
|
return data;
|
|
94
77
|
};
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
78
|
+
/**
|
|
79
|
+
* If there is a valid, current user session, this will return a read-enabled TurnkeyBrowserClient that can make read requests to Turnkey without additional authentication. This is powered by a session header resulting from a prior successful `login` call.
|
|
80
|
+
*
|
|
81
|
+
* @returns {Promise<TurnkeyBrowserClient | undefined>}
|
|
82
|
+
*/
|
|
83
|
+
this.currentUserSession = async () => {
|
|
100
84
|
const currentUser = await this.getCurrentUser();
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
85
|
+
if (!currentUser?.readOnlySession) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (currentUser?.readOnlySession?.sessionExpiry > Date.now()) {
|
|
89
|
+
return new TurnkeyBrowserClient({
|
|
90
|
+
readOnlySession: currentUser?.readOnlySession?.session,
|
|
91
|
+
apiBaseUrl: this.config.apiBaseUrl,
|
|
92
|
+
organizationId: currentUser?.organization?.organizationId ??
|
|
93
|
+
this.config.defaultOrganizationId,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
this.logoutUser();
|
|
98
|
+
}
|
|
99
|
+
return;
|
|
111
100
|
};
|
|
101
|
+
/**
|
|
102
|
+
* If there is a valid, current read-session, this will return an auth bundle and its expiration. This auth bundle can be used in conjunction with an iframeStamper to create a read + write session.
|
|
103
|
+
*
|
|
104
|
+
* @returns {Promise<ReadWriteSession | undefined>}
|
|
105
|
+
*/
|
|
112
106
|
this.getReadWriteSession = async () => {
|
|
113
107
|
const readWriteSession = await storage.getStorageValue(storage.StorageKeys.ReadWriteSession);
|
|
114
108
|
if (readWriteSession) {
|
|
@@ -119,7 +113,43 @@ class TurnkeyBrowserSDK {
|
|
|
119
113
|
await storage.removeStorageValue(storage.StorageKeys.ReadWriteSession);
|
|
120
114
|
}
|
|
121
115
|
}
|
|
122
|
-
return
|
|
116
|
+
return;
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* Fetches an auth bundle stored in local storage.
|
|
120
|
+
*
|
|
121
|
+
* @returns {Promise<string | undefined>}
|
|
122
|
+
*/
|
|
123
|
+
this.getAuthBundle = async () => {
|
|
124
|
+
return await storage.getStorageValue(storage.StorageKeys.AuthBundle); // DEPRECATED
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Fetches the current user's organization details.
|
|
128
|
+
*
|
|
129
|
+
* @returns {Promise<SubOrganization | undefined>}
|
|
130
|
+
*/
|
|
131
|
+
this.getCurrentSubOrganization = async () => {
|
|
132
|
+
const currentUser = await this.getCurrentUser();
|
|
133
|
+
return currentUser?.organization;
|
|
134
|
+
};
|
|
135
|
+
/**
|
|
136
|
+
* Fetches the currently active user.
|
|
137
|
+
*
|
|
138
|
+
* @returns {Promise<User | undefined>}
|
|
139
|
+
*/
|
|
140
|
+
this.getCurrentUser = async () => {
|
|
141
|
+
return await storage.getStorageValue(storage.StorageKeys.CurrentUser);
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* Clears out all data pertaining to a user session.
|
|
145
|
+
*
|
|
146
|
+
* @returns {Promise<boolean>}
|
|
147
|
+
*/
|
|
148
|
+
this.logoutUser = async () => {
|
|
149
|
+
await storage.removeStorageValue(storage.StorageKeys.AuthBundle); // DEPRECATED
|
|
150
|
+
await storage.removeStorageValue(storage.StorageKeys.CurrentUser);
|
|
151
|
+
await storage.removeStorageValue(storage.StorageKeys.ReadWriteSession);
|
|
152
|
+
return true;
|
|
123
153
|
};
|
|
124
154
|
this.config = config;
|
|
125
155
|
}
|
|
@@ -145,11 +175,37 @@ class TurnkeyBrowserClient extends sdkClientBase.TurnkeySDKClientBase {
|
|
|
145
175
|
await storage.setStorageValue(storage.StorageKeys.CurrentUser, currentUser);
|
|
146
176
|
return readOnlySessionResult;
|
|
147
177
|
};
|
|
178
|
+
/**
|
|
179
|
+
* Creates a read-write session. This method infers the current user's organization ID and target userId. To be used in conjunction with an `iframeStamper`: the resulting session's credential bundle can be injected into an iframeStamper to create a session that enables both read and write requests.
|
|
180
|
+
*
|
|
181
|
+
* @param email
|
|
182
|
+
* @param targetEmbeddedKey
|
|
183
|
+
* @param expirationSeconds
|
|
184
|
+
* @returns {Promise<SdkApiTypes.TCreateReadWriteSessionResponse>}
|
|
185
|
+
*/
|
|
186
|
+
this.loginWithReadWriteSession = async (targetEmbeddedKey, expirationSeconds = DEFAULT_SESSION_EXPIRATION, userId) => {
|
|
187
|
+
const readWriteSessionResult = await this.createReadWriteSession({
|
|
188
|
+
targetPublicKey: targetEmbeddedKey,
|
|
189
|
+
expirationSeconds,
|
|
190
|
+
userId: userId,
|
|
191
|
+
});
|
|
192
|
+
// store auth bundle in local storage
|
|
193
|
+
await storage.setStorageValue(storage.StorageKeys.ReadWriteSession, {
|
|
194
|
+
authBundle: readWriteSessionResult.credentialBundle,
|
|
195
|
+
sessionExpiry: Date.now() + Number(expirationSeconds) * 1000,
|
|
196
|
+
});
|
|
197
|
+
return readWriteSessionResult;
|
|
198
|
+
};
|
|
148
199
|
}
|
|
149
200
|
}
|
|
150
201
|
class TurnkeyPasskeyClient extends TurnkeyBrowserClient {
|
|
151
202
|
constructor(config) {
|
|
152
203
|
super(config);
|
|
204
|
+
/**
|
|
205
|
+
* Create a passkey for an end-user, taking care of various lower-level details.
|
|
206
|
+
*
|
|
207
|
+
* @returns {Promise<Passkey>}
|
|
208
|
+
*/
|
|
153
209
|
this.createUserPasskey = async (config = {}) => {
|
|
154
210
|
const challenge = utils.generateRandomBuffer();
|
|
155
211
|
const encodedChallenge = utils.base64UrlEncode(challenge);
|
|
@@ -197,25 +253,32 @@ class TurnkeyPasskeyClient extends TurnkeyBrowserClient {
|
|
|
197
253
|
encodedChallenge: config.publicKey?.challenge
|
|
198
254
|
? utils.base64UrlEncode(config.publicKey?.challenge)
|
|
199
255
|
: encodedChallenge,
|
|
200
|
-
attestation
|
|
256
|
+
attestation,
|
|
201
257
|
};
|
|
202
258
|
};
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
259
|
+
/**
|
|
260
|
+
* Uses passkey authentication to create a read-write session, via an embedded API key, and stores + returns the resulting auth bundle that contains the encrypted API key. This auth bundle (also referred to as a credential bundle) can be injected into an iframeStamper, resulting in a touch-free authenticator. Unlike `loginWithReadWriteSession`, this method assumes the end-user's organization ID (i.e. the sub-organization ID) is already known.
|
|
261
|
+
*
|
|
262
|
+
* @param userId
|
|
263
|
+
* @param targetEmbeddedKey
|
|
264
|
+
* @param expirationSeconds
|
|
265
|
+
* @param curveType
|
|
266
|
+
* @returns {Promise<ReadWriteSession>}
|
|
267
|
+
*/
|
|
268
|
+
this.createPasskeySession = async (userId, targetEmbeddedKey, expirationSeconds = DEFAULT_SESSION_EXPIRATION, organizationId) => {
|
|
207
269
|
const localStorageUser = await storage.getStorageValue(storage.StorageKeys.CurrentUser);
|
|
208
270
|
userId = userId ?? localStorageUser?.userId;
|
|
209
271
|
const { authBundle, publicKey } = await utils.createEmbeddedAPIKey(targetEmbeddedKey);
|
|
210
272
|
// add API key to Turnkey User
|
|
211
273
|
await this.createApiKeys({
|
|
274
|
+
organizationId: organizationId,
|
|
212
275
|
userId,
|
|
213
276
|
apiKeys: [
|
|
214
277
|
{
|
|
215
278
|
apiKeyName: `Session Key ${String(Date.now())}`,
|
|
216
279
|
publicKey,
|
|
217
|
-
expirationSeconds
|
|
218
|
-
curveType:
|
|
280
|
+
expirationSeconds,
|
|
281
|
+
curveType: "API_KEY_CURVE_P256",
|
|
219
282
|
},
|
|
220
283
|
],
|
|
221
284
|
});
|
|
@@ -224,10 +287,7 @@ class TurnkeyPasskeyClient extends TurnkeyBrowserClient {
|
|
|
224
287
|
sessionExpiry: Date.now() + Number(expirationSeconds) * 1000,
|
|
225
288
|
};
|
|
226
289
|
// store auth bundle in local storage
|
|
227
|
-
await storage.setStorageValue(storage.StorageKeys.ReadWriteSession,
|
|
228
|
-
authBundle: authBundle,
|
|
229
|
-
sessionExpiry: Date.now() + Number(expirationSeconds) * 1000,
|
|
230
|
-
});
|
|
290
|
+
await storage.setStorageValue(storage.StorageKeys.ReadWriteSession, readWriteSession);
|
|
231
291
|
return readWriteSession;
|
|
232
292
|
};
|
|
233
293
|
this.rpId = config.stamper.rpId;
|
package/dist/sdk-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-client.js","sources":["../src/sdk-client.ts"],"sourcesContent":[null],"names":["WindowWrapper","webauthnStamper","WebauthnStamper","iframeStamper","IframeStamper","VERSION","TurnkeyRequestError","getStorageValue","StorageKeys","removeStorageValue","TurnkeySDKClientBase","setStorageValue","generateRandomBuffer","base64UrlEncode","getWebAuthnAttestation","createEmbeddedAPIKey"],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"sdk-client.js","sources":["../src/sdk-client.ts"],"sourcesContent":[null],"names":["WindowWrapper","webauthnStamper","WebauthnStamper","iframeStamper","IframeStamper","VERSION","TurnkeyRequestError","getStorageValue","StorageKeys","removeStorageValue","TurnkeySDKClientBase","setStorageValue","generateRandomBuffer","base64UrlEncode","getWebAuthnAttestation","createEmbeddedAPIKey"],"mappings":"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"}
|