Next.js அங்கீகார அமலாக்கத்தில் Node.js 'crypto' தொகுதி எட்ஜ் இயக்க நேர சிக்கல்களை சரிசெய்தல்

NextAuth

Next.js அங்கீகார ஒருங்கிணைப்பில் எட்ஜ் இயக்க நேர சவால்களைப் புரிந்துகொள்வது

Next.js இல் பாதுகாப்பான அங்கீகார அமைப்பை உருவாக்குவது உற்சாகமானது, ஆனால் சில நேரங்களில், 'கிரிப்டோ தொகுதி எட்ஜ் இயக்க நேரத்தில் ஆதரிக்கப்படவில்லை' பிழை போன்ற தொழில்நுட்ப சவால்கள் முன்னேற்றத்தை சீர்குலைக்கலாம். நீங்கள் Auth.js மற்றும் MongoDB உடன் பணிபுரிகிறீர்கள் என்றால், இந்தச் சிக்கல் குறிப்பாக வெறுப்பாக இருக்கலாம். 😓

MongoDB ஐ NextAuth உடன் ஒருங்கிணைக்கும் போது இயக்க நேரப் பிழையை எதிர்கொள்வதற்கு, உங்கள் அங்கீகார தர்க்கத்தை உருவாக்குவதற்கு மணிநேரம் செலவழிப்பதை கற்பனை செய்து பாருங்கள். இது ஒரு நல்ல உணவைத் தயாரிப்பது போன்றது, கடைசி நேரத்தில் நீங்கள் ஒரு முக்கியமான மூலப்பொருளை இழக்கிறீர்கள் என்பதை உணர வேண்டும். அங்குதான் எட்ஜ் இயக்க நேர இணக்கத்தன்மை பற்றிய தெளிவான புரிதல் முக்கியமானதாகிறது.

குறிப்பிட்ட Node.js தொகுதிகளுக்கான கட்டுப்படுத்தப்பட்ட ஆதரவு போன்ற வரம்புகளை Next.js இல் உள்ள எட்ஜ் இயக்க நேரம் இருப்பதால் இந்தச் சிக்கல் அடிக்கடி எழுகிறது. பிரபலமான கிரிப்டோ தொகுதி என்பது கடவுச்சொல் கையாளுதல் மற்றும் குறியாக்கத்தில் அடிக்கடி பயன்படுத்தப்படும் வரம்புகளில் ஒன்றாகும். இதுபோன்ற சிக்கல்கள் டெவலப்பர்களை எவ்வாறு முன்னோக்கி நகர்த்துவது என்பதில் குழப்பத்தை ஏற்படுத்தும்.

இந்த வழிகாட்டியில், செயல்திறன் மற்றும் பாதுகாப்பிற்கான சிறந்த நடைமுறைகளைப் பேணுகையில், இந்தப் பிழையைத் தீர்ப்பதற்கான படிப்படியான தீர்வை ஆராய்வோம். நீங்கள் உங்கள் Next.js பயன்பாட்டைப் பிழையறிந்து தீர்க்கும் டெவலப்பராக இருந்தாலும் அல்லது Auth.js இல் தொடங்கினாலும், இந்த நுண்ணறிவுகள் உங்களுக்குச் சென்று சிக்கலைச் சிரமமின்றி சரிசெய்ய உதவும். 🚀

