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