ব্রাউজার.ইভেন্টস

বর্ণনা

chrome.events নেমস্পেসটিতে এমন সাধারণ টাইপগুলো রয়েছে, যা কোনো আকর্ষণীয় ঘটনা ঘটলে আপনাকে অবহিত করার জন্য ইভেন্ট প্রেরণকারী এপিআইগুলো ব্যবহার করে থাকে।

ধারণা এবং ব্যবহার

Event হলো এমন একটি অবজেক্ট যা কোনো গুরুত্বপূর্ণ ঘটনা ঘটলে আপনাকে অবহিত করে। এখানে browser.alarms.onAlarm ইভেন্টটি ব্যবহার করে অ্যালার্মের সময় শেষ হলেই বিজ্ঞপ্তি পাওয়ার একটি উদাহরণ দেওয়া হলো:

browser.alarms.onAlarm.addListener((alarm) => {
  appendToLog(`alarms.onAlarm -- name: ${alarm.name}, scheduledTime: ${alarm.scheduledTime}`);
});

উদাহরণে যেমন দেখানো হয়েছে, আপনি addListener() ব্যবহার করে নোটিফিকেশনের জন্য রেজিস্টার করেন। addListener() এর আর্গুমেন্টটি সর্বদা একটি ফাংশন যা আপনি ইভেন্টটি হ্যান্ডেল করার জন্য সংজ্ঞায়িত করেন, কিন্তু ফাংশনের প্যারামিটারগুলো নির্ভর করে আপনি কোন ইভেন্টটি হ্যান্ডেল করছেন তার উপর। alarms.onAlarm এর ডকুমেন্টেশন দেখলে আপনি দেখতে পাবেন যে ফাংশনটির একটিমাত্র প্যারামিটার রয়েছে: একটি alarms.Alarm অবজেক্ট, যাতে অতিবাহিত অ্যালার্মের বিবরণ থাকে।

ইভেন্ট ব্যবহার করে এমন কিছু উদাহরণ এপিআই হলো: alarms , i18n , identity , runtime । বেশিরভাগ ক্রোম এপিআই-ই এটি ব্যবহার করে।

ঘোষণামূলক ইভেন্ট হ্যান্ডলার

ডিক্লারেটিভ ইভেন্ট হ্যান্ডলারগুলো ডিক্লারেটিভ শর্ত এবং ক্রিয়া নিয়ে গঠিত নিয়মাবলী সংজ্ঞায়িত করার একটি উপায় প্রদান করে। শর্তগুলো জাভাস্ক্রিপ্ট ইঞ্জিনের পরিবর্তে ব্রাউজারে মূল্যায়ন করা হয়, যা রাউন্ডট্রিপ ল্যাটেন্সি হ্রাস করে এবং অত্যন্ত উচ্চ কার্যকারিতা নিশ্চিত করে।

উদাহরণস্বরূপ, ডিক্লারেটিভ কন্টেন্ট এপিআই- তে ডিক্লারেটিভ ইভেন্ট হ্যান্ডলার ব্যবহার করা হয়। এই পৃষ্ঠায় সমস্ত ডিক্লারেটিভ ইভেন্ট হ্যান্ডলারের অন্তর্নিহিত ধারণাগুলো বর্ণনা করা হয়েছে।

নিয়ম

সবচেয়ে সরল নিয়মটি এক বা একাধিক শর্ত এবং এক বা একাধিক ক্রিয়া নিয়ে গঠিত:

const rule = {
  conditions: [ /* my conditions */ ],
  actions: [ /* my actions */ ]
};

শর্তগুলোর কোনো একটি পূরণ হলে, সমস্ত কার্যক্রম সম্পাদিত হয়।

শর্তাবলী এবং ক্রিয়াকলাপের পাশাপাশি আপনি প্রতিটি নিয়মকে একটি শনাক্তকারী দিতে পারেন, যা পূর্বে নিবন্ধিত নিয়মগুলোকে অনিবন্ধিত করা সহজ করে তোলে, এবং নিয়মগুলোর মধ্যে অগ্রাধিকার নির্ধারণের জন্য একটি অগ্রাধিকারও দিতে পারেন। অগ্রাধিকার শুধুমাত্র তখনই বিবেচনা করা হয় যখন নিয়মগুলো একে অপরের সাথে সাংঘর্ষিক হয় বা একটি নির্দিষ্ট ক্রমে কার্যকর করার প্রয়োজন হয়। ক্রিয়াকলাপগুলো তাদের নিয়মগুলোর অগ্রাধিকারের অবরোহী ক্রমে কার্যকর করা হয়।