கட்டளை பயன்பாட்டின் உதாரணம்
connectToMongoDB மோங்கோடிபிக்கு இணைப்பை ஏற்படுத்த ஒரு உதவியாளர் செயல்பாடு. எட்ஜ் இயக்க நேர வரம்புகளைத் தவிர்த்து, வளர்ச்சியில் இணைப்புகள் மீண்டும் பயன்படுத்தப்படுவதை இது உறுதி செய்கிறது.
MongoDBAdapter NextAuth க்கான தரவுத்தள அடாப்டராக MongoDB ஐ ஒருங்கிணைக்கப் பயன்படுகிறது. இது பயனர் அமர்வு சேமிப்பு மற்றும் மீட்டெடுப்பை ஒழுங்குபடுத்துகிறது.
bcrypt.compareSync ஒரு எளிய உரை கடவுச்சொல்லை ஹாஷ் செய்யப்பட்ட கடவுச்சொல்லுடன் ஒத்திசைவாக ஒப்பிட்டு, அங்கீகார செயல்பாட்டில் விரைவான சரிபார்ப்பை உறுதி செய்கிறது.
findOne மோங்கோடிபி சேகரிப்பு முறையானது குறிப்பிட்ட வினவல் அளவுருக்களுடன் பொருந்தக்கூடிய ஒரு ஆவணத்தை மீட்டெடுக்கப் பயன்படுகிறது, இது உள்நுழைவின் போது பயனர்களைக் கண்டறிவதில் முக்கியமானது.
throw new Error பிழைத்திருத்தத்தை மேம்படுத்தவும் அங்கீகாரத்தின் போது தெளிவான கருத்தை வழங்கவும் "தவறான நற்சான்றிதழ்கள்" போன்ற தனிப்பயன் பிழை செய்திகளை வீசுகிறது.
session.strategy NextAuth இல் அமர்வு உத்தியாக "jwt" ஐக் குறிப்பிடுகிறது, அமர்வு தரவு சர்வர் பக்க சேமிப்பகத்தை விட டோக்கன்களில் பாதுகாப்பாக சேமிக்கப்படுவதை உறுதி செய்கிறது.
global._mongoClientPromise தேவையற்ற இணைப்புகளைத் தவிர்த்து, வளர்ச்சியில் ஹாட் மாட்யூல் மாற்றீடு முழுவதும் மோங்கோடிபி கிளையன்ட் இணைப்புகள் தொடர்வதை உறுதி செய்கிறது.
authorize கடவுச்சொல் ஒப்பீடு மற்றும் பிழை கையாளுதல் உள்ளிட்ட பயனர் சரிபார்ப்பு தர்க்கத்தைக் கையாளும் நற்சான்றிதழ் வழங்குநரில் வரையறுக்கப்பட்ட செயல்பாடு.
Jest's expect().toEqual() ஒரு செயல்பாட்டின் உண்மையான வெளியீடு எதிர்பார்த்த வெளியீட்டுடன் பொருந்துகிறதா என்பதை சரிபார்க்க அலகு சோதனையில் பயன்படுத்தப்படுகிறது.
Jest's expect().rejects.toThrow() தவறான உள்ளீடுகள் வழங்கப்படும் போது, ​​ஒரு செயல்பாடு சரியாக பிழையை ஏற்படுத்துகிறது என்பதைச் சரிபார்க்கிறது, இது தோல்விக் காட்சிகளைச் சோதிப்பதற்கு அவசியம்.

Next.js அங்கீகாரத்தில் எட்ஜ் இயக்க நேரப் பிழைகளை சமாளித்தல்

வழங்கப்பட்ட ஸ்கிரிப்ட்கள், எட்ஜ் ரன்டைம் சிக்கல்களைத் தவிர்க்கும் அதே வேளையில், Next.js திட்டத்தில் MongoDB உடன் Auth.js ஐ ஒருங்கிணைக்கும் சவாலை எதிர்கொள்ளும். 'கிரிப்டோ' தொகுதி உட்பட சில Node.js தொகுதிக்கூறுகளுடன் Next.js எட்ஜ் இயக்க நேரம் வரம்புகளைக் கொண்டிருப்பதால் பொதுவாக சிக்கல் எழுகிறது. கவலைகளை `auth.js`, `auth.config.js` மற்றும் `db.js` போன்ற தனித்தனி கோப்புகளாகப் பிரிப்பதன் மூலம், அளவிடுதல் மற்றும் பிழைத்திருத்தத்திற்கு முக்கியமானதாக இருக்கும் மட்டுமை மற்றும் தெளிவை செயல்படுத்துதல் உறுதி செய்கிறது. உதாரணமாக, உலகளாவிய இணைப்பு கேச்சிங் போன்ற நுட்பங்கள் மூலம் வளர்ச்சியில் பல இணைப்புகளைத் தவிர்க்கும் வகையில் `db.js` தரவுத்தள இணைப்புகளைக் கையாளுகிறது. இந்த அமைப்பு ஒரு குழுவில் தனித்துவமான பாத்திரங்களை அமைப்பதைப் போன்றது-ஒவ்வொன்றும் ஒரு குறிப்பிட்ட பொறுப்பில் கவனம் செலுத்துகிறது. 💡

