extension-develop 2.0.0-alpha.4 → 2.0.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ensure-hmr-for-scripts.js +2 -2
- package/dist/extensions/{manager-extension → chrome-manager-extension}/reload-service.js +12 -20
- package/dist/extensions/chromium-manager-extension/background.js +58 -0
- package/dist/extensions/chromium-manager-extension/define-initial-tab.js +67 -0
- package/dist/extensions/chromium-manager-extension/manifest.json +17 -0
- package/dist/extensions/chromium-manager-extension/pages/welcome.js +34 -0
- package/dist/extensions/chromium-manager-extension/reload-service.js +145 -0
- package/dist/extensions/edge-manager-extension/background.js +58 -0
- package/dist/extensions/edge-manager-extension/define-initial-tab.js +67 -0
- package/dist/extensions/edge-manager-extension/manifest.json +17 -0
- package/dist/extensions/edge-manager-extension/pages/sakura-dark.css +268 -0
- package/dist/extensions/edge-manager-extension/pages/sakura.css +267 -0
- package/dist/extensions/edge-manager-extension/pages/welcome.html +49 -0
- package/dist/extensions/edge-manager-extension/pages/welcome.js +34 -0
- package/dist/extensions/edge-manager-extension/public/logo.png +0 -0
- package/dist/extensions/edge-manager-extension/reload-service.js +145 -0
- package/dist/extensions/firefox-manager-extension/pages/sakura-dark.css +268 -0
- package/dist/extensions/firefox-manager-extension/pages/sakura.css +267 -0
- package/dist/extensions/firefox-manager-extension/pages/welcome.html +49 -0
- package/dist/extensions/firefox-manager-extension/public/logo.png +0 -0
- package/dist/extensions/{manager-extension-firefox → firefox-manager-extension}/reload-service.js +2 -2
- package/dist/inject-content-css-during-dev.js +3 -3
- package/dist/module.js +58 -60
- package/dist/resolver-module.js +1 -1
- package/dist/run-chrome-profile/ChromeFeatureState +6 -0
- package/dist/run-chrome-profile/Default/Affiliation Database +0 -0
- package/dist/run-chrome-profile/Default/Affiliation Database-journal +0 -0
- package/dist/run-chrome-profile/Default/AutofillStrikeDatabase/LOCK +0 -0
- package/dist/run-chrome-profile/Default/AutofillStrikeDatabase/LOG +0 -0
- package/dist/run-chrome-profile/Default/BrowsingTopicsSiteData +0 -0
- package/dist/run-chrome-profile/Default/BrowsingTopicsSiteData-journal +0 -0
- package/dist/run-chrome-profile/Default/BrowsingTopicsState +12 -0
- package/dist/run-chrome-profile/Default/BudgetDatabase/LOCK +0 -0
- package/dist/run-chrome-profile/Default/BudgetDatabase/LOG +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/02c29236cd5569d9_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/03ada532059b8034_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/0459b9a7cfd70de3_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/05799f52e5952cd2_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/06195bf42f479a94_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/07fe48e48012f5d4_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/0ea2c96059a665f6_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/0ea3b4f0e5162928_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/12ef1faa6ef6be0a_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/13f437647a98d690_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/145f227183d831da_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/15145040f7f12f31_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/18a6eaf2b8d9fbc0_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/1ebd72816b0318a4_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/1f51e51f7996f15c_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/20678633ad45c417_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/2238abf5762da3dc_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/2489a6e5fef8aaf5_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/257b9ada9582cd59_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/2801bdb9a57cff49_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/2990d4ed71357caa_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/2c8a7228e0e70e66_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/2e1b9c8a11107ee6_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/2f3eb5d2d4a2ba05_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/33ce9c12870d4d23_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/3432d5676097c5a4_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/348fb371b598ad8a_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/350415634e9b147e_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/3754df2089a6f98b_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/391767af871c7832_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/3af7b7d3103f4ace_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/3b442ce473a38989_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/40106f9b01933186_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/42bf217bf0a7e353_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/465712846aea785a_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/470625340df0dfe1_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/4ab06f1798ba83da_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/4fcac79a0c1e1209_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/51491aecf6b1cee3_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/52f321c33b61553e_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/54843c16a8099926_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/57ee31f65792ee6f_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/5db3346161a360a1_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/62c7b12575514dd8_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/682976dc8929dd6d_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/6bc68d2e236f96ae_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/6c53d9f7f750a482_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/6d4c2ade9755855d_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/75ab22151891a422_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/76104defb65db535_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/76b768fac1dc203a_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/78ed79bc5487503a_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/7a7c4b374713c348_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/7bf1a9bcdeb4a7c3_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/84b039c3dce94d8f_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/8652112b6b47c8b6_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/8c254b6cc2f9386c_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/8c254b6cc2f9386c_s +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/8cd491e55ec2145c_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/8d15b7cb73fbdeb6_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/8d664b746d6de0c4_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/91012f57f9a93f0a_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/91395c0d10305e0b_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/91f1060db473f52b_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/93b57958efb5aa68_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/93d81321f8c35eab_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/9669ea8a3f42aa8d_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/99e52c51723f6677_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/a122405e9d8df54d_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/a668aabbaa0c7a63_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/b139f7fe5f22a238_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/b4d7a9ccda716cbf_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/b78e34266a3d86fb_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/b7fa6be9247e36e6_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/b950b5c2fef0ffee_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/bb73f56848fa23a9_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/bd47e3de76bb850d_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/c04715c53c59ea58_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/c1eac51e21ad7087_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/c1eac51e21ad7087_s +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/c946e07ac7aca023_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/d101f7601b3e93d0_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/d3efbf950afdd763_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/d5ef4102b488ce71_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/d72eac7c5c5d934c_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/dff742c317ed3c37_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/e21225da5286558f_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/e50c540666156d26_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/e7941bcf8caa54d0_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/e85ac8952d7783d7_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/ea002b3ad1e1dac9_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/ee78b6ff81595a2e_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/ef174336c496ff3b_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/fc33d55f53e3840a_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/fec787df53d1fc90_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/index +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/index-dir/the-real-index +0 -0
- package/dist/run-chrome-profile/Default/ClientCertificates/LOCK +0 -0
- package/dist/run-chrome-profile/Default/ClientCertificates/LOG +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/067673da229925b1_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/0861135386d2c738_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/09ebbbf86d3957d1_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/0a104ab1be75c9ff_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/0a8ff373976a81f8_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/1995cf66fbe72164_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/218fe828c74bdb99_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/2265af44069323e5_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/2290104c219b710e_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/252ff20f6c4ad41a_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/29e4cc04c426d148_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/3032ae959113cef9_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/32205809d2db82fc_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/3641b3a1972d5585_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/3ab5cfc161dd9d59_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/50e812c864e921e8_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/5130b1979b8f3180_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/5925a9fed0828b1a_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/59bf18886d946b45_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/60605a2001016a5f_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/646b4abc4d2cb194_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/701aeeb23987a09f_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/74aa2a778d4f560e_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/76daca9c4adf11b0_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/7f22313d4c1575dd_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/86a1e305a40b55e8_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/8746c7a361028fbd_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/8c2133aa69d5888a_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/9a9299ecfcf06184_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/9d15e209f9b5dff9_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/9d5444cccaaad4a0_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/a475220d34fb49fa_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/a8461c1da16110cc_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/a8bfd7ab3bf7adbd_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/aa9c4d643d3e078d_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/ab111c103a093afe_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/ab6a1b85cb3e3e18_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/aba975aebc649b70_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/acefba6d46935197_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/aded9cecdad563a8_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/b09a7279f3c055b7_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/b1072107c65411ef_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/b41673332e77bbaa_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/b6911f2a21e78f5f_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/b7ba99089daea5e6_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/b9e93b46383d04a9_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/c507467488260492_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/c90703cdd5c1e252_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/cc92de16a209a21a_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/cd0639554fa9c5ee_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/d5862a4e25d4fa4a_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/d8422ce5022907b1_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/dfa228b63bc75053_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/dfadf478342431e2_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/e88a435dcfad84b6_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/e9cbe518f3e3f4c9_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/ea12d9bacfdec6c0_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/f33ab412cf9dd421_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/f4741c2f2373503b_0 +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/index +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/index-dir/the-real-index +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/wasm/index +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/wasm/index-dir/the-real-index +0 -0
- package/dist/run-chrome-profile/Default/Cookies +0 -0
- package/dist/run-chrome-profile/Default/Cookies-journal +0 -0
- package/dist/run-chrome-profile/Default/DIPS +0 -0
- package/dist/run-chrome-profile/Default/DIPS-journal +0 -0
- package/dist/run-chrome-profile/Default/DawnGraphiteCache/data_0 +0 -0
- package/dist/run-chrome-profile/Default/DawnGraphiteCache/data_1 +0 -0
- package/dist/run-chrome-profile/Default/DawnGraphiteCache/data_2 +0 -0
- package/dist/run-chrome-profile/Default/DawnGraphiteCache/data_3 +0 -0
- package/dist/run-chrome-profile/Default/DawnGraphiteCache/index +0 -0
- package/dist/run-chrome-profile/Default/DawnWebGPUCache/data_0 +0 -0
- package/dist/run-chrome-profile/Default/DawnWebGPUCache/data_1 +0 -0
- package/dist/run-chrome-profile/Default/DawnWebGPUCache/data_2 +0 -0
- package/dist/run-chrome-profile/Default/DawnWebGPUCache/data_3 +0 -0
- package/dist/run-chrome-profile/Default/DawnWebGPUCache/index +0 -0
- package/dist/run-chrome-profile/Default/Download Service/EntryDB/LOCK +0 -0
- package/dist/run-chrome-profile/Default/Download Service/EntryDB/LOG +0 -0
- package/dist/run-chrome-profile/Default/Download Service/Files/bfe06c15-9fb0-47d9-96c8-76bfcbeb6b62 +0 -0
- package/dist/run-chrome-profile/Default/Extension Rules/000003.log +0 -0
- package/dist/run-chrome-profile/Default/Extension Rules/CURRENT +1 -0
- package/dist/run-chrome-profile/Default/Extension Rules/LOCK +0 -0
- package/dist/run-chrome-profile/Default/Extension Rules/LOG +2 -0
- package/dist/run-chrome-profile/Default/Extension Rules/MANIFEST-000001 +0 -0
- package/dist/run-chrome-profile/Default/Extension Scripts/000003.log +0 -0
- package/dist/run-chrome-profile/Default/Extension Scripts/CURRENT +1 -0
- package/dist/run-chrome-profile/Default/Extension Scripts/LOCK +0 -0
- package/dist/run-chrome-profile/Default/Extension Scripts/LOG +2 -0
- package/dist/run-chrome-profile/Default/Extension Scripts/MANIFEST-000001 +0 -0
- package/dist/run-chrome-profile/Default/Extension State/000003.log +0 -0
- package/dist/run-chrome-profile/Default/Extension State/CURRENT +1 -0
- package/dist/run-chrome-profile/Default/Extension State/LOCK +0 -0
- package/dist/run-chrome-profile/Default/Extension State/LOG +2 -0
- package/dist/run-chrome-profile/Default/Extension State/MANIFEST-000001 +0 -0
- package/dist/run-chrome-profile/Default/Favicons +0 -0
- package/dist/run-chrome-profile/Default/Favicons-journal +0 -0
- package/dist/run-chrome-profile/Default/Feature Engagement Tracker/AvailabilityDB/LOCK +0 -0
- package/dist/run-chrome-profile/Default/Feature Engagement Tracker/AvailabilityDB/LOG +0 -0
- package/dist/run-chrome-profile/Default/Feature Engagement Tracker/EventDB/LOCK +0 -0
- package/dist/run-chrome-profile/Default/Feature Engagement Tracker/EventDB/LOG +0 -0
- package/dist/run-chrome-profile/Default/GPUCache/data_0 +0 -0
- package/dist/run-chrome-profile/Default/GPUCache/data_1 +0 -0
- package/dist/run-chrome-profile/Default/GPUCache/data_2 +0 -0
- package/dist/run-chrome-profile/Default/GPUCache/data_3 +0 -0
- package/dist/run-chrome-profile/Default/GPUCache/index +0 -0
- package/dist/run-chrome-profile/Default/History +0 -0
- package/dist/run-chrome-profile/Default/History-journal +0 -0
- package/dist/run-chrome-profile/Default/LOCK +0 -0
- package/dist/run-chrome-profile/Default/LOG +0 -0
- package/dist/run-chrome-profile/Default/Local Extension Settings/pbpgonifamlpcahjkkkfelffkegofkgg/000003.log +0 -0
- package/dist/run-chrome-profile/Default/Local Extension Settings/pbpgonifamlpcahjkkkfelffkegofkgg/CURRENT +1 -0
- package/dist/run-chrome-profile/Default/Local Extension Settings/pbpgonifamlpcahjkkkfelffkegofkgg/LOCK +0 -0
- package/dist/run-chrome-profile/Default/Local Extension Settings/pbpgonifamlpcahjkkkfelffkegofkgg/LOG +2 -0
- package/dist/run-chrome-profile/Default/Local Extension Settings/pbpgonifamlpcahjkkkfelffkegofkgg/MANIFEST-000001 +0 -0
- package/dist/run-chrome-profile/Default/Local Storage/leveldb/000003.log +0 -0
- package/dist/run-chrome-profile/Default/Local Storage/leveldb/CURRENT +1 -0
- package/dist/run-chrome-profile/Default/Local Storage/leveldb/LOCK +0 -0
- package/dist/run-chrome-profile/Default/Local Storage/leveldb/LOG +2 -0
- package/dist/run-chrome-profile/Default/Local Storage/leveldb/MANIFEST-000001 +0 -0
- package/dist/run-chrome-profile/Default/Login Data +0 -0
- package/dist/run-chrome-profile/Default/Login Data For Account +0 -0
- package/dist/run-chrome-profile/Default/Login Data For Account-journal +0 -0
- package/dist/run-chrome-profile/Default/Login Data-journal +0 -0
- package/dist/run-chrome-profile/Default/Network Action Predictor +0 -0
- package/dist/run-chrome-profile/Default/Network Action Predictor-journal +0 -0
- package/dist/run-chrome-profile/Default/Network Persistent State +1 -0
- package/dist/run-chrome-profile/Default/PersistentOriginTrials/LOCK +0 -0
- package/dist/run-chrome-profile/Default/PersistentOriginTrials/LOG +0 -0
- package/dist/run-chrome-profile/Default/Preferences +1 -0
- package/dist/run-chrome-profile/Default/PreferredApps +1 -0
- NEL +0 -0
- package/dist/run-chrome-profile/Default/Reporting and NEL-journal +0 -0
- package/dist/run-chrome-profile/Default/SCT Auditing Pending Reports +1 -0
- package/dist/run-chrome-profile/Default/Safe Browsing Cookies +0 -0
- package/dist/run-chrome-profile/Default/Safe Browsing Cookies-journal +0 -0
- package/dist/run-chrome-profile/Default/Secure Preferences +1 -0
- package/dist/run-chrome-profile/Default/Segmentation Platform/SegmentInfoDB/LOCK +0 -0
- package/dist/run-chrome-profile/Default/Segmentation Platform/SegmentInfoDB/LOG +0 -0
- package/dist/run-chrome-profile/Default/Segmentation Platform/SignalDB/LOCK +0 -0
- package/dist/run-chrome-profile/Default/Segmentation Platform/SignalDB/LOG +0 -0
- package/dist/run-chrome-profile/Default/Segmentation Platform/SignalStorageConfigDB/LOCK +0 -0
- package/dist/run-chrome-profile/Default/Segmentation Platform/SignalStorageConfigDB/LOG +0 -0
- package/dist/run-chrome-profile/Default/Service Worker/Database/000003.log +0 -0
- package/dist/run-chrome-profile/Default/Service Worker/Database/CURRENT +1 -0
- package/dist/run-chrome-profile/Default/Service Worker/Database/LOCK +0 -0
- package/dist/run-chrome-profile/Default/Service Worker/Database/LOG +2 -0
- package/dist/run-chrome-profile/Default/Service Worker/Database/MANIFEST-000001 +0 -0
- package/dist/run-chrome-profile/Default/Service Worker/ScriptCache/2cc80dabc69f58b6_0 +0 -0
- package/dist/run-chrome-profile/Default/Service Worker/ScriptCache/2cc80dabc69f58b6_1 +0 -0
- package/dist/run-chrome-profile/Default/Service Worker/ScriptCache/4cb013792b196a35_0 +0 -0
- package/dist/run-chrome-profile/Default/Service Worker/ScriptCache/ba23d8ecda68de77_0 +0 -0
- package/dist/run-chrome-profile/Default/Service Worker/ScriptCache/f1cdccba37924bda_0 +0 -0
- package/dist/run-chrome-profile/Default/Service Worker/ScriptCache/index +0 -0
- package/dist/run-chrome-profile/Default/Service Worker/ScriptCache/index-dir/the-real-index +0 -0
- package/dist/run-chrome-profile/Default/Session Storage/000003.log +0 -0
- package/dist/run-chrome-profile/Default/Session Storage/CURRENT +1 -0
- package/dist/run-chrome-profile/Default/Session Storage/LOCK +0 -0
- package/dist/run-chrome-profile/Default/Session Storage/LOG +2 -0
- package/dist/run-chrome-profile/Default/Session Storage/MANIFEST-000001 +0 -0
- package/dist/run-chrome-profile/Default/Sessions/Session_13369248220109744 +0 -0
- package/dist/run-chrome-profile/Default/Sessions/Tabs_13369248282817730 +0 -0
- package/dist/run-chrome-profile/Default/Shared Dictionary/cache/index +0 -0
- package/dist/run-chrome-profile/Default/Shared Dictionary/cache/index-dir/the-real-index +0 -0
- package/dist/run-chrome-profile/Default/Shared Dictionary/db +0 -0
- package/dist/run-chrome-profile/Default/Shared Dictionary/db-journal +0 -0
- package/dist/run-chrome-profile/Default/SharedStorage +0 -0
- package/dist/run-chrome-profile/Default/Shortcuts +0 -0
- package/dist/run-chrome-profile/Default/Shortcuts-journal +0 -0
- package/dist/run-chrome-profile/Default/Site Characteristics Database/000003.log +0 -0
- package/dist/run-chrome-profile/Default/Site Characteristics Database/CURRENT +1 -0
- package/dist/run-chrome-profile/Default/Site Characteristics Database/LOCK +0 -0
- package/dist/run-chrome-profile/Default/Site Characteristics Database/LOG +2 -0
- package/dist/run-chrome-profile/Default/Site Characteristics Database/MANIFEST-000001 +0 -0
- package/dist/run-chrome-profile/Default/Sync Data/LevelDB/000003.log +0 -0
- package/dist/run-chrome-profile/Default/Sync Data/LevelDB/CURRENT +1 -0
- package/dist/run-chrome-profile/Default/Sync Data/LevelDB/LOCK +0 -0
- package/dist/run-chrome-profile/Default/Sync Data/LevelDB/LOG +2 -0
- package/dist/run-chrome-profile/Default/Sync Data/LevelDB/MANIFEST-000001 +0 -0
- package/dist/run-chrome-profile/Default/Top Sites +0 -0
- package/dist/run-chrome-profile/Default/Top Sites-journal +0 -0
- package/dist/run-chrome-profile/Default/TransportSecurity +1 -0
- package/dist/run-chrome-profile/Default/Trust Tokens +0 -0
- package/dist/run-chrome-profile/Default/Trust Tokens-journal +0 -0
- package/dist/run-chrome-profile/Default/VideoDecodeStats/LOCK +0 -0
- package/dist/run-chrome-profile/Default/VideoDecodeStats/LOG +0 -0
- package/dist/run-chrome-profile/Default/Visited Links +0 -0
- package/dist/run-chrome-profile/Default/Web Data +0 -0
- package/dist/run-chrome-profile/Default/Web Data-journal +0 -0
- package/dist/run-chrome-profile/Default/WebStorage/3/IndexedDB/indexeddb.leveldb/000003.log +0 -0
- package/dist/run-chrome-profile/Default/WebStorage/3/IndexedDB/indexeddb.leveldb/CURRENT +1 -0
- package/dist/run-chrome-profile/Default/WebStorage/3/IndexedDB/indexeddb.leveldb/LOCK +0 -0
- package/dist/run-chrome-profile/Default/WebStorage/3/IndexedDB/indexeddb.leveldb/LOG +2 -0
- package/dist/run-chrome-profile/Default/WebStorage/3/IndexedDB/indexeddb.leveldb/LOG.old +0 -0
- package/dist/run-chrome-profile/Default/WebStorage/3/IndexedDB/indexeddb.leveldb/MANIFEST-000001 +0 -0
- package/dist/run-chrome-profile/Default/WebStorage/QuotaManager +0 -0
- package/dist/run-chrome-profile/Default/WebStorage/QuotaManager-journal +0 -0
- package/dist/run-chrome-profile/Default/chrome_cart_db/LOCK +0 -0
- package/dist/run-chrome-profile/Default/chrome_cart_db/LOG +0 -0
- package/dist/run-chrome-profile/Default/commerce_subscription_db/LOCK +0 -0
- package/dist/run-chrome-profile/Default/commerce_subscription_db/LOG +0 -0
- package/dist/run-chrome-profile/Default/coupon_db/LOCK +0 -0
- package/dist/run-chrome-profile/Default/coupon_db/LOG +0 -0
- package/dist/run-chrome-profile/Default/discounts_db/LOCK +0 -0
- package/dist/run-chrome-profile/Default/discounts_db/LOG +0 -0
- package/dist/run-chrome-profile/Default/heavy_ad_intervention_opt_out.db +0 -0
- package/dist/run-chrome-profile/Default/heavy_ad_intervention_opt_out.db-journal +0 -0
- package/dist/run-chrome-profile/Default/optimization_guide_hint_cache_store/LOCK +0 -0
- package/dist/run-chrome-profile/Default/optimization_guide_hint_cache_store/LOG +0 -0
- package/dist/run-chrome-profile/Default/parcel_tracking_db/LOCK +0 -0
- package/dist/run-chrome-profile/Default/parcel_tracking_db/LOG +0 -0
- package/dist/run-chrome-profile/Default/shared_proto_db/000003.log +0 -0
- package/dist/run-chrome-profile/Default/shared_proto_db/CURRENT +1 -0
- package/dist/run-chrome-profile/Default/shared_proto_db/LOCK +0 -0
- package/dist/run-chrome-profile/Default/shared_proto_db/LOG +2 -0
- package/dist/run-chrome-profile/Default/shared_proto_db/MANIFEST-000001 +0 -0
- package/dist/run-chrome-profile/Default/shared_proto_db/metadata/000003.log +0 -0
- package/dist/run-chrome-profile/Default/shared_proto_db/metadata/CURRENT +1 -0
- package/dist/run-chrome-profile/Default/shared_proto_db/metadata/LOCK +0 -0
- package/dist/run-chrome-profile/Default/shared_proto_db/metadata/LOG +2 -0
- package/dist/run-chrome-profile/Default/shared_proto_db/metadata/MANIFEST-000001 +0 -0
- package/dist/run-chrome-profile/Default/trusted_vault.pb +2 -0
- package/dist/run-chrome-profile/GrShaderCache/data_0 +0 -0
- package/dist/run-chrome-profile/GrShaderCache/data_1 +0 -0
- package/dist/run-chrome-profile/GrShaderCache/data_2 +0 -0
- package/dist/run-chrome-profile/GrShaderCache/data_3 +0 -0
- package/dist/run-chrome-profile/GrShaderCache/index +0 -0
- package/dist/run-chrome-profile/GraphiteDawnCache/data_0 +0 -0
- package/dist/run-chrome-profile/GraphiteDawnCache/data_1 +0 -0
- package/dist/run-chrome-profile/GraphiteDawnCache/data_2 +0 -0
- package/dist/run-chrome-profile/GraphiteDawnCache/data_3 +0 -0
- package/dist/run-chrome-profile/GraphiteDawnCache/index +0 -0
- package/dist/run-chrome-profile/Last Version +1 -0
- package/dist/run-chrome-profile/Local State +1 -0
- package/dist/run-chrome-profile/ShaderCache/data_0 +0 -0
- package/dist/run-chrome-profile/ShaderCache/data_1 +0 -0
- package/dist/run-chrome-profile/ShaderCache/data_2 +0 -0
- package/dist/run-chrome-profile/ShaderCache/data_3 +0 -0
- package/dist/run-chrome-profile/ShaderCache/index +0 -0
- package/dist/run-chrome-profile/Variations +1 -0
- package/dist/run-chrome-profile/first_party_sets.db +0 -0
- package/dist/run-chrome-profile/first_party_sets.db-journal +0 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/13/E6DC4029A1E4B4C1/2B4FB0CD70D37A3B/model-info.pb +1 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/13/E6DC4029A1E4B4C1/2B4FB0CD70D37A3B/model.tflite +0 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/15/E6DC4029A1E4B4C1/12059E94B1D721E9/VERSION.txt +4 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/15/E6DC4029A1E4B4C1/12059E94B1D721E9/model-info.pb +0 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/15/E6DC4029A1E4B4C1/12059E94B1D721E9/model.tflite +0 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/15/E6DC4029A1E4B4C1/12059E94B1D721E9/override_list.pb.gz +0 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/2/E6DC4029A1E4B4C1/D75F14FC82782FA2/model-info.pb +1 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/2/E6DC4029A1E4B4C1/D75F14FC82782FA2/model.tflite +0 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/20/E6DC4029A1E4B4C1/EF883883595D3464/model-info.pb +0 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/20/E6DC4029A1E4B4C1/EF883883595D3464/model.tflite +0 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/25/E6DC4029A1E4B4C1/3A9A7DA951DE9C51/model-info.pb +0 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/25/E6DC4029A1E4B4C1/3A9A7DA951DE9C51/model.tflite +0 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/25/E6DC4029A1E4B4C1/3A9A7DA951DE9C51/visual_model_desktop.tflite +0 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/26/E6DC4029A1E4B4C1/FFBCC5E2C9844D5E/model-info.pb +0 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/26/E6DC4029A1E4B4C1/FFBCC5E2C9844D5E/model.tflite +0 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/31/E6DC4029A1E4B4C1/18A4D0F67FA8506A/model-info.pb +3 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/31/E6DC4029A1E4B4C1/18A4D0F67FA8506A/model.tflite +0 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/32/E6DC4029A1E4B4C1/55969D51D0C100B3/model-info.pb +0 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/32/E6DC4029A1E4B4C1/55969D51D0C100B3/model.tflite +0 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/34/E6DC4029A1E4B4C1/4662B97715A7FA9A/model-info.pb +0 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/34/E6DC4029A1E4B4C1/4662B97715A7FA9A/model.tflite +0 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/9/E6DC4029A1E4B4C1/D611AD771F790F0B/model-info.pb +0 -0
- package/dist/run-chrome-profile/optimization_guide_model_store/9/E6DC4029A1E4B4C1/D611AD771F790F0B/model.tflite +0 -0
- package/dist/run-chrome-profile/segmentation_platform/ukm_db +0 -0
- package/dist/run-chrome-profile/segmentation_platform/ukm_db-journal +0 -0
- package/package.json +2 -2
- /package/dist/extensions/{manager-extension → chrome-manager-extension}/background.js +0 -0
- /package/dist/extensions/{manager-extension → chrome-manager-extension}/define-initial-tab.js +0 -0
- /package/dist/extensions/{manager-extension → chrome-manager-extension}/manifest.json +0 -0
- /package/dist/extensions/{manager-extension-firefox → chrome-manager-extension}/pages/sakura-dark.css +0 -0
- /package/dist/extensions/{manager-extension-firefox → chrome-manager-extension}/pages/sakura.css +0 -0
- /package/dist/extensions/{manager-extension-firefox → chrome-manager-extension}/pages/welcome.html +0 -0
- /package/dist/extensions/{manager-extension → chrome-manager-extension}/pages/welcome.js +0 -0
- /package/dist/extensions/{manager-extension-firefox → chrome-manager-extension}/public/logo.png +0 -0
- /package/dist/extensions/{manager-extension → chromium-manager-extension}/pages/sakura-dark.css +0 -0
- /package/dist/extensions/{manager-extension → chromium-manager-extension}/pages/sakura.css +0 -0
- /package/dist/extensions/{manager-extension → chromium-manager-extension}/pages/welcome.html +0 -0
- /package/dist/extensions/{manager-extension → chromium-manager-extension}/public/logo.png +0 -0
- /package/dist/extensions/{manager-extension-firefox → firefox-manager-extension}/background.js +0 -0
- /package/dist/extensions/{manager-extension-firefox → firefox-manager-extension}/define-initial-tab.js +0 -0
- /package/dist/extensions/{manager-extension-firefox → firefox-manager-extension}/manifest.json +0 -0
- /package/dist/extensions/{manager-extension-firefox → firefox-manager-extension}/pages/welcome.js +0 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
const TEN_SECONDS_MS = 10 * 1000
|
|
2
|
+
let webSocket = null
|
|
3
|
+
|
|
4
|
+
export async function connect() {
|
|
5
|
+
if (webSocket) {
|
|
6
|
+
// If already connected, do nothing
|
|
7
|
+
return
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
webSocket = new WebSocket('ws://localhost:__RELOAD_PORT__')
|
|
11
|
+
|
|
12
|
+
webSocket.onerror = (event) => {
|
|
13
|
+
console.error(`[Reload Service] Connection error: ${JSON.stringify(event)}`)
|
|
14
|
+
webSocket.close()
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
webSocket.onopen = () => {
|
|
18
|
+
console.info(`[Reload Service] Connection opened.`)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
webSocket.onmessage = async (event) => {
|
|
22
|
+
const message = JSON.parse(event.data)
|
|
23
|
+
|
|
24
|
+
if (message.status === 'serverReady') {
|
|
25
|
+
console.info('[Reload Service] Connection ready.')
|
|
26
|
+
await requestInitialLoadData()
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (message.changedFile) {
|
|
30
|
+
console.info(
|
|
31
|
+
`[Reload Service] Changes detected on ${message.changedFile}. Reloading extension...`
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
await messageAllExtensions(message.changedFile)
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
webSocket.onclose = () => {
|
|
39
|
+
console.info('[Reload Service] Connection closed.')
|
|
40
|
+
webSocket = null
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export function disconnect() {
|
|
45
|
+
if (webSocket) {
|
|
46
|
+
webSocket.close()
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async function getDevExtensions() {
|
|
51
|
+
const allExtensions = await new Promise((resolve) => {
|
|
52
|
+
chrome.management.getAll(resolve)
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
return allExtensions.filter((extension) => {
|
|
56
|
+
return (
|
|
57
|
+
// Do not include itself
|
|
58
|
+
extension.id !== chrome.runtime.id &&
|
|
59
|
+
// Manager extension
|
|
60
|
+
extension.id !== 'hkklidinfhnfidkjiknmmbmcloigimco' &&
|
|
61
|
+
// Show only unpackaged extensions
|
|
62
|
+
extension.installType === 'development'
|
|
63
|
+
)
|
|
64
|
+
})
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
async function messageAllExtensions(changedFile) {
|
|
68
|
+
// Check if the external extension is ready
|
|
69
|
+
const isExtensionReady = await checkExtensionReadiness()
|
|
70
|
+
|
|
71
|
+
if (isExtensionReady) {
|
|
72
|
+
const devExtensions = await getDevExtensions()
|
|
73
|
+
const reloadAll = devExtensions.map((extension) => {
|
|
74
|
+
chrome.runtime.sendMessage(extension.id, {changedFile}, (response) => {
|
|
75
|
+
if (response) {
|
|
76
|
+
console.info('[Reload Service] Extension reloaded and ready.')
|
|
77
|
+
}
|
|
78
|
+
})
|
|
79
|
+
|
|
80
|
+
return true
|
|
81
|
+
})
|
|
82
|
+
|
|
83
|
+
await Promise.all(reloadAll)
|
|
84
|
+
} else {
|
|
85
|
+
console.info('[Reload Service] External extension is not ready.')
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
async function requestInitialLoadData() {
|
|
90
|
+
const devExtensions = await getDevExtensions()
|
|
91
|
+
|
|
92
|
+
const messagePromises = devExtensions.map(async (extension) => {
|
|
93
|
+
return await new Promise((resolve) => {
|
|
94
|
+
chrome.runtime.sendMessage(
|
|
95
|
+
extension.id,
|
|
96
|
+
{initialLoadData: true},
|
|
97
|
+
(response) => {
|
|
98
|
+
if (chrome.runtime.lastError) {
|
|
99
|
+
console.error(
|
|
100
|
+
`Error sending message to ${extension.id}: ${chrome.runtime.lastError.message}`
|
|
101
|
+
)
|
|
102
|
+
resolve(null)
|
|
103
|
+
} else {
|
|
104
|
+
resolve(response)
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
)
|
|
108
|
+
})
|
|
109
|
+
})
|
|
110
|
+
|
|
111
|
+
const responses = await Promise.all(messagePromises)
|
|
112
|
+
|
|
113
|
+
// We received the info from the use extension.
|
|
114
|
+
// All good, client is ready. Inform the server.
|
|
115
|
+
if (webSocket && webSocket.readyState === WebSocket.OPEN) {
|
|
116
|
+
const message = JSON.stringify({
|
|
117
|
+
status: 'clientReady',
|
|
118
|
+
data: responses[0]
|
|
119
|
+
})
|
|
120
|
+
|
|
121
|
+
webSocket.send(message)
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
async function checkExtensionReadiness() {
|
|
126
|
+
// Delay for 1 second
|
|
127
|
+
await delay(1000)
|
|
128
|
+
// Assume the extension is ready
|
|
129
|
+
return true
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
async function delay(ms) {
|
|
133
|
+
return await new Promise((resolve) => setTimeout(resolve, ms))
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export function keepAlive() {
|
|
137
|
+
const keepAliveIntervalId = setInterval(() => {
|
|
138
|
+
if (webSocket) {
|
|
139
|
+
webSocket.send(JSON.stringify({status: 'ping'}))
|
|
140
|
+
console.info('[Reload Service] Listening for changes...')
|
|
141
|
+
} else {
|
|
142
|
+
clearInterval(keepAliveIntervalId)
|
|
143
|
+
}
|
|
144
|
+
}, TEN_SECONDS_MS)
|
|
145
|
+
}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
/* $color-text: #dedce5; */
|
|
2
|
+
/* Sakura.css v1.5.0
|
|
3
|
+
* ================
|
|
4
|
+
* Minimal css theme.
|
|
5
|
+
* Project: https://github.com/oxalorg/sakura/
|
|
6
|
+
*/
|
|
7
|
+
/* Body */
|
|
8
|
+
html {
|
|
9
|
+
font-size: 62.5%;
|
|
10
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
|
|
11
|
+
'Helvetica Neue', Arial, 'Noto Sans', sans-serif;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
body {
|
|
15
|
+
font-size: 1.8rem;
|
|
16
|
+
line-height: 1.618;
|
|
17
|
+
max-width: 38em;
|
|
18
|
+
margin: auto;
|
|
19
|
+
color: #c9c9c9;
|
|
20
|
+
background-color: #222222;
|
|
21
|
+
padding: 13px;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@media (max-width: 684px) {
|
|
25
|
+
body {
|
|
26
|
+
font-size: 1.53rem;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
@media (max-width: 382px) {
|
|
30
|
+
body {
|
|
31
|
+
font-size: 1.35rem;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
h1,
|
|
35
|
+
h2,
|
|
36
|
+
h3,
|
|
37
|
+
h4,
|
|
38
|
+
h5,
|
|
39
|
+
h6 {
|
|
40
|
+
line-height: 1.1;
|
|
41
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
|
|
42
|
+
'Helvetica Neue', Arial, 'Noto Sans', sans-serif;
|
|
43
|
+
font-weight: 700;
|
|
44
|
+
margin-top: 3rem;
|
|
45
|
+
margin-bottom: 1.5rem;
|
|
46
|
+
overflow-wrap: break-word;
|
|
47
|
+
word-wrap: break-word;
|
|
48
|
+
-ms-word-break: break-all;
|
|
49
|
+
word-break: break-word;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
h1 {
|
|
53
|
+
font-size: 2.35em;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
h2 {
|
|
57
|
+
font-size: 2em;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
h3 {
|
|
61
|
+
font-size: 1.75em;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
h4 {
|
|
65
|
+
font-size: 1.5em;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
h5 {
|
|
69
|
+
font-size: 1.25em;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
h6 {
|
|
73
|
+
font-size: 1em;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
p {
|
|
77
|
+
margin-top: 0px;
|
|
78
|
+
margin-bottom: 2.5rem;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
small,
|
|
82
|
+
sub,
|
|
83
|
+
sup {
|
|
84
|
+
font-size: 75%;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
hr {
|
|
88
|
+
border-color: #ffffff;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
a {
|
|
92
|
+
text-decoration: none;
|
|
93
|
+
color: #ffffff;
|
|
94
|
+
}
|
|
95
|
+
a:visited {
|
|
96
|
+
color: #e6e6e6;
|
|
97
|
+
}
|
|
98
|
+
a:hover {
|
|
99
|
+
color: #c9c9c9;
|
|
100
|
+
border-bottom: 2px solid #c9c9c9;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
ul {
|
|
104
|
+
padding-left: 1.4em;
|
|
105
|
+
margin-top: 0px;
|
|
106
|
+
margin-bottom: 2.5rem;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
li {
|
|
110
|
+
margin-bottom: 0.4em;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
blockquote {
|
|
114
|
+
margin-left: 0px;
|
|
115
|
+
margin-right: 0px;
|
|
116
|
+
padding-left: 1em;
|
|
117
|
+
padding-top: 0.8em;
|
|
118
|
+
padding-bottom: 0.8em;
|
|
119
|
+
padding-right: 0.8em;
|
|
120
|
+
border-left: 5px solid #ffffff;
|
|
121
|
+
margin-bottom: 2.5rem;
|
|
122
|
+
background-color: #4a4a4a;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
blockquote p {
|
|
126
|
+
margin-bottom: 0;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
img,
|
|
130
|
+
video {
|
|
131
|
+
height: auto;
|
|
132
|
+
max-width: 100%;
|
|
133
|
+
margin-top: 0px;
|
|
134
|
+
margin-bottom: 2.5rem;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/* Pre and Code */
|
|
138
|
+
pre {
|
|
139
|
+
background-color: #4a4a4a;
|
|
140
|
+
display: block;
|
|
141
|
+
padding: 1em;
|
|
142
|
+
overflow-x: auto;
|
|
143
|
+
margin-top: 0px;
|
|
144
|
+
margin-bottom: 2.5rem;
|
|
145
|
+
font-size: 0.9em;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
code,
|
|
149
|
+
kbd,
|
|
150
|
+
samp {
|
|
151
|
+
font-size: 0.9em;
|
|
152
|
+
padding: 0 0.5em;
|
|
153
|
+
background-color: #4a4a4a;
|
|
154
|
+
white-space: pre-wrap;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
pre > code {
|
|
158
|
+
padding: 0;
|
|
159
|
+
background-color: transparent;
|
|
160
|
+
white-space: pre;
|
|
161
|
+
font-size: 1em;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/* Tables */
|
|
165
|
+
table {
|
|
166
|
+
text-align: justify;
|
|
167
|
+
width: 100%;
|
|
168
|
+
border-collapse: collapse;
|
|
169
|
+
margin-bottom: 2rem;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
td,
|
|
173
|
+
th {
|
|
174
|
+
padding: 0.5em;
|
|
175
|
+
border-bottom: 1px solid #4a4a4a;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/* Buttons, forms and input */
|
|
179
|
+
input,
|
|
180
|
+
textarea {
|
|
181
|
+
border: 1px solid #c9c9c9;
|
|
182
|
+
}
|
|
183
|
+
input:focus,
|
|
184
|
+
textarea:focus {
|
|
185
|
+
border: 1px solid #ffffff;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
textarea {
|
|
189
|
+
width: 100%;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.button,
|
|
193
|
+
button,
|
|
194
|
+
input[type='submit'],
|
|
195
|
+
input[type='reset'],
|
|
196
|
+
input[type='button'],
|
|
197
|
+
input[type='file']::file-selector-button {
|
|
198
|
+
display: inline-block;
|
|
199
|
+
padding: 5px 10px;
|
|
200
|
+
text-align: center;
|
|
201
|
+
text-decoration: none;
|
|
202
|
+
white-space: nowrap;
|
|
203
|
+
background-color: #ffffff;
|
|
204
|
+
color: #222222;
|
|
205
|
+
border-radius: 1px;
|
|
206
|
+
border: 1px solid #ffffff;
|
|
207
|
+
cursor: pointer;
|
|
208
|
+
box-sizing: border-box;
|
|
209
|
+
}
|
|
210
|
+
.button[disabled],
|
|
211
|
+
button[disabled],
|
|
212
|
+
input[type='submit'][disabled],
|
|
213
|
+
input[type='reset'][disabled],
|
|
214
|
+
input[type='button'][disabled],
|
|
215
|
+
input[type='file']::file-selector-button[disabled] {
|
|
216
|
+
cursor: default;
|
|
217
|
+
opacity: 0.5;
|
|
218
|
+
}
|
|
219
|
+
.button:hover,
|
|
220
|
+
button:hover,
|
|
221
|
+
input[type='submit']:hover,
|
|
222
|
+
input[type='reset']:hover,
|
|
223
|
+
input[type='button']:hover,
|
|
224
|
+
input[type='file']::file-selector-button:hover {
|
|
225
|
+
background-color: #c9c9c9;
|
|
226
|
+
color: #222222;
|
|
227
|
+
outline: 0;
|
|
228
|
+
}
|
|
229
|
+
.button:focus-visible,
|
|
230
|
+
button:focus-visible,
|
|
231
|
+
input[type='submit']:focus-visible,
|
|
232
|
+
input[type='reset']:focus-visible,
|
|
233
|
+
input[type='button']:focus-visible,
|
|
234
|
+
input[type='file']::file-selector-button:focus-visible {
|
|
235
|
+
outline-style: solid;
|
|
236
|
+
outline-width: 2px;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
textarea,
|
|
240
|
+
select,
|
|
241
|
+
input {
|
|
242
|
+
color: #c9c9c9;
|
|
243
|
+
padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */
|
|
244
|
+
margin-bottom: 10px;
|
|
245
|
+
background-color: #4a4a4a;
|
|
246
|
+
border: 1px solid #4a4a4a;
|
|
247
|
+
border-radius: 4px;
|
|
248
|
+
box-shadow: none;
|
|
249
|
+
box-sizing: border-box;
|
|
250
|
+
}
|
|
251
|
+
textarea:focus,
|
|
252
|
+
select:focus,
|
|
253
|
+
input:focus {
|
|
254
|
+
border: 1px solid #ffffff;
|
|
255
|
+
outline: 0;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
input[type='checkbox']:focus {
|
|
259
|
+
outline: 1px dotted #ffffff;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
label,
|
|
263
|
+
legend,
|
|
264
|
+
fieldset {
|
|
265
|
+
display: block;
|
|
266
|
+
margin-bottom: 0.5rem;
|
|
267
|
+
font-weight: 600;
|
|
268
|
+
}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
/* Sakura.css v1.5.0
|
|
2
|
+
* ================
|
|
3
|
+
* Minimal css theme.
|
|
4
|
+
* Project: https://github.com/oxalorg/sakura/
|
|
5
|
+
*/
|
|
6
|
+
/* Body */
|
|
7
|
+
html {
|
|
8
|
+
font-size: 62.5%;
|
|
9
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
|
|
10
|
+
'Helvetica Neue', Arial, 'Noto Sans', sans-serif;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
body {
|
|
14
|
+
font-size: 1.8rem;
|
|
15
|
+
line-height: 1.618;
|
|
16
|
+
max-width: 38em;
|
|
17
|
+
margin: auto;
|
|
18
|
+
color: #4a4a4a;
|
|
19
|
+
background-color: #f9f9f9;
|
|
20
|
+
padding: 13px;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@media (max-width: 684px) {
|
|
24
|
+
body {
|
|
25
|
+
font-size: 1.53rem;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
@media (max-width: 382px) {
|
|
29
|
+
body {
|
|
30
|
+
font-size: 1.35rem;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
h1,
|
|
34
|
+
h2,
|
|
35
|
+
h3,
|
|
36
|
+
h4,
|
|
37
|
+
h5,
|
|
38
|
+
h6 {
|
|
39
|
+
line-height: 1.1;
|
|
40
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
|
|
41
|
+
'Helvetica Neue', Arial, 'Noto Sans', sans-serif;
|
|
42
|
+
font-weight: 700;
|
|
43
|
+
margin-top: 3rem;
|
|
44
|
+
margin-bottom: 1.5rem;
|
|
45
|
+
overflow-wrap: break-word;
|
|
46
|
+
word-wrap: break-word;
|
|
47
|
+
-ms-word-break: break-all;
|
|
48
|
+
word-break: break-word;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
h1 {
|
|
52
|
+
font-size: 2.35em;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
h2 {
|
|
56
|
+
font-size: 2em;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
h3 {
|
|
60
|
+
font-size: 1.75em;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
h4 {
|
|
64
|
+
font-size: 1.5em;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
h5 {
|
|
68
|
+
font-size: 1.25em;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
h6 {
|
|
72
|
+
font-size: 1em;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
p {
|
|
76
|
+
margin-top: 0px;
|
|
77
|
+
margin-bottom: 2.5rem;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
small,
|
|
81
|
+
sub,
|
|
82
|
+
sup {
|
|
83
|
+
font-size: 75%;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
hr {
|
|
87
|
+
border-color: #1d7484;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
a {
|
|
91
|
+
text-decoration: none;
|
|
92
|
+
color: #1d7484;
|
|
93
|
+
}
|
|
94
|
+
a:visited {
|
|
95
|
+
color: #144f5a;
|
|
96
|
+
}
|
|
97
|
+
a:hover {
|
|
98
|
+
color: #982c61;
|
|
99
|
+
border-bottom: 2px solid #4a4a4a;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
ul {
|
|
103
|
+
padding-left: 1.4em;
|
|
104
|
+
margin-top: 0px;
|
|
105
|
+
margin-bottom: 2.5rem;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
li {
|
|
109
|
+
margin-bottom: 0.4em;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
blockquote {
|
|
113
|
+
margin-left: 0px;
|
|
114
|
+
margin-right: 0px;
|
|
115
|
+
padding-left: 1em;
|
|
116
|
+
padding-top: 0.8em;
|
|
117
|
+
padding-bottom: 0.8em;
|
|
118
|
+
padding-right: 0.8em;
|
|
119
|
+
border-left: 5px solid #1d7484;
|
|
120
|
+
margin-bottom: 2.5rem;
|
|
121
|
+
background-color: #f1f1f1;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
blockquote p {
|
|
125
|
+
margin-bottom: 0;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
img,
|
|
129
|
+
video {
|
|
130
|
+
height: auto;
|
|
131
|
+
max-width: 100%;
|
|
132
|
+
margin-top: 0px;
|
|
133
|
+
margin-bottom: 2.5rem;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/* Pre and Code */
|
|
137
|
+
pre {
|
|
138
|
+
background-color: #f1f1f1;
|
|
139
|
+
display: block;
|
|
140
|
+
padding: 1em;
|
|
141
|
+
overflow-x: auto;
|
|
142
|
+
margin-top: 0px;
|
|
143
|
+
margin-bottom: 2.5rem;
|
|
144
|
+
font-size: 0.9em;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
code,
|
|
148
|
+
kbd,
|
|
149
|
+
samp {
|
|
150
|
+
font-size: 0.9em;
|
|
151
|
+
padding: 0 0.5em;
|
|
152
|
+
background-color: #f1f1f1;
|
|
153
|
+
white-space: pre-wrap;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
pre > code {
|
|
157
|
+
padding: 0;
|
|
158
|
+
background-color: transparent;
|
|
159
|
+
white-space: pre;
|
|
160
|
+
font-size: 1em;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/* Tables */
|
|
164
|
+
table {
|
|
165
|
+
text-align: justify;
|
|
166
|
+
width: 100%;
|
|
167
|
+
border-collapse: collapse;
|
|
168
|
+
margin-bottom: 2rem;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
td,
|
|
172
|
+
th {
|
|
173
|
+
padding: 0.5em;
|
|
174
|
+
border-bottom: 1px solid #f1f1f1;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/* Buttons, forms and input */
|
|
178
|
+
input,
|
|
179
|
+
textarea {
|
|
180
|
+
border: 1px solid #4a4a4a;
|
|
181
|
+
}
|
|
182
|
+
input:focus,
|
|
183
|
+
textarea:focus {
|
|
184
|
+
border: 1px solid #1d7484;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
textarea {
|
|
188
|
+
width: 100%;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.button,
|
|
192
|
+
button,
|
|
193
|
+
input[type='submit'],
|
|
194
|
+
input[type='reset'],
|
|
195
|
+
input[type='button'],
|
|
196
|
+
input[type='file']::file-selector-button {
|
|
197
|
+
display: inline-block;
|
|
198
|
+
padding: 5px 10px;
|
|
199
|
+
text-align: center;
|
|
200
|
+
text-decoration: none;
|
|
201
|
+
white-space: nowrap;
|
|
202
|
+
background-color: #1d7484;
|
|
203
|
+
color: #f9f9f9;
|
|
204
|
+
border-radius: 1px;
|
|
205
|
+
border: 1px solid #1d7484;
|
|
206
|
+
cursor: pointer;
|
|
207
|
+
box-sizing: border-box;
|
|
208
|
+
}
|
|
209
|
+
.button[disabled],
|
|
210
|
+
button[disabled],
|
|
211
|
+
input[type='submit'][disabled],
|
|
212
|
+
input[type='reset'][disabled],
|
|
213
|
+
input[type='button'][disabled],
|
|
214
|
+
input[type='file']::file-selector-button[disabled] {
|
|
215
|
+
cursor: default;
|
|
216
|
+
opacity: 0.5;
|
|
217
|
+
}
|
|
218
|
+
.button:hover,
|
|
219
|
+
button:hover,
|
|
220
|
+
input[type='submit']:hover,
|
|
221
|
+
input[type='reset']:hover,
|
|
222
|
+
input[type='button']:hover,
|
|
223
|
+
input[type='file']::file-selector-button:hover {
|
|
224
|
+
background-color: #982c61;
|
|
225
|
+
color: #f9f9f9;
|
|
226
|
+
outline: 0;
|
|
227
|
+
}
|
|
228
|
+
.button:focus-visible,
|
|
229
|
+
button:focus-visible,
|
|
230
|
+
input[type='submit']:focus-visible,
|
|
231
|
+
input[type='reset']:focus-visible,
|
|
232
|
+
input[type='button']:focus-visible,
|
|
233
|
+
input[type='file']::file-selector-button:focus-visible {
|
|
234
|
+
outline-style: solid;
|
|
235
|
+
outline-width: 2px;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
textarea,
|
|
239
|
+
select,
|
|
240
|
+
input {
|
|
241
|
+
color: #4a4a4a;
|
|
242
|
+
padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */
|
|
243
|
+
margin-bottom: 10px;
|
|
244
|
+
background-color: #f1f1f1;
|
|
245
|
+
border: 1px solid #f1f1f1;
|
|
246
|
+
border-radius: 4px;
|
|
247
|
+
box-shadow: none;
|
|
248
|
+
box-sizing: border-box;
|
|
249
|
+
}
|
|
250
|
+
textarea:focus,
|
|
251
|
+
select:focus,
|
|
252
|
+
input:focus {
|
|
253
|
+
border: 1px solid #1d7484;
|
|
254
|
+
outline: 0;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
input[type='checkbox']:focus {
|
|
258
|
+
outline: 1px dotted #1d7484;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
label,
|
|
262
|
+
legend,
|
|
263
|
+
fieldset {
|
|
264
|
+
display: block;
|
|
265
|
+
margin-bottom: 0.5rem;
|
|
266
|
+
font-weight: 600;
|
|
267
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<title>Welcome!</title>
|
|
5
|
+
<meta charset="UTF-8" />
|
|
6
|
+
<link
|
|
7
|
+
rel="icon"
|
|
8
|
+
href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>🧩</text></svg>"
|
|
9
|
+
/>
|
|
10
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
11
|
+
<link rel="stylesheet" href="./sakura.css" media="screen" />
|
|
12
|
+
<link
|
|
13
|
+
rel="stylesheet"
|
|
14
|
+
href="./sakura-dark.css"
|
|
15
|
+
media="screen and (prefers-color-scheme: dark)"
|
|
16
|
+
/>
|
|
17
|
+
<style>
|
|
18
|
+
.center-middle {
|
|
19
|
+
display: flex;
|
|
20
|
+
flex-direction: column;
|
|
21
|
+
justify-content: center;
|
|
22
|
+
height: 100vh;
|
|
23
|
+
padding: 0;
|
|
24
|
+
margin: 0;
|
|
25
|
+
}
|
|
26
|
+
</style>
|
|
27
|
+
</head>
|
|
28
|
+
<body>
|
|
29
|
+
<div class="center-middle">
|
|
30
|
+
<h1 style="font-size: 4.2em">
|
|
31
|
+
Chrome Extension<br />
|
|
32
|
+
<a href="#"><span id="extensionName"></span></a><br />
|
|
33
|
+
ready.
|
|
34
|
+
</h1>
|
|
35
|
+
<p id="extensionDescription"></p>
|
|
36
|
+
<p>
|
|
37
|
+
<a target="_blank" href="https://github.com/cezaraugusto/extension"
|
|
38
|
+
>🧩 Extension.js</a
|
|
39
|
+
>
|
|
40
|
+
is a development tool for browser extensions with built-in support for
|
|
41
|
+
TypeScript, WebAssembly, React, and modern JavaScript.
|
|
42
|
+
</p>
|
|
43
|
+
<button id="learnMore">
|
|
44
|
+
🧩 Learn more about developing cross-browser extensions
|
|
45
|
+
</button>
|
|
46
|
+
</div>
|
|
47
|
+
<script src="welcome.js"></script>
|
|
48
|
+
</body>
|
|
49
|
+
</html>
|
|
Binary file
|