const rule = {
  id: "my rule",  // optional, will be generated if not set.
  priority: 100,  // optional, defaults to 100.
  conditions: [ /* my conditions */ ],
  actions: [ /* my actions */ ]
};

ইভেন্ট অবজেক্ট

ইভেন্ট অবজেক্টগুলো রুল সমর্থন করতে পারে। এই ইভেন্ট অবজেক্টগুলো কোনো ইভেন্ট ঘটলে কলব্যাক ফাংশন কল করে না, বরং কোনো নিবন্ধিত রুলে অন্তত একটি শর্ত পূরণ হয়েছে কিনা তা পরীক্ষা করে এবং সেই রুলের সাথে যুক্ত অ্যাকশনগুলো সম্পাদন করে। ডিক্লারেটিভ এপিআই সমর্থনকারী ইভেন্ট অবজেক্টগুলোর তিনটি প্রাসঙ্গিক মেথড রয়েছে: events.Event.addRules() , events.Event.removeRules() , এবং events.Event.getRules()

নিয়ম যোগ করুন

নিয়ম যোগ করতে ইভেন্ট অবজেক্টের addRules() ফাংশনটি কল করুন। এটি প্রথম প্যারামিটার হিসেবে নিয়ম ইনস্ট্যান্সগুলোর একটি অ্যারে এবং কাজ সম্পন্ন হলে কল হওয়ার জন্য একটি কলব্যাক ফাংশন গ্রহণ করে।

const rule_list = [rule1, rule2, ...];
addRules(rule_list, (details) => {...});

যদি নিয়মগুলো সফলভাবে যোগ করা হয়, তাহলে details প্যারামিটারটিতে যোগ করা নিয়মগুলোর একটি অ্যারে থাকে, যা প্রদত্ত rule_list মতোই একই ক্রমে সাজানো থাকে, যেখানে ঐচ্ছিক প্যারামিটার id এবং priority জেনারেট করা মান দিয়ে পূরণ করা হয়। যদি কোনো নিয়ম অবৈধ হয়, উদাহরণস্বরূপ, কারণ এতে একটি অবৈধ শর্ত বা অ্যাকশন রয়েছে, তাহলে কোনো নিয়মই যোগ করা হয় না এবং কলব্যাক ফাংশনটি কল করার সময় 'runtime.lastError ' ভেরিয়েবলটি সেট করা হয়। rule_list এর প্রতিটি নিয়মে অবশ্যই একটি অনন্য আইডেন্টিফায়ার থাকতে হবে যা অন্য কোনো নিয়ম দ্বারা ইতিমধ্যে ব্যবহৃত হয়নি অথবা একটি খালি আইডেন্টিফায়ার থাকতে হবে।

নিয়মগুলো সরিয়ে ফেলুন

নিয়মগুলো অপসারণ করতে removeRules() ফাংশনটি কল করুন। এটি প্রথম প্যারামিটার হিসেবে নিয়ম শনাক্তকারীগুলোর একটি ঐচ্ছিক অ্যারে এবং দ্বিতীয় প্যারামিটার হিসেবে একটি কলব্যাক ফাংশন গ্রহণ করে।

const rule_ids = ["id1", "id2", ...];
removeRules(rule_ids, () => {...});

যদি rule_ids আইডেন্টিফায়ারের একটি অ্যারে হয়, তবে অ্যারেতে তালিকাভুক্ত আইডেন্টিফায়ার আছে এমন সমস্ত নিয়ম মুছে ফেলা হয়। যদি rule_ids এ কোনো অজানা আইডেন্টিফায়ার থাকে, তবে সেই আইডেন্টিফায়ারটি নীরবে উপেক্ষা করা হয়। যদি rule_ids undefined হয়, তবে এই এক্সটেনশনের সমস্ত নিবন্ধিত নিয়ম মুছে ফেলা হয়। নিয়মগুলো মুছে ফেলার পর callback() ফাংশনটি কল করা হয়।