`auth.config.js` இல், நற்சான்றிதழ்கள் வழங்குநரில் உள்ள `அங்கீகரித்தல்` செயல்பாட்டின் பயன்பாடு பயனர் நற்சான்றிதழ்களைச் சரிபார்ப்பதற்கான தர்க்கத்தை வரையறுக்கிறது. மோங்கோடிபியிலிருந்து பயனரைப் பெறுவதும், bcrypt ஐப் பயன்படுத்தி அவர்களின் கடவுச்சொல்லை ஒப்பிடுவதும் இதில் அடங்கும். எடுத்துக்காட்டாக, ஒரு பயனர் தங்கள் மின்னஞ்சல் மற்றும் கடவுச்சொல்லை உள்ளிடுவதை கற்பனை செய்து பாருங்கள்; ஸ்கிரிப்ட் தரவுத்தளத்தைப் பாதுகாப்பாகச் சரிபார்த்து, அணுகலை வழங்குவதற்கு முன் கடவுச்சொல் பொருந்துவதை உறுதிசெய்கிறது. "தவறான நற்சான்றிதழ்கள்" பிழையை எறிவது போன்ற தெளிவான பிழை கையாளுதலின் பயன்பாடு, கார் டேஷ்போர்டு எவ்வாறு பிளாட் டயர் என டிரைவரை எச்சரிப்பது போன்ற உடனடி கருத்தை வழங்க உதவுகிறது. 🚗

மறுபுறம், அமர்வுத் தரவைத் தடையின்றி நிர்வகிக்கவும், தரவுத்தளத்துடன் ஒத்திசைக்கவும், `auth.js` MongoDBAdapter ஐ ஒருங்கிணைக்கிறது. இது எட்ஜ் இயக்க நேரக் கட்டுப்பாடுகளை மீறாமல் மோங்கோடிபியுடன் இணைக்க `db.js` இலிருந்து `clientPromise` ஐ நம்பியுள்ளது. இந்த அணுகுமுறை அமர்வு கையாளுதல் வலுவானதாகவும் செயல்திறன் மிக்கதாகவும் இருப்பதை உறுதி செய்கிறது. எடுத்துக்காட்டாக, ஒரு பயனர் உள்நுழையும்போது, ​​அவர்களின் அமர்வு JWTயாகப் பாதுகாப்பாகச் சேமிக்கப்படும். ஒவ்வொரு கதவிலும் நிலையான சோதனைகள் தேவையில்லாமல் ஒரு கட்டிடத்தின் வெவ்வேறு பகுதிகளை அணுகுவதற்கு பாதுகாப்பான பாஸ் வழங்குவதற்கு இது ஒப்பானது.

இறுதியாக, அங்கீகார அமைப்பின் நம்பகத்தன்மையை உறுதி செய்வதில் அலகு சோதனை முக்கிய பங்கு வகிக்கிறது. ஜெஸ்டைப் பயன்படுத்தி எழுதப்பட்ட சோதனை ஸ்கிரிப்டுகள், பயனர் உள்நுழைவுக்கான வெற்றி மற்றும் தோல்விக் காட்சிகள் இரண்டையும் சரிபார்க்கின்றன. இது முக்கியமானது, ஏனெனில் கவனிக்கப்படாத ஒரு பிழை பாதுகாப்பு அல்லது பயனர் அனுபவத்தை சமரசம் செய்யலாம். வாடிக்கையாளருக்கு வழங்கப்படுவதற்கு முன், அதன் அனைத்து அம்சங்களையும் சரிபார்க்க, ஒரு காரை சோதனை ஓட்டுவது போன்ற இந்த சோதனைக் கட்டத்தைப் பற்றி சிந்தியுங்கள். இந்த சரிபார்ப்பு மற்றும் பாதுகாப்பு அடுக்குகள், இயக்க நேர சூழலைப் பொருட்படுத்தாமல், பயன்பாடு சீராக இயங்குவதை உறுதி செய்கிறது. இந்த நடைமுறைகளைப் பின்பற்றுவதன் மூலம், டெவலப்பர்கள் பொதுவான இடர்பாடுகளைத் தவிர்த்து, செயல்பாட்டுக்கு மட்டுமின்றி பாதுகாப்பான மற்றும் நம்பகமான பயன்பாடுகளை உருவாக்கலாம்.

