New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@logto/js

Package Overview
Dependencies
Maintainers
1
Versions
57
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@logto/js - npm Package Compare versions

Comparing version 0.2.0 to 1.0.0-alpha.0

lib/index.d.ts.map

190

lib/index.d.ts

@@ -1,3 +0,187 @@

export * from './core';
export * from './utils';
export * from './consts';
import { NormalizeKeyPaths, KeysToCamelCase } from "@silverhand/essentials";
import { JWTVerifyGetKey } from "jose";
import * as s from "superstruct";
export const ContentType: {
formUrlEncoded: {
'Content-Type': string;
};
};
export enum TokenGrantType {
AuthorizationCode = "authorization_code",
RefreshToken = "refresh_token"
}
export enum QueryKey {
ClientId = "client_id",
Code = "code",
CodeChallenge = "code_challenge",
CodeChallengeMethod = "code_challenge_method",
CodeVerifier = "code_verifier",
Error = "error",
ErrorDescription = "error_description",
GrantType = "grant_type",
IdToken = "id_token",
IdTokenHint = "id_token_hint",
PostLogoutRedirectUri = "post_logout_redirect_uri",
Prompt = "prompt",
RedirectUri = "redirect_uri",
RefreshToken = "refresh_token",
Resource = "resource",
ResponseType = "response_type",
Scope = "scope",
State = "state",
Token = "token"
}
export enum Prompt {
Consent = "consent",
Login = "login"
}
declare const logtoErrorCodes: Readonly<{
id_token: {
invalid_iat: string;
invalid_token: string;
};
callback_uri_verification: {
redirect_uri_mismatched: string;
error_found: string;
missing_state: string;
state_mismatched: string;
missing_code: string;
};
requester: {
not_provide_fetch: string;
};
}>;
export type LogtoErrorCode = NormalizeKeyPaths<typeof logtoErrorCodes>;
export class LogtoError extends Error {
code: LogtoErrorCode;
data: unknown;
constructor(code: LogtoErrorCode, data?: unknown);
}
export class LogtoRequestError extends Error {
code: string;
constructor(code: string, message: string);
}
export class OidcError {
error: string;
errorDescription?: string;
constructor(error: string, errorDescription?: string);
}
export const parseUriParameters: (uri: string) => URLSearchParams;
export const verifyAndParseCodeFromCallbackUri: (callbackUri: string, redirectUri: string, state: string) => string;
/**
* Generates random string for state and encodes them in url safe base64
*/
export const generateState: () => string;
/**
* Generates code verifier
*
* @link [Client Creates a Code Verifier](https://datatracker.ietf.org/doc/html/rfc7636#section-4.1)
*/
export const generateCodeVerifier: () => string;
/**
* Calculates the S256 PKCE code challenge for an arbitrary code verifier and encodes it in url safe base64
*
* @param {String} codeVerifier Code verifier to calculate the S256 code challenge for
* @link [Client Creates the Code Challenge](https://datatracker.ietf.org/doc/html/rfc7636#section-4.2)
*/
export const generateCodeChallenge: (codeVerifier: string) => Promise<string>;
/**
* @link [ID Token](https://openid.net/specs/openid-connect-core-1_0.html#IDToken)
*/
declare const IdTokenClaimsSchema: s.Struct<{
iss: string;
sub: string;
aud: string;
exp: number;
iat: number;
at_hash?: string | null | undefined;
name?: string | null | undefined;
username?: string | null | undefined;
avatar?: string | null | undefined;
role_names?: string[] | null | undefined;
}, {
iss: s.Struct<string, null>;
sub: s.Struct<string, null>;
aud: s.Struct<string, null>;
exp: s.Struct<number, null>;
iat: s.Struct<number, null>;
at_hash: s.Struct<string | null | undefined, null>;
name: s.Struct<string | null | undefined, null>;
username: s.Struct<string | null | undefined, null>;
avatar: s.Struct<string | null | undefined, null>;
role_names: s.Struct<string[] | null | undefined, s.Struct<string, null>>;
}>;
export type IdTokenClaims = s.Infer<typeof IdTokenClaimsSchema>;
export const verifyIdToken: (idToken: string, clientId: string, issuer: string, jwks: JWTVerifyGetKey) => Promise<void>;
export const decodeIdToken: (token: string) => IdTokenClaims;
export const createRequester: (fetchFunction?: typeof fetch | undefined) => <T>(input: RequestInfo, init?: RequestInit | undefined) => Promise<T>;
export type Requester = ReturnType<typeof createRequester>;
/**
* @param originalScopes
* @return scopes should contain all reserved scopes ( Logto requires `openid` and `offline_access` )
*/
export const withReservedScopes: (originalScopes?: string[] | undefined) => string;
export type FetchTokenByAuthorizationCodeParameters = {
clientId: string;
tokenEndpoint: string;
redirectUri: string;
codeVerifier: string;
code: string;
resource?: string;
};
export type FetchTokenByRefreshTokenParameters = {
clientId: string;
tokenEndpoint: string;
refreshToken: string;
resource?: string;
scopes?: string[];
};
type SnakeCaseCodeTokenResponse = {
access_token: string;
refresh_token?: string;
id_token: string;
scope: string;
expires_in: number;
};
export type CodeTokenResponse = KeysToCamelCase<SnakeCaseCodeTokenResponse>;
type SnakeCaseRefreshTokenTokenResponse = {
access_token: string;
refresh_token: string;
id_token?: string;
scope: string;
expires_in: number;
};
export type RefreshTokenTokenResponse = KeysToCamelCase<SnakeCaseRefreshTokenTokenResponse>;
export const fetchTokenByAuthorizationCode: ({ clientId, tokenEndpoint, redirectUri, codeVerifier, code, resource, }: FetchTokenByAuthorizationCodeParameters, requester: Requester) => Promise<CodeTokenResponse>;
export const fetchTokenByRefreshToken: ({ clientId, tokenEndpoint, refreshToken, resource, scopes }: FetchTokenByRefreshTokenParameters, requester: Requester) => Promise<RefreshTokenTokenResponse>;
type OidcConfigSnakeCaseResponse = {
authorization_endpoint: string;
token_endpoint: string;
end_session_endpoint: string;
revocation_endpoint: string;
jwks_uri: string;
issuer: string;
};
export const discoveryPath = "/oidc/.well-known/openid-configuration";
export type OidcConfigResponse = KeysToCamelCase<OidcConfigSnakeCaseResponse>;
export const fetchOidcConfig: (endpoint: string, requester: Requester) => Promise<OidcConfigResponse>;
export const revoke: (revocationEndpoint: string, clientId: string, token: string, requester: Requester) => Promise<void>;
export type SignInUriParameters = {
authorizationEndpoint: string;
clientId: string;
redirectUri: string;
codeChallenge: string;
state: string;
scopes?: string[];
resources?: string[];
prompt?: Prompt;
};
export const generateSignInUri: ({ authorizationEndpoint, clientId, redirectUri, codeChallenge, state, scopes, resources, prompt, }: SignInUriParameters) => string;
type SignOutUriParameters = {
endSessionEndpoint: string;
idToken: string;
postLogoutRedirectUri?: string;
};
export const generateSignOutUri: ({ endSessionEndpoint, idToken, postLogoutRedirectUri, }: SignOutUriParameters) => string;
//# sourceMappingURL=index.d.ts.map