নিয়ম পুনরুদ্ধার করুন

নিবন্ধিত নিয়মগুলির তালিকা পেতে getRules() ফাংশনটি কল করুন। এটি removeRules() এর মতো একই অর্থসহ নিয়ম শনাক্তকারীগুলির একটি ঐচ্ছিক অ্যারে এবং একটি কলব্যাক ফাংশন গ্রহণ করে।

const rule_ids = ["id1", "id2", ...];
getRules(rule_ids, (details) => {...});

callback() ফাংশনে পাঠানো details প্যারামিটারটি নিয়মগুলির একটি অ্যারে নির্দেশ করে, যার মধ্যে পূরণ করা ঐচ্ছিক প্যারামিটারগুলিও অন্তর্ভুক্ত থাকে।

কর্মক্ষমতা

সর্বোচ্চ কর্মক্ষমতা অর্জনের জন্য, আপনার নিম্নলিখিত নির্দেশিকাগুলো মনে রাখা উচিত।

একসাথে অনেকগুলো নিয়ম নিবন্ধন এবং নিবন্ধনমুক্ত করা হয়। প্রতিটি নিবন্ধন বা নিবন্ধনমুক্তকরণের পর, ক্রোমকে তার অভ্যন্তরীণ ডেটা কাঠামো হালনাগাদ করতে হয়। এই হালনাগাদ একটি ব্যয়বহুল প্রক্রিয়া।

পরিবর্তে
const rule1 = {...};
const rule2 = {...};
browser.declarativeWebRequest.onRequest.addRules([rule1]);
browser.declarativeWebRequest.onRequest.addRules([rule2]);
পছন্দ
const rule1 = {...};
const rule2 = {...};
browser.declarativeWebRequest.onRequest.addRules([rule1, rule2]);

events.UrlFilter- এ রেগুলার এক্সপ্রেশনের পরিবর্তে সাবস্ট্রিং ম্যাচিং ব্যবহার করুন। সাবস্ট্রিং-ভিত্তিক ম্যাচিং অত্যন্ত দ্রুত।

পরিবর্তে
const match = new browser.declarativeWebRequest.RequestMatcher({
  url: {urlMatches: "example.com/[^?]*foo" }
});
পছন্দ
const match = new browser.declarativeWebRequest.RequestMatcher({
  url: {hostSuffix: "example.com", pathContains: "foo"}
});

যদি এমন অনেক নিয়ম থাকে যেগুলোর কাজ একই, তাহলে নিয়মগুলোকে একটিতে একীভূত করুন। একটিমাত্র শর্ত পূরণ হওয়া মাত্রই নিয়মগুলো তাদের কাজ শুরু করে। এটি মেলানোর প্রক্রিয়াকে দ্রুততর করে এবং একই ধরনের কাজের সেটের জন্য মেমোরি খরচ কমায়।

পরিবর্তে
const condition1 = new browser.declarativeWebRequest.RequestMatcher({
  url: { hostSuffix: 'example.com' }
});
const condition2 = new browser.declarativeWebRequest.RequestMatcher({
  url: { hostSuffix: 'foobar.com' }
});
const rule1 = { conditions: [condition1],
                actions: [new browser.declarativeWebRequest.CancelRequest()]
              };
const rule2 = { conditions: [condition2],
                actions: [new browser.declarativeWebRequest.CancelRequest()]
              };
browser.declarativeWebRequest.onRequest.addRules([rule1, rule2]);
পছন্দ
const condition1 = new browser.declarativeWebRequest.RequestMatcher({
  url: { hostSuffix: 'example.com' }
});
const condition2 = new browser.declarativeWebRequest.RequestMatcher({
  url: { hostSuffix: 'foobar.com' }
});
const rule = { conditions: [condition1, condition2],
              actions: [new browser.declarativeWebRequest.CancelRequest()]
             };
browser.declarativeWebRequest.onRequest.addRules([rule]);

ফিল্টার করা ইভেন্টগুলি

