[{"data":1,"prerenderedAt":1308},["ShallowReactive",2],{"navigation_docs":3,"-job-scheduler-installation":133,"-job-scheduler-installation-surround":1305},[4,22,51,62,73,84,99,118],{"title":5,"path":6,"stem":7,"children":8,"page":21},"Get Started","/get-started","0.get-started",[9,13,17],{"title":10,"path":11,"stem":12},"Introduction","/get-started/introduction","0.get-started/0.introduction",{"title":14,"path":15,"stem":16},"Browser Support","/get-started/browser-support","0.get-started/1.browser-support",{"title":18,"path":19,"stem":20},"Contributing","/get-started/contributing","0.get-started/2.contributing",false,{"title":23,"path":24,"stem":25,"children":26,"page":21},"Fake Browser","/fake-browser","fake-browser",[27,31,35,39,43,47],{"title":28,"path":29,"stem":30},"Installation","/fake-browser/installation","fake-browser/0.installation",{"title":32,"path":33,"stem":34},"Testing Frameworks","/fake-browser/testing-frameworks","fake-browser/1.testing-frameworks",{"title":36,"path":37,"stem":38},"Triggering Events","/fake-browser/triggering-events","fake-browser/2.triggering-events",{"title":40,"path":41,"stem":42},"Resetting State","/fake-browser/reseting-state","fake-browser/3.reseting-state",{"title":44,"path":45,"stem":46},"Implemented Apis","/fake-browser/implemented-apis","fake-browser/4.implemented-apis",{"title":48,"path":49,"stem":50},"Api","/fake-browser/api","fake-browser/api",{"title":52,"path":53,"stem":54,"children":55,"page":21},"Isolated Element","/isolated-element","isolated-element",[56,59],{"title":28,"path":57,"stem":58},"/isolated-element/installation","isolated-element/0.installation",{"title":48,"path":60,"stem":61},"/isolated-element/api","isolated-element/api",{"title":63,"path":64,"stem":65,"children":66,"page":21},"Job Scheduler","/job-scheduler","job-scheduler",[67,70],{"title":28,"path":68,"stem":69},"/job-scheduler/installation","job-scheduler/0.installation",{"title":48,"path":71,"stem":72},"/job-scheduler/api","job-scheduler/api",{"title":74,"path":75,"stem":76,"children":77,"page":21},"Match Patterns","/match-patterns","match-patterns",[78,81],{"title":28,"path":79,"stem":80},"/match-patterns/installation","match-patterns/0.installation",{"title":48,"path":82,"stem":83},"/match-patterns/api","match-patterns/api",{"title":85,"path":86,"stem":87,"children":88,"page":21},"Messaging","/messaging","messaging",[89,92,96],{"title":28,"path":90,"stem":91},"/messaging/installation","messaging/0.installation",{"title":93,"path":94,"stem":95},"Protocol Maps","/messaging/protocol-maps","messaging/1.protocol-maps",{"title":48,"path":97,"stem":98},"/messaging/api","messaging/api",{"title":100,"path":101,"stem":102,"children":103,"page":21},"Proxy Service","/proxy-service","proxy-service",[104,107,111,115],{"title":28,"path":105,"stem":106},"/proxy-service/installation","proxy-service/0.installation",{"title":108,"path":109,"stem":110},"Defining Services","/proxy-service/defining-services","proxy-service/1.defining-services",{"title":112,"path":113,"stem":114},"Service Keys","/proxy-service/service-keys","proxy-service/2.service-keys",{"title":48,"path":116,"stem":117},"/proxy-service/api","proxy-service/api",{"title":119,"path":120,"stem":121,"children":122,"page":21},"Storage","/storage","storage",[123,126,130],{"title":28,"path":124,"stem":125},"/storage/installation","storage/0.installation",{"title":127,"path":128,"stem":129},"Typescript","/storage/typescript","storage/1.typescript",{"title":48,"path":131,"stem":132},"/storage/api","storage/api",{"id":134,"title":28,"body":135,"description":206,"extension":1300,"links":1301,"meta":1302,"navigation":409,"path":68,"seo":1303,"stem":69,"__hash__":1304},"docs/job-scheduler/0.installation.md",{"type":136,"value":137,"toc":1293},"minimark",[138,159,164,179,192,195,200,225,263,267,286,366,370,376,429,440,806,812,818,845,855,859,862,1033,1037,1040,1048,1289],[139,140,141,146,147,146,150,146,153,146,156],"p",{},[142,143,145],"badge",{"type":144},"success","MV2"," ",[142,148,149],{"type":144},"MV3",[142,151,152],{"type":144},"Chrome",[142,154,155],{"type":144},"Firefox",[142,157,158],{"type":144},"Safari",[160,161,163],"h2",{"id":162},"overview","Overview",[139,165,166,170,171,178],{},[167,168,169],"code",{},"@webext-core/job-scheduler"," uses the ",[172,173,177],"a",{"href":174,"rel":175},"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/alarms",[176],"nofollow","alarms API"," to manage different types of reoccurring jobs:",[180,181,182,186,189],"ul",{},[183,184,185],"li",{},"One-time jobs",[183,187,188],{},"Jobs that run on an interval",[183,190,191],{},"Cron jobs",[160,193,28],{"id":194},"installation",[196,197,199],"h6",{"id":198},"npm","NPM",[201,202,207],"pre",{"className":203,"code":204,"language":205,"meta":206,"style":206},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm i @webext-core/job-scheduler\n","bash","",[167,208,209],{"__ignoreMap":206},[210,211,214,218,222],"span",{"class":212,"line":213},"line",1,[210,215,217],{"class":216},"sBMFI","pnpm",[210,219,221],{"class":220},"sfazB"," i",[210,223,224],{"class":220}," @webext-core/job-scheduler\n",[201,226,230],{"className":227,"code":228,"language":229,"meta":206,"style":206},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineJobScheduler } from '@webext-core/job-scheduler';\n","ts",[167,231,232],{"__ignoreMap":206},[210,233,234,238,242,246,249,252,255,257,260],{"class":212,"line":213},[210,235,237],{"class":236},"s7zQu","import",[210,239,241],{"class":240},"sMK4o"," {",[210,243,245],{"class":244},"sTEyZ"," defineJobScheduler",[210,247,248],{"class":240}," }",[210,250,251],{"class":236}," from",[210,253,254],{"class":240}," '",[210,256,169],{"class":220},[210,258,259],{"class":240},"'",[210,261,262],{"class":240},";\n",[196,264,266],{"id":265},"cdn","CDN",[201,268,270],{"className":203,"code":269,"language":205,"meta":206,"style":206},"curl -o job-scheduler.js https://cdn.jsdelivr.net/npm/@webext-core/job-scheduler/lib/index.global.js\n",[167,271,272],{"__ignoreMap":206},[210,273,274,277,280,283],{"class":212,"line":213},[210,275,276],{"class":216},"curl",[210,278,279],{"class":220}," -o",[210,281,282],{"class":220}," job-scheduler.js",[210,284,285],{"class":220}," https://cdn.jsdelivr.net/npm/@webext-core/job-scheduler/lib/index.global.js\n",[201,287,291],{"className":288,"code":289,"language":290,"meta":206,"style":206},"language-html shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript src=\"/job-scheduler.js\">\u003C/script>\n\u003Cscript>\n  const { defineJobScheduler } = webExtCoreJobScheduler;\n\u003C/script>\n","html",[167,292,293,325,334,356],{"__ignoreMap":206},[210,294,295,298,302,306,309,312,315,317,320,322],{"class":212,"line":213},[210,296,297],{"class":240},"\u003C",[210,299,301],{"class":300},"swJcz","script",[210,303,305],{"class":304},"spNyl"," src",[210,307,308],{"class":240},"=",[210,310,311],{"class":240},"\"",[210,313,314],{"class":220},"/job-scheduler.js",[210,316,311],{"class":240},[210,318,319],{"class":240},">\u003C/",[210,321,301],{"class":300},[210,323,324],{"class":240},">\n",[210,326,328,330,332],{"class":212,"line":327},2,[210,329,297],{"class":240},[210,331,301],{"class":300},[210,333,324],{"class":240},[210,335,337,340,342,345,348,351,354],{"class":212,"line":336},3,[210,338,339],{"class":304},"  const",[210,341,241],{"class":240},[210,343,344],{"class":244}," defineJobScheduler ",[210,346,347],{"class":240},"}",[210,349,350],{"class":240}," =",[210,352,353],{"class":244}," webExtCoreJobScheduler",[210,355,262],{"class":240},[210,357,359,362,364],{"class":212,"line":358},4,[210,360,361],{"class":240},"\u003C/",[210,363,301],{"class":300},[210,365,324],{"class":240},[160,367,369],{"id":368},"usage","Usage",[139,371,372,375],{},[167,373,374],{},"defineJobScheduler"," should to be executed once in the background. It returns an object that can be used to schedule or remove jobs.",[377,378,379],"code-group",{},[201,380,383],{"className":227,"code":381,"filename":382,"language":229,"meta":206,"style":206},"import { defineJobScheduler } from '@webext-core/job-scheduler';\n\nconst jobs = defineJobScheduler();\n","background.ts",[167,384,385,405,411],{"__ignoreMap":206},[210,386,387,389,391,393,395,397,399,401,403],{"class":212,"line":213},[210,388,237],{"class":236},[210,390,241],{"class":240},[210,392,245],{"class":244},[210,394,248],{"class":240},[210,396,251],{"class":236},[210,398,254],{"class":240},[210,400,169],{"class":220},[210,402,259],{"class":240},[210,404,262],{"class":240},[210,406,407],{"class":212,"line":327},[210,408,410],{"emptyLinePlaceholder":409},true,"\n",[210,412,413,416,419,421,424,427],{"class":212,"line":336},[210,414,415],{"class":304},"const",[210,417,418],{"class":244}," jobs ",[210,420,308],{"class":240},[210,422,245],{"class":423},"s2Zo4",[210,425,426],{"class":244},"()",[210,428,262],{"class":240},[139,430,431,432,435,436,439],{},"Once the job scheduler is created, call ",[167,433,434],{},"scheduleJob",". To see all the options for configuring jobs, see the ",[172,437,438],{"href":71},"API reference",".",[377,441,442,586,694],{},[201,443,446],{"className":227,"code":444,"filename":445,"language":229,"meta":206,"style":206},"jobs.scheduleJob({\n  id: 'job1',\n  type: 'once',\n  date: Date.now() + 1.44e7, // In 4 hours\n  execute: () => {\n    console.log('Executed job once');\n  },\n});\n","One time",[167,447,448,463,481,497,529,546,571,577],{"__ignoreMap":206},[210,449,450,453,455,457,460],{"class":212,"line":213},[210,451,452],{"class":244},"jobs",[210,454,439],{"class":240},[210,456,434],{"class":423},[210,458,459],{"class":244},"(",[210,461,462],{"class":240},"{\n",[210,464,465,468,471,473,476,478],{"class":212,"line":327},[210,466,467],{"class":300},"  id",[210,469,470],{"class":240},":",[210,472,254],{"class":240},[210,474,475],{"class":220},"job1",[210,477,259],{"class":240},[210,479,480],{"class":240},",\n",[210,482,483,486,488,490,493,495],{"class":212,"line":336},[210,484,485],{"class":300},"  type",[210,487,470],{"class":240},[210,489,254],{"class":240},[210,491,492],{"class":220},"once",[210,494,259],{"class":240},[210,496,480],{"class":240},[210,498,499,502,504,507,509,512,515,518,522,525],{"class":212,"line":358},[210,500,501],{"class":300},"  date",[210,503,470],{"class":240},[210,505,506],{"class":244}," Date",[210,508,439],{"class":240},[210,510,511],{"class":423},"now",[210,513,514],{"class":244},"() ",[210,516,517],{"class":240},"+",[210,519,521],{"class":520},"sbssI"," 1.44e7",[210,523,524],{"class":240},",",[210,526,528],{"class":527},"sHwdD"," // In 4 hours\n",[210,530,532,535,537,540,543],{"class":212,"line":531},5,[210,533,534],{"class":423},"  execute",[210,536,470],{"class":240},[210,538,539],{"class":240}," ()",[210,541,542],{"class":304}," =>",[210,544,545],{"class":240}," {\n",[210,547,549,552,554,557,559,561,564,566,569],{"class":212,"line":548},6,[210,550,551],{"class":244},"    console",[210,553,439],{"class":240},[210,555,556],{"class":423},"log",[210,558,459],{"class":300},[210,560,259],{"class":240},[210,562,563],{"class":220},"Executed job once",[210,565,259],{"class":240},[210,567,568],{"class":300},")",[210,570,262],{"class":240},[210,572,574],{"class":212,"line":573},7,[210,575,576],{"class":240},"  },\n",[210,578,580,582,584],{"class":212,"line":579},8,[210,581,347],{"class":240},[210,583,568],{"class":244},[210,585,262],{"class":240},[201,587,590],{"className":227,"code":588,"filename":589,"language":229,"meta":206,"style":206},"jobs.scheduleJob({\n  id: 'job2',\n  type: 'interval',\n  interval: DAY, // Runs every 24 hours\n  execute: () => {\n    console.log('Executed job on interval');\n  },\n});\n","On an interval",[167,591,592,604,619,634,649,661,682,686],{"__ignoreMap":206},[210,593,594,596,598,600,602],{"class":212,"line":213},[210,595,452],{"class":244},[210,597,439],{"class":240},[210,599,434],{"class":423},[210,601,459],{"class":244},[210,603,462],{"class":240},[210,605,606,608,610,612,615,617],{"class":212,"line":327},[210,607,467],{"class":300},[210,609,470],{"class":240},[210,611,254],{"class":240},[210,613,614],{"class":220},"job2",[210,616,259],{"class":240},[210,618,480],{"class":240},[210,620,621,623,625,627,630,632],{"class":212,"line":336},[210,622,485],{"class":300},[210,624,470],{"class":240},[210,626,254],{"class":240},[210,628,629],{"class":220},"interval",[210,631,259],{"class":240},[210,633,480],{"class":240},[210,635,636,639,641,644,646],{"class":212,"line":358},[210,637,638],{"class":300},"  interval",[210,640,470],{"class":240},[210,642,643],{"class":244}," DAY",[210,645,524],{"class":240},[210,647,648],{"class":527}," // Runs every 24 hours\n",[210,650,651,653,655,657,659],{"class":212,"line":531},[210,652,534],{"class":423},[210,654,470],{"class":240},[210,656,539],{"class":240},[210,658,542],{"class":304},[210,660,545],{"class":240},[210,662,663,665,667,669,671,673,676,678,680],{"class":212,"line":548},[210,664,551],{"class":244},[210,666,439],{"class":240},[210,668,556],{"class":423},[210,670,459],{"class":300},[210,672,259],{"class":240},[210,674,675],{"class":220},"Executed job on interval",[210,677,259],{"class":240},[210,679,568],{"class":300},[210,681,262],{"class":240},[210,683,684],{"class":212,"line":573},[210,685,576],{"class":240},[210,687,688,690,692],{"class":212,"line":579},[210,689,347],{"class":240},[210,691,568],{"class":244},[210,693,262],{"class":240},[201,695,698],{"className":227,"code":696,"filename":697,"language":229,"meta":206,"style":206},"jobs.scheduleJob({\n  id: 'job3',\n  type: 'cron',\n  expression: '0 */2 * * *', // https://crontab.guru/#0_*/2_*_*_*\n  execute: () => {\n    console.log('Executed CRON job');\n  },\n});\n","CRON",[167,699,700,712,727,742,761,773,794,798],{"__ignoreMap":206},[210,701,702,704,706,708,710],{"class":212,"line":213},[210,703,452],{"class":244},[210,705,439],{"class":240},[210,707,434],{"class":423},[210,709,459],{"class":244},[210,711,462],{"class":240},[210,713,714,716,718,720,723,725],{"class":212,"line":327},[210,715,467],{"class":300},[210,717,470],{"class":240},[210,719,254],{"class":240},[210,721,722],{"class":220},"job3",[210,724,259],{"class":240},[210,726,480],{"class":240},[210,728,729,731,733,735,738,740],{"class":212,"line":336},[210,730,485],{"class":300},[210,732,470],{"class":240},[210,734,254],{"class":240},[210,736,737],{"class":220},"cron",[210,739,259],{"class":240},[210,741,480],{"class":240},[210,743,744,747,749,751,754,756,758],{"class":212,"line":358},[210,745,746],{"class":300},"  expression",[210,748,470],{"class":240},[210,750,254],{"class":240},[210,752,753],{"class":220},"0 */2 * * *",[210,755,259],{"class":240},[210,757,524],{"class":240},[210,759,760],{"class":527}," // https://crontab.guru/#0_*/2_*_*_*\n",[210,762,763,765,767,769,771],{"class":212,"line":531},[210,764,534],{"class":423},[210,766,470],{"class":240},[210,768,539],{"class":240},[210,770,542],{"class":304},[210,772,545],{"class":240},[210,774,775,777,779,781,783,785,788,790,792],{"class":212,"line":548},[210,776,551],{"class":244},[210,778,439],{"class":240},[210,780,556],{"class":423},[210,782,459],{"class":300},[210,784,259],{"class":240},[210,786,787],{"class":220},"Executed CRON job",[210,789,259],{"class":240},[210,791,568],{"class":300},[210,793,262],{"class":240},[210,795,796],{"class":212,"line":573},[210,797,576],{"class":240},[210,799,800,802,804],{"class":212,"line":579},[210,801,347],{"class":240},[210,803,568],{"class":244},[210,805,262],{"class":240},[139,807,808,809,811],{},"If a job has been created in the past, and nothing has changed, ",[167,810,434],{}," will do nothing. If something changed, it will update the job.",[139,813,814,815,439],{},"To stop running a job, call ",[167,816,817],{},"removeJob",[201,819,821],{"className":227,"code":820,"language":229,"meta":206,"style":206},"job.removeJob('some-old-job');\n",[167,822,823],{"__ignoreMap":206},[210,824,825,828,830,832,834,836,839,841,843],{"class":212,"line":213},[210,826,827],{"class":244},"job",[210,829,439],{"class":240},[210,831,817],{"class":423},[210,833,459],{"class":244},[210,835,259],{"class":240},[210,837,838],{"class":220},"some-old-job",[210,840,259],{"class":240},[210,842,568],{"class":244},[210,844,262],{"class":240},[846,847,848,849,851,852,854],"warning",{},"This is especially important when releasing an update after removing a job that is no longer needed - even if ",[167,850,434],{}," isn't called anymore. If you don't call ",[167,853,817],{},", the alarm managed internally for that job will not be deleted.",[160,856,858],{"id":857},"parameterized-jobs","Parameterized Jobs",[139,860,861],{},"You can't pass parameters into each individual job execution, but you can pass dependencies when scheduling a job by using higher-order functions:",[377,863,864,977],{},[201,865,867],{"className":227,"code":866,"filename":382,"language":229,"meta":206,"style":206},"import { someJob } from './someJob.ts';\n\n// Create your dependency\nconst someDependency = new SomeDependency();\n\nconst jobs = defineJobScheduler();\njobs.scheduleJob({\n  // ...\n  execute: someJob(someDependency),\n});\n",[167,868,869,891,895,900,919,923,937,949,954,968],{"__ignoreMap":206},[210,870,871,873,875,878,880,882,884,887,889],{"class":212,"line":213},[210,872,237],{"class":236},[210,874,241],{"class":240},[210,876,877],{"class":244}," someJob",[210,879,248],{"class":240},[210,881,251],{"class":236},[210,883,254],{"class":240},[210,885,886],{"class":220},"./someJob.ts",[210,888,259],{"class":240},[210,890,262],{"class":240},[210,892,893],{"class":212,"line":327},[210,894,410],{"emptyLinePlaceholder":409},[210,896,897],{"class":212,"line":336},[210,898,899],{"class":527},"// Create your dependency\n",[210,901,902,904,907,909,912,915,917],{"class":212,"line":358},[210,903,415],{"class":304},[210,905,906],{"class":244}," someDependency ",[210,908,308],{"class":240},[210,910,911],{"class":240}," new",[210,913,914],{"class":423}," SomeDependency",[210,916,426],{"class":244},[210,918,262],{"class":240},[210,920,921],{"class":212,"line":531},[210,922,410],{"emptyLinePlaceholder":409},[210,924,925,927,929,931,933,935],{"class":212,"line":548},[210,926,415],{"class":304},[210,928,418],{"class":244},[210,930,308],{"class":240},[210,932,245],{"class":423},[210,934,426],{"class":244},[210,936,262],{"class":240},[210,938,939,941,943,945,947],{"class":212,"line":573},[210,940,452],{"class":244},[210,942,439],{"class":240},[210,944,434],{"class":423},[210,946,459],{"class":244},[210,948,462],{"class":240},[210,950,951],{"class":212,"line":579},[210,952,953],{"class":527},"  // ...\n",[210,955,957,959,961,963,966],{"class":212,"line":956},9,[210,958,534],{"class":300},[210,960,470],{"class":240},[210,962,877],{"class":423},[210,964,965],{"class":244},"(someDependency)",[210,967,480],{"class":240},[210,969,971,973,975],{"class":212,"line":970},10,[210,972,347],{"class":240},[210,974,568],{"class":244},[210,976,262],{"class":240},[201,978,981],{"className":227,"code":979,"filename":980,"language":229,"meta":206,"style":206},"function someJob(someDependency: SomeDependency) {\n  return async () => {\n    // Use someDependency\n  };\n}\n","someJob.ts",[167,982,983,1004,1018,1023,1028],{"__ignoreMap":206},[210,984,985,988,990,992,996,998,1000,1002],{"class":212,"line":213},[210,986,987],{"class":304},"function",[210,989,877],{"class":423},[210,991,459],{"class":240},[210,993,995],{"class":994},"sHdIc","someDependency",[210,997,470],{"class":240},[210,999,914],{"class":216},[210,1001,568],{"class":240},[210,1003,545],{"class":240},[210,1005,1006,1009,1012,1014,1016],{"class":212,"line":327},[210,1007,1008],{"class":236},"  return",[210,1010,1011],{"class":304}," async",[210,1013,539],{"class":240},[210,1015,542],{"class":304},[210,1017,545],{"class":240},[210,1019,1020],{"class":212,"line":336},[210,1021,1022],{"class":527},"    // Use someDependency\n",[210,1024,1025],{"class":212,"line":358},[210,1026,1027],{"class":240},"  };\n",[210,1029,1030],{"class":212,"line":531},[210,1031,1032],{"class":240},"}\n",[160,1034,1036],{"id":1035},"other-js-contexts","Other JS Contexts",[139,1038,1039],{},"You should only create one scheduler, and it should be created in the background page/service worker.",[139,1041,1042,1043,439],{},"To schedule jobs from a UI or content script, you can use ",[172,1044,1045],{"href":105},[167,1046,1047],{},"@webext-core/proxy-service",[377,1049,1050,1138,1216],{},[201,1051,1054],{"className":227,"code":1052,"filename":1053,"language":229,"meta":206,"style":206},"import { defineProxyService } from '@webext-core/proxy-service';\n\nexport const [registerJobScheduler, getJobScheduler] = defineProxyService('JobScheduler', () =>\n  defineJobScheduler(),\n);\n","job-scheduler.ts",[167,1055,1056,1077,1081,1123,1132],{"__ignoreMap":206},[210,1057,1058,1060,1062,1065,1067,1069,1071,1073,1075],{"class":212,"line":213},[210,1059,237],{"class":236},[210,1061,241],{"class":240},[210,1063,1064],{"class":244}," defineProxyService",[210,1066,248],{"class":240},[210,1068,251],{"class":236},[210,1070,254],{"class":240},[210,1072,1047],{"class":220},[210,1074,259],{"class":240},[210,1076,262],{"class":240},[210,1078,1079],{"class":212,"line":327},[210,1080,410],{"emptyLinePlaceholder":409},[210,1082,1083,1086,1089,1092,1095,1097,1100,1103,1105,1107,1109,1111,1114,1116,1118,1120],{"class":212,"line":336},[210,1084,1085],{"class":236},"export",[210,1087,1088],{"class":304}," const",[210,1090,1091],{"class":240}," [",[210,1093,1094],{"class":244},"registerJobScheduler",[210,1096,524],{"class":240},[210,1098,1099],{"class":244}," getJobScheduler",[210,1101,1102],{"class":240},"]",[210,1104,350],{"class":240},[210,1106,1064],{"class":423},[210,1108,459],{"class":244},[210,1110,259],{"class":240},[210,1112,1113],{"class":220},"JobScheduler",[210,1115,259],{"class":240},[210,1117,524],{"class":240},[210,1119,539],{"class":240},[210,1121,1122],{"class":304}," =>\n",[210,1124,1125,1128,1130],{"class":212,"line":358},[210,1126,1127],{"class":423},"  defineJobScheduler",[210,1129,426],{"class":244},[210,1131,480],{"class":240},[210,1133,1134,1136],{"class":212,"line":531},[210,1135,568],{"class":244},[210,1137,262],{"class":240},[201,1139,1141],{"className":227,"code":1140,"filename":382,"language":229,"meta":206,"style":206},"import { registerJobScheduler } from './job-scheduler';\n\nconst jobs = registerJobScheduler();\n\n// Schedule any jobs in the background\njobs.scheduleJob({\n  // ...\n});\n",[167,1142,1143,1165,1169,1183,1187,1192,1204,1208],{"__ignoreMap":206},[210,1144,1145,1147,1149,1152,1154,1156,1158,1161,1163],{"class":212,"line":213},[210,1146,237],{"class":236},[210,1148,241],{"class":240},[210,1150,1151],{"class":244}," registerJobScheduler",[210,1153,248],{"class":240},[210,1155,251],{"class":236},[210,1157,254],{"class":240},[210,1159,1160],{"class":220},"./job-scheduler",[210,1162,259],{"class":240},[210,1164,262],{"class":240},[210,1166,1167],{"class":212,"line":327},[210,1168,410],{"emptyLinePlaceholder":409},[210,1170,1171,1173,1175,1177,1179,1181],{"class":212,"line":336},[210,1172,415],{"class":304},[210,1174,418],{"class":244},[210,1176,308],{"class":240},[210,1178,1151],{"class":423},[210,1180,426],{"class":244},[210,1182,262],{"class":240},[210,1184,1185],{"class":212,"line":358},[210,1186,410],{"emptyLinePlaceholder":409},[210,1188,1189],{"class":212,"line":531},[210,1190,1191],{"class":527},"// Schedule any jobs in the background\n",[210,1193,1194,1196,1198,1200,1202],{"class":212,"line":548},[210,1195,452],{"class":244},[210,1197,439],{"class":240},[210,1199,434],{"class":423},[210,1201,459],{"class":244},[210,1203,462],{"class":240},[210,1205,1206],{"class":212,"line":573},[210,1207,953],{"class":527},[210,1209,1210,1212,1214],{"class":212,"line":579},[210,1211,347],{"class":240},[210,1213,568],{"class":244},[210,1215,262],{"class":240},[201,1217,1220],{"className":227,"code":1218,"filename":1219,"language":229,"meta":206,"style":206},"import { getJobScheduler } from './job-scheduler';\n\n// Get a proxy instance and use it to schedule more jobs\nconst jobs = getJobScheduler();\njobs.scheduleJob({\n  // ...\n});\n","content-script.ts",[167,1221,1222,1242,1246,1251,1265,1277,1281],{"__ignoreMap":206},[210,1223,1224,1226,1228,1230,1232,1234,1236,1238,1240],{"class":212,"line":213},[210,1225,237],{"class":236},[210,1227,241],{"class":240},[210,1229,1099],{"class":244},[210,1231,248],{"class":240},[210,1233,251],{"class":236},[210,1235,254],{"class":240},[210,1237,1160],{"class":220},[210,1239,259],{"class":240},[210,1241,262],{"class":240},[210,1243,1244],{"class":212,"line":327},[210,1245,410],{"emptyLinePlaceholder":409},[210,1247,1248],{"class":212,"line":336},[210,1249,1250],{"class":527},"// Get a proxy instance and use it to schedule more jobs\n",[210,1252,1253,1255,1257,1259,1261,1263],{"class":212,"line":358},[210,1254,415],{"class":304},[210,1256,418],{"class":244},[210,1258,308],{"class":240},[210,1260,1099],{"class":423},[210,1262,426],{"class":244},[210,1264,262],{"class":240},[210,1266,1267,1269,1271,1273,1275],{"class":212,"line":531},[210,1268,452],{"class":244},[210,1270,439],{"class":240},[210,1272,434],{"class":423},[210,1274,459],{"class":244},[210,1276,462],{"class":240},[210,1278,1279],{"class":212,"line":548},[210,1280,953],{"class":527},[210,1282,1283,1285,1287],{"class":212,"line":573},[210,1284,347],{"class":240},[210,1286,568],{"class":244},[210,1288,262],{"class":240},[1290,1291,1292],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}",{"title":206,"searchDepth":327,"depth":327,"links":1294},[1295,1296,1297,1298,1299],{"id":162,"depth":327,"text":163},{"id":194,"depth":327,"text":28},{"id":368,"depth":327,"text":369},{"id":857,"depth":327,"text":858},{"id":1035,"depth":327,"text":1036},"md",null,{},{"title":28,"description":206},"E31kLr3nz-5Pn_imZQrkgndq85h6CfnZjqYpmb563lo",[1306,1307],{"title":48,"path":60,"stem":61,"description":206,"children":-1},{"title":48,"path":71,"stem":72,"description":206,"children":-1},1779300017282]