@@ -1,16 +0,361 @@

"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
var $eVySA$camelcasekeys = require("camelcase-keys");
var $eVySA$silverhandessentials = require("@silverhand/essentials");
var $eVySA$lodashget = require("lodash.get");
var $eVySA$jsbase64 = require("js-base64");
var $eVySA$jose = require("jose");
var $eVySA$superstruct = require("superstruct");
function $parcel$exportWildcard(dest, source) {
Object.keys(source).forEach(function(key) {
if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {
return;
}
Object.defineProperty(dest, key, {
enumerable: true,
get: function get() {
return source[key];
}
});
});
return dest;
}
function $parcel$interopDefault(a) {
return a && a.__esModule ? a.default : a;
}
function $parcel$export(e, n, v, s) {
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
}
var $a722dce254028e46$exports = {};
var $e6b305c1e572373d$exports = {};
$parcel$export($e6b305c1e572373d$exports, "fetchTokenByAuthorizationCode", () => $e6b305c1e572373d$export$684f740cd70532d4);
$parcel$export($e6b305c1e572373d$exports, "fetchTokenByRefreshToken", () => $e6b305c1e572373d$export$9909137b467efb8b);
var $5c367c11270b61f6$exports = {};
$parcel$export($5c367c11270b61f6$exports, "ContentType", () => $5c367c11270b61f6$export$e2e108cbe2e4f865);
$parcel$export($5c367c11270b61f6$exports, "TokenGrantType", () => $5c367c11270b61f6$export$3f2aafdd1ccae76c);
$parcel$export($5c367c11270b61f6$exports, "QueryKey", () => $5c367c11270b61f6$export$65f63a8bc3cba53d);
$parcel$export($5c367c11270b61f6$exports, "Prompt", () => $5c367c11270b61f6$export$83716a4aa1642908);
const $5c367c11270b61f6$export$e2e108cbe2e4f865 = {
formUrlEncoded: {
"Content-Type": "application/x-www-form-urlencoded"
}
};
Object.defineProperty(exports, "__esModule", { value: true });
/* istanbul ignore file */
__exportStar(require("./core"), exports);
__exportStar(require("./utils"), exports);
__exportStar(require("./consts"), exports);
let $5c367c11270b61f6$export$3f2aafdd1ccae76c;
(function(TokenGrantType1) {
TokenGrantType1["AuthorizationCode"] = "authorization_code";
TokenGrantType1["RefreshToken"] = "refresh_token";
})($5c367c11270b61f6$export$3f2aafdd1ccae76c || ($5c367c11270b61f6$export$3f2aafdd1ccae76c = {}));
let $5c367c11270b61f6$export$65f63a8bc3cba53d;
(function(QueryKey1) {
QueryKey1["ClientId"] = "client_id";
QueryKey1["Code"] = "code";
QueryKey1["CodeChallenge"] = "code_challenge";
QueryKey1["CodeChallengeMethod"] = "code_challenge_method";
QueryKey1["CodeVerifier"] = "code_verifier";
QueryKey1["Error"] = "error";
QueryKey1["ErrorDescription"] = "error_description";
QueryKey1["GrantType"] = "grant_type";
QueryKey1["IdToken"] = "id_token";
QueryKey1["IdTokenHint"] = "id_token_hint";
QueryKey1["PostLogoutRedirectUri"] = "post_logout_redirect_uri";
QueryKey1["Prompt"] = "prompt";
QueryKey1["RedirectUri"] = "redirect_uri";
QueryKey1["RefreshToken"] = "refresh_token";
QueryKey1["Resource"] = "resource";
QueryKey1["ResponseType"] = "response_type";
QueryKey1["Scope"] = "scope";
QueryKey1["State"] = "state";
QueryKey1["Token"] = "token";
})($5c367c11270b61f6$export$65f63a8bc3cba53d || ($5c367c11270b61f6$export$65f63a8bc3cba53d = {}));
let $5c367c11270b61f6$export$83716a4aa1642908;
(function(Prompt1) {
Prompt1["Consent"] = "consent";
Prompt1["Login"] = "login";
})($5c367c11270b61f6$export$83716a4aa1642908 || ($5c367c11270b61f6$export$83716a4aa1642908 = {}));
const $e6b305c1e572373d$export$684f740cd70532d4 = async ({ clientId: clientId , tokenEndpoint: tokenEndpoint , redirectUri: redirectUri , codeVerifier: codeVerifier , code: code , resource: resource }, requester)=>{
const parameters = new URLSearchParams();
parameters.append((0, $5c367c11270b61f6$export$65f63a8bc3cba53d).ClientId, clientId);
parameters.append((0, $5c367c11270b61f6$export$65f63a8bc3cba53d).Code, code);
parameters.append((0, $5c367c11270b61f6$export$65f63a8bc3cba53d).CodeVerifier, codeVerifier);
parameters.append((0, $5c367c11270b61f6$export$65f63a8bc3cba53d).RedirectUri, redirectUri);
parameters.append((0, $5c367c11270b61f6$export$65f63a8bc3cba53d).GrantType, (0, $5c367c11270b61f6$export$3f2aafdd1ccae76c).AuthorizationCode);
if (resource) parameters.append((0, $5c367c11270b61f6$export$65f63a8bc3cba53d).Resource, resource);
const snakeCaseCodeTokenResponse = await requester(tokenEndpoint, {
method: "POST",
headers: (0, $5c367c11270b61f6$export$e2e108cbe2e4f865).formUrlEncoded,
body: parameters
});
return (0, ($parcel$interopDefault($eVySA$camelcasekeys)))(snakeCaseCodeTokenResponse);
};
const $e6b305c1e572373d$export$9909137b467efb8b = async ({ clientId: clientId , tokenEndpoint: tokenEndpoint , refreshToken: refreshToken , resource: resource , scopes: scopes }, requester)=>{
const parameters = new URLSearchParams();
parameters.append((0, $5c367c11270b61f6$export$65f63a8bc3cba53d).ClientId, clientId);
parameters.append((0, $5c367c11270b61f6$export$65f63a8bc3cba53d).RefreshToken, refreshToken);
parameters.append((0, $5c367c11270b61f6$export$65f63a8bc3cba53d).GrantType, (0, $5c367c11270b61f6$export$3f2aafdd1ccae76c).RefreshToken);
if (resource) parameters.append((0, $5c367c11270b61f6$export$65f63a8bc3cba53d).Resource, resource);
if (scopes?.length) parameters.append((0, $5c367c11270b61f6$export$65f63a8bc3cba53d).Scope, scopes.join(" "));
const snakeCaseRefreshTokenTokenResponse = await requester(tokenEndpoint, {
method: "POST",
headers: (0, $5c367c11270b61f6$export$e2e108cbe2e4f865).formUrlEncoded,
body: parameters
});
return (0, ($parcel$interopDefault($eVySA$camelcasekeys)))(snakeCaseRefreshTokenTokenResponse);
};
var $945b1d0ce7f8f44a$exports = {};
$parcel$export($945b1d0ce7f8f44a$exports, "discoveryPath", () => $945b1d0ce7f8f44a$export$815bda5ead26b243);
$parcel$export($945b1d0ce7f8f44a$exports, "fetchOidcConfig", () => $945b1d0ce7f8f44a$export$98242d8e822ad11f);
const $945b1d0ce7f8f44a$export$815bda5ead26b243 = "/oidc/.well-known/openid-configuration";
const $945b1d0ce7f8f44a$export$98242d8e822ad11f = async (endpoint, requester)=>(0, ($parcel$interopDefault($eVySA$camelcasekeys)))(await requester(endpoint));
var $de840481123b2c25$exports = {};
$parcel$export($de840481123b2c25$exports, "revoke", () => $de840481123b2c25$export$573f8dbbf6fbef75);
const $de840481123b2c25$export$573f8dbbf6fbef75 = async (revocationEndpoint, clientId, token, requester)=>requester(revocationEndpoint, {
method: "POST",
headers: (0, $5c367c11270b61f6$export$e2e108cbe2e4f865).formUrlEncoded,
body: new URLSearchParams({
[(0, $5c367c11270b61f6$export$65f63a8bc3cba53d).ClientId]: clientId,
[(0, $5c367c11270b61f6$export$65f63a8bc3cba53d).Token]: token
})
});
var $1e17092ca3413c94$exports = {};
$parcel$export($1e17092ca3413c94$exports, "generateSignInUri", () => $1e17092ca3413c94$export$b01a187f12b774c6);
var $10615ba3cc8a78f8$exports = {};
var $d3a7a037fd1d9433$exports = {};
$parcel$export($d3a7a037fd1d9433$exports, "parseUriParameters", () => $d3a7a037fd1d9433$export$4851e69315d5b72c);
$parcel$export($d3a7a037fd1d9433$exports, "verifyAndParseCodeFromCallbackUri", () => $d3a7a037fd1d9433$export$dc3fae3c99763885);
var $47fe17290a91cd19$exports = {};
$parcel$export($47fe17290a91cd19$exports, "LogtoError", () => $47fe17290a91cd19$export$ba60d77e6748b659);
$parcel$export($47fe17290a91cd19$exports, "LogtoRequestError", () => $47fe17290a91cd19$export$e6e15b8ba42b9b70);
$parcel$export($47fe17290a91cd19$exports, "OidcError", () => $47fe17290a91cd19$export$d4832bcf9ce430e0);
const $47fe17290a91cd19$var$logtoErrorCodes = Object.freeze({
id_token: {
invalid_iat: "Invalid issued at time",
invalid_token: "Invalid token"
},
callback_uri_verification: {
redirect_uri_mismatched: "Redirect URI mismatched",
error_found: "Error found",
missing_state: "Missing state",
state_mismatched: "State mismatched",
missing_code: "Missing code"
},
requester: {
not_provide_fetch: "Should provide a fetch function under Node.js"
}
});
const $47fe17290a91cd19$var$getMessageByErrorCode = (errorCode)=>{
// TODO: linear issue LOG-1419
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const message = (0, ($parcel$interopDefault($eVySA$lodashget)))($47fe17290a91cd19$var$logtoErrorCodes, errorCode);
if (typeof message === "string") return message;
return errorCode;
};
class $47fe17290a91cd19$export$ba60d77e6748b659 extends Error {
constructor(code, data){
super($47fe17290a91cd19$var$getMessageByErrorCode(code));
this.code = code;
this.data = data;
}
}
class $47fe17290a91cd19$export$e6e15b8ba42b9b70 extends Error {
constructor(code, message){
super(message);
this.code = code;
}
}
class $47fe17290a91cd19$export$d4832bcf9ce430e0 {
constructor(error, errorDescription){
this.error = error;
this.errorDescription = errorDescription;
}
}
const $d3a7a037fd1d9433$export$4851e69315d5b72c = (uri)=>{
const [, queryString = ""] = uri.split("?");
return new URLSearchParams(queryString);
};
const $d3a7a037fd1d9433$export$dc3fae3c99763885 = (callbackUri, redirectUri, state)=>{
if (!callbackUri.startsWith(redirectUri)) throw new (0, $47fe17290a91cd19$export$ba60d77e6748b659)("callback_uri_verification.redirect_uri_mismatched");
const uriParameters = $d3a7a037fd1d9433$export$4851e69315d5b72c(callbackUri);
const error = (0, $eVySA$silverhandessentials.conditional)(uriParameters.get((0, $5c367c11270b61f6$export$65f63a8bc3cba53d).Error));
const errorDescription = (0, $eVySA$silverhandessentials.conditional)(uriParameters.get((0, $5c367c11270b61f6$export$65f63a8bc3cba53d).ErrorDescription));
if (error) throw new (0, $47fe17290a91cd19$export$ba60d77e6748b659)("callback_uri_verification.error_found", new (0, $47fe17290a91cd19$export$d4832bcf9ce430e0)(error, errorDescription));
const stateFromCallbackUri = uriParameters.get((0, $5c367c11270b61f6$export$65f63a8bc3cba53d).State);
if (!stateFromCallbackUri) throw new (0, $47fe17290a91cd19$export$ba60d77e6748b659)("callback_uri_verification.missing_state");
if (stateFromCallbackUri !== state) throw new (0, $47fe17290a91cd19$export$ba60d77e6748b659)("callback_uri_verification.state_mismatched");
const code = uriParameters.get((0, $5c367c11270b61f6$export$65f63a8bc3cba53d).Code);
if (!code) throw new (0, $47fe17290a91cd19$export$ba60d77e6748b659)("callback_uri_verification.missing_code");
return code;
};
var $06fff6f93a1f66aa$exports = {};
$parcel$export($06fff6f93a1f66aa$exports, "generateState", () => $06fff6f93a1f66aa$export$9ccd2716e53a229b);
$parcel$export($06fff6f93a1f66aa$exports, "generateCodeVerifier", () => $06fff6f93a1f66aa$export$cf1891f923f5943a);
$parcel$export($06fff6f93a1f66aa$exports, "generateCodeChallenge", () => $06fff6f93a1f66aa$export$414b01b1f867308a);
/**
* @param length The length of the raw random data.
*/ const $06fff6f93a1f66aa$var$generateRandomString = (length = 64)=>(0, $eVySA$jsbase64.fromUint8Array)(crypto.getRandomValues(new Uint8Array(length)), true);
const $06fff6f93a1f66aa$export$9ccd2716e53a229b = ()=>$06fff6f93a1f66aa$var$generateRandomString();
const $06fff6f93a1f66aa$export$cf1891f923f5943a = ()=>$06fff6f93a1f66aa$var$generateRandomString();
const $06fff6f93a1f66aa$export$414b01b1f867308a = async (codeVerifier)=>{
const encodedCodeVerifier = new TextEncoder().encode(codeVerifier);
// TODO: crypto related to linear issue LOG-1517
const codeChallenge = new Uint8Array(await crypto.subtle.digest("SHA-256", encodedCodeVerifier));
return (0, $eVySA$jsbase64.fromUint8Array)(codeChallenge, true);
};
var $c2fd0c04c48199e2$exports = {};
$parcel$export($c2fd0c04c48199e2$exports, "verifyIdToken", () => $c2fd0c04c48199e2$export$b5b3317c8aecbcd5);
$parcel$export($c2fd0c04c48199e2$exports, "decodeIdToken", () => $c2fd0c04c48199e2$export$aac2d5b7f5cd16d5);
const $c2fd0c04c48199e2$var$issuedAtTimeTolerance = 60;
/**
* @link [ID Token](https://openid.net/specs/openid-connect-core-1_0.html#IDToken)
*/ const $c2fd0c04c48199e2$var$IdTokenClaimsSchema = $eVySA$superstruct.type({
iss: $eVySA$superstruct.string(),
sub: $eVySA$superstruct.string(),
aud: $eVySA$superstruct.string(),
exp: $eVySA$superstruct.number(),
iat: $eVySA$superstruct.number(),
at_hash: $eVySA$superstruct.nullable($eVySA$superstruct.optional($eVySA$superstruct.string())),
name: $eVySA$superstruct.nullable($eVySA$superstruct.optional($eVySA$superstruct.string())),
username: $eVySA$superstruct.nullable($eVySA$superstruct.optional($eVySA$superstruct.string())),
avatar: $eVySA$superstruct.nullable($eVySA$superstruct.optional($eVySA$superstruct.string())),
role_names: $eVySA$superstruct.nullable($eVySA$superstruct.optional($eVySA$superstruct.array($eVySA$superstruct.string())))
});
const $c2fd0c04c48199e2$export$b5b3317c8aecbcd5 = async (idToken, clientId, issuer, jwks)=>{
const result = await (0, $eVySA$jose.jwtVerify)(idToken, jwks, {
audience: clientId,
issuer: issuer
});
if (Math.abs((result.payload.iat ?? 0) - Date.now() / 1000) > $c2fd0c04c48199e2$var$issuedAtTimeTolerance) throw new (0, $47fe17290a91cd19$export$ba60d77e6748b659)("id_token.invalid_iat");
};
const $c2fd0c04c48199e2$export$aac2d5b7f5cd16d5 = (token)=>{
const { 1: encodedPayload } = token.split(".");
if (!encodedPayload) throw new (0, $47fe17290a91cd19$export$ba60d77e6748b659)("id_token.invalid_token");
const json = (0, $eVySA$silverhandessentials.UrlSafeBase64).decode(encodedPayload);
const idTokenClaims = JSON.parse(json);
$eVySA$superstruct.assert(idTokenClaims, $c2fd0c04c48199e2$var$IdTokenClaimsSchema);
return idTokenClaims;
};
var $4eeb0328a47154bc$exports = {};
$parcel$export($4eeb0328a47154bc$exports, "createRequester", () => $4eeb0328a47154bc$export$8d54726fdbf08e0a);
const $4eeb0328a47154bc$export$8d54726fdbf08e0a = (fetchFunction)=>{
if (!fetchFunction && (0, $eVySA$silverhandessentials.isNode)()) throw new (0, $47fe17290a91cd19$export$ba60d77e6748b659)("requester.not_provide_fetch");
return async (...args)=>{
const response = await (fetchFunction ?? fetch)(...args);
if (!response.ok) {
// Expected request error from server
const { code: code , message: message } = await response.json();
throw new (0, $47fe17290a91cd19$export$e6e15b8ba42b9b70)(code, message);
}
return response.json();
};
};
var $b85bdeea0b1e81a5$exports = {};
$parcel$export($b85bdeea0b1e81a5$exports, "withReservedScopes", () => $b85bdeea0b1e81a5$export$887ed125f549a57);
const $b85bdeea0b1e81a5$export$887ed125f549a57 = (originalScopes)=>{
const uniqueScopes = new Set([
"openid",
"offline_access",
"profile",
...originalScopes ?? []
]);
return Array.from(uniqueScopes).join(" ");
};
$parcel$exportWildcard($10615ba3cc8a78f8$exports, $d3a7a037fd1d9433$exports);
$parcel$exportWildcard($10615ba3cc8a78f8$exports, $47fe17290a91cd19$exports);
$parcel$exportWildcard($10615ba3cc8a78f8$exports, $06fff6f93a1f66aa$exports);
$parcel$exportWildcard($10615ba3cc8a78f8$exports, $c2fd0c04c48199e2$exports);
$parcel$exportWildcard($10615ba3cc8a78f8$exports, $4eeb0328a47154bc$exports);
$parcel$exportWildcard($10615ba3cc8a78f8$exports, $b85bdeea0b1e81a5$exports);
const $1e17092ca3413c94$var$codeChallengeMethod = "S256";
const $1e17092ca3413c94$var$responseType = "code";
const $1e17092ca3413c94$export$b01a187f12b774c6 = ({ authorizationEndpoint: authorizationEndpoint , clientId: clientId , redirectUri: redirectUri , codeChallenge: codeChallenge , state: state , scopes: scopes , resources: resources , prompt: prompt })=>{
const urlSearchParameters = new URLSearchParams({
[(0, $5c367c11270b61f6$export$65f63a8bc3cba53d).ClientId]: clientId,
[(0, $5c367c11270b61f6$export$65f63a8bc3cba53d).RedirectUri]: redirectUri,
[(0, $5c367c11270b61f6$export$65f63a8bc3cba53d).CodeChallenge]: codeChallenge,
[(0, $5c367c11270b61f6$export$65f63a8bc3cba53d).CodeChallengeMethod]: $1e17092ca3413c94$var$codeChallengeMethod,
[(0, $5c367c11270b61f6$export$65f63a8bc3cba53d).State]: state,
[(0, $5c367c11270b61f6$export$65f63a8bc3cba53d).ResponseType]: $1e17092ca3413c94$var$responseType,
[(0, $5c367c11270b61f6$export$65f63a8bc3cba53d).Prompt]: prompt ?? (0, $5c367c11270b61f6$export$83716a4aa1642908).Consent,
[(0, $5c367c11270b61f6$export$65f63a8bc3cba53d).Scope]: (0, $b85bdeea0b1e81a5$export$887ed125f549a57)(scopes)
});
for (const resource of resources ?? [])urlSearchParameters.append((0, $5c367c11270b61f6$export$65f63a8bc3cba53d).Resource, resource);
return `${authorizationEndpoint}?${urlSearchParameters.toString()}`;
};
var $1dac903ccb175f85$exports = {};
$parcel$export($1dac903ccb175f85$exports, "generateSignOutUri", () => $1dac903ccb175f85$export$b3c9a2bd2330de28);
const $1dac903ccb175f85$export$b3c9a2bd2330de28 = ({ endSessionEndpoint: endSessionEndpoint , idToken: idToken , postLogoutRedirectUri: postLogoutRedirectUri })=>{
const urlSearchParameters = new URLSearchParams({
[(0, $5c367c11270b61f6$export$65f63a8bc3cba53d).IdTokenHint]: idToken
});
if (postLogoutRedirectUri) urlSearchParameters.append((0, $5c367c11270b61f6$export$65f63a8bc3cba53d).PostLogoutRedirectUri, postLogoutRedirectUri);
return `${endSessionEndpoint}?${urlSearchParameters.toString()}`;
};
$parcel$exportWildcard($a722dce254028e46$exports, $e6b305c1e572373d$exports);
$parcel$exportWildcard($a722dce254028e46$exports, $945b1d0ce7f8f44a$exports);
$parcel$exportWildcard($a722dce254028e46$exports, $de840481123b2c25$exports);
$parcel$exportWildcard($a722dce254028e46$exports, $1e17092ca3413c94$exports);
$parcel$exportWildcard($a722dce254028e46$exports, $1dac903ccb175f85$exports);
$parcel$exportWildcard(module.exports, $a722dce254028e46$exports);
$parcel$exportWildcard(module.exports, $10615ba3cc8a78f8$exports);
$parcel$exportWildcard(module.exports, $5c367c11270b61f6$exports);
//# sourceMappingURL=index.js.map

