@rindo/core 4.20.0 → 4.21.0

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.
@@ -1,5 +1,5 @@
1
1
  /*
2
- Rindo Hydrate Platform v4.20.0 | MIT Licensed | https://rindojs.web.app
2
+ Rindo Hydrate Platform v4.21.0 | MIT Licensed | https://rindojs.web.app
3
3
  */
4
4
  var __defProp = Object.defineProperty;
5
5
  var __export = (target, all) => {
@@ -642,17 +642,19 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
642
642
  if ((BUILD7.hydrateServerSide || BUILD7.hotModuleReplacement) && cmpMeta.$flags$ & 2 /* scopedCssEncapsulation */) {
643
643
  styleElm.setAttribute(HYDRATED_STYLE_ID, scopeId2);
644
644
  }
645
- const injectStyle = (
646
- /**
647
- * we render a scoped component
648
- */
649
- !(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) || /**
650
- * we are using shadow dom and render the style tag within the shadowRoot
651
- */
652
- cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */ && styleContainerNode.nodeName !== "HEAD"
653
- );
654
- if (injectStyle) {
655
- styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector("link"));
645
+ if (!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */)) {
646
+ if (styleContainerNode.nodeName === "HEAD") {
647
+ const preconnectLinks = styleContainerNode.querySelectorAll("link[rel=preconnect]");
648
+ const referenceNode2 = preconnectLinks.length > 0 ? preconnectLinks[preconnectLinks.length - 1].nextSibling : document.querySelector("style");
649
+ styleContainerNode.insertBefore(styleElm, referenceNode2);
650
+ } else if ("host" in styleContainerNode) {
651
+ styleContainerNode.prepend(styleElm, null);
652
+ } else {
653
+ styleContainerNode.append(styleElm);
654
+ }
655
+ }
656
+ if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */ && styleContainerNode.nodeName !== "HEAD") {
657
+ styleContainerNode.insertBefore(styleElm, null);
656
658
  }
657
659
  }
