<commit_before>// r4

const assets = [
	'./',

	'./manifest.json',
	'./files/icon.png',

	'./css/main.css',
	'./css/dark.css',

	'./files/fullscreen.svg',
	'./files/next.svg',
	'./files/pause.svg',
	'./files/play.svg',
	'./files/prev.svg',

	'./js/libs/codemirror/codemirror.css',
	'./js/libs/codemirror/codemirror.js',
	'./js/libs/codemirror/addon/dialog/dialog.css',
	'./js/libs/codemirror/addon/dialog/dialog.js',
	'./js/libs/codemirror/addon/scroll/annotatescrollbar.js',
	'./js/libs/codemirror/addon/scroll/scrollpastend.js',
	'./js/libs/codemirror/addon/search/jump-to-line.js',
	'./js/libs/codemirror/addon/search/match-highlighter.js',
	'./js/libs/codemirror/addon/search/matchesonscrollbar.css',
	'./js/libs/codemirror/addon/search/matchesonscrollbar.js',
	'./js/libs/codemirror/addon/search/search.js',
	'./js/libs/codemirror/addon/search/searchcursor.js',
	'./js/libs/codemirror/mode/javascript.js',
	'./js/libs/codemirror/theme/monokai.css',
	'./js/libs/signals.min.js',
	'./js/libs/ui.js',

	'./js/Code.js',
	'./js/Config.js',
	'./js/Controls.js',
	'./js/Editor.js',
	'./js/Menubar.js',
	'./js/MenubarEdit.js',
	'./js/MenubarExamples.js',
	'./js/MenubarFile.js',
	'./js/MenubarHelp.js',
	'./js/Sidebar.js',
	'./js/SidebarAnimation.js',
	'./js/SidebarProject.js',
	'./js/SidebarRender.js',
	'./js/Timeline.Curves.js',
	'./js/Timeline.js',
	'./js/TimelineAnimations.js',
	'./js/Viewport.js'

];

self.addEventListener( 'install', async function () {

	const cache = await caches.open( 'framejs-editor' );

	assets.forEach( function ( asset ) {

		cache.add( asset ).catch( function () {

			console.warn( '[SW] Cound\'t cache:', asset );

		} );<commit_msg>SW: Use a new cache per update approach.<commit_after>const cacheName = 'framejs-editor-r4';

const assets = [
	'./',

	'./manifest.json',
	'./files/icon.png',

	'./css/main.css',
	'./css/dark.css',

	'./files/fullscreen.svg',
	'./files/next.svg',
	'./files/pause.svg',
	'./files/play.svg',
	'./files/prev.svg',

	'./js/libs/codemirror/codemirror.css',
	'./js/libs/codemirror/codemirror.js',
	'./js/libs/codemirror/addon/dialog/dialog.css',
	'./js/libs/codemirror/addon/dialog/dialog.js',
	'./js/libs/codemirror/addon/scroll/annotatescrollbar.js',
	'./js/libs/codemirror/addon/scroll/scrollpastend.js',
	'./js/libs/codemirror/addon/search/jump-to-line.js',
	'./js/libs/codemirror/addon/search/match-highlighter.js',
	'./js/libs/codemirror/addon/search/matchesonscrollbar.css',
	'./js/libs/codemirror/addon/search/matchesonscrollbar.js',
	'./js/libs/codemirror/addon/search/search.js',
	'./js/libs/codemirror/addon/search/searchcursor.js',
	'./js/libs/codemirror/mode/javascript.js',
	'./js/libs/codemirror/theme/monokai.css',
	'./js/libs/signals.min.js',
	'./js/libs/ui.js',

	'./js/Code.js',
	'./js/Config.js',
	'./js/Controls.js',
	'./js/Editor.js',
	'./js/Menubar.js',
	'./js/MenubarEdit.js',
	'./js/MenubarExamples.js',
	'./js/MenubarFile.js',
	'./js/MenubarHelp.js',
	'./js/Sidebar.js',
	'./js/SidebarAnimation.js',
	'./js/SidebarProject.js',
	'./js/SidebarRender.js',
	'./js/Timeline.Curves.js',
	'./js/Timeline.js',
	'./js/TimelineAnimations.js',
	'./js/Viewport.js'

];

self.addEventListener( 'install', async function () {

	const cache = await caches.open( cacheName );

	assets.forEach( function ( asset ) {

		cache.add( asset ).catch( function () {

			console.warn( '[SW] Cound\'t cache:', asset );

		} );
{'fraction_non_alphanumeric': 0.24107406314547064, 'fraction_numerical': 0.0005901445854234287, 'mean_word_length': 3.368556701030928, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1701595', 'n_tokens_mistral': 1565, 'n_tokens_neox': 1496, 'n_words': 142}