20

package.json
{
"name": "@logto/js",
"version": "0.2.0",
"version": "1.0.0-alpha.0",
"source": "./src/index.ts",
"main": "./lib/index.js",
"exports": "./lib/index.js",
"typings": "./lib/index.d.ts",
"exports": {
"require": "./lib/index.js",
"import": "./lib/module.js"
},
"module": "./lib/module.js",
"types": "./lib/index.d.ts",
"files": [

@@ -19,3 +24,4 @@ "lib"

"precommit": "lint-staged",
"build": "rm -rf lib/ && tsc -p tsconfig.build.json",
"check": "tsc --noEmit",
"build": "rm -rf lib/ && pnpm check && parcel build",
"lint": "eslint --ext .ts src",

@@ -36,2 +42,5 @@ "test": "jest",

"@jest/types": "^27.5.1",
"@parcel/core": "^2.6.2",
"@parcel/packager-ts": "^2.6.2",
"@parcel/transformer-typescript-types": "^2.6.2",
"@peculiar/webcrypto": "^1.1.7",

@@ -49,2 +58,3 @@ "@silverhand/eslint-config": "^0.14.0",

"node-fetch": "^2.6.7",
"parcel": "^2.6.2",
"prettier": "^2.3.2",

@@ -63,3 +73,3 @@ "text-encoder": "^0.0.4",

},
"gitHead": "5166ae926de86816f29229f18bc756f3b17fb57b"
"gitHead": "e7bebf027d400960ac6ef1d63ed84656aa6d1c62"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc