@gftdcojp/auth
Version:
✅ Enterprise-grade Auth0 integration for GFTD platform - 90% Complete, High Quality Implementation
244 lines • 8.55 kB
JavaScript
;
/**
* Next.js Auth0 SDK - Universal Entry Point
*
* 🔄 Client & Server 安全実装
* - 自動的にサーバー・クライアント判定
* - Next.js環境適応
* - 型安全性確保
*
* 使用場所:
* - Client Components (型のみ)
* - Server Components (実装付き)
* - API Routes (実装付き)
* - Middleware (実装付き)
*/
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.NextJsAuth0Client = void 0;
exports.createNextJsAuth0Client = createNextJsAuth0Client;
exports.getSession = getSession;
exports.getSessionWithOrganization = getSessionWithOrganization;
exports.getAccessToken = getAccessToken;
exports.updateSession = updateSession;
exports.withMiddlewareAuthRequired = withMiddlewareAuthRequired;
exports.withOrganizationAuthRequired = withOrganizationAuthRequired;
exports.auth0Middleware = auth0Middleware;
exports.withApiAuthRequired = withApiAuthRequired;
exports.withOrganizationApiAuthRequired = withOrganizationApiAuthRequired;
exports.handleAuth = handleAuth;
exports.handleAuthLogin = handleAuthLogin;
exports.handleAuthLogout = handleAuthLogout;
exports.handleAuthCallback = handleAuthCallback;
exports.handleAuthMe = handleAuthMe;
exports.handleOrganizationLogin = handleOrganizationLogin;
exports.handleOrganizationCallback = handleOrganizationCallback;
exports.handleOrganizationSelection = handleOrganizationSelection;
exports.buildOrganizationLoginUrl = buildOrganizationLoginUrl;
/**
* サーバー環境判定
*/
function isServerSide() {
return typeof window === 'undefined' && typeof process !== 'undefined';
}
/**
* 条件的サーバー実装インポート
*
* ⚠️ サーバーサイドでのみ実行される動的インポート
*/
async function getServerImplementation() {
if (!isServerSide()) {
throw new Error('Server implementation can only be used on server-side');
}
try {
const serverModule = await Promise.resolve().then(() => __importStar(require('./nextjs-auth0-server')));
return serverModule;
}
catch (error) {
throw new Error(`Failed to load server implementation: ${error}`);
}
}
/**
* 条件的エクスポート関数群
*
* サーバーサイドでのみ実装を読み込み、
* クライアントサイドでは型安全なエラーを投げる
*/
/**
* Next.js Auth0 クライアント(条件的)
*/
class NextJsAuth0Client {
constructor(config) {
if (!isServerSide()) {
throw new Error('NextJsAuth0Client can only be instantiated on server-side. ' +
'Use client-side auth hooks for React components.');
}
}
}
exports.NextJsAuth0Client = NextJsAuth0Client;
/**
* Next.js Auth0 Client作成(条件的)
*/
async function createNextJsAuth0Client(config) {
const server = await getServerImplementation();
return server.createNextJsAuth0Client(config);
}
/**
* セッション取得(条件的)
*/
async function getSession(request) {
if (!isServerSide()) {
throw new Error('getSession can only be called on server-side. ' +
'Use useUser hook in client components.');
}
const server = await getServerImplementation();
return server.getSession(request);
}
/**
* 🆕 組織コンテキストでのセッション取得(条件的)
*/
async function getSessionWithOrganization(organizationId, request) {
if (!isServerSide()) {
throw new Error('getSessionWithOrganization can only be called on server-side. ' +
'Use useUser hook in client components.');
}
const server = await getServerImplementation();
return server.getSessionWithOrganization(organizationId, request);
}
/**
* アクセストークン取得(条件的)
*/
async function getAccessToken(request) {
if (!isServerSide()) {
throw new Error('getAccessToken can only be called on server-side. ' +
'Use useAccessToken hook in client components.');
}
const server = await getServerImplementation();
return server.getAccessToken(request);
}
/**
* セッション更新(条件的)
*/
async function updateSession(updates, request) {
if (!isServerSide()) {
throw new Error('updateSession can only be called on server-side.');
}
const server = await getServerImplementation();
return server.updateSession(updates, request);
}
/**
* ミドルウェア認証必須ラッパー(条件的)
*/
async function withMiddlewareAuthRequired(middleware) {
const server = await getServerImplementation();
return server.withMiddlewareAuthRequired(middleware);
}
/**
* 🆕 組織認証必須ミドルウェアラッパー(条件的)
*/
async function withOrganizationAuthRequired(organizationId, middleware) {
const server = await getServerImplementation();
return server.withOrganizationAuthRequired(organizationId, middleware);
}
/**
* ミドルウェア(条件的)
*/
async function auth0Middleware(request) {
const server = await getServerImplementation();
return server.auth0Middleware(request);
}
/**
* API認証必須ラッパー(条件的)
*/
async function withApiAuthRequired(handler) {
const server = await getServerImplementation();
return server.withApiAuthRequired(handler);
}
/**
* 🆕 組織API認証必須ラッパー(条件的)
*/
async function withOrganizationApiAuthRequired(organizationId, handler) {
const server = await getServerImplementation();
return server.withOrganizationApiAuthRequired(organizationId, handler);
}
/**
* 統合Auth Handler(条件的)
*/
async function handleAuth(request, route) {
const server = await getServerImplementation();
return server.handleAuth(request, route);
}
/**
* 個別Route Handler関数(条件的)
*/
async function handleAuthLogin(request) {
const server = await getServerImplementation();
return server.handleAuthLogin(request);
}
async function handleAuthLogout(request) {
const server = await getServerImplementation();
return server.handleAuthLogout(request);
}
async function handleAuthCallback(request) {
const server = await getServerImplementation();
return server.handleAuthCallback(request);
}
async function handleAuthMe(request) {
const server = await getServerImplementation();
return server.handleAuthMe(request);
}
/**
* 🆕 組織関連Route Handler関数(条件的)
*/
async function handleOrganizationLogin(request) {
const server = await getServerImplementation();
return server.handleOrganizationLogin(request);
}
async function handleOrganizationCallback(request) {
const server = await getServerImplementation();
return server.handleOrganizationCallback(request);
}
async function handleOrganizationSelection(request) {
const server = await getServerImplementation();
return server.handleOrganizationSelection(request);
}
/**
* 🆕 組織ログインURL生成ヘルパー(条件的)
*/
async function buildOrganizationLoginUrl(options) {
const server = await getServerImplementation();
return server.buildOrganizationLoginUrl(options);
}
//# sourceMappingURL=nextjs-auth0.js.map