ফিল্টার করা ইভেন্ট হলো এমন একটি ব্যবস্থা যা লিসেনারদেরকে তাদের পছন্দের ইভেন্টের একটি উপসেট নির্দিষ্ট করার সুযোগ দেয়। যে লিসেনার ফিল্টার ব্যবহার করে, সেটি ফিল্টার পাস না করা ইভেন্টগুলোর জন্য কল করা হয় না, যা লিসেনিং কোডকে আরও ডিক্লারেটিভ এবং কার্যকর করে তোলে। যেসব ইভেন্ট নিয়ে সার্ভিস ওয়ার্কারের আগ্রহ নেই, সেগুলো হ্যান্ডেল করার জন্য তাকে জাগিয়ে তোলার প্রয়োজন হয় না।

ফিল্টার করা ইভেন্টগুলোর উদ্দেশ্য হলো ম্যানুয়াল ফিল্টারিং কোড থেকে সরে আসার সুযোগ করে দেওয়া।

পরিবর্তে
browser.webNavigation.onCommitted.addListener((event) => {
  if (hasHostSuffix(event.url, 'google.com') ||
      hasHostSuffix(event.url, 'google.com.au')) {
    // ...
  }
});
পছন্দ
browser.webNavigation.onCommitted.addListener((event) => {
  // ...
}, {url: [{hostSuffix: 'google.com'},
          {hostSuffix: 'google.com.au'}]});

ইভেন্টগুলো নির্দিষ্ট ফিল্টার সমর্থন করে যা সেই ইভেন্টের জন্য অর্থবহ। একটি ইভেন্ট যে ফিল্টারগুলো সমর্থন করে তার তালিকা সেই ইভেন্টের ডকুমেন্টেশনের "ফিল্টার" বিভাগে উল্লেখ করা থাকবে।

URL মেলানোর ক্ষেত্রে (যেমন উপরের উদাহরণে), ইভেন্ট ফিল্টারগুলো স্কিম এবং পোর্ট মেলানো ছাড়া, events.UrlFilter এর মাধ্যমে প্রকাশযোগ্য একই URL মেলানোর ক্ষমতা সমর্থন করে।

প্রকারভেদ

Event

এমন একটি অবজেক্ট যা কোনো ক্রোম ইভেন্টের জন্য লিসেনার যোগ ও অপসারণ করার সুযোগ দেয়।

