Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@builder.io/qwik

Package Overview
Dependencies
Maintainers
8
Versions
322
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@builder.io/qwik - npm Package Compare versions

Comparing version 0.0.11 to 0.0.12-0

core.cjs.map

86

package.json
{
"name": "@builder.io/qwik",
"version": "0.0.11",
"description": "An Open-Source framework designed for best possible [time to interactive](https://web.dev/interactive/), by focusing on [resumability](./docs/RESUMABLE.md) of server-side-rendering of HTML, and [fine-grained lazy-loading](./docs/LAZY_LOADING.md) of code.",
"version": "0.0.12-0",
"description": "An Open-Source sub-framework designed with a focus on server-side-rendering, lazy-loading, and styling/animation.",
"license": "MIT",
"main": "./core.cjs",
"module": "./core.js",
"module": "./core.mjs",
"types": "./core.d.ts",

@@ -11,7 +12,72 @@ "type": "module",

".": {
"import": "./core.js",
"import": "./core.mjs",
"require": "./core.cjs"
},
"./core": {
"import": "./core.mjs",
"require": "./core.cjs"
},
"./jsx-runtime": {
"import": "./jsx-runtime.mjs",
"require": "./jsx-runtime.cjs"
},
"./optimizer": {
"import": "./optimizer.mjs",
"require": "./optimizer.cjs"
},
"./server": {
"import": "./testing/index.mjs",
"require": "./testing/index.cjs"
},
"./testing": {
"import": "./testing/index.mjs",
"require": "./testing/index.cjs"
},
"./package.json": "./package.json"
},
"files": [
"core.cjs",
"core.cjs.map",
"core.d.ts",
"core.min.mjs",
"core.mjs",
"core.mjs.map",
"jsx-runtime.cjs",
"jsx-runtime.d.ts",
"jsx-runtime.mjs",
"LICENSE",
"optimizer.cjs",
"optimizer.cjs.map",
"optimizer.d.ts",
"optimizer.mjs",
"optimizer.mjs.map",
"package.json",
"qwikloader.debug.js",
"qwikloader.js",
"qwikloader.optimize.debug.js",
"qwikloader.optimize.js",
"README.md",
"server/index.cjs",
"server/index.cjs.map",
"server/index.d.ts",
"server/index.mjs",
"server/index.mjs.map",
"testing/index.cjs",
"testing/index.cjs.map",
"testing/index.d.ts",
"testing/index.mjs",
"testing/index.mjs.map",
"testing/jest-preprocessor.cjs",
"testing/jest-preprocessor.cjs.map",
"testing/jest-preprocessor.mjs",
"testing/jest-preprocessor.mjs.map",
"testing/jest-preset.cjs",
"testing/jest-preset.cjs.map",
"testing/jest-preset.mjs",
"testing/jest-preset.mjs.map",
"testing/jest-setuptestframework.cjs",
"testing/jest-setuptestframework.cjs.map",
"testing/jest-setuptestframework.mjs",
"testing/jest-setuptestframework.mjs.map"
],
"contributors": [

@@ -30,3 +96,2 @@ {

"homepage": "https://github.com/BuilderIO/qwik#readme",
"license": "MIT",
"repository": {

@@ -40,10 +105,17 @@ "type": "git",

"keywords": [
"framework",
"ssr",
"server-side-render",
"prerender",
"ssg",
"static-site-generator",
"static-site",
"generator",
"website",
"webapp",
"framework",
"Builder.io"
],
"engines": {
"node": ">= 14"
"node": ">= 14.14"
}
}

94

qwikloader.js

@@ -1,93 +0,1 @@

"use strict";
/**
* @license
* Copyright Builder.io, Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/BuilderIO/qwik/blob/main/LICENSE
*/
/**
* Set up event listening for browser.
*
* Determine all of the browser events and set up global listeners for them.
* If browser triggers event search for the lazy load URL and `import()` it.
*
* @param document - Document to use for setting up global listeners, and to
* determine all of the browser supported events.
*/
((document) => {
// When cleared it means that `on:q-init` has been run
let readystatechange = 'readystatechange';
/**
* Event handler responsible for processing browser events.
*
* If browser emits an event, the `eventProcessor` walks the DOM tree
* looking for corresponding `(${event.type})`. If found the event's URL
* is parsed and `import()`ed.
*
* @param event - Browser event.
*/
const processEvent = async (event) => {
const eventName = 'on:' + event.type;
let element = event.target;
while (element && element.getAttribute) {
let eventUrl = element.getAttribute(eventName);
if (eventUrl) {
eventUrl = eventUrl.replace(/^(\w+):/, (_, protocol) => {
return window.Q.protocol[protocol];
});
const url = new URL(eventUrl, document.baseURI);
const importPath = url.pathname + '.js';
const module = await import(importPath);
// 1 - optional `#` at the start.
// 2 - capture group `$1` containing the export name, stopping at the first `?`.
// 3 - the rest from the first `?` to the end.
// The hash string is replaced by the captured group that contains only the export name.
// This is the same as in the `qExport()` function.
// 1112222222333
const exportName = url.hash.replace(/^#?([^?]*).*$/, '$1') || 'default';
const handler = module[exportName];
if (!handler)
throw new Error(`QWIKLOADER-ERROR: import '${importPath}' does not export '${exportName}'.`);
handler(element, event, url);
}
element = element.parentElement;
}
};
const addEventListener = (eventName) => {
document.addEventListener(eventName, processEvent, { capture: true });
};
// Set up listeners. Start with `document` and walk up the prototype
// inheritance on look for `on*` properties. Assume that `on*` property
// corresponds to an event browser can emit.
const scriptTag = document.querySelector('script[events]');
if (scriptTag) {
const events = scriptTag.getAttribute('events') || '';
events.split(/[\s,;]+/).forEach(addEventListener);
}
else {
for (const key in document) {
if (key.indexOf('on') == 0) {
const eventName = key.substring(2);
// For each `on*` property, set up a listener.
addEventListener(eventName);
}
}
}
const qInit = `q-init`;
addEventListener(qInit);
const processReadyStateChange = () => {
const readyState = document.readyState;
if (readystatechange && (readyState == 'interactive' || readyState == 'complete')) {
readystatechange = null;
document
.querySelectorAll('[on\\:\\' + qInit + ']')
.forEach((target) => target.dispatchEvent(new CustomEvent(qInit)));
}
};
document.addEventListener(readystatechange, processReadyStateChange);
processReadyStateChange();
})(
// Invoke qwik-loader.
document);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXdpa2xvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIuLyIsInNvdXJjZXMiOlsicXdpa2xvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HO0FBbUJIOzs7Ozs7OztHQVFHO0FBQ0gsQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRTtJQUN0QixzREFBc0Q7SUFDdEQsSUFBSSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztJQUMxQzs7Ozs7Ozs7T0FRRztJQUNILE1BQU0sWUFBWSxHQUFHLEtBQUssRUFBRSxLQUFZLEVBQUUsRUFBRTtRQUMxQyxNQUFNLFNBQVMsR0FBRyxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUNyQyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBd0IsQ0FBQztRQUM3QyxPQUFPLE9BQU8sSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ3RDLElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDL0MsSUFBSSxRQUFRLEVBQUU7Z0JBQ1osUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFO29CQUNyRCxPQUFRLE1BQWdDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDaEUsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDaEQsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUN4QyxpQ0FBaUM7Z0JBQ2pDLGdGQUFnRjtnQkFDaEYsOENBQThDO2dCQUM5Qyx3RkFBd0Y7Z0JBQ3hGLG1EQUFtRDtnQkFDbkQsa0RBQWtEO2dCQUNsRCxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLElBQUksU0FBUyxDQUFDO2dCQUN4RSxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxPQUFPO29CQUNWLE1BQU0sSUFBSSxLQUFLLENBQ2IsNkJBQTZCLFVBQVUsc0JBQXNCLFVBQVUsSUFBSSxDQUM1RSxDQUFDO2dCQUNKLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQzlCO1lBQ0QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7U0FDakM7SUFDSCxDQUFDLENBQUM7SUFDRixNQUFNLGdCQUFnQixHQUFHLENBQUMsU0FBaUIsRUFBRSxFQUFFO1FBQzdDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDeEUsQ0FBQyxDQUFDO0lBRUYsb0VBQW9FO0lBQ3BFLHVFQUF1RTtJQUN2RSw0Q0FBNEM7SUFDNUMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzNELElBQUksU0FBUyxFQUFFO1FBQ2IsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEQsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztLQUNuRDtTQUFNO1FBQ0wsS0FBSyxNQUFNLEdBQUcsSUFBSSxRQUFRLEVBQUU7WUFDMUIsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDMUIsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkMsOENBQThDO2dCQUM5QyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUM3QjtTQUNGO0tBQ0Y7SUFDRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUM7SUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFeEIsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLEVBQUU7UUFDbkMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUN2QyxJQUFJLGdCQUFnQixJQUFJLENBQUMsVUFBVSxJQUFJLGFBQWEsSUFBSSxVQUFVLElBQUksVUFBVSxDQUFDLEVBQUU7WUFDakYsZ0JBQWdCLEdBQUcsSUFBSyxDQUFDO1lBQ3pCLFFBQVE7aUJBQ0wsZ0JBQWdCLENBQUMsVUFBVSxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUM7aUJBQzFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEU7SUFDSCxDQUFDLENBQUM7SUFDRixRQUFRLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUNyRSx1QkFBdUIsRUFBRSxDQUFDO0FBQzVCLENBQUMsQ0FBQztBQUNBLHNCQUFzQjtBQUN0QixRQUFRLENBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBCdWlsZGVyLmlvLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0J1aWxkZXJJTy9xd2lrL2Jsb2IvbWFpbi9MSUNFTlNFXG4gKi9cblxuLyoqXG4gKiBAZmlsZW92ZXJ2aWV3IFRoaXMgaXMgcXdpay1sb2FkZXIuXG4gKlxuICogVGhpcyBjb2RlIHNob3VsZCBiZSBpbmNsdWRlZCB0b28gYm9vdHN0cmFwIHF3aWsgc3ViLWZyYW1ld29yay5cbiAqIFRoZSBwdXJwb3NlIG9mIHRoZSBxd2lrLWxvYWRlciBpcyB0byBsaXN0ZW4gZm9yIGJyb3dzZXIgZXZlbnRzLCBmaW5kXG4gKiBjb3JyZXNwb25kaW5nIGV2ZW50IGhhbmRsZXIsIGFuZCBsYXp5IGxvYWQgdGhlIGNvZGUgYXNzb2NpYXRlZCB3aXRoIHRoZVxuICogaGFuZGxlci5cbiAqXG4gKiBOT1RFOiBUaGlzIGZpbGUgcmVsaWVzIG9uIHNpZGUtZWZmZWN0LlxuICovXG5cbmludGVyZmFjZSBRQ29uZmlnIHtcbiAgcHJvdG9jb2w6IHtcbiAgICBbcHJvdG9jb2w6IHN0cmluZ106IHN0cmluZztcbiAgfTtcbn1cblxuLyoqXG4gKiBTZXQgdXAgZXZlbnQgbGlzdGVuaW5nIGZvciBicm93c2VyLlxuICpcbiAqIERldGVybWluZSBhbGwgb2YgdGhlIGJyb3dzZXIgZXZlbnRzIGFuZCBzZXQgdXAgZ2xvYmFsIGxpc3RlbmVycyBmb3IgdGhlbS5cbiAqIElmIGJyb3dzZXIgdHJpZ2dlcnMgZXZlbnQgc2VhcmNoIGZvciB0aGUgbGF6eSBsb2FkIFVSTCBhbmQgYGltcG9ydCgpYCBpdC5cbiAqXG4gKiBAcGFyYW0gZG9jdW1lbnQgLSBEb2N1bWVudCB0byB1c2UgZm9yIHNldHRpbmcgdXAgZ2xvYmFsIGxpc3RlbmVycywgYW5kIHRvXG4gKiAgICAgZGV0ZXJtaW5lIGFsbCBvZiB0aGUgYnJvd3NlciBzdXBwb3J0ZWQgZXZlbnRzLlxuICovXG4oKGRvY3VtZW50OiBEb2N1bWVudCkgPT4ge1xuICAvLyBXaGVuIGNsZWFyZWQgaXQgbWVhbnMgdGhhdCBgb246cS1pbml0YCBoYXMgYmVlbiBydW5cbiAgbGV0IHJlYWR5c3RhdGVjaGFuZ2UgPSAncmVhZHlzdGF0ZWNoYW5nZSc7XG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIHJlc3BvbnNpYmxlIGZvciBwcm9jZXNzaW5nIGJyb3dzZXIgZXZlbnRzLlxuICAgKlxuICAgKiBJZiBicm93c2VyIGVtaXRzIGFuIGV2ZW50LCB0aGUgYGV2ZW50UHJvY2Vzc29yYCB3YWxrcyB0aGUgRE9NIHRyZWVcbiAgICogbG9va2luZyBmb3IgY29ycmVzcG9uZGluZyBgKCR7ZXZlbnQudHlwZX0pYC4gSWYgZm91bmQgdGhlIGV2ZW50J3MgVVJMXG4gICAqIGlzIHBhcnNlZCBhbmQgYGltcG9ydCgpYGVkLlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgLSBCcm93c2VyIGV2ZW50LlxuICAgKi9cbiAgY29uc3QgcHJvY2Vzc0V2ZW50ID0gYXN5bmMgKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgIGNvbnN0IGV2ZW50TmFtZSA9ICdvbjonICsgZXZlbnQudHlwZTtcbiAgICBsZXQgZWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBFbGVtZW50IHwgbnVsbDtcbiAgICB3aGlsZSAoZWxlbWVudCAmJiBlbGVtZW50LmdldEF0dHJpYnV0ZSkge1xuICAgICAgbGV0IGV2ZW50VXJsID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoZXZlbnROYW1lKTtcbiAgICAgIGlmIChldmVudFVybCkge1xuICAgICAgICBldmVudFVybCA9IGV2ZW50VXJsLnJlcGxhY2UoL14oXFx3Kyk6LywgKF8sIHByb3RvY29sKSA9PiB7XG4gICAgICAgICAgcmV0dXJuICh3aW5kb3cgYXMgYW55IGFzIHsgUTogUUNvbmZpZyB9KS5RLnByb3RvY29sW3Byb3RvY29sXTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoZXZlbnRVcmwsIGRvY3VtZW50LmJhc2VVUkkpO1xuICAgICAgICBjb25zdCBpbXBvcnRQYXRoID0gdXJsLnBhdGhuYW1lICsgJy5qcyc7XG4gICAgICAgIGNvbnN0IG1vZHVsZSA9IGF3YWl0IGltcG9ydChpbXBvcnRQYXRoKTtcbiAgICAgICAgLy8gMSAtIG9wdGlvbmFsIGAjYCBhdCB0aGUgc3RhcnQuXG4gICAgICAgIC8vIDIgLSBjYXB0dXJlIGdyb3VwIGAkMWAgY29udGFpbmluZyB0aGUgZXhwb3J0IG5hbWUsIHN0b3BwaW5nIGF0IHRoZSBmaXJzdCBgP2AuXG4gICAgICAgIC8vIDMgLSB0aGUgcmVzdCBmcm9tIHRoZSBmaXJzdCBgP2AgdG8gdGhlIGVuZC5cbiAgICAgICAgLy8gVGhlIGhhc2ggc3RyaW5nIGlzIHJlcGxhY2VkIGJ5IHRoZSBjYXB0dXJlZCBncm91cCB0aGF0IGNvbnRhaW5zIG9ubHkgdGhlIGV4cG9ydCBuYW1lLlxuICAgICAgICAvLyBUaGlzIGlzIHRoZSBzYW1lIGFzIGluIHRoZSBgcUV4cG9ydCgpYCBmdW5jdGlvbi5cbiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExMTIyMjIyMjIzMzNcbiAgICAgICAgY29uc3QgZXhwb3J0TmFtZSA9IHVybC5oYXNoLnJlcGxhY2UoL14jPyhbXj9dKikuKiQvLCAnJDEnKSB8fCAnZGVmYXVsdCc7XG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSBtb2R1bGVbZXhwb3J0TmFtZV07XG4gICAgICAgIGlmICghaGFuZGxlcilcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgUVdJS0xPQURFUi1FUlJPUjogaW1wb3J0ICcke2ltcG9ydFBhdGh9JyBkb2VzIG5vdCBleHBvcnQgJyR7ZXhwb3J0TmFtZX0nLmBcbiAgICAgICAgICApO1xuICAgICAgICBoYW5kbGVyKGVsZW1lbnQsIGV2ZW50LCB1cmwpO1xuICAgICAgfVxuICAgICAgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICB9XG4gIH07XG4gIGNvbnN0IGFkZEV2ZW50TGlzdGVuZXIgPSAoZXZlbnROYW1lOiBzdHJpbmcpID0+IHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgcHJvY2Vzc0V2ZW50LCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gIH07XG5cbiAgLy8gU2V0IHVwIGxpc3RlbmVycy4gU3RhcnQgd2l0aCBgZG9jdW1lbnRgIGFuZCB3YWxrIHVwIHRoZSBwcm90b3R5cGVcbiAgLy8gaW5oZXJpdGFuY2Ugb24gbG9vayBmb3IgYG9uKmAgcHJvcGVydGllcy4gQXNzdW1lIHRoYXQgYG9uKmAgcHJvcGVydHlcbiAgLy8gY29ycmVzcG9uZHMgdG8gYW4gZXZlbnQgYnJvd3NlciBjYW4gZW1pdC5cbiAgY29uc3Qgc2NyaXB0VGFnID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc2NyaXB0W2V2ZW50c10nKTtcbiAgaWYgKHNjcmlwdFRhZykge1xuICAgIGNvbnN0IGV2ZW50cyA9IHNjcmlwdFRhZy5nZXRBdHRyaWJ1dGUoJ2V2ZW50cycpIHx8ICcnO1xuICAgIGV2ZW50cy5zcGxpdCgvW1xccyw7XSsvKS5mb3JFYWNoKGFkZEV2ZW50TGlzdGVuZXIpO1xuICB9IGVsc2Uge1xuICAgIGZvciAoY29uc3Qga2V5IGluIGRvY3VtZW50KSB7XG4gICAgICBpZiAoa2V5LmluZGV4T2YoJ29uJykgPT0gMCkge1xuICAgICAgICBjb25zdCBldmVudE5hbWUgPSBrZXkuc3Vic3RyaW5nKDIpO1xuICAgICAgICAvLyBGb3IgZWFjaCBgb24qYCBwcm9wZXJ0eSwgc2V0IHVwIGEgbGlzdGVuZXIuXG4gICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY29uc3QgcUluaXQgPSBgcS1pbml0YDtcbiAgYWRkRXZlbnRMaXN0ZW5lcihxSW5pdCk7XG5cbiAgY29uc3QgcHJvY2Vzc1JlYWR5U3RhdGVDaGFuZ2UgPSAoKSA9PiB7XG4gICAgY29uc3QgcmVhZHlTdGF0ZSA9IGRvY3VtZW50LnJlYWR5U3RhdGU7XG4gICAgaWYgKHJlYWR5c3RhdGVjaGFuZ2UgJiYgKHJlYWR5U3RhdGUgPT0gJ2ludGVyYWN0aXZlJyB8fCByZWFkeVN0YXRlID09ICdjb21wbGV0ZScpKSB7XG4gICAgICByZWFkeXN0YXRlY2hhbmdlID0gbnVsbCE7XG4gICAgICBkb2N1bWVudFxuICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnW29uXFxcXDpcXFxcJyArIHFJbml0ICsgJ10nKVxuICAgICAgICAuZm9yRWFjaCgodGFyZ2V0KSA9PiB0YXJnZXQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQocUluaXQpKSk7XG4gICAgfVxuICB9O1xuICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKHJlYWR5c3RhdGVjaGFuZ2UsIHByb2Nlc3NSZWFkeVN0YXRlQ2hhbmdlKTtcbiAgcHJvY2Vzc1JlYWR5U3RhdGVDaGFuZ2UoKTtcbn0pKFxuICAvLyBJbnZva2UgcXdpay1sb2FkZXIuXG4gIGRvY3VtZW50XG4pO1xuIl19
((e,t)=>{const r=(t,r,n)=>t?new URL(t.replace(/^(\w+):(\/)?/,((t,o,a)=>(r=e.querySelector(`[rel="q.protocol.${o}"]`),(n=r&&r.href)||c(o+" not defined"),n+(n.endsWith("/")?"":a||"")))),e.baseURI):0,n=(e,t,r)=>t[r=e.hash.replace(/^#?([^?]*).*$/,"$1")||"default"]||c(e+" does not export "+r),o=async(e,t,o)=>{for(t=e.target;t&&t.getAttribute;)(o=r(t.getAttribute("on:"+e.type)))&&n(o,await import(o.pathname+=".js"))(t,e,o),t=t.parentElement},a=t=>e.addEventListener(t,o,{capture:!0}),i="q-init",s=r=>{r=e.readyState,t||"interactive"!=r&&"complete"!=r||(t=1,e.querySelectorAll("[on\\:\\q-init]").forEach((e=>e.dispatchEvent(new CustomEvent(i)))))},c=e=>{throw Error("QWIK: "+e)};{const t=e.querySelector("script[events]");if(t)(t.getAttribute("events")||"").split(/[\s,;]+/).forEach(a);else for(const t in e)0==t.indexOf("on")&&a(t.substring(2))}a(i),e.addEventListener("readystatechange",s),s()})(document);

@@ -7,4 +7,2 @@ <br />

<br />
# `Qwik` DOM-Centric, Resumable Web-App Framework

@@ -21,9 +19,20 @@

## Blog Posts
- [A first look at Qwik - the HTML first framework](https://dev.to/mhevery/a-first-look-at-qwik-the-html-first-framework-af)
- [Death by Closure (and how Qwik solves it)](https://dev.to/mhevery/death-by-closure-and-how-qwik-solves-it-44jj)
## Development
- See [Developer.md](https://github.com/BuilderIO/qwik/blob/main/DEVELOPER.md) for more information on how to build Qwik from the source and contribute!
## Community
Join our [discord](https://discord.gg/JHVpZmqSs4) community.
- Ping us at [@QwikDev](https://twitter.com/QwikDev)
- Join our [Discord](https://discord.gg/JHVpZmqSs4) community.
<hr />
---
<p align="center">
Made with ❤️ by <a target="_blank" href="https://www.builder.io/">Builder.io</a>
</p>

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc