New Upstream Release - node-cssom

Ready changes

Summary

Merged new upstream version: 0.5.0 (was: 0.4.4).

Resulting package

Built on 2023-02-08T03:27 (took 2m0s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-releases libjs-cssomapt install -t fresh-releases node-cssom

Lintian Result

Diff

diff --git a/README.mdown b/README.mdown
index 83af16b..38d295c 100644
--- a/README.mdown
+++ b/README.mdown
@@ -46,9 +46,9 @@ div {
 
 This pattern is often used to give browsers that don’t understand linear gradients a fallback solution (e.g. gray color in the example).
 In CSSOM, `background: gray` [gets overwritten](http://nv.github.io/CSSOM/docs/parse.html#css=div%20%7B%0A%20%20%20%20%20%20background%3A%20gray%3B%0A%20%20%20%20background%3A%20linear-gradient(to%20bottom%2C%20white%200%25%2C%20black%20100%25)%3B%0A%7D).
-It doesn't get preserved.
+It does **NOT** get preserved.
 
-If you do CSS mungling, minification, image inlining, and such, CSSOM.js is no good for you, considere using one of the following:
+If you do CSS mungling, minification, or image inlining, considere using one of the following:
 
   * [postcss](https://github.com/postcss/postcss)
   * [reworkcss/css](https://github.com/reworkcss/css)
diff --git a/debian/changelog b/debian/changelog
index 66159e2..c5669f4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+node-cssom (0.5.0-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Wed, 08 Feb 2023 03:25:57 -0000
+
 node-cssom (0.4.4-3) unstable; urgency=medium
 
   [ Debian Janitor ]
diff --git a/lib/CSSConditionRule.js b/lib/CSSConditionRule.js
new file mode 100644
index 0000000..8d77efa
--- /dev/null
+++ b/lib/CSSConditionRule.js
@@ -0,0 +1,25 @@
+//.CommonJS
+var CSSOM = {
+  CSSRule: require("./CSSRule").CSSRule,
+  CSSGroupingRule: require("./CSSGroupingRule").CSSGroupingRule
+};
+///CommonJS
+
+
+/**
+ * @constructor
+ * @see https://www.w3.org/TR/css-conditional-3/#the-cssconditionrule-interface
+ */
+CSSOM.CSSConditionRule = function CSSConditionRule() {
+  CSSOM.CSSGroupingRule.call(this);
+  this.cssRules = [];
+};
+
+CSSOM.CSSConditionRule.prototype = new CSSOM.CSSGroupingRule();
+CSSOM.CSSConditionRule.prototype.constructor = CSSOM.CSSConditionRule;
+CSSOM.CSSConditionRule.prototype.conditionText = ''
+CSSOM.CSSConditionRule.prototype.cssText = ''
+
+//.CommonJS
+exports.CSSConditionRule = CSSOM.CSSConditionRule;
+///CommonJS
diff --git a/lib/CSSGroupingRule.js b/lib/CSSGroupingRule.js
new file mode 100644
index 0000000..4555aba
--- /dev/null
+++ b/lib/CSSGroupingRule.js
@@ -0,0 +1,68 @@
+//.CommonJS
+var CSSOM = {
+	CSSRule: require("./CSSRule").CSSRule
+};
+///CommonJS
+
+
+/**
+ * @constructor
+ * @see https://drafts.csswg.org/cssom/#the-cssgroupingrule-interface
+ */
+CSSOM.CSSGroupingRule = function CSSGroupingRule() {
+	CSSOM.CSSRule.call(this);
+	this.cssRules = [];
+};
+
+CSSOM.CSSGroupingRule.prototype = new CSSOM.CSSRule();
+CSSOM.CSSGroupingRule.prototype.constructor = CSSOM.CSSGroupingRule;
+
+
+/**
+ * Used to insert a new CSS rule to a list of CSS rules.
+ *
+ * @example
+ *   cssGroupingRule.cssText
+ *   -> "body{margin:0;}"
+ *   cssGroupingRule.insertRule("img{border:none;}", 1)
+ *   -> 1
+ *   cssGroupingRule.cssText
+ *   -> "body{margin:0;}img{border:none;}"
+ *
+ * @param {string} rule
+ * @param {number} [index]
+ * @see https://www.w3.org/TR/cssom-1/#dom-cssgroupingrule-insertrule
+ * @return {number} The index within the grouping rule's collection of the newly inserted rule.
+ */
+ CSSOM.CSSGroupingRule.prototype.insertRule = function insertRule(rule, index) {
+	if (index < 0 || index > this.cssRules.length) {
+		throw new RangeError("INDEX_SIZE_ERR");
+	}
+	var cssRule = CSSOM.parse(rule).cssRules[0];
+	cssRule.parentRule = this;
+	this.cssRules.splice(index, 0, cssRule);
+	return index;
+};
+
+/**
+ * Used to delete a rule from the grouping rule.
+ *
+ *   cssGroupingRule.cssText
+ *   -> "img{border:none;}body{margin:0;}"
+ *   cssGroupingRule.deleteRule(0)
+ *   cssGroupingRule.cssText
+ *   -> "body{margin:0;}"
+ *
+ * @param {number} index within the grouping rule's rule list of the rule to remove.
+ * @see https://www.w3.org/TR/cssom-1/#dom-cssgroupingrule-deleterule
+ */
+ CSSOM.CSSGroupingRule.prototype.deleteRule = function deleteRule(index) {
+	if (index < 0 || index >= this.cssRules.length) {
+		throw new RangeError("INDEX_SIZE_ERR");
+	}
+	this.cssRules.splice(index, 1)[0].parentRule = null;
+};
+
+//.CommonJS
+exports.CSSGroupingRule = CSSOM.CSSGroupingRule;
+///CommonJS
diff --git a/lib/CSSMediaRule.js b/lib/CSSMediaRule.js
index 367a35e..176d134 100644
--- a/lib/CSSMediaRule.js
+++ b/lib/CSSMediaRule.js
@@ -1,6 +1,8 @@
 //.CommonJS
 var CSSOM = {
 	CSSRule: require("./CSSRule").CSSRule,
+	CSSGroupingRule: require("./CSSGroupingRule").CSSGroupingRule,
+	CSSConditionRule: require("./CSSConditionRule").CSSConditionRule,
 	MediaList: require("./MediaList").MediaList
 };
 ///CommonJS
@@ -12,26 +14,36 @@ var CSSOM = {
  * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule
  */
 CSSOM.CSSMediaRule = function CSSMediaRule() {
-	CSSOM.CSSRule.call(this);
+	CSSOM.CSSConditionRule.call(this);
 	this.media = new CSSOM.MediaList();
-	this.cssRules = [];
 };
 
-CSSOM.CSSMediaRule.prototype = new CSSOM.CSSRule();
+CSSOM.CSSMediaRule.prototype = new CSSOM.CSSConditionRule();
 CSSOM.CSSMediaRule.prototype.constructor = CSSOM.CSSMediaRule;
 CSSOM.CSSMediaRule.prototype.type = 4;
-//FIXME
-//CSSOM.CSSMediaRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule;
-//CSSOM.CSSMediaRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule;
 
-// http://opensource.apple.com/source/WebCore/WebCore-658.28/css/CSSMediaRule.cpp
-Object.defineProperty(CSSOM.CSSMediaRule.prototype, "cssText", {
-  get: function() {
-    var cssTexts = [];
-    for (var i=0, length=this.cssRules.length; i < length; i++) {
-      cssTexts.push(this.cssRules[i].cssText);
-    }
-    return "@media " + this.media.mediaText + " {" + cssTexts.join("") + "}";
+// https://opensource.apple.com/source/WebCore/WebCore-7611.1.21.161.3/css/CSSMediaRule.cpp
+Object.defineProperties(CSSOM.CSSMediaRule.prototype, {
+  "conditionText": {
+    get: function() {
+      return this.media.mediaText;
+    },
+    set: function(value) {
+      this.media.mediaText = value;
+    },
+    configurable: true,
+    enumerable: true
+  },
+  "cssText": {
+    get: function() {
+      var cssTexts = [];
+      for (var i=0, length=this.cssRules.length; i < length; i++) {
+        cssTexts.push(this.cssRules[i].cssText);
+      }
+      return "@media " + this.media.mediaText + " {" + cssTexts.join("") + "}";
+    },
+    configurable: true,
+    enumerable: true
   }
 });
 
diff --git a/lib/CSSSupportsRule.js b/lib/CSSSupportsRule.js
index 19f85d4..84854cd 100644
--- a/lib/CSSSupportsRule.js
+++ b/lib/CSSSupportsRule.js
@@ -1,6 +1,8 @@
 //.CommonJS
 var CSSOM = {
   CSSRule: require("./CSSRule").CSSRule,
+  CSSGroupingRule: require("./CSSGroupingRule").CSSGroupingRule,
+  CSSConditionRule: require("./CSSConditionRule").CSSConditionRule
 };
 ///CommonJS
 
@@ -10,12 +12,10 @@ var CSSOM = {
  * @see https://drafts.csswg.org/css-conditional-3/#the-csssupportsrule-interface
  */
 CSSOM.CSSSupportsRule = function CSSSupportsRule() {
-  CSSOM.CSSRule.call(this);
-  this.conditionText = '';
-  this.cssRules = [];
+  CSSOM.CSSConditionRule.call(this);
 };
 
-CSSOM.CSSSupportsRule.prototype = new CSSOM.CSSRule();
+CSSOM.CSSSupportsRule.prototype = new CSSOM.CSSConditionRule();
 CSSOM.CSSSupportsRule.prototype.constructor = CSSOM.CSSSupportsRule;
 CSSOM.CSSSupportsRule.prototype.type = 12;
 
diff --git a/lib/clone.js b/lib/clone.js
index c6867f2..a4162ad 100644
--- a/lib/clone.js
+++ b/lib/clone.js
@@ -1,7 +1,10 @@
 //.CommonJS
 var CSSOM = {
 	CSSStyleSheet: require("./CSSStyleSheet").CSSStyleSheet,
+	CSSRule: require("./CSSRule").CSSRule,
 	CSSStyleRule: require("./CSSStyleRule").CSSStyleRule,
+	CSSGroupingRule: require("./CSSGroupingRule").CSSGroupingRule,
+	CSSConditionRule: require("./CSSConditionRule").CSSConditionRule,
 	CSSMediaRule: require("./CSSMediaRule").CSSMediaRule,
 	CSSSupportsRule: require("./CSSSupportsRule").CSSSupportsRule,
 	CSSStyleDeclaration: require("./CSSStyleDeclaration").CSSStyleDeclaration,
diff --git a/lib/index.js b/lib/index.js
index e14826c..2098109 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -2,6 +2,8 @@
 
 exports.CSSStyleDeclaration = require('./CSSStyleDeclaration').CSSStyleDeclaration;
 exports.CSSRule = require('./CSSRule').CSSRule;
+exports.CSSGroupingRule = require('./CSSGroupingRule').CSSGroupingRule;
+exports.CSSConditionRule = require('./CSSConditionRule').CSSConditionRule;
 exports.CSSStyleRule = require('./CSSStyleRule').CSSStyleRule;
 exports.MediaList = require('./MediaList').MediaList;
 exports.CSSMediaRule = require('./CSSMediaRule').CSSMediaRule;
diff --git a/lib/parse.js b/lib/parse.js
index 450df31..038ab01 100644
--- a/lib/parse.js
+++ b/lib/parse.js
@@ -451,7 +451,9 @@ exports.parse = CSSOM.parse;
 CSSOM.CSSStyleSheet = require("./CSSStyleSheet").CSSStyleSheet;
 CSSOM.CSSStyleRule = require("./CSSStyleRule").CSSStyleRule;
 CSSOM.CSSImportRule = require("./CSSImportRule").CSSImportRule;
+CSSOM.CSSGroupingRule = require("./CSSGroupingRule").CSSGroupingRule;
 CSSOM.CSSMediaRule = require("./CSSMediaRule").CSSMediaRule;
+CSSOM.CSSConditionRule = require("./CSSConditionRule").CSSConditionRule;
 CSSOM.CSSSupportsRule = require("./CSSSupportsRule").CSSSupportsRule;
 CSSOM.CSSFontFaceRule = require("./CSSFontFaceRule").CSSFontFaceRule;
 CSSOM.CSSHostRule = require("./CSSHostRule").CSSHostRule;
diff --git a/package.json b/package.json
index c8e813f..3ae8e91 100644
--- a/package.json
+++ b/package.json
@@ -7,7 +7,7 @@
     "parser",
     "styleSheet"
   ],
-  "version": "0.4.4",
+  "version": "0.5.0",
   "author": "Nikita Vasilyev <me@elv1s.ru>",
   "repository": "NV/CSSOM",
   "files": [

Debdiff

[The following lists of changes regard files as different if they have different names, permissions or owners.]

Files in second set of .debs but not in first

-rw-r--r--  root/root   /usr/share/javascript/cssom/CSSConditionRule.js
-rw-r--r--  root/root   /usr/share/javascript/cssom/CSSGroupingRule.js
-rw-r--r--  root/root   /usr/share/nodejs/cssom/lib/CSSConditionRule.js
-rw-r--r--  root/root   /usr/share/nodejs/cssom/lib/CSSGroupingRule.js

No differences were encountered between the control files of package libjs-cssom

No differences were encountered between the control files of package node-cssom

More details

Full run details