மாற்று அணுகுமுறைகளைப் பயன்படுத்தி Next.js இல் உள்ள 'கிரிப்டோ' தொகுதியுடன் எட்ஜ் இயக்க நேரச் சிக்கல்களைச் சரிசெய்தல்

இந்தத் தீர்வு, நற்சான்றிதழ்களைப் பாதுகாப்பாகக் கையாள, Next.js மற்றும் MongoDB ஐப் பயன்படுத்தி மட்டு மற்றும் உகந்த பின்தள ஸ்கிரிப்டிங்கைப் பயன்படுத்துகிறது.

import { NextAuthConfig } from "next-auth";
import Credentials from "next-auth/providers/credentials";
import bcrypt from "bcrypt";
// Import MongoDB client separately to avoid edge runtime issues
import { connectToMongoDB } from "./lib/db";

// Modular configuration for authentication
const authConfig = {
  providers: [
    Credentials({
      credentials: {
        email: { label: "Email", type: "text" },
        password: { label: "Password", type: "password" }
      },
      async authorize(credentials) {
        const { db } = await connectToMongoDB();
        const user = await db.collection("users").findOne({ email: credentials.email });
        if (!user) throw new Error("User not found");
        const isPasswordValid = bcrypt.compareSync(credentials.password, user.password);
        if (!isPasswordValid) throw new Error("Invalid credentials");
        return { name: user.name, email: user.email };
      }
    })
  ]
};

export default authConfig;

சர்வர்லெஸ்-சேஃப் மோங்கோடிபி ஒருங்கிணைப்புடன் Auth.js ஐ செயல்படுத்துகிறது

இந்த ஸ்கிரிப்ட், Next.js இல் எட்ஜ் இயக்க நேரப் பிழைகளைத் தவிர்க்க, சர்வர்லெஸ்-பாதுகாப்பான முறையுடன் மோங்கோடிபியை ஒருங்கிணைக்கிறது.

import NextAuth from "next-auth";
import authConfig from "./auth.config";
import { MongoDBAdapter } from "@auth/mongodb-adapter";
import clientPromise from "./lib/db";

export default async function auth(req, res) {
  const handlers = await NextAuth({
    adapter: MongoDBAdapter(clientPromise),
    session: { strategy: "jwt" },
    ...authConfig
  });
  return handlers(req, res);
}

நற்சான்றிதழ் கையாளுதலை சரிபார்ப்பதற்கான யூனிட் டெஸ்ட் ஸ்கிரிப்ட்

நற்சான்றிதழ் சரிபார்ப்பு தர்க்கத்தின் வலுவான சோதனையை உறுதிப்படுத்த இந்த ஸ்கிரிப்ட் Jest ஐப் பயன்படுத்துகிறது.

import { authorize } from "./auth.config";

test("Valid credentials return user object", async () => {
  const mockCredentials = { email: "test@example.com", password: "password123" };
  const mockUser = { name: "Test User", email: "test@example.com" };
  const user = await authorize(mockCredentials);
  expect(user).toEqual(mockUser);
});

test("Invalid credentials throw error", async () => {
  const mockCredentials = { email: "test@example.com", password: "wrongpassword" };
  await expect(authorize(mockCredentials)).rejects.toThrow("Invalid credentials");
});

Next.js அங்கீகாரத்தில் தரவுத்தளம் மற்றும் இயக்க நேர சவால்களை நிவர்த்தி செய்தல்

Next.js உடன் பணிபுரியும் போது மற்றும் பாதுகாப்பான பயனர் உள்நுழைவுக்காக Auth.js ஐ செயல்படுத்தும்போது, ​​தடையற்ற தரவுத்தள ஒருங்கிணைப்பை உறுதி செய்வது மிகவும் அவசியம். எட்ஜ் இயக்க நேரத்துக்கு ஏற்ப ஒரு முக்கிய சவால் உள்ளது, இது பரவலாகப் பயன்படுத்தப்படும் 'கிரிப்டோ' தொகுதி உட்பட குறிப்பிட்ட Node.js தொகுதிகளின் பயன்பாட்டைக் கட்டுப்படுத்துகிறது. எட்ஜ்-இணக்கமான சூழலில் மோங்கோடிபியை இணைக்க முயற்சிக்கும்போது சிக்கல் தெளிவாகிறது. தீர்வு தரவுத்தள இணைப்பை மட்டுப்படுத்துதல் மற்றும் எட்ஜ் சூழல்களுக்கு மேம்படுத்துதல் ஆகியவை அடங்கும். இந்த அணுகுமுறை இயக்க நேர இணக்கத்தன்மை சிக்கலைத் தீர்ப்பது மட்டுமல்லாமல், குறிப்பாக பெரிய பயன்பாடுகளில் குறியீடு பராமரிப்பையும் மேம்படுத்துகிறது. 🌐