658
660
  if (cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {
@@ -760,7 +762,11 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
760
762
  if (memberName === "list") {
761
763
  isProp = false;
762
764
  } else if (oldValue == null || elm[memberName] != n) {
763
- elm[memberName] = n;
765
+ if (typeof elm.__lookupSetter__(memberName) === "function") {
766
+ elm[memberName] = n;
767
+ } else {
768
+ elm.setAttribute(memberName, n);
769
+ }
764
770
  }
765
771
  } else {
766
772
  elm[memberName] = newValue;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rindo/core/internal/hydrate",
3
- "version": "4.20.0",
3
+ "version": "4.21.0",
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
@@ -137,10 +137,10 @@ export interface SerializeDocumentOptions extends HydrateDocumentOptions {
137
137
  */
138
138
  removeHtmlComments?: boolean;
139
139
  /**
140
- * If set to `false` Rindo will ignore the fact that a component has a `shadow: true`
141
- * flag and serializes it as a scoped component. If set to `true` the component will
142
- * be rendered within a Declarative Shadow DOM.
143
- * @default false
140
+ * If set to `true` the component will be rendered within a Declarative Shadow DOM.
141
+ * If set to `false` Rindo will ignore the contents of the shadow root and render the
142
+ * element as given in provided template.
143
+ * @default true
144
144
  */
145
145
  serializeShadowRoot?: boolean;
146
146
  /**
@@ -1,5 +1,5 @@
1
1
  /*
2
- Rindo Hydrate Runner v4.20.0 | MIT Licensed | https://rindojs.web.app
2
+ Rindo Hydrate Runner v4.21.0 | MIT Licensed | https://rindojs.web.app
3
3
  */
4
4
  var __defProp = Object.defineProperty;
5
5
  var __export = (target, all) => {
@@ -11980,6 +11980,11 @@ patchPropAttributes(
11980
11980
  type: "submit"
11981
11981
  }
11982
11982
  );
11983
+ Object.defineProperty(MockButtonElement.prototype, "form", {
11984
+ get() {
11985
+ return this.hasAttribute("form") ? this.getAttribute("form") : null;
11986
+ }
11987
+ });
11983
11988
  var MockImageElement = class extends MockHTMLElement {
11984
11989
  constructor(ownerDocument) {
11985
11990
  super(ownerDocument, "img");
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rindo/core/internal",
3
- "version": "4.20.0",
3
+ "version": "4.21.0",
4
4
  "description": "Rindo internals only to be imported by the Rindo Compiler. Breaking changes can and will happen at any time.",
5
5
  "main": "./index.js",
6
6
  "types": "./index.d.ts",
@@ -847,10 +847,10 @@ export interface SerializeDocumentOptions extends HydrateDocumentOptions {
847
847
  */
848
848
  removeHtmlComments?: boolean;
849
849
  /**
850
- * If set to `false` Rindo will ignore the fact that a component has a `shadow: true`
851
- * flag and serializes it as a scoped component. If set to `true` the component will
852
- * be rendered within a Declarative Shadow DOM.
853
- * @default false
850
+ * If set to `true` the component will be rendered within a Declarative Shadow DOM.
851
+ * If set to `false` Rindo will ignore the contents of the shadow root and render the
852
+ * element as given in provided template.
853
+ * @default true
854
854
  */
855
855
  serializeShadowRoot?: boolean;
856
856
  /**
@@ -1504,6 +1504,11 @@ export interface CopyTask {
1504
1504
  * the output target for which this copy operation is configured.
1505
1505
  */
1506
1506
  dest?: string;
1507
+ /**
1508
+ * An optional array of glob patterns to exclude from the copy operation.
1509
+ * @default ['**\/__mocks__/**', '**\/__fixtures__/**', '**\/dist/**', '**\/.{idea,git,cache,output,temp}/**', '**\/.ds_store', '**\/.gitignore', '**\/desktop.ini', '**\/thumbs.db']
1510
+ */
1511
+ ignore?: string[];
1507
1512
  /**
1508
1513
  * Whether or not Rindo should issue warnings if it cannot find the
1509
1514
  * specified source files or directories. Defaults to `false`.
@@ -1014,17 +1014,19 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
1014
1014
  if ((import_app_data7.BUILD.hydrateServerSide || import_app_data7.BUILD.hotModuleReplacement) && cmpMeta.$flags$ & 2 /* scopedCssEncapsulation */) {
1015
1015
  styleElm.setAttribute(HYDRATED_STYLE_ID, scopeId2);
1016
1016
  }
1017
- const injectStyle = (
1018
- /**
1019
- * we render a scoped component
1020
- */
1021
- !(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) || /**
1022
- * we are using shadow dom and render the style tag within the shadowRoot
1023
- */
1024
- cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */ && styleContainerNode.nodeName !== "HEAD"
1025
- );
1026
- if (injectStyle) {
1027
- styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector("link"));
1017
+ if (!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */)) {
1018
+ if (styleContainerNode.nodeName === "HEAD") {
1019
+ const preconnectLinks = styleContainerNode.querySelectorAll("link[rel=preconnect]");
1020
+ const referenceNode2 = preconnectLinks.length > 0 ? preconnectLinks[preconnectLinks.length - 1].nextSibling : document.querySelector("style");
1021
+ styleContainerNode.insertBefore(styleElm, referenceNode2);
1022
+ } else if ("host" in styleContainerNode) {
1023
+ styleContainerNode.prepend(styleElm, null);
1024
+ } else {
1025
+ styleContainerNode.append(styleElm);
1026
+ }
1027
+ }
1028
+ if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */ && styleContainerNode.nodeName !== "HEAD") {
1029
+ styleContainerNode.insertBefore(styleElm, null);
1028
1030
  }
1029
1031
  }
1030
1032
  if (cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {
@@ -1132,7 +1134,11 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
1132
1134
  if (memberName === "list") {
1133
1135
  isProp = false;
1134
1136
  } else if (oldValue == null || elm[memberName] != n) {
1135
- elm[memberName] = n;
1137
+ if (typeof elm.__lookupSetter__(memberName) === "function") {
1138
+ elm[memberName] = n;
1139
+ } else {
1140
+ elm.setAttribute(memberName, n);
1141
+ }
1136
1142
  }
1137
1143
  } else {
1138
1144
  elm[memberName] = newValue;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rindo/core/internal/testing",
3
- "version": "4.20.0",
3
+ "version": "4.21.0",
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
@@ -1,5 +1,5 @@
1
1
  /*!
2
- Rindo Mock Doc (CommonJS) v4.20.0 | MIT Licensed | https://rindojs.web.app
2
+ Rindo Mock Doc (CommonJS) v4.21.0 | MIT Licensed | https://rindojs.web.app
3
3
  */
4
4
  "use strict";
5
5
  var __defProp = Object.defineProperty;
@@ -7853,6 +7853,11 @@ patchPropAttributes(
7853
7853
  type: "submit"
7854
7854
  }
7855
7855
  );
7856
+ Object.defineProperty(MockButtonElement.prototype, "form", {
7857
+ get() {
7858
+ return this.hasAttribute("form") ? this.getAttribute("form") : null;
7859
+ }
7860
+ });
7856
7861
  var MockImageElement = class extends MockHTMLElement {
7857
7862
  constructor(ownerDocument) {
7858
7863
  super(ownerDocument, "img");
package/mock-doc/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- Rindo Mock Doc v4.20.0 | MIT Licensed | https://rindojs.web.app
2
+ Rindo Mock Doc v4.21.0 | MIT Licensed | https://rindojs.web.app
3
3
  */
4
4
 
5
5
  // src/runtime/runtime-constants.ts
@@ -7800,6 +7800,11 @@ patchPropAttributes(
7800
7800
  type: "submit"
7801
7801
  }
7802
7802
  );
7803
+ Object.defineProperty(MockButtonElement.prototype, "form", {
7804
+ get() {
7805
+ return this.hasAttribute("form") ? this.getAttribute("form") : null;
7806
+ }
7807
+ });
7803
7808
  var MockImageElement = class extends MockHTMLElement {
7804
7809
  constructor(ownerDocument) {
7805
7810
  super(ownerDocument, "img");
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rindo/core/mock-doc",
3
- "version": "4.20.0",
3
+ "version": "4.21.0",
4
4
  "description": "Mock window, document and DOM outside of a browser environment.",
5
5
  "main": "./index.cjs",
6
6
  "module": "./index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rindo/core",
3
- "version": "4.20.0",
3
+ "version": "4.21.0",
4
4
  "license": "MIT",
5
5
  "main": "./internal/rindo-core/index.cjs",
6
6
  "module": "./internal/rindo-core/index.js",
@@ -96,11 +96,11 @@
96
96
  "build": "npm run clean && npm run tsc.prod && npm run ts scripts/index.ts -- --prod --ci",
97
97
  "build.watch": "npm run build -- --watch",
98
98
  "build.updateSelectorEngine": "npm run ts scripts/updateSelectorEngine.ts",
99
- "clean": "rm -rf build/ cli/ compiler/ dev-server/ internal/ mock-doc/ sys/ testing/ && npm run clean:scripts && npm run clean.screenshots",
100
- "clean.screenshots": "rm -rf test/end-to-end/screenshot/builds test/end-to-end/screenshot/images",
101
- "clean:scripts": "rm -rf scripts/build",
99
+ "clean": "rimraf build/ cli/ compiler/ dev-server/ internal/ mock-doc/ sys/ testing/ && npm run clean:scripts && npm run clean.screenshots",
100
+ "clean.screenshots": "rimraf test/end-to-end/screenshot/builds test/end-to-end/screenshot/images",
101
+ "clean:scripts": "rimraf scripts/build",
102
102
  "lint": "eslint 'bin/*' 'scripts/*.ts' 'scripts/**/*.ts' 'src/*.ts' 'src/**/*.ts' 'src/**/*.tsx'",
103
- "install.jest": "bash ./src/testing/jest/install-dependencies.sh",
103
+ "install.jest": "npx tsx ./src/testing/jest/install-dependencies.mts",
104
104
  "prettier": "npm run prettier.base -- --write",
105
105
  "prettier.base": "prettier --cache \"./({bin,scripts,src,test}/**/*.{ts,tsx,js,jsx})|bin/rindo|.github/(**/)?*.(yml|yaml)|*.js\"",
106
106
  "prettier.dry-run": "npm run prettier.base -- --list-different",
@@ -109,6 +109,7 @@
109
109
  "test": "node --experimental-vm-modules ./node_modules/jest/bin/jest.js --coverage",
110
110
  "test.analysis": "cd test && npm run analysis.build-and-analyze",
111
111
  "test.bundlers": "cd test && npm run bundlers",
112
+ "test.copytask": "cd test/copy-task && npm ci && npm run test",
112
113
  "test.dist": "npm run ts scripts/index.ts -- --validate-build",
113
114
  "test.end-to-end": "cd test/end-to-end && npm ci && npm test && npm run test.dist",
114
115
  "test.jest": "node --experimental-vm-modules ./node_modules/jest/bin/jest.js",
@@ -152,7 +153,7 @@
152
153
  "eslint": "^8.23.1",
153
154
  "eslint-config-prettier": "^9.0.0",
154
155
  "eslint-plugin-jest": "^28.0.0",
155
- "eslint-plugin-jsdoc": "^48.0.0",
156
+ "eslint-plugin-jsdoc": "^50.0.0",
156
157
  "eslint-plugin-simple-import-sort": "^12.0.0",
157
158
  "execa": "9.3.0",
158
159
  "exit": "^0.1.2",
@@ -177,6 +178,7 @@
177
178
  "prettier": "3.3.1",
178
179
  "prompts": "2.4.2",
179
180
  "puppeteer": "^21.0.0",
181
+ "rimraf": "^6.0.1",
180
182
  "rollup": "2.56.3",
181
183
  "semver": "^7.3.7",
182
184
  "terser": "5.31.1",
@@ -1,5 +1,5 @@
1
1
  /*
2
- Rindo Screenshot v4.20.0 | MIT Licensed | https://rindojs.web.app
2
+ Rindo Screenshot v4.21.0 | MIT Licensed | https://rindojs.web.app
3
3
  */
4
4
  "use strict";
5
5
  var __create = Object.create;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rindo/core/screenshot",
3
- "version": "4.20.0",
3
+ "version": "4.21.0",
4
4
  "description": "Rindo Screenshot.",
5
5
  "main": "./index.js",
6
6
  "types": "./index.d.ts",
@@ -1,5 +1,5 @@
1
1
  /*
2
- Rindo Screenshot Pixel Match v4.20.0 | MIT Licensed | https://rindojs.web.app
2
+ Rindo Screenshot Pixel Match v4.21.0 | MIT Licensed | https://rindojs.web.app
3
3
  */
4
4
  "use strict";
5
5
  var __create = Object.create;