@rindo/core 3.1.0 → 3.2.1
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/cli/index.cjs +97 -41
- package/cli/index.js +97 -41
- package/cli/package.json +1 -1
- package/compiler/package.json +1 -1
- package/compiler/rindo.js +814 -747
- package/compiler/rindo.min.js +2 -2
- package/dev-server/client/index.js +1 -1
- package/dev-server/client/package.json +1 -1
- package/dev-server/connector.html +2 -2
- package/dev-server/index.js +1 -1
- package/dev-server/package.json +1 -1
- package/dev-server/server-process.js +5795 -268
- package/internal/app-data/package.json +1 -1
- package/internal/client/css-shim.js +1 -1
- package/internal/client/dom.js +1 -1
- package/internal/client/index.js +1 -1
- package/internal/client/package.json +1 -1
- package/internal/client/patch-browser.js +1 -1
- package/internal/client/patch-esm.js +1 -1
- package/internal/client/shadow-css.js +1 -1
- package/internal/hydrate/package.json +1 -1
- package/internal/package.json +1 -1
- package/internal/rindo-private.d.ts +47 -2
- package/internal/rindo-public-compiler.d.ts +54 -10
- package/internal/testing/index.js +5 -1
- package/internal/testing/package.json +1 -1
- package/mock-doc/index.cjs +7 -2
- package/mock-doc/index.d.ts +6 -1
- package/mock-doc/index.js +7 -2
- package/mock-doc/package.json +1 -1
- package/package.json +3 -3
- package/screenshot/package.json +1 -1
- package/sys/node/index.js +47 -41
- package/sys/node/package.json +1 -1
- package/sys/node/worker.js +1 -1
- package/testing/index.js +5 -4
- package/testing/jest-preset.js +1 -1
- package/testing/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*
|
|
2
|
-
Rindo Client Patch Esm v3.1
|
|
2
|
+
Rindo Client Patch Esm v3.2.1 | MIT Licensed | https://rindojs.web.app
|
|
3
3
|
*/
|
|
4
4
|
var __assign=undefined&&undefined.__assign||function(){return __assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var s in t=arguments[r])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e},__assign.apply(this,arguments)},StyleNode=function(){this.start=0,this.end=0,this.previous=null,this.parent=null,this.rules=null,this.parsedCssText="",this.cssText="",this.atRule=!1,this.type=0,this.keyframesName="",this.selector="",this.parsedSelector="";};function parse(e){return parseCss(lex(e=clean(e)),e)}function clean(e){return e.replace(RX.comments,"").replace(RX.port,"")}function lex(e){var t=new StyleNode;t.start=0,t.end=e.length;for(var r=t,n=0,s=e.length;n<s;n++)if(e[n]===OPEN_BRACE){r.rules||(r.rules=[]);var o=r,a=o.rules[o.rules.length-1]||null;(r=new StyleNode).start=n+1,r.parent=o,r.previous=a,o.rules.push(r);}else e[n]===CLOSE_BRACE&&(r.end=n+1,r=r.parent||t);return t}function parseCss(e,t){var r=t.substring(e.start,e.end-1);if(e.parsedCssText=e.cssText=r.trim(),e.parent){var n=e.previous?e.previous.end:e.parent.start;r=(r=(r=_expandUnicodeEscapes(r=t.substring(n,e.start-1))).replace(RX.multipleSpaces," ")).substring(r.lastIndexOf(";")+1);var s=e.parsedSelector=e.selector=r.trim();e.atRule=0===s.indexOf(AT_START),e.atRule?0===s.indexOf(MEDIA_START)?e.type=types.MEDIA_RULE:s.match(RX.keyframesRule)&&(e.type=types.KEYFRAMES_RULE,e.keyframesName=e.selector.split(RX.multipleSpaces).pop()):0===s.indexOf(VAR_START)?e.type=types.MIXIN_RULE:e.type=types.STYLE_RULE;}var o=e.rules;if(o)for(var a=0,i=o.length,l=void 0;a<i&&(l=o[a]);a++)parseCss(l,t);return e}function _expandUnicodeEscapes(e){return e.replace(/\\([0-9a-f]{1,6})\s/gi,(function(){for(var e=arguments[1],t=6-e.length;t--;)e="0"+e;return "\\"+e}))}var types={STYLE_RULE:1,KEYFRAMES_RULE:7,MEDIA_RULE:4,MIXIN_RULE:1e3},OPEN_BRACE="{",CLOSE_BRACE="}",RX={comments:/\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,port:/@import[^;]*;/gim,customProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,mixinProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,mixinApply:/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,varApply:/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,keyframesRule:/^@[^\s]*keyframes/,multipleSpaces:/\s+/g},VAR_START="--",MEDIA_START="@media",AT_START="@",VAR_USAGE_START=/\bvar\(/,VAR_ASSIGN_START=/\B--[\w-]+\s*:/,COMMENTS=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,TRAILING_LINES=/^[\t ]+\n/gm;function findRegex(e,t,r){e.lastIndex=0;var n=t.substring(r).match(e);if(n){var s=r+n.index;return {start:s,end:s+n[0].length}}return null}function resolveVar(e,t,r){return e[t]?e[t]:r?executeTemplate(r,e):""}function findVarEndIndex(e,t){for(var r=0,n=t;n<e.length;n++){var s=e[n];if("("===s)r++;else if(")"===s&&--r<=0)return n+1}return n}function parseVar(e,t){var r=findRegex(VAR_USAGE_START,e,t);if(!r)return null;var n=findVarEndIndex(e,r.start),s=e.substring(r.end,n-1).split(","),o=s[0],a=s.slice(1);return {start:r.start,end:n,propName:o.trim(),fallback:a.length>0?a.join(",").trim():void 0}}function compileVar(e,t,r){var n=parseVar(e,r);if(!n)return t.push(e.substring(r,e.length)),e.length;var s=n.propName,o=null!=n.fallback?compileTemplate(n.fallback):void 0;return t.push(e.substring(r,n.start),(function(e){return resolveVar(e,s,o)})),n.end}function executeTemplate(e,t){for(var r="",n=0;n<e.length;n++){var s=e[n];r+="string"==typeof s?s:s(t);}return r}function findEndValue(e,t){for(var r=!1,n=!1,s=t;s<e.length;s++){var o=e[s];if(r)n&&'"'===o&&(r=!1),n||"'"!==o||(r=!1);else if('"'===o)r=!0,n=!0;else if("'"===o)r=!0,n=!1;else {if(";"===o)return s+1;if("}"===o)return s}}return s}function removeCustomAssigns(e){for(var t="",r=0;;){var n=findRegex(VAR_ASSIGN_START,e,r),s=n?n.start:e.length;if(t+=e.substring(r,s),!n)break;r=findEndValue(e,s);}return t}function compileTemplate(e){var t=0;e=removeCustomAssigns(e=e.replace(COMMENTS,"")).replace(TRAILING_LINES,"");for(var r=[];t<e.length;)t=compileVar(e,r,t);return r}function resolveValues(e){var t={};e.forEach((function(e){e.declarations.forEach((function(e){t[e.prop]=e.value;}));}));for(var r={},n=Object.entries(t),s=function(e){var t=!1;if(n.forEach((function(e){var n=e[0],s=executeTemplate(e[1],r);s!==r[n]&&(r[n]=s,t=!0);})),!t)return "break"},o=0;o<10;o++){if("break"===s())break}return r}function getSelectors(e,t){if(void 0===t&&(t=0),!e.rules)return [];var r=[];return e.rules.filter((function(e){return e.type===types.STYLE_RULE})).forEach((function(e){var n=getDeclarations(e.cssText);n.length>0&&e.parsedSelector.split(",").forEach((function(e){e=e.trim(),r.push({selector:e,declarations:n,specificity:computeSpecificity(),nu:t});})),t++;})),r}function computeSpecificity(e){return 1}var IMPORTANT="!important",FIND_DECLARATIONS=/(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};{])+)|\{([^}]*)\}(?:(?=[;\s}])|$))/gm;function getDeclarations(e){for(var t,r=[];t=FIND_DECLARATIONS.exec(e.trim());){var n=normalizeValue(t[2]),s=n.value,o=n.important;r.push({prop:t[1].trim(),value:compileTemplate(s),important:o});}return r}function normalizeValue(e){var t=(e=e.replace(/\s+/gim," ").trim()).endsWith(IMPORTANT);return t&&(e=e.slice(0,e.length-IMPORTANT.length).trim()),{value:e,important:t}}function getActiveSelectors(e,t,r){var n=[],s=getScopesForElement(t,e);return r.forEach((function(e){return n.push(e)})),s.forEach((function(e){return n.push(e)})),sortSelectors(getSelectorsForScopes(n).filter((function(t){return matches(e,t.selector)})))}function getScopesForElement(e,t){for(var r=[];t;){var n=e.get(t);n&&r.push(n),t=t.parentElement;}return r}function getSelectorsForScopes(e){var t=[];return e.forEach((function(e){t.push.apply(t,e.selectors);})),t}function sortSelectors(e){return e.sort((function(e,t){return e.specificity===t.specificity?e.nu-t.nu:e.specificity-t.specificity})),e}function matches(e,t){return ":root"===t||"html"===t||e.matches(t)}function parseCSS(e){var t=parse(e),r=compileTemplate(e);return {original:e,template:r,selectors:getSelectors(t),usesCssVars:r.length>1}}function addGlobalStyle(e,t){if(e.some((function(e){return e.styleEl===t})))return !1;var r=parseCSS(t.textContent);return r.styleEl=t,e.push(r),!0}function updateGlobalScopes(e){var t=resolveValues(getSelectorsForScopes(e));e.forEach((function(e){e.usesCssVars&&(e.styleEl.textContent=executeTemplate(e.template,t));}));}function reScope(e,t){var r=e.template.map((function(r){return "string"==typeof r?replaceScope(r,e.scopeId,t):r})),n=e.selectors.map((function(r){return __assign(__assign({},r),{selector:replaceScope(r.selector,e.scopeId,t)})}));return __assign(__assign({},e),{template:r,selectors:n,scopeId:t})}function replaceScope(e,t,r){return e=replaceAll(e,"\\.".concat(t),".".concat(r))}function replaceAll(e,t,r){return e.replace(new RegExp(t,"g"),r)}function loadDocument(e,t){return loadDocumentStyles(e,t),loadDocumentLinks(e,t).then((function(){updateGlobalScopes(t);}))}function startWatcher(e,t){"undefined"!=typeof MutationObserver&&new MutationObserver((function(){loadDocumentStyles(e,t)&&updateGlobalScopes(t);})).observe(document.head,{childList:!0});}function loadDocumentLinks(e,t){for(var r=[],n=e.querySelectorAll('link[rel="stylesheet"][href]:not([data-no-shim])'),s=0;s<n.length;s++)r.push(addGlobalLink(e,t,n[s]));return Promise.all(r)}function loadDocumentStyles(e,t){return Array.from(e.querySelectorAll("style:not([data-styles]):not([data-no-shim])")).map((function(e){return addGlobalStyle(t,e)})).some(Boolean)}function addGlobalLink(e,t,r){var n=r.href;return fetch(n).then((function(e){return e.text()})).then((function(s){if(hasCssVariables(s)&&r.parentNode){hasRelativeUrls(s)&&(s=fixRelativeUrls(s,n));var o=e.createElement("style");o.setAttribute("data-styles",""),o.textContent=s,addGlobalStyle(t,o),r.parentNode.insertBefore(o,r),r.remove();}})).catch((function(e){console.error(e);}))}var CSS_VARIABLE_REGEXP=/[\s;{]--[-a-zA-Z0-9]+\s*:/m;function hasCssVariables(e){return e.indexOf("var(")>-1||CSS_VARIABLE_REGEXP.test(e)}var CSS_URL_REGEXP=/url[\s]*\([\s]*['"]?(?!(?:https?|data)\:|\/)([^\'\"\)]*)[\s]*['"]?\)[\s]*/gim;function hasRelativeUrls(e){return CSS_URL_REGEXP.lastIndex=0,CSS_URL_REGEXP.test(e)}function fixRelativeUrls(e,t){var r=t.replace(/[^/]*$/,"");return e.replace(CSS_URL_REGEXP,(function(e,t){var n=r+t;return e.replace(t,n)}))}var CustomStyle=function(){function e(e,t){this.win=e,this.doc=t,this.count=0,this.hostStyleMap=new WeakMap,this.hostScopeMap=new WeakMap,this.globalScopes=[],this.scopesMap=new Map,this.didInit=!1;}return e.prototype.i=function(){var e=this;return this.didInit||!this.win.requestAnimationFrame?Promise.resolve():(this.didInit=!0,new Promise((function(t){e.win.requestAnimationFrame((function(){startWatcher(e.doc,e.globalScopes),loadDocument(e.doc,e.globalScopes).then((function(){return t()}));}));})))},e.prototype.addLink=function(e){var t=this;return addGlobalLink(this.doc,this.globalScopes,e).then((function(){t.updateGlobal();}))},e.prototype.addGlobalStyle=function(e){addGlobalStyle(this.globalScopes,e)&&this.updateGlobal();},e.prototype.createHostStyle=function(e,t,r,n){if(this.hostScopeMap.has(e))throw new Error("host style already created");var s=this.registerHostTemplate(r,t,n),o=this.doc.createElement("style");return o.setAttribute("data-no-shim",""),s.usesCssVars?n?(o["s-sc"]=t="".concat(s.scopeId,"-").concat(this.count),o.textContent="/*needs update*/",this.hostStyleMap.set(e,o),this.hostScopeMap.set(e,reScope(s,t)),this.count++):(s.styleEl=o,s.usesCssVars||(o.textContent=executeTemplate(s.template,{})),this.globalScopes.push(s),this.updateGlobal(),this.hostScopeMap.set(e,s)):o.textContent=r,o},e.prototype.removeHost=function(e){var t=this.hostStyleMap.get(e);t&&t.remove(),this.hostStyleMap.delete(e),this.hostScopeMap.delete(e);},e.prototype.updateHost=function(e){var t=this.hostScopeMap.get(e);if(t&&t.usesCssVars&&t.isScoped){var r=this.hostStyleMap.get(e);if(r){var n=resolveValues(getActiveSelectors(e,this.hostScopeMap,this.globalScopes));r.textContent=executeTemplate(t.template,n);}}},e.prototype.updateGlobal=function(){updateGlobalScopes(this.globalScopes);},e.prototype.registerHostTemplate=function(e,t,r){var n=this.scopesMap.get(t);return n||((n=parseCSS(e)).scopeId=t,n.isScoped=r,this.scopesMap.set(t,n)),n},e}();!function(e){!e||e.__cssshim||e.CSS&&e.CSS.supports&&e.CSS.supports("color","var(--c)")||(e.__cssshim=new CustomStyle(e,e.document));}("undefined"!=typeof window&&window);
|
package/internal/client/dom.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
Rindo Client Patch Browser v3.1
|
|
2
|
+
Rindo Client Patch Browser v3.2.1 | MIT Licensed | https://rindojs.web.app
|
|
3
3
|
*/
|
|
4
4
|
(function(){
|
|
5
5
|
var aa=new Set("annotation-xml color-profile font-face font-face-src font-face-uri font-face-format font-face-name missing-glyph".split(" "));function g(a){var b=aa.has(a);a=/^[a-z][.0-9_a-z]*-[\-.0-9_a-z]*$/.test(a);return !b&&a}function l(a){var b=a.isConnected;if(void 0!==b)return b;for(;a&&!(a.__CE_isImportDocument||a instanceof Document);)a=a.parentNode||(window.ShadowRoot&&a instanceof ShadowRoot?a.host:void 0);return !(!a||!(a.__CE_isImportDocument||a instanceof Document))}
|
package/internal/client/index.js
CHANGED
|
@@ -19,7 +19,7 @@ let renderingRef = null;
|
|
|
19
19
|
let queueCongestion = 0;
|
|
20
20
|
let queuePending = false;
|
|
21
21
|
/*
|
|
22
|
-
Rindo Client Platform v3.1
|
|
22
|
+
Rindo Client Platform v3.2.1 | MIT Licensed | https://rindojs.web.app
|
|
23
23
|
*/
|
|
24
24
|
import { BUILD, NAMESPACE } from '@rindo/core/internal/app-data';
|
|
25
25
|
const Build = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rindo/core/internal/client",
|
|
3
|
-
"version": "3.1
|
|
3
|
+
"version": "3.2.1",
|
|
4
4
|
"description": "Rindo internal client platform to be imported by the Rindo Compiler and internal runtime. Breaking changes can and will happen at any time.",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"private": true,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
Rindo Client Patch Browser v3.1
|
|
2
|
+
Rindo Client Patch Browser v3.2.1 | MIT Licensed | https://rindojs.web.app
|
|
3
3
|
*/
|
|
4
4
|
import { BUILD, NAMESPACE } from '@rindo/core/internal/app-data';
|
|
5
5
|
import { consoleDevInfo, plt, win, doc, promiseResolve, H } from '@rindo/core';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
Rindo Client Patch Esm v3.1
|
|
2
|
+
Rindo Client Patch Esm v3.2.1 | MIT Licensed | https://rindojs.web.app
|
|
3
3
|
*/
|
|
4
4
|
import { BUILD } from '@rindo/core/internal/app-data';
|
|
5
5
|
import { CSS, plt, win, promiseResolve } from '@rindo/core';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rindo/core/internal/hydrate",
|
|
3
|
-
"version": "3.1
|
|
3
|
+
"version": "3.2.1",
|
|
4
4
|
"description": "Rindo internal hydrate platform to be imported by the Rindo Compiler. Breaking changes can and will happen at any time.",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"private": true
|
package/internal/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { InMemoryFileSystem } from '../compiler/sys/in-memory-fs';
|
|
2
|
-
import type { BuildEvents, BuildLog, BuildResultsComponentGraph, CompilerBuildResults, CompilerBuildStart, CompilerFsStats, CompilerRequestResponse, CompilerSystem, Config, CopyResults, DevServerConfig, DevServerEditor, Diagnostic, Logger, LoggerLineUpdater, LoggerTimeSpan, OptimizeCssInput, OptimizeCssOutput, OutputTargetWww, PageReloadStrategy, PrerenderConfig, StyleDoc, TaskCommand } from './rindo-public-compiler';
|
|
2
|
+
import type { BuildEvents, BuildLog, BuildResultsComponentGraph, CompilerBuildResults, CompilerBuildStart, CompilerFsStats, CompilerRequestResponse, CompilerSystem, Config, CopyResults, DevServerConfig, DevServerEditor, Diagnostic, Logger, LoggerLineUpdater, LoggerTimeSpan, OptimizeCssInput, OptimizeCssOutput, OutputTarget, OutputTargetWww, PageReloadStrategy, PrerenderConfig, StyleDoc, TaskCommand } from './rindo-public-compiler';
|
|
3
3
|
import type { ComponentInterface, ListenOptions, ListenTargetOptions, VNode, VNodeData } from './rindo-public-runtime';
|
|
4
4
|
export interface SourceMap {
|
|
5
5
|
file: string;
|
|
@@ -187,6 +187,9 @@ export interface BuildCtx {
|
|
|
187
187
|
indexBuildCount: number;
|
|
188
188
|
indexDoc: Document;
|
|
189
189
|
isRebuild: boolean;
|
|
190
|
+
/**
|
|
191
|
+
* A collection of Rindo's intermediate representation of components, tied to the current build
|
|
192
|
+
*/
|
|
190
193
|
moduleFiles: Module[];
|
|
191
194
|
packageJson: PackageJsonData;
|
|
192
195
|
pendingCopyTasks: Promise<CopyResults>[];
|
|
@@ -571,6 +574,9 @@ export interface CompilerCtx {
|
|
|
571
574
|
hasSuccessfulBuild: boolean;
|
|
572
575
|
isActivelyBuilding: boolean;
|
|
573
576
|
lastBuildResults: CompilerBuildResults;
|
|
577
|
+
/**
|
|
578
|
+
* A mapping of a file path to a Rindo {@link Module}
|
|
579
|
+
*/
|
|
574
580
|
moduleMap: ModuleMap;
|
|
575
581
|
nodeMap: NodeMap;
|
|
576
582
|
resolvedCollections: Set<string>;
|
|
@@ -639,6 +645,13 @@ export interface ComponentCompilerFeatures {
|
|
|
639
645
|
htmlTagNames: string[];
|
|
640
646
|
htmlParts: string[];
|
|
641
647
|
isUpdateable: boolean;
|
|
648
|
+
/**
|
|
649
|
+
* A plain component is one that doesn't have:
|
|
650
|
+
* - any members decorated with `@Prop()`, `@State()`, `@Element()`, `@Method()`
|
|
651
|
+
* - any methods decorated with `@Listen()`
|
|
652
|
+
* - any styles
|
|
653
|
+
* - any lifecycle methods, including `render()`
|
|
654
|
+
*/
|
|
642
655
|
isPlain: boolean;
|
|
643
656
|
potentialCmpRefs: string[];
|
|
644
657
|
}
|
|
@@ -709,9 +722,26 @@ export interface ComponentCompilerVirtualProperty {
|
|
|
709
722
|
docs: string;
|
|
710
723
|
}
|
|
711
724
|
export type ComponentCompilerPropertyType = 'any' | 'string' | 'boolean' | 'number' | 'unknown';
|
|
725
|
+
/**
|
|
726
|
+
* Information about the type of a Rindo-implemented component property, in
|
|
727
|
+
* particular a `@Prop()` or `@Event()`.
|
|
728
|
+
*/
|
|
712
729
|
export interface ComponentCompilerPropertyComplexType {
|
|
730
|
+
/**
|
|
731
|
+
* The string of the original type annotation in the Rindo source code
|
|
732
|
+
*/
|
|
713
733
|
original: string;
|
|
734
|
+
/**
|
|
735
|
+
* A 'resolved' type, where e.g. imported types have been resolved and inlined
|
|
736
|
+
*
|
|
737
|
+
* For instance, an annotation like `(foo: Foo) => string;` will be
|
|
738
|
+
* converted to `(foo: { foo: string }) => string;`.
|
|
739
|
+
*/
|
|
714
740
|
resolved: string;
|
|
741
|
+
/**
|
|
742
|
+
* A record of the types which were referenced in the assorted type
|
|
743
|
+
* annotation in the original source file.
|
|
744
|
+
*/
|
|
715
745
|
references: ComponentCompilerTypeReferences;
|
|
716
746
|
}
|
|
717
747
|
/**
|
|
@@ -1155,18 +1185,33 @@ export interface MinifyJsResult {
|
|
|
1155
1185
|
pos: number;
|
|
1156
1186
|
};
|
|
1157
1187
|
}
|
|
1188
|
+
/**
|
|
1189
|
+
* A mapping from a TypeScript or JavaScript source file path on disk, to a Rindo {@link Module}.
|
|
1190
|
+
*
|
|
1191
|
+
* It is advised that the key (path) be normalized before storing/retrieving the `Module` to avoid unnecessary lookup
|
|
1192
|
+
* failures.
|
|
1193
|
+
*/
|
|
1158
1194
|
export type ModuleMap = Map<string, Module>;
|
|
1159
1195
|
/**
|
|
1160
1196
|
* Rindo's Intermediate Representation (IR) of a module, bundling together
|
|
1161
1197
|
* various pieces of information like the classes declared within it, the path
|
|
1162
1198
|
* to the original source file, HTML tag names defined in the file, and so on.
|
|
1163
1199
|
*
|
|
1164
|
-
* Note that this gets serialized/parsed as JSON and therefore cannot
|
|
1200
|
+
* Note that this gets serialized/parsed as JSON and therefore cannot contain a
|
|
1165
1201
|
* `Map` or a `Set`.
|
|
1166
1202
|
*/
|
|
1167
1203
|
export interface Module {
|
|
1168
1204
|
cmps: ComponentCompilerMeta[];
|
|
1205
|
+
/**
|
|
1206
|
+
* A collection of modules that a component will need. The modules in this list must have import statements generated
|
|
1207
|
+
* in order for the component to function.
|
|
1208
|
+
*/
|
|
1169
1209
|
coreRuntimeApis: string[];
|
|
1210
|
+
/**
|
|
1211
|
+
* A collection of modules that a component will need for a specific output target. The modules in this list must
|
|
1212
|
+
* have import statements generated in order for the component to function, but only for a specific output target.
|
|
1213
|
+
*/
|
|
1214
|
+
outputTargetCoreRuntimeApis: Partial<Record<OutputTarget['type'], string[]>>;
|
|
1170
1215
|
collectionName: string;
|
|
1171
1216
|
dtsFilePath: string;
|
|
1172
1217
|
excludeFromCollection: boolean;
|
|
@@ -272,8 +272,17 @@ export interface ConfigExtras {
|
|
|
272
272
|
* loading components when using a bundler such as Wite or Parcel. Setting this flag to `true` will change how Rindo
|
|
273
273
|
* lazily loads components in a way that works with additional bundlers. Setting this flag to `true` will increase
|
|
274
274
|
* the size of the compiled output. Defaults to `false`.
|
|
275
|
+
* @deprecated This flag has been deprecated in favor of `enableImportInjection`, which provides the same
|
|
276
|
+
* functionality. `experimentalImportInjection` will be removed in a future major version of Rindo.
|
|
275
277
|
*/
|
|
276
278
|
experimentalImportInjection?: boolean;
|
|
279
|
+
/**
|
|
280
|
+
* Projects that use a Rindo library built using the `dist` output target may have trouble lazily
|
|
281
|
+
* loading components when using a bundler such as Vite or Parcel. Setting this flag to `true` will change how Rindo
|
|
282
|
+
* lazily loads components in a way that works with additional bundlers. Setting this flag to `true` will increase
|
|
283
|
+
* the size of the compiled output. Defaults to `false`.
|
|
284
|
+
*/
|
|
285
|
+
enableImportInjection?: boolean;
|
|
277
286
|
/**
|
|
278
287
|
* Dispatches component lifecycle events. Mainly used for testing. Defaults to `false`.
|
|
279
288
|
*/
|
|
@@ -1082,7 +1091,23 @@ export interface CompilerSystem {
|
|
|
1082
1091
|
statSync(p: string): CompilerFsStats;
|
|
1083
1092
|
tmpDirSync(): string;
|
|
1084
1093
|
watchDirectory?(p: string, callback: CompilerFileWatcherCallback, recursive?: boolean): CompilerFileWatcher;
|
|
1085
|
-
|
|
1094
|
+
/**
|
|
1095
|
+
* A `watchFile` implementation in order to hook into the rest of the {@link CompilerSystem} implementation that is
|
|
1096
|
+
* used when running Rindo's compiler in "watch mode".
|
|
1097
|
+
*
|
|
1098
|
+
* It is analogous to TypeScript's `watchFile` implementation.
|
|
1099
|
+
*
|
|
1100
|
+
* Note, this function may be called for full builds of Rindo projects by the TypeScript compiler. It should not
|
|
1101
|
+
* assume that it will only be called in watch mode.
|
|
1102
|
+
*
|
|
1103
|
+
* This function should not perform any file watcher registration itself. Each `path` provided to it when called
|
|
1104
|
+
* should already have been registered as a file to watch.
|
|
1105
|
+
*
|
|
1106
|
+
* @param path the path to the file that is being watched
|
|
1107
|
+
* @param callback a callback to invoke when a file that is being watched has changed in some way
|
|
1108
|
+
* @returns an object with a method for unhooking the file watcher from the system
|
|
1109
|
+
*/
|
|
1110
|
+
watchFile?(path: string, callback: CompilerFileWatcherCallback): CompilerFileWatcher;
|
|
1086
1111
|
/**
|
|
1087
1112
|
* How many milliseconds to wait after a change before calling watch callbacks.
|
|
1088
1113
|
*/
|
|
@@ -1259,7 +1284,16 @@ export interface CompilerBuildStart {
|
|
|
1259
1284
|
buildId: number;
|
|
1260
1285
|
timestamp: string;
|
|
1261
1286
|
}
|
|
1287
|
+
/**
|
|
1288
|
+
* A type describing a function to call when an event is emitted by a file watcher
|
|
1289
|
+
* @param fileName the path of the file tied to event
|
|
1290
|
+
* @param eventKind a variant describing the type of event that was emitter (added, edited, etc.)
|
|
1291
|
+
*/
|
|
1262
1292
|
export type CompilerFileWatcherCallback = (fileName: string, eventKind: CompilerFileWatcherEvent) => void;
|
|
1293
|
+
/**
|
|
1294
|
+
* A type describing the different types of events that Rindo expects may happen when a file being watched is altered
|
|
1295
|
+
* in some way
|
|
1296
|
+
*/
|
|
1263
1297
|
export type CompilerFileWatcherEvent = CompilerEventFileAdd | CompilerEventFileDelete | CompilerEventFileUpdate | CompilerEventDirAdd | CompilerEventDirDelete;
|
|
1264
1298
|
export type CompilerEventName = CompilerEventFsChange | CompilerEventFileUpdate | CompilerEventFileAdd | CompilerEventFileDelete | CompilerEventDirAdd | CompilerEventDirDelete | CompilerEventBuildStart | CompilerEventBuildFinish | CompilerEventBuildNoChange | CompilerEventBuildLog;
|
|
1265
1299
|
export type CompilerEventFsChange = 'fsChange';
|
|
@@ -1862,6 +1896,12 @@ export interface OutputTargetDocsReadme extends OutputTargetBase {
|
|
|
1862
1896
|
export interface OutputTargetDocsJson extends OutputTargetBase {
|
|
1863
1897
|
type: 'docs-json';
|
|
1864
1898
|
file: string;
|
|
1899
|
+
/**
|
|
1900
|
+
* Set an optional file path where Rindo should write a `d.ts` file to disk
|
|
1901
|
+
* at build-time containing type declarations for {@link JsonDocs} and related
|
|
1902
|
+
* interfaces. If this is omitted or set to `null` Rindo will not write such
|
|
1903
|
+
* a file.
|
|
1904
|
+
*/
|
|
1865
1905
|
typesFile?: string | null;
|
|
1866
1906
|
strict?: boolean;
|
|
1867
1907
|
}
|
|
@@ -1924,14 +1964,6 @@ export interface OutputTargetDistCustomElements extends OutputTargetBaseNext {
|
|
|
1924
1964
|
*/
|
|
1925
1965
|
customElementsExportBehavior?: CustomElementsExportBehavior;
|
|
1926
1966
|
}
|
|
1927
|
-
export interface OutputTargetDistCustomElementsBundle extends OutputTargetBaseNext {
|
|
1928
|
-
type: 'dist-custom-elements-bundle';
|
|
1929
|
-
empty?: boolean;
|
|
1930
|
-
externalRuntime?: boolean;
|
|
1931
|
-
copy?: CopyTask[];
|
|
1932
|
-
includeGlobalScripts?: boolean;
|
|
1933
|
-
minify?: boolean;
|
|
1934
|
-
}
|
|
1935
1967
|
/**
|
|
1936
1968
|
* The base type for output targets. All output targets should extend this base type.
|
|
1937
1969
|
*/
|
|
@@ -2021,7 +2053,7 @@ export interface OutputTargetWww extends OutputTargetBase {
|
|
|
2021
2053
|
serviceWorker?: ServiceWorkerConfig | null | false;
|
|
2022
2054
|
appDir?: string;
|
|
2023
2055
|
}
|
|
2024
|
-
export type OutputTarget = OutputTargetCopy | OutputTargetCustom | OutputTargetDist | OutputTargetDistCollection | OutputTargetDistCustomElements |
|
|
2056
|
+
export type OutputTarget = OutputTargetCopy | OutputTargetCustom | OutputTargetDist | OutputTargetDistCollection | OutputTargetDistCustomElements | OutputTargetDistLazy | OutputTargetDistGlobalStyles | OutputTargetDistLazyLoader | OutputTargetDocsJson | OutputTargetDocsCustom | OutputTargetDocsReadme | OutputTargetDocsVscode | OutputTargetWww | OutputTargetHydrate | OutputTargetStats | OutputTargetDistTypes;
|
|
2025
2057
|
export interface ServiceWorkerConfig {
|
|
2026
2058
|
unregister?: boolean;
|
|
2027
2059
|
swDest?: string;
|
|
@@ -2180,9 +2212,17 @@ export interface LazyRequire {
|
|
|
2180
2212
|
require(fromDir: string, moduleId: string): any;
|
|
2181
2213
|
getModulePath(fromDir: string, moduleId: string): string;
|
|
2182
2214
|
}
|
|
2215
|
+
/**
|
|
2216
|
+
* @deprecated This interface is no longer used by Rindo
|
|
2217
|
+
* TODO: Remove this interface
|
|
2218
|
+
*/
|
|
2183
2219
|
export interface FsWatcherItem {
|
|
2184
2220
|
close(): void;
|
|
2185
2221
|
}
|
|
2222
|
+
/**
|
|
2223
|
+
* @deprecated This interface is no longer used by Rindo
|
|
2224
|
+
* TODO: Remove this interface
|
|
2225
|
+
*/
|
|
2186
2226
|
export interface MakeDirectoryOptions {
|
|
2187
2227
|
/**
|
|
2188
2228
|
* Indicates whether parent folders should be created.
|
|
@@ -2195,6 +2235,10 @@ export interface MakeDirectoryOptions {
|
|
|
2195
2235
|
*/
|
|
2196
2236
|
mode?: number;
|
|
2197
2237
|
}
|
|
2238
|
+
/**
|
|
2239
|
+
* @deprecated This interface is no longer used by Rindo
|
|
2240
|
+
* TODO: Remove this interface
|
|
2241
|
+
*/
|
|
2198
2242
|
export interface FsStats {
|
|
2199
2243
|
isFile(): boolean;
|
|
2200
2244
|
isDirectory(): boolean;
|
|
@@ -93,7 +93,11 @@ function stopAutoApplyChanges() {
|
|
|
93
93
|
isAutoApplyingChanges = !1, autoApplyTimer && (clearTimeout(autoApplyTimer), autoApplyTimer = void 0);
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
const mockDoc = require("@rindo/core/mock-doc"), appData = require("@rindo/core/internal/app-data")
|
|
96
|
+
const mockDoc = require("@rindo/core/mock-doc"), appData = require("@rindo/core/internal/app-data");
|
|
97
|
+
|
|
98
|
+
require("path");
|
|
99
|
+
|
|
100
|
+
const styles = new Map, modeResolutionChain = [], cstrs = new Map, queuedTicks = [], queuedWriteTasks = [], queuedReadTasks = [], moduleLoaded = new Map, queuedLoadModules = [], caughtErrors = [], hostRefs = new Map, getAssetPath = e => {
|
|
97
101
|
const t = new URL(e, plt.$resourcesUrl$);
|
|
98
102
|
return t.origin !== win.location.origin ? t.href : t.pathname;
|
|
99
103
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rindo/core/internal/testing",
|
|
3
|
-
"version": "3.1
|
|
3
|
+
"version": "3.2.1",
|
|
4
4
|
"description": "Rindo internal testing platform to be imported by the Rindo Compiler. Breaking changes can and will happen at any time.",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"private": true
|
package/mock-doc/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
Rindo Mock Doc (CommonJS) v3.1
|
|
2
|
+
Rindo Mock Doc (CommonJS) v3.2.1 | MIT Licensed | https://rindojs.web.app
|
|
3
3
|
*/
|
|
4
4
|
var mockDoc = (function(exports) {
|
|
5
5
|
'use strict';
|
|
@@ -3997,9 +3997,14 @@ class MockWindow {
|
|
|
3997
3997
|
this.__location = val;
|
|
3998
3998
|
}
|
|
3999
3999
|
}
|
|
4000
|
-
matchMedia() {
|
|
4000
|
+
matchMedia(media) {
|
|
4001
4001
|
return {
|
|
4002
|
+
media,
|
|
4002
4003
|
matches: false,
|
|
4004
|
+
addEventListener,
|
|
4005
|
+
dispatchEvent,
|
|
4006
|
+
removeEventListener,
|
|
4007
|
+
onchange: null,
|
|
4003
4008
|
};
|
|
4004
4009
|
}
|
|
4005
4010
|
get Node() {
|
package/mock-doc/index.d.ts
CHANGED
|
@@ -890,8 +890,13 @@ declare class MockWindow {
|
|
|
890
890
|
set localStorage(locStorage: MockStorage);
|
|
891
891
|
get location(): MockLocation;
|
|
892
892
|
set location(val: Location | string);
|
|
893
|
-
matchMedia(): {
|
|
893
|
+
matchMedia(media: string): {
|
|
894
|
+
media: string;
|
|
894
895
|
matches: boolean;
|
|
896
|
+
addEventListener: typeof addEventListener;
|
|
897
|
+
dispatchEvent: typeof dispatchEvent;
|
|
898
|
+
removeEventListener: typeof removeEventListener;
|
|
899
|
+
onchange: (this: MediaQueryList, ev: MediaQueryListEvent) => any;
|
|
895
900
|
};
|
|
896
901
|
get Node(): any;
|
|
897
902
|
get NodeList(): any;
|
package/mock-doc/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
Rindo Mock Doc v3.1
|
|
2
|
+
Rindo Mock Doc v3.2.1 | MIT Licensed | https://rindojs.web.app
|
|
3
3
|
*/
|
|
4
4
|
const CONTENT_REF_ID = 'r';
|
|
5
5
|
const ORG_LOCATION_ID = 'o';
|
|
@@ -3994,9 +3994,14 @@ class MockWindow {
|
|
|
3994
3994
|
this.__location = val;
|
|
3995
3995
|
}
|
|
3996
3996
|
}
|
|
3997
|
-
matchMedia() {
|
|
3997
|
+
matchMedia(media) {
|
|
3998
3998
|
return {
|
|
3999
|
+
media,
|
|
3999
4000
|
matches: false,
|
|
4001
|
+
addEventListener,
|
|
4002
|
+
dispatchEvent,
|
|
4003
|
+
removeEventListener,
|
|
4004
|
+
onchange: null,
|
|
4000
4005
|
};
|
|
4001
4006
|
}
|
|
4002
4007
|
get Node() {
|
package/mock-doc/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rindo/core",
|
|
3
|
-
"version": "3.1
|
|
3
|
+
"version": "3.2.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "./internal/rindo-core/index.cjs",
|
|
6
6
|
"module": "./internal/rindo-core/index.js",
|
|
@@ -91,12 +91,12 @@
|
|
|
91
91
|
"jest-cli": "^27.4.5",
|
|
92
92
|
"jest-environment-node": "^27.4.4",
|
|
93
93
|
"listr": "^0.14.3",
|
|
94
|
-
"magic-string": "^0.
|
|
94
|
+
"magic-string": "^0.30.0",
|
|
95
95
|
"merge-source-map": "^1.1.0",
|
|
96
96
|
"mime-db": "^1.46.0",
|
|
97
97
|
"minimatch": "5.1.2",
|
|
98
98
|
"node-fetch": "2.6.7",
|
|
99
|
-
"open": "^
|
|
99
|
+
"open": "^9.0.0",
|
|
100
100
|
"open-in-editor": "2.2.0",
|
|
101
101
|
"parse5": "7.1.2",
|
|
102
102
|
"path-browserify": "^1.0.1",
|