বৈশিষ্ট্য

  • অ্যাডলিসেনার

    শূন্যতা

    কোনো ইভেন্টের জন্য একটি ইভেন্ট লিসেনার কলব্যাক রেজিস্টার করে।

    addListener ফাংশনটি দেখতে এইরকম:

    (callback: H) => {...}

    • কলব্যাক

      এইচ

      কোনো ঘটনা ঘটলে এই ফাংশনটি কল করা হয়। এই ফাংশনের প্যারামিটারগুলো ঘটনার ধরনের ওপর নির্ভর করে।

  • নিয়ম যোগ করুন

    শূন্যতা

    ইভেন্ট পরিচালনার জন্য নিয়মাবলী নিবন্ধন করে।

    addRules ফাংশনটি দেখতে এইরকম:

    (rules: Rule<anyany>[], callback?: function) => {...}

    • নিয়ম

      নিয়ম <যেকোনো>[]

      নিয়মাবলী নিবন্ধিত করতে হবে। এগুলো পূর্বে নিবন্ধিত নিয়মাবলীর স্থলাভিষিক্ত হবে না।

    • কলব্যাক

      ফাংশন ঐচ্ছিক

      callback প্যারামিটারটি দেখতে এইরকম:

      (rules: Rule<anyany>[]) => void

      • নিয়ম

        নিয়ম <যেকোনো>[]

        নিবন্ধিত নিয়মগুলোর ঐচ্ছিক প্যারামিটারগুলো মান দিয়ে পূরণ করা হয়।

  • নিয়মগুলো পান

    শূন্যতা

    বর্তমানে নিবন্ধিত নিয়মাবলী ফেরত দেয়।

    getRules ফাংশনটি দেখতে এইরকম:

    (ruleIdentifiers?: string[], callback: function) => {...}

    • নিয়ম শনাক্তকারী

      স্ট্রিং[] ঐচ্ছিক

      যদি একটি অ্যারে পাস করা হয়, তবে শুধুমাত্র সেইসব নিয়ম ফেরত দেওয়া হবে যেগুলোর আইডেন্টিফায়ার এই অ্যারেতে অন্তর্ভুক্ত রয়েছে।

    • কলব্যাক

      ফাংশন

      callback প্যারামিটারটি দেখতে এইরকম:

      (rules: Rule<anyany>[]) => void

      • নিয়ম

        নিয়ম <যেকোনো>[]

        নিবন্ধিত নিয়মগুলোর ঐচ্ছিক প্যারামিটারগুলো মান দিয়ে পূরণ করা হয়।

  • শ্রোতা

    শূন্যতা

    hasListener ফাংশনটি দেখতে এইরকম:

    (callback: H) => {...}

    • কলব্যাক

      এইচ

      যে শ্রোতার নিবন্ধনের অবস্থা যাচাই করা হবে।

    • ফেরত

      বুলিয়ান

      ইভেন্টে কলব্যাক নিবন্ধিত থাকলে সত্য।

  • শ্রোতা আছে

    শূন্যতা

    hasListeners ফাংশনটি দেখতে এইরকম:

    () => {...}

    • ফেরত

      বুলিয়ান

      ইভেন্টটিতে কোনো ইভেন্ট লিসেনার নিবন্ধিত থাকলে সত্য হবে।

  • শ্রোতা অপসারণ করুন

    শূন্যতা

    কোনো ইভেন্ট থেকে ইভেন্ট লিসেনার কলব্যাক বাতিল করে।

    removeListener ফাংশনটি দেখতে এইরকম:

    (callback: H) => {...}

    • কলব্যাক

      এইচ

      শ্রোতা অনিবন্ধিত থাকবে।

  • নিয়মগুলি সরান

    শূন্যতা

    বর্তমানে নিবন্ধিত নিয়মাবলী অনিবন্ধিত করে।

    removeRules ফাংশনটি দেখতে এইরকম:

    (ruleIdentifiers?: string[], callback?: function) => {...}

    • নিয়ম শনাক্তকারী

      স্ট্রিং[] ঐচ্ছিক

      যদি একটি অ্যারে পাস করা হয়, তবে শুধুমাত্র সেইসব নিয়মই অনিবন্ধিত হবে যেগুলোর আইডেন্টিফায়ার এই অ্যারেতে অন্তর্ভুক্ত রয়েছে।

    • কলব্যাক

      ফাংশন ঐচ্ছিক

      callback প্যারামিটারটি দেখতে এইরকম:

      () => void

Rule

ইভেন্ট পরিচালনার জন্য একটি ঘোষণামূলক নিয়মের বর্ণনা।

বৈশিষ্ট্য

  • কর্ম

    যেকোনো[]

    শর্তগুলোর মধ্যে কোনো একটি পূরণ হলে যে কাজগুলো সংঘটিত হয়, তার তালিকা।

  • শর্ত

    যেকোনো[]

    যেসব শর্তের কারণে এই পদক্ষেপগুলো নেওয়া যেতে পারে, তার তালিকা।

  • আইডি

    স্ট্রিং ঐচ্ছিক

    ঐচ্ছিক শনাক্তকারী যা এই নিয়মটিকে উল্লেখ করার সুযোগ দেয়।

  • অগ্রাধিকার

    সংখ্যা ঐচ্ছিক

    এই নিয়মের অগ্রাধিকার ঐচ্ছিক। এর ডিফল্ট মান ১০০।

  • ট্যাগ

    স্ট্রিং[] ঐচ্ছিক

    ট্যাগ ব্যবহার করে নিয়মগুলোকে টীকাযুক্ত করা যায় এবং নিয়মের সমষ্টির ওপর বিভিন্ন অপারেশন সম্পাদন করা যায়।

UrlFilter

বিভিন্ন শর্তানুযায়ী ইউআরএল ফিল্টার করে। ইভেন্ট ফিল্টারিং দেখুন। সকল শর্তই কেস-সেনসিটিভ।

