@logto/core-kit
Advanced tools
Comparing version 1.0.0-beta.25 to 1.0.0-beta.26
@@ -1,4 +0,4 @@ | ||
export * from './utilities/index.js'; | ||
export * from './regex.js'; | ||
export * from './language.js'; | ||
export * from './scope.js'; | ||
export * from './utilities/index'; | ||
export * from './regex'; | ||
export * from './language'; | ||
export * from './scope'; |
@@ -1,4 +0,20 @@ | ||
export * from './utilities/index.js'; | ||
export * from './regex.js'; | ||
export * from './language.js'; | ||
export * from './scope.js'; | ||
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (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); | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
__exportStar(require("./utilities/index"), exports); | ||
__exportStar(require("./regex"), exports); | ||
__exportStar(require("./language"), exports); | ||
__exportStar(require("./scope"), exports); |
@@ -1,12 +0,17 @@ | ||
import { languageTagGuard } from '@logto/language-kit'; | ||
import { z } from 'zod'; | ||
import { fallback } from './utilities/index.js'; | ||
export const getDefaultLanguageTag = (language) => languageTagGuard.or(fallback('en')).parse(language); | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getDefaultLanguage = exports.languageKeyGuard = exports.languageKeys = exports.getDefaultLanguageTag = void 0; | ||
const language_kit_1 = require("@logto/language-kit"); | ||
const zod_1 = require("zod"); | ||
const index_1 = require("./utilities/index"); | ||
const getDefaultLanguageTag = (language) => language_kit_1.languageTagGuard.or((0, index_1.fallback)('en')).parse(language); | ||
exports.getDefaultLanguageTag = getDefaultLanguageTag; | ||
/** @deprecated */ | ||
export const languageKeys = ['en', 'fr', 'pt-PT', 'zh-CN', 'tr-TR', 'ko-KR']; | ||
exports.languageKeys = ['en', 'fr', 'pt-PT', 'zh-CN', 'tr-TR', 'ko-KR']; | ||
/** @deprecated */ | ||
export const languageKeyGuard = z.enum(languageKeys); | ||
exports.languageKeyGuard = zod_1.z.enum(exports.languageKeys); | ||
/** @deprecated */ | ||
export const getDefaultLanguage = (language) => { | ||
return languageKeyGuard.or(fallback('en')).parse(language); | ||
const getDefaultLanguage = (language) => { | ||
return exports.languageKeyGuard.or((0, index_1.fallback)('en')).parse(language); | ||
}; | ||
exports.getDefaultLanguage = getDefaultLanguage; |
@@ -1,8 +0,11 @@ | ||
export const emailRegEx = /^\S+@\S+\.\S+$/; | ||
export const phoneRegEx = /^\d+$/; | ||
export const usernameRegEx = /^[A-Z_a-z]\w*$/; | ||
export const passwordRegEx = /^.{6,}$/; | ||
export const webRedirectUriProtocolRegEx = /^https?:$/; | ||
export const mobileUriSchemeProtocolRegEx = /^[a-z][\d_a-z]*(\.[\d_a-z]+)+:$/; | ||
export const hexColorRegEx = /^#[\da-f]{3}([\da-f]{3})?$/i; | ||
export const dateRegex = /^\d{4}(-\d{2}){2}/; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.dateRegex = exports.hexColorRegEx = exports.mobileUriSchemeProtocolRegEx = exports.webRedirectUriProtocolRegEx = exports.passwordRegEx = exports.usernameRegEx = exports.phoneRegEx = exports.emailRegEx = void 0; | ||
exports.emailRegEx = /^\S+@\S+\.\S+$/; | ||
exports.phoneRegEx = /^\d+$/; | ||
exports.usernameRegEx = /^[A-Z_a-z]\w*$/; | ||
exports.passwordRegEx = /^.{6,}$/; | ||
exports.webRedirectUriProtocolRegEx = /^https?:$/; | ||
exports.mobileUriSchemeProtocolRegEx = /^[a-z][\d_a-z]*(\.[\d_a-z]+)+:$/; | ||
exports.hexColorRegEx = /^#[\da-f]{3}([\da-f]{3})?$/i; | ||
exports.dateRegex = /^\d{4}(-\d{2}){2}/; |
@@ -1,10 +0,13 @@ | ||
export var ReservedScope; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.userClaims = exports.userinfoClaims = exports.idTokenClaims = exports.UserScope = exports.ReservedScope = void 0; | ||
var ReservedScope; | ||
(function (ReservedScope) { | ||
ReservedScope["OpenId"] = "openid"; | ||
ReservedScope["OfflineAccess"] = "offline_access"; | ||
})(ReservedScope || (ReservedScope = {})); | ||
})(ReservedScope = exports.ReservedScope || (exports.ReservedScope = {})); | ||
/** | ||
* Scopes for ID Token and Userinfo Endpoint. | ||
*/ | ||
export var UserScope; | ||
var UserScope; | ||
(function (UserScope) { | ||
@@ -41,7 +44,7 @@ /** | ||
UserScope["Identities"] = "identities"; | ||
})(UserScope || (UserScope = {})); | ||
})(UserScope = exports.UserScope || (exports.UserScope = {})); | ||
/** | ||
* Mapped claims that ID Token includes. | ||
*/ | ||
export const idTokenClaims = Object.freeze({ | ||
exports.idTokenClaims = Object.freeze({ | ||
[UserScope.Profile]: ['name', 'picture', 'username', 'role_names'], | ||
@@ -56,3 +59,3 @@ [UserScope.Email]: ['email', 'email_verified'], | ||
*/ | ||
export const userinfoClaims = Object.freeze({ | ||
exports.userinfoClaims = Object.freeze({ | ||
[UserScope.Profile]: [], | ||
@@ -64,3 +67,3 @@ [UserScope.Email]: [], | ||
}); | ||
export const userClaims = Object.freeze( | ||
exports.userClaims = Object.freeze( | ||
// Hard to infer type directly, use `as` for a workaround. | ||
@@ -70,3 +73,3 @@ // eslint-disable-next-line no-restricted-syntax | ||
current, | ||
[...idTokenClaims[current], ...userinfoClaims[current]], | ||
[...exports.idTokenClaims[current], ...exports.userinfoClaims[current]], | ||
]))); |
@@ -1,11 +0,20 @@ | ||
import color from 'color'; | ||
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.generateDarkColor = exports.absoluteDarken = exports.absoluteLighten = void 0; | ||
const color_1 = __importDefault(require("color")); | ||
// Color hsl lighten/darken takes percentage value only, need to implement absolute value update | ||
export const absoluteLighten = (baseColor, delta) => { | ||
const absoluteLighten = (baseColor, delta) => { | ||
const hslArray = baseColor.hsl().round().array(); | ||
return color([hslArray[0] ?? 0, hslArray[1] ?? 0, (hslArray[2] ?? 0) + delta], 'hsl'); | ||
return (0, color_1.default)([hslArray[0] ?? 0, hslArray[1] ?? 0, (hslArray[2] ?? 0) + delta], 'hsl'); | ||
}; | ||
export const absoluteDarken = (baseColor, delta) => { | ||
exports.absoluteLighten = absoluteLighten; | ||
const absoluteDarken = (baseColor, delta) => { | ||
const hslArray = baseColor.hsl().round().array(); | ||
return color([hslArray[0] ?? 0, hslArray[1] ?? 0, (hslArray[2] ?? 0) - delta], 'hsl'); | ||
return (0, color_1.default)([hslArray[0] ?? 0, hslArray[1] ?? 0, (hslArray[2] ?? 0) - delta], 'hsl'); | ||
}; | ||
export const generateDarkColor = (lightColor) => absoluteLighten(color(lightColor), 10).hex(); | ||
exports.absoluteDarken = absoluteDarken; | ||
const generateDarkColor = (lightColor) => (0, exports.absoluteLighten)((0, color_1.default)(lightColor), 10).hex(); | ||
exports.generateDarkColor = generateDarkColor; |
@@ -1,4 +0,4 @@ | ||
export * from './color.js'; | ||
export * from './string.js'; | ||
export * from './zod.js'; | ||
export * from './url.js'; | ||
export * from './color'; | ||
export * from './string'; | ||
export * from './zod'; | ||
export * from './url'; |
@@ -1,4 +0,20 @@ | ||
export * from './color.js'; | ||
export * from './string.js'; | ||
export * from './zod.js'; | ||
export * from './url.js'; | ||
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (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); | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
__exportStar(require("./color"), exports); | ||
__exportStar(require("./string"), exports); | ||
__exportStar(require("./zod"), exports); | ||
__exportStar(require("./url"), exports); |
@@ -1,2 +0,6 @@ | ||
import { customAlphabet } from 'nanoid'; | ||
export const generateRandomString = (size, alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz') => customAlphabet(alphabet, size)(); | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.generateRandomString = void 0; | ||
const nanoid_1 = require("nanoid"); | ||
const generateRandomString = (size, alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz') => (0, nanoid_1.customAlphabet)(alphabet, size)(); | ||
exports.generateRandomString = generateRandomString; |
@@ -1,6 +0,9 @@ | ||
import { mobileUriSchemeProtocolRegEx, webRedirectUriProtocolRegEx } from '../regex.js'; | ||
export const validateRedirectUrl = (url, type) => { | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.validateUriOrigin = exports.validateRedirectUrl = void 0; | ||
const regex_1 = require("../regex"); | ||
const validateRedirectUrl = (url, type) => { | ||
try { | ||
const { protocol } = new URL(url); | ||
const protocolRegEx = type === 'mobile' ? mobileUriSchemeProtocolRegEx : webRedirectUriProtocolRegEx; | ||
const protocolRegEx = type === 'mobile' ? regex_1.mobileUriSchemeProtocolRegEx : regex_1.webRedirectUriProtocolRegEx; | ||
return protocolRegEx.test(protocol); | ||
@@ -12,3 +15,4 @@ } | ||
}; | ||
export const validateUriOrigin = (url) => { | ||
exports.validateRedirectUrl = validateRedirectUrl; | ||
const validateUriOrigin = (url) => { | ||
try { | ||
@@ -21,1 +25,2 @@ return new URL(url).origin === url; | ||
}; | ||
exports.validateUriOrigin = validateUriOrigin; |
@@ -1,2 +0,5 @@ | ||
import { any } from 'zod'; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.fallback = void 0; | ||
const zod_1 = require("zod"); | ||
/** | ||
@@ -12,4 +15,5 @@ * https://github.com/colinhacks/zod/issues/316#issuecomment-850906479 | ||
*/ | ||
export function fallback(value) { | ||
return any().transform(() => value); | ||
function fallback(value) { | ||
return (0, zod_1.any)().transform(() => value); | ||
} | ||
exports.fallback = fallback; |
{ | ||
"name": "@logto/core-kit", | ||
"version": "1.0.0-beta.25", | ||
"main": "lib/index.js", | ||
"version": "1.0.0-beta.26", | ||
"author": "Silverhand Inc. <contact@silverhand.io>", | ||
@@ -12,3 +11,6 @@ "homepage": "https://github.com/logto-io/toolkit#readme", | ||
"license": "MIT", | ||
"type": "module", | ||
"source": "./src/index.ts", | ||
"main": "./lib/index.js", | ||
"exports": "./lib/index.js", | ||
"types": "./lib/index.d.ts", | ||
"files": [ | ||
@@ -21,4 +23,4 @@ "declaration", | ||
"precommit": "lint-staged", | ||
"dev": "tsc -p tsconfig.build.json --watch --preserveWatchOutput --incremental", | ||
"build": "rm -rf lib/ && tsc -p tsconfig.build.json", | ||
"dev": "tsc -p tsconfig.build.json --watch --preserveWatchOutput --incremental", | ||
"lint": "eslint --ext .ts src", | ||
@@ -38,3 +40,3 @@ "lint:report": "pnpm lint --format json --output-file report.json", | ||
"dependencies": { | ||
"@logto/language-kit": "^1.0.0-beta.24", | ||
"@logto/language-kit": "^1.0.0-beta.26", | ||
"color": "^4.2.3", | ||
@@ -74,3 +76,3 @@ "nanoid": "^3.1.23" | ||
}, | ||
"gitHead": "99e4e13ee0ca5ae4420fa05f24f65c3ef19389f6" | ||
"gitHead": "2f9b9a98e3b3e28fc54ee64684bb9156a83d3c3b" | ||
} |
33172
432
No