அமர்வு கையாளுதல் மற்றும் டோக்கன் நிர்வாகத்தின் பங்கு மற்றொரு முக்கியமான கருத்தாகும். மேலே உள்ள ஸ்கிரிப்ட்களில் காட்டப்பட்டுள்ளபடி JWT-அடிப்படையிலான அமர்வுகளைப் பயன்படுத்துதல், சர்வர் பக்க சேமிப்பகத்தை நம்பாமல் அமர்வு தரவு பாதுகாப்பாக இருப்பதை உறுதி செய்கிறது. இந்த நுட்பம், அடிக்கடி அங்கீகரிப்புச் சோதனைகள் தேவையில்லாமல், தடையற்ற அணுகலுக்காக பயனர்களுக்கு பாதுகாப்பான பாஸ் வழங்குவதைப் போன்றது. MongoDBAdapter உடன் உறுதிமொழி அடிப்படையிலான இணைப்பு கையாளுதலுடன் இணைந்து, டெவலப்பர்கள் எட்ஜ் இயக்க நேரக் கட்டுப்பாடுகளை கடைபிடிக்கும் போது அமர்வு சேமிப்பகத்தை திறமையாக நிர்வகிக்க முடியும். எடுத்துக்காட்டாக, சர்வர்லெஸ் செயல்பாடுகளில் இந்த அணுகுமுறையைப் பகிர்வது குறைந்தபட்ச செயல்திறன் மேல்நிலையை உறுதி செய்கிறது. 🚀

கடைசியாக, பாதுகாப்பான அங்கீகார அமைப்பை உருவாக்க வலுவான பிழை கையாளுதல் மற்றும் சோதனை அவசியம். ஜெஸ்ட் போன்ற கருவிகளைக் கொண்டு யூனிட் சோதனைகளைச் செயல்படுத்துவது மகிழ்ச்சியான பாதை மற்றும் விளிம்பு நிலைகள் இரண்டும் தீர்க்கப்படுவதை உறுதி செய்கிறது. எடுத்துக்காட்டாக, தவறான நற்சான்றிதழ்கள் அர்த்தமுள்ள பிழைகளை வீசுகின்றன என்பதை சோதனைகள் சரிபார்க்கின்றன, பயனர்கள் தவறுகளை விரைவாகக் கண்டறிய உதவுகின்றன. இந்த அளவிலான முழுமையானது பயனர் அனுபவத்தை மேம்படுத்துகிறது மற்றும் உற்பத்தி சூழல்களில் நம்பகத்தன்மையை உறுதி செய்கிறது. மட்டு, நன்கு சோதிக்கப்பட்ட மற்றும் எட்ஜ்-இணக்கமான தீர்வுகளில் கவனம் செலுத்துவதன் மூலம், டெவலப்பர்கள் Next.js இல் மீள் மற்றும் அளவிடக்கூடிய அங்கீகார அமைப்புகளை உருவாக்க முடியும்.

  1. Next.js இல் எட்ஜ் இயக்க நேரம் என்ன?
  2. எட்ஜ் இயக்க நேரம் என்பது குறைந்த தாமத பயன்பாடுகளுக்கு உகந்த ஒரு இலகுரக சூழலாகும். இருப்பினும், 'crypto' போன்ற குறிப்பிட்ட Node.js தொகுதிகள் மீது இது கட்டுப்பாடுகளைக் கொண்டுள்ளது.
  3. MongoDB ஏன் Auth.js இல் சிக்கல்களை ஏற்படுத்துகிறது?
  4. MongoDBAdapterஐப் பயன்படுத்தும் போது, ​​எட்ஜ்-இணக்கமான சூழல்களில் நேரடி தரவுத்தள இணைப்பு இயக்க நேரக் கட்டுப்பாடுகளுடன் முரண்படலாம். மோங்கோடிபி இணைப்புகளை உலகளாவிய கிளையன்ட் ப்ரோமிஸ் இல் மூடுவது இந்த சிக்கலை தீர்க்கிறது.
  5. எப்படி செய்கிறது ஸ்கிரிப்ட் வேலை?
  6. இந்தச் செயல்பாடு எளிய உரை கடவுச்சொற்களை அங்கீகரிப்பதற்காக ஹாஷ் செய்யப்பட்ட கடவுச்சொற்களுடன் ஒப்பிடுகிறது, பாதுகாப்பான பயனர் சரிபார்ப்பை உறுதி செய்கிறது.
  7. JWT அமர்வு உத்தியைப் பயன்படுத்துவதன் நன்மை என்ன?
  8. JWT-அடிப்படையிலான அமர்வுகள் அமர்வுத் தரவை கிளையண்டில் பாதுகாப்பாகச் சேமித்து, சர்வர் சார்புநிலையைக் குறைக்கிறது மற்றும் அளவிடுதல் மேம்படுத்துகிறது.
  9. அங்கீகார தர்க்கத்தை நான் எப்படிச் சோதிக்க முடியும்?
  10. செல்லுபடியாகும் மற்றும் செல்லாத நற்சான்றிதழ்களுக்கு யூனிட் சோதனைகளை எழுத Jest ஐப் பயன்படுத்தவும். உதாரணமாக, போலி தரவுத்தள அழைப்புகள் மற்றும் பிழை கையாளுதல் ஓட்டங்களை சரிபார்க்கவும்.