বৈশিষ্ট্য

  • সিআইডিআরব্লকস

    স্ট্রিং[] ঐচ্ছিক

    ক্রোম ১২৩+

    যদি URL-এর হোস্ট অংশটি একটি IP অ্যাড্রেস হয় এবং অ্যারেতে নির্দিষ্ট করা CIDR ব্লকগুলোর কোনোটির মধ্যে থাকে, তবে এটি মিলে যাবে।

  • হোস্ট ধারণ করে

    স্ট্রিং ঐচ্ছিক

    URL-এর হোস্ট নামে একটি নির্দিষ্ট স্ট্রিং থাকলে এটি মিলে যায়। কোনো হোস্ট নেম কম্পোনেন্টের প্রিফিক্স 'foo' আছে কিনা তা পরীক্ষা করতে, hostContains: '.foo' ব্যবহার করুন। এটি 'www.foobar.com' এবং 'foo.com'-এর সাথে মেলে, কারণ হোস্ট নেমের শুরুতে একটি অন্তর্নিহিত ডট যুক্ত হয়। একইভাবে, কম্পোনেন্ট সাফিক্স ('foo.')-এর সাথে মেলানোর জন্য এবং কম্পোনেন্টগুলোর সাথে হুবহু মেলানোর ('.foo.') জন্য hostContains ব্যবহার করা যেতে পারে। শেষ কম্পোনেন্টগুলোর জন্য সাফিক্স- এবং এক্স্যাক্ট-ম্যাচিং hostSuffix ব্যবহার করে আলাদাভাবে করতে হবে, কারণ হোস্ট নেমের শেষে কোনো অন্তর্নিহিত ডট যুক্ত হয় না।

  • হোস্ট সমান

    স্ট্রিং ঐচ্ছিক

    URL-এর হোস্ট নেম একটি নির্দিষ্ট স্ট্রিং-এর সমান হলে এটি মিলে যায়।

  • হোস্টপ্রিফিক্স

    স্ট্রিং ঐচ্ছিক

    URL-এর হোস্ট নেম একটি নির্দিষ্ট স্ট্রিং দিয়ে শুরু হলে এটি মিলে যায়।

  • হোস্টসাফিক্স

    স্ট্রিং ঐচ্ছিক

    URL-এর হোস্টনেম একটি নির্দিষ্ট স্ট্রিং দিয়ে শেষ হলে এটি মিলে যায়।

  • originAndPathMatches

    স্ট্রিং ঐচ্ছিক

    কোয়েরি সেগমেন্ট এবং ফ্র্যাগমেন্ট আইডেন্টিফায়ার ছাড়া ইউআরএলটি একটি নির্দিষ্ট রেগুলার এক্সপ্রেশনের সাথে মিলে গেলে এটি ম্যাচ করে। ইউআরএল থেকে পোর্ট নম্বরগুলো বাদ দেওয়া হয় যদি সেগুলো ডিফল্ট পোর্ট নম্বরের সাথে মিলে যায়। রেগুলার এক্সপ্রেশনগুলোতে RE2 সিনট্যাক্স ব্যবহার করা হয়।

  • পাথে রয়েছে

    স্ট্রিং ঐচ্ছিক

    URL-এর পাথ সেগমেন্টে একটি নির্দিষ্ট স্ট্রিং থাকলে এটি মিলে যায়।

  • পথ সমান

    স্ট্রিং ঐচ্ছিক

    URL-এর পাথ সেগমেন্টটি একটি নির্দিষ্ট স্ট্রিং-এর সমান হলে এটি মিলে যায়।

  • পাথপ্রিফিক্স

    স্ট্রিং ঐচ্ছিক

    URL-এর পাথ সেগমেন্টটি একটি নির্দিষ্ট স্ট্রিং দিয়ে শুরু হলে এটি মিলে যায়।

  • পাথসাফিক্স

    স্ট্রিং ঐচ্ছিক

    URL-এর পাথ সেগমেন্টটি একটি নির্দিষ্ট স্ট্রিং দিয়ে শেষ হলে এটি মিলে যায়।

  • বন্দর

    (সংখ্যা | সংখ্যা[])[] ঐচ্ছিক

    URL-এর পোর্টটি নির্দিষ্ট পোর্ট তালিকাগুলির যেকোনো একটিতে থাকলে তা মিলে যায়। উদাহরণস্বরূপ [80, 443, [1000, 1200]] পোর্ট 80, 443 এবং 1000-1200 রেঞ্জের মধ্যে থাকা সমস্ত অনুরোধের সাথে মেলে।

  • কোয়েরিতে রয়েছে

    স্ট্রিং ঐচ্ছিক

    URL-এর কোয়েরি অংশে একটি নির্দিষ্ট স্ট্রিং থাকলে এটি মিলে যায়।

  • queryEquals

    স্ট্রিং ঐচ্ছিক

    URL-এর কোয়েরি অংশটি একটি নির্দিষ্ট স্ট্রিং-এর সমান হলে এটি মিলে যায়।

  • কোয়েরি প্রিফিক্স

    স্ট্রিং ঐচ্ছিক

    URL-এর কোয়েরি অংশটি একটি নির্দিষ্ট স্ট্রিং দিয়ে শুরু হলে এটি মিলে যায়।

  • কোয়েরি সাফিক্স

    স্ট্রিং ঐচ্ছিক

    URL-এর কোয়েরি অংশটি একটি নির্দিষ্ট স্ট্রিং দিয়ে শেষ হলে এটি মিলে যায়।

  • পরিকল্পনা

    স্ট্রিং[] ঐচ্ছিক

    যদি URL-এর স্কিমটি অ্যারেতে নির্দিষ্ট করা স্কিমগুলোর কোনোটির সমান হয়, তবে এটি মিলে যাবে।

  • urlContains

    স্ট্রিং ঐচ্ছিক

    যদি URL-টিতে (ফ্র্যাগমেন্ট আইডেন্টিফায়ার ছাড়া) একটি নির্দিষ্ট স্ট্রিং থাকে, তবে এটি মিলে যায়। যদি পোর্ট নম্বরগুলো ডিফল্ট পোর্ট নম্বরের সাথে মিলে যায়, তবে URL থেকে সেগুলো বাদ দেওয়া হয়।

  • urlEquals

    স্ট্রিং ঐচ্ছিক

    যদি ইউআরএল (ফ্র্যাগমেন্ট আইডেন্টিফায়ার ছাড়া) একটি নির্দিষ্ট স্ট্রিং-এর সমান হয়, তবে এটি মিলে যায়। যদি পোর্ট নম্বরগুলো ডিফল্ট পোর্ট নম্বরের সাথে মিলে যায়, তবে ইউআরএল থেকে সেগুলো বাদ দেওয়া হয়।

  • urlMatches

    স্ট্রিং ঐচ্ছিক

    যদি ইউআরএল (ফ্র্যাগমেন্ট আইডেন্টিফায়ার ছাড়া) একটি নির্দিষ্ট রেগুলার এক্সপ্রেশনের সাথে মিলে যায়, তবে এটি ম্যাচ করে। যদি পোর্ট নম্বরগুলো ডিফল্ট পোর্ট নম্বরের সাথে মিলে যায়, তবে ইউআরএল থেকে সেগুলো বাদ দেওয়া হয়। রেগুলার এক্সপ্রেশনগুলোতে RE2 সিনট্যাক্স ব্যবহার করা হয়।

  • urlPrefix

    স্ট্রিং ঐচ্ছিক

    যদি ইউআরএলটি (ফ্র্যাগমেন্ট আইডেন্টিফায়ার ছাড়া) একটি নির্দিষ্ট স্ট্রিং দিয়ে শুরু হয়, তবে এটি মিলে যায়। যদি পোর্ট নম্বরগুলো ডিফল্ট পোর্ট নম্বরের সাথে মিলে যায়, তবে ইউআরএল থেকে সেগুলো বাদ দেওয়া হয়।

  • ইউআরএল সাফিক্স

    স্ট্রিং ঐচ্ছিক

    যদি ইউআরএলটি (ফ্র্যাগমেন্ট আইডেন্টিফায়ার ছাড়া) একটি নির্দিষ্ট স্ট্রিং দিয়ে শেষ হয়, তবে এটি মিলে যায়। যদি পোর্ট নম্বরগুলো ডিফল্ট পোর্ট নম্বরের সাথে মিলে যায়, তবে ইউআরএল থেকে সেগুলো বাদ দেওয়া হয়।