எட்ஜ்-இணக்கமான சூழல்களில் MongoDB உடன் NextAuth ஒருங்கிணைக்க, இயக்க நேரப் பிழைகளைத் தவிர்க்க சிந்தனைமிக்க வடிவமைப்பு தேவைப்படுகிறது. மட்டு கட்டமைப்புகளை ஏற்றுக்கொள்வது தடையற்ற தரவுத்தள இணைப்பை உறுதிப்படுத்துகிறது மற்றும் பிழைத்திருத்தத்தை எளிதாக்குகிறது. பிழை கையாளுதல் மற்றும் அலகு சோதனை ஆகியவற்றை வலியுறுத்துவது உங்கள் பயன்பாட்டின் பாதுகாப்பை மேலும் மேம்படுத்துகிறது. 💡

இறுதியில், பாதுகாப்பான, அளவிடக்கூடிய அமைப்பை உருவாக்குவது, இயக்க நேரக் கட்டுப்பாடுகளை நேரடியாக நிவர்த்தி செய்வதன் மூலமும், நவீன கட்டமைப்புகளுக்கான சிறந்த நடைமுறைகளைச் செயல்படுத்துவதன் மூலமும் அடையக்கூடியதாக இருக்கும். டெவலப்பர்கள் நம்பிக்கையுடன் இந்த உத்திகளைப் பயன்படுத்தி பொதுவான ஆபத்துக்களைச் சமாளிக்கலாம் மற்றும் பயனர் அங்கீகார ஓட்டங்களை மேம்படுத்தலாம். இந்த தீர்வுகளுடன், உங்கள் பயன்பாடு அனைத்து சூழல்களிலும் நம்பகத்தன்மையுடன் செயல்படும்.

  1. விரிவான ஆவணங்கள் NextAuth.js , Next.js இல் அங்கீகார உத்திகளை செயல்படுத்த பயன்படுகிறது.
  2. எட்ஜ் இயக்க நேரக் கட்டுப்பாடுகளைக் கையாள்வதற்கான வழிகாட்டுதல் Next.js எட்ஜ் இயக்க நேர API ஆவணம் .
  3. சேவையகமற்ற சூழல்களில் மோங்கோடிபி இணைப்புகளைப் பாதுகாப்பதற்கான நுண்ணறிவு மோங்கோடிபி அதிகாரப்பூர்வ ஆவணம் .
  4. கடவுச்சொல்லை ஹாஷிங் மற்றும் சரிபார்ப்புக்கான நுட்பங்கள் bcrypt.js GitHub களஞ்சியம் .
  5. அங்கீகார ஓட்டங்களைச் சோதிப்பதற்கான சிறந்த நடைமுறைகள் வழங்கப்பட்டுள்ளன ஜெஸ்ட் ஆவணம் .