From d48367019eefdf757a6dbb4019f65f9e638d5984 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 9 Jul 2023 11:51:29 -0700 Subject: [PATCH 01/28] chore(deps-dev): Bump stylelint from 14.16.1 to 15.10.1 (#219) --- package.json | 2 +- yarn.lock | 421 +++++++++++++++++++++++++++++++++------------------ 2 files changed, 276 insertions(+), 147 deletions(-) diff --git a/package.json b/package.json index 16d4c53..c431876 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "rimraf": "^4.4.1", "source-map-loader": "^1.0.2", "style-loader": "^3.3.1", - "stylelint": "^14.9.1", + "stylelint": "^15.10.1", "stylelint-config-prettier": "^9.0.4", "stylelint-config-recommended": "^8.0.0", "stylelint-config-standard": "^26.0.0", diff --git a/yarn.lock b/yarn.lock index 2addd9f..7b3cca7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -302,12 +302,38 @@ __metadata: languageName: node linkType: hard -"@csstools/selector-specificity@npm:^2.0.2": - version: 2.2.0 - resolution: "@csstools/selector-specificity@npm:2.2.0" +"@csstools/css-parser-algorithms@npm:^2.3.0": + version: 2.3.0 + resolution: "@csstools/css-parser-algorithms@npm:2.3.0" + peerDependencies: + "@csstools/css-tokenizer": ^2.1.1 + checksum: 3be22a0cfcfe0dc4bb140e2f266590addf21c5052d9e69334da860b3839fbd4369c3d158cbc396032d5ed96d01d2b5d8ebdb5497f75c9830ed9ce99853e3f915 + languageName: node + linkType: hard + +"@csstools/css-tokenizer@npm:^2.1.1": + version: 2.1.1 + resolution: "@csstools/css-tokenizer@npm:2.1.1" + checksum: d6ac4b08d7fdfc146755542f00b208af7248efd6cf2eb0f0f7d2ba3583a81f08ed9be6047d78b046925708b5bd0886f487edeeee2f90f0f34030dcbef4122d0e + languageName: node + linkType: hard + +"@csstools/media-query-list-parser@npm:^2.1.2": + version: 2.1.2 + resolution: "@csstools/media-query-list-parser@npm:2.1.2" + peerDependencies: + "@csstools/css-parser-algorithms": ^2.3.0 + "@csstools/css-tokenizer": ^2.1.1 + checksum: 04936573ba837f14d7d637e172342c473665679c6497bbc0d548d93d08cb22e22151bb19e0e20422954c0b2aa50c3f38c9fc5f45c136e31bc863c656cb79df1b + languageName: node + linkType: hard + +"@csstools/selector-specificity@npm:^3.0.0": + version: 3.0.0 + resolution: "@csstools/selector-specificity@npm:3.0.0" peerDependencies: - postcss-selector-parser: ^6.0.10 - checksum: 97c89f23b3b527d7bd51ed299969ed2b9fbb219a367948b44aefec228b8eda6ae0ad74fe8a82f9aac8ff32cfd00bb6d0c98d1daeab2e8fc6d5c4af25e5be5673 + postcss-selector-parser: ^6.0.13 + checksum: 4a2dfe69998a499155d9dab4c2a0e7ae7594d8db98bb8a487d2d5347c0c501655051eb5eacad3fe323c86b0ba8212fe092c27fc883621e6ac2a27662edfc3528 languageName: node linkType: hard @@ -774,7 +800,7 @@ __metadata: rimraf: ^4.4.1 source-map-loader: ^1.0.2 style-loader: ^3.3.1 - stylelint: ^14.9.1 + stylelint: ^15.10.1 stylelint-config-prettier: ^9.0.4 stylelint-config-recommended: ^8.0.0 stylelint-config-standard: ^26.0.0 @@ -1425,7 +1451,7 @@ __metadata: languageName: node linkType: hard -"@types/minimist@npm:^1.2.0": +"@types/minimist@npm:^1.2.2": version: 1.2.2 resolution: "@types/minimist@npm:1.2.2" checksum: b8da83c66eb4aac0440e64674b19564d9d86c80ae273144db9681e5eeff66f238ade9515f5006ffbfa955ceff8b89ad2bd8ec577d7caee74ba101431fb07045d @@ -1446,13 +1472,6 @@ __metadata: languageName: node linkType: hard -"@types/parse-json@npm:^4.0.0": - version: 4.0.0 - resolution: "@types/parse-json@npm:4.0.0" - checksum: fd6bce2b674b6efc3db4c7c3d336bd70c90838e8439de639b909ce22f3720d21344f52427f1d9e57b265fcb7f6c018699b99e5e0c208a1a4823014269a6bf35b - languageName: node - linkType: hard - "@types/prop-types@npm:*": version: 15.7.5 resolution: "@types/prop-types@npm:15.7.5" @@ -1980,6 +1999,13 @@ __metadata: languageName: node linkType: hard +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced + languageName: node + linkType: hard + "arr-diff@npm:^4.0.0": version: 4.0.0 resolution: "arr-diff@npm:4.0.0" @@ -2247,21 +2273,22 @@ __metadata: languageName: node linkType: hard -"camelcase-keys@npm:^6.2.2": - version: 6.2.2 - resolution: "camelcase-keys@npm:6.2.2" +"camelcase-keys@npm:^7.0.0": + version: 7.0.2 + resolution: "camelcase-keys@npm:7.0.2" dependencies: - camelcase: ^5.3.1 - map-obj: ^4.0.0 - quick-lru: ^4.0.1 - checksum: 43c9af1adf840471e54c68ab3e5fe8a62719a6b7dbf4e2e86886b7b0ff96112c945736342b837bd2529ec9d1c7d1934e5653318478d98e0cf22c475c04658e2a + camelcase: ^6.3.0 + map-obj: ^4.1.0 + quick-lru: ^5.1.1 + type-fest: ^1.2.1 + checksum: b5821cc48dd00e8398a30c5d6547f06837ab44de123f1b3a603d0a03399722b2fc67a485a7e47106eb02ef543c3b50c5ebaabc1242cde4b63a267c3258d2365b languageName: node linkType: hard -"camelcase@npm:^5.3.1": - version: 5.3.1 - resolution: "camelcase@npm:5.3.1" - checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b +"camelcase@npm:^6.3.0": + version: 6.3.0 + resolution: "camelcase@npm:6.3.0" + checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d languageName: node linkType: hard @@ -2502,16 +2529,15 @@ __metadata: languageName: node linkType: hard -"cosmiconfig@npm:^7.1.0": - version: 7.1.0 - resolution: "cosmiconfig@npm:7.1.0" +"cosmiconfig@npm:^8.2.0": + version: 8.2.0 + resolution: "cosmiconfig@npm:8.2.0" dependencies: - "@types/parse-json": ^4.0.0 import-fresh: ^3.2.1 + js-yaml: ^4.1.0 parse-json: ^5.0.0 path-type: ^4.0.0 - yaml: ^1.10.0 - checksum: c53bf7befc1591b2651a22414a5e786cd5f2eeaa87f3678a3d49d6069835a9d8d1aef223728e98aa8fec9a95bf831120d245096db12abe019fecb51f5696c96f + checksum: 836d5d8efa750f3fb17b03d6ca74cd3154ed025dffd045304b3ef59637f662bde1e5dc88f8830080d180ec60841719cf4ea2ce73fb21ec694b16865c478ff297 languageName: node linkType: hard @@ -2571,6 +2597,16 @@ __metadata: languageName: node linkType: hard +"css-tree@npm:^2.3.1": + version: 2.3.1 + resolution: "css-tree@npm:2.3.1" + dependencies: + mdn-data: 2.0.30 + source-map-js: ^1.0.1 + checksum: 493cc24b5c22b05ee5314b8a0d72d8a5869491c1458017ae5ed75aeb6c3596637dbe1b11dac2548974624adec9f7a1f3a6cf40593dc1f9185eb0e8279543fbc0 + languageName: node + linkType: hard + "cssesc@npm:^3.0.0": version: 3.0.0 resolution: "cssesc@npm:3.0.0" @@ -2652,13 +2688,20 @@ __metadata: languageName: node linkType: hard -"decamelize@npm:^1.1.0, decamelize@npm:^1.2.0": +"decamelize@npm:^1.1.0": version: 1.2.0 resolution: "decamelize@npm:1.2.0" checksum: ad8c51a7e7e0720c70ec2eeb1163b66da03e7616d7b98c9ef43cce2416395e84c1e9548dd94f5f6ffecfee9f8b94251fc57121a8b021f2ff2469b2bae247b8aa languageName: node linkType: hard +"decamelize@npm:^5.0.0": + version: 5.0.1 + resolution: "decamelize@npm:5.0.1" + checksum: 7c3b1ed4b3e60e7fbc00a35fb248298527c1cdfe603e41dfcf05e6c4a8cb9efbee60630deb677ed428908fb4e74e322966c687a094d1478ddc9c3a74e9dc7140 + languageName: node + linkType: hard + "decode-uri-component@npm:^0.2.0": version: 0.2.2 resolution: "decode-uri-component@npm:0.2.2" @@ -3267,7 +3310,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.12, fast-glob@npm:^3.2.9": +"fast-glob@npm:^3.2.9": version: 3.2.12 resolution: "fast-glob@npm:3.2.12" dependencies: @@ -3280,6 +3323,19 @@ __metadata: languageName: node linkType: hard +"fast-glob@npm:^3.3.0": + version: 3.3.0 + resolution: "fast-glob@npm:3.3.0" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: 20df62be28eb5426fe8e40e0d05601a63b1daceb7c3d87534afcad91bdcf1e4b1743cf2d5247d6e225b120b46df0b9053a032b2691ba34ee121e033acd81f547 + languageName: node + linkType: hard + "fast-json-stable-stringify@npm:^2.0.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" @@ -3375,7 +3431,7 @@ __metadata: languageName: node linkType: hard -"find-up@npm:^4.0.0, find-up@npm:^4.1.0": +"find-up@npm:^4.0.0": version: 4.1.0 resolution: "find-up@npm:4.1.0" dependencies: @@ -3385,6 +3441,16 @@ __metadata: languageName: node linkType: hard +"find-up@npm:^5.0.0": + version: 5.0.0 + resolution: "find-up@npm:5.0.0" + dependencies: + locate-path: ^6.0.0 + path-exists: ^4.0.0 + checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 + languageName: node + linkType: hard + "flat-cache@npm:^3.0.4": version: 3.0.4 resolution: "flat-cache@npm:3.0.4" @@ -3839,7 +3905,7 @@ __metadata: languageName: node linkType: hard -"html-tags@npm:^3.2.0": +"html-tags@npm:^3.3.1": version: 3.3.1 resolution: "html-tags@npm:3.3.1" checksum: b4ef1d5a76b678e43cce46e3783d563607b1d550cab30b4f511211564574770aa8c658a400b100e588bc60b8234e59b35ff72c7851cc28f3b5403b13a2c6cbce @@ -3903,7 +3969,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.1.8, ignore@npm:^5.2.0, ignore@npm:^5.2.1": +"ignore@npm:^5.1.8, ignore@npm:^5.2.0, ignore@npm:^5.2.4": version: 5.2.4 resolution: "ignore@npm:5.2.4" checksum: 3d4c309c6006e2621659311783eaea7ebcd41fe4ca1d78c91c473157ad6666a57a2df790fe0d07a12300d9aac2888204d7be8d59f9aaf665b1c7fcdb432517ef @@ -3963,10 +4029,10 @@ __metadata: languageName: node linkType: hard -"indent-string@npm:^4.0.0": - version: 4.0.0 - resolution: "indent-string@npm:4.0.0" - checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 +"indent-string@npm:^5.0.0": + version: 5.0.0 + resolution: "indent-string@npm:5.0.0" + checksum: e466c27b6373440e6d84fbc19e750219ce25865cb82d578e41a6053d727e5520dc5725217d6eb1cc76005a1bb1696a0f106d84ce7ebda3033b963a38583fb3b3 languageName: node linkType: hard @@ -4469,6 +4535,17 @@ __metadata: languageName: node linkType: hard +"js-yaml@npm:^4.1.0": + version: 4.1.0 + resolution: "js-yaml@npm:4.1.0" + dependencies: + argparse: ^2.0.1 + bin: + js-yaml: bin/js-yaml.js + checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a + languageName: node + linkType: hard + "json-parse-better-errors@npm:^1.0.1": version: 1.0.2 resolution: "json-parse-better-errors@npm:1.0.2" @@ -4585,10 +4662,10 @@ __metadata: languageName: node linkType: hard -"known-css-properties@npm:^0.26.0": - version: 0.26.0 - resolution: "known-css-properties@npm:0.26.0" - checksum: e706f4af9d2683202df9f717e7d713f0f8c3330f155842c40d8f3b2a5837956c34aeb7ba08760977ccde1afce8b5377e29b40eb3e5c0b42bef28ddd108543cfb +"known-css-properties@npm:^0.27.0": + version: 0.27.0 + resolution: "known-css-properties@npm:0.27.0" + checksum: 8584fcf0526f984fe5a358af20200dec3b944373dd005dc23a3ce988895e1acd03e7d69c49533dda07d6d9b6d53990ed1119bd9d3e927f17545f8764c434a5cd languageName: node linkType: hard @@ -4771,6 +4848,15 @@ __metadata: languageName: node linkType: hard +"locate-path@npm:^6.0.0": + version: 6.0.0 + resolution: "locate-path@npm:6.0.0" + dependencies: + p-locate: ^5.0.0 + checksum: 72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a + languageName: node + linkType: hard + "lodash-es@npm:^4.17.21": version: 4.17.21 resolution: "lodash-es@npm:4.17.21" @@ -4883,7 +4969,7 @@ __metadata: languageName: node linkType: hard -"map-obj@npm:^4.0.0": +"map-obj@npm:^4.1.0": version: 4.3.0 resolution: "map-obj@npm:4.3.0" checksum: fbc554934d1a27a1910e842bc87b177b1a556609dd803747c85ece420692380827c6ae94a95cce4407c054fa0964be3bf8226f7f2cb2e9eeee432c7c1985684e @@ -4924,6 +5010,13 @@ __metadata: languageName: node linkType: hard +"mdn-data@npm:2.0.30": + version: 2.0.30 + resolution: "mdn-data@npm:2.0.30" + checksum: d6ac5ac7439a1607df44b22738ecf83f48e66a0874e4482d6424a61c52da5cde5750f1d1229b6f5fa1b80a492be89465390da685b11f97d62b8adcc6e88189aa + languageName: node + linkType: hard + "memorystream@npm:^0.3.1": version: 0.3.1 resolution: "memorystream@npm:0.3.1" @@ -4931,23 +5024,23 @@ __metadata: languageName: node linkType: hard -"meow@npm:^9.0.0": - version: 9.0.0 - resolution: "meow@npm:9.0.0" +"meow@npm:^10.1.5": + version: 10.1.5 + resolution: "meow@npm:10.1.5" dependencies: - "@types/minimist": ^1.2.0 - camelcase-keys: ^6.2.2 - decamelize: ^1.2.0 + "@types/minimist": ^1.2.2 + camelcase-keys: ^7.0.0 + decamelize: ^5.0.0 decamelize-keys: ^1.1.0 hard-rejection: ^2.1.0 minimist-options: 4.1.0 - normalize-package-data: ^3.0.0 - read-pkg-up: ^7.0.1 - redent: ^3.0.0 - trim-newlines: ^3.0.0 - type-fest: ^0.18.0 - yargs-parser: ^20.2.3 - checksum: 99799c47247f4daeee178e3124f6ef6f84bde2ba3f37652865d5d8f8b8adcf9eedfc551dd043e2455cd8206545fd848e269c0c5ab6b594680a0ad4d3617c9639 + normalize-package-data: ^3.0.2 + read-pkg-up: ^8.0.0 + redent: ^4.0.0 + trim-newlines: ^4.0.2 + type-fest: ^1.2.2 + yargs-parser: ^20.2.9 + checksum: dd5f0caa4af18517813547dc66741dcbf52c4c23def5062578d39b11189fd9457aee5c1f2263a5cd6592a465023df8357e8ac876b685b64dbcf545e3f66c23a7 languageName: node linkType: hard @@ -5019,7 +5112,7 @@ __metadata: languageName: node linkType: hard -"min-indent@npm:^1.0.0": +"min-indent@npm:^1.0.1": version: 1.0.1 resolution: "min-indent@npm:1.0.1" checksum: bfc6dd03c5eaf623a4963ebd94d087f6f4bbbfd8c41329a7f09706b0cb66969c4ddd336abeb587bc44bc6f08e13bf90f0b374f9d71f9f01e04adc2cd6f083ef1 @@ -5215,7 +5308,7 @@ __metadata: languageName: node linkType: hard -"normalize-package-data@npm:^3.0.0": +"normalize-package-data@npm:^3.0.2": version: 3.0.3 resolution: "normalize-package-data@npm:3.0.3" dependencies: @@ -5405,6 +5498,15 @@ __metadata: languageName: node linkType: hard +"p-limit@npm:^3.0.2": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: ^0.1.0 + checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 + languageName: node + linkType: hard + "p-locate@npm:^3.0.0": version: 3.0.0 resolution: "p-locate@npm:3.0.0" @@ -5423,6 +5525,15 @@ __metadata: languageName: node linkType: hard +"p-locate@npm:^5.0.0": + version: 5.0.0 + resolution: "p-locate@npm:5.0.0" + dependencies: + p-limit: ^3.0.2 + checksum: 1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 + languageName: node + linkType: hard + "p-map@npm:^1.1.1": version: 1.2.0 resolution: "p-map@npm:1.2.0" @@ -5463,7 +5574,7 @@ __metadata: languageName: node linkType: hard -"parse-json@npm:^5.0.0": +"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": version: 5.2.0 resolution: "parse-json@npm:5.2.0" dependencies: @@ -5656,13 +5767,6 @@ __metadata: languageName: node linkType: hard -"postcss-media-query-parser@npm:^0.2.3": - version: 0.2.3 - resolution: "postcss-media-query-parser@npm:0.2.3" - checksum: 8000d4d95b912994928ff86137f5ab0ed4c4ee1498af2336e93d708ae8827a690cd7acbaed55d14684cf44d82c8d44b031c1c69ae6bcd2f9620ea67573888090 - languageName: node - linkType: hard - "postcss-modules-extract-imports@npm:^3.0.0": version: 3.0.0 resolution: "postcss-modules-extract-imports@npm:3.0.0" @@ -5723,7 +5827,7 @@ __metadata: languageName: node linkType: hard -"postcss-selector-parser@npm:^6.0.11, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4": +"postcss-selector-parser@npm:^6.0.13, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4": version: 6.0.13 resolution: "postcss-selector-parser@npm:6.0.13" dependencies: @@ -5740,7 +5844,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.3.11, postcss@npm:^8.4.19, postcss@npm:^8.4.21": +"postcss@npm:^8.3.11, postcss@npm:^8.4.21": version: 8.4.23 resolution: "postcss@npm:8.4.23" dependencies: @@ -5751,6 +5855,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.24": + version: 8.4.25 + resolution: "postcss@npm:8.4.25" + dependencies: + nanoid: ^3.3.6 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: 9ed3ab8af43ad5210c28f56f916fd9b8c9f94fbeaebbf645dcf579bc28bdd8056c2a7ecc934668d399b81fedb6128f0c4b299f931e50454964bc911c25a3a0a2 + languageName: node + linkType: hard + "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" @@ -5839,10 +5954,10 @@ __metadata: languageName: node linkType: hard -"quick-lru@npm:^4.0.1": - version: 4.0.1 - resolution: "quick-lru@npm:4.0.1" - checksum: bea46e1abfaa07023e047d3cf1716a06172c4947886c053ede5c50321893711577cb6119360f810cc3ffcd70c4d7db4069c3cee876b358ceff8596e062bd1154 +"quick-lru@npm:^5.1.1": + version: 5.1.1 + resolution: "quick-lru@npm:5.1.1" + checksum: a516faa25574be7947969883e6068dbe4aa19e8ef8e8e0fd96cddd6d36485e9106d85c0041a27153286b0770b381328f4072aa40d3b18a19f5f7d2b78b94b5ed languageName: node linkType: hard @@ -5890,14 +6005,14 @@ __metadata: languageName: node linkType: hard -"read-pkg-up@npm:^7.0.1": - version: 7.0.1 - resolution: "read-pkg-up@npm:7.0.1" +"read-pkg-up@npm:^8.0.0": + version: 8.0.0 + resolution: "read-pkg-up@npm:8.0.0" dependencies: - find-up: ^4.1.0 - read-pkg: ^5.2.0 - type-fest: ^0.8.1 - checksum: e4e93ce70e5905b490ca8f883eb9e48b5d3cebc6cd4527c25a0d8f3ae2903bd4121c5ab9c5a3e217ada0141098eeb661313c86fa008524b089b8ed0b7f165e44 + find-up: ^5.0.0 + read-pkg: ^6.0.0 + type-fest: ^1.0.1 + checksum: fe4c80401656b40b408884457fffb5a8015c03b1018cfd8e48f8d82a5e9023e24963603aeb2755608d964593e046c15b34d29b07d35af9c7aa478be81805209c languageName: node linkType: hard @@ -5912,7 +6027,7 @@ __metadata: languageName: node linkType: hard -"read-pkg@npm:^5.1.1, read-pkg@npm:^5.2.0": +"read-pkg@npm:^5.1.1": version: 5.2.0 resolution: "read-pkg@npm:5.2.0" dependencies: @@ -5924,6 +6039,18 @@ __metadata: languageName: node linkType: hard +"read-pkg@npm:^6.0.0": + version: 6.0.0 + resolution: "read-pkg@npm:6.0.0" + dependencies: + "@types/normalize-package-data": ^2.4.0 + normalize-package-data: ^3.0.2 + parse-json: ^5.2.0 + type-fest: ^1.0.1 + checksum: 0cebdff381128e923815c643074a87011070e5fc352bee575d327d6485da3317fab6d802a7b03deeb0be7be8d3ad1640397b3d5d2f044452caf4e8d1736bf94f + languageName: node + linkType: hard + "rechoir@npm:^0.8.0": version: 0.8.0 resolution: "rechoir@npm:0.8.0" @@ -5933,13 +6060,13 @@ __metadata: languageName: node linkType: hard -"redent@npm:^3.0.0": - version: 3.0.0 - resolution: "redent@npm:3.0.0" +"redent@npm:^4.0.0": + version: 4.0.0 + resolution: "redent@npm:4.0.0" dependencies: - indent-string: ^4.0.0 - strip-indent: ^3.0.0 - checksum: fa1ef20404a2d399235e83cc80bd55a956642e37dd197b4b612ba7327bf87fa32745aeb4a1634b2bab25467164ab4ed9c15be2c307923dd08b0fe7c52431ae6b + indent-string: ^5.0.0 + strip-indent: ^4.0.0 + checksum: 6944e7b1d8f3fd28c2515f5c605b9f7f0ea0f4edddf41890bbbdd4d9ee35abb7540c3b278f03ff827bd278bb6ff4a5bd8692ca406b748c5c1c3ce7355e9fbf8f languageName: node linkType: hard @@ -6369,13 +6496,20 @@ __metadata: languageName: node linkType: hard -"signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.7": +"signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 languageName: node linkType: hard +"signal-exit@npm:^4.0.1": + version: 4.0.2 + resolution: "signal-exit@npm:4.0.2" + checksum: 41f5928431cc6e91087bf0343db786a6313dd7c6fd7e551dbc141c95bb5fb26663444fd9df8ea47c5d7fc202f60aa7468c3162a9365cbb0615fc5e1b1328fe31 + languageName: node + linkType: hard + "simple-git@npm:^1.85.0": version: 1.132.0 resolution: "simple-git@npm:1.132.0" @@ -6453,7 +6587,7 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:^1.0.2": +"source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2": version: 1.0.2 resolution: "source-map-js@npm:1.0.2" checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c @@ -6739,12 +6873,12 @@ __metadata: languageName: node linkType: hard -"strip-indent@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-indent@npm:3.0.0" +"strip-indent@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-indent@npm:4.0.0" dependencies: - min-indent: ^1.0.0 - checksum: 18f045d57d9d0d90cd16f72b2313d6364fd2cb4bf85b9f593523ad431c8720011a4d5f08b6591c9d580f446e78855c5334a30fb91aa1560f5d9f95ed1b4a0530 + min-indent: ^1.0.1 + checksum: 06cbcd93da721c46bc13caeb1c00af93a9b18146a1c95927672d2decab6a25ad83662772417cea9317a2507fb143253ecc23c4415b64f5828cef9b638a744598 languageName: node linkType: hard @@ -6822,51 +6956,53 @@ __metadata: languageName: node linkType: hard -"stylelint@npm:^14.9.1": - version: 14.16.1 - resolution: "stylelint@npm:14.16.1" +"stylelint@npm:^15.10.1": + version: 15.10.1 + resolution: "stylelint@npm:15.10.1" dependencies: - "@csstools/selector-specificity": ^2.0.2 + "@csstools/css-parser-algorithms": ^2.3.0 + "@csstools/css-tokenizer": ^2.1.1 + "@csstools/media-query-list-parser": ^2.1.2 + "@csstools/selector-specificity": ^3.0.0 balanced-match: ^2.0.0 colord: ^2.9.3 - cosmiconfig: ^7.1.0 + cosmiconfig: ^8.2.0 css-functions-list: ^3.1.0 + css-tree: ^2.3.1 debug: ^4.3.4 - fast-glob: ^3.2.12 + fast-glob: ^3.3.0 fastest-levenshtein: ^1.0.16 file-entry-cache: ^6.0.1 global-modules: ^2.0.0 globby: ^11.1.0 globjoin: ^0.1.4 - html-tags: ^3.2.0 - ignore: ^5.2.1 + html-tags: ^3.3.1 + ignore: ^5.2.4 import-lazy: ^4.0.0 imurmurhash: ^0.1.4 is-plain-object: ^5.0.0 - known-css-properties: ^0.26.0 + known-css-properties: ^0.27.0 mathml-tag-names: ^2.1.3 - meow: ^9.0.0 + meow: ^10.1.5 micromatch: ^4.0.5 normalize-path: ^3.0.0 picocolors: ^1.0.0 - postcss: ^8.4.19 - postcss-media-query-parser: ^0.2.3 + postcss: ^8.4.24 postcss-resolve-nested-selector: ^0.1.1 postcss-safe-parser: ^6.0.0 - postcss-selector-parser: ^6.0.11 + postcss-selector-parser: ^6.0.13 postcss-value-parser: ^4.2.0 resolve-from: ^5.0.0 string-width: ^4.2.3 strip-ansi: ^6.0.1 style-search: ^0.1.0 - supports-hyperlinks: ^2.3.0 + supports-hyperlinks: ^3.0.0 svg-tags: ^1.0.0 table: ^6.8.1 - v8-compile-cache: ^2.3.0 - write-file-atomic: ^4.0.2 + write-file-atomic: ^5.0.1 bin: - stylelint: bin/stylelint.js - checksum: bc24050415e3c357a76d8ca2799e74ce31f33c9158b4086462512b0191db5d6a161b81ef35b064039c6eacf98a5553e45fca4c5f21eb4d45e7f1d44b2d226e9b + stylelint: bin/stylelint.mjs + checksum: 8eeae81fe4ed2dfc580d7c401806dbb058c14631abfafd0821db32f1e649aee62e3d39dda3462c6122826df91bd9799409be926e91b55b007622f51e44eb94c1 languageName: node linkType: hard @@ -6904,13 +7040,13 @@ __metadata: languageName: node linkType: hard -"supports-hyperlinks@npm:^2.3.0": - version: 2.3.0 - resolution: "supports-hyperlinks@npm:2.3.0" +"supports-hyperlinks@npm:^3.0.0": + version: 3.0.0 + resolution: "supports-hyperlinks@npm:3.0.0" dependencies: has-flag: ^4.0.0 supports-color: ^7.0.0 - checksum: 9ee0de3c8ce919d453511b2b1588a8205bd429d98af94a01df87411391010fe22ca463f268c84b2ce2abad019dfff8452aa02806eeb5c905a8d7ad5c4f4c52b8 + checksum: 41021305de5255b10d821bf93c7a781f783e1693d0faec293d7fc7ccf17011b90bde84b0295fa92ba75c6c390351fe84fdd18848cad4bf656e464a958243c3e7 languageName: node linkType: hard @@ -7061,10 +7197,10 @@ __metadata: languageName: node linkType: hard -"trim-newlines@npm:^3.0.0": - version: 3.0.1 - resolution: "trim-newlines@npm:3.0.1" - checksum: b530f3fadf78e570cf3c761fb74fef655beff6b0f84b29209bac6c9622db75ad1417f4a7b5d54c96605dcd72734ad44526fef9f396807b90839449eb543c6206 +"trim-newlines@npm:^4.0.2": + version: 4.1.1 + resolution: "trim-newlines@npm:4.1.1" + checksum: 5b09f8e329e8f33c1111ef26906332ba7ba7248cde3e26fc054bb3d69f2858bf5feedca9559c572ff91f33e52977c28e0d41c387df6a02a633cbb8c2d8238627 languageName: node linkType: hard @@ -7154,13 +7290,6 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.18.0": - version: 0.18.1 - resolution: "type-fest@npm:0.18.1" - checksum: e96dcee18abe50ec82dab6cbc4751b3a82046da54c52e3b2d035b3c519732c0b3dd7a2fa9df24efd1a38d953d8d4813c50985f215f1957ee5e4f26b0fe0da395 - languageName: node - linkType: hard - "type-fest@npm:^0.20.2": version: 0.20.2 resolution: "type-fest@npm:0.20.2" @@ -7175,10 +7304,10 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.8.1": - version: 0.8.1 - resolution: "type-fest@npm:0.8.1" - checksum: d61c4b2eba24009033ae4500d7d818a94fd6d1b481a8111612ee141400d5f1db46f199c014766b9fa9b31a6a7374d96fc748c6d688a78a3ce5a33123839becb7 +"type-fest@npm:^1.0.1, type-fest@npm:^1.2.1, type-fest@npm:^1.2.2": + version: 1.4.0 + resolution: "type-fest@npm:1.4.0" + checksum: b011c3388665b097ae6a109a437a04d6f61d81b7357f74cbcb02246f2f5bd72b888ae33631b99871388122ba0a87f4ff1c94078e7119ff22c70e52c0ff828201 languageName: node linkType: hard @@ -7318,7 +7447,7 @@ __metadata: languageName: node linkType: hard -"v8-compile-cache@npm:^2.0.3, v8-compile-cache@npm:^2.3.0": +"v8-compile-cache@npm:^2.0.3": version: 2.3.0 resolution: "v8-compile-cache@npm:2.3.0" checksum: adb0a271eaa2297f2f4c536acbfee872d0dd26ec2d76f66921aa7fc437319132773483344207bdbeee169225f4739016d8d2dbf0553913a52bb34da6d0334f8e @@ -7645,13 +7774,13 @@ __metadata: languageName: node linkType: hard -"write-file-atomic@npm:^4.0.2": - version: 4.0.2 - resolution: "write-file-atomic@npm:4.0.2" +"write-file-atomic@npm:^5.0.1": + version: 5.0.1 + resolution: "write-file-atomic@npm:5.0.1" dependencies: imurmurhash: ^0.1.4 - signal-exit: ^3.0.7 - checksum: 5da60bd4eeeb935eec97ead3df6e28e5917a6bd317478e4a85a5285e8480b8ed96032bbcc6ecd07b236142a24f3ca871c924ec4a6575e623ec1b11bf8c1c253c + signal-exit: ^4.0.1 + checksum: 8dbb0e2512c2f72ccc20ccedab9986c7d02d04039ed6e8780c987dc4940b793339c50172a1008eed7747001bfacc0ca47562668a069a7506c46c77d7ba3926a9 languageName: node linkType: hard @@ -7686,14 +7815,7 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^1.10.0": - version: 1.10.2 - resolution: "yaml@npm:1.10.2" - checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f - languageName: node - linkType: hard - -"yargs-parser@npm:^20.2.3": +"yargs-parser@npm:^20.2.9": version: 20.2.9 resolution: "yargs-parser@npm:20.2.9" checksum: 8bb69015f2b0ff9e17b2c8e6bfe224ab463dd00ca211eece72a4cd8a906224d2703fb8a326d36fdd0e68701e201b2a60ed7cf81ce0fd9b3799f9fe7745977ae3 @@ -7709,6 +7831,13 @@ __metadata: languageName: node linkType: hard +"yocto-queue@npm:^0.1.0": + version: 0.1.0 + resolution: "yocto-queue@npm:0.1.0" + checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 + languageName: node + linkType: hard + "yup@npm:^0.27.0": version: 0.27.0 resolution: "yup@npm:0.27.0" From 2a4d5c24d45e3053fdf250c31a4c28fc6d27dd6b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Oct 2023 06:43:27 -0700 Subject: [PATCH 02/28] chore(deps): Bump semver from 5.7.1 to 5.7.2 (#220) Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2. - [Release notes](https://github.com/npm/node-semver/releases) - [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md) - [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2) --- updated-dependencies: - dependency-name: semver dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7b3cca7..cb823e8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6397,11 +6397,11 @@ __metadata: linkType: hard "semver@npm:2 || 3 || 4 || 5, semver@npm:^5.3.0, semver@npm:^5.4.1, semver@npm:^5.5.0": - version: 5.7.1 - resolution: "semver@npm:5.7.1" + version: 5.7.2 + resolution: "semver@npm:5.7.2" bin: - semver: ./bin/semver - checksum: 57fd0acfd0bac382ee87cd52cd0aaa5af086a7dc8d60379dfe65fea491fb2489b6016400813930ecd61fd0952dae75c115287a1b16c234b1550887117744dfaf + semver: bin/semver + checksum: fb4ab5e0dd1c22ce0c937ea390b4a822147a9c53dbd2a9a0132f12fe382902beef4fbf12cf51bb955248d8d15874ce8cd89532569756384f994309825f10b686 languageName: node linkType: hard From bd76cc37bb3339d7c4a8373e00a69e5773e7e377 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Oct 2023 06:43:44 -0700 Subject: [PATCH 03/28] chore(deps): Bump word-wrap from 1.2.3 to 1.2.4 (#222) Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4. - [Release notes](https://github.com/jonschlinkert/word-wrap/releases) - [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4) --- updated-dependencies: - dependency-name: word-wrap dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/yarn.lock b/yarn.lock index cb823e8..8fa489a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7334,11 +7334,11 @@ __metadata: "typescript@patch:typescript@~5.0.4#~builtin": version: 5.0.4 - resolution: "typescript@patch:typescript@npm%3A5.0.4#~builtin::version=5.0.4&hash=85af82" + resolution: "typescript@patch:typescript@npm%3A5.0.4#~builtin::version=5.0.4&hash=b5f058" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: bb309d320c59a26565fb3793dba550576ab861018ff3fd1b7fccabbe46ae4a35546bc45f342c0a0b6f265c801ccdf64ffd68f548f117ceb7f0eac4b805cd52a9 + checksum: d26b6ba97b6d163c55dbdffd9bbb4c211667ebebc743accfeb2c8c0154aace7afd097b51165a72a5bad2cf65a4612259344ff60f8e642362aa1695c760d303ac languageName: node linkType: hard @@ -7739,9 +7739,9 @@ __metadata: linkType: hard "word-wrap@npm:^1.2.3": - version: 1.2.3 - resolution: "word-wrap@npm:1.2.3" - checksum: 30b48f91fcf12106ed3186ae4fa86a6a1842416df425be7b60485de14bec665a54a68e4b5156647dec3a70f25e84d270ca8bc8cd23182ed095f5c7206a938c1f + version: 1.2.4 + resolution: "word-wrap@npm:1.2.4" + checksum: 8f1f2e0a397c0e074ca225ba9f67baa23f99293bc064e31355d426ae91b8b3f6b5f6c1fc9ae5e9141178bb362d563f55e62fd8d5c31f2a77e3ade56cb3e35bd1 languageName: node linkType: hard From 9f13194642a8feff7904c9763062547fe868a31d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Oct 2023 06:44:58 -0700 Subject: [PATCH 04/28] chore(deps): Bump postcss from 8.4.23 to 8.4.31 (#223) Bumps [postcss](https://github.com/postcss/postcss) from 8.4.23 to 8.4.31. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.4.23...8.4.31) --- updated-dependencies: - dependency-name: postcss dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8fa489a..583f6fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5844,25 +5844,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.3.11, postcss@npm:^8.4.21": - version: 8.4.23 - resolution: "postcss@npm:8.4.23" +"postcss@npm:^8.3.11, postcss@npm:^8.4.21, postcss@npm:^8.4.24": + version: 8.4.31 + resolution: "postcss@npm:8.4.31" dependencies: nanoid: ^3.3.6 picocolors: ^1.0.0 source-map-js: ^1.0.2 - checksum: 8bb9d1b2ea6e694f8987d4f18c94617971b2b8d141602725fedcc2222fdc413b776a6e1b969a25d627d7b2681ca5aabb56f59e727ef94072e1b6ac8412105a2f - languageName: node - linkType: hard - -"postcss@npm:^8.4.24": - version: 8.4.25 - resolution: "postcss@npm:8.4.25" - dependencies: - nanoid: ^3.3.6 - picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: 9ed3ab8af43ad5210c28f56f916fd9b8c9f94fbeaebbf645dcf579bc28bdd8056c2a7ecc934668d399b81fedb6128f0c4b299f931e50454964bc911c25a3a0a2 + checksum: 1d8611341b073143ad90486fcdfeab49edd243377b1f51834dc4f6d028e82ce5190e4f11bb2633276864503654fb7cab28e67abdc0fbf9d1f88cad4a0ff0beea languageName: node linkType: hard From 77beeb8b19a08a43f03d02113db5c36eb3874c4c Mon Sep 17 00:00:00 2001 From: Akshat Saini Date: Fri, 30 Aug 2024 18:32:13 -0400 Subject: [PATCH 05/28] Migrate to updated JupyterLab extension template (#230) --------- Co-authored-by: Konstantin Taletskiy --- .copier-answers.yml | 14 + .eslintignore | 9 + .github/workflows/binder-on-pr.yml | 14 + .github/workflows/build.yml | 109 +- .github/workflows/check-release.yml | 30 + .github/workflows/enforce-label.yml | 13 + .github/workflows/prep-release.yml | 48 + .github/workflows/publish-release.yml | 58 + .gitignore | 128 +- .prettierignore | 10 +- .prettierrc | 3 - .yarnrc.yml | 2 - docs/changelog.md => CHANGELOG.md | 16 +- MANIFEST.in | 3 - README.md | 6 +- eslint.config.js | 25 + jupyterlab_latex/__init__.py | 5 +- jupyterlab_latex/_version.py | 22 - package.json | 158 +- pyproject.toml | 94 +- schema/plugin.json | 5 +- setup.cfg | 2 - setup.py | 95 +- setupbase.py | 703 ------ src/index.ts | 25 +- src/pagenumber.tsx | 8 +- src/pdf.ts | 35 +- style/index.css | 12 +- tsconfig.json | 27 +- yarn.lock | 3315 ++++++++++++++----------- 30 files changed, 2516 insertions(+), 2478 deletions(-) create mode 100644 .copier-answers.yml create mode 100644 .eslintignore create mode 100644 .github/workflows/binder-on-pr.yml create mode 100644 .github/workflows/check-release.yml create mode 100644 .github/workflows/enforce-label.yml create mode 100644 .github/workflows/prep-release.yml create mode 100644 .github/workflows/publish-release.yml delete mode 100644 .prettierrc rename docs/changelog.md => CHANGELOG.md (76%) delete mode 100644 MANIFEST.in create mode 100644 eslint.config.js delete mode 100644 jupyterlab_latex/_version.py delete mode 100644 setup.cfg delete mode 100644 setupbase.py diff --git a/.copier-answers.yml b/.copier-answers.yml new file mode 100644 index 0000000..8bfe08c --- /dev/null +++ b/.copier-answers.yml @@ -0,0 +1,14 @@ +# Changes here will be overwritten by Copier; NEVER EDIT MANUALLY +_commit: v4.3.5 +_src_path: https://github.com/jupyterlab/extension-template +author_email: jupyter@googlegroups.com +author_name: Jupyter Development Team +has_binder: true +has_settings: true +kind: server +labextension_name: '@jupyterlab/latex' +project_short_description: JupyterLab extension for running LaTeX +python_name: jupyterlab_latex +repository: https://github.com/jupyterlab/jupyterlab-latex +test: false + diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..10ab7b7 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,9 @@ +node_modules +dist +coverage +*.d.ts +style/**/*.js +jupyterlab_latex/labextension/static/*.js +lib/**/*.js +src/error.tsx +eslint.config.js \ No newline at end of file diff --git a/.github/workflows/binder-on-pr.yml b/.github/workflows/binder-on-pr.yml new file mode 100644 index 0000000..c9c2ac6 --- /dev/null +++ b/.github/workflows/binder-on-pr.yml @@ -0,0 +1,14 @@ +name: Binder Badge +on: + pull_request_target: + types: [opened] + +jobs: + binder: + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - uses: jupyterlab/maintainer-tools/.github/actions/binder-link@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6085b79..3c632cc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,52 +6,93 @@ on: pull_request: branches: '*' +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + jobs: build: runs-on: ubuntu-latest + steps: - name: Checkout - uses: actions/checkout@v3.5.2 - - name: Install node - uses: actions/setup-node@v3 + uses: actions/checkout@v4 + + - name: Base Setup + uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + + - name: Install dependencies + run: python -m pip install -U "jupyterlab>=4.0.0,<5" + + - name: Lint the extension + run: | + set -eux + jlpm + jlpm run lint:check + + - name: Build the extension + run: | + set -eux + python -m pip install .[test] + + jupyter server extension list + jupyter server extension list 2>&1 | grep -ie "jupyterlab_latex.*OK" + + jupyter labextension list + jupyter labextension list 2>&1 | grep -ie "@jupyterlab/latex.*OK" + python -m jupyterlab.browser_check + + - name: Package the extension + run: | + set -eux + + pip install build + python -m build + pip uninstall -y "jupyterlab_latex" jupyterlab + + - name: Upload extension packages + uses: actions/upload-artifact@v4 with: - node-version: '18.x' + name: extension-artifacts + path: dist/jupyterlab_latex* + if-no-files-found: error + + test_isolated: + needs: build + runs-on: ubuntu-latest + + steps: - name: Install Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: - python-version: '3.10' + python-version: '3.9' architecture: 'x64' - - - - name: Setup pip cache - uses: actions/cache@v3 - with: - path: ~/.cache/pip - key: pip-3.8-${{ hashFiles('package.json') }} - restore-keys: | - pip-3.8- - pip- - - - name: Get yarn cache directory path - id: yarn-cache-dir-path - run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT - - name: Setup yarn cache - uses: actions/cache@v3 - id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) + - uses: actions/download-artifact@v4 with: - path: ${{ steps.yarn-cache-dir-path.outputs.dir }} - key: yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - yarn- - - - name: Install dependencies - run: python -m pip install -U jupyter_packaging~=0.12.3 jupyterlab~=4.0.0 pip wheel - - name: Install the extension + name: extension-artifacts + - name: Install and Test run: | set -eux - python -m pip install . - - name: Integration test - run: | + # Remove NodeJS, twice to take care of system and locally installed node versions. + sudo rm -rf $(which node) + sudo rm -rf $(which node) + + pip install "jupyterlab>=4.0.0,<5" jupyterlab_latex*.whl + + + jupyter server extension list jupyter server extension list 2>&1 | grep -ie "jupyterlab_latex.*OK" + + jupyter labextension list jupyter labextension list 2>&1 | grep -ie "@jupyterlab/latex.*OK" + python -m jupyterlab.browser_check --no-browser-test + + check_links: + name: Check Links + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + - uses: jupyterlab/maintainer-tools/.github/actions/check-links@v1 diff --git a/.github/workflows/check-release.yml b/.github/workflows/check-release.yml new file mode 100644 index 0000000..53e7ed0 --- /dev/null +++ b/.github/workflows/check-release.yml @@ -0,0 +1,30 @@ +name: Check Release +on: + push: + branches: ["master"] + pull_request: + branches: ["*"] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + check_release: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Base Setup + uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + - name: Check Release + uses: jupyter-server/jupyter_releaser/.github/actions/check-release@v2 + with: + + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Upload Distributions + uses: actions/upload-artifact@v4 + with: + name: jupyterlab_latex-releaser-dist-${{ github.run_number }} + path: .jupyter_releaser_checkout/dist diff --git a/.github/workflows/enforce-label.yml b/.github/workflows/enforce-label.yml new file mode 100644 index 0000000..725feab --- /dev/null +++ b/.github/workflows/enforce-label.yml @@ -0,0 +1,13 @@ +name: Enforce PR label + +on: + pull_request: + types: [labeled, unlabeled, opened, edited, synchronize] +jobs: + enforce-label: + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - name: enforce-triage-label + uses: jupyterlab/maintainer-tools/.github/actions/enforce-label@v1 diff --git a/.github/workflows/prep-release.yml b/.github/workflows/prep-release.yml new file mode 100644 index 0000000..67ecd98 --- /dev/null +++ b/.github/workflows/prep-release.yml @@ -0,0 +1,48 @@ +name: "Step 1: Prep Release" +on: + workflow_dispatch: + inputs: + version_spec: + description: "New Version Specifier" + default: "next" + required: false + branch: + description: "The branch to target" + required: false + post_version_spec: + description: "Post Version Specifier" + required: false + # silent: + # description: "Set a placeholder in the changelog and don't publish the release." + # required: false + # type: boolean + since: + description: "Use PRs with activity since this date or git reference" + required: false + since_last_stable: + description: "Use PRs with activity since the last stable git tag" + required: false + type: boolean +jobs: + prep_release: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + + - name: Prep Release + id: prep-release + uses: jupyter-server/jupyter_releaser/.github/actions/prep-release@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + version_spec: ${{ github.event.inputs.version_spec }} + # silent: ${{ github.event.inputs.silent }} + post_version_spec: ${{ github.event.inputs.post_version_spec }} + branch: ${{ github.event.inputs.branch }} + since: ${{ github.event.inputs.since }} + since_last_stable: ${{ github.event.inputs.since_last_stable }} + + - name: "** Next Step **" + run: | + echo "Optional): Review Draft Release: ${{ steps.prep-release.outputs.release_url }}" diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml new file mode 100644 index 0000000..c188106 --- /dev/null +++ b/.github/workflows/publish-release.yml @@ -0,0 +1,58 @@ +name: "Step 2: Publish Release" +on: + workflow_dispatch: + inputs: + branch: + description: "The target branch" + required: false + release_url: + description: "The URL of the draft GitHub release" + required: false + steps_to_skip: + description: "Comma separated list of steps to skip" + required: false + +jobs: + publish_release: + runs-on: ubuntu-latest + environment: release + permissions: + id-token: write + steps: + - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + + - uses: actions/create-github-app-token@v1 + id: app-token + with: + app-id: ${{ vars.APP_ID }} + private-key: ${{ secrets.APP_PRIVATE_KEY }} + + - name: Populate Release + id: populate-release + uses: jupyter-server/jupyter_releaser/.github/actions/populate-release@v2 + with: + token: ${{ steps.app-token.outputs.token }} + branch: ${{ github.event.inputs.branch }} + release_url: ${{ github.event.inputs.release_url }} + steps_to_skip: ${{ github.event.inputs.steps_to_skip }} + + - name: Finalize Release + id: finalize-release + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + uses: jupyter-server/jupyter_releaser/.github/actions/finalize-release@v2 + with: + token: ${{ steps.app-token.outputs.token }} + release_url: ${{ steps.populate-release.outputs.release_url }} + + - name: "** Next Step **" + if: ${{ success() }} + run: | + echo "Verify the final release" + echo ${{ steps.finalize-release.outputs.release_url }} + + - name: "** Failure Message **" + if: ${{ failure() }} + run: | + echo "Failed to Publish the Draft Release Url:" + echo ${{ steps.populate-release.outputs.release_url }} diff --git a/.gitignore b/.gitignore index 3ad5ac0..df5efaf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,121 @@ -.ipynb_checkpoints/ *.bundle.* -*.gz -*.pdf -dist/ -jupyterlab_latex.egg-info/ -jupyterlab_latex/__pycache__/ -jupyterlab_latex/labextension/ lib/ node_modules/ -npm-debug.log -test/build/* -/.yarn +*.log +.eslintcache +.stylelintcache +*.egg-info/ +.ipynb_checkpoints +*.tsbuildinfo +jupyterlab_latex/labextension +# Version file is handled by hatchling +jupyterlab_latex/_version.py + +# Created by https://www.gitignore.io/api/python +# Edit at https://www.gitignore.io/?templates=python + +### Python ### +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage/ +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# Mr Developer +.mr.developer.cfg +.project +.pydevproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# End of https://www.gitignore.io/api/python + +# OSX files +.DS_Store + +# Yarn cache +.yarn/ diff --git a/.prettierignore b/.prettierignore index c8243f2..fc864ad 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,4 +1,6 @@ -**/lib/ -dist/ -jupyterlab_latex/labextension/ -node_modules/ +node_modules +**/node_modules +**/lib +./**/package.json +package.json +jupyterlab_latex \ No newline at end of file diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 92cde39..0000000 --- a/.prettierrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "singleQuote": true -} \ No newline at end of file diff --git a/.yarnrc.yml b/.yarnrc.yml index fe1125f..3186f3f 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -1,3 +1 @@ -enableImmutableInstalls: false - nodeLinker: node-modules diff --git a/docs/changelog.md b/CHANGELOG.md similarity index 76% rename from docs/changelog.md rename to CHANGELOG.md index a4f7d1f..9efb10d 100644 --- a/docs/changelog.md +++ b/CHANGELOG.md @@ -1,8 +1,22 @@ # Changelog for `jupyterlab_latex` + + + + +- **4.1.0**: + + - Migrate to [JupyterLab extension template](https://github.com/jupyterlab/extension-template) + - Minor JS changes + +- **4.0.0**: + + - Update to JupyterLab 4.0 + - Update to Lumino 2 + - **3.2.0**: - - Minimum supported JupyterLab is 3.6.0 + - Update to JupyterLab 3.6.0 - Bump JS and Python dependencies - Fix build issues diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index d350098..0000000 --- a/MANIFEST.in +++ /dev/null @@ -1,3 +0,0 @@ -include setupbase.py -include README.md -include package.json diff --git a/README.md b/README.md index 50c359e..026df4e 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ and see the block like this in the output jupyterlab_latex enabled - Validating jupyterlab_latex... Package jupyterlab_latex took 0.0010s to import - jupyterlab_latex 4.0.0 OK + jupyterlab_latex 4.1.0 OK ``` then @@ -130,7 +130,7 @@ The `jlpm` command is JupyterLab's pinned version of To simplify the development setup, you can use the following Conda environment: ``` -conda create -n jupyterlab-latex-env -c conda-forge python=3.10 jupyterlab=4.0.0 jupyter_packaging=0.12.3 nodejs=18 +conda create -n jupyterlab-latex-env -c conda-forge python=3.10 jupyterlab=4.0.0 hatchling=1.17.0 nodejs=18 conda activate jupyterlab-latex-env ``` @@ -163,4 +163,4 @@ With the watch command running, every saved change will immediately be built loc ## Changes -For information on the changes with different versions of the `jupyterlab-latex` library, see our [changelog](./docs/changelog.md) +For information on the changes with different versions of the `jupyterlab-latex` library, see our [changelog](./CHANGELOG.md) diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..81dd9e2 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,25 @@ +module.exports = { + overrides: [ + { + files: ['**/*.ts', '**/*.tsx'], + parser: '@typescript-eslint/parser', + parserOptions: { + project: 'tsconfig.json', + sourceType: 'module' + }, + plugins: ['@typescript-eslint'], + rules: { + // TypeScript rules here + } + }, + { + files: ['**/*.js'], + parserOptions: { + // No project option needed for JS files + }, + rules: { + // JavaScript rules here + } + } + ] +}; diff --git a/jupyterlab_latex/__init__.py b/jupyterlab_latex/__init__.py index 2a467a1..40a76ad 100644 --- a/jupyterlab_latex/__init__.py +++ b/jupyterlab_latex/__init__.py @@ -1,8 +1,7 @@ """ JupyterLab LaTex : live LaTeX editing for JupyterLab """ -from ._version import __version__, __js__ +from ._version import __version__ __all__ = [ - "__js__", "__version__", "_jupyter_labextension_paths", "_jupyter_server_extension_paths", @@ -17,7 +16,7 @@ def _jupyter_labextension_paths(): return [{ "src": "labextension", - "dest": __js__["name"] + "dest": "@jupyterlab/latex" }] def _jupyter_server_extension_points(): diff --git a/jupyterlab_latex/_version.py b/jupyterlab_latex/_version.py deleted file mode 100644 index b0f1c11..0000000 --- a/jupyterlab_latex/_version.py +++ /dev/null @@ -1,22 +0,0 @@ -import json -from pathlib import Path - -__all__ = ["__version__", "__js__"] - -def _fetchJS(): - settings = Path(__file__).parent.resolve() / "labextension/package.json" - - try: - with settings.open() as f: - return json.load(f) - except FileNotFoundError: - pass - - raise FileNotFoundError(f"Could not find package.json at {settings!s}") - - -def _fetchVersion(): - return _fetchJS()["version"] - -__js__ = _fetchJS() -__version__ = _fetchVersion() \ No newline at end of file diff --git a/package.json b/package.json index c431876..7ebce4e 100644 --- a/package.json +++ b/package.json @@ -1,32 +1,23 @@ { "name": "@jupyterlab/latex", - "version": "4.0.0", + "version": "4.1.0", "description": "JupyterLab extension for running LaTeX", - "keywords": [ - "jupyter", - "jupyterlab", - "jupyterlab-extension", - "latex" - ], + "keywords": ["jupyter", "jupyterlab", "jupyterlab-extension", "latex"], "homepage": "https://github.com/jupyterlab/jupyterlab-latex", "bugs": { "url": "https://github.com/jupyterlab/jupyterlab-latex/issues" }, - "repository": { - "type": "git", - "url": "https://github.com/jupyterlab/jupyterlab-latex.git" - }, "license": "BSD-3-Clause", "author": { "name": "Jupyter Development Team", "email": "jupyter@googlegroups.com" }, "files": [ + "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}", + "style/**/*.{css,js,eot,gif,html,jpg,json,png,svg,woff2,ttf}", + "schema/*.json", "lib/*/*d.ts", "lib/*/*.js", - "lib/*.d.ts", - "lib/*.js", - "schema/*.json", "style/*.*", "style/index.js" ], @@ -34,26 +25,37 @@ "lib": "lib/" }, "main": "lib/index.js", + "types": "lib/index.d.ts", + "style": "style/index.css", + "repository": { + "type": "git", + "url": "https://github.com/jupyterlab/jupyterlab-latex.git" + }, "scripts": { "build": "jlpm build:lib && jlpm build:labextension:dev", - "build:prod": "jlpm clean && jlpm build:lib && jlpm build:labextension", + "build:prod": "jlpm clean && jlpm build:lib:prod && jlpm build:labextension", "build:labextension": "jupyter labextension build .", "build:labextension:dev": "jupyter labextension build --development True .", - "build:lib": "tsc", + "build:lib": "tsc --sourceMap", + "build:lib:prod": "tsc", "clean": "jlpm clean:lib", "clean:lib": "rimraf lib tsconfig.tsbuildinfo", - "clean:labextension": "rimraf jupyterlab-latex/labextension", - "clean:all": "jlpm clean:lib && jlpm clean:labextension", - "precommit": "lint-staged", - "prettier": "prettier --write '**/*{.ts,.tsx,.js,.jsx,.css,.json,.md}'", + "clean:lintcache": "rimraf .eslintcache .stylelintcache", + "clean:labextension": "rimraf jupyterlab_latex/labextension jupyterlab_latex/_version.py", + "clean:all": "jlpm clean:lib && jlpm clean:labextension && jlpm clean:lintcache", + "eslint": "jlpm eslint:check --fix", + "eslint:check": "eslint . --cache", "install:extension": "jlpm build", - "watch": "tsc -w" - }, - "lint-staged": { - "**/*{.ts,.tsx,.css,.json,.md}": [ - "prettier --write", - "git add" - ] + "lint": "jlpm stylelint && jlpm prettier && jlpm eslint", + "lint:check": "jlpm stylelint:check && jlpm prettier:check && jlpm eslint:check", + "prettier": "jlpm prettier:base --write --list-different", + "prettier:base": "prettier \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md}\"", + "prettier:check": "jlpm prettier:base --check", + "stylelint": "jlpm stylelint:check --fix", + "stylelint:check": "stylelint --cache \"style/**/*.css\"", + "watch": "run-p watch:src watch:labextension", + "watch:src": "tsc -w --sourceMap", + "watch:labextension": "jupyter labextension watch ." }, "dependencies": { "@jupyterlab/application": "^4.0.0", @@ -104,14 +106,29 @@ "stylelint-config-prettier": "^9.0.4", "stylelint-config-recommended": "^8.0.0", "stylelint-config-standard": "^26.0.0", + "stylelint-csstree-validator": "^3.0.0", "stylelint-prettier": "^2.0.0", "tslint": "^5.18.0", "tslint-config-prettier": "^1.18.0", "tslint-plugin-prettier": "^2.0.1", "typescript": "~5.0.4" }, + "sideEffects": ["style/*.css", "style/index.js"], + "styleModule": "style/index.js", + "publishConfig": { + "access": "public" + }, "jupyterlab": { - "extension": "lib/index.js", + "discovery": { + "server": { + "managers": ["pip"], + "base": { + "name": "jupyterlab_latex" + } + } + }, + "extension": true, + "outputDir": "jupyterlab_latex/labextension", "schemaDir": "schema", "sharedPackages": { "pdfjs-dist": { @@ -119,8 +136,89 @@ "singleton": true, "strictVersion": true } + } + }, + "eslintIgnore": ["node_modules", "dist", "coverage", "**/*.d.ts"], + "eslintConfig": { + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", + "plugin:prettier/recommended" + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "project": "tsconfig.json", + "sourceType": "module" }, - "outputDir": "jupyterlab_latex/labextension" + "plugins": ["@typescript-eslint"], + "rules": { + "@typescript-eslint/naming-convention": [ + "error", + { + "selector": "interface", + "format": ["PascalCase"], + "custom": { + "regex": "^I[A-Z]", + "match": true + } + } + ], + "@typescript-eslint/no-unused-vars": [ + "warn", + { + "args": "none" + } + ], + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/no-use-before-define": "off", + "@typescript-eslint/quotes": [ + "error", + "single", + { + "avoidEscape": true, + "allowTemplateLiterals": false + } + ], + "curly": ["error", "all"], + "eqeqeq": "error", + "prefer-arrow-callback": "error" + } + }, + "prettier": { + "singleQuote": true, + "trailingComma": "none", + "arrowParens": "avoid", + "endOfLine": "auto", + "overrides": [ + { + "files": "*.json", + "options": { + "parser": "json" + } + }, + { + "files": "*.md", + "options": { + "parser": "markdown" + } + } + ] }, - "styleModule": "style/index.js" + "stylelint": { + "extends": [ + "stylelint-config-recommended", + "stylelint-config-standard", + "stylelint-prettier/recommended" + ], + "plugins": ["stylelint-csstree-validator"], + "rules": { + "csstree/validator": true, + "property-no-vendor-prefix": null, + "selector-class-pattern": "^([a-z][A-z\\d]*)(-[A-z\\d]+)*$", + "selector-no-vendor-prefix": null, + "value-no-vendor-prefix": null + } + } } diff --git a/pyproject.toml b/pyproject.toml index f38930f..7ac55f6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,32 +1,82 @@ [build-system] -requires = [ - "jupyter_packaging~=0.12,<2", - "jupyterlab==4.0.0" -] -build-backend = "jupyter_packaging.build_api" +requires = ["hatchling>=1.5.0", "jupyterlab>=4.0.0,<5", "hatch-nodejs-version>=0.3.2"] +build-backend = "hatchling.build" -[tool.jupyter-packaging.options] -skip-if-exists = [ - "jupyterlab_latex/labextension/static/style.js" +[project] +name = "jupyterlab_latex" +readme = "README.md" +license = { file = "LICENSE" } +requires-python = ">=3.8" +classifiers = [ + "Framework :: Jupyter", + "Framework :: Jupyter :: JupyterLab", + "Framework :: Jupyter :: JupyterLab :: 4", + "Framework :: Jupyter :: JupyterLab :: Extensions", + "Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt", + "License :: OSI Approved :: BSD License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", +] +dependencies = [ + "jupyter_server>=2.0.1,<3" ] +dynamic = ["version", "description", "authors", "urls", "keywords"] + +[tool.hatch.version] +source = "nodejs" + +[tool.hatch.metadata.hooks.nodejs] +fields = ["description", "authors", "urls", "keywords"] + +[tool.hatch.build.targets.sdist] +artifacts = ["jupyterlab_latex/labextension"] +exclude = [".github", "binder"] + +[tool.hatch.build.targets.wheel.shared-data] +"jupyterlab_latex/labextension/static" = "share/jupyter/labextensions/@jupyterlab/latex/static" +"install.json" = "share/jupyter/labextensions/@jupyterlab/latex/install.json" +"jupyterlab_latex/labextension/package.json" = "share/jupyter/labextensions/@jupyterlab/latex/package.json" +"jupyterlab_latex/labextension/schemas/@jupyterlab/latex" = "share/jupyter/labextensions/@jupyterlab/latex/schemas/@jupyterlab/latex" +"jupyter-config/server-config" = "etc/jupyter/jupyter_server_config.d" +"jupyter-config/nb-config" = "etc/jupyter/jupyter_notebook_config.d" + +[tool.hatch.build.hooks.version] +path = "jupyterlab_latex/_version.py" + +[tool.hatch.build.hooks.jupyter-builder] +dependencies = ["hatch-jupyter-builder>=0.5"] +build-function = "hatch_jupyter_builder.npm_builder" ensured-targets = [ + "jupyterlab_latex/labextension/static/style.js", "jupyterlab_latex/labextension/package.json", - "jupyterlab_latex/labextension/static/style.js", ] +skip-if-exists = ["jupyterlab_latex/labextension/static/style.js"] -[tool.jupyter-packaging.builder] -factory = "jupyter_packaging.npm_builder" - -[tool.jupyter-packaging.build-args] +[tool.hatch.build.hooks.jupyter-builder.build-kwargs] build_cmd = "build:prod" -npm = [ - "jlpm" -] +npm = ["jlpm"] -[tool.check-manifest] -ignore = [ - ".*", - "jupyterlab_latex/labextension/**", - "package-lock.json", - "yarn.lock" +[tool.hatch.build.hooks.jupyter-builder.editable-build-kwargs] +build_cmd = "install:extension" +npm = ["jlpm"] +source_dir = "src" +build_dir = "jupyterlab_latex/labextension" + +[tool.jupyter-releaser.options] +version_cmd = "hatch version" + +[tool.jupyter-releaser.hooks] +before-build-npm = [ + "python -m pip install 'jupyterlab>=4.0.0,<5'", + "jlpm", + "jlpm build:prod" ] +before-build-python = ["jlpm clean:all"] + +[tool.check-wheel-contents] +ignore = ["W002"] diff --git a/schema/plugin.json b/schema/plugin.json index 4c77afb..2528210 100644 --- a/schema/plugin.json +++ b/schema/plugin.json @@ -1,8 +1,10 @@ { + "jupyter.lab.shortcuts": [], "jupyter.lab.setting-icon-class": "jp-FileIcon", "jupyter.lab.setting-icon-label": "LaTeX", "title": "LaTeX", "description": "LaTeX settings.", + "type": "object", "properties": { "synctex": { "type": "boolean", @@ -11,6 +13,5 @@ "default": true } }, - "additionalProperties": false, - "type": "object" + "additionalProperties": false } diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 8183238..0000000 --- a/setup.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[metadata] -license_files = LICENSE diff --git a/setup.py b/setup.py index 7a0eddf..aefdf20 100644 --- a/setup.py +++ b/setup.py @@ -1,94 +1 @@ -""" -Setup module for the jupyterlab-latex -""" -import json -from pathlib import Path - -import setuptools -try: - from jupyter_packaging import ( - wrap_installers, - npm_builder, - get_data_files - ) - try: - import jupyterlab - except ImportError as e: - print("`jupyterlab` is missing. Install it with pip or conda.") - raise e -except ImportError as e: - print("`jupyter-packaging` is missing. Install it with pip or conda.") - raise e - -HERE = Path(__file__).parent.resolve() - -# The name of the project -name = "jupyterlab_latex" - -lab_path = (HERE / name.replace("-", "_") / "labextension") - -# Representative files that should exist after a successful build -ensured_targets = [ - str(lab_path / "package.json"), - str(lab_path / "static/style.js") -] - -labext_name = "@jupyterlab/latex" - -data_files_spec = [ - ("share/jupyter/labextensions/%s" % labext_name, str(lab_path.relative_to(HERE)), "**"), - ("share/jupyter/labextensions/%s" % labext_name, str('.'), "install.json"),("etc/jupyter/jupyter_server_config.d", - "jupyter-config/server-config", "jupyterlab_latex.json"), - # For backward compatibility with notebook server - ("etc/jupyter/jupyter_notebook_config.d", - "jupyter-config/nb-config", "jupyterlab_latex.json"), - -] - -long_description = (HERE / "README.md").read_text() - -# Get the package info from package.json -pkg_json = json.loads((HERE / "package.json").read_bytes()) - -post_develop = npm_builder( - build_cmd="install:extension", source_dir="src", build_dir=lab_path -) - -setup_dict = dict( - name=name, - version=pkg_json["version"], - description=pkg_json["description"], - packages=setuptools.find_packages(), - data_files=get_data_files(data_files_spec), - author=pkg_json["author"]["name"], - author_email=pkg_json["author"]["email"], - url=pkg_json["homepage"], - license=pkg_json["license"], - long_description=long_description, - long_description_content_type="text/markdown", - zip_safe=False, - include_package_data=True, - keywords= ['Jupyter', 'JupyterLab', 'LaTeX'], - python_requires = '>=3.8', - classifiers = [ - 'Intended Audience :: Developers', - 'Intended Audience :: System Administrators', - 'Intended Audience :: Science/Research', - 'License :: OSI Approved :: BSD License', - 'Programming Language :: Python', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', - 'Programming Language :: Python :: 3.10', - 'Programming Language :: Python :: 3.11', - 'Framework :: Jupyter', - ], - install_requires=[ - 'jupyterlab>=4,<5', - 'jupyter_server>=2,<3' - ], - cmdclass=wrap_installers(post_develop=post_develop, ensured_targets=ensured_targets) -) - -if __name__ == "__main__": - setuptools.setup(**setup_dict) +__import__("setuptools").setup() diff --git a/setupbase.py b/setupbase.py deleted file mode 100644 index cc0ebae..0000000 --- a/setupbase.py +++ /dev/null @@ -1,703 +0,0 @@ -#!/usr/bin/env python -# coding: utf-8 - -# Copyright (c) Jupyter Development Team. -# Distributed under the terms of the Modified BSD License. - -""" -This file originates from the 'jupyter-packaging' package, and -contains a set of useful utilities for including npm packages -within a Python package. -""" -from collections import defaultdict -from os.path import join as pjoin -import io -import os -import functools -import pipes -import re -import shlex -import subprocess -import sys - - -# BEFORE importing distutils, remove MANIFEST. distutils doesn't properly -# update it when the contents of directories change. -if os.path.exists('MANIFEST'): os.remove('MANIFEST') - - -from distutils.cmd import Command -from distutils.command.build_py import build_py -from distutils.command.sdist import sdist -from distutils import log - -from setuptools.command.develop import develop -from setuptools.command.bdist_egg import bdist_egg - -try: - from wheel.bdist_wheel import bdist_wheel -except ImportError: - bdist_wheel = None - -if sys.platform == 'win32': - from subprocess import list2cmdline -else: - def list2cmdline(cmd_list): - return ' '.join(map(pipes.quote, cmd_list)) - - -__version__ = '0.2.0' - -# --------------------------------------------------------------------------- -# Top Level Variables -# --------------------------------------------------------------------------- - -HERE = os.path.abspath(os.path.dirname(__file__)) -is_repo = os.path.exists(pjoin(HERE, '.git')) -node_modules = pjoin(HERE, 'node_modules') - -SEPARATORS = os.sep if os.altsep is None else os.sep + os.altsep - -npm_path = ':'.join([ - pjoin(HERE, 'node_modules', '.bin'), - os.environ.get('PATH', os.defpath), -]) - -if "--skip-npm" in sys.argv: - print("Skipping npm install as requested.") - skip_npm = True - sys.argv.remove("--skip-npm") -else: - skip_npm = False - - -# --------------------------------------------------------------------------- -# Public Functions -# --------------------------------------------------------------------------- - -def get_version(file, name='__version__'): - """Get the version of the package from the given file by - executing it and extracting the given `name`. - """ - path = os.path.realpath(file) - version_ns = {} - with io.open(path, encoding="utf8") as f: - exec(f.read(), {}, version_ns) - return version_ns[name] - - -def ensure_python(specs): - """Given a list of range specifiers for python, ensure compatibility. - """ - if not isinstance(specs, (list, tuple)): - specs = [specs] - v = sys.version_info - part = '%s.%s' % (v.major, v.minor) - for spec in specs: - if part == spec: - return - try: - if eval(part + spec): - return - except SyntaxError: - pass - raise ValueError('Python version %s unsupported' % part) - - -def find_packages(top=HERE): - """ - Find all of the packages. - """ - packages = [] - for d, dirs, _ in os.walk(top, followlinks=True): - if os.path.exists(pjoin(d, '__init__.py')): - packages.append(os.path.relpath(d, top).replace(os.path.sep, '.')) - elif d != top: - # Do not look for packages in subfolders if current is not a package - dirs[:] = [] - return packages - - -def update_package_data(distribution): - """update build_py options to get package_data changes""" - build_py = distribution.get_command_obj('build_py') - build_py.finalize_options() - - -class bdist_egg_disabled(bdist_egg): - """Disabled version of bdist_egg - - Prevents setup.py install performing setuptools' default easy_install, - which it should never ever do. - """ - def run(self): - sys.exit("Aborting implicit building of eggs. Use `pip install .` " - " to install from source.") - - -def create_cmdclass(prerelease_cmd=None, package_data_spec=None, - data_files_spec=None): - """Create a command class with the given optional prerelease class. - - Parameters - ---------- - prerelease_cmd: (name, Command) tuple, optional - The command to run before releasing. - package_data_spec: dict, optional - A dictionary whose keys are the dotted package names and - whose values are a list of glob patterns. - data_files_spec: list, optional - A list of (path, dname, pattern) tuples where the path is the - `data_files` install path, dname is the source directory, and the - pattern is a glob pattern. - - Notes - ----- - We use specs so that we can find the files *after* the build - command has run. - - The package data glob patterns should be relative paths from the package - folder containing the __init__.py file, which is given as the package - name. - e.g. `dict(foo=['./bar/*', './baz/**'])` - - The data files directories should be absolute paths or relative paths - from the root directory of the repository. Data files are specified - differently from `package_data` because we need a separate path entry - for each nested folder in `data_files`, and this makes it easier to - parse. - e.g. `('share/foo/bar', 'pkgname/bizz, '*')` - """ - wrapped = [prerelease_cmd] if prerelease_cmd else [] - if package_data_spec or data_files_spec: - wrapped.append('handle_files') - wrapper = functools.partial(_wrap_command, wrapped) - handle_files = _get_file_handler(package_data_spec, data_files_spec) - - if 'bdist_egg' in sys.argv: - egg = wrapper(bdist_egg, strict=True) - else: - egg = bdist_egg_disabled - - cmdclass = dict( - build_py=wrapper(build_py, strict=is_repo), - bdist_egg=egg, - sdist=wrapper(sdist, strict=True), - handle_files=handle_files, - ) - - if bdist_wheel: - cmdclass['bdist_wheel'] = wrapper(bdist_wheel, strict=True) - - cmdclass['develop'] = wrapper(develop, strict=True) - return cmdclass - - -def command_for_func(func): - """Create a command that calls the given function.""" - - class FuncCommand(BaseCommand): - - def run(self): - func() - update_package_data(self.distribution) - - return FuncCommand - - -def run(cmd, **kwargs): - """Echo a command before running it. Defaults to repo as cwd""" - log.info('> ' + list2cmdline(cmd)) - kwargs.setdefault('cwd', HERE) - kwargs.setdefault('shell', os.name == 'nt') - if not isinstance(cmd, (list, tuple)) and os.name != 'nt': - cmd = shlex.split(cmd) - cmd[0] = which(cmd[0]) - return subprocess.check_call(cmd, **kwargs) - - -def is_stale(target, source): - """Test whether the target file/directory is stale based on the source - file/directory. - """ - if not os.path.exists(target): - return True - target_mtime = recursive_mtime(target) or 0 - return compare_recursive_mtime(source, cutoff=target_mtime) - - -class BaseCommand(Command): - """Empty command because Command needs subclasses to override too much""" - user_options = [] - - def initialize_options(self): - pass - - def finalize_options(self): - pass - - def get_inputs(self): - return [] - - def get_outputs(self): - return [] - - -def combine_commands(*commands): - """Return a Command that combines several commands.""" - - class CombinedCommand(Command): - user_options = [] - - def initialize_options(self): - self.commands = [] - for C in commands: - self.commands.append(C(self.distribution)) - for c in self.commands: - c.initialize_options() - - def finalize_options(self): - for c in self.commands: - c.finalize_options() - - def run(self): - for c in self.commands: - c.run() - return CombinedCommand - - -def compare_recursive_mtime(path, cutoff, newest=True): - """Compare the newest/oldest mtime for all files in a directory. - - Cutoff should be another mtime to be compared against. If an mtime that is - newer/older than the cutoff is found it will return True. - E.g. if newest=True, and a file in path is newer than the cutoff, it will - return True. - """ - if os.path.isfile(path): - mt = mtime(path) - if newest: - if mt > cutoff: - return True - elif mt < cutoff: - return True - for dirname, _, filenames in os.walk(path, topdown=False): - for filename in filenames: - mt = mtime(pjoin(dirname, filename)) - if newest: # Put outside of loop? - if mt > cutoff: - return True - elif mt < cutoff: - return True - return False - - -def recursive_mtime(path, newest=True): - """Gets the newest/oldest mtime for all files in a directory.""" - if os.path.isfile(path): - return mtime(path) - current_extreme = None - for dirname, dirnames, filenames in os.walk(path, topdown=False): - for filename in filenames: - mt = mtime(pjoin(dirname, filename)) - if newest: # Put outside of loop? - if mt >= (current_extreme or mt): - current_extreme = mt - elif mt <= (current_extreme or mt): - current_extreme = mt - return current_extreme - - -def mtime(path): - """shorthand for mtime""" - return os.stat(path).st_mtime - - -def install_npm(path=None, build_dir=None, source_dir=None, build_cmd='build', force=False, npm=None): - """Return a Command for managing an npm installation. - - Note: The command is skipped if the `--skip-npm` flag is used. - - Parameters - ---------- - path: str, optional - The base path of the node package. Defaults to the repo root. - build_dir: str, optional - The target build directory. If this and source_dir are given, - the JavaScript will only be build if necessary. - source_dir: str, optional - The source code directory. - build_cmd: str, optional - The npm command to build assets to the build_dir. - npm: str or list, optional. - The npm executable name, or a tuple of ['node', executable]. - """ - - class NPM(BaseCommand): - description = 'install package.json dependencies using npm' - - def run(self): - if skip_npm: - log.info('Skipping npm-installation') - return - node_package = path or HERE - node_modules = pjoin(node_package, 'node_modules') - is_yarn = os.path.exists(pjoin(node_package, 'yarn.lock')) - - npm_cmd = npm - - if npm is None: - if is_yarn: - npm_cmd = ['yarn'] - else: - npm_cmd = ['npm'] - - if not which(npm_cmd[0]): - log.error("`{0}` unavailable. If you're running this command " - "using sudo, make sure `{0}` is availble to sudo" - .format(npm_cmd[0])) - return - - if force or is_stale(node_modules, pjoin(node_package, 'package.json')): - log.info('Installing build dependencies with npm. This may ' - 'take a while...') - run(npm_cmd + ['install'], cwd=node_package) - if build_dir and source_dir and not force: - should_build = is_stale(build_dir, source_dir) - else: - should_build = True - if should_build: - run(npm_cmd + ['run', build_cmd], cwd=node_package) - - return NPM - - -def ensure_targets(targets): - """Return a Command that checks that certain files exist. - - Raises a ValueError if any of the files are missing. - - Note: The check is skipped if the `--skip-npm` flag is used. - """ - - class TargetsCheck(BaseCommand): - def run(self): - if skip_npm: - log.info('Skipping target checks') - return - missing = [t for t in targets if not os.path.exists(t)] - if missing: - raise ValueError(('missing files: %s' % missing)) - - return TargetsCheck - - -# `shutils.which` function copied verbatim from the Python-3.3 source. -def which(cmd, mode=os.F_OK | os.X_OK, path=None): - """Given a command, mode, and a PATH string, return the path which - conforms to the given mode on the PATH, or None if there is no such - file. - `mode` defaults to os.F_OK | os.X_OK. `path` defaults to the result - of os.environ.get("PATH"), or can be overridden with a custom search - path. - """ - - # Check that a given file can be accessed with the correct mode. - # Additionally check that `file` is not a directory, as on Windows - # directories pass the os.access check. - def _access_check(fn, mode): - return (os.path.exists(fn) and os.access(fn, mode) and - not os.path.isdir(fn)) - - # Short circuit. If we're given a full path which matches the mode - # and it exists, we're done here. - if _access_check(cmd, mode): - return cmd - - path = (path or os.environ.get("PATH", os.defpath)).split(os.pathsep) - - if sys.platform == "win32": - # The current directory takes precedence on Windows. - if os.curdir not in path: - path.insert(0, os.curdir) - - # PATHEXT is necessary to check on Windows. - pathext = os.environ.get("PATHEXT", "").split(os.pathsep) - # See if the given file matches any of the expected path extensions. - # This will allow us to short circuit when given "python.exe". - matches = [cmd for ext in pathext if cmd.lower().endswith(ext.lower())] - # If it does match, only test that one, otherwise we have to try - # others. - files = [cmd] if matches else [cmd + ext.lower() for ext in pathext] - else: - # On other platforms you don't have things like PATHEXT to tell you - # what file suffixes are executable, so just pass on cmd as-is. - files = [cmd] - - seen = set() - for dir in path: - dir = os.path.normcase(dir) - if dir not in seen: - seen.add(dir) - for thefile in files: - name = os.path.join(dir, thefile) - if _access_check(name, mode): - return name - return None - - -# --------------------------------------------------------------------------- -# Private Functions -# --------------------------------------------------------------------------- - - -def _wrap_command(cmds, cls, strict=True): - """Wrap a setup command - - Parameters - ---------- - cmds: list(str) - The names of the other commands to run prior to the command. - strict: boolean, optional - Wether to raise errors when a pre-command fails. - """ - class WrappedCommand(cls): - - def run(self): - if not getattr(self, 'uninstall', None): - try: - [self.run_command(cmd) for cmd in cmds] - except Exception: - if strict: - raise - else: - pass - # update package data - update_package_data(self.distribution) - - result = cls.run(self) - return result - return WrappedCommand - - -def _get_file_handler(package_data_spec, data_files_spec): - """Get a package_data and data_files handler command. - """ - class FileHandler(BaseCommand): - - def run(self): - package_data = self.distribution.package_data - package_spec = package_data_spec or dict() - - for (key, patterns) in package_spec.items(): - package_data[key] = _get_package_data(key, patterns) - - self.distribution.data_files = _get_data_files( - data_files_spec, self.distribution.data_files - ) - - return FileHandler - - -def _get_data_files(data_specs, existing): - """Expand data file specs into valid data files metadata. - - Parameters - ---------- - data_specs: list of tuples - See [createcmdclass] for description. - existing: list of tuples - The existing distrubution data_files metadata. - - Returns - ------- - A valid list of data_files items. - """ - # Extract the existing data files into a staging object. - file_data = defaultdict(list) - for (path, files) in existing or []: - file_data[path] = files - - # Extract the files and assign them to the proper data - # files path. - for (path, dname, pattern) in data_specs or []: - dname = dname.replace(os.sep, '/') - offset = len(dname) + 1 - - files = _get_files(pjoin(dname, pattern)) - for fname in files: - # Normalize the path. - root = os.path.dirname(fname) - full_path = '/'.join([path, root[offset:]]) - if full_path.endswith('/'): - full_path = full_path[:-1] - file_data[full_path].append(fname) - - # Construct the data files spec. - data_files = [] - for (path, files) in file_data.items(): - data_files.append((path, files)) - return data_files - - -def _get_files(file_patterns, top=HERE): - """Expand file patterns to a list of paths. - - Parameters - ----------- - file_patterns: list or str - A list of glob patterns for the data file locations. - The globs can be recursive if they include a `**`. - They should be relative paths from the top directory or - absolute paths. - top: str - the directory to consider for data files - - Note: - Files in `node_modules` are ignored. - """ - if not isinstance(file_patterns, (list, tuple)): - file_patterns = [file_patterns] - - for i, p in enumerate(file_patterns): - if os.path.isabs(p): - file_patterns[i] = os.path.relpath(p, top) - - matchers = [_compile_pattern(p) for p in file_patterns] - - files = set() - - for root, dirnames, filenames in os.walk(top): - # Don't recurse into node_modules - if 'node_modules' in dirnames: - dirnames.remove('node_modules') - for m in matchers: - for filename in filenames: - fn = os.path.relpath(pjoin(root, filename), top) - if m(fn): - files.add(fn.replace(os.sep, '/')) - - return list(files) - - -def _get_package_data(root, file_patterns=None): - """Expand file patterns to a list of `package_data` paths. - - Parameters - ----------- - root: str - The relative path to the package root from `HERE`. - file_patterns: list or str, optional - A list of glob patterns for the data file locations. - The globs can be recursive if they include a `**`. - They should be relative paths from the root or - absolute paths. If not given, all files will be used. - - Note: - Files in `node_modules` are ignored. - """ - if file_patterns is None: - file_patterns = ['*'] - return _get_files(file_patterns, pjoin(HERE, root)) - - -def _compile_pattern(pat, ignore_case=True): - """Translate and compile a glob pattern to a regular expression matcher.""" - if isinstance(pat, bytes): - pat_str = pat.decode('ISO-8859-1') - res_str = _translate_glob(pat_str) - res = res_str.encode('ISO-8859-1') - else: - res = _translate_glob(pat) - flags = re.IGNORECASE if ignore_case else 0 - return re.compile(res, flags=flags).match - - -def _iexplode_path(path): - """Iterate over all the parts of a path. - - Splits path recursively with os.path.split(). - """ - (head, tail) = os.path.split(path) - if not head or (not tail and head == path): - if head: - yield head - if tail or not head: - yield tail - return - for p in _iexplode_path(head): - yield p - yield tail - - -def _translate_glob(pat): - """Translate a glob PATTERN to a regular expression.""" - translated_parts = [] - for part in _iexplode_path(pat): - translated_parts.append(_translate_glob_part(part)) - os_sep_class = '[%s]' % re.escape(SEPARATORS) - res = _join_translated(translated_parts, os_sep_class) - return '{res}\\Z(?ms)'.format(res=res) - - -def _join_translated(translated_parts, os_sep_class): - """Join translated glob pattern parts. - - This is different from a simple join, as care need to be taken - to allow ** to match ZERO or more directories. - """ - res = '' - for part in translated_parts[:-1]: - if part == '.*': - # drop separator, since it is optional - # (** matches ZERO or more dirs) - res += part - else: - res += part + os_sep_class - - if translated_parts[-1] == '.*': - # Final part is ** - res += '.+' - # Follow stdlib/git convention of matching all sub files/directories: - res += '({os_sep_class}?.*)?'.format(os_sep_class=os_sep_class) - else: - res += translated_parts[-1] - return res - - -def _translate_glob_part(pat): - """Translate a glob PATTERN PART to a regular expression.""" - # Code modified from Python 3 standard lib fnmatch: - if pat == '**': - return '.*' - i, n = 0, len(pat) - res = [] - while i < n: - c = pat[i] - i = i + 1 - if c == '*': - # Match anything but path separators: - res.append('[^%s]*' % SEPARATORS) - elif c == '?': - res.append('[^%s]?' % SEPARATORS) - elif c == '[': - j = i - if j < n and pat[j] == '!': - j = j + 1 - if j < n and pat[j] == ']': - j = j + 1 - while j < n and pat[j] != ']': - j = j + 1 - if j >= n: - res.append('\\[') - else: - stuff = pat[i:j].replace('\\', '\\\\') - i = j + 1 - if stuff[0] == '!': - stuff = '^' + stuff[1:] - elif stuff[0] == '^': - stuff = '\\' + stuff - res.append('[%s]' % stuff) - else: - res.append(re.escape(c)) - return ''.join(res) diff --git a/src/index.ts b/src/index.ts index 940a776..748e674 100644 --- a/src/index.ts +++ b/src/index.ts @@ -55,8 +55,7 @@ import '../style/index.css'; /** * A class that tracks editor widgets. */ -export interface IPDFJSTracker - extends IWidgetTracker> {} +export type IPDFJSTracker = IWidgetTracker>; /* tslint:disable */ /** @@ -252,7 +251,7 @@ function activateLatexPlugin( // a .tex document, open a LaTeX preview for it. const openPreview = (widget: IDocumentWidget) => { // If we can't find the document context, bail. - let texContext = manager.contextForWidget(widget); + const texContext = manager.contextForWidget(widget); if (!texContext) { return; } @@ -296,9 +295,9 @@ function activateLatexPlugin( (view: ISynctexViewOptions) => { // SyncTex line is one-based, so subtract 1. const cursor = { line: view.line - 1, column: 0 }; - (widget as IDocumentWidget< - FileEditor - >).content.editor.setCursorPosition(cursor); + ( + widget as IDocumentWidget + ).content.editor.setCursorPosition(cursor); } ); }; @@ -389,10 +388,10 @@ function activateLatexPlugin( // If there are any active previews in the statedb, // activate them upon initialization. Promise.all([state.fetch(id), app.restored]).then(([args]) => { - let paths = + const paths = (args && ((args as ReadonlyJSONObject)['paths'] as string[])) || []; paths.forEach(path => { - let widget = manager.findWidget(path); + const widget = manager.findWidget(path); if (widget) { openPreview(widget); } @@ -430,14 +429,14 @@ function activateLatexPlugin( commands.addCommand(CommandIDs.openLatexPreview, { execute: () => { // Get the current widget that had its contextMenu activated. - let widget = editorTracker.currentWidget; + const widget = editorTracker.currentWidget; if (widget) { openPreview(widget); } }, isEnabled: hasWidget, isVisible: () => { - let widget = editorTracker.currentWidget; + const widget = editorTracker.currentWidget; return ( (widget && PathExt.extname(widget.context.path) === '.tex') || false ); @@ -519,7 +518,7 @@ function addSynctexCommands( app.commands.addCommand(CommandIDs.synctexEdit, { execute: () => { // Get the pdf widget that had its contextMenu activated. - let widget = pdfTracker.currentWidget; + const widget = pdfTracker.currentWidget; if (widget) { // Get the page number. const pos = widget.content.position; @@ -568,7 +567,7 @@ function addSynctexCommands( app.commands.addCommand(CommandIDs.synctexView, { execute: () => { // Get the current widget that had its contextMenu activated. - let widget = editorTracker.currentWidget; + const widget = editorTracker.currentWidget; if (widget) { // Get the cursor position. let pos = widget.content.editor.getCursorPosition(); @@ -602,7 +601,7 @@ function addSynctexCommands( }, isEnabled: hasEditorWidget, isVisible: () => { - let widget = editorTracker.currentWidget; + const widget = editorTracker.currentWidget; return !!widget && Private.previews.has(widget.context.path); }, label: 'Scroll PDF to Cursor' diff --git a/src/pagenumber.tsx b/src/pagenumber.tsx index 5b67ef1..aec72d0 100644 --- a/src/pagenumber.tsx +++ b/src/pagenumber.tsx @@ -115,12 +115,8 @@ class PageNumberComponent extends React.Component< * Render page number widget. */ render() { - const { - currentPageLabel, - currentPageNumber, - pagesCount, - userInput - } = this.state; + const { currentPageLabel, currentPageNumber, pagesCount, userInput } = + this.state; const text = currentPageLabel ? ` (${currentPageNumber} of ${pagesCount})` : ` of ${pagesCount}`; diff --git a/src/pdf.ts b/src/pdf.ts index c4c0355..eb2eed4 100644 --- a/src/pdf.ts +++ b/src/pdf.ts @@ -199,15 +199,15 @@ export class PDFJSViewer extends Widget { if (!this._viewer) { return; } - let data = this.context.model.toString(); + const data = this.context.model.toString(); // If there is no data, do nothing. if (!data) { resolve(void 0); } const blob = Private.b64toBlob(data, MIME_TYPE); - let oldDocument = this._pdfDocument; - let oldUrl = this._objectUrl; + const oldDocument = this._pdfDocument; + const oldUrl = this._objectUrl; this._objectUrl = URL.createObjectURL(blob); let scale: number | string = 'page-width'; @@ -235,8 +235,7 @@ export class PDFJSViewer extends Widget { }; this._getDocument(this._objectUrl) - .promise - .then((pdfDocument: any) => { + .promise.then((pdfDocument: any) => { this._pdfDocument = pdfDocument; this._viewer!.setDocument(pdfDocument); pdfDocument.getPageLabels().then((labels: string[]) => { @@ -371,7 +370,7 @@ export class PDFJSViewer extends Widget { * Handle `before-detach` messages for the widget. */ protected onBeforeDetach(msg: Message): void { - let node = this.node; + const node = this.node; node.removeEventListener('click', this); } @@ -410,8 +409,10 @@ export class PDFJSViewer extends Widget { /** * A document widget for PDFJS content widgets. */ -export class PDFJSDocumentWidget extends DocumentWidget - implements IDocumentWidget { +export class PDFJSDocumentWidget + extends DocumentWidget + implements IDocumentWidget +{ constructor(context: DocumentRegistry.Context) { const content = new PDFJSViewer(context); const toolbar = Private.createToolbar(content); @@ -473,9 +474,9 @@ namespace Private { * Create the node for the PDF widget. */ export function createNode(): HTMLElement { - let node = document.createElement('div'); + const node = document.createElement('div'); node.className = PDF_CONTAINER_CLASS; - let pdf = document.createElement('div'); + const pdf = document.createElement('div'); pdf.className = PDF_CLASS; node.appendChild(pdf); node.tabIndex = -1; @@ -613,24 +614,24 @@ namespace Private { */ export function b64toBlob( b64Data: string, - contentType: string = '', - sliceSize: number = 512 + contentType = '', + sliceSize = 512 ): Blob { const byteCharacters = atob(b64Data); - let byteArrays: Uint8Array[] = []; + const byteArrays: Uint8Array[] = []; for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) { - let slice = byteCharacters.slice(offset, offset + sliceSize); + const slice = byteCharacters.slice(offset, offset + sliceSize); - let byteNumbers = new Array(slice.length); + const byteNumbers = new Array(slice.length); for (let i = 0; i < slice.length; i++) { byteNumbers[i] = slice.charCodeAt(i); } - let byteArray = new Uint8Array(byteNumbers); + const byteArray = new Uint8Array(byteNumbers); byteArrays.push(byteArray); } - let blob = new Blob(byteArrays, { type: contentType }); + const blob = new Blob(byteArrays, { type: contentType }); return blob; } diff --git a/style/index.css b/style/index.css index 06c0344..920d610 100644 --- a/style/index.css +++ b/style/index.css @@ -1,21 +1,21 @@ -/*----------------------------------------------------------------------------- +/* ----------------------------------------------------------------------------- | Copyright (c) Jupyter Development Team. | Distributed under the terms of the Modified BSD License. -|----------------------------------------------------------------------------*/ +|---------------------------------------------------------------------------- */ -/*----------------------------------------------------------------------------- +/* ----------------------------------------------------------------------------- | Variables -|----------------------------------------------------------------------------*/ +|---------------------------------------------------------------------------- */ :root { --jp-private-pdfjs-toolbar-height: 28px; } -/*----------------------------------------------------------------------------- +/* ----------------------------------------------------------------------------- /*----------------------------------------------------------------------------- | Styles -|----------------------------------------------------------------------------*/ +|---------------------------------------------------------------------------- */ .jp-LatexErrorPanel { min-height: 120px; diff --git a/tsconfig.json b/tsconfig.json index a317d85..6bef682 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,17 +1,24 @@ { "compilerOptions": { + "allowSyntheticDefaultImports": true, + "composite": true, "declaration": true, - "noImplicitAny": true, - "strictNullChecks": true, - "skipLibCheck": true, - "noEmitOnError": true, - "noUnusedLocals": true, - "lib": ["DOM", "ES6"], + "esModuleInterop": true, + "incremental": true, + "jsx": "react", "module": "esnext", "moduleResolution": "node", - "target": "ESNext", - "outDir": "./lib", - "jsx": "react" + "noEmitOnError": true, + "noImplicitAny": true, + "noUnusedLocals": true, + "preserveWatchOutput": true, + "resolveJsonModule": true, + "outDir": "lib", + "rootDir": "src", + "strict": true, + "strictNullChecks": true, + "target": "ES2018" }, - "include": ["src/*"] + "include": ["src/**/*"], + "exclude": ["node_modules", "dist", "style"] } diff --git a/yarn.lock b/yarn.lock index 583f6fc..2addd1f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,67 +15,69 @@ __metadata: linkType: hard "@babel/code-frame@npm:^7.0.0": - version: 7.21.4 - resolution: "@babel/code-frame@npm:7.21.4" + version: 7.24.7 + resolution: "@babel/code-frame@npm:7.24.7" dependencies: - "@babel/highlight": ^7.18.6 - checksum: e5390e6ec1ac58dcef01d4f18eaf1fd2f1325528661ff6d4a5de8979588b9f5a8e852a54a91b923846f7a5c681b217f0a45c2524eb9560553160cd963b7d592c + "@babel/highlight": ^7.24.7 + picocolors: ^1.0.0 + checksum: 830e62cd38775fdf84d612544251ce773d544a8e63df667728cc9e0126eeef14c6ebda79be0f0bc307e8318316b7f58c27ce86702e0a1f5c321d842eb38ffda4 languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.18.6": - version: 7.19.1 - resolution: "@babel/helper-validator-identifier@npm:7.19.1" - checksum: 0eca5e86a729162af569b46c6c41a63e18b43dbe09fda1d2a3c8924f7d617116af39cac5e4cd5d431bb760b4dca3c0970e0c444789b1db42bcf1fa41fbad0a3a +"@babel/helper-validator-identifier@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-validator-identifier@npm:7.24.7" + checksum: 6799ab117cefc0ecd35cd0b40ead320c621a298ecac88686a14cffceaac89d80cdb3c178f969861bf5fa5e4f766648f9161ea0752ecfe080d8e89e3147270257 languageName: node linkType: hard -"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/highlight@npm:7.18.6" +"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/highlight@npm:7.24.7" dependencies: - "@babel/helper-validator-identifier": ^7.18.6 - chalk: ^2.0.0 + "@babel/helper-validator-identifier": ^7.24.7 + chalk: ^2.4.2 js-tokens: ^4.0.0 - checksum: 92d8ee61549de5ff5120e945e774728e5ccd57fd3b2ed6eace020ec744823d4a98e242be1453d21764a30a14769ecd62170fba28539b211799bbaf232bbb2789 + picocolors: ^1.0.0 + checksum: 5cd3a89f143671c4ac129960024ba678b669e6fc673ce078030f5175002d1d3d52bc10b22c5b916a6faf644b5028e9a4bd2bb264d053d9b05b6a98690f1d46f1 languageName: node linkType: hard "@babel/runtime@npm:^7.0.0": - version: 7.21.5 - resolution: "@babel/runtime@npm:7.21.5" + version: 7.25.4 + resolution: "@babel/runtime@npm:7.25.4" dependencies: - regenerator-runtime: ^0.13.11 - checksum: 358f2779d3187f5c67ad302e8f8d435412925d0b991d133c7d4a7b1ddd5a3fda1b6f34537cb64628dfd96a27ae46df105bed3895b8d754b88cacdded8d1129dd + regenerator-runtime: ^0.14.0 + checksum: 5c2aab03788e77f1f959d7e6ce714c299adfc9b14fb6295c2a17eb7cad0dd9c2ebfb2d25265f507f68c43d5055c5cd6f71df02feb6502cea44b68432d78bcbbe languageName: node linkType: hard -"@codemirror/autocomplete@npm:^6.0.0, @codemirror/autocomplete@npm:^6.3.2, @codemirror/autocomplete@npm:^6.5.1": - version: 6.7.1 - resolution: "@codemirror/autocomplete@npm:6.7.1" +"@codemirror/autocomplete@npm:^6.0.0, @codemirror/autocomplete@npm:^6.15.0, @codemirror/autocomplete@npm:^6.3.2, @codemirror/autocomplete@npm:^6.7.1": + version: 6.18.0 + resolution: "@codemirror/autocomplete@npm:6.18.0" dependencies: "@codemirror/language": ^6.0.0 "@codemirror/state": ^6.0.0 - "@codemirror/view": ^6.6.0 + "@codemirror/view": ^6.17.0 "@lezer/common": ^1.0.0 peerDependencies: "@codemirror/language": ^6.0.0 "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 "@lezer/common": ^1.0.0 - checksum: 5f1331cceb6a7b0bd4dc9bad6025d16d1c415bfc2fba29b452f9f5501abd34b75a240e3a20fb9fed92a82a666e54562c32cfe220892713bfbd5a5a16fa004cd8 + checksum: 806163d13be3e86f5eceb46768329955f48935e228e238c2b8ae7ebe0b6634b5fe90fc5eeb6df81acb1e9e6e5a84e136f14233459d4bcfea2f3dd8a45ae84f37 languageName: node linkType: hard -"@codemirror/commands@npm:^6.2.3": - version: 6.2.4 - resolution: "@codemirror/commands@npm:6.2.4" +"@codemirror/commands@npm:^6.3.3": + version: 6.6.0 + resolution: "@codemirror/commands@npm:6.6.0" dependencies: "@codemirror/language": ^6.0.0 - "@codemirror/state": ^6.2.0 - "@codemirror/view": ^6.0.0 - "@lezer/common": ^1.0.0 - checksum: 468895fa19ff0554181b698c81f850820de5c0289cab92c44392fb127286f09ca72b921d6ea4353b70b616a4fd0c3667d86b6f917202a3ad2e196eb7b581f7b6 + "@codemirror/state": ^6.4.0 + "@codemirror/view": ^6.27.0 + "@lezer/common": ^1.1.0 + checksum: 53bb29f11f4453b7409836c41a9c13c0a8cb300e05ecc4928217330cf6e6735b1e5fb7fb831a2b1b8636593d6f3da42d016196ee1c8bb424f9cb73d55b8cb884 languageName: node linkType: hard @@ -89,33 +91,33 @@ __metadata: languageName: node linkType: hard -"@codemirror/lang-css@npm:^6.0.0, @codemirror/lang-css@npm:^6.1.1": - version: 6.2.0 - resolution: "@codemirror/lang-css@npm:6.2.0" +"@codemirror/lang-css@npm:^6.0.0, @codemirror/lang-css@npm:^6.2.1": + version: 6.2.1 + resolution: "@codemirror/lang-css@npm:6.2.1" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/language": ^6.0.0 "@codemirror/state": ^6.0.0 "@lezer/common": ^1.0.2 "@lezer/css": ^1.0.0 - checksum: d824f169083613b63f04992c24d3fecd45c718cd3deb9da3f332dd3a889a762d05ea812e31ddf7ee4b661722f8c8b49676515cb98609067c53e25ac8b469a5e4 + checksum: 5a8457ee8a4310030a969f2d3128429f549c4dc9b7907ee8888b42119c80b65af99093801432efdf659b8ec36a147d2a947bc1ecbbf69a759395214e3f4834a8 languageName: node linkType: hard -"@codemirror/lang-html@npm:^6.0.0, @codemirror/lang-html@npm:^6.4.3": - version: 6.4.3 - resolution: "@codemirror/lang-html@npm:6.4.3" +"@codemirror/lang-html@npm:^6.0.0, @codemirror/lang-html@npm:^6.4.8": + version: 6.4.9 + resolution: "@codemirror/lang-html@npm:6.4.9" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/lang-css": ^6.0.0 "@codemirror/lang-javascript": ^6.0.0 "@codemirror/language": ^6.4.0 "@codemirror/state": ^6.0.0 - "@codemirror/view": ^6.2.2 + "@codemirror/view": ^6.17.0 "@lezer/common": ^1.0.0 "@lezer/css": ^1.1.0 "@lezer/html": ^1.3.0 - checksum: 6177d19147580964ecd6910ae951201929a96e63f4f0e624c3138e2805fa87ec6d6d952a3a888c5a52af78b6dd6d04d7d8c76c6a9cd65b1921dc467b5dbaea72 + checksum: ac8c3ceb0396f2e032752c5079bd950124dca708bc64e96fc147dc5fe7133e5cee0814fe951abdb953ec1d11fa540e4b30a712b5149d9a36016a197a28de45d7 languageName: node linkType: hard @@ -129,18 +131,18 @@ __metadata: languageName: node linkType: hard -"@codemirror/lang-javascript@npm:^6.0.0, @codemirror/lang-javascript@npm:^6.1.7": - version: 6.1.8 - resolution: "@codemirror/lang-javascript@npm:6.1.8" +"@codemirror/lang-javascript@npm:^6.0.0, @codemirror/lang-javascript@npm:^6.2.2": + version: 6.2.2 + resolution: "@codemirror/lang-javascript@npm:6.2.2" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/language": ^6.6.0 "@codemirror/lint": ^6.0.0 "@codemirror/state": ^6.0.0 - "@codemirror/view": ^6.0.0 + "@codemirror/view": ^6.17.0 "@lezer/common": ^1.0.0 "@lezer/javascript": ^1.0.0 - checksum: 58ccd1c96db52edc95015b3fc77021540c18b4b87ce2c9426402a53993a67d7946647aba7198223dc51a56ec55379603a6d986fe32332d85cb3d8768c92a562e + checksum: 66379942a8347dff2bd76d10ed7cf313bca83872f8336fdd3e14accfef23e7b690cd913c9d11a3854fba2b32299da07fc3275995327642c9ee43c2a8e538c19d languageName: node linkType: hard @@ -154,17 +156,18 @@ __metadata: languageName: node linkType: hard -"@codemirror/lang-markdown@npm:^6.1.1": - version: 6.1.1 - resolution: "@codemirror/lang-markdown@npm:6.1.1" +"@codemirror/lang-markdown@npm:^6.2.4": + version: 6.2.5 + resolution: "@codemirror/lang-markdown@npm:6.2.5" dependencies: + "@codemirror/autocomplete": ^6.7.1 "@codemirror/lang-html": ^6.0.0 "@codemirror/language": ^6.3.0 "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 - "@lezer/common": ^1.0.0 + "@lezer/common": ^1.2.1 "@lezer/markdown": ^1.0.0 - checksum: db891dad10a8ea8db17d0a9222774389794cb0957b784e3f154bf27ab4a9be89a28ad4c2f6abf7d829115c3ce46694a2816b61723a5d5776c1d75d566ce016c8 + checksum: 3d9e0817f888eddcb6d05ec8f0d8dacbde7b9ef7650303bc4ab8b08a550a986c60c65b1565212e06af389c31590330f1f5ed65e619a9446dc2979ff3dac0e874 languageName: node linkType: hard @@ -181,14 +184,16 @@ __metadata: languageName: node linkType: hard -"@codemirror/lang-python@npm:^6.1.2": - version: 6.1.2 - resolution: "@codemirror/lang-python@npm:6.1.2" +"@codemirror/lang-python@npm:^6.1.4": + version: 6.1.6 + resolution: "@codemirror/lang-python@npm:6.1.6" dependencies: "@codemirror/autocomplete": ^6.3.2 - "@codemirror/language": ^6.0.0 - "@lezer/python": ^1.0.0 - checksum: e822a1236fb3c2773e1889d4a24f8f2f7fb45ab8cf6e0521d311508a3eda19c4dcf4e2f943766b93545e673f3f0336725418e0bb48b3d9fb6a942339d164cfa5 + "@codemirror/language": ^6.8.0 + "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.2.1 + "@lezer/python": ^1.1.4 + checksum: eb1faabd332bb95d0f3e227eb19ac5a31140cf238905bbe73e061040999f5680a012f9145fb3688bc2fcbb1908c957511edc8eeb8a9aa88d27d4fa55ad451e95 languageName: node linkType: hard @@ -202,138 +207,141 @@ __metadata: languageName: node linkType: hard -"@codemirror/lang-sql@npm:^6.4.1": - version: 6.5.0 - resolution: "@codemirror/lang-sql@npm:6.5.0" +"@codemirror/lang-sql@npm:^6.6.1": + version: 6.7.1 + resolution: "@codemirror/lang-sql@npm:6.7.1" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/language": ^6.0.0 "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 5bc73293d85f3892633703f277787336c00135011b14ca34a3590975a02c5ec1d6826d201d827e3dfc1d3427e28d23f36b1ef4fd69fc5d79c98290030c11dad5 + checksum: 89166b2a30e58b5b51fee3fa3e42735326c11c71013bdd92c7affe44824988e826c8008a045f3abaaa313d47f5a9f089063b3bc388d9fb9bbe849500fec50697 languageName: node linkType: hard -"@codemirror/lang-wast@npm:^6.0.1": - version: 6.0.1 - resolution: "@codemirror/lang-wast@npm:6.0.1" +"@codemirror/lang-wast@npm:^6.0.2": + version: 6.0.2 + resolution: "@codemirror/lang-wast@npm:6.0.2" dependencies: "@codemirror/language": ^6.0.0 + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 600d98d3ea6a4e99292244ed707e39a2abd9f3abf62cfeff5c819a0cc0c7e86b8c5b91e91c1b7ea21233d9ea09c41abe61d8a40b2547bb5db74239c6df857934 + checksum: 72119d4a7d726c54167aa227c982ae9fa785c8ad97a158d8350ae95eecfbd8028a803eef939f7e6c5c6e626fcecda1dc37e9dffc6d5d6ec105f686aeda6b2c24 languageName: node linkType: hard -"@codemirror/lang-xml@npm:^6.0.2": - version: 6.0.2 - resolution: "@codemirror/lang-xml@npm:6.0.2" +"@codemirror/lang-xml@npm:^6.1.0": + version: 6.1.0 + resolution: "@codemirror/lang-xml@npm:6.1.0" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/language": ^6.4.0 "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 "@lezer/common": ^1.0.0 "@lezer/xml": ^1.0.0 - checksum: e156ecafaa87e9b6ef4ab6812ccd00d8f3c6cb81f232837636b36336d80513b61936dfee6f4f6800574f236208b61e95a2abcb997cdcd7366585a6b796e0e13b + checksum: 3a1b7af07b29ad7e53b77bf584245580b613bc92256059f175f2b1d7c28c4e39b75654fe169b9a8a330a60164b53ff5254bdb5b8ee8c6e6766427ee115c4e229 languageName: node linkType: hard -"@codemirror/language@npm:^6.0.0, @codemirror/language@npm:^6.3.0, @codemirror/language@npm:^6.4.0, @codemirror/language@npm:^6.6.0": - version: 6.7.0 - resolution: "@codemirror/language@npm:6.7.0" +"@codemirror/language@npm:^6.0.0, @codemirror/language@npm:^6.10.1, @codemirror/language@npm:^6.3.0, @codemirror/language@npm:^6.4.0, @codemirror/language@npm:^6.6.0, @codemirror/language@npm:^6.8.0": + version: 6.10.2 + resolution: "@codemirror/language@npm:6.10.2" dependencies: "@codemirror/state": ^6.0.0 - "@codemirror/view": ^6.0.0 - "@lezer/common": ^1.0.0 + "@codemirror/view": ^6.23.0 + "@lezer/common": ^1.1.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 style-mod: ^4.0.0 - checksum: 673905e9eb80f039a5e6c59a8aeca217e124a9a03734848043192aeff9e5b3a82f150559f7bd637ee197c4b2171eb5b04e757d717922128ea4fecca1ac6ecac4 + checksum: 4e60afb75fb56519f59d9d85e0aa03f0c8d017e0da0f3f8f321baf35a776801fcec9787f3d0c029eba12aa766fba98b0fe86fc3111b43e0812b554184c0e8d67 languageName: node linkType: hard -"@codemirror/legacy-modes@npm:^6.3.2": - version: 6.3.2 - resolution: "@codemirror/legacy-modes@npm:6.3.2" +"@codemirror/legacy-modes@npm:^6.3.3": + version: 6.4.1 + resolution: "@codemirror/legacy-modes@npm:6.4.1" dependencies: "@codemirror/language": ^6.0.0 - checksum: fa5f5477fb9e19267251e2ecd3de8c1a4c2512813555bb60111dce3951f2c3f6080a2985a573b7542534ba1d2c34115f7e39ee23fdf8f6f81db6f8ce447c1efc + checksum: 3947842c5f06db49a152bf7dd03a626806c5f2e80abfa9840927396fef08ff8bc2dfb228e7231bd8d0b7bb1a84b7ef582df8361b2bef77419e0e04bf43cc6b7d languageName: node linkType: hard "@codemirror/lint@npm:^6.0.0": - version: 6.2.1 - resolution: "@codemirror/lint@npm:6.2.1" + version: 6.8.1 + resolution: "@codemirror/lint@npm:6.8.1" dependencies: "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 crelt: ^1.0.5 - checksum: 0e383c6b8b0fc463f90f8ebdc71628ba39cffbe4f3667a8382b8eedb61aff9eafe947cb3db947701c8f306acdc9576a2da889d0161ccdd14c9245705cfbd4571 + checksum: faa222b679770baf094ea707251e27d6eef347157006223c22d7726fb5adc9d77257f36c366367ec729cb6286aca3276d30a470e0d0ea9a884ec948e798668e9 languageName: node linkType: hard -"@codemirror/search@npm:^6.3.0": - version: 6.4.0 - resolution: "@codemirror/search@npm:6.4.0" +"@codemirror/search@npm:^6.5.6": + version: 6.5.6 + resolution: "@codemirror/search@npm:6.5.6" dependencies: "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 crelt: ^1.0.5 - checksum: 441e04fc896ac984f224e3adb20bc8a6c63d929778335c70d2cb1e3843674c7998db93e2ab1cd05e8276cb3819766cd23951eec748fdf8e66e3611bd9a55aab5 + checksum: 19dc88d09fc750563347001e83c6194bbb2a25c874bd919d2d81809e1f98d6330222ddbd284aa9758a09eeb41fd153ec7c2cf810b2ee51452c25963d7f5833d5 languageName: node linkType: hard -"@codemirror/state@npm:^6.0.0, @codemirror/state@npm:^6.1.4, @codemirror/state@npm:^6.2.0": - version: 6.2.0 - resolution: "@codemirror/state@npm:6.2.0" - checksum: fdc99c773dc09c700dd02bf918f06132aa8d3069c262cc4eb6ca5c810ce24ae2d7e90719ae7630a8158fd263018de6d40bd78f312e6bfba754e737b64e6c6b3d +"@codemirror/state@npm:^6.0.0, @codemirror/state@npm:^6.4.0, @codemirror/state@npm:^6.4.1": + version: 6.4.1 + resolution: "@codemirror/state@npm:6.4.1" + checksum: b81b55574091349eed4d32fc0eadb0c9688f1f7c98b681318f59138ee0f527cb4c4a97831b70547c0640f02f3127647838ae6730782de4a3dd2cc58836125d01 languageName: node linkType: hard -"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.2.2, @codemirror/view@npm:^6.6.0, @codemirror/view@npm:^6.9.6": - version: 6.12.0 - resolution: "@codemirror/view@npm:6.12.0" +"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0, @codemirror/view@npm:^6.23.0, @codemirror/view@npm:^6.26.0, @codemirror/view@npm:^6.27.0": + version: 6.33.0 + resolution: "@codemirror/view@npm:6.33.0" dependencies: - "@codemirror/state": ^6.1.4 - style-mod: ^4.0.0 + "@codemirror/state": ^6.4.0 + style-mod: ^4.1.0 w3c-keyname: ^2.2.4 - checksum: 512cbc9c05ac2cfa738cdf7aac711847b44e24ff5869f31839a9fcc11da6a512448fa9bc980535d55b897de80d49e744336a2724ca1fe3dae8bfcb31e339fe64 + checksum: e28896a7fb40df8e7221fbebfc2cd92c10c6963948e20f3a4300e99c897fbddd091f4fc90cc30eeaf90d07c61dcf6170cd3c164810606fa07337ffb970ffdac2 languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:^2.3.0": - version: 2.3.0 - resolution: "@csstools/css-parser-algorithms@npm:2.3.0" +"@csstools/css-parser-algorithms@npm:^2.3.1": + version: 2.7.1 + resolution: "@csstools/css-parser-algorithms@npm:2.7.1" peerDependencies: - "@csstools/css-tokenizer": ^2.1.1 - checksum: 3be22a0cfcfe0dc4bb140e2f266590addf21c5052d9e69334da860b3839fbd4369c3d158cbc396032d5ed96d01d2b5d8ebdb5497f75c9830ed9ce99853e3f915 + "@csstools/css-tokenizer": ^2.4.1 + checksum: 304e6f92e583042c310e368a82b694af563a395e5c55911caefe52765c5acb000b9daa17356ea8a4dd37d4d50132b76de48ced75159b169b53e134ff78b362ba languageName: node linkType: hard -"@csstools/css-tokenizer@npm:^2.1.1": - version: 2.1.1 - resolution: "@csstools/css-tokenizer@npm:2.1.1" - checksum: d6ac4b08d7fdfc146755542f00b208af7248efd6cf2eb0f0f7d2ba3583a81f08ed9be6047d78b046925708b5bd0886f487edeeee2f90f0f34030dcbef4122d0e +"@csstools/css-tokenizer@npm:^2.2.0": + version: 2.4.1 + resolution: "@csstools/css-tokenizer@npm:2.4.1" + checksum: 395c51f8724ddc4851d836f484346bb3ea6a67af936dde12cbf9a57ae321372e79dee717cbe4823599eb0e6fd2d5405cf8873450e986c2fca6e6ed82e7b10219 languageName: node linkType: hard -"@csstools/media-query-list-parser@npm:^2.1.2": - version: 2.1.2 - resolution: "@csstools/media-query-list-parser@npm:2.1.2" +"@csstools/media-query-list-parser@npm:^2.1.4": + version: 2.1.13 + resolution: "@csstools/media-query-list-parser@npm:2.1.13" peerDependencies: - "@csstools/css-parser-algorithms": ^2.3.0 - "@csstools/css-tokenizer": ^2.1.1 - checksum: 04936573ba837f14d7d637e172342c473665679c6497bbc0d548d93d08cb22e22151bb19e0e20422954c0b2aa50c3f38c9fc5f45c136e31bc863c656cb79df1b + "@csstools/css-parser-algorithms": ^2.7.1 + "@csstools/css-tokenizer": ^2.4.1 + checksum: 7754b4b9fcc749a51a2bcd34a167ad16e7227ff087f6c4e15b3593d3342413446b72dad37f1adb99c62538730c77e3e47842987ce453fbb3849d329a39ba9ad7 languageName: node linkType: hard "@csstools/selector-specificity@npm:^3.0.0": - version: 3.0.0 - resolution: "@csstools/selector-specificity@npm:3.0.0" + version: 3.1.1 + resolution: "@csstools/selector-specificity@npm:3.1.1" peerDependencies: postcss-selector-parser: ^6.0.13 - checksum: 4a2dfe69998a499155d9dab4c2a0e7ae7594d8db98bb8a487d2d5347c0c501655051eb5eacad3fe323c86b0ba8212fe092c27fc883621e6ac2a27662edfc3528 + checksum: 3786a6afea97b08ad739ee8f4004f7e0a9e25049cee13af809dbda6462090744012a54bd9275a44712791e8f103f85d21641f14e81799f9dab946b0459a5e1ef languageName: node linkType: hard @@ -386,68 +394,84 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.3.0": - version: 0.3.3 - resolution: "@jridgewell/gen-mapping@npm:0.3.3" +"@jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.5 + resolution: "@jridgewell/gen-mapping@npm:0.3.5" dependencies: - "@jridgewell/set-array": ^1.0.1 + "@jridgewell/set-array": ^1.2.1 "@jridgewell/sourcemap-codec": ^1.4.10 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 4a74944bd31f22354fc01c3da32e83c19e519e3bbadafa114f6da4522ea77dd0c2842607e923a591d60a76699d819a2fbb6f3552e277efdb9b58b081390b60ab + "@jridgewell/trace-mapping": ^0.3.24 + checksum: ff7a1764ebd76a5e129c8890aa3e2f46045109dabde62b0b6c6a250152227647178ff2069ea234753a690d8f3c4ac8b5e7b267bbee272bffb7f3b0a370ab6e52 languageName: node linkType: hard -"@jridgewell/resolve-uri@npm:3.1.0": - version: 3.1.0 - resolution: "@jridgewell/resolve-uri@npm:3.1.0" - checksum: b5ceaaf9a110fcb2780d1d8f8d4a0bfd216702f31c988d8042e5f8fbe353c55d9b0f55a1733afdc64806f8e79c485d2464680ac48a0d9fcadb9548ee6b81d267 +"@jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 83b85f72c59d1c080b4cbec0fef84528963a1b5db34e4370fa4bd1e3ff64a0d80e0cee7369d11d73c704e0286fb2865b530acac7a871088fbe92b5edf1000870 languageName: node linkType: hard -"@jridgewell/set-array@npm:^1.0.1": - version: 1.1.2 - resolution: "@jridgewell/set-array@npm:1.1.2" - checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e +"@jridgewell/set-array@npm:^1.2.1": + version: 1.2.1 + resolution: "@jridgewell/set-array@npm:1.2.1" + checksum: 832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10 languageName: node linkType: hard -"@jridgewell/source-map@npm:^0.3.2": - version: 0.3.3 - resolution: "@jridgewell/source-map@npm:0.3.3" +"@jridgewell/source-map@npm:^0.3.3": + version: 0.3.6 + resolution: "@jridgewell/source-map@npm:0.3.6" dependencies: - "@jridgewell/gen-mapping": ^0.3.0 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: ae1302146339667da5cd6541260ecbef46ae06819a60f88da8f58b3e64682f787c09359933d050dea5d2173ea7fa40f40dd4d4e7a8d325c5892cccd99aaf8959 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + checksum: c9dc7d899397df95e3c9ec287b93c0b56f8e4453cd20743e2b9c8e779b1949bc3cccf6c01bb302779e46560eb45f62ea38d19fedd25370d814734268450a9f30 languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:1.4.14": - version: 1.4.14 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" - checksum: 61100637b6d173d3ba786a5dff019e1a74b1f394f323c1fee337ff390239f053b87266c7a948777f4b1ee68c01a8ad0ab61e5ff4abb5a012a0b091bec391ab97 +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 05df4f2538b3b0f998ea4c1cd34574d0feba216fa5d4ccaef0187d12abf82eafe6021cec8b49f9bb4d90f2ba4582ccc581e72986a5fcf4176ae0cfeb04cf52ec languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10": - version: 1.4.15 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" - checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 +"@jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": + version: 0.3.25 + resolution: "@jridgewell/trace-mapping@npm:0.3.25" + dependencies: + "@jridgewell/resolve-uri": ^3.1.0 + "@jridgewell/sourcemap-codec": ^1.4.14 + checksum: 9d3c40d225e139987b50c48988f8717a54a8c994d8a948ee42e1412e08988761d0754d7d10b803061cc3aebf35f92a5dbbab493bd0e1a9ef9e89a2130e83ba34 languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9": - version: 0.3.18 - resolution: "@jridgewell/trace-mapping@npm:0.3.18" +"@jupyter/react-components@npm:^0.15.3": + version: 0.15.3 + resolution: "@jupyter/react-components@npm:0.15.3" dependencies: - "@jridgewell/resolve-uri": 3.1.0 - "@jridgewell/sourcemap-codec": 1.4.14 - checksum: 0572669f855260808c16fe8f78f5f1b4356463b11d3f2c7c0b5580c8ba1cbf4ae53efe9f627595830856e57dbac2325ac17eb0c3dd0ec42102e6f227cc289c02 + "@jupyter/web-components": ^0.15.3 + "@microsoft/fast-react-wrapper": ^0.3.22 + react: ">=17.0.0 <19.0.0" + checksum: 1a6b256314259c6465c4b6d958575710536b82234a7bf0fba3e889a07e1f19ff8ab321450be354359876f92c45dbcc9d21a840237ff4a619806d9de696f55496 languageName: node linkType: hard -"@jupyter/ydoc@npm:^1.0.2": - version: 1.0.2 - resolution: "@jupyter/ydoc@npm:1.0.2" +"@jupyter/web-components@npm:^0.15.3": + version: 0.15.3 + resolution: "@jupyter/web-components@npm:0.15.3" + dependencies: + "@microsoft/fast-colors": ^5.3.1 + "@microsoft/fast-element": ^1.12.0 + "@microsoft/fast-foundation": ^2.49.4 + "@microsoft/fast-web-utilities": ^5.4.1 + checksum: a0980af934157bfdbdb6cc169c0816c1b2e57602d524c56bdcef746a4c25dfeb8f505150d83207c8695ed89b5486cf53d35a3382584d25ef64db666e4e16e45b + languageName: node + linkType: hard + +"@jupyter/ydoc@npm:^2.0.1": + version: 2.1.1 + resolution: "@jupyter/ydoc@npm:2.1.1" dependencies: "@jupyterlab/nbformat": ^3.0.0 || ^4.0.0-alpha.21 || ^4.0.0 "@lumino/coreutils": ^1.11.0 || ^2.0.0 @@ -455,83 +479,83 @@ __metadata: "@lumino/signaling": ^1.10.0 || ^2.0.0 y-protocols: ^1.0.5 yjs: ^13.5.40 - checksum: 739f9630940466b3cfcd7b742dd06479f81772ca13f863d057af0bbb5e318829506969066ab72977e7c721644982b5c8f88cf44e1ae81955ed1c27e87632d1f2 + checksum: f10268d4d990f454279e3908a172755ed5885fa81bb70c31bdf66923598b283d26491741bece137d1c348619861e9b7f8354296773fe5352b1915e69101a9fb0 languageName: node linkType: hard "@jupyterlab/application@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/application@npm:4.0.0" + version: 4.2.5 + resolution: "@jupyterlab/application@npm:4.2.5" dependencies: "@fortawesome/fontawesome-free": ^5.12.0 - "@jupyterlab/apputils": ^4.0.0 - "@jupyterlab/coreutils": ^6.0.0 - "@jupyterlab/docregistry": ^4.0.0 - "@jupyterlab/rendermime": ^4.0.0 - "@jupyterlab/rendermime-interfaces": ^3.8.0 - "@jupyterlab/services": ^7.0.0 - "@jupyterlab/statedb": ^4.0.0 - "@jupyterlab/translation": ^4.0.0 - "@jupyterlab/ui-components": ^4.0.0 - "@lumino/algorithm": ^2.0.0 - "@lumino/application": ^2.1.1 - "@lumino/commands": ^2.1.1 - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/messaging": ^2.0.0 - "@lumino/polling": ^2.1.1 - "@lumino/properties": ^2.0.0 - "@lumino/signaling": ^2.1.1 - "@lumino/widgets": ^2.1.1 - checksum: 82750647de5997d6945627f517d82ffad3e7c272bce0c195819cc138b59546fbe43ee6c0ef4baf88de303964288ed1ac36234a99bedfb319eaf456b1321b199c - languageName: node - linkType: hard - -"@jupyterlab/apputils@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/apputils@npm:4.0.0" - dependencies: - "@jupyterlab/coreutils": ^6.0.0 - "@jupyterlab/observables": ^5.0.0 - "@jupyterlab/rendermime-interfaces": ^3.8.0 - "@jupyterlab/services": ^7.0.0 - "@jupyterlab/settingregistry": ^4.0.0 - "@jupyterlab/statedb": ^4.0.0 - "@jupyterlab/statusbar": ^4.0.0 - "@jupyterlab/translation": ^4.0.0 - "@jupyterlab/ui-components": ^4.0.0 - "@lumino/algorithm": ^2.0.0 - "@lumino/commands": ^2.1.1 - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/domutils": ^2.0.0 - "@lumino/messaging": ^2.0.0 - "@lumino/signaling": ^2.1.1 - "@lumino/virtualdom": ^2.0.0 - "@lumino/widgets": ^2.1.1 + "@jupyterlab/apputils": ^4.3.5 + "@jupyterlab/coreutils": ^6.2.5 + "@jupyterlab/docregistry": ^4.2.5 + "@jupyterlab/rendermime": ^4.2.5 + "@jupyterlab/rendermime-interfaces": ^3.10.5 + "@jupyterlab/services": ^7.2.5 + "@jupyterlab/statedb": ^4.2.5 + "@jupyterlab/translation": ^4.2.5 + "@jupyterlab/ui-components": ^4.2.5 + "@lumino/algorithm": ^2.0.1 + "@lumino/application": ^2.3.1 + "@lumino/commands": ^2.3.0 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/polling": ^2.1.2 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.2 + checksum: c424ea191ef4da45eeae44e366e2b3cb23426cc72c0321226c83000c02b91fa7c4bc54978aa0b0e9416211cce9c17469204fc2b133cb2bec3d8896a0b2f75ce1 + languageName: node + linkType: hard + +"@jupyterlab/apputils@npm:^4.0.0, @jupyterlab/apputils@npm:^4.3.5": + version: 4.3.5 + resolution: "@jupyterlab/apputils@npm:4.3.5" + dependencies: + "@jupyterlab/coreutils": ^6.2.5 + "@jupyterlab/observables": ^5.2.5 + "@jupyterlab/rendermime-interfaces": ^3.10.5 + "@jupyterlab/services": ^7.2.5 + "@jupyterlab/settingregistry": ^4.2.5 + "@jupyterlab/statedb": ^4.2.5 + "@jupyterlab/statusbar": ^4.2.5 + "@jupyterlab/translation": ^4.2.5 + "@jupyterlab/ui-components": ^4.2.5 + "@lumino/algorithm": ^2.0.1 + "@lumino/commands": ^2.3.0 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/domutils": ^2.0.1 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + "@lumino/widgets": ^2.3.2 "@types/react": ^18.0.26 react: ^18.2.0 - sanitize-html: ~2.7.3 - checksum: 360bf34e9810a7014c6637a6ac5c23a2ee73da8339675235cee3866beb3a477dc3b4d993c0a79da5ebe472f5c28fa131d507d62e20b3a93853f05e62b126add9 + sanitize-html: ~2.12.1 + checksum: a2307657bfab1aff687eccfdb7a2c378a40989beea618ad6e5a811dbd250753588ea704a11250ddef42a551c8360717c1fe4c8827c5e2c3bfff1e84fc7fdc836 languageName: node linkType: hard "@jupyterlab/builder@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/builder@npm:4.0.0" - dependencies: - "@lumino/algorithm": ^2.0.0 - "@lumino/application": ^2.1.1 - "@lumino/commands": ^2.1.1 - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/domutils": ^2.0.0 - "@lumino/dragdrop": ^2.1.1 - "@lumino/messaging": ^2.0.0 - "@lumino/properties": ^2.0.0 - "@lumino/signaling": ^2.1.1 - "@lumino/virtualdom": ^2.0.0 - "@lumino/widgets": ^2.1.1 + version: 4.2.5 + resolution: "@jupyterlab/builder@npm:4.2.5" + dependencies: + "@lumino/algorithm": ^2.0.1 + "@lumino/application": ^2.3.1 + "@lumino/commands": ^2.3.0 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/domutils": ^2.0.1 + "@lumino/dragdrop": ^2.1.4 + "@lumino/messaging": ^2.0.1 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + "@lumino/widgets": ^2.3.2 ajv: ^8.12.0 commander: ^9.4.1 css-loader: ^6.7.1 @@ -553,205 +577,211 @@ __metadata: worker-loader: ^3.0.2 bin: build-labextension: lib/build-labextension.js - checksum: c359031858376e37b2fe46bc7897fe0568b0cf90bcaaee6bded2e22f207c61a32d4b00b6954de00082e551dd07b6259997c00feeb25e7d44acf9ac97934fdd45 - languageName: node - linkType: hard - -"@jupyterlab/codeeditor@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/codeeditor@npm:4.0.0" - dependencies: - "@codemirror/state": ^6.2.0 - "@jupyter/ydoc": ^1.0.2 - "@jupyterlab/coreutils": ^6.0.0 - "@jupyterlab/nbformat": ^4.0.0 - "@jupyterlab/observables": ^5.0.0 - "@jupyterlab/statusbar": ^4.0.0 - "@jupyterlab/translation": ^4.0.0 - "@jupyterlab/ui-components": ^4.0.0 - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/dragdrop": ^2.1.1 - "@lumino/messaging": ^2.0.0 - "@lumino/signaling": ^2.1.1 - "@lumino/widgets": ^2.1.1 + checksum: 67d7150a52cd647cfb1a1b1217223389dd2ce1169bf7aa3a5ea8b7d73e2589e6699181cfd488de88362ff8f46682a4e875c545836733d37b19217ae3068d876c + languageName: node + linkType: hard + +"@jupyterlab/codeeditor@npm:^4.0.0, @jupyterlab/codeeditor@npm:^4.2.5": + version: 4.2.5 + resolution: "@jupyterlab/codeeditor@npm:4.2.5" + dependencies: + "@codemirror/state": ^6.4.1 + "@jupyter/ydoc": ^2.0.1 + "@jupyterlab/apputils": ^4.3.5 + "@jupyterlab/coreutils": ^6.2.5 + "@jupyterlab/nbformat": ^4.2.5 + "@jupyterlab/observables": ^5.2.5 + "@jupyterlab/statusbar": ^4.2.5 + "@jupyterlab/translation": ^4.2.5 + "@jupyterlab/ui-components": ^4.2.5 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/dragdrop": ^2.1.4 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.2 react: ^18.2.0 - checksum: 8287d77738a41814eb83621691adbcee119e6a7b3d4741250e53fc11b8664ce1f6ae5a79150222b235d45ec7b22db980d773d77a517d6b5c6a241b8a27817b7a + checksum: 0b6f3f7a1fe02d2bb0b07571e03c6be645d58e182f3e1fcc5452e79dee8eab2097e13544eb461ff2bed72337bd335c539b8cb7cfe5f7bfd840163cc26d200c58 languageName: node linkType: hard -"@jupyterlab/codemirror@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/codemirror@npm:4.0.0" +"@jupyterlab/codemirror@npm:^4.2.5": + version: 4.2.5 + resolution: "@jupyterlab/codemirror@npm:4.2.5" dependencies: - "@codemirror/autocomplete": ^6.5.1 - "@codemirror/commands": ^6.2.3 + "@codemirror/autocomplete": ^6.15.0 + "@codemirror/commands": ^6.3.3 "@codemirror/lang-cpp": ^6.0.2 - "@codemirror/lang-css": ^6.1.1 - "@codemirror/lang-html": ^6.4.3 + "@codemirror/lang-css": ^6.2.1 + "@codemirror/lang-html": ^6.4.8 "@codemirror/lang-java": ^6.0.1 - "@codemirror/lang-javascript": ^6.1.7 + "@codemirror/lang-javascript": ^6.2.2 "@codemirror/lang-json": ^6.0.1 - "@codemirror/lang-markdown": ^6.1.1 + "@codemirror/lang-markdown": ^6.2.4 "@codemirror/lang-php": ^6.0.1 - "@codemirror/lang-python": ^6.1.2 + "@codemirror/lang-python": ^6.1.4 "@codemirror/lang-rust": ^6.0.1 - "@codemirror/lang-sql": ^6.4.1 - "@codemirror/lang-wast": ^6.0.1 - "@codemirror/lang-xml": ^6.0.2 - "@codemirror/language": ^6.6.0 - "@codemirror/legacy-modes": ^6.3.2 - "@codemirror/search": ^6.3.0 - "@codemirror/state": ^6.2.0 - "@codemirror/view": ^6.9.6 - "@jupyter/ydoc": ^1.0.2 - "@jupyterlab/codeeditor": ^4.0.0 - "@jupyterlab/coreutils": ^6.0.0 - "@jupyterlab/documentsearch": ^4.0.0 - "@jupyterlab/nbformat": ^4.0.0 - "@jupyterlab/translation": ^4.0.0 - "@lezer/common": ^1.0.2 - "@lezer/generator": ^1.2.2 - "@lezer/highlight": ^1.1.4 - "@lezer/markdown": ^1.0.2 - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/signaling": ^2.1.1 + "@codemirror/lang-sql": ^6.6.1 + "@codemirror/lang-wast": ^6.0.2 + "@codemirror/lang-xml": ^6.1.0 + "@codemirror/language": ^6.10.1 + "@codemirror/legacy-modes": ^6.3.3 + "@codemirror/search": ^6.5.6 + "@codemirror/state": ^6.4.1 + "@codemirror/view": ^6.26.0 + "@jupyter/ydoc": ^2.0.1 + "@jupyterlab/codeeditor": ^4.2.5 + "@jupyterlab/coreutils": ^6.2.5 + "@jupyterlab/documentsearch": ^4.2.5 + "@jupyterlab/nbformat": ^4.2.5 + "@jupyterlab/translation": ^4.2.5 + "@lezer/common": ^1.2.1 + "@lezer/generator": ^1.7.0 + "@lezer/highlight": ^1.2.0 + "@lezer/markdown": ^1.2.0 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/signaling": ^2.1.2 yjs: ^13.5.40 - checksum: 3252c57f1d35924d6d6ad2a48690fa8bbe4e1a22455f9e1514b4405d16ff379532477aed331cd28908e8d0ef572ee76937ee5f382c95dc62e5dd97fa911603d5 + checksum: 6c612c861dbc6a6acdc1887e7dd25d5029d1a40cda20735fb3f009867e27aacd0e2d05e9b01c71b3a6f9a35218d881159954e679806b118df24d90565b9c16c4 languageName: node linkType: hard -"@jupyterlab/coreutils@npm:^6.0.0": - version: 6.0.0 - resolution: "@jupyterlab/coreutils@npm:6.0.0" +"@jupyterlab/coreutils@npm:^6.0.0, @jupyterlab/coreutils@npm:^6.2.5": + version: 6.2.5 + resolution: "@jupyterlab/coreutils@npm:6.2.5" dependencies: - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/signaling": ^2.1.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/signaling": ^2.1.2 minimist: ~1.2.0 path-browserify: ^1.0.0 url-parse: ~1.5.4 - checksum: c46bb60af792186b4d9d60378fdb2f03473055736e438e05971bcbf1d5edb62c7722f1465e5ef2fd2dc9c4b5b6043301012478b218cf6c475a99914b26a1fd14 - languageName: node - linkType: hard - -"@jupyterlab/docmanager@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/docmanager@npm:4.0.0" - dependencies: - "@jupyterlab/apputils": ^4.0.0 - "@jupyterlab/coreutils": ^6.0.0 - "@jupyterlab/docregistry": ^4.0.0 - "@jupyterlab/services": ^7.0.0 - "@jupyterlab/statusbar": ^4.0.0 - "@jupyterlab/translation": ^4.0.0 - "@jupyterlab/ui-components": ^4.0.0 - "@lumino/algorithm": ^2.0.0 - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/messaging": ^2.0.0 - "@lumino/properties": ^2.0.0 - "@lumino/signaling": ^2.1.1 - "@lumino/widgets": ^2.1.1 + checksum: 3b6a10b117ee82a437b6535801fe012bb5af7769a850be95c8ffa666ee2d6f7c29041ba546c9cfca0ab32b65f91c661570541f4f785f48af9022d08407c0a3e5 + languageName: node + linkType: hard + +"@jupyterlab/docmanager@npm:^4.0.0, @jupyterlab/docmanager@npm:^4.2.5": + version: 4.2.5 + resolution: "@jupyterlab/docmanager@npm:4.2.5" + dependencies: + "@jupyterlab/apputils": ^4.3.5 + "@jupyterlab/coreutils": ^6.2.5 + "@jupyterlab/docregistry": ^4.2.5 + "@jupyterlab/services": ^7.2.5 + "@jupyterlab/statedb": ^4.2.5 + "@jupyterlab/statusbar": ^4.2.5 + "@jupyterlab/translation": ^4.2.5 + "@jupyterlab/ui-components": ^4.2.5 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/polling": ^2.1.2 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.2 react: ^18.2.0 - checksum: d9495bea5f5e5de2d133be0ea097b9d2634575d1054dafb198d49398bfed6b9ff52d5d2ce0848ae11462fa5070f6651eccda3242f867661758f135b0703839f9 - languageName: node - linkType: hard - -"@jupyterlab/docregistry@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/docregistry@npm:4.0.0" - dependencies: - "@jupyter/ydoc": ^1.0.2 - "@jupyterlab/apputils": ^4.0.0 - "@jupyterlab/codeeditor": ^4.0.0 - "@jupyterlab/coreutils": ^6.0.0 - "@jupyterlab/observables": ^5.0.0 - "@jupyterlab/rendermime": ^4.0.0 - "@jupyterlab/rendermime-interfaces": ^3.8.0 - "@jupyterlab/services": ^7.0.0 - "@jupyterlab/translation": ^4.0.0 - "@jupyterlab/ui-components": ^4.0.0 - "@lumino/algorithm": ^2.0.0 - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/messaging": ^2.0.0 - "@lumino/properties": ^2.0.0 - "@lumino/signaling": ^2.1.1 - "@lumino/widgets": ^2.1.1 - checksum: 8927ea10312238333d1036ea6f4047d86779120cdf6c8391f91e5d859e85d504c2345f629a2a8cf50cdc394739828cc4868a46ebefe1c20932a2f496463ca250 + checksum: 0fa3fcbdccab2dfc5d9075dbd7fdf9a15c912843a3ed18c83248fd867d6f4c493c40f88964a406396fc335f60dc71e99df7465f38a94e7210bbdd209ae752d0c + languageName: node + linkType: hard + +"@jupyterlab/docregistry@npm:^4.0.0, @jupyterlab/docregistry@npm:^4.2.5": + version: 4.2.5 + resolution: "@jupyterlab/docregistry@npm:4.2.5" + dependencies: + "@jupyter/ydoc": ^2.0.1 + "@jupyterlab/apputils": ^4.3.5 + "@jupyterlab/codeeditor": ^4.2.5 + "@jupyterlab/coreutils": ^6.2.5 + "@jupyterlab/observables": ^5.2.5 + "@jupyterlab/rendermime": ^4.2.5 + "@jupyterlab/rendermime-interfaces": ^3.10.5 + "@jupyterlab/services": ^7.2.5 + "@jupyterlab/translation": ^4.2.5 + "@jupyterlab/ui-components": ^4.2.5 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.2 + react: ^18.2.0 + checksum: 7e93987f4c6cd82058231c10c69a66aba38913c73f425a01c565a45e330e20dcb6f80489d3bd35d78b5b36a7798ed50485635fae3317b5c87d75ce30a144827e languageName: node linkType: hard -"@jupyterlab/documentsearch@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/documentsearch@npm:4.0.0" +"@jupyterlab/documentsearch@npm:^4.2.5": + version: 4.2.5 + resolution: "@jupyterlab/documentsearch@npm:4.2.5" dependencies: - "@jupyterlab/apputils": ^4.0.0 - "@jupyterlab/translation": ^4.0.0 - "@jupyterlab/ui-components": ^4.0.0 - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/messaging": ^2.0.0 - "@lumino/polling": ^2.1.1 - "@lumino/signaling": ^2.1.1 - "@lumino/widgets": ^2.1.1 + "@jupyterlab/apputils": ^4.3.5 + "@jupyterlab/translation": ^4.2.5 + "@jupyterlab/ui-components": ^4.2.5 + "@lumino/commands": ^2.3.0 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/polling": ^2.1.2 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.2 react: ^18.2.0 - checksum: 686befb5ae48a485530f298f7d067b5c77d17524fff779f8c468857c44baab75f1ed3c504546f6440cf0cfc8420e617abcbaa120208d2166cfb124a6455e5472 + checksum: 9f9726b4e779f04c29f5e3dea56c410152607f9c00f60eb1ece03cdcea4bf84d0ab0cfe6500496d9d8da33dbac187df5eda5eafbd840d173953de9b2173e9706 languageName: node linkType: hard "@jupyterlab/filebrowser@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/filebrowser@npm:4.0.0" - dependencies: - "@jupyterlab/apputils": ^4.0.0 - "@jupyterlab/coreutils": ^6.0.0 - "@jupyterlab/docmanager": ^4.0.0 - "@jupyterlab/docregistry": ^4.0.0 - "@jupyterlab/services": ^7.0.0 - "@jupyterlab/statedb": ^4.0.0 - "@jupyterlab/statusbar": ^4.0.0 - "@jupyterlab/translation": ^4.0.0 - "@jupyterlab/ui-components": ^4.0.0 - "@lumino/algorithm": ^2.0.0 - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/domutils": ^2.0.0 - "@lumino/dragdrop": ^2.1.1 - "@lumino/messaging": ^2.0.0 - "@lumino/polling": ^2.1.1 - "@lumino/signaling": ^2.1.1 - "@lumino/virtualdom": ^2.0.0 - "@lumino/widgets": ^2.1.1 + version: 4.2.5 + resolution: "@jupyterlab/filebrowser@npm:4.2.5" + dependencies: + "@jupyterlab/apputils": ^4.3.5 + "@jupyterlab/coreutils": ^6.2.5 + "@jupyterlab/docmanager": ^4.2.5 + "@jupyterlab/docregistry": ^4.2.5 + "@jupyterlab/services": ^7.2.5 + "@jupyterlab/statedb": ^4.2.5 + "@jupyterlab/statusbar": ^4.2.5 + "@jupyterlab/translation": ^4.2.5 + "@jupyterlab/ui-components": ^4.2.5 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/domutils": ^2.0.1 + "@lumino/dragdrop": ^2.1.4 + "@lumino/messaging": ^2.0.1 + "@lumino/polling": ^2.1.2 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + "@lumino/widgets": ^2.3.2 react: ^18.2.0 - checksum: 58e61e9b0e6d373fa5cd93398dfee146c635d5f5008d00e640c4f0687ed8ed7135779806e159703a88ecd55f45b1725214c657a466e63577b70b0380c5852df5 + checksum: bce079263a141c76ec0a28be0d662c0a627ceaa12bcbe13be97a40f99abf37838fc87284701da1f6a7dce0be82f7322c8530f9fd9b3d1f4f253da5ddfa2e04ff languageName: node linkType: hard "@jupyterlab/fileeditor@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/fileeditor@npm:4.0.0" - dependencies: - "@jupyterlab/apputils": ^4.0.0 - "@jupyterlab/codeeditor": ^4.0.0 - "@jupyterlab/codemirror": ^4.0.0 - "@jupyterlab/coreutils": ^6.0.0 - "@jupyterlab/docregistry": ^4.0.0 - "@jupyterlab/documentsearch": ^4.0.0 - "@jupyterlab/lsp": ^4.0.0 - "@jupyterlab/statusbar": ^4.0.0 - "@jupyterlab/toc": ^6.0.0 - "@jupyterlab/translation": ^4.0.0 - "@jupyterlab/ui-components": ^4.0.0 - "@lumino/commands": ^2.1.1 - "@lumino/coreutils": ^2.1.1 - "@lumino/messaging": ^2.0.0 - "@lumino/widgets": ^2.1.1 + version: 4.2.5 + resolution: "@jupyterlab/fileeditor@npm:4.2.5" + dependencies: + "@jupyter/ydoc": ^2.0.1 + "@jupyterlab/apputils": ^4.3.5 + "@jupyterlab/codeeditor": ^4.2.5 + "@jupyterlab/codemirror": ^4.2.5 + "@jupyterlab/coreutils": ^6.2.5 + "@jupyterlab/docregistry": ^4.2.5 + "@jupyterlab/documentsearch": ^4.2.5 + "@jupyterlab/lsp": ^4.2.5 + "@jupyterlab/statusbar": ^4.2.5 + "@jupyterlab/toc": ^6.2.5 + "@jupyterlab/translation": ^4.2.5 + "@jupyterlab/ui-components": ^4.2.5 + "@lumino/commands": ^2.3.0 + "@lumino/coreutils": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/widgets": ^2.3.2 react: ^18.2.0 regexp-match-indices: ^1.0.2 - checksum: f981f4b3b2cca2e81bf8beab7ef23361d3073bdba811ba22b3d50adc092bca34aa4c5f81c37c52ae91e9e57d35ae953bc856bc084dfe2db418d746ccaa8869b5 + checksum: 6b00a11dbfecad510d5103b9d9b24e48d6fcc4daebaa6375cf2bd66cd80330e2d0da25847a5584a74b79c9107ce1e0361662ff121b670146fcb77480bbc1690b languageName: node linkType: hard @@ -804,6 +834,7 @@ __metadata: stylelint-config-prettier: ^9.0.4 stylelint-config-recommended: ^8.0.0 stylelint-config-standard: ^26.0.0 + stylelint-csstree-validator: ^3.0.0 stylelint-prettier: ^2.0.0 tslint: ^5.18.0 tslint-config-prettier: ^1.18.0 @@ -814,500 +845,516 @@ __metadata: linkType: soft "@jupyterlab/launcher@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/launcher@npm:4.0.0" - dependencies: - "@jupyterlab/apputils": ^4.0.0 - "@jupyterlab/translation": ^4.0.0 - "@jupyterlab/ui-components": ^4.0.0 - "@lumino/algorithm": ^2.0.0 - "@lumino/commands": ^2.1.1 - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/properties": ^2.0.0 - "@lumino/widgets": ^2.1.1 + version: 4.2.5 + resolution: "@jupyterlab/launcher@npm:4.2.5" + dependencies: + "@jupyterlab/apputils": ^4.3.5 + "@jupyterlab/translation": ^4.2.5 + "@jupyterlab/ui-components": ^4.2.5 + "@lumino/algorithm": ^2.0.1 + "@lumino/commands": ^2.3.0 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/properties": ^2.0.1 + "@lumino/widgets": ^2.3.2 react: ^18.2.0 - checksum: 5375eb2e49168a7ec961705603e9d7a98887decd10ce039a03036666bb84c8220b8cc3fa99036e4279aad5f7102c738c2fa71a3fbe580d90e06aee92343f0179 + checksum: 3d6c395e11dbfbe894f68e92509746bcd3a3f1e0369ba3b877829b18804fc528aba0a5fe476c6608d88993b09a031ea3afc673d68de1ed30b87528088895fa11 languageName: node linkType: hard -"@jupyterlab/lsp@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/lsp@npm:4.0.0" +"@jupyterlab/lsp@npm:^4.2.5": + version: 4.2.5 + resolution: "@jupyterlab/lsp@npm:4.2.5" dependencies: - "@jupyterlab/apputils": ^4.0.0 - "@jupyterlab/codeeditor": ^4.0.0 - "@jupyterlab/coreutils": ^6.0.0 - "@jupyterlab/docregistry": ^4.0.0 - "@jupyterlab/services": ^7.0.0 - "@jupyterlab/translation": ^4.0.0 - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/signaling": ^2.1.1 + "@jupyterlab/apputils": ^4.3.5 + "@jupyterlab/codeeditor": ^4.2.5 + "@jupyterlab/codemirror": ^4.2.5 + "@jupyterlab/coreutils": ^6.2.5 + "@jupyterlab/docregistry": ^4.2.5 + "@jupyterlab/services": ^7.2.5 + "@jupyterlab/translation": ^4.2.5 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.2 lodash.mergewith: ^4.6.1 vscode-jsonrpc: ^6.0.0 vscode-languageserver-protocol: ^3.17.0 vscode-ws-jsonrpc: ~1.0.2 - checksum: 7657fe88fc155e7a988558b9b8d34a36d6bb5fee0571a0953ac77add170f82b2f7ad1d76c1f90185087daebb4d40c5ff9e7f44478abbcb485736f7806d3d7fb8 + checksum: 8dfaeb330a6b72b32f8eae6b5d4c3c0ff64203fe5fd69dbfbe15e22c46851a9fbc8c968608e4a6cd887760e194d4e4bb757135aff2df4eaee31acf248d603e9a languageName: node linkType: hard "@jupyterlab/mainmenu@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/mainmenu@npm:4.0.0" + version: 4.2.5 + resolution: "@jupyterlab/mainmenu@npm:4.2.5" dependencies: - "@jupyterlab/apputils": ^4.0.0 - "@jupyterlab/translation": ^4.0.0 - "@jupyterlab/ui-components": ^4.0.0 - "@lumino/algorithm": ^2.0.0 - "@lumino/commands": ^2.1.1 - "@lumino/coreutils": ^2.1.1 - "@lumino/widgets": ^2.1.1 - checksum: e51aa6bd4170f3defa8f8a5c08a8e9223621301ee4334b6acb9e33569ea3da6369a5bc012f082900788a587a89f3e4fcc3ab0971758f810d73d5b6dfbeb0da16 + "@jupyterlab/apputils": ^4.3.5 + "@jupyterlab/translation": ^4.2.5 + "@jupyterlab/ui-components": ^4.2.5 + "@lumino/algorithm": ^2.0.1 + "@lumino/commands": ^2.3.0 + "@lumino/coreutils": ^2.1.2 + "@lumino/widgets": ^2.3.2 + checksum: 7da87425108d707d14d3d29fdd5b4d9334eb61a2b38ec98ee790a8436c780959742c09bb1047fe3c7cb2408e29d0e89dcdd979baa0f71d6a6b240480baa4650d languageName: node linkType: hard -"@jupyterlab/nbformat@npm:^3.0.0 || ^4.0.0-alpha.21 || ^4.0.0, @jupyterlab/nbformat@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/nbformat@npm:4.0.0" +"@jupyterlab/nbformat@npm:^3.0.0 || ^4.0.0-alpha.21 || ^4.0.0, @jupyterlab/nbformat@npm:^4.2.5": + version: 4.2.5 + resolution: "@jupyterlab/nbformat@npm:4.2.5" dependencies: - "@lumino/coreutils": ^2.1.1 - checksum: 152da6b9622c7683543ad2bd9525857a8a39b4b8a5474998e921232f108c366dd8625daeb14e2cc2aa8aac124b9a5d16f285310cd241c9769d51af80730dbd59 + "@lumino/coreutils": ^2.1.2 + checksum: b3ad2026969bfa59f8cfb7b1a991419f96f7e6dc8c4acf4ac166c210d7ab99631350c785e9b04350095488965d2824492c8adbff24a2e26db615457545426b3c languageName: node linkType: hard -"@jupyterlab/observables@npm:^5.0.0": - version: 5.0.0 - resolution: "@jupyterlab/observables@npm:5.0.0" +"@jupyterlab/observables@npm:^5.2.5": + version: 5.2.5 + resolution: "@jupyterlab/observables@npm:5.2.5" dependencies: - "@lumino/algorithm": ^2.0.0 - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/messaging": ^2.0.0 - "@lumino/signaling": ^2.1.1 - checksum: 1554f473e0ab0eef288ea86945c03a07d79f478bfdf55651036161a58cd1d9a0695e202ced0ebe3a6863f73ba12ccd85b86f7a4c2e6f9fe41ccddb0c4fbbc33e + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + checksum: 21fd2828463c08a770714692ff44aeca500f8ea8f3a743ad203a61fbf04cfa81921a47b432d8e65f4935fb45c08fce2b8858cb7e2198cc9bf0fa51f482ec37bd languageName: node linkType: hard -"@jupyterlab/rendermime-interfaces@npm:^3.8.0": - version: 3.8.0 - resolution: "@jupyterlab/rendermime-interfaces@npm:3.8.0" +"@jupyterlab/rendermime-interfaces@npm:^3.10.5": + version: 3.10.5 + resolution: "@jupyterlab/rendermime-interfaces@npm:3.10.5" dependencies: - "@lumino/coreutils": ^2.1.1 - "@lumino/widgets": ^2.1.1 - checksum: 5e70a58a4d8aa7380a041d267972851b9b3fa5e4d68d254ede51c9e5bea4a76b38d47bc5c512e2fd84cd297f5bcaf9cbc9f73ba0824b5b910b10043309a820c7 + "@lumino/coreutils": ^1.11.0 || ^2.1.2 + "@lumino/widgets": ^1.37.2 || ^2.3.2 + checksum: acfb10315a3ed4d0b0ef664437b33f8938968c61993351fd4067b0eaf6cb6ccd4c5caf50ae050d184a34b35b88d844eee6689d00244e54a02b228c02eab544b4 languageName: node linkType: hard -"@jupyterlab/rendermime@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/rendermime@npm:4.0.0" +"@jupyterlab/rendermime@npm:^4.2.5": + version: 4.2.5 + resolution: "@jupyterlab/rendermime@npm:4.2.5" dependencies: - "@jupyterlab/apputils": ^4.0.0 - "@jupyterlab/coreutils": ^6.0.0 - "@jupyterlab/nbformat": ^4.0.0 - "@jupyterlab/observables": ^5.0.0 - "@jupyterlab/rendermime-interfaces": ^3.8.0 - "@jupyterlab/services": ^7.0.0 - "@jupyterlab/translation": ^4.0.0 - "@lumino/coreutils": ^2.1.1 - "@lumino/messaging": ^2.0.0 - "@lumino/signaling": ^2.1.1 - "@lumino/widgets": ^2.1.1 + "@jupyterlab/apputils": ^4.3.5 + "@jupyterlab/coreutils": ^6.2.5 + "@jupyterlab/nbformat": ^4.2.5 + "@jupyterlab/observables": ^5.2.5 + "@jupyterlab/rendermime-interfaces": ^3.10.5 + "@jupyterlab/services": ^7.2.5 + "@jupyterlab/translation": ^4.2.5 + "@lumino/coreutils": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.2 lodash.escape: ^4.0.1 - checksum: fb6373517bf2fa2557b38ccf53ba95b45c9327f86f14726dedd433f0b3466f439ab98cb2c8ae10aded9f269bf7c11225765e286aeca56f3755bada8f5d5e102a + checksum: e3e68c66306dc4bc7d4497d017e9e32cbfacfdc3ba14da6dfa6d7dbd328a3e8d5b710260365a06cd508209393e21985e7a69d0a160e239e4fdc1f0eb0874f35c languageName: node linkType: hard -"@jupyterlab/services@npm:^7.0.0": - version: 7.0.0 - resolution: "@jupyterlab/services@npm:7.0.0" +"@jupyterlab/services@npm:^7.0.0, @jupyterlab/services@npm:^7.2.5": + version: 7.2.5 + resolution: "@jupyterlab/services@npm:7.2.5" dependencies: - "@jupyter/ydoc": ^1.0.2 - "@jupyterlab/coreutils": ^6.0.0 - "@jupyterlab/nbformat": ^4.0.0 - "@jupyterlab/settingregistry": ^4.0.0 - "@jupyterlab/statedb": ^4.0.0 - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/polling": ^2.1.1 - "@lumino/properties": ^2.0.0 - "@lumino/signaling": ^2.1.1 + "@jupyter/ydoc": ^2.0.1 + "@jupyterlab/coreutils": ^6.2.5 + "@jupyterlab/nbformat": ^4.2.5 + "@jupyterlab/settingregistry": ^4.2.5 + "@jupyterlab/statedb": ^4.2.5 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/polling": ^2.1.2 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 ws: ^8.11.0 - checksum: 96e986e8007247aa5258586263e31e48dfa6e7e7bb2a9d61f699e41b291f50c8653a9c42ae340a428c9af58946c47f7021ccb6b79b74b750cf1547b8d6c81b03 + checksum: 72d7578a86af1277b574095423fafb4176bc66373662fdc0e243a7d20e4baf8f291377b6c80300841dba6486767f16664f0e893174c2761658aedb74024e1db6 languageName: node linkType: hard -"@jupyterlab/settingregistry@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/settingregistry@npm:4.0.0" +"@jupyterlab/settingregistry@npm:^4.0.0, @jupyterlab/settingregistry@npm:^4.2.5": + version: 4.2.5 + resolution: "@jupyterlab/settingregistry@npm:4.2.5" dependencies: - "@jupyterlab/nbformat": ^4.0.0 - "@jupyterlab/statedb": ^4.0.0 - "@lumino/commands": ^2.1.1 - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/signaling": ^2.1.1 - "@rjsf/utils": ^5.1.0 + "@jupyterlab/nbformat": ^4.2.5 + "@jupyterlab/statedb": ^4.2.5 + "@lumino/commands": ^2.3.0 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/signaling": ^2.1.2 + "@rjsf/utils": ^5.13.4 ajv: ^8.12.0 json5: ^2.2.3 peerDependencies: react: ">=16" - checksum: f52cd36c28336ad554a4eb43f6cef7f82cb7a9161897e8b633da8c0b4519d0ed7e3e34846fec132714867b0190a9c19754e88edef31ffdf6dc2d1afe49b50041 + checksum: 2403e3198f2937fb9e4c12f96121e8bfc4f2a9ed47a9ad64182c88c8c19d59fcdf7443d0bf7d04527e89ac06378ceb39d6b4196c7f575c2a21fea23283ad3892 languageName: node linkType: hard -"@jupyterlab/statedb@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/statedb@npm:4.0.0" +"@jupyterlab/statedb@npm:^4.0.0, @jupyterlab/statedb@npm:^4.2.5": + version: 4.2.5 + resolution: "@jupyterlab/statedb@npm:4.2.5" dependencies: - "@lumino/commands": ^2.1.1 - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/properties": ^2.0.0 - "@lumino/signaling": ^2.1.1 - checksum: e90c943b4486df3a1bd53c64c0860e40706a26f4307628f2c71168090f47f85bab2fd68529366aa74211501a6875bd6d7098e1cd976f2e7d2d197a687b6b3bd3 + "@lumino/commands": ^2.3.0 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + checksum: 236e7628070971af167eb4fdeac96a0090b2256cfa14b6a75aee5ef23b156cd57a8b25518125fbdc58dea09490f8f473740bc4b454d8ad7c23949f64a61b757e languageName: node linkType: hard -"@jupyterlab/statusbar@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/statusbar@npm:4.0.0" +"@jupyterlab/statusbar@npm:^4.2.5": + version: 4.2.5 + resolution: "@jupyterlab/statusbar@npm:4.2.5" dependencies: - "@jupyterlab/ui-components": ^4.0.0 - "@lumino/algorithm": ^2.0.0 - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/messaging": ^2.0.0 - "@lumino/signaling": ^2.1.1 - "@lumino/widgets": ^2.1.1 + "@jupyterlab/ui-components": ^4.2.5 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.2 react: ^18.2.0 - checksum: 861444ba5ca001f9174b58d5a2c46e4d7947856b1c5302d3ec70e6c72d1608c77b65c792904e07fd8612f11d51ac9f30aa2ad3cbd256e701d6c12138e3f9b89f - languageName: node - linkType: hard - -"@jupyterlab/toc@npm:^6.0.0": - version: 6.0.0 - resolution: "@jupyterlab/toc@npm:6.0.0" - dependencies: - "@jupyterlab/apputils": ^4.0.0 - "@jupyterlab/coreutils": ^6.0.0 - "@jupyterlab/docregistry": ^4.0.0 - "@jupyterlab/observables": ^5.0.0 - "@jupyterlab/rendermime": ^4.0.0 - "@jupyterlab/translation": ^4.0.0 - "@jupyterlab/ui-components": ^4.0.0 - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/messaging": ^2.0.0 - "@lumino/signaling": ^2.1.1 - "@lumino/widgets": ^2.1.1 + checksum: fa429b88a5bcd6889b9ac32b5f2500cb10a968cc636ca8dede17972535cc47454cb7fc96518fc8def76935f826b66b071752d0fd26afdacba579f6f3785e97b2 + languageName: node + linkType: hard + +"@jupyterlab/toc@npm:^6.2.5": + version: 6.2.5 + resolution: "@jupyterlab/toc@npm:6.2.5" + dependencies: + "@jupyterlab/apputils": ^4.3.5 + "@jupyterlab/coreutils": ^6.2.5 + "@jupyterlab/docregistry": ^4.2.5 + "@jupyterlab/observables": ^5.2.5 + "@jupyterlab/rendermime": ^4.2.5 + "@jupyterlab/rendermime-interfaces": ^3.10.5 + "@jupyterlab/translation": ^4.2.5 + "@jupyterlab/ui-components": ^4.2.5 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.2 react: ^18.2.0 - checksum: 7fd8cbbeaaad272355296d8ddab01c54233373d2c0457d93beae1efa2e491845980746b75f46f78f49370668a323f42ef923b76c55bf9a520548845f7c5e2d57 - languageName: node - linkType: hard - -"@jupyterlab/translation@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/translation@npm:4.0.0" - dependencies: - "@jupyterlab/coreutils": ^6.0.0 - "@jupyterlab/rendermime-interfaces": ^3.8.0 - "@jupyterlab/services": ^7.0.0 - "@jupyterlab/statedb": ^4.0.0 - "@lumino/coreutils": ^2.1.1 - checksum: f3124bff6e3eb9c1adbe91f60dd823a3b4a4b8b453fbf024a605f5be44463fa7eb15e176238255a775c96b50e4cc551bde757a03531e56a76db25a30feed469f - languageName: node - linkType: hard - -"@jupyterlab/ui-components@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/ui-components@npm:4.0.0" - dependencies: - "@jupyterlab/coreutils": ^6.0.0 - "@jupyterlab/observables": ^5.0.0 - "@jupyterlab/rendermime-interfaces": ^3.8.0 - "@jupyterlab/translation": ^4.0.0 - "@lumino/algorithm": ^2.0.0 - "@lumino/commands": ^2.1.1 - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/messaging": ^2.0.0 - "@lumino/polling": ^2.1.1 - "@lumino/properties": ^2.0.0 - "@lumino/signaling": ^2.1.1 - "@lumino/virtualdom": ^2.0.0 - "@lumino/widgets": ^2.1.1 - "@rjsf/core": ^5.1.0 - "@rjsf/utils": ^5.1.0 + checksum: 49e856b710369308bdf2cc00c9025fa4c9942d221e8a97c548843113e321e78f4f0ef44115605ba01331732b2f4c2574c0e42ba7b53466c8c52a89ecbf00feb0 + languageName: node + linkType: hard + +"@jupyterlab/translation@npm:^4.2.5": + version: 4.2.5 + resolution: "@jupyterlab/translation@npm:4.2.5" + dependencies: + "@jupyterlab/coreutils": ^6.2.5 + "@jupyterlab/rendermime-interfaces": ^3.10.5 + "@jupyterlab/services": ^7.2.5 + "@jupyterlab/statedb": ^4.2.5 + "@lumino/coreutils": ^2.1.2 + checksum: 8983efad2b0d54381cb94799a10eab30f284a87103f93e844bd87106e2df3c304e260b9c95540317819cc2b2520c74ad78cb724816c81e0c315fdb43d0bdaab3 + languageName: node + linkType: hard + +"@jupyterlab/ui-components@npm:^4.0.0, @jupyterlab/ui-components@npm:^4.2.5": + version: 4.2.5 + resolution: "@jupyterlab/ui-components@npm:4.2.5" + dependencies: + "@jupyter/react-components": ^0.15.3 + "@jupyter/web-components": ^0.15.3 + "@jupyterlab/coreutils": ^6.2.5 + "@jupyterlab/observables": ^5.2.5 + "@jupyterlab/rendermime-interfaces": ^3.10.5 + "@jupyterlab/translation": ^4.2.5 + "@lumino/algorithm": ^2.0.1 + "@lumino/commands": ^2.3.0 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/polling": ^2.1.2 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + "@lumino/widgets": ^2.3.2 + "@rjsf/core": ^5.13.4 + "@rjsf/utils": ^5.13.4 react: ^18.2.0 react-dom: ^18.2.0 typestyle: ^2.0.4 peerDependencies: react: ^18.2.0 - checksum: 781a5b48acc16a098f9f88ec4cc840912100da96f9d1f64c93cd5fdb9afddd33bbeb891d0a6383ee8f12f001056d9c0beabded2a99a05d374dcf7d952e784e40 + checksum: 9d2b887910a3b0d41645388c5ac6183d6fd2f3af4567de9b077b2492b1a9380f98c4598a4ae6d1c3186624ed4f956bedf8ba37adb5f772c96555761384a93e1e languageName: node linkType: hard -"@lezer/common@npm:^1.0.0, @lezer/common@npm:^1.0.2": - version: 1.0.2 - resolution: "@lezer/common@npm:1.0.2" - checksum: bbcc58e07be02652bf0700d2856042ec089d5be0b95893d628b3e18192ade864fac83b61b19653e10b9f1472261a178b12318d934e9004edd5483a577c0db56b +"@lezer/common@npm:^1.0.0, @lezer/common@npm:^1.0.2, @lezer/common@npm:^1.1.0, @lezer/common@npm:^1.2.0, @lezer/common@npm:^1.2.1": + version: 1.2.1 + resolution: "@lezer/common@npm:1.2.1" + checksum: 0bd092e293a509ce334f4aaf9a4d4a25528f743cd9d7e7948c697e34ac703b805b288b62ad01563488fb206fc34ff05084f7fc5d864be775924b3d0d53ea5dd2 languageName: node linkType: hard "@lezer/cpp@npm:^1.0.0": - version: 1.1.0 - resolution: "@lezer/cpp@npm:1.1.0" + version: 1.1.2 + resolution: "@lezer/cpp@npm:1.1.2" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 9b25c881fc9b64fd2b019a077a85b0ba7cfda0bbdd92dbb0ff43300c9ba1ec4360128fe912bfe0f06a1c1bb5a564c5ace375c8aad254d07a717768a8f268695d + checksum: a319cd46fd32affc07c9432e9b2b9954becf7766be0361176c525d03474bb794cc051aad9932f48c9df33833eee1d6bfdccab12e571f2b137b4ca765c60c75de languageName: node linkType: hard "@lezer/css@npm:^1.0.0, @lezer/css@npm:^1.1.0": - version: 1.1.2 - resolution: "@lezer/css@npm:1.1.2" + version: 1.1.8 + resolution: "@lezer/css@npm:1.1.8" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 02218fe6901428e191a91a1f1a3728a051af982bafaf37144884c9261a7e24b2ad1dfdaa6e7feeb160e5bc34157ce92213cd92ae244cdf0b8485b8b8113850f8 + checksum: 1f5968360dbac7ba27f0c2a194143769f7b01824715274dd8507dacf13cc790bb8c48ce95de355e9c58be93bb3e271bf98b9fc51213f79e4ce918e7c7ebbef04 languageName: node linkType: hard -"@lezer/generator@npm:^1.2.2": - version: 1.2.3 - resolution: "@lezer/generator@npm:1.2.3" +"@lezer/generator@npm:^1.7.0": + version: 1.7.1 + resolution: "@lezer/generator@npm:1.7.1" dependencies: - "@lezer/common": ^1.0.2 + "@lezer/common": ^1.1.0 "@lezer/lr": ^1.3.0 bin: - lezer-generator: dist/lezer-generator.cjs - checksum: 300edf525f15ff27b84c366f1e9e66d741222f4b206cf015851679d7d153f5653b205ed9c3241f8df225eb97cefc99207343e148fe26bf2c4f636a00839976a8 + lezer-generator: src/lezer-generator.cjs + checksum: e46df5a31252fb036ea17fce820acdf47672bb5405b2a38e26a430182b9a50b8513fde37d9a43d8334cde3bb2f2106ce7a5ab1a01e244876ce3217c4db59e627 languageName: node linkType: hard -"@lezer/highlight@npm:^1.0.0, @lezer/highlight@npm:^1.1.3, @lezer/highlight@npm:^1.1.4": - version: 1.1.4 - resolution: "@lezer/highlight@npm:1.1.4" +"@lezer/highlight@npm:^1.0.0, @lezer/highlight@npm:^1.1.3, @lezer/highlight@npm:^1.2.0": + version: 1.2.1 + resolution: "@lezer/highlight@npm:1.2.1" dependencies: "@lezer/common": ^1.0.0 - checksum: 30e848c02839bfcd9472fcd6e74d71cba12379cef38f27d0c6cab0e6831f92150cfc629d267a40cc31f84cf46ac0a935400163fdf931b2672c516bec29417485 + checksum: a8822d7e37f79ff64669eb2df4a9f9d16580e88f2b276a646092e19a9bdccac304e92510e200e35869a8b1f6c27eba5972c508d347a277e9b722d582ab7a23d5 languageName: node linkType: hard "@lezer/html@npm:^1.3.0": - version: 1.3.4 - resolution: "@lezer/html@npm:1.3.4" + version: 1.3.10 + resolution: "@lezer/html@npm:1.3.10" dependencies: - "@lezer/common": ^1.0.0 + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 81dd134ac094edf7c40bae4c3b7126d336ce4c3c87756344bf604eff64d89b06fcb55f91618a4622eb0dae6d6015722f5bab58e2252d86e81fca8c3ced1a0c4d + checksum: cce391aab9259704ae3079b3209f74b2f248594dd8b851c28aaff26765e00ebb890a5ff1fe600f2d03aaf4ade0e36de8048d9632b12bfbccd47b3e649c3b0ecd languageName: node linkType: hard "@lezer/java@npm:^1.0.0": - version: 1.0.3 - resolution: "@lezer/java@npm:1.0.3" + version: 1.1.2 + resolution: "@lezer/java@npm:1.1.2" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 2fffea6627d130413ffad4e61040267974cca3167d98881b9e5b5e2455530de74a82c234d93603e92a4972fad314671453c49c0a76b0f4547c4617d671fd7b99 + checksum: 752e8c9b99cccf022669a702016e0c3a793d8326e043b1d053159f5de4d222cd188e8e31e1427cbe6a8ed8e53de3977ab551c64cbd5a76a12eb3a1da5e18b6a5 languageName: node linkType: hard "@lezer/javascript@npm:^1.0.0": - version: 1.4.3 - resolution: "@lezer/javascript@npm:1.4.3" + version: 1.4.17 + resolution: "@lezer/javascript@npm:1.4.17" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.1.3 "@lezer/lr": ^1.3.0 - checksum: 520dc2d84c84841ef554993c1c0dfe503487aa9be398ebcf617b51d06f99121841d4ca1cf25f3f53d00efa820ea778cc2271da425a606ac66e9f09a4c8cc6677 + checksum: dfcc4130af0bc681cd1ff6ec655a58e747fd877d8aadad2deba5f84512fa539177ece602c5389f4354c93555d3064737dedbe3384ca48b03c4968126bfd1b9a9 languageName: node linkType: hard "@lezer/json@npm:^1.0.0": - version: 1.0.0 - resolution: "@lezer/json@npm:1.0.0" + version: 1.0.2 + resolution: "@lezer/json@npm:1.0.2" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: c1ca0cdf681415b58a383a669944bed66da3aa830870d32d1e471d545cff0fe43d9ac8a0d2a318a96daa99cd5a645b1d58ba8fbdd2e8d7ca4d33a62c7582cbab + checksum: f899d13765d95599c9199fc3404cb57969031dc40ce07de30f4e648979153966581f0bee02e2f8f70463b0a5322206a97c2fe8d5d14f218888c72a6dcedf90ef languageName: node linkType: hard "@lezer/lr@npm:^1.0.0, @lezer/lr@npm:^1.1.0, @lezer/lr@npm:^1.3.0": - version: 1.3.4 - resolution: "@lezer/lr@npm:1.3.4" + version: 1.4.2 + resolution: "@lezer/lr@npm:1.4.2" dependencies: "@lezer/common": ^1.0.0 - checksum: 58bc25a9ba891dc6ca713fc8768706935e65d6e54d79a8ddb40c742cc799e87eddf4f49a6d6566a649c4726a9ab79a4200d36c9351608285a9bee6cdf3b33341 + checksum: 94318ad046c7dfcc8d37e26cb85b99623c39aef60aa51ec2abb30928e7a649f38fa5520f34bd5b356f1db11b6991999589f039e87c8949b0f163be3764f029d8 languageName: node linkType: hard -"@lezer/markdown@npm:^1.0.0, @lezer/markdown@npm:^1.0.2": - version: 1.0.2 - resolution: "@lezer/markdown@npm:1.0.2" +"@lezer/markdown@npm:^1.0.0, @lezer/markdown@npm:^1.2.0": + version: 1.3.0 + resolution: "@lezer/markdown@npm:1.3.0" dependencies: "@lezer/common": ^1.0.0 "@lezer/highlight": ^1.0.0 - checksum: c4bbfcd8a5a9d924a7cf2b5e5e99c78e7705473cc59804070278b5cfcf478af9dd567025d0926cbf03e3ea6abb8f173425220d3107c05a2d7e0ca3fe3d5c92ef + checksum: 13eb2720e4cb84278349bad8af116f748813094f99fad02680010c3a8c5985e0358c344487990f87a31ef0d6c1a2be582301f914c0e4a6e9cfa22647b6cd6545 languageName: node linkType: hard "@lezer/php@npm:^1.0.0": - version: 1.0.1 - resolution: "@lezer/php@npm:1.0.1" + version: 1.0.2 + resolution: "@lezer/php@npm:1.0.2" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.1.0 - checksum: a847c255c030b4d38913ddf1d5bd7324d83be7ef8d1d244542870be03b9bf7dc71283afeb2415c40dfd188cb99f0cc44bad760b5f3b7c35c3b8e5e00253848fc + checksum: c85ef18571d37826b687dd141a0fe110f5814adaf9d1a391e7e482020d7f81df189ca89ec0dd141c1433d48eff4c6e53648b46f008dea8ad2dc574f35f1d4d79 languageName: node linkType: hard -"@lezer/python@npm:^1.0.0": - version: 1.1.6 - resolution: "@lezer/python@npm:1.1.6" +"@lezer/python@npm:^1.1.4": + version: 1.1.14 + resolution: "@lezer/python@npm:1.1.14" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 3a75790816612c7da6dfd95cf40ab3c6a2c9864d18170eae7ba933c09c9e0a7527a48a477a6b54b4cce85fd874d04af6a0b25713897ebe035eebc929cb66f125 + checksum: 1608187f698e972d11b340dfdfd79e15b1359641e386e386befd37d5e5839620b45a5a39c5616792a24da29ef1d99d11ea0dad52b9617f1767e7ea6a11c2fed3 languageName: node linkType: hard "@lezer/rust@npm:^1.0.0": - version: 1.0.0 - resolution: "@lezer/rust@npm:1.0.0" + version: 1.0.2 + resolution: "@lezer/rust@npm:1.0.2" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 0c42f415674f60ca2ef4274b446577621cdeec8f31168b1c3b90888a4377c513f02a89ee346421c264ec3a77fe2fa3e134996be6463ed506dbbc79b4b4505375 + checksum: fc5e97852b42beeb44a0ebe316dc64e3cc49ff481c22e3e67d6003fc4a5c257fcd94959cfcc76cd154fa172db9b3b4b28de5c09f10550d6e5f14869ddc274e5b languageName: node linkType: hard "@lezer/xml@npm:^1.0.0": - version: 1.0.1 - resolution: "@lezer/xml@npm:1.0.1" + version: 1.0.5 + resolution: "@lezer/xml@npm:1.0.5" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 271319aa7802c123845b70ffa63d7065c0f92fc6a1ddb1f8ec9f3aa965bca3df3c9fad4d4de53187ddf230e833cd3ab3a84cb2aded76ab5f6831e9a2fc310923 + checksum: a0a077b9e455b03593b93a7fdff2a4eab2cb7b230c8e1b878a8bebe80184632b9cc75ca018f1f9e2acb3a26e1386f4777385ab6e87aea70ccf479cde5ca268ee languageName: node linkType: hard -"@lumino/algorithm@npm:^2.0.0": - version: 2.0.0 - resolution: "@lumino/algorithm@npm:2.0.0" - checksum: 663edf536e94397b449c6a2643a735e602fbb396dec86b56ad1193a768dce27c6e7da5ad0384aa90086ea44cbb64dde3f9d565e9fd81858f1eb0c6b4253f3b94 +"@lumino/algorithm@npm:^2.0.0, @lumino/algorithm@npm:^2.0.1, @lumino/algorithm@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/algorithm@npm:2.0.2" + checksum: 34b25684b845f1bdbf78ca45ebd99a97b67b2992440c9643aafe5fc5a99fae1ddafa9e5890b246b233dc3a12d9f66aa84afe4a2aac44cf31071348ed217740db languageName: node linkType: hard -"@lumino/application@npm:^2.1.1": - version: 2.1.1 - resolution: "@lumino/application@npm:2.1.1" +"@lumino/application@npm:^2.3.1": + version: 2.4.1 + resolution: "@lumino/application@npm:2.4.1" dependencies: - "@lumino/commands": ^2.1.1 - "@lumino/coreutils": ^2.1.1 - "@lumino/widgets": ^2.1.1 - checksum: 442a047e43a85b48189d15a5a322f39cac01b9bee7b252aa76579c53e503f2cf2100f2e3aff61cd1d92fef07f04c0a3a6680c475890e0923456e296ceb79a692 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/widgets": ^2.5.0 + checksum: b7166d1bf4f0e3cc945d984b4057a4cd106d38df6cb4c6f1259c75484e2b976018aca55f169fa4af7dd174ce7117be1920966bef0fb7cba756f503f0df1d211e languageName: node linkType: hard -"@lumino/collections@npm:^2.0.0": - version: 2.0.0 - resolution: "@lumino/collections@npm:2.0.0" +"@lumino/collections@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/collections@npm:2.0.2" dependencies: - "@lumino/algorithm": ^2.0.0 - checksum: 4a7fc3571e92a1368a1ef01300ad7b6e0d4ff13cb78b89533d5962eea66d4a7550e15d8b80fa3ab1816b1a89382f35015f9dddf72ab04654c17e5b516b845d8f + "@lumino/algorithm": ^2.0.2 + checksum: e8bb2068a3741940e0dd396fa729c3c9d12458b41b7c2a9d171c5c034e69fb5834116a824094a8aa4182397e13abace06025ed5032a755ea85b976eae74ee9a9 languageName: node linkType: hard -"@lumino/commands@npm:^2.1.1": - version: 2.1.1 - resolution: "@lumino/commands@npm:2.1.1" +"@lumino/commands@npm:^2.3.0, @lumino/commands@npm:^2.3.1": + version: 2.3.1 + resolution: "@lumino/commands@npm:2.3.1" dependencies: - "@lumino/algorithm": ^2.0.0 - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/domutils": ^2.0.0 - "@lumino/keyboard": ^2.0.0 - "@lumino/signaling": ^2.1.1 - "@lumino/virtualdom": ^2.0.0 - checksum: a076244e9c4f7a3c6dab02642fdd38dbbaab6e5754acaeeb84a5195dc5c2fc19343ba754c3a0f89c9b60f16c61cb793301cdb6e8d69bdc30e18ed7e32f40d524 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/domutils": ^2.0.2 + "@lumino/keyboard": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/virtualdom": ^2.0.2 + checksum: 83bc6d66de37e58582b00f70ce66e797c9fcf84e36041c6881631ed0d281305e2a49927f5b2fe6c5c965733f3cd6fb4a233c7b7967fc050497024a941659bd65 languageName: node linkType: hard -"@lumino/coreutils@npm:^1.11.0 || ^2.0.0, @lumino/coreutils@npm:^2.1.1": - version: 2.1.1 - resolution: "@lumino/coreutils@npm:2.1.1" - checksum: dfdeb2b0282caae17b6c3edfebadf4ce7c75fc879fa60cacfef9b154412f4b35e4ffd95b1833b99d8dacb99aaaa04513570129ae2024c3f33e2677a01f0576ce +"@lumino/coreutils@npm:^1.11.0 || ^2.0.0, @lumino/coreutils@npm:^1.11.0 || ^2.1.2, @lumino/coreutils@npm:^2.1.1, @lumino/coreutils@npm:^2.1.2, @lumino/coreutils@npm:^2.2.0": + version: 2.2.0 + resolution: "@lumino/coreutils@npm:2.2.0" + dependencies: + "@lumino/algorithm": ^2.0.2 + checksum: 345fcd5d7493d745831dd944edfbd8eda06cc59a117e71023fc97ce53badd697be2bd51671f071f5ff0064f75f104575d9695f116a07517bafbedd38e5c7a785 languageName: node linkType: hard -"@lumino/disposable@npm:^1.10.0 || ^2.0.0, @lumino/disposable@npm:^2.1.1": - version: 2.1.1 - resolution: "@lumino/disposable@npm:2.1.1" +"@lumino/disposable@npm:^1.10.0 || ^2.0.0, @lumino/disposable@npm:^2.1.1, @lumino/disposable@npm:^2.1.2, @lumino/disposable@npm:^2.1.3": + version: 2.1.3 + resolution: "@lumino/disposable@npm:2.1.3" dependencies: - "@lumino/signaling": ^2.1.1 - checksum: ed6cdfe13f3346178a087690d4e7baeccaed7e73ca23cb239765202409f5c01b4729a4058b4717f963462ee9ef2e5cb14ad1974e3163741267290edc3715c85c + "@lumino/signaling": ^2.1.3 + checksum: b9a346fa2752b3cd1b053cb637ee173501d33082a73423429070e8acc508b034ea0babdae0549b923cbdd287ee1fc7f6159f0539c9fff7574393a214eef07c57 languageName: node linkType: hard -"@lumino/domutils@npm:^2.0.0": - version: 2.0.0 - resolution: "@lumino/domutils@npm:2.0.0" - checksum: 4a146bfc1006d5fd00ccecc61d9803965d269c15c48c892fd87216336ce967f0db91f31203c5616c83d260224cddf25af4abb6704a6770757d19e44068f690bf +"@lumino/domutils@npm:^2.0.0, @lumino/domutils@npm:^2.0.1, @lumino/domutils@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/domutils@npm:2.0.2" + checksum: 037b8d0b62af43887fd7edd506fa551e2af104a4b46d62e6fef256e16754dba40d351513beb5083834d468b2c7806aae0fe205fd6aac8ef24759451ee998bbd9 languageName: node linkType: hard -"@lumino/dragdrop@npm:^2.1.1": - version: 2.1.1 - resolution: "@lumino/dragdrop@npm:2.1.1" +"@lumino/dragdrop@npm:^2.1.4, @lumino/dragdrop@npm:^2.1.5": + version: 2.1.5 + resolution: "@lumino/dragdrop@npm:2.1.5" dependencies: - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - checksum: 68c896afc44476b11a501e5b30ec55db06c2648a45f078713a111b2bf3b2e9171a7c5478ff6bdeb771a7c1e397fe3bba7bc5eadb4fe3e1294851d677f811b5b8 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + checksum: 48e34bea73186dcde4565fa68cd25067b7f5fe910813d28da9ab3c5392bfaa0b26aab1290635dc953d85bbb139da7ac1ffc040a5d5777d58fd087975dd4b5ef7 languageName: node linkType: hard -"@lumino/keyboard@npm:^2.0.0": - version: 2.0.0 - resolution: "@lumino/keyboard@npm:2.0.0" - checksum: 3852ba51f437b1c1d7e552a0f844592a05e04dd5012070dc6e4384c58965d1ebf536c6875c1b7bae03cde3c715ddc36cd290992fcefc1a8c39094194f4689fdd +"@lumino/keyboard@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/keyboard@npm:2.0.2" + checksum: 198e8c17825c9a831fa0770f58a71574b936acb0f0bbbe7f8feb73d89686dda7ff41fcb02d12b401f5d462b45fe0bba24f7f38befb7cefe0826576559f0bee6d languageName: node linkType: hard -"@lumino/messaging@npm:^2.0.0": - version: 2.0.0 - resolution: "@lumino/messaging@npm:2.0.0" +"@lumino/messaging@npm:^2.0.0, @lumino/messaging@npm:^2.0.1, @lumino/messaging@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/messaging@npm:2.0.2" dependencies: - "@lumino/algorithm": ^2.0.0 - "@lumino/collections": ^2.0.0 - checksum: 1e82dcf9b110834d4342dc63dfeac0ee780880fb99051bd82d00a1f83afd91b276c1cea5af85a414d92c527adc365d54f20ec780123b562f89c5a2cd3e96bf81 + "@lumino/algorithm": ^2.0.2 + "@lumino/collections": ^2.0.2 + checksum: 66abd8c473026123589dc22f2ce8f85da10e0b1a05c05ed9b2011035721da5f751cc7ef63b628877f446a78a4287e26ad1450efbeaf0c2e03b1d08be9abaca4d languageName: node linkType: hard -"@lumino/polling@npm:^2.1.1": - version: 2.1.1 - resolution: "@lumino/polling@npm:2.1.1" +"@lumino/polling@npm:^2.1.2": + version: 2.1.3 + resolution: "@lumino/polling@npm:2.1.3" dependencies: - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/signaling": ^2.1.1 - checksum: 69177b26d5fc541e72533cbe7d7f7999eea541d392f1082d20dbd9e1797e7d46fba47bae9c65c06f9ccb2780cbae636e9354d9bf4423b5e1020754d4b07d4f6b + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/signaling": ^2.1.3 + checksum: 2c94dbc2339dd06b3b89a3a690d23576ce095f92bf1f614557dcaeb1c1a8a707b2a18d78c03e5fd7376a43e3f393cc4fec42a65580ae4b67c6630ea86cecbac6 languageName: node linkType: hard -"@lumino/properties@npm:^2.0.0": - version: 2.0.0 - resolution: "@lumino/properties@npm:2.0.0" - checksum: 81187a11a779eed4e20ff0035e77dee99bd271b0cf649096c4e8809dd6bdd06955b1a974bc1a115e536f8d2840b30183bb78a362b2c6991824477df6d17e6c59 +"@lumino/properties@npm:^2.0.1, @lumino/properties@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/properties@npm:2.0.2" + checksum: cbe802bd49ced7e13e50b1d89b82e0f03fb44a590c704e6b9343226498b21d8abfe119b024209e79876b4fc0938dbf85e964c6c4cd5bbdd4d7ba41ce0fb69f3f languageName: node linkType: hard -"@lumino/signaling@npm:2.1.1, @lumino/signaling@npm:^1.10.0 || ^2.0.0, @lumino/signaling@npm:^2.1.1": +"@lumino/signaling@npm:2.1.1": version: 2.1.1 resolution: "@lumino/signaling@npm:2.1.1" dependencies: @@ -1317,31 +1364,88 @@ __metadata: languageName: node linkType: hard -"@lumino/virtualdom@npm:^2.0.0": - version: 2.0.0 - resolution: "@lumino/virtualdom@npm:2.0.0" +"@lumino/signaling@npm:^1.10.0 || ^2.0.0, @lumino/signaling@npm:^2.1.2, @lumino/signaling@npm:^2.1.3": + version: 2.1.3 + resolution: "@lumino/signaling@npm:2.1.3" dependencies: - "@lumino/algorithm": ^2.0.0 - checksum: 6fc1d88e7d4a656be7664ccfc5745eb1d4e3d2034db0b11ad6abefcc642f22d265003eef0e1d02bca2e42b6da127123118c631369006f78e88a08885a6f36c25 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + checksum: ce59383bd75fe30df5800e0442dbc4193cc6778e2530b9be0f484d159f1d8668be5c6ee92cee9df36d5a0c3dbd9126d0479a82581dee1df889d5c9f922d3328d languageName: node linkType: hard -"@lumino/widgets@npm:^2.1.1": - version: 2.1.1 - resolution: "@lumino/widgets@npm:2.1.1" +"@lumino/virtualdom@npm:^2.0.1, @lumino/virtualdom@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/virtualdom@npm:2.0.2" dependencies: - "@lumino/algorithm": ^2.0.0 - "@lumino/commands": ^2.1.1 - "@lumino/coreutils": ^2.1.1 - "@lumino/disposable": ^2.1.1 - "@lumino/domutils": ^2.0.0 - "@lumino/dragdrop": ^2.1.1 - "@lumino/keyboard": ^2.0.0 - "@lumino/messaging": ^2.0.0 - "@lumino/properties": ^2.0.0 - "@lumino/signaling": ^2.1.1 - "@lumino/virtualdom": ^2.0.0 - checksum: e2ad4a97d6ec43e5e1863c2a521b6b8cb7a708a470c1e78b0f34ff4ad8b9fca191597586c3033233a29ff0fa14b62aeef5ea2fe66af3058d39e711c6af129cf4 + "@lumino/algorithm": ^2.0.2 + checksum: 0e1220d5b3b2441e7668f3542a6341e015bdbea0c8bd6d4be962009386c034336540732596d5dedcd54ca57fbde61c2942549129a3e1b0fccb1aa143685fcd15 + languageName: node + linkType: hard + +"@lumino/widgets@npm:^1.37.2 || ^2.3.2, @lumino/widgets@npm:^2.1.1, @lumino/widgets@npm:^2.3.2, @lumino/widgets@npm:^2.5.0": + version: 2.5.0 + resolution: "@lumino/widgets@npm:2.5.0" + dependencies: + "@lumino/algorithm": ^2.0.2 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/domutils": ^2.0.2 + "@lumino/dragdrop": ^2.1.5 + "@lumino/keyboard": ^2.0.2 + "@lumino/messaging": ^2.0.2 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/virtualdom": ^2.0.2 + checksum: c5055e42b0b7d5d9a0c29d14c7053478cbdef057525e262ccd59c987971364d5462ed1a59d5008b889cf5ecc6810e90c681364239500b9c8ee0ae4624d60df84 + languageName: node + linkType: hard + +"@microsoft/fast-colors@npm:^5.3.1": + version: 5.3.1 + resolution: "@microsoft/fast-colors@npm:5.3.1" + checksum: ff87f402faadb4b5aeee3d27762566c11807f927cd4012b8bbc7f073ca68de0e2197f95330ff5dfd7038f4b4f0e2f51b11feb64c5d570f5c598d37850a5daf60 + languageName: node + linkType: hard + +"@microsoft/fast-element@npm:^1.12.0, @microsoft/fast-element@npm:^1.13.0": + version: 1.13.0 + resolution: "@microsoft/fast-element@npm:1.13.0" + checksum: 1cb7b4cfb7531116a3542d3f59bf1dd35106194f5764205403590250aaff744de79e35a5a1f36b4941c4eda9edc088148d4d629fb80be15fdf25f6be01770f3a + languageName: node + linkType: hard + +"@microsoft/fast-foundation@npm:^2.49.4, @microsoft/fast-foundation@npm:^2.49.6": + version: 2.49.6 + resolution: "@microsoft/fast-foundation@npm:2.49.6" + dependencies: + "@microsoft/fast-element": ^1.13.0 + "@microsoft/fast-web-utilities": ^5.4.1 + tabbable: ^5.2.0 + tslib: ^1.13.0 + checksum: 15fdf9dd0b910a72a9cff140f765d522304df11f8a78d5a97a815e2bbae25027c2b336e94f89ca31e650d6aabe17b590b7453acc0d2cb7340c219eb76350a942 + languageName: node + linkType: hard + +"@microsoft/fast-react-wrapper@npm:^0.3.22": + version: 0.3.24 + resolution: "@microsoft/fast-react-wrapper@npm:0.3.24" + dependencies: + "@microsoft/fast-element": ^1.13.0 + "@microsoft/fast-foundation": ^2.49.6 + peerDependencies: + react: ">=16.9.0" + checksum: 1d7a87509c22872bafc9b5c64f66659e52ba0cfdff484d7204125e503dafdea143f5e1bd2a643e2f3fbba6cc7567d916393369433f19dab9f0adcbe7a88b7d98 + languageName: node + linkType: hard + +"@microsoft/fast-web-utilities@npm:^5.4.1": + version: 5.4.1 + resolution: "@microsoft/fast-web-utilities@npm:5.4.1" + dependencies: + exenv-es6: ^1.1.1 + checksum: 303e87847f962944f474e3716c3eb305668243916ca9e0719e26bb9a32346144bc958d915c103776b3e552cea0f0f6233f839fad66adfdf96a8436b947288ca7 languageName: node linkType: hard @@ -1372,25 +1476,25 @@ __metadata: languageName: node linkType: hard -"@rjsf/core@npm:^5.1.0": - version: 5.7.2 - resolution: "@rjsf/core@npm:5.7.2" +"@rjsf/core@npm:^5.13.4": + version: 5.20.1 + resolution: "@rjsf/core@npm:5.20.1" dependencies: lodash: ^4.17.21 lodash-es: ^4.17.21 - markdown-to-jsx: ^7.2.0 - nanoid: ^3.3.6 + markdown-to-jsx: ^7.4.1 + nanoid: ^3.3.7 prop-types: ^15.8.1 peerDependencies: - "@rjsf/utils": 5.7.x + "@rjsf/utils": ^5.20.x react: ^16.14.0 || >=17 - checksum: a2c40a71db35b4609a41bebb173060ff0fdab7007cbd1fe6f958e50fb15b2ecef4f0d63648d882b5af59b35327c1d92c34178f1609c5b9d9f7ca77b2704ca427 + checksum: a75a5261090bc1dd46594060981a130721060c38805031d1554b077e46673f84ffb40c489c2b579cf50e4fbb709210585a139e1c5d9eaccd603d957e95c2ead2 languageName: node linkType: hard -"@rjsf/utils@npm:^5.1.0": - version: 5.7.2 - resolution: "@rjsf/utils@npm:5.7.2" +"@rjsf/utils@npm:^5.13.4": + version: 5.20.1 + resolution: "@rjsf/utils@npm:5.20.1" dependencies: json-schema-merge-allof: ^0.8.1 jsonpointer: ^5.0.1 @@ -1399,7 +1503,7 @@ __metadata: react-is: ^18.2.0 peerDependencies: react: ^16.14.0 || >=17 - checksum: 77dd1365b509fb246094dbb20c02917788fea0ff18b3afd7dcc2f9330b6310a3ca5e1d7983e8eee56c0734ebd45bc110e862b9366ef9616fad351304d514262a + checksum: 8bf59caeb9d32d40ec492df7fc702f0573ad2054042a3a0676fb7e10afa56d0d85740be28a752782fc16273952553ab76b40eb17e4e5b1178f473628003109f4 languageName: node linkType: hard @@ -1417,110 +1521,84 @@ __metadata: languageName: node linkType: hard -"@types/eslint-scope@npm:^3.7.3": - version: 3.7.4 - resolution: "@types/eslint-scope@npm:3.7.4" - dependencies: - "@types/eslint": "*" - "@types/estree": "*" - checksum: ea6a9363e92f301cd3888194469f9ec9d0021fe0a397a97a6dd689e7545c75de0bd2153dfb13d3ab532853a278b6572c6f678ce846980669e41029d205653460 - languageName: node - linkType: hard - -"@types/eslint@npm:*": - version: 8.37.0 - resolution: "@types/eslint@npm:8.37.0" - dependencies: - "@types/estree": "*" - "@types/json-schema": "*" - checksum: 06d3b3fba12004294591b5c7a52e3cec439472195da54e096076b1f2ddfbb8a445973b9681046dd530a6ac31eca502f635abc1e3ce37d03513089358e6f822ee - languageName: node - linkType: hard - -"@types/estree@npm:*, @types/estree@npm:^1.0.0": - version: 1.0.1 - resolution: "@types/estree@npm:1.0.1" - checksum: e9aa175eacb797216fafce4d41e8202c7a75555bc55232dee0f9903d7171f8f19f0ae7d5191bb1a88cb90e65468be508c0df850a9fb81b4433b293a5a749899d +"@types/estree@npm:^1.0.5": + version: 1.0.5 + resolution: "@types/estree@npm:1.0.5" + checksum: dd8b5bed28e6213b7acd0fb665a84e693554d850b0df423ac8076cc3ad5823a6bc26b0251d080bdc545af83179ede51dd3f6fa78cad2c46ed1f29624ddf3e41a languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.11, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.7, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": - version: 7.0.11 - resolution: "@types/json-schema@npm:7.0.11" - checksum: 527bddfe62db9012fccd7627794bd4c71beb77601861055d87e3ee464f2217c85fca7a4b56ae677478367bbd248dbde13553312b7d4dbc702a2f2bbf60c4018d +"@types/json-schema@npm:^7.0.11, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.7, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 languageName: node linkType: hard "@types/minimist@npm:^1.2.2": - version: 1.2.2 - resolution: "@types/minimist@npm:1.2.2" - checksum: b8da83c66eb4aac0440e64674b19564d9d86c80ae273144db9681e5eeff66f238ade9515f5006ffbfa955ceff8b89ad2bd8ec577d7caee74ba101431fb07045d + version: 1.2.5 + resolution: "@types/minimist@npm:1.2.5" + checksum: 477047b606005058ab0263c4f58097136268007f320003c348794f74adedc3166ffc47c80ec3e94687787f2ab7f4e72c468223946e79892cf0fd9e25e9970a90 languageName: node linkType: hard "@types/node@npm:*": - version: 20.2.1 - resolution: "@types/node@npm:20.2.1" - checksum: ed774afa6e9b4ad7868ed0182a8ca40ad0dd54815a70d3051b23fa850f3bca6bea4d0cb55e1fc769666786ac2cc4c1b37aeade313cb4c4634133f18ebcded496 + version: 22.5.1 + resolution: "@types/node@npm:22.5.1" + dependencies: + undici-types: ~6.19.2 + checksum: 366990347c12e08e9ffe113e493253ac454d5337828e23cb02c790d5abe1f2ab0148da37b728eb886d858c4c5f29f4341a29987e89555d482ea236691d9d2648 languageName: node linkType: hard "@types/normalize-package-data@npm:^2.4.0": - version: 2.4.1 - resolution: "@types/normalize-package-data@npm:2.4.1" - checksum: e87bccbf11f95035c89a132b52b79ce69a1e3652fe55962363063c9c0dae0fe2477ebc585e03a9652adc6f381d24ba5589cc5e51849df4ced3d3e004a7d40ed5 + version: 2.4.4 + resolution: "@types/normalize-package-data@npm:2.4.4" + checksum: 65dff72b543997b7be8b0265eca7ace0e34b75c3e5fee31de11179d08fa7124a7a5587265d53d0409532ecb7f7fba662c2012807963e1f9b059653ec2c83ee05 languageName: node linkType: hard "@types/prop-types@npm:*": - version: 15.7.5 - resolution: "@types/prop-types@npm:15.7.5" - checksum: 5b43b8b15415e1f298243165f1d44390403bb2bd42e662bca3b5b5633fdd39c938e91b7fce3a9483699db0f7a715d08cef220c121f723a634972fdf596aec980 + version: 15.7.12 + resolution: "@types/prop-types@npm:15.7.12" + checksum: ac16cc3d0a84431ffa5cfdf89579ad1e2269549f32ce0c769321fdd078f84db4fbe1b461ed5a1a496caf09e637c0e367d600c541435716a55b1d9713f5035dfe languageName: node linkType: hard "@types/react-dom@npm:^18.2.4": - version: 18.2.4 - resolution: "@types/react-dom@npm:18.2.4" + version: 18.3.0 + resolution: "@types/react-dom@npm:18.3.0" dependencies: "@types/react": "*" - checksum: 8301f35cf1cbfec8c723e9477aecf87774e3c168bd457d353b23c45064737213d3e8008b067c6767b7b08e4f2b3823ee239242a6c225fc91e7f8725ef8734124 + checksum: a0cd9b1b815a6abd2a367a9eabdd8df8dd8f13f95897b2f9e1359ea3ac6619f957c1432ece004af7d95e2a7caddbba19faa045f831f32d6263483fc5404a7596 languageName: node linkType: hard "@types/react@npm:*, @types/react@npm:^18.0.26, @types/react@npm:^18.2.6": - version: 18.2.6 - resolution: "@types/react@npm:18.2.6" + version: 18.3.4 + resolution: "@types/react@npm:18.3.4" dependencies: "@types/prop-types": "*" - "@types/scheduler": "*" csstype: ^3.0.2 - checksum: dea9d232d8df7ac357367a69dcb557711ab3d5501807ffa77cebeee73d49ee94d095f298e36853c63ed47cce097eee4c7eae2aaa8c02fac3f0171ec1b523a819 - languageName: node - linkType: hard - -"@types/scheduler@npm:*": - version: 0.16.3 - resolution: "@types/scheduler@npm:0.16.3" - checksum: 2b0aec39c24268e3ce938c5db2f2e77f5c3dd280e05c262d9c2fe7d890929e4632a6b8e94334017b66b45e4f92a5aa42ba3356640c2a1175fa37bef2f5200767 + checksum: 555ccd1af86a23c781dea0360de64b2f7a0708cdcbf9e6496744b77630065868526fd55147c727dc5ef11b7fd712b04f7898757a84c67e2eb9dfd4c4ead10d95 languageName: node linkType: hard "@types/source-list-map@npm:*": - version: 0.1.2 - resolution: "@types/source-list-map@npm:0.1.2" - checksum: fda8f37537aca9d3ed860d559289ab1dddb6897e642e6f53e909bbd18a7ac3129a8faa2a7d093847c91346cf09c86ef36e350c715406fba1f2271759b449adf6 + version: 0.1.6 + resolution: "@types/source-list-map@npm:0.1.6" + checksum: 9cd294c121f1562062de5d241fe4d10780b1131b01c57434845fe50968e9dcf67ede444591c2b1ad6d3f9b6bc646ac02cc8f51a3577c795f9c64cf4573dcc6b1 languageName: node linkType: hard "@types/webpack-sources@npm:^0.1.5": - version: 0.1.9 - resolution: "@types/webpack-sources@npm:0.1.9" + version: 0.1.12 + resolution: "@types/webpack-sources@npm:0.1.12" dependencies: "@types/node": "*" "@types/source-list-map": "*" source-map: ^0.6.1 - checksum: bc09c584c7047e8aed29801a3981787dee3898e9e7a99891a362df114fcac3879eea5a00932314866a01b25220391839be09fe1487b16d4970ff4a7afd5b9725 + checksum: 75342659a9889478969f7bb7360b998aa084ba11ab523c172ded6a807dac43ab2a9e1212078ef8bbf0f33e4fadd2c8a91b75d38184d8030d96a32fe819c9bb57 languageName: node linkType: hard @@ -1624,13 +1702,13 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/ast@npm:1.11.6, @webassemblyjs/ast@npm:^1.11.5": - version: 1.11.6 - resolution: "@webassemblyjs/ast@npm:1.11.6" +"@webassemblyjs/ast@npm:1.12.1, @webassemblyjs/ast@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/ast@npm:1.12.1" dependencies: "@webassemblyjs/helper-numbers": 1.11.6 "@webassemblyjs/helper-wasm-bytecode": 1.11.6 - checksum: 38ef1b526ca47c210f30975b06df2faf1a8170b1636ce239fc5738fc231ce28389dd61ecedd1bacfc03cbe95b16d1af848c805652080cb60982836eb4ed2c6cf + checksum: 31bcc64147236bd7b1b6d29d1f419c1f5845c785e1e42dc9e3f8ca2e05a029e9393a271b84f3a5bff2a32d35f51ff59e2181a6e5f953fe88576acd6750506202 languageName: node linkType: hard @@ -1648,10 +1726,10 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/helper-buffer@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/helper-buffer@npm:1.11.6" - checksum: b14d0573bf680d22b2522e8a341ec451fddd645d1f9c6bd9012ccb7e587a2973b86ab7b89fe91e1c79939ba96095f503af04369a3b356c8023c13a5893221644 +"@webassemblyjs/helper-buffer@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/helper-buffer@npm:1.12.1" + checksum: c3ffb723024130308db608e86e2bdccd4868bbb62dffb0a9a1530606496f79c87f8565bd8e02805ce64912b71f1a70ee5fb00307258b0c082c3abf961d097eca languageName: node linkType: hard @@ -1673,15 +1751,15 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/helper-wasm-section@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/helper-wasm-section@npm:1.11.6" +"@webassemblyjs/helper-wasm-section@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.12.1" dependencies: - "@webassemblyjs/ast": 1.11.6 - "@webassemblyjs/helper-buffer": 1.11.6 + "@webassemblyjs/ast": 1.12.1 + "@webassemblyjs/helper-buffer": 1.12.1 "@webassemblyjs/helper-wasm-bytecode": 1.11.6 - "@webassemblyjs/wasm-gen": 1.11.6 - checksum: b2cf751bf4552b5b9999d27bbb7692d0aca75260140195cb58ea6374d7b9c2dc69b61e10b211a0e773f66209c3ddd612137ed66097e3684d7816f854997682e9 + "@webassemblyjs/wasm-gen": 1.12.1 + checksum: c19810cdd2c90ff574139b6d8c0dda254d42d168a9e5b3d353d1bc085f1d7164ccd1b3c05592a45a939c47f7e403dc8d03572bb686642f06a3d02932f6f0bc8f languageName: node linkType: hard @@ -1710,101 +1788,101 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/wasm-edit@npm:^1.11.5": - version: 1.11.6 - resolution: "@webassemblyjs/wasm-edit@npm:1.11.6" +"@webassemblyjs/wasm-edit@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-edit@npm:1.12.1" dependencies: - "@webassemblyjs/ast": 1.11.6 - "@webassemblyjs/helper-buffer": 1.11.6 + "@webassemblyjs/ast": 1.12.1 + "@webassemblyjs/helper-buffer": 1.12.1 "@webassemblyjs/helper-wasm-bytecode": 1.11.6 - "@webassemblyjs/helper-wasm-section": 1.11.6 - "@webassemblyjs/wasm-gen": 1.11.6 - "@webassemblyjs/wasm-opt": 1.11.6 - "@webassemblyjs/wasm-parser": 1.11.6 - "@webassemblyjs/wast-printer": 1.11.6 - checksum: 29ce75870496d6fad864d815ebb072395a8a3a04dc9c3f4e1ffdc63fc5fa58b1f34304a1117296d8240054cfdbc38aca88e71fb51483cf29ffab0a61ef27b481 + "@webassemblyjs/helper-wasm-section": 1.12.1 + "@webassemblyjs/wasm-gen": 1.12.1 + "@webassemblyjs/wasm-opt": 1.12.1 + "@webassemblyjs/wasm-parser": 1.12.1 + "@webassemblyjs/wast-printer": 1.12.1 + checksum: ae23642303f030af888d30c4ef37b08dfec7eab6851a9575a616e65d1219f880d9223913a39056dd654e49049d76e97555b285d1f7e56935047abf578cce0692 languageName: node linkType: hard -"@webassemblyjs/wasm-gen@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/wasm-gen@npm:1.11.6" +"@webassemblyjs/wasm-gen@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-gen@npm:1.12.1" dependencies: - "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/ast": 1.12.1 "@webassemblyjs/helper-wasm-bytecode": 1.11.6 "@webassemblyjs/ieee754": 1.11.6 "@webassemblyjs/leb128": 1.11.6 "@webassemblyjs/utf8": 1.11.6 - checksum: a645a2eecbea24833c3260a249704a7f554ef4a94c6000984728e94bb2bc9140a68dfd6fd21d5e0bbb09f6dfc98e083a45760a83ae0417b41a0196ff6d45a23a + checksum: 5787626bb7f0b033044471ddd00ce0c9fe1ee4584e8b73e232051e3a4c99ba1a102700d75337151c8b6055bae77eefa4548960c610a5e4a504e356bd872138ff languageName: node linkType: hard -"@webassemblyjs/wasm-opt@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/wasm-opt@npm:1.11.6" +"@webassemblyjs/wasm-opt@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-opt@npm:1.12.1" dependencies: - "@webassemblyjs/ast": 1.11.6 - "@webassemblyjs/helper-buffer": 1.11.6 - "@webassemblyjs/wasm-gen": 1.11.6 - "@webassemblyjs/wasm-parser": 1.11.6 - checksum: b4557f195487f8e97336ddf79f7bef40d788239169aac707f6eaa2fa5fe243557c2d74e550a8e57f2788e70c7ae4e7d32f7be16101afe183d597b747a3bdd528 + "@webassemblyjs/ast": 1.12.1 + "@webassemblyjs/helper-buffer": 1.12.1 + "@webassemblyjs/wasm-gen": 1.12.1 + "@webassemblyjs/wasm-parser": 1.12.1 + checksum: 0e8fa8a0645304a1e18ff40d3db5a2e9233ebaa169b19fcc651d6fc9fe2cac0ce092ddee927318015ae735d9cd9c5d97c0cafb6a51dcd2932ac73587b62df991 languageName: node linkType: hard -"@webassemblyjs/wasm-parser@npm:1.11.6, @webassemblyjs/wasm-parser@npm:^1.11.5": - version: 1.11.6 - resolution: "@webassemblyjs/wasm-parser@npm:1.11.6" +"@webassemblyjs/wasm-parser@npm:1.12.1, @webassemblyjs/wasm-parser@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-parser@npm:1.12.1" dependencies: - "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/ast": 1.12.1 "@webassemblyjs/helper-api-error": 1.11.6 "@webassemblyjs/helper-wasm-bytecode": 1.11.6 "@webassemblyjs/ieee754": 1.11.6 "@webassemblyjs/leb128": 1.11.6 "@webassemblyjs/utf8": 1.11.6 - checksum: 8200a8d77c15621724a23fdabe58d5571415cda98a7058f542e670ea965dd75499f5e34a48675184947c66f3df23adf55df060312e6d72d57908e3f049620d8a + checksum: 176015de3551ac068cd4505d837414f258d9ade7442bd71efb1232fa26c9f6d7d4e11a5c816caeed389943f409af7ebff6899289a992d7a70343cb47009d21a8 languageName: node linkType: hard -"@webassemblyjs/wast-printer@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/wast-printer@npm:1.11.6" +"@webassemblyjs/wast-printer@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wast-printer@npm:1.12.1" dependencies: - "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/ast": 1.12.1 "@xtuc/long": 4.2.2 - checksum: d2fa6a4c427325ec81463e9c809aa6572af6d47f619f3091bf4c4a6fc34f1da3df7caddaac50b8e7a457f8784c62cd58c6311b6cb69b0162ccd8d4c072f79cf8 + checksum: 2974b5dda8d769145ba0efd886ea94a601e61fb37114c14f9a9a7606afc23456799af652ac3052f284909bd42edc3665a76bc9b50f95f0794c053a8a1757b713 languageName: node linkType: hard -"@webpack-cli/configtest@npm:^2.1.0": - version: 2.1.0 - resolution: "@webpack-cli/configtest@npm:2.1.0" +"@webpack-cli/configtest@npm:^2.1.1": + version: 2.1.1 + resolution: "@webpack-cli/configtest@npm:2.1.1" peerDependencies: webpack: 5.x.x webpack-cli: 5.x.x - checksum: b875fccd8be9a936924e24986725823347703e3eb72ea884e74669ca20f007704e859855a6a05940d5d3805ce2fc08b183a0f1658d5395b5454b3f5f88293081 + checksum: 9f9f9145c2d05471fc83d426db1df85cf49f329836b0c4b9f46b6948bed4b013464c00622b136d2a0a26993ce2306976682592245b08ee717500b1db45009a72 languageName: node linkType: hard -"@webpack-cli/info@npm:^2.0.1": - version: 2.0.1 - resolution: "@webpack-cli/info@npm:2.0.1" +"@webpack-cli/info@npm:^2.0.2": + version: 2.0.2 + resolution: "@webpack-cli/info@npm:2.0.2" peerDependencies: webpack: 5.x.x webpack-cli: 5.x.x - checksum: b8fba49fee10d297c2affb0b064c9a81e9038d75517c6728fb85f9fb254cae634e5d33e696dac5171e6944ae329d85fddac72f781c7d833f7e9dfe43151ce60d + checksum: 8f9a178afca5c82e113aed1efa552d64ee5ae4fdff63fe747c096a981ec74f18a5d07bd6e89bbe6715c3e57d96eea024a410e58977169489fe1df044c10dd94e languageName: node linkType: hard -"@webpack-cli/serve@npm:^2.0.4": - version: 2.0.4 - resolution: "@webpack-cli/serve@npm:2.0.4" +"@webpack-cli/serve@npm:^2.0.5": + version: 2.0.5 + resolution: "@webpack-cli/serve@npm:2.0.5" peerDependencies: webpack: 5.x.x webpack-cli: 5.x.x peerDependenciesMeta: webpack-dev-server: optional: true - checksum: 561ea2e6eb551415f0b1675393a8480e1201293fe37eae334cbb1fdc466986668cca76ca1ca327ada9b498eae27cbecef0793e3bb5677288f1a5216cad414efe + checksum: 75f0e54681796d567a71ac3e2781d2901a8d8cf1cdfc82f261034dddac59a8343e8c3bc5e32b4bb9d6766759ba49fb29a5cd86ef1701d79c506fe886bb63ac75 languageName: node linkType: hard @@ -1829,12 +1907,12 @@ __metadata: languageName: node linkType: hard -"acorn-import-assertions@npm:^1.7.6": - version: 1.9.0 - resolution: "acorn-import-assertions@npm:1.9.0" +"acorn-import-attributes@npm:^1.9.5": + version: 1.9.5 + resolution: "acorn-import-attributes@npm:1.9.5" peerDependencies: acorn: ^8 - checksum: 944fb2659d0845c467066bdcda2e20c05abe3aaf11972116df457ce2627628a81764d800dd55031ba19de513ee0d43bb771bc679cc0eda66dc8b4fade143bc0c + checksum: 1c0c49b6a244503964ae46ae850baccf306e84caf99bc2010ed6103c69a423987b07b520a6c619f075d215388bd4923eccac995886a54309eda049ab78a4be95 languageName: node linkType: hard @@ -1856,12 +1934,12 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.5.0, acorn@npm:^8.7.1": - version: 8.8.2 - resolution: "acorn@npm:8.8.2" +"acorn@npm:^8.7.1, acorn@npm:^8.8.2": + version: 8.12.1 + resolution: "acorn@npm:8.12.1" bin: acorn: bin/acorn - checksum: f790b99a1bf63ef160c967e23c46feea7787e531292bb827126334612c234ed489a0dc2c7ba33156416f0ffa8d25bf2b0fdb7f35c2ba60eb3e960572bece4001 + checksum: 677880034aee5bdf7434cc2d25b641d7bedb0b5ef47868a78dadabedccf58e1c5457526d9d8249cd253f2df087e081c3fe7d903b448d8e19e5131a3065b83c07 languageName: node linkType: hard @@ -1912,14 +1990,14 @@ __metadata: linkType: hard "ajv@npm:^8.0.0, ajv@npm:^8.0.1, ajv@npm:^8.12.0, ajv@npm:^8.9.0": - version: 8.12.0 - resolution: "ajv@npm:8.12.0" + version: 8.17.1 + resolution: "ajv@npm:8.17.1" dependencies: - fast-deep-equal: ^3.1.1 + fast-deep-equal: ^3.1.3 + fast-uri: ^3.0.1 json-schema-traverse: ^1.0.0 require-from-string: ^2.0.2 - uri-js: ^4.2.2 - checksum: 4dc13714e316e67537c8b31bc063f99a1d9d9a497eb4bbd55191ac0dcd5e4985bbb71570352ad6f1e76684fb6d790928f96ba3b2d4fd6e10024be9612fe3f001 + checksum: 1797bf242cfffbaf3b870d13565bd1716b73f214bb7ada9a497063aada210200da36e3ed40237285f3255acc4feeae91b1fb183625331bad27da95973f7253d9 languageName: node linkType: hard @@ -2027,13 +2105,13 @@ __metadata: languageName: node linkType: hard -"array-buffer-byte-length@npm:^1.0.0": - version: 1.0.0 - resolution: "array-buffer-byte-length@npm:1.0.0" +"array-buffer-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "array-buffer-byte-length@npm:1.0.1" dependencies: - call-bind: ^1.0.2 - is-array-buffer: ^3.0.1 - checksum: 044e101ce150f4804ad19c51d6c4d4cfa505c5b2577bd179256e4aa3f3f6a0a5e9874c78cd428ee566ac574c8a04d7ce21af9fe52e844abfdccb82b33035a7c3 + call-bind: ^1.0.5 + is-array-buffer: ^3.0.4 + checksum: 53524e08f40867f6a9f35318fafe467c32e45e9c682ba67b11943e167344d2febc0f6977a17e699b05699e805c3e8f073d876f8bbf1b559ed494ad2cd0fae09e languageName: node linkType: hard @@ -2067,6 +2145,22 @@ __metadata: languageName: node linkType: hard +"arraybuffer.prototype.slice@npm:^1.0.3": + version: 1.0.3 + resolution: "arraybuffer.prototype.slice@npm:1.0.3" + dependencies: + array-buffer-byte-length: ^1.0.1 + call-bind: ^1.0.5 + define-properties: ^1.2.1 + es-abstract: ^1.22.3 + es-errors: ^1.2.1 + get-intrinsic: ^1.2.3 + is-array-buffer: ^3.0.4 + is-shared-array-buffer: ^1.0.2 + checksum: 352259cba534dcdd969c92ab002efd2ba5025b2e3b9bead3973150edbdf0696c629d7f4b3f061c5931511e8207bdc2306da614703c820b45dabce39e3daf7e3e + languageName: node + linkType: hard + "arrify@npm:^1.0.1": version: 1.0.1 resolution: "arrify@npm:1.0.1" @@ -2097,10 +2191,12 @@ __metadata: languageName: node linkType: hard -"available-typed-arrays@npm:^1.0.5": - version: 1.0.5 - resolution: "available-typed-arrays@npm:1.0.5" - checksum: 20eb47b3cefd7db027b9bbb993c658abd36d4edd3fe1060e83699a03ee275b0c9b216cc076ff3f2db29073225fb70e7613987af14269ac1fe2a19803ccc97f1a +"available-typed-arrays@npm:^1.0.7": + version: 1.0.7 + resolution: "available-typed-arrays@npm:1.0.7" + dependencies: + possible-typed-array-names: ^1.0.0 + checksum: 1aa3ffbfe6578276996de660848b6e95669d9a95ad149e3dd0c0cda77db6ee1dbd9d1dd723b65b6d277b882dd0c4b91a654ae9d3cf9e1254b7e93e4908d78fd3 languageName: node linkType: hard @@ -2177,26 +2273,26 @@ __metadata: languageName: node linkType: hard -"braces@npm:^3.0.2": - version: 3.0.2 - resolution: "braces@npm:3.0.2" +"braces@npm:^3.0.3": + version: 3.0.3 + resolution: "braces@npm:3.0.3" dependencies: - fill-range: ^7.0.1 - checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 + fill-range: ^7.1.1 + checksum: b95aa0b3bd909f6cd1720ffcf031aeaf46154dd88b4da01f9a1d3f7ea866a79eba76a6d01cbc3c422b2ee5cdc39a4f02491058d5df0d7bf6e6a162a832df1f69 languageName: node linkType: hard -"browserslist@npm:^4.14.5": - version: 4.21.5 - resolution: "browserslist@npm:4.21.5" +"browserslist@npm:^4.21.10": + version: 4.23.3 + resolution: "browserslist@npm:4.23.3" dependencies: - caniuse-lite: ^1.0.30001449 - electron-to-chromium: ^1.4.284 - node-releases: ^2.0.8 - update-browserslist-db: ^1.0.10 + caniuse-lite: ^1.0.30001646 + electron-to-chromium: ^1.5.4 + node-releases: ^2.0.18 + update-browserslist-db: ^1.1.0 bin: browserslist: cli.js - checksum: 9755986b22e73a6a1497fd8797aedd88e04270be33ce66ed5d85a1c8a798292a65e222b0f251bafa1c2522261e237d73b08b58689d4920a607e5a53d56dc4706 + checksum: 7906064f9970aeb941310b2fcb8b4ace4a1b50aa657c986677c6f1553a8cabcc94ee9c5922f715baffbedaa0e6cf0831b6fed7b059dde6873a4bfadcbe069c7e languageName: node linkType: hard @@ -2231,13 +2327,16 @@ __metadata: languageName: node linkType: hard -"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2": - version: 1.0.2 - resolution: "call-bind@npm:1.0.2" +"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": + version: 1.0.7 + resolution: "call-bind@npm:1.0.7" dependencies: - function-bind: ^1.1.1 - get-intrinsic: ^1.0.2 - checksum: f8e31de9d19988a4b80f3e704788c4a2d6b6f3d17cfec4f57dc29ced450c53a49270dc66bf0fbd693329ee948dd33e6c90a329519aef17474a4d961e8d6426b0 + es-define-property: ^1.0.0 + es-errors: ^1.3.0 + function-bind: ^1.1.2 + get-intrinsic: ^1.2.4 + set-function-length: ^1.2.1 + checksum: 295c0c62b90dd6522e6db3b0ab1ce26bdf9e7404215bda13cfee25b626b5ff1a7761324d58d38b1ef1607fc65aca2d06e44d2e18d0dfc6c14b465b00d8660029 languageName: node linkType: hard @@ -2292,10 +2391,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001449": - version: 1.0.30001488 - resolution: "caniuse-lite@npm:1.0.30001488" - checksum: ef0caf2914f9fca700b75d22921f500241f4e988ded9985e62737136031787052185d8136a65a3a6d6d12b559cf75ab99f5488931f8bd060f1b7810a2c1ee1d1 +"caniuse-lite@npm:^1.0.30001646": + version: 1.0.30001653 + resolution: "caniuse-lite@npm:1.0.30001653" + checksum: 289cf06c26a46f3e6460ccd5feffa788ab0ab35d306898c48120c65cfb11959bfa560e9f739393769b4fd01150c69b0747ad3ad5ec3abf3dfafd66df3c59254e languageName: node linkType: hard @@ -2312,7 +2411,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.0.0, chalk@npm:^2.0.1, chalk@npm:^2.3.0, chalk@npm:^2.3.1, chalk@npm:^2.4.1": +"chalk@npm:^2.0.1, chalk@npm:^2.3.0, chalk@npm:^2.3.1, chalk@npm:^2.4.1, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -2334,9 +2433,9 @@ __metadata: linkType: hard "chrome-trace-event@npm:^1.0.2": - version: 1.0.3 - resolution: "chrome-trace-event@npm:1.0.3" - checksum: cb8b1fc7e881aaef973bd0c4a43cd353c2ad8323fb471a041e64f7c2dd849cde4aad15f8b753331a32dda45c973f032c8a03b8177fc85d60eaa75e91e08bfb97 + version: 1.0.4 + resolution: "chrome-trace-event@npm:1.0.4" + checksum: fcbbd9dd0cd5b48444319007cc0c15870fd8612cc0df320908aa9d5e8a244084d48571eb28bf3c58c19327d2c5838f354c2d89fac3956d8e992273437401ac19 languageName: node linkType: hard @@ -2474,9 +2573,9 @@ __metadata: linkType: hard "component-emitter@npm:^1.2.1": - version: 1.3.0 - resolution: "component-emitter@npm:1.3.0" - checksum: b3c46de38ffd35c57d1c02488355be9f218e582aec72d72d1b8bbec95a3ac1b38c96cd6e03ff015577e68f550fbb361a3bfdbd9bb248be9390b7b3745691be6b + version: 1.3.1 + resolution: "component-emitter@npm:1.3.1" + checksum: 94550aa462c7bd5a61c1bc480e28554aa306066930152d1b1844a0dd3845d4e5db7e261ddec62ae184913b3e59b55a2ad84093b9d3596a8f17c341514d6c483d languageName: node linkType: hard @@ -2530,14 +2629,19 @@ __metadata: linkType: hard "cosmiconfig@npm:^8.2.0": - version: 8.2.0 - resolution: "cosmiconfig@npm:8.2.0" + version: 8.3.6 + resolution: "cosmiconfig@npm:8.3.6" dependencies: - import-fresh: ^3.2.1 + import-fresh: ^3.3.0 js-yaml: ^4.1.0 - parse-json: ^5.0.0 + parse-json: ^5.2.0 path-type: ^4.0.0 - checksum: 836d5d8efa750f3fb17b03d6ca74cd3154ed025dffd045304b3ef59637f662bde1e5dc88f8830080d180ec60841719cf4ea2ce73fb21ec694b16865c478ff297 + peerDependencies: + typescript: ">=4.9.5" + peerDependenciesMeta: + typescript: + optional: true + checksum: dc339ebea427898c9e03bf01b56ba7afbac07fc7d2a2d5a15d6e9c14de98275a9565da949375aee1809591c152c0a3877bb86dbeaf74d5bd5aaa79955ad9e7a0 languageName: node linkType: hard @@ -2572,28 +2676,34 @@ __metadata: languageName: node linkType: hard -"css-functions-list@npm:^3.1.0": - version: 3.1.0 - resolution: "css-functions-list@npm:3.1.0" - checksum: 8a7c9d4ae57cb2f01500263e65a21372048d359ca7aa6430a32a736fe2a421decfebe45e579124b9a158ec68aba2eadcd733e568495a7698240d9607d31f681b +"css-functions-list@npm:^3.2.1": + version: 3.2.2 + resolution: "css-functions-list@npm:3.2.2" + checksum: b8a564118b93b87b63236a57132a3ef581416896a70c1d0df73360a9ec43dc582f7c2a586b578feb8476179518e557c6657570a8b6185b16300c7232a84d43e3 languageName: node linkType: hard "css-loader@npm:^6.7.1": - version: 6.7.4 - resolution: "css-loader@npm:6.7.4" + version: 6.11.0 + resolution: "css-loader@npm:6.11.0" dependencies: icss-utils: ^5.1.0 - postcss: ^8.4.21 - postcss-modules-extract-imports: ^3.0.0 - postcss-modules-local-by-default: ^4.0.1 - postcss-modules-scope: ^3.0.0 + postcss: ^8.4.33 + postcss-modules-extract-imports: ^3.1.0 + postcss-modules-local-by-default: ^4.0.5 + postcss-modules-scope: ^3.2.0 postcss-modules-values: ^4.0.0 postcss-value-parser: ^4.2.0 - semver: ^7.3.8 + semver: ^7.5.4 peerDependencies: + "@rspack/core": 0.x || 1.x webpack: ^5.0.0 - checksum: 6021fa9e375d767b9675e295c1513f2ee4ae04f76d9de69a75b8446e05f6e02b2170407ea72939925b788dcd5aa308527f6b41be3870dc1f4b0bfff8d2532c6e + peerDependenciesMeta: + "@rspack/core": + optional: true + webpack: + optional: true + checksum: 5c8d35975a7121334905394e88e28f05df72f037dbed2fb8fec4be5f0b313ae73a13894ba791867d4a4190c35896da84a7fd0c54fb426db55d85ba5e714edbe3 languageName: node linkType: hard @@ -2624,9 +2734,9 @@ __metadata: linkType: hard "csstype@npm:^3.0.2": - version: 3.1.2 - resolution: "csstype@npm:3.1.2" - checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5 + version: 3.1.3 + resolution: "csstype@npm:3.1.3" + checksum: 8db785cc92d259102725b3c694ec0c823f5619a84741b5c7991b8ad135dfaa66093038a1cc63e03361a6cd28d122be48f2106ae72334e067dd619a51f49eddf7 languageName: node linkType: hard @@ -2641,6 +2751,39 @@ __metadata: languageName: node linkType: hard +"data-view-buffer@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-buffer@npm:1.0.1" + dependencies: + call-bind: ^1.0.6 + es-errors: ^1.3.0 + is-data-view: ^1.0.1 + checksum: ce24348f3c6231223b216da92e7e6a57a12b4af81a23f27eff8feabdf06acfb16c00639c8b705ca4d167f761cfc756e27e5f065d0a1f840c10b907fdaf8b988c + languageName: node + linkType: hard + +"data-view-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-byte-length@npm:1.0.1" + dependencies: + call-bind: ^1.0.7 + es-errors: ^1.3.0 + is-data-view: ^1.0.1 + checksum: dbb3200edcb7c1ef0d68979834f81d64fd8cab2f7691b3a4c6b97e67f22182f3ec2c8602efd7b76997b55af6ff8bce485829c1feda4fa2165a6b71fb7baa4269 + languageName: node + linkType: hard + +"data-view-byte-offset@npm:^1.0.0": + version: 1.0.0 + resolution: "data-view-byte-offset@npm:1.0.0" + dependencies: + call-bind: ^1.0.6 + es-errors: ^1.3.0 + is-data-view: ^1.0.1 + checksum: 7f0bf8720b7414ca719eedf1846aeec392f2054d7af707c5dc9a753cc77eb8625f067fa901e0b5127e831f9da9056138d894b9c2be79c27a21f6db5824f009c2 + languageName: node + linkType: hard + "date-fns@npm:^1.27.2": version: 1.30.1 resolution: "date-fns@npm:1.30.1" @@ -2667,14 +2810,14 @@ __metadata: linkType: hard "debug@npm:^4.0.1, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.4": - version: 4.3.4 - resolution: "debug@npm:4.3.4" + version: 4.3.6 + resolution: "debug@npm:4.3.6" dependencies: ms: 2.1.2 peerDependenciesMeta: supports-color: optional: true - checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 + checksum: 1630b748dea3c581295e02137a9f5cbe2c1d85fea35c1e6597a65ca2b16a6fce68cec61b299d480787ef310ba927dc8c92d3061faba0ad06c6a724672f66be7f languageName: node linkType: hard @@ -2730,13 +2873,25 @@ __metadata: languageName: node linkType: hard -"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": - version: 1.2.0 - resolution: "define-properties@npm:1.2.0" +"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" dependencies: + es-define-property: ^1.0.0 + es-errors: ^1.3.0 + gopd: ^1.0.1 + checksum: 8068ee6cab694d409ac25936eb861eea704b7763f7f342adbdfe337fc27c78d7ae0eff2364b2917b58c508d723c7a074326d068eef2e45c4edcd85cf94d0313b + languageName: node + linkType: hard + +"define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": + version: 1.2.1 + resolution: "define-properties@npm:1.2.1" + dependencies: + define-data-property: ^1.0.1 has-property-descriptors: ^1.0.0 object-keys: ^1.1.1 - checksum: e60aee6a19b102df4e2b1f301816804e81ab48bb91f00d0d935f269bf4b3f79c88b39e4f89eaa132890d23267335fd1140dfcd8d5ccd61031a0a2c41a54e33a6 + checksum: b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 languageName: node linkType: hard @@ -2807,41 +2962,41 @@ __metadata: languageName: node linkType: hard -"dom-serializer@npm:^1.0.1": - version: 1.4.1 - resolution: "dom-serializer@npm:1.4.1" +"dom-serializer@npm:^2.0.0": + version: 2.0.0 + resolution: "dom-serializer@npm:2.0.0" dependencies: - domelementtype: ^2.0.1 - domhandler: ^4.2.0 - entities: ^2.0.0 - checksum: fbb0b01f87a8a2d18e6e5a388ad0f7ec4a5c05c06d219377da1abc7bb0f674d804f4a8a94e3f71ff15f6cb7dcfc75704a54b261db672b9b3ab03da6b758b0b22 + domelementtype: ^2.3.0 + domhandler: ^5.0.2 + entities: ^4.2.0 + checksum: cd1810544fd8cdfbd51fa2c0c1128ec3a13ba92f14e61b7650b5de421b88205fd2e3f0cc6ace82f13334114addb90ed1c2f23074a51770a8e9c1273acbc7f3e6 languageName: node linkType: hard -"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0": +"domelementtype@npm:^2.3.0": version: 2.3.0 resolution: "domelementtype@npm:2.3.0" checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6 languageName: node linkType: hard -"domhandler@npm:^4.0.0, domhandler@npm:^4.2.0": - version: 4.3.1 - resolution: "domhandler@npm:4.3.1" +"domhandler@npm:^5.0.2, domhandler@npm:^5.0.3": + version: 5.0.3 + resolution: "domhandler@npm:5.0.3" dependencies: - domelementtype: ^2.2.0 - checksum: 4c665ceed016e1911bf7d1dadc09dc888090b64dee7851cccd2fcf5442747ec39c647bb1cb8c8919f8bbdd0f0c625a6bafeeed4b2d656bbecdbae893f43ffaaa + domelementtype: ^2.3.0 + checksum: 0f58f4a6af63e6f3a4320aa446d28b5790a009018707bce2859dcb1d21144c7876482b5188395a188dfa974238c019e0a1e610d2fc269a12b2c192ea2b0b131c languageName: node linkType: hard -"domutils@npm:^2.5.2": - version: 2.8.0 - resolution: "domutils@npm:2.8.0" +"domutils@npm:^3.0.1": + version: 3.1.0 + resolution: "domutils@npm:3.1.0" dependencies: - dom-serializer: ^1.0.1 - domelementtype: ^2.2.0 - domhandler: ^4.2.0 - checksum: abf7434315283e9aadc2a24bac0e00eab07ae4313b40cc239f89d84d7315ebdfd2fb1b5bf750a96bc1b4403d7237c7b2ebf60459be394d625ead4ca89b934391 + dom-serializer: ^2.0.0 + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + checksum: e5757456ddd173caa411cfc02c2bb64133c65546d2c4081381a3bafc8a57411a41eed70494551aa58030be9e58574fcc489828bebd673863d39924fb4878f416 languageName: node linkType: hard @@ -2857,10 +3012,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.284": - version: 1.4.402 - resolution: "electron-to-chromium@npm:1.4.402" - checksum: d2e6473921df875169d58e6317bcb64f1d88127fbd841799218720458e1e6d30e5a3abaac97d20c5bf02c3c2246f3cc701d6503713e3f14ff656a87068489d1e +"electron-to-chromium@npm:^1.5.4": + version: 1.5.13 + resolution: "electron-to-chromium@npm:1.5.13" + checksum: f18ac84dd3bf9a200654a6a9292b9ec4bced0cf9bd26cec9941b775f4470c581c9d043e70b37a124d9752dcc0f47fc96613d52b2defd8e59632852730cb418b9 languageName: node linkType: hard @@ -2894,38 +3049,39 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.14.0": - version: 5.14.0 - resolution: "enhanced-resolve@npm:5.14.0" +"enhanced-resolve@npm:^5.17.1": + version: 5.17.1 + resolution: "enhanced-resolve@npm:5.17.1" dependencies: graceful-fs: ^4.2.4 tapable: ^2.2.0 - checksum: fff1aaebbf376371e5df4502e111967f6247c37611ad3550e4e7fca657f6dcb29ef7ffe88bf14e5010b78997f1ddd984a8db97af87ee0a5477771398fd326f5b + checksum: 4bc38cf1cea96456f97503db7280394177d1bc46f8f87c267297d04f795ac5efa81e48115a2f5b6273c781027b5b6bfc5f62b54df629e4d25fa7001a86624f59 languageName: node linkType: hard "enquirer@npm:^2.3.5": - version: 2.3.6 - resolution: "enquirer@npm:2.3.6" + version: 2.4.1 + resolution: "enquirer@npm:2.4.1" dependencies: ansi-colors: ^4.1.1 - checksum: 1c0911e14a6f8d26721c91e01db06092a5f7675159f0261d69c403396a385afd13dd76825e7678f66daffa930cfaa8d45f506fb35f818a2788463d022af1b884 + strip-ansi: ^6.0.1 + checksum: f080f11a74209647dbf347a7c6a83c8a47ae1ebf1e75073a808bc1088eb780aa54075bfecd1bcdb3e3c724520edb8e6ee05da031529436b421b71066fcc48cb5 languageName: node linkType: hard -"entities@npm:^2.0.0": - version: 2.2.0 - resolution: "entities@npm:2.2.0" - checksum: 19010dacaf0912c895ea262b4f6128574f9ccf8d4b3b65c7e8334ad0079b3706376360e28d8843ff50a78aabcb8f08f0a32dbfacdc77e47ed77ca08b713669b3 +"entities@npm:^4.2.0, entities@npm:^4.4.0": + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 languageName: node linkType: hard "envinfo@npm:^7.7.3": - version: 7.8.1 - resolution: "envinfo@npm:7.8.1" + version: 7.13.0 + resolution: "envinfo@npm:7.13.0" bin: envinfo: dist/cli.js - checksum: de736c98d6311c78523628ff127af138451b162e57af5293c1b984ca821d0aeb9c849537d2fde0434011bed33f6bca5310ca2aab8a51a3f28fc719e89045d648 + checksum: 822fc30f53bd0be67f0e25be96eb6a2562b8062f3058846bbd7ec471bd4b7835fca6436ee72c4029c8ae4a3d8f8cddbe2ee725b22291f015232d20a682bee732 languageName: node linkType: hard @@ -2938,63 +3094,100 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4": - version: 1.21.2 - resolution: "es-abstract@npm:1.21.2" +"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.2": + version: 1.23.3 + resolution: "es-abstract@npm:1.23.3" dependencies: - array-buffer-byte-length: ^1.0.0 - available-typed-arrays: ^1.0.5 - call-bind: ^1.0.2 - es-set-tostringtag: ^2.0.1 + array-buffer-byte-length: ^1.0.1 + arraybuffer.prototype.slice: ^1.0.3 + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.7 + data-view-buffer: ^1.0.1 + data-view-byte-length: ^1.0.1 + data-view-byte-offset: ^1.0.0 + es-define-property: ^1.0.0 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + es-set-tostringtag: ^2.0.3 es-to-primitive: ^1.2.1 - function.prototype.name: ^1.1.5 - get-intrinsic: ^1.2.0 - get-symbol-description: ^1.0.0 + function.prototype.name: ^1.1.6 + get-intrinsic: ^1.2.4 + get-symbol-description: ^1.0.2 globalthis: ^1.0.3 gopd: ^1.0.1 - has: ^1.0.3 - has-property-descriptors: ^1.0.0 - has-proto: ^1.0.1 + has-property-descriptors: ^1.0.2 + has-proto: ^1.0.3 has-symbols: ^1.0.3 - internal-slot: ^1.0.5 - is-array-buffer: ^3.0.2 + hasown: ^2.0.2 + internal-slot: ^1.0.7 + is-array-buffer: ^3.0.4 is-callable: ^1.2.7 - is-negative-zero: ^2.0.2 + is-data-view: ^1.0.1 + is-negative-zero: ^2.0.3 is-regex: ^1.1.4 - is-shared-array-buffer: ^1.0.2 + is-shared-array-buffer: ^1.0.3 is-string: ^1.0.7 - is-typed-array: ^1.1.10 + is-typed-array: ^1.1.13 is-weakref: ^1.0.2 - object-inspect: ^1.12.3 + object-inspect: ^1.13.1 object-keys: ^1.1.1 - object.assign: ^4.1.4 - regexp.prototype.flags: ^1.4.3 - safe-regex-test: ^1.0.0 - string.prototype.trim: ^1.2.7 - string.prototype.trimend: ^1.0.6 - string.prototype.trimstart: ^1.0.6 - typed-array-length: ^1.0.4 + object.assign: ^4.1.5 + regexp.prototype.flags: ^1.5.2 + safe-array-concat: ^1.1.2 + safe-regex-test: ^1.0.3 + string.prototype.trim: ^1.2.9 + string.prototype.trimend: ^1.0.8 + string.prototype.trimstart: ^1.0.8 + typed-array-buffer: ^1.0.2 + typed-array-byte-length: ^1.0.1 + typed-array-byte-offset: ^1.0.2 + typed-array-length: ^1.0.6 unbox-primitive: ^1.0.2 - which-typed-array: ^1.1.9 - checksum: 037f55ee5e1cdf2e5edbab5524095a4f97144d95b94ea29e3611b77d852fd8c8a40e7ae7101fa6a759a9b9b1405f188c3c70928f2d3cd88d543a07fc0d5ad41a + which-typed-array: ^1.1.15 + checksum: f840cf161224252512f9527306b57117192696571e07920f777cb893454e32999206198b4f075516112af6459daca282826d1735c450528470356d09eff3a9ae + languageName: node + linkType: hard + +"es-define-property@npm:^1.0.0": + version: 1.0.0 + resolution: "es-define-property@npm:1.0.0" + dependencies: + get-intrinsic: ^1.2.4 + checksum: f66ece0a887b6dca71848fa71f70461357c0e4e7249696f81bad0a1f347eed7b31262af4a29f5d726dc026426f085483b6b90301855e647aa8e21936f07293c6 + languageName: node + linkType: hard + +"es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: ec1414527a0ccacd7f15f4a3bc66e215f04f595ba23ca75cdae0927af099b5ec865f9f4d33e9d7e86f512f252876ac77d4281a7871531a50678132429b1271b5 languageName: node linkType: hard "es-module-lexer@npm:^1.2.1": - version: 1.2.1 - resolution: "es-module-lexer@npm:1.2.1" - checksum: c4145b853e1491eaa5d591e4580926d242978c38071ad3d09165c3b6d50314cc0ae3bf6e1dec81a9e53768b9299df2063d2e4a67d7742a5029ddeae6c4fc26f0 + version: 1.5.4 + resolution: "es-module-lexer@npm:1.5.4" + checksum: a0cf04fb92d052647ac7d818d1913b98d3d3d0f5b9d88f0eafb993436e4c3e2c958599db68839d57f2dfa281fdf0f60e18d448eb78fc292c33c0f25635b6854f languageName: node linkType: hard -"es-set-tostringtag@npm:^2.0.1": - version: 2.0.1 - resolution: "es-set-tostringtag@npm:2.0.1" +"es-object-atoms@npm:^1.0.0": + version: 1.0.0 + resolution: "es-object-atoms@npm:1.0.0" + dependencies: + es-errors: ^1.3.0 + checksum: 26f0ff78ab93b63394e8403c353842b2272836968de4eafe97656adfb8a7c84b9099bf0fe96ed58f4a4cddc860f6e34c77f91649a58a5daa4a9c40b902744e3c + languageName: node + linkType: hard + +"es-set-tostringtag@npm:^2.0.3": + version: 2.0.3 + resolution: "es-set-tostringtag@npm:2.0.3" dependencies: - get-intrinsic: ^1.1.3 - has: ^1.0.3 - has-tostringtag: ^1.0.0 - checksum: ec416a12948cefb4b2a5932e62093a7cf36ddc3efd58d6c58ca7ae7064475ace556434b869b0bbeb0c365f1032a8ccd577211101234b69837ad83ad204fff884 + get-intrinsic: ^1.2.4 + has-tostringtag: ^1.0.2 + hasown: ^2.0.1 + checksum: 7227fa48a41c0ce83e0377b11130d324ac797390688135b8da5c28994c0165be8b252e15cd1de41e1325e5a5412511586960213e88f9ab4a5e7d028895db5129 languageName: node linkType: hard @@ -3009,10 +3202,10 @@ __metadata: languageName: node linkType: hard -"escalade@npm:^3.1.1": - version: 3.1.1 - resolution: "escalade@npm:3.1.1" - checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 +"escalade@npm:^3.1.2": + version: 3.1.2 + resolution: "escalade@npm:3.1.2" + checksum: 1ec0977aa2772075493002bdbd549d595ff6e9393b1cb0d7d6fcaf78c750da0c158f180938365486f75cb69fba20294351caddfce1b46552a7b6c3cde52eaa02 languageName: node linkType: hard @@ -3186,11 +3379,11 @@ __metadata: linkType: hard "esquery@npm:^1.4.0": - version: 1.5.0 - resolution: "esquery@npm:1.5.0" + version: 1.6.0 + resolution: "esquery@npm:1.6.0" dependencies: estraverse: ^5.1.0 - checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900 + checksum: 08ec4fe446d9ab27186da274d979558557fbdbbd10968fa9758552482720c54152a5640e08b9009e5a30706b66aba510692054d4129d32d0e12e05bbc0b96fb2 languageName: node linkType: hard @@ -3246,6 +3439,13 @@ __metadata: languageName: node linkType: hard +"exenv-es6@npm:^1.1.1": + version: 1.1.1 + resolution: "exenv-es6@npm:1.1.1" + checksum: 7f2aa12025e6f06c48dc286f380cf3183bb19c6017b36d91695034a3e5124a7235c4f8ff24ca2eb88ae801322f0f99605cedfcfd996a5fcbba7669320e2a448e + languageName: node + linkType: hard + "expand-brackets@npm:^2.1.4": version: 2.1.4 resolution: "expand-brackets@npm:2.1.4" @@ -3310,29 +3510,16 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.9": - version: 3.2.12 - resolution: "fast-glob@npm:3.2.12" - dependencies: - "@nodelib/fs.stat": ^2.0.2 - "@nodelib/fs.walk": ^1.2.3 - glob-parent: ^5.1.2 - merge2: ^1.3.0 - micromatch: ^4.0.4 - checksum: 0b1990f6ce831c7e28c4d505edcdaad8e27e88ab9fa65eedadb730438cfc7cde4910d6c975d6b7b8dc8a73da4773702ebcfcd6e3518e73938bb1383badfe01c2 - languageName: node - linkType: hard - -"fast-glob@npm:^3.3.0": - version: 3.3.0 - resolution: "fast-glob@npm:3.3.0" +"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.1": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" dependencies: "@nodelib/fs.stat": ^2.0.2 "@nodelib/fs.walk": ^1.2.3 glob-parent: ^5.1.2 merge2: ^1.3.0 micromatch: ^4.0.4 - checksum: 20df62be28eb5426fe8e40e0d05601a63b1daceb7c3d87534afcad91bdcf1e4b1743cf2d5247d6e225b120b46df0b9053a032b2691ba34ee121e033acd81f547 + checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 languageName: node linkType: hard @@ -3350,6 +3537,13 @@ __metadata: languageName: node linkType: hard +"fast-uri@npm:^3.0.1": + version: 3.0.1 + resolution: "fast-uri@npm:3.0.1" + checksum: 106143ff83705995225dcc559411288f3337e732bb2e264e79788f1914b6bd8f8bc3683102de60b15ba00e6ebb443633cabac77d4ebc5cb228c47cf955e199ff + languageName: node + linkType: hard + "fastest-levenshtein@npm:^1.0.12, fastest-levenshtein@npm:^1.0.16": version: 1.0.16 resolution: "fastest-levenshtein@npm:1.0.16" @@ -3358,11 +3552,11 @@ __metadata: linkType: hard "fastq@npm:^1.6.0": - version: 1.15.0 - resolution: "fastq@npm:1.15.0" + version: 1.17.1 + resolution: "fastq@npm:1.17.1" dependencies: reusify: ^1.0.4 - checksum: 0170e6bfcd5d57a70412440b8ef600da6de3b2a6c5966aeaf0a852d542daff506a0ee92d6de7679d1de82e644bce69d7a574a6c93f0b03964b5337eed75ada1a + checksum: a8c5b26788d5a1763f88bae56a8ddeee579f935a831c5fe7a8268cea5b0a91fbfe705f612209e02d639b881d7b48e461a50da4a10cfaa40da5ca7cc9da098d88 languageName: node linkType: hard @@ -3394,6 +3588,15 @@ __metadata: languageName: node linkType: hard +"file-entry-cache@npm:^7.0.0": + version: 7.0.2 + resolution: "file-entry-cache@npm:7.0.2" + dependencies: + flat-cache: ^3.2.0 + checksum: 283c674fc26bed1c44e74cf25c2640c813e222ea30a2536404b53511ca311d4a2502ee8145a01aecd12b9a910eb4162364776be27a9683e8447332054e9d712f + languageName: node + linkType: hard + "fill-range@npm:^4.0.0": version: 4.0.0 resolution: "fill-range@npm:4.0.0" @@ -3406,12 +3609,12 @@ __metadata: languageName: node linkType: hard -"fill-range@npm:^7.0.1": - version: 7.0.1 - resolution: "fill-range@npm:7.0.1" +"fill-range@npm:^7.1.1": + version: 7.1.1 + resolution: "fill-range@npm:7.1.1" dependencies: to-regex-range: ^5.0.1 - checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 + checksum: b4abfbca3839a3d55e4ae5ec62e131e2e356bf4859ce8480c64c4876100f4df292a63e5bb1618e1d7460282ca2b305653064f01654474aa35c68000980f17798 languageName: node linkType: hard @@ -3451,20 +3654,30 @@ __metadata: languageName: node linkType: hard -"flat-cache@npm:^3.0.4": - version: 3.0.4 - resolution: "flat-cache@npm:3.0.4" +"flat-cache@npm:^3.0.4, flat-cache@npm:^3.2.0": + version: 3.2.0 + resolution: "flat-cache@npm:3.2.0" dependencies: - flatted: ^3.1.0 + flatted: ^3.2.9 + keyv: ^4.5.3 rimraf: ^3.0.2 - checksum: 4fdd10ecbcbf7d520f9040dd1340eb5dfe951e6f0ecf2252edeec03ee68d989ec8b9a20f4434270e71bcfd57800dc09b3344fca3966b2eb8f613072c7d9a2365 + checksum: e7e0f59801e288b54bee5cb9681e9ee21ee28ef309f886b312c9d08415b79fc0f24ac842f84356ce80f47d6a53de62197ce0e6e148dc42d5db005992e2a756ec languageName: node linkType: hard -"flatted@npm:^3.1.0": - version: 3.2.7 - resolution: "flatted@npm:3.2.7" - checksum: 427633049d55bdb80201c68f7eb1cbd533e03eac541f97d3aecab8c5526f12a20ccecaeede08b57503e772c769e7f8680b37e8d482d1e5f8d7e2194687f9ea35 +"flat@npm:^5.0.2": + version: 5.0.2 + resolution: "flat@npm:5.0.2" + bin: + flat: cli.js + checksum: 12a1536ac746db74881316a181499a78ef953632ddd28050b7a3a43c62ef5462e3357c8c29d76072bb635f147f7a9a1f0c02efef6b4be28f8db62ceb3d5c7f5d + languageName: node + linkType: hard + +"flatted@npm:^3.2.9": + version: 3.3.1 + resolution: "flatted@npm:3.3.1" + checksum: 85ae7181650bb728c221e7644cbc9f4bf28bc556f2fc89bb21266962bdf0ce1029cc7acc44bb646cd469d9baac7c317f64e841c4c4c00516afa97320cdac7f94 languageName: node linkType: hard @@ -3525,22 +3738,22 @@ __metadata: languageName: node linkType: hard -"function-bind@npm:^1.1.1": - version: 1.1.1 - resolution: "function-bind@npm:1.1.1" - checksum: b32fbaebb3f8ec4969f033073b43f5c8befbb58f1a79e12f1d7490358150359ebd92f49e72ff0144f65f2c48ea2a605bff2d07965f548f6474fd8efd95bf361a +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 languageName: node linkType: hard -"function.prototype.name@npm:^1.1.5": - version: 1.1.5 - resolution: "function.prototype.name@npm:1.1.5" +"function.prototype.name@npm:^1.1.6": + version: 1.1.6 + resolution: "function.prototype.name@npm:1.1.6" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.0 - functions-have-names: ^1.2.2 - checksum: acd21d733a9b649c2c442f067567743214af5fa248dbeee69d8278ce7df3329ea5abac572be9f7470b4ec1cd4d8f1040e3c5caccf98ebf2bf861a0deab735c27 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + functions-have-names: ^1.2.3 + checksum: 7a3f9bd98adab09a07f6e1f03da03d3f7c26abbdeaeee15223f6c04a9fb5674792bdf5e689dac19b97ac71de6aad2027ba3048a9b883aa1b3173eed6ab07f479 languageName: node linkType: hard @@ -3551,7 +3764,7 @@ __metadata: languageName: node linkType: hard -"functions-have-names@npm:^1.2.2, functions-have-names@npm:^1.2.3": +"functions-have-names@npm:^1.2.3": version: 1.2.3 resolution: "functions-have-names@npm:1.2.3" checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 @@ -3569,15 +3782,16 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0": - version: 1.2.1 - resolution: "get-intrinsic@npm:1.2.1" +"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": + version: 1.2.4 + resolution: "get-intrinsic@npm:1.2.4" dependencies: - function-bind: ^1.1.1 - has: ^1.0.3 + es-errors: ^1.3.0 + function-bind: ^1.1.2 has-proto: ^1.0.1 has-symbols: ^1.0.3 - checksum: 5b61d88552c24b0cf6fa2d1b3bc5459d7306f699de060d76442cce49a4721f52b8c560a33ab392cf5575b7810277d54ded9d4d39a1ea61855619ebc005aa7e5f + hasown: ^2.0.0 + checksum: 414e3cdf2c203d1b9d7d33111df746a4512a1aa622770b361dadddf8ed0b5aeb26c560f49ca077e24bfafb0acb55ca908d1f709216ccba33ffc548ec8a79a951 languageName: node linkType: hard @@ -3611,13 +3825,14 @@ __metadata: languageName: node linkType: hard -"get-symbol-description@npm:^1.0.0": - version: 1.0.0 - resolution: "get-symbol-description@npm:1.0.0" +"get-symbol-description@npm:^1.0.2": + version: 1.0.2 + resolution: "get-symbol-description@npm:1.0.2" dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.1.1 - checksum: 9ceff8fe968f9270a37a1f73bf3f1f7bda69ca80f4f80850670e0e7b9444ff99323f7ac52f96567f8b5f5fbe7ac717a0d81d3407c7313e82810c6199446a5247 + call-bind: ^1.0.5 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.4 + checksum: e1cb53bc211f9dbe9691a4f97a46837a553c4e7caadd0488dc24ac694db8a390b93edd412b48dcdd0b4bbb4c595de1709effc75fc87c0839deedc6968f5bd973 languageName: node linkType: hard @@ -3705,20 +3920,21 @@ __metadata: linkType: hard "globals@npm:^13.6.0, globals@npm:^13.9.0": - version: 13.20.0 - resolution: "globals@npm:13.20.0" + version: 13.24.0 + resolution: "globals@npm:13.24.0" dependencies: type-fest: ^0.20.2 - checksum: ad1ecf914bd051325faad281d02ea2c0b1df5d01bd94d368dcc5513340eac41d14b3c61af325768e3c7f8d44576e72780ec0b6f2d366121f8eec6e03c3a3b97a + checksum: 56066ef058f6867c04ff203b8a44c15b038346a62efbc3060052a1016be9f56f4cf0b2cd45b74b22b81e521a889fc7786c73691b0549c2f3a6e825b3d394f43c languageName: node linkType: hard "globalthis@npm:^1.0.3": - version: 1.0.3 - resolution: "globalthis@npm:1.0.3" + version: 1.0.4 + resolution: "globalthis@npm:1.0.4" dependencies: - define-properties: ^1.1.3 - checksum: fbd7d760dc464c886d0196166d92e5ffb4c84d0730846d6621a39fbbc068aeeb9c8d1421ad330e94b7bca4bb4ea092f5f21f3d36077812af5d098b4dc006c998 + define-properties: ^1.2.1 + gopd: ^1.0.1 + checksum: 39ad667ad9f01476474633a1834a70842041f70a55571e8dcef5fb957980a92da5022db5430fca8aecc5d47704ae30618c0bc877a579c70710c904e9ef06108a languageName: node linkType: hard @@ -3765,7 +3981,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 @@ -3809,19 +4025,19 @@ __metadata: languageName: node linkType: hard -"has-property-descriptors@npm:^1.0.0": - version: 1.0.0 - resolution: "has-property-descriptors@npm:1.0.0" +"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" dependencies: - get-intrinsic: ^1.1.1 - checksum: a6d3f0a266d0294d972e354782e872e2fe1b6495b321e6ef678c9b7a06a40408a6891817350c62e752adced73a94ac903c54734fee05bf65b1905ee1368194bb + es-define-property: ^1.0.0 + checksum: fcbb246ea2838058be39887935231c6d5788babed499d0e9d0cc5737494c48aba4fe17ba1449e0d0fbbb1e36175442faa37f9c427ae357d6ccb1d895fbcd3de3 languageName: node linkType: hard -"has-proto@npm:^1.0.1": - version: 1.0.1 - resolution: "has-proto@npm:1.0.1" - checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e +"has-proto@npm:^1.0.1, has-proto@npm:^1.0.3": + version: 1.0.3 + resolution: "has-proto@npm:1.0.3" + checksum: fe7c3d50b33f50f3933a04413ed1f69441d21d2d2944f81036276d30635cad9279f6b43bc8f32036c31ebdfcf6e731150f46c1907ad90c669ffe9b066c3ba5c4 languageName: node linkType: hard @@ -3832,12 +4048,12 @@ __metadata: languageName: node linkType: hard -"has-tostringtag@npm:^1.0.0": - version: 1.0.0 - resolution: "has-tostringtag@npm:1.0.0" +"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.2": + version: 1.0.2 + resolution: "has-tostringtag@npm:1.0.2" dependencies: - has-symbols: ^1.0.2 - checksum: cc12eb28cb6ae22369ebaad3a8ab0799ed61270991be88f208d508076a1e99abe4198c965935ce85ea90b60c94ddda73693b0920b58e7ead048b4a391b502c1c + has-symbols: ^1.0.3 + checksum: 999d60bb753ad714356b2c6c87b7fb74f32463b8426e159397da4bde5bca7e598ab1073f4d8d4deafac297f2eb311484cd177af242776bf05f0d11565680468d languageName: node linkType: hard @@ -3880,12 +4096,12 @@ __metadata: languageName: node linkType: hard -"has@npm:^1.0.3": - version: 1.0.3 - resolution: "has@npm:1.0.3" +"hasown@npm:^2.0.0, hasown@npm:^2.0.1, hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" dependencies: - function-bind: ^1.1.1 - checksum: b9ad53d53be4af90ce5d1c38331e712522417d017d5ef1ebd0507e07c2fbad8686fffb8e12ddecd4c39ca9b9b47431afbb975b8abf7f3c3b82c98e9aad052792 + function-bind: ^1.1.2 + checksum: e8516f776a15149ca6c6ed2ae3110c417a00b62260e222590e54aa367cbcd6ed99122020b37b7fbdf05748df57b265e70095d7bf35a47660587619b15ffb93db languageName: node linkType: hard @@ -3912,15 +4128,15 @@ __metadata: languageName: node linkType: hard -"htmlparser2@npm:^6.0.0": - version: 6.1.0 - resolution: "htmlparser2@npm:6.1.0" +"htmlparser2@npm:^8.0.0": + version: 8.0.2 + resolution: "htmlparser2@npm:8.0.2" dependencies: - domelementtype: ^2.0.1 - domhandler: ^4.0.0 - domutils: ^2.5.2 - entities: ^2.0.0 - checksum: 81a7b3d9c3bb9acb568a02fc9b1b81ffbfa55eae7f1c41ae0bf840006d1dbf54cb3aa245b2553e2c94db674840a9f0fdad7027c9a9d01a062065314039058c4e + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + domutils: ^3.0.1 + entities: ^4.4.0 + checksum: 29167a0f9282f181da8a6d0311b76820c8a59bc9e3c87009e21968264c2987d2723d6fde5a964d4b7b6cba663fca96ffb373c06d8223a85f52a6089ced942700 languageName: node linkType: hard @@ -3970,9 +4186,9 @@ __metadata: linkType: hard "ignore@npm:^5.1.8, ignore@npm:^5.2.0, ignore@npm:^5.2.4": - version: 5.2.4 - resolution: "ignore@npm:5.2.4" - checksum: 3d4c309c6006e2621659311783eaea7ebcd41fe4ca1d78c91c473157ad6666a57a2df790fe0d07a12300d9aac2888204d7be8d59f9aaf665b1c7fcdb432517ef + version: 5.3.2 + resolution: "ignore@npm:5.3.2" + checksum: 2acfd32a573260ea522ea0bfeff880af426d68f6831f973129e2ba7363f422923cf53aab62f8369cbf4667c7b25b6f8a3761b34ecdb284ea18e87a5262a865be languageName: node linkType: hard @@ -3986,7 +4202,7 @@ __metadata: languageName: node linkType: hard -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1": +"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -4004,14 +4220,14 @@ __metadata: linkType: hard "import-local@npm:^3.0.2": - version: 3.1.0 - resolution: "import-local@npm:3.1.0" + version: 3.2.0 + resolution: "import-local@npm:3.2.0" dependencies: pkg-dir: ^4.2.0 resolve-cwd: ^3.0.0 bin: import-local-fixture: fixtures/cli.js - checksum: bfcdb63b5e3c0e245e347f3107564035b128a414c4da1172a20dc67db2504e05ede4ac2eee1252359f78b0bfd7b19ef180aec427c2fce6493ae782d73a04cddd + checksum: 0b0b0b412b2521739fbb85eeed834a3c34de9bc67e670b3d0b86248fc460d990a7b116ad056c084b87a693ef73d1f17268d6a5be626bb43c998a8b1c8a230004 languageName: node linkType: hard @@ -4060,14 +4276,14 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.5": - version: 1.0.5 - resolution: "internal-slot@npm:1.0.5" +"internal-slot@npm:^1.0.7": + version: 1.0.7 + resolution: "internal-slot@npm:1.0.7" dependencies: - get-intrinsic: ^1.2.0 - has: ^1.0.3 + es-errors: ^1.3.0 + hasown: ^2.0.0 side-channel: ^1.0.4 - checksum: 97e84046bf9e7574d0956bd98d7162313ce7057883b6db6c5c7b5e5f05688864b0978ba07610c726d15d66544ffe4b1050107d93f8a39ebc59b15d8b429b497a + checksum: cadc5eea5d7d9bc2342e93aae9f31f04c196afebb11bde97448327049f492cd7081e18623ae71388aac9cd237b692ca3a105be9c68ac39c1dec679d7409e33eb languageName: node linkType: hard @@ -4078,32 +4294,22 @@ __metadata: languageName: node linkType: hard -"is-accessor-descriptor@npm:^0.1.6": - version: 0.1.6 - resolution: "is-accessor-descriptor@npm:0.1.6" - dependencies: - kind-of: ^3.0.2 - checksum: 3d629a086a9585bc16a83a8e8a3416f400023301855cafb7ccc9a1d63145b7480f0ad28877dcc2cce09492c4ec1c39ef4c071996f24ee6ac626be4217b8ffc8a - languageName: node - linkType: hard - -"is-accessor-descriptor@npm:^1.0.0": - version: 1.0.0 - resolution: "is-accessor-descriptor@npm:1.0.0" +"is-accessor-descriptor@npm:^1.0.1": + version: 1.0.1 + resolution: "is-accessor-descriptor@npm:1.0.1" dependencies: - kind-of: ^6.0.0 - checksum: 8e475968e9b22f9849343c25854fa24492dbe8ba0dea1a818978f9f1b887339190b022c9300d08c47fe36f1b913d70ce8cbaca00369c55a56705fdb7caed37fe + hasown: ^2.0.0 + checksum: 8db44c02230a5e9b9dec390a343178791f073d5d5556a400527d2fd67a72d93b226abab2bd4123305c268f5dc22831bfdbd38430441fda82ea9e0b95ddc6b267 languageName: node linkType: hard -"is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": - version: 3.0.2 - resolution: "is-array-buffer@npm:3.0.2" +"is-array-buffer@npm:^3.0.4": + version: 3.0.4 + resolution: "is-array-buffer@npm:3.0.4" dependencies: call-bind: ^1.0.2 - get-intrinsic: ^1.2.0 - is-typed-array: ^1.1.10 - checksum: dcac9dda66ff17df9cabdc58214172bf41082f956eab30bb0d86bc0fab1e44b690fc8e1f855cf2481245caf4e8a5a006a982a71ddccec84032ed41f9d8da8c14 + get-intrinsic: ^1.2.1 + checksum: e4e3e6ef0ff2239e75371d221f74bc3c26a03564a22efb39f6bb02609b598917ddeecef4e8c877df2a25888f247a98198959842a5e73236bc7f22cabdf6351a7 languageName: node linkType: hard @@ -4158,30 +4364,30 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.12.0, is-core-module@npm:^2.5.0": - version: 2.12.1 - resolution: "is-core-module@npm:2.12.1" +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.5.0": + version: 2.15.1 + resolution: "is-core-module@npm:2.15.1" dependencies: - has: ^1.0.3 - checksum: f04ea30533b5e62764e7b2e049d3157dc0abd95ef44275b32489ea2081176ac9746ffb1cdb107445cf1ff0e0dfcad522726ca27c27ece64dadf3795428b8e468 + hasown: ^2.0.2 + checksum: df134c168115690724b62018c37b2f5bba0d5745fa16960b329c5a00883a8bea6a5632fdb1e3efcce237c201826ba09f93197b7cd95577ea56b0df335be23633 languageName: node linkType: hard -"is-data-descriptor@npm:^0.1.4": - version: 0.1.4 - resolution: "is-data-descriptor@npm:0.1.4" +"is-data-descriptor@npm:^1.0.1": + version: 1.0.1 + resolution: "is-data-descriptor@npm:1.0.1" dependencies: - kind-of: ^3.0.2 - checksum: 5c622e078ba933a78338ae398a3d1fc5c23332b395312daf4f74bab4afb10d061cea74821add726cb4db8b946ba36217ee71a24fe71dd5bca4632edb7f6aad87 + hasown: ^2.0.0 + checksum: fc6da5be5177149d554c5612cc382e9549418ed72f2d3ed5a3e6511b03dd119ae1b2258320ca94931df50b7e9ee012894eccd4ca45bbcadf0d5b27da6faeb15a languageName: node linkType: hard -"is-data-descriptor@npm:^1.0.0": - version: 1.0.0 - resolution: "is-data-descriptor@npm:1.0.0" +"is-data-view@npm:^1.0.1": + version: 1.0.1 + resolution: "is-data-view@npm:1.0.1" dependencies: - kind-of: ^6.0.0 - checksum: e705e6816241c013b05a65dc452244ee378d1c3e3842bd140beabe6e12c0d700ef23c91803f971aa7b091fb0573c5da8963af34a2b573337d87bc3e1f53a4e6d + is-typed-array: ^1.1.13 + checksum: 4ba4562ac2b2ec005fefe48269d6bd0152785458cd253c746154ffb8a8ab506a29d0cfb3b74af87513843776a88e4981ae25c89457bf640a33748eab1a7216b5 languageName: node linkType: hard @@ -4195,24 +4401,22 @@ __metadata: linkType: hard "is-descriptor@npm:^0.1.0": - version: 0.1.6 - resolution: "is-descriptor@npm:0.1.6" + version: 0.1.7 + resolution: "is-descriptor@npm:0.1.7" dependencies: - is-accessor-descriptor: ^0.1.6 - is-data-descriptor: ^0.1.4 - kind-of: ^5.0.0 - checksum: 0f780c1b46b465f71d970fd7754096ffdb7b69fd8797ca1f5069c163eaedcd6a20ec4a50af669075c9ebcfb5266d2e53c8b227e485eefdb0d1fee09aa1dd8ab6 + is-accessor-descriptor: ^1.0.1 + is-data-descriptor: ^1.0.1 + checksum: 45743109f0bb03f9fa989c34d31ece87cc15792649f147b896a7c4db2906a02fca685867619f4d312e024d7bbd53b945a47c6830d01f5e73efcc6388ac211963 languageName: node linkType: hard "is-descriptor@npm:^1.0.0, is-descriptor@npm:^1.0.2": - version: 1.0.2 - resolution: "is-descriptor@npm:1.0.2" + version: 1.0.3 + resolution: "is-descriptor@npm:1.0.3" dependencies: - is-accessor-descriptor: ^1.0.0 - is-data-descriptor: ^1.0.0 - kind-of: ^6.0.2 - checksum: 2ed623560bee035fb67b23e32ce885700bef8abe3fbf8c909907d86507b91a2c89a9d3a4d835a4d7334dd5db0237a0aeae9ca109c1e4ef1c0e7b577c0846ab5a + is-accessor-descriptor: ^1.0.1 + is-data-descriptor: ^1.0.1 + checksum: 316153b2fd86ac23b0a2f28b77744ae0a4e3c7a54fe52fa70b125d0971eb0a3bcfb562fa8e74537af0dad5bc405cc606726eb501fc748a241c10910deea89cfb languageName: node linkType: hard @@ -4278,10 +4482,10 @@ __metadata: languageName: node linkType: hard -"is-negative-zero@npm:^2.0.2": - version: 2.0.2 - resolution: "is-negative-zero@npm:2.0.2" - checksum: f3232194c47a549da60c3d509c9a09be442507616b69454716692e37ae9f37c4dea264fb208ad0c9f3efd15a796a46b79df07c7e53c6227c32170608b809149a +"is-negative-zero@npm:^2.0.3": + version: 2.0.3 + resolution: "is-negative-zero@npm:2.0.3" + checksum: c1e6b23d2070c0539d7b36022d5a94407132411d01aba39ec549af824231f3804b1aea90b5e4e58e807a65d23ceb538ed6e355ce76b267bdd86edb757ffcbdcd languageName: node linkType: hard @@ -4398,12 +4602,12 @@ __metadata: languageName: node linkType: hard -"is-shared-array-buffer@npm:^1.0.2": - version: 1.0.2 - resolution: "is-shared-array-buffer@npm:1.0.2" +"is-shared-array-buffer@npm:^1.0.2, is-shared-array-buffer@npm:^1.0.3": + version: 1.0.3 + resolution: "is-shared-array-buffer@npm:1.0.3" dependencies: - call-bind: ^1.0.2 - checksum: 9508929cf14fdc1afc9d61d723c6e8d34f5e117f0bffda4d97e7a5d88c3a8681f633a74f8e3ad1fe92d5113f9b921dc5ca44356492079612f9a247efbce7032a + call-bind: ^1.0.7 + checksum: a4fff602c309e64ccaa83b859255a43bb011145a42d3f56f67d9268b55bc7e6d98a5981a1d834186ad3105d6739d21547083fe7259c76c0468483fc538e716d8 languageName: node linkType: hard @@ -4432,16 +4636,12 @@ __metadata: languageName: node linkType: hard -"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.9": - version: 1.1.10 - resolution: "is-typed-array@npm:1.1.10" +"is-typed-array@npm:^1.1.13": + version: 1.1.13 + resolution: "is-typed-array@npm:1.1.13" dependencies: - available-typed-arrays: ^1.0.5 - call-bind: ^1.0.2 - for-each: ^0.3.3 - gopd: ^1.0.1 - has-tostringtag: ^1.0.0 - checksum: aac6ecb59d4c56a1cdeb69b1f129154ef462bbffe434cb8a8235ca89b42f258b7ae94073c41b3cb7bce37f6a1733ad4499f07882d5d5093a7ba84dfc4ebb8017 + which-typed-array: ^1.1.14 + checksum: 150f9ada183a61554c91e1c4290086d2c100b0dff45f60b028519be72a8db964da403c48760723bf5253979b8dffe7b544246e0e5351dcd05c5fdb1dcc1dc0f0 languageName: node linkType: hard @@ -4468,6 +4668,13 @@ __metadata: languageName: node linkType: hard +"isarray@npm:^2.0.5": + version: 2.0.5 + resolution: "isarray@npm:2.0.5" + checksum: bd5bbe4104438c4196ba58a54650116007fa0262eccef13a4c55b2e09a5b36b59f1e75b9fcc49883dd9d4953892e6fc007eef9e9155648ceea036e184b0f930a + languageName: node + linkType: hard + "isexe@npm:^2.0.0": version: 2.0.0 resolution: "isexe@npm:2.0.0" @@ -4546,6 +4753,13 @@ __metadata: languageName: node linkType: hard +"json-buffer@npm:3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 9026b03edc2847eefa2e37646c579300a1f3a4586cfb62bf857832b60c852042d0d6ae55d1afb8926163fa54c2b01d83ae24705f34990348bdac6273a29d4581 + languageName: node + linkType: hard + "json-parse-better-errors@npm:^1.0.1": version: 1.0.2 resolution: "json-parse-better-errors@npm:1.0.2" @@ -4630,6 +4844,15 @@ __metadata: languageName: node linkType: hard +"keyv@npm:^4.5.3": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" + dependencies: + json-buffer: 3.0.1 + checksum: 74a24395b1c34bd44ad5cb2b49140d087553e170625240b86755a6604cd65aa16efdbdeae5cdb17ba1284a0fbb25ad06263755dbc71b8d8b06f74232ce3cdd72 + languageName: node + linkType: hard + "kind-of@npm:^3.0.2, kind-of@npm:^3.0.3, kind-of@npm:^3.2.0": version: 3.2.2 resolution: "kind-of@npm:3.2.2" @@ -4648,24 +4871,17 @@ __metadata: languageName: node linkType: hard -"kind-of@npm:^5.0.0": - version: 5.1.0 - resolution: "kind-of@npm:5.1.0" - checksum: f2a0102ae0cf19c4a953397e552571bad2b588b53282874f25fca7236396e650e2db50d41f9f516bd402536e4df968dbb51b8e69e4d5d4a7173def78448f7bab - languageName: node - linkType: hard - -"kind-of@npm:^6.0.0, kind-of@npm:^6.0.2, kind-of@npm:^6.0.3": +"kind-of@npm:^6.0.2, kind-of@npm:^6.0.3": version: 6.0.3 resolution: "kind-of@npm:6.0.3" checksum: 3ab01e7b1d440b22fe4c31f23d8d38b4d9b91d9f291df683476576493d5dfd2e03848a8b05813dd0c3f0e835bc63f433007ddeceb71f05cb25c45ae1b19c6d3b languageName: node linkType: hard -"known-css-properties@npm:^0.27.0": - version: 0.27.0 - resolution: "known-css-properties@npm:0.27.0" - checksum: 8584fcf0526f984fe5a358af20200dec3b944373dd005dc23a3ce988895e1acd03e7d69c49533dda07d6d9b6d53990ed1119bd9d3e927f17545f8764c434a5cd +"known-css-properties@npm:^0.29.0": + version: 0.29.0 + resolution: "known-css-properties@npm:0.29.0" + checksum: daa6562e907f856cbfd58a00c42f532c9bba283388984da6a3bffb494e56612e5f23c52f30b0d9885f0ea07ad5d88bfa0470ee65017a6ce6c565289a1afd78af languageName: node linkType: hard @@ -4679,15 +4895,16 @@ __metadata: languageName: node linkType: hard -"lib0@npm:^0.2.42, lib0@npm:^0.2.74": - version: 0.2.74 - resolution: "lib0@npm:0.2.74" +"lib0@npm:^0.2.85, lib0@npm:^0.2.86": + version: 0.2.97 + resolution: "lib0@npm:0.2.97" dependencies: isomorphic.js: ^0.2.4 bin: + 0ecdsa-generate-keypair: bin/0ecdsa-generate-keypair.js 0gentesthtml: bin/gentesthtml.js 0serve: bin/0serve.js - checksum: a468fc2f8d231bdcb305f04706d0e568ad53a0aa968aaf3d1769fcfbf326a5b158e98d86c0aa8edf26b3223cb60687480f15cfc0d07c681333f9d9d55dd7c802 + checksum: f9ca204aff94e4e25396952c16a302d398468e4076d5f405560463dbbf9c65451a9efd40b1e7d4defd8533765576dc801336a2d2cfa64a2f0ed8e0f3c1a065a2 languageName: node linkType: hard @@ -4939,6 +5156,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^10.2.0": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 6476138d2125387a6d20f100608c2583d415a4f64a0fecf30c9e2dda976614f09cad4baa0842447bd37dd459a7bd27f57d9d8f8ce558805abd487c583f3d774a + languageName: node + linkType: hard + "lru-cache@npm:^6.0.0": version: 6.0.0 resolution: "lru-cache@npm:6.0.0" @@ -4948,13 +5172,6 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^9.1.1": - version: 9.1.1 - resolution: "lru-cache@npm:9.1.1" - checksum: 4d703bb9b66216bbee55ead82a9682820a2b6acbdfca491b235390b1ef1056000a032d56dfb373fdf9ad4492f1fa9d04cc9a05a77f25bd7ce6901d21ad9b68b7 - languageName: node - linkType: hard - "map-cache@npm:^0.2.2": version: 0.2.2 resolution: "map-cache@npm:0.2.2" @@ -4985,12 +5202,12 @@ __metadata: languageName: node linkType: hard -"markdown-to-jsx@npm:^7.2.0": - version: 7.2.0 - resolution: "markdown-to-jsx@npm:7.2.0" +"markdown-to-jsx@npm:^7.4.1": + version: 7.5.0 + resolution: "markdown-to-jsx@npm:7.5.0" peerDependencies: react: ">= 0.14.0" - checksum: ea417e684d7eec9f1beebc9423aba377116ef77c3cd83a2d622df1b9030ffef99aa9b3f431192b94f3237943a33560e6dda9be8a4c1d25187518d09986dad22f + checksum: c9c6f1bfad5f2d9b1d3476eb0313ae3dffd0a9f14011c74efdd7c664fd32ee1842ef48abb16a496046f90361af49aa80a827e9d9c0bc04824a1986fdeb4d1852 languageName: node linkType: hard @@ -5080,12 +5297,12 @@ __metadata: linkType: hard "micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": - version: 4.0.5 - resolution: "micromatch@npm:4.0.5" + version: 4.0.8 + resolution: "micromatch@npm:4.0.8" dependencies: - braces: ^3.0.2 + braces: ^3.0.3 picomatch: ^2.3.1 - checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc + checksum: 79920eb634e6f400b464a954fcfa589c4e7c7143209488e44baf627f9affc8b1e306f41f4f0deedde97e69cb725920879462d3e750ab3bd3c1aed675bb3a8966 languageName: node linkType: hard @@ -5120,13 +5337,14 @@ __metadata: linkType: hard "mini-css-extract-plugin@npm:^2.7.0": - version: 2.7.6 - resolution: "mini-css-extract-plugin@npm:2.7.6" + version: 2.9.1 + resolution: "mini-css-extract-plugin@npm:2.9.1" dependencies: schema-utils: ^4.0.0 + tapable: ^2.2.1 peerDependencies: webpack: ^5.0.0 - checksum: be6f7cefc6275168eb0a6b8fe977083a18c743c9612c9f00e6c1a62c3393ca7960e93fba1a7ebb09b75f36a0204ad087d772c1ef574bc29c90c0e8175a3c0b83 + checksum: 036b0fbb207cf9a56e2f5f5dce5e35100cbd255e5b5a920a5357ec99215af16a77136020729b2d004a041d04ebb0a544b2f442535cbb982704dcd50297014c9e languageName: node linkType: hard @@ -5182,10 +5400,10 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^5.0.0 || ^6.0.2": - version: 6.0.2 - resolution: "minipass@npm:6.0.2" - checksum: d140b91f4ab2e5ce5a9b6c468c0e82223504acc89114c1a120d4495188b81fedf8cade72a9f4793642b4e66672f990f1e0d902dd858485216a07cd3c8a62fac9 +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 2bfd325b95c555f2b4d2814d49325691c7bee937d753814861b0b49d5edcda55cbbf22b6b6a60bb91eddac8668771f03c5ff647dcd9d0f798e9548b9cdc46ee3 languageName: node linkType: hard @@ -5240,12 +5458,12 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.3.6": - version: 3.3.6 - resolution: "nanoid@npm:3.3.6" +"nanoid@npm:^3.3.7": + version: 3.3.7 + resolution: "nanoid@npm:3.3.7" bin: nanoid: bin/nanoid.cjs - checksum: 7d0eda657002738aa5206107bd0580aead6c95c460ef1bdd0b1a87a9c7ae6277ac2e9b945306aaa5b32c6dcb7feaf462d0f552e7f8b5718abfc6ead5c94a71b3 + checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 languageName: node linkType: hard @@ -5289,10 +5507,10 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.8": - version: 2.0.11 - resolution: "node-releases@npm:2.0.11" - checksum: ade1c8e19852aa7d7b45691c2708e6275703dd4994b16bc191cdbf66add29ccf87c595ecdb03a39db54a8aaba645f228bccd7d9477e4066f1d97a94f857dae9d +"node-releases@npm:^2.0.18": + version: 2.0.18 + resolution: "node-releases@npm:2.0.18" + checksum: ef55a3d853e1269a6d6279b7692cd6ff3e40bc74947945101138745bfdc9a5edabfe72cb19a31a8e45752e1910c4c65c77d931866af6357f242b172b7283f5b3 languageName: node linkType: hard @@ -5406,10 +5624,10 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0": - version: 1.12.3 - resolution: "object-inspect@npm:1.12.3" - checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db +"object-inspect@npm:^1.13.1": + version: 1.13.2 + resolution: "object-inspect@npm:1.13.2" + checksum: 9f850b3c045db60e0e97746e809ee4090d6ce62195af17dd1e9438ac761394a7d8ec4f7906559aea5424eaf61e35d3e53feded2ccd5f62fcc7d9670d3c8eb353 languageName: node linkType: hard @@ -5429,15 +5647,15 @@ __metadata: languageName: node linkType: hard -"object.assign@npm:^4.1.4": - version: 4.1.4 - resolution: "object.assign@npm:4.1.4" +"object.assign@npm:^4.1.5": + version: 4.1.5 + resolution: "object.assign@npm:4.1.5" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 + call-bind: ^1.0.5 + define-properties: ^1.2.1 has-symbols: ^1.0.3 object-keys: ^1.1.1 - checksum: 76cab513a5999acbfe0ff355f15a6a125e71805fcf53de4e9d4e082e1989bdb81d1e329291e1e4e0ae7719f0e4ef80e88fb2d367ae60500d79d25a6224ac8864 + checksum: f9aeac0541661370a1fc86e6a8065eb1668d3e771f7dbb33ee54578201336c057b21ee61207a186dd42db0c62201d91aac703d20d12a79fc79c353eed44d4e25 languageName: node linkType: hard @@ -5469,16 +5687,16 @@ __metadata: linkType: hard "optionator@npm:^0.9.1": - version: 0.9.1 - resolution: "optionator@npm:0.9.1" + version: 0.9.4 + resolution: "optionator@npm:0.9.4" dependencies: deep-is: ^0.1.3 fast-levenshtein: ^2.0.6 levn: ^0.4.1 prelude-ls: ^1.2.1 type-check: ^0.4.0 - word-wrap: ^1.2.3 - checksum: dbc6fa065604b24ea57d734261914e697bd73b69eff7f18e967e8912aa2a40a19a9f599a507fa805be6c13c24c4eae8c71306c239d517d42d4c041c942f508a0 + word-wrap: ^1.2.5 + checksum: ecbd010e3dc73e05d239976422d9ef54a82a13f37c11ca5911dff41c98a6c7f0f163b27f922c37e7f8340af9d36febd3b6e9cef508f3339d4c393d7276d716bb languageName: node linkType: hard @@ -5657,12 +5875,12 @@ __metadata: linkType: hard "path-scurry@npm:^1.6.1": - version: 1.9.2 - resolution: "path-scurry@npm:1.9.2" + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" dependencies: - lru-cache: ^9.1.1 - minipass: ^5.0.0 || ^6.0.2 - checksum: 92888dfb68e285043c6d3291c8e971d5d2bc2f5082f4d7b5392896f34be47024c9d0a8b688dd7ae6d125acc424699195474927cb4f00049a9b1ec7c4256fa8e0 + lru-cache: ^10.2.0 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + checksum: 890d5abcd593a7912dcce7cf7c6bf7a0b5648e3dee6caf0712c126ca0a65c7f3d7b9d769072a4d1baf370f61ce493ab5b038d59988688e0c5f3f646ee3c69023 languageName: node linkType: hard @@ -5689,10 +5907,10 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0": - version: 1.0.0 - resolution: "picocolors@npm:1.0.0" - checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 +"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1": + version: 1.0.1 + resolution: "picocolors@npm:1.0.1" + checksum: fa68166d1f56009fc02a34cdfd112b0dd3cf1ef57667ac57281f714065558c01828cdf4f18600ad6851cbe0093952ed0660b1e0156bddf2184b6aaf5817553a5 languageName: node linkType: hard @@ -5767,36 +5985,43 @@ __metadata: languageName: node linkType: hard -"postcss-modules-extract-imports@npm:^3.0.0": - version: 3.0.0 - resolution: "postcss-modules-extract-imports@npm:3.0.0" +"possible-typed-array-names@npm:^1.0.0": + version: 1.0.0 + resolution: "possible-typed-array-names@npm:1.0.0" + checksum: b32d403ece71e042385cc7856385cecf1cd8e144fa74d2f1de40d1e16035dba097bc189715925e79b67bdd1472796ff168d3a90d296356c9c94d272d5b95f3ae + languageName: node + linkType: hard + +"postcss-modules-extract-imports@npm:^3.1.0": + version: 3.1.0 + resolution: "postcss-modules-extract-imports@npm:3.1.0" peerDependencies: postcss: ^8.1.0 - checksum: 4b65f2f1382d89c4bc3c0a1bdc5942f52f3cb19c110c57bd591ffab3a5fee03fcf831604168205b0c1b631a3dce2255c70b61aaae3ef39d69cd7eb450c2552d2 + checksum: b9192e0f4fb3d19431558be6f8af7ca45fc92baaad9b2778d1732a5880cd25c3df2074ce5484ae491e224f0d21345ffc2d419bd51c25b019af76d7a7af88c17f languageName: node linkType: hard -"postcss-modules-local-by-default@npm:^4.0.1": - version: 4.0.1 - resolution: "postcss-modules-local-by-default@npm:4.0.1" +"postcss-modules-local-by-default@npm:^4.0.5": + version: 4.0.5 + resolution: "postcss-modules-local-by-default@npm:4.0.5" dependencies: icss-utils: ^5.0.0 postcss-selector-parser: ^6.0.2 postcss-value-parser: ^4.1.0 peerDependencies: postcss: ^8.1.0 - checksum: 1a95eb8bc54a363a77dbd77a0a88f500e7937ecbed5903becef9362eace28de406e6fdf62640126c22964678370e87eb10481eea2703702772935b4515603bfd + checksum: ca9b01f4a0a3dfb33e016299e2dfb7e85c3123292f7aec2efc0c6771b9955648598bfb4c1561f7ee9732fb27fb073681233661b32eef98baab43743f96735452 languageName: node linkType: hard -"postcss-modules-scope@npm:^3.0.0": - version: 3.0.0 - resolution: "postcss-modules-scope@npm:3.0.0" +"postcss-modules-scope@npm:^3.2.0": + version: 3.2.0 + resolution: "postcss-modules-scope@npm:3.2.0" dependencies: postcss-selector-parser: ^6.0.4 peerDependencies: postcss: ^8.1.0 - checksum: 330b9398dbd44c992c92b0dc612c0626135e2cc840fee41841eb61247a6cfed95af2bd6f67ead9dd9d0bb41f5b0367129d93c6e434fa3e9c58ade391d9a5a138 + checksum: 2ffe7e98c1fa993192a39c8dd8ade93fc4f59fbd1336ce34fcedaee0ee3bafb29e2e23fb49189256895b30e4f21af661c6a6a16ef7b17ae2c859301e4a4459ae languageName: node linkType: hard @@ -5812,9 +6037,9 @@ __metadata: linkType: hard "postcss-resolve-nested-selector@npm:^0.1.1": - version: 0.1.1 - resolution: "postcss-resolve-nested-selector@npm:0.1.1" - checksum: b08fb76ab092a09ee01328bad620a01dcb445ac5eb02dd0ed9ed75217c2f779ecb3bf99a361c46e695689309c08c09f1a1ad7354c8d58c2c2c40d364657fcb08 + version: 0.1.6 + resolution: "postcss-resolve-nested-selector@npm:0.1.6" + checksum: 85453901afe2a4db497b4e0d2c9cf2a097a08fa5d45bc646547025176217050334e423475519a1e6c74a1f31ade819d16bb37a39914e5321e250695ee3feea14 languageName: node linkType: hard @@ -5828,12 +6053,12 @@ __metadata: linkType: hard "postcss-selector-parser@npm:^6.0.13, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4": - version: 6.0.13 - resolution: "postcss-selector-parser@npm:6.0.13" + version: 6.1.2 + resolution: "postcss-selector-parser@npm:6.1.2" dependencies: cssesc: ^3.0.0 util-deprecate: ^1.0.2 - checksum: f89163338a1ce3b8ece8e9055cd5a3165e79a15e1c408e18de5ad8f87796b61ec2d48a2902d179ae0c4b5de10fccd3a325a4e660596549b040bc5ad1b465f096 + checksum: ce9440fc42a5419d103f4c7c1847cb75488f3ac9cbe81093b408ee9701193a509f664b4d10a2b4d82c694ee7495e022f8f482d254f92b7ffd9ed9dea696c6f84 languageName: node linkType: hard @@ -5844,14 +6069,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.3.11, postcss@npm:^8.4.21, postcss@npm:^8.4.24": - version: 8.4.31 - resolution: "postcss@npm:8.4.31" +"postcss@npm:^8.3.11, postcss@npm:^8.4.28, postcss@npm:^8.4.33": + version: 8.4.41 + resolution: "postcss@npm:8.4.41" dependencies: - nanoid: ^3.3.6 - picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: 1d8611341b073143ad90486fcdfeab49edd243377b1f51834dc4f6d028e82ce5190e4f11bb2633276864503654fb7cab28e67abdc0fbf9d1f88cad4a0ff0beea + nanoid: ^3.3.7 + picocolors: ^1.0.1 + source-map-js: ^1.2.0 + checksum: f865894929eb0f7fc2263811cc853c13b1c75103028b3f4f26df777e27b201f1abe21cb4aa4c2e901c80a04f6fb325ee22979688fe55a70e2ea82b0a517d3b6f languageName: node linkType: hard @@ -5923,9 +6148,9 @@ __metadata: linkType: hard "punycode@npm:^2.1.0, punycode@npm:^2.1.1": - version: 2.3.0 - resolution: "punycode@npm:2.3.0" - checksum: 39f760e09a2a3bbfe8f5287cf733ecdad69d6af2fe6f97ca95f24b8921858b91e9ea3c9eeec6e08cede96181b3bb33f95c6ffd8c77e63986508aa2e8159fa200 + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: bb0a0ceedca4c3c57a9b981b90601579058903c62be23c5e8e843d2c2d4148a3ecf029d5133486fb0e1822b098ba8bba09e89d6b21742d02fa26bda6441a6fb2 languageName: node linkType: hard @@ -5960,14 +6185,14 @@ __metadata: linkType: hard "react-dom@npm:^18.2.0": - version: 18.2.0 - resolution: "react-dom@npm:18.2.0" + version: 18.3.1 + resolution: "react-dom@npm:18.3.1" dependencies: loose-envify: ^1.1.0 - scheduler: ^0.23.0 + scheduler: ^0.23.2 peerDependencies: - react: ^18.2.0 - checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc + react: ^18.3.1 + checksum: 298954ecd8f78288dcaece05e88b570014d8f6dce5db6f66e6ee91448debeb59dcd31561dddb354eee47e6c1bb234669459060deb238ed0213497146e555a0b9 languageName: node linkType: hard @@ -5979,18 +6204,18 @@ __metadata: linkType: hard "react-is@npm:^18.2.0": - version: 18.2.0 - resolution: "react-is@npm:18.2.0" - checksum: e72d0ba81b5922759e4aff17e0252bd29988f9642ed817f56b25a3e217e13eea8a7f2322af99a06edb779da12d5d636e9fda473d620df9a3da0df2a74141d53e + version: 18.3.1 + resolution: "react-is@npm:18.3.1" + checksum: e20fe84c86ff172fc8d898251b7cc2c43645d108bf96d0b8edf39b98f9a2cae97b40520ee7ed8ee0085ccc94736c4886294456033304151c3f94978cec03df21 languageName: node linkType: hard -"react@npm:^18.2.0": - version: 18.2.0 - resolution: "react@npm:18.2.0" +"react@npm:>=17.0.0 <19.0.0, react@npm:^18.2.0": + version: 18.3.1 + resolution: "react@npm:18.3.1" dependencies: loose-envify: ^1.1.0 - checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b + checksum: a27bcfa8ff7c15a1e50244ad0d0c1cb2ad4375eeffefd266a64889beea6f6b64c4966c9b37d14ee32d6c9fcd5aa6ba183b6988167ab4d127d13e7cb5b386a376 languageName: node linkType: hard @@ -6059,10 +6284,10 @@ __metadata: languageName: node linkType: hard -"regenerator-runtime@npm:^0.13.11": - version: 0.13.11 - resolution: "regenerator-runtime@npm:0.13.11" - checksum: 27481628d22a1c4e3ff551096a683b424242a216fee44685467307f14d58020af1e19660bf2e26064de946bad7eff28950eae9f8209d55723e2d9351e632bbb4 +"regenerator-runtime@npm:^0.14.0": + version: 0.14.1 + resolution: "regenerator-runtime@npm:0.14.1" + checksum: 9f57c93277b5585d3c83b0cf76be47b473ae8c6d9142a46ce8b0291a04bb2cf902059f0f8445dcabb3fb7378e5fe4bb4ea1e008876343d42e46d3b484534ce38 languageName: node linkType: hard @@ -6094,14 +6319,15 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.4.3": - version: 1.5.0 - resolution: "regexp.prototype.flags@npm:1.5.0" +"regexp.prototype.flags@npm:^1.5.2": + version: 1.5.2 + resolution: "regexp.prototype.flags@npm:1.5.2" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - functions-have-names: ^1.2.3 - checksum: c541687cdbdfff1b9a07f6e44879f82c66bbf07665f9a7544c5fd16acdb3ec8d1436caab01662d2fbcad403f3499d49ab0b77fbc7ef29ef961d98cc4bc9755b4 + call-bind: ^1.0.6 + define-properties: ^1.2.1 + es-errors: ^1.3.0 + set-function-name: ^2.0.1 + checksum: d7f333667d5c564e2d7a97c56c3075d64c722c9bb51b2b4df6822b2e8096d623a5e63088fb4c83df919b6951ef8113841de8b47de7224872fa6838bc5d8a7d64 languageName: node linkType: hard @@ -6178,28 +6404,28 @@ __metadata: linkType: hard "resolve@npm:^1.10.0, resolve@npm:^1.20.0, resolve@npm:^1.3.2": - version: 1.22.3 - resolution: "resolve@npm:1.22.3" + version: 1.22.8 + resolution: "resolve@npm:1.22.8" dependencies: - is-core-module: ^2.12.0 + is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: fb834b81348428cb545ff1b828a72ea28feb5a97c026a1cf40aa1008352c72811ff4d4e71f2035273dc536dcfcae20c13604ba6283c612d70fa0b6e44519c374 + checksum: f8a26958aa572c9b064562750b52131a37c29d072478ea32e129063e2da7f83e31f7f11e7087a18225a8561cfe8d2f0df9dbea7c9d331a897571c0a2527dbb4c languageName: node linkType: hard "resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.3.2#~builtin": - version: 1.22.3 - resolution: "resolve@patch:resolve@npm%3A1.22.3#~builtin::version=1.22.3&hash=c3c19d" + version: 1.22.8 + resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=c3c19d" dependencies: - is-core-module: ^2.12.0 + is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: ad59734723b596d0891321c951592ed9015a77ce84907f89c9d9307dd0c06e11a67906a3e628c4cae143d3e44898603478af0ddeb2bba3f229a9373efe342665 + checksum: 5479b7d431cacd5185f8db64bfcb7286ae5e31eb299f4c4f404ad8aa6098b77599563ac4257cb2c37a42f59dfc06a1bec2bcf283bb448f319e37f0feb9a09847 languageName: node linkType: hard @@ -6287,6 +6513,18 @@ __metadata: languageName: node linkType: hard +"safe-array-concat@npm:^1.1.2": + version: 1.1.2 + resolution: "safe-array-concat@npm:1.1.2" + dependencies: + call-bind: ^1.0.7 + get-intrinsic: ^1.2.4 + has-symbols: ^1.0.3 + isarray: ^2.0.5 + checksum: a3b259694754ddfb73ae0663829e396977b99ff21cbe8607f35a469655656da8e271753497e59da8a7575baa94d2e684bea3e10ddd74ba046c0c9b4418ffa0c4 + languageName: node + linkType: hard + "safe-buffer@npm:^5.1.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" @@ -6294,14 +6532,14 @@ __metadata: languageName: node linkType: hard -"safe-regex-test@npm:^1.0.0": - version: 1.0.0 - resolution: "safe-regex-test@npm:1.0.0" +"safe-regex-test@npm:^1.0.3": + version: 1.0.3 + resolution: "safe-regex-test@npm:1.0.3" dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.1.3 + call-bind: ^1.0.6 + es-errors: ^1.3.0 is-regex: ^1.1.4 - checksum: bc566d8beb8b43c01b94e67de3f070fd2781685e835959bbbaaec91cc53381145ca91f69bd837ce6ec244817afa0a5e974fc4e40a2957f0aca68ac3add1ddd34 + checksum: 6c7d392ff1ae7a3ae85273450ed02d1d131f1d2c76e177d6b03eb88e6df8fa062639070e7d311802c1615f351f18dc58f9454501c58e28d5ffd9b8f502ba6489 languageName: node linkType: hard @@ -6321,26 +6559,26 @@ __metadata: languageName: node linkType: hard -"sanitize-html@npm:~2.7.3": - version: 2.7.3 - resolution: "sanitize-html@npm:2.7.3" +"sanitize-html@npm:~2.12.1": + version: 2.12.1 + resolution: "sanitize-html@npm:2.12.1" dependencies: deepmerge: ^4.2.2 escape-string-regexp: ^4.0.0 - htmlparser2: ^6.0.0 + htmlparser2: ^8.0.0 is-plain-object: ^5.0.0 parse-srcset: ^1.0.2 postcss: ^8.3.11 - checksum: 2399d1fdbbc3a263fb413c1fe1971b3dc2b51abc6cc5cb49490624539d1c57a8fe31e2b21408c118e2a957f4e673e3169b1f9a5807654408f17b130a9d78aed7 + checksum: fb96ea7170d51b5af2607f5cfd84464c78fc6f47e339407f55783e781c6a0288a8d40bbf97ea6a8758924ba9b2d33dcc4846bb94caacacd90d7f2de10ed8541a languageName: node linkType: hard -"scheduler@npm:^0.23.0": - version: 0.23.0 - resolution: "scheduler@npm:0.23.0" +"scheduler@npm:^0.23.2": + version: 0.23.2 + resolution: "scheduler@npm:0.23.2" dependencies: loose-envify: ^1.1.0 - checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a + checksum: 3e82d1f419e240ef6219d794ff29c7ee415fbdc19e038f680a10c067108e06284f1847450a210b29bbaf97b9d8a97ced5f624c31c681248ac84c80d56ad5a2c4 languageName: node linkType: hard @@ -6355,26 +6593,26 @@ __metadata: languageName: node linkType: hard -"schema-utils@npm:^3.0.0, schema-utils@npm:^3.1.1, schema-utils@npm:^3.1.2": - version: 3.1.2 - resolution: "schema-utils@npm:3.1.2" +"schema-utils@npm:^3.0.0, schema-utils@npm:^3.1.1, schema-utils@npm:^3.2.0": + version: 3.3.0 + resolution: "schema-utils@npm:3.3.0" dependencies: "@types/json-schema": ^7.0.8 ajv: ^6.12.5 ajv-keywords: ^3.5.2 - checksum: 39683edfe3beff018cdb1ae4fa296fc55cea13a080aa2b4d9351895cd64b22ba4d87e2e548c2a2ac1bc76e60980670adb0f413a58104479f1a0c12e5663cb8ca + checksum: ea56971926fac2487f0757da939a871388891bc87c6a82220d125d587b388f1704788f3706e7f63a7b70e49fc2db974c41343528caea60444afd5ce0fe4b85c0 languageName: node linkType: hard "schema-utils@npm:^4.0.0": - version: 4.0.1 - resolution: "schema-utils@npm:4.0.1" + version: 4.2.0 + resolution: "schema-utils@npm:4.2.0" dependencies: "@types/json-schema": ^7.0.9 ajv: ^8.9.0 ajv-formats: ^2.1.1 ajv-keywords: ^5.1.0 - checksum: 745e7293c6b6c84940de16753c207311da821aa9911b9e2d158cfd9ffc5bf1f880147abbbe775b96cb8cd3c7f48890950fe0164f54eed9a8aabb948ebf8a3fdd + checksum: 26a0463d47683258106e6652e9aeb0823bf0b85843039e068b57da1892f7ae6b6b1094d48e9ed5ba5cbe9f7166469d880858b9d91abe8bd249421eb813850cde languageName: node linkType: hard @@ -6394,23 +6632,47 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.2.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.8": - version: 7.5.1 - resolution: "semver@npm:7.5.1" - dependencies: - lru-cache: ^6.0.0 +"semver@npm:^7.2.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.4": + version: 7.6.3 + resolution: "semver@npm:7.6.3" bin: semver: bin/semver.js - checksum: d16dbedad53c65b086f79524b9ef766bf38670b2395bdad5c957f824dcc566b624988013564f4812bcace3f9d405355c3635e2007396a39d1bffc71cfec4a2fc + checksum: 4110ec5d015c9438f322257b1c51fe30276e5f766a3f64c09edd1d7ea7118ecbc3f379f3b69032bacf13116dc7abc4ad8ce0d7e2bd642e26b0d271b56b61a7d8 languageName: node linkType: hard "serialize-javascript@npm:^6.0.1": - version: 6.0.1 - resolution: "serialize-javascript@npm:6.0.1" + version: 6.0.2 + resolution: "serialize-javascript@npm:6.0.2" dependencies: randombytes: ^2.1.0 - checksum: 3c4f4cb61d0893b988415bdb67243637333f3f574e9e9cc9a006a2ced0b390b0b3b44aef8d51c951272a9002ec50885eefdc0298891bc27eb2fe7510ea87dc4f + checksum: c4839c6206c1d143c0f80763997a361310305751171dd95e4b57efee69b8f6edd8960a0b7fbfc45042aadff98b206d55428aee0dc276efe54f100899c7fa8ab7 + languageName: node + linkType: hard + +"set-function-length@npm:^1.2.1": + version: 1.2.2 + resolution: "set-function-length@npm:1.2.2" + dependencies: + define-data-property: ^1.1.4 + es-errors: ^1.3.0 + function-bind: ^1.1.2 + get-intrinsic: ^1.2.4 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.2 + checksum: a8248bdacdf84cb0fab4637774d9fb3c7a8e6089866d04c817583ff48e14149c87044ce683d7f50759a8c50fb87c7a7e173535b06169c87ef76f5fb276dfff72 + languageName: node + linkType: hard + +"set-function-name@npm:^2.0.1": + version: 2.0.2 + resolution: "set-function-name@npm:2.0.2" + dependencies: + define-data-property: ^1.1.4 + es-errors: ^1.3.0 + functions-have-names: ^1.2.3 + has-property-descriptors: ^1.0.2 + checksum: d6229a71527fd0404399fc6227e0ff0652800362510822a291925c9d7b48a1ca1a468b11b281471c34cd5a2da0db4f5d7ff315a61d26655e77f6e971e6d0c80f languageName: node linkType: hard @@ -6475,13 +6737,14 @@ __metadata: linkType: hard "side-channel@npm:^1.0.4": - version: 1.0.4 - resolution: "side-channel@npm:1.0.4" + version: 1.0.6 + resolution: "side-channel@npm:1.0.6" dependencies: - call-bind: ^1.0.0 - get-intrinsic: ^1.0.2 - object-inspect: ^1.9.0 - checksum: 351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245 + call-bind: ^1.0.7 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.4 + object-inspect: ^1.13.1 + checksum: bfc1afc1827d712271453e91b7cd3878ac0efd767495fd4e594c4c2afaa7963b7b510e249572bfd54b0527e66e4a12b61b80c061389e129755f34c493aad9b97 languageName: node linkType: hard @@ -6493,9 +6756,9 @@ __metadata: linkType: hard "signal-exit@npm:^4.0.1": - version: 4.0.2 - resolution: "signal-exit@npm:4.0.2" - checksum: 41f5928431cc6e91087bf0343db786a6313dd7c6fd7e551dbc141c95bb5fb26663444fd9df8ea47c5d7fc202f60aa7468c3162a9365cbb0615fc5e1b1328fe31 + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 languageName: node linkType: hard @@ -6576,10 +6839,10 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2": - version: 1.0.2 - resolution: "source-map-js@npm:1.0.2" - checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c +"source-map-js@npm:^1.0.1, source-map-js@npm:^1.2.0": + version: 1.2.0 + resolution: "source-map-js@npm:1.2.0" + checksum: 791a43306d9223792e84293b00458bf102a8946e7188f3db0e4e22d8d530b5f80a4ce468eb5ec0bf585443ad55ebbd630bf379c98db0b1f317fd902500217f97 languageName: node linkType: hard @@ -6669,9 +6932,9 @@ __metadata: linkType: hard "spdx-exceptions@npm:^2.1.0": - version: 2.3.0 - resolution: "spdx-exceptions@npm:2.3.0" - checksum: cb69a26fa3b46305637123cd37c85f75610e8c477b6476fa7354eb67c08128d159f1d36715f19be6f9daf4b680337deb8c65acdcae7f2608ba51931540687ac0 + version: 2.5.0 + resolution: "spdx-exceptions@npm:2.5.0" + checksum: bb127d6e2532de65b912f7c99fc66097cdea7d64c10d3ec9b5e96524dbbd7d20e01cba818a6ddb2ae75e62bb0c63d5e277a7e555a85cbc8ab40044984fa4ae15 languageName: node linkType: hard @@ -6686,9 +6949,9 @@ __metadata: linkType: hard "spdx-license-ids@npm:^3.0.0": - version: 3.0.13 - resolution: "spdx-license-ids@npm:3.0.13" - checksum: 3469d85c65f3245a279fa11afc250c3dca96e9e847f2f79d57f466940c5bb8495da08a542646086d499b7f24a74b8d0b42f3fc0f95d50ff99af1f599f6360ad7 + version: 3.0.20 + resolution: "spdx-license-ids@npm:3.0.20" + checksum: 0c57750bedbcff48f3d0e266fbbdaf0aab54217e182f669542ffe0b5a902dce69e8cdfa126a131e1ddd39a9bef4662e357b2b41315d7240b4a28c0a7e782bb40 languageName: node linkType: hard @@ -6767,46 +7030,48 @@ __metadata: linkType: hard "string.prototype.padend@npm:^3.0.0": - version: 3.1.4 - resolution: "string.prototype.padend@npm:3.1.4" + version: 3.1.6 + resolution: "string.prototype.padend@npm:3.1.6" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 76e07238fe31dc12177428f0436b7ed6985f6a7ba97470fd53e4f0a6d9860bfee127d81957f3073cc879b434233df143825d140581e1340278053ad993c92f6c + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.2 + es-object-atoms: ^1.0.0 + checksum: d9fc23c21bdfb6850756002ef09cebc420882003f29eafbd8322df77a90726bc2a64892d01f94f1fc9fc6f809414fbcbd8615610bb3cddd33512c12b6b3643a2 languageName: node linkType: hard -"string.prototype.trim@npm:^1.2.7": - version: 1.2.7 - resolution: "string.prototype.trim@npm:1.2.7" +"string.prototype.trim@npm:^1.2.9": + version: 1.2.9 + resolution: "string.prototype.trim@npm:1.2.9" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 05b7b2d6af63648e70e44c4a8d10d8cc457536df78b55b9d6230918bde75c5987f6b8604438c4c8652eb55e4fc9725d2912789eb4ec457d6995f3495af190c09 + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.0 + es-object-atoms: ^1.0.0 + checksum: ea2df6ec1e914c9d4e2dc856fa08228e8b1be59b59e50b17578c94a66a176888f417264bb763d4aac638ad3b3dad56e7a03d9317086a178078d131aa293ba193 languageName: node linkType: hard -"string.prototype.trimend@npm:^1.0.6": - version: 1.0.6 - resolution: "string.prototype.trimend@npm:1.0.6" +"string.prototype.trimend@npm:^1.0.8": + version: 1.0.8 + resolution: "string.prototype.trimend@npm:1.0.8" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 0fdc34645a639bd35179b5a08227a353b88dc089adf438f46be8a7c197fc3f22f8514c1c9be4629b3cd29c281582730a8cbbad6466c60f76b5f99cf2addb132e + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-object-atoms: ^1.0.0 + checksum: cc3bd2de08d8968a28787deba9a3cb3f17ca5f9f770c91e7e8fa3e7d47f079bad70fadce16f05dda9f261788be2c6e84a942f618c3bed31e42abc5c1084f8dfd languageName: node linkType: hard -"string.prototype.trimstart@npm:^1.0.6": - version: 1.0.6 - resolution: "string.prototype.trimstart@npm:1.0.6" +"string.prototype.trimstart@npm:^1.0.8": + version: 1.0.8 + resolution: "string.prototype.trimstart@npm:1.0.8" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 89080feef416621e6ef1279588994305477a7a91648d9436490d56010a1f7adc39167cddac7ce0b9884b8cdbef086987c4dcb2960209f2af8bac0d23ceff4f41 + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-object-atoms: ^1.0.0 + checksum: df1007a7f580a49d692375d996521dc14fd103acda7f3034b3c558a60b82beeed3a64fa91e494e164581793a8ab0ae2f59578a49896a7af6583c1f20472bce96 languageName: node linkType: hard @@ -6879,18 +7144,18 @@ __metadata: linkType: hard "style-loader@npm:^3.3.1, style-loader@npm:~3.3.1": - version: 3.3.3 - resolution: "style-loader@npm:3.3.3" + version: 3.3.4 + resolution: "style-loader@npm:3.3.4" peerDependencies: webpack: ^5.0.0 - checksum: f59c953f56f6a935bd6a1dfa409f1128fed2b66b48ce4a7a75b85862a7156e5e90ab163878962762f528ec4d510903d828da645e143fbffd26f055dc1c094078 + checksum: caac3f2fe2c3c89e49b7a2a9329e1cfa515ecf5f36b9c4885f9b218019fda207a9029939b2c35821dec177a264a007e7c391ccdd3ff7401881ce6287b9c8f38b languageName: node linkType: hard -"style-mod@npm:^4.0.0": - version: 4.0.3 - resolution: "style-mod@npm:4.0.3" - checksum: 934556e720bd29026ff8fef43a1a35b58957813025b91f996d886e9405acf934ddb1934def4400b174bd7784c9263eb9c71f07ae83925af9271b7d921d546854 +"style-mod@npm:^4.0.0, style-mod@npm:^4.1.0": + version: 4.1.2 + resolution: "style-mod@npm:4.1.2" + checksum: 7c5c3e82747f9bcf5f288d8d07f50848e4630fe5ff7bfe4d94cc87d6b6a2588227cbf21b4c792ac6406e5852293300a75e710714479a5c59a06af677f0825ef8 languageName: node linkType: hard @@ -6933,6 +7198,17 @@ __metadata: languageName: node linkType: hard +"stylelint-csstree-validator@npm:^3.0.0": + version: 3.0.0 + resolution: "stylelint-csstree-validator@npm:3.0.0" + dependencies: + css-tree: ^2.3.1 + peerDependencies: + stylelint: ">=7.0.0 <16.0.0" + checksum: e518c8c17714022946b7637c23a6816fd2ccdd6052a19c5a138b3f7ce9b913ead9c612ac4401e102f14800a19967dbfd4b588b44cbf3f3c6a5984bef7bda4017 + languageName: node + linkType: hard + "stylelint-prettier@npm:^2.0.0": version: 2.0.0 resolution: "stylelint-prettier@npm:2.0.0" @@ -6946,22 +7222,22 @@ __metadata: linkType: hard "stylelint@npm:^15.10.1": - version: 15.10.1 - resolution: "stylelint@npm:15.10.1" + version: 15.11.0 + resolution: "stylelint@npm:15.11.0" dependencies: - "@csstools/css-parser-algorithms": ^2.3.0 - "@csstools/css-tokenizer": ^2.1.1 - "@csstools/media-query-list-parser": ^2.1.2 + "@csstools/css-parser-algorithms": ^2.3.1 + "@csstools/css-tokenizer": ^2.2.0 + "@csstools/media-query-list-parser": ^2.1.4 "@csstools/selector-specificity": ^3.0.0 balanced-match: ^2.0.0 colord: ^2.9.3 cosmiconfig: ^8.2.0 - css-functions-list: ^3.1.0 + css-functions-list: ^3.2.1 css-tree: ^2.3.1 debug: ^4.3.4 - fast-glob: ^3.3.0 + fast-glob: ^3.3.1 fastest-levenshtein: ^1.0.16 - file-entry-cache: ^6.0.1 + file-entry-cache: ^7.0.0 global-modules: ^2.0.0 globby: ^11.1.0 globjoin: ^0.1.4 @@ -6970,13 +7246,13 @@ __metadata: import-lazy: ^4.0.0 imurmurhash: ^0.1.4 is-plain-object: ^5.0.0 - known-css-properties: ^0.27.0 + known-css-properties: ^0.29.0 mathml-tag-names: ^2.1.3 meow: ^10.1.5 micromatch: ^4.0.5 normalize-path: ^3.0.0 picocolors: ^1.0.0 - postcss: ^8.4.24 + postcss: ^8.4.28 postcss-resolve-nested-selector: ^0.1.1 postcss-safe-parser: ^6.0.0 postcss-selector-parser: ^6.0.13 @@ -6991,7 +7267,7 @@ __metadata: write-file-atomic: ^5.0.1 bin: stylelint: bin/stylelint.mjs - checksum: 8eeae81fe4ed2dfc580d7c401806dbb058c14631abfafd0821db32f1e649aee62e3d39dda3462c6122826df91bd9799409be926e91b55b007622f51e44eb94c1 + checksum: 9835f8a3e3976a3b81a35569d08f5f4a9c3b5cff415f1345a505870afc0c3231acff27f119d937c5bb11fdbc98d554af564c2a648a52604280a59a11974fcbfc languageName: node linkType: hard @@ -7030,12 +7306,12 @@ __metadata: linkType: hard "supports-hyperlinks@npm:^3.0.0": - version: 3.0.0 - resolution: "supports-hyperlinks@npm:3.0.0" + version: 3.1.0 + resolution: "supports-hyperlinks@npm:3.1.0" dependencies: has-flag: ^4.0.0 supports-color: ^7.0.0 - checksum: 41021305de5255b10d821bf93c7a781f783e1693d0faec293d7fc7ccf17011b90bde84b0295fa92ba75c6c390351fe84fdd18848cad4bf656e464a958243c3e7 + checksum: 051ffc31ae0d3334502decb6a17170ff89d870094d6835d93dfb2cda03e2a4504bf861a0954942af5e65fdd038b81cef5998696d0f4f4ff5f5bd3e40c7981874 languageName: node linkType: hard @@ -7067,35 +7343,42 @@ __metadata: languageName: node linkType: hard +"tabbable@npm:^5.2.0": + version: 5.3.3 + resolution: "tabbable@npm:5.3.3" + checksum: 1aa56e1bb617cc10616c407f4e756f0607f3e2d30f9803664d70b85db037ca27e75918ed1c71443f3dc902e21dc9f991ce4b52d63a538c9b69b3218d3babcd70 + languageName: node + linkType: hard + "table@npm:^6.0.9, table@npm:^6.8.1": - version: 6.8.1 - resolution: "table@npm:6.8.1" + version: 6.8.2 + resolution: "table@npm:6.8.2" dependencies: ajv: ^8.0.1 lodash.truncate: ^4.4.2 slice-ansi: ^4.0.0 string-width: ^4.2.3 strip-ansi: ^6.0.1 - checksum: 08249c7046125d9d0a944a6e96cfe9ec66908d6b8a9db125531be6eb05fa0de047fd5542e9d43b4f987057f00a093b276b8d3e19af162a9c40db2681058fd306 + checksum: 61188652f53a980d1759ca460ca8dea5c5322aece3210457e7084882f053c2b6a870041295e08a82cb1d676e31b056406845d94b0abf3c79a4b104777bec413b languageName: node linkType: hard -"tapable@npm:^2.1.1, tapable@npm:^2.2.0": +"tapable@npm:^2.1.1, tapable@npm:^2.2.0, tapable@npm:^2.2.1": version: 2.2.1 resolution: "tapable@npm:2.2.1" checksum: 3b7a1b4d86fa940aad46d9e73d1e8739335efd4c48322cb37d073eb6f80f5281889bf0320c6d8ffcfa1a0dd5bfdbd0f9d037e252ef972aca595330538aac4d51 languageName: node linkType: hard -"terser-webpack-plugin@npm:^5.3.7": - version: 5.3.9 - resolution: "terser-webpack-plugin@npm:5.3.9" +"terser-webpack-plugin@npm:^5.3.10, terser-webpack-plugin@npm:^5.3.7": + version: 5.3.10 + resolution: "terser-webpack-plugin@npm:5.3.10" dependencies: - "@jridgewell/trace-mapping": ^0.3.17 + "@jridgewell/trace-mapping": ^0.3.20 jest-worker: ^27.4.5 schema-utils: ^3.1.1 serialize-javascript: ^6.0.1 - terser: ^5.16.8 + terser: ^5.26.0 peerDependencies: webpack: ^5.1.0 peerDependenciesMeta: @@ -7105,21 +7388,21 @@ __metadata: optional: true uglify-js: optional: true - checksum: 41705713d6f9cb83287936b21e27c658891c78c4392159f5148b5623f0e8c48559869779619b058382a4c9758e7820ea034695e57dc7c474b4962b79f553bc5f + checksum: bd6e7596cf815f3353e2a53e79cbdec959a1b0276f5e5d4e63e9d7c3c5bb5306df567729da287d1c7b39d79093e56863c569c42c6c24cc34c76aa313bd2cbcea languageName: node linkType: hard -"terser@npm:^5.16.8": - version: 5.17.4 - resolution: "terser@npm:5.17.4" +"terser@npm:^5.26.0": + version: 5.31.6 + resolution: "terser@npm:5.31.6" dependencies: - "@jridgewell/source-map": ^0.3.2 - acorn: ^8.5.0 + "@jridgewell/source-map": ^0.3.3 + acorn: ^8.8.2 commander: ^2.20.0 source-map-support: ~0.5.20 bin: terser: bin/terser - checksum: 4bb4bbee170bee4cf897545b602999e0b74d2cd035387514c6859fae6a71d623f8d1319de47bcf6a157358355cc7afaa62a5d5661bfc72968d13b35113022486 + checksum: 60d3faf39c9ad7acc891e17888bbd206e0b777f442649cf49873a5fa317b8b8a17179a46970d884d5f93e8addde0206193ed1e2e4f1ccb1cafb167f7d1ddee96 languageName: node linkType: hard @@ -7193,7 +7476,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^1.7.1, tslib@npm:^1.8.0, tslib@npm:^1.8.1, tslib@npm:^1.9.0": +"tslib@npm:^1.13.0, tslib@npm:^1.7.1, tslib@npm:^1.8.0, tslib@npm:^1.8.1, tslib@npm:^1.9.0": version: 1.14.1 resolution: "tslib@npm:1.14.1" checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd @@ -7300,14 +7583,55 @@ __metadata: languageName: node linkType: hard -"typed-array-length@npm:^1.0.4": - version: 1.0.4 - resolution: "typed-array-length@npm:1.0.4" +"typed-array-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "typed-array-buffer@npm:1.0.2" dependencies: - call-bind: ^1.0.2 + call-bind: ^1.0.7 + es-errors: ^1.3.0 + is-typed-array: ^1.1.13 + checksum: 02ffc185d29c6df07968272b15d5319a1610817916ec8d4cd670ded5d1efe72901541ff2202fcc622730d8a549c76e198a2f74e312eabbfb712ed907d45cbb0b + languageName: node + linkType: hard + +"typed-array-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "typed-array-byte-length@npm:1.0.1" + dependencies: + call-bind: ^1.0.7 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-proto: ^1.0.3 + is-typed-array: ^1.1.13 + checksum: f65e5ecd1cf76b1a2d0d6f631f3ea3cdb5e08da106c6703ffe687d583e49954d570cc80434816d3746e18be889ffe53c58bf3e538081ea4077c26a41055b216d + languageName: node + linkType: hard + +"typed-array-byte-offset@npm:^1.0.2": + version: 1.0.2 + resolution: "typed-array-byte-offset@npm:1.0.2" + dependencies: + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.7 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-proto: ^1.0.3 + is-typed-array: ^1.1.13 + checksum: c8645c8794a621a0adcc142e0e2c57b1823bbfa4d590ad2c76b266aa3823895cf7afb9a893bf6685e18454ab1b0241e1a8d885a2d1340948efa4b56add4b5f67 + languageName: node + linkType: hard + +"typed-array-length@npm:^1.0.6": + version: 1.0.6 + resolution: "typed-array-length@npm:1.0.6" + dependencies: + call-bind: ^1.0.7 for-each: ^0.3.3 - is-typed-array: ^1.1.9 - checksum: 2228febc93c7feff142b8c96a58d4a0d7623ecde6c7a24b2b98eb3170e99f7c7eff8c114f9b283085cd59dcd2bd43aadf20e25bba4b034a53c5bb292f71f8956 + gopd: ^1.0.1 + has-proto: ^1.0.3 + is-typed-array: ^1.1.13 + possible-typed-array-names: ^1.0.0 + checksum: f0315e5b8f0168c29d390ff410ad13e4d511c78e6006df4a104576844812ee447fcc32daab1f3a76c9ef4f64eff808e134528b5b2439de335586b392e9750e5c languageName: node linkType: hard @@ -7323,11 +7647,11 @@ __metadata: "typescript@patch:typescript@~5.0.4#~builtin": version: 5.0.4 - resolution: "typescript@patch:typescript@npm%3A5.0.4#~builtin::version=5.0.4&hash=b5f058" + resolution: "typescript@patch:typescript@npm%3A5.0.4#~builtin::version=5.0.4&hash=85af82" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: d26b6ba97b6d163c55dbdffd9bbb4c211667ebebc743accfeb2c8c0154aace7afd097b51165a72a5bad2cf65a4612259344ff60f8e642362aa1695c760d303ac + checksum: bb309d320c59a26565fb3793dba550576ab861018ff3fd1b7fccabbe46ae4a35546bc45f342c0a0b6f265c801ccdf64ffd68f548f117ceb7f0eac4b805cd52a9 languageName: node linkType: hard @@ -7353,6 +7677,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~6.19.2": + version: 6.19.8 + resolution: "undici-types@npm:6.19.8" + checksum: de51f1b447d22571cf155dfe14ff6d12c5bdaec237c765085b439c38ca8518fc360e88c70f99469162bf2e14188a7b0bcb06e1ed2dc031042b984b0bb9544017 + languageName: node + linkType: hard + "union-value@npm:^1.0.0": version: 1.0.1 resolution: "union-value@npm:1.0.1" @@ -7366,9 +7697,9 @@ __metadata: linkType: hard "universalify@npm:^2.0.0": - version: 2.0.0 - resolution: "universalify@npm:2.0.0" - checksum: 2406a4edf4a8830aa6813278bab1f953a8e40f2f63a37873ffa9a3bc8f9745d06cc8e88f3572cb899b7e509013f7f6fcc3e37e8a6d914167a5381d8440518c44 + version: 2.0.1 + resolution: "universalify@npm:2.0.1" + checksum: ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60 languageName: node linkType: hard @@ -7382,17 +7713,17 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.0.10": - version: 1.0.11 - resolution: "update-browserslist-db@npm:1.0.11" +"update-browserslist-db@npm:^1.1.0": + version: 1.1.0 + resolution: "update-browserslist-db@npm:1.1.0" dependencies: - escalade: ^3.1.1 - picocolors: ^1.0.0 + escalade: ^3.1.2 + picocolors: ^1.0.1 peerDependencies: browserslist: ">= 4.21.0" bin: update-browserslist-db: cli.js - checksum: b98327518f9a345c7cad5437afae4d2ae7d865f9779554baf2a200fdf4bac4969076b679b1115434bd6557376bdd37ca7583d0f9b8f8e302d7d4cc1e91b5f231 + checksum: 7b74694d96f0c360f01b702e72353dc5a49df4fe6663d3ee4e5c628f061576cddf56af35a3a886238c01dd3d8f231b7a86a8ceaa31e7a9220ae31c1c1238e562 languageName: node linkType: hard @@ -7437,9 +7768,9 @@ __metadata: linkType: hard "v8-compile-cache@npm:^2.0.3": - version: 2.3.0 - resolution: "v8-compile-cache@npm:2.3.0" - checksum: adb0a271eaa2297f2f4c536acbfee872d0dd26ec2d76f66921aa7fc437319132773483344207bdbeee169225f4739016d8d2dbf0553913a52bb34da6d0334f8e + version: 2.4.0 + resolution: "v8-compile-cache@npm:2.4.0" + checksum: 8eb6ddb59d86f24566503f1e6ca98f3e6f43599f05359bd3ab737eaaf1585b338091478a4d3d5c2646632cf8030288d7888684ea62238cdce15a65ae2416718f languageName: node linkType: hard @@ -7493,10 +7824,10 @@ __metadata: languageName: node linkType: hard -"vscode-jsonrpc@npm:8.1.0, vscode-jsonrpc@npm:^8.0.2": - version: 8.1.0 - resolution: "vscode-jsonrpc@npm:8.1.0" - checksum: 8980037cc0014802e6ac1e5dfcff9a65e8292727096dfd23c92d2039c0c45de74a00d6ee06938cf1a671286dd8258a5f418cf048c26ad0fcb0c44f96c9e0f278 +"vscode-jsonrpc@npm:8.2.0": + version: 8.2.0 + resolution: "vscode-jsonrpc@npm:8.2.0" + checksum: f302a01e59272adc1ae6494581fa31c15499f9278df76366e3b97b2236c7c53ebfc71efbace9041cfd2caa7f91675b9e56f2407871a1b3c7f760a2e2ee61484a languageName: node linkType: hard @@ -7507,20 +7838,27 @@ __metadata: languageName: node linkType: hard +"vscode-jsonrpc@npm:^8.0.2": + version: 8.2.1 + resolution: "vscode-jsonrpc@npm:8.2.1" + checksum: 2af2c333d73f6587896a7077978b8d4b430e55c674d5dbb90597a84a6647057c1655a3bff398a9b08f1f8ba57dbd2deabf05164315829c297b0debba3b8bc19e + languageName: node + linkType: hard + "vscode-languageserver-protocol@npm:^3.17.0": - version: 3.17.3 - resolution: "vscode-languageserver-protocol@npm:3.17.3" + version: 3.17.5 + resolution: "vscode-languageserver-protocol@npm:3.17.5" dependencies: - vscode-jsonrpc: 8.1.0 - vscode-languageserver-types: 3.17.3 - checksum: ffea508b2efd7f4853f1cef5e5eac58672f0ae71a9ec275ad37a4a2a24cdc3ff023f941e759951aee01c79da3f3279f10e034f19d875f081eb387181241bd836 + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + checksum: dfb42d276df5dfea728267885b99872ecff62f6c20448b8539fae71bb196b420f5351c5aca7c1047bf8fb1f89fa94a961dce2bc5bf7e726198f4be0bb86a1e71 languageName: node linkType: hard -"vscode-languageserver-types@npm:3.17.3": - version: 3.17.3 - resolution: "vscode-languageserver-types@npm:3.17.3" - checksum: fbc8221297261f659a6482875ff2a419dc9d55965dc53745797da569ff9f819cd832e6f2699017baadd946548bbfe212e3f6971f3d960f12dc0ee9c629dacc07 +"vscode-languageserver-types@npm:3.17.5": + version: 3.17.5 + resolution: "vscode-languageserver-types@npm:3.17.5" + checksum: 79b420e7576398d396579ca3a461c9ed70e78db4403cd28bbdf4d3ed2b66a2b4114031172e51fad49f0baa60a2180132d7cb2ea35aa3157d7af3c325528210ac languageName: node linkType: hard @@ -7534,19 +7872,19 @@ __metadata: linkType: hard "w3c-keyname@npm:^2.2.4": - version: 2.2.7 - resolution: "w3c-keyname@npm:2.2.7" - checksum: 91e057b1ec28e0bafcaf28def12023f0e083fd473c40d0a9c2aa01a975d227200d75ff6d8eb6961bb4608b967b1df1dd86786b52ee9489cb9a2ebeed881a63ae + version: 2.2.8 + resolution: "w3c-keyname@npm:2.2.8" + checksum: 95bafa4c04fa2f685a86ca1000069c1ec43ace1f8776c10f226a73296caeddd83f893db885c2c220ebeb6c52d424e3b54d7c0c1e963bbf204038ff1a944fbb07 languageName: node linkType: hard -"watchpack@npm:^2.4.0": - version: 2.4.0 - resolution: "watchpack@npm:2.4.0" +"watchpack@npm:^2.4.1": + version: 2.4.2 + resolution: "watchpack@npm:2.4.2" dependencies: glob-to-regexp: ^0.4.1 graceful-fs: ^4.1.2 - checksum: 23d4bc58634dbe13b86093e01c6a68d8096028b664ab7139d58f0c37d962d549a940e98f2f201cecdabd6f9c340338dc73ef8bf094a2249ef582f35183d1a131 + checksum: 92d9d52ce3d16fd83ed6994d1dd66a4d146998882f4c362d37adfea9ab77748a5b4d1e0c65fa104797928b2d40f635efa8f9b925a6265428a69f1e1852ca3441 languageName: node linkType: hard @@ -7558,13 +7896,13 @@ __metadata: linkType: hard "webpack-cli@npm:^5.0.1": - version: 5.1.1 - resolution: "webpack-cli@npm:5.1.1" + version: 5.1.4 + resolution: "webpack-cli@npm:5.1.4" dependencies: "@discoveryjs/json-ext": ^0.5.0 - "@webpack-cli/configtest": ^2.1.0 - "@webpack-cli/info": ^2.0.1 - "@webpack-cli/serve": ^2.0.4 + "@webpack-cli/configtest": ^2.1.1 + "@webpack-cli/info": ^2.0.2 + "@webpack-cli/serve": ^2.0.5 colorette: ^2.0.14 commander: ^10.0.1 cross-spawn: ^7.0.3 @@ -7585,17 +7923,18 @@ __metadata: optional: true bin: webpack-cli: bin/cli.js - checksum: 7738e6a84a0098886e1e0c0fd0dab44b7dedfbb0580afbb5ef734c5109dcaee80140bebb5d9f4b40f425029563bb09bcbda8b08d904fa14e60ff632e6dcc8a17 + checksum: 3a4ad0d0342a6815c850ee4633cc2a8a5dae04f918e7847f180bf24ab400803cf8a8943707ffbed03eb20fe6ce647f996f60a2aade87b0b4a9954da3da172ce0 languageName: node linkType: hard "webpack-merge@npm:^5.7.3, webpack-merge@npm:^5.8.0": - version: 5.8.0 - resolution: "webpack-merge@npm:5.8.0" + version: 5.10.0 + resolution: "webpack-merge@npm:5.10.0" dependencies: clone-deep: ^4.0.1 + flat: ^5.0.2 wildcard: ^2.0.0 - checksum: 88786ab91013f1bd2a683834ff381be81c245a4b0f63304a5103e90f6653f44dab496a0768287f8531761f8ad957d1f9f3ccb2cb55df0de1bd9ee343e079da26 + checksum: 1fe8bf5309add7298e1ac72fb3f2090e1dfa80c48c7e79fa48aa60b5961332c7d0d61efa8851acb805e6b91a4584537a347bc106e05e9aec87fa4f7088c62f2f languageName: node linkType: hard @@ -7617,39 +7956,38 @@ __metadata: linkType: hard "webpack@npm:^5.76.1": - version: 5.83.1 - resolution: "webpack@npm:5.83.1" - dependencies: - "@types/eslint-scope": ^3.7.3 - "@types/estree": ^1.0.0 - "@webassemblyjs/ast": ^1.11.5 - "@webassemblyjs/wasm-edit": ^1.11.5 - "@webassemblyjs/wasm-parser": ^1.11.5 + version: 5.94.0 + resolution: "webpack@npm:5.94.0" + dependencies: + "@types/estree": ^1.0.5 + "@webassemblyjs/ast": ^1.12.1 + "@webassemblyjs/wasm-edit": ^1.12.1 + "@webassemblyjs/wasm-parser": ^1.12.1 acorn: ^8.7.1 - acorn-import-assertions: ^1.7.6 - browserslist: ^4.14.5 + acorn-import-attributes: ^1.9.5 + browserslist: ^4.21.10 chrome-trace-event: ^1.0.2 - enhanced-resolve: ^5.14.0 + enhanced-resolve: ^5.17.1 es-module-lexer: ^1.2.1 eslint-scope: 5.1.1 events: ^3.2.0 glob-to-regexp: ^0.4.1 - graceful-fs: ^4.2.9 + graceful-fs: ^4.2.11 json-parse-even-better-errors: ^2.3.1 loader-runner: ^4.2.0 mime-types: ^2.1.27 neo-async: ^2.6.2 - schema-utils: ^3.1.2 + schema-utils: ^3.2.0 tapable: ^2.1.1 - terser-webpack-plugin: ^5.3.7 - watchpack: ^2.4.0 + terser-webpack-plugin: ^5.3.10 + watchpack: ^2.4.1 webpack-sources: ^3.2.3 peerDependenciesMeta: webpack-cli: optional: true bin: webpack: bin/webpack.js - checksum: 219d5ef50380bc0fd3702ed17feddf13819d8173b78f7a5b857dc74ac177e63d1f79c050792754411cc088bbc02e0971b989efddadbb8e393cf27d64c0ad9ff8 + checksum: 6a3d667be304a69cd6dcb8d676bc29f47642c0d389af514cfcd646eaaa809961bc6989fc4b2621a717dfc461130f29c6e20006d62a32e012dafaa9517813a4e6 languageName: node linkType: hard @@ -7684,17 +8022,16 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.9": - version: 1.1.9 - resolution: "which-typed-array@npm:1.1.9" +"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15": + version: 1.1.15 + resolution: "which-typed-array@npm:1.1.15" dependencies: - available-typed-arrays: ^1.0.5 - call-bind: ^1.0.2 + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.7 for-each: ^0.3.3 gopd: ^1.0.1 - has-tostringtag: ^1.0.0 - is-typed-array: ^1.1.10 - checksum: fe0178ca44c57699ca2c0e657b64eaa8d2db2372a4e2851184f568f98c478ae3dc3fdb5f7e46c384487046b0cf9e23241423242b277e03e8ba3dabc7c84c98ef + has-tostringtag: ^1.0.2 + checksum: 65227dcbfadf5677aacc43ec84356d17b5500cb8b8753059bb4397de5cd0c2de681d24e1a7bd575633f976a95f88233abfd6549c2105ef4ebd58af8aa1807c75 languageName: node linkType: hard @@ -7727,10 +8064,10 @@ __metadata: languageName: node linkType: hard -"word-wrap@npm:^1.2.3": - version: 1.2.4 - resolution: "word-wrap@npm:1.2.4" - checksum: 8f1f2e0a397c0e074ca225ba9f67baa23f99293bc064e31355d426ae91b8b3f6b5f6c1fc9ae5e9141178bb362d563f55e62fd8d5c31f2a77e3ade56cb3e35bd1 +"word-wrap@npm:^1.2.5": + version: 1.2.5 + resolution: "word-wrap@npm:1.2.5" + checksum: f93ba3586fc181f94afdaff3a6fef27920b4b6d9eaefed0f428f8e07adea2a7f54a5f2830ce59406c8416f033f86902b91eb824072354645eea687dff3691ccb languageName: node linkType: hard @@ -7774,8 +8111,8 @@ __metadata: linkType: hard "ws@npm:^8.11.0": - version: 8.13.0 - resolution: "ws@npm:8.13.0" + version: 8.18.0 + resolution: "ws@npm:8.18.0" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -7784,16 +8121,18 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 53e991bbf928faf5dc6efac9b8eb9ab6497c69feeb94f963d648b7a3530a720b19ec2e0ec037344257e05a4f35bd9ad04d9de6f289615ffb133282031b18c61c + checksum: 91d4d35bc99ff6df483bdf029b9ea4bfd7af1f16fc91231a96777a63d263e1eabf486e13a2353970efc534f9faa43bdbf9ee76525af22f4752cbc5ebda333975 languageName: node linkType: hard "y-protocols@npm:^1.0.5": - version: 1.0.5 - resolution: "y-protocols@npm:1.0.5" + version: 1.0.6 + resolution: "y-protocols@npm:1.0.6" dependencies: - lib0: ^0.2.42 - checksum: d19404a4ebafcf3761c28b881abe8c32ab6e457db0e5ffc7dbb749cbc2c3bb98e003a43f3e8eba7f245b2698c76f2c4cdd1c2db869f8ec0c6ef94736d9a88652 + lib0: ^0.2.85 + peerDependencies: + yjs: ^13.0.0 + checksum: 4b57c8811befcf2e45c3d47830005f8a33e626c734f78a42fe8a4fa3caad2233ba85a7c8bceefbd52ffc40130d3f3faee664fd0d1c324ff1fa8817a056ccdc1c languageName: node linkType: hard @@ -7812,11 +8151,11 @@ __metadata: linkType: hard "yjs@npm:^13.5.40, yjs@npm:^13.6.1": - version: 13.6.1 - resolution: "yjs@npm:13.6.1" + version: 13.6.18 + resolution: "yjs@npm:13.6.18" dependencies: - lib0: ^0.2.74 - checksum: bf18ed3f53b4baed61363461b2567cf841f27c326ae107736bb46239fb7273d9d0ef71ea83ae792e96e406d074218d6666f2909a680214b940ada39b58545336 + lib0: ^0.2.86 + checksum: 5c9f8f31f5f9f30f17680a765b015e4274820fe10fb6bf6a7d39dee2ff0493a81ace02d11bff6f18c6799cade2bcfc9fc2d7b6ca8bc1eb167c4ac2f3789c0f01 languageName: node linkType: hard From 5a48105d5e859338fc596266620727b240fb62af Mon Sep 17 00:00:00 2001 From: Sunao Hara Date: Wed, 4 Sep 2024 05:41:05 +0900 Subject: [PATCH 06/28] Fix a bug of synctex edit command (#231) --- jupyterlab_latex/synctex.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/jupyterlab_latex/synctex.py b/jupyterlab_latex/synctex.py index dbf91bf..0f1a2d0 100644 --- a/jupyterlab_latex/synctex.py +++ b/jupyterlab_latex/synctex.py @@ -79,11 +79,13 @@ def build_synctex_edit_cmd(self, pdf_name, pos): """ c = LatexConfig(config=self.config) + pdf_path = os.path.join(self.notebook_dir, pdf_name+".pdf") + cmd = ( c.synctex_command, 'edit', '-o', - f'{pos["page"]}:{pos["x"]}:{pos["y"]}:{self.notebook_dir}/{pdf_name+".pdf"}' + f'{pos["page"]}:{pos["x"]}:{pos["y"]}:{pdf_path}' ) return cmd From d4cf54c1f124b5e7e1de81b053a33e5ebcd93e0d Mon Sep 17 00:00:00 2001 From: krassowski Date: Thu, 5 Sep 2024 10:59:05 +0000 Subject: [PATCH 07/28] Publish 4.1.1 SHA256 hashes: jupyterlab-latex-4.1.1.tgz: fc3739b5adead0c1c008fb389444ef4d2a40c5b07865cfd7c9c78d3e2bcc61f2 jupyterlab_latex-4.1.1-py3-none-any.whl: 602d16a5ec18f5d862284ddaa72f158ad784751fb5e652cab80bd11b0fc45c19 jupyterlab_latex-4.1.1.tar.gz: cf9f2360430310cf3131e5c591f9f66900657731ee9908d78f02f8d9a57373dc --- CHANGELOG.md | 18 ++ package.json | 454 +++++++++++++++++++++++++++------------------------ 2 files changed, 257 insertions(+), 215 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9efb10d..bd4339d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,24 @@ +## 4.1.1 + +([Full Changelog](https://github.com/jupyterlab/jupyterlab-latex/compare/v4.1.0...5a48105d5e859338fc596266620727b240fb62af)) + +### Enhancements made + +- Migrate to updated JupyterLab extension template [#230](https://github.com/jupyterlab/jupyterlab-latex/pull/230) ([@akisaini](https://github.com/akisaini)) + +### Bugs fixed + +- Fix a bug of synctex edit command [#231](https://github.com/jupyterlab/jupyterlab-latex/pull/231) ([@naoh16](https://github.com/naoh16)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyterlab-latex/graphs/contributors?from=2024-08-30&to=2024-09-04&type=c)) + +[@akisaini](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab-latex+involves%3Aakisaini+updated%3A2024-08-30..2024-09-04&type=Issues) | [@ktaletsk](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab-latex+involves%3Aktaletsk+updated%3A2024-08-30..2024-09-04&type=Issues) | [@naoh16](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab-latex+involves%3Anaoh16+updated%3A2024-08-30..2024-09-04&type=Issues) + - **4.1.0**: diff --git a/package.json b/package.json index 7ebce4e..0090c66 100644 --- a/package.json +++ b/package.json @@ -1,224 +1,248 @@ { - "name": "@jupyterlab/latex", - "version": "4.1.0", - "description": "JupyterLab extension for running LaTeX", - "keywords": ["jupyter", "jupyterlab", "jupyterlab-extension", "latex"], - "homepage": "https://github.com/jupyterlab/jupyterlab-latex", - "bugs": { - "url": "https://github.com/jupyterlab/jupyterlab-latex/issues" - }, - "license": "BSD-3-Clause", - "author": { - "name": "Jupyter Development Team", - "email": "jupyter@googlegroups.com" - }, - "files": [ - "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}", - "style/**/*.{css,js,eot,gif,html,jpg,json,png,svg,woff2,ttf}", - "schema/*.json", - "lib/*/*d.ts", - "lib/*/*.js", - "style/*.*", - "style/index.js" - ], - "directories": { - "lib": "lib/" - }, - "main": "lib/index.js", - "types": "lib/index.d.ts", - "style": "style/index.css", - "repository": { - "type": "git", - "url": "https://github.com/jupyterlab/jupyterlab-latex.git" - }, - "scripts": { - "build": "jlpm build:lib && jlpm build:labextension:dev", - "build:prod": "jlpm clean && jlpm build:lib:prod && jlpm build:labextension", - "build:labextension": "jupyter labextension build .", - "build:labextension:dev": "jupyter labextension build --development True .", - "build:lib": "tsc --sourceMap", - "build:lib:prod": "tsc", - "clean": "jlpm clean:lib", - "clean:lib": "rimraf lib tsconfig.tsbuildinfo", - "clean:lintcache": "rimraf .eslintcache .stylelintcache", - "clean:labextension": "rimraf jupyterlab_latex/labextension jupyterlab_latex/_version.py", - "clean:all": "jlpm clean:lib && jlpm clean:labextension && jlpm clean:lintcache", - "eslint": "jlpm eslint:check --fix", - "eslint:check": "eslint . --cache", - "install:extension": "jlpm build", - "lint": "jlpm stylelint && jlpm prettier && jlpm eslint", - "lint:check": "jlpm stylelint:check && jlpm prettier:check && jlpm eslint:check", - "prettier": "jlpm prettier:base --write --list-different", - "prettier:base": "prettier \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md}\"", - "prettier:check": "jlpm prettier:base --check", - "stylelint": "jlpm stylelint:check --fix", - "stylelint:check": "stylelint --cache \"style/**/*.css\"", - "watch": "run-p watch:src watch:labextension", - "watch:src": "tsc -w --sourceMap", - "watch:labextension": "jupyter labextension watch ." - }, - "dependencies": { - "@jupyterlab/application": "^4.0.0", - "@jupyterlab/apputils": "^4.0.0", - "@jupyterlab/codeeditor": "^4.0.0", - "@jupyterlab/coreutils": "^6.0.0", - "@jupyterlab/docmanager": "^4.0.0", - "@jupyterlab/docregistry": "^4.0.0", - "@jupyterlab/filebrowser": "^4.0.0", - "@jupyterlab/fileeditor": "^4.0.0", - "@jupyterlab/launcher": "^4.0.0", - "@jupyterlab/mainmenu": "^4.0.0", - "@jupyterlab/services": "^7.0.0", - "@jupyterlab/settingregistry": "^4.0.0", - "@jupyterlab/statedb": "^4.0.0", - "@jupyterlab/ui-components": "^4.0.0", - "@lumino/coreutils": "^2.1.1", - "@lumino/disposable": "^2.1.1", - "@lumino/domutils": "^2.0.0", - "@lumino/messaging": "^2.0.0", - "@lumino/signaling": "2.1.1", - "@lumino/widgets": "^2.1.1", - "pdfjs-dist": "2.4.456", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "yjs": "^13.6.1" - }, - "devDependencies": { - "@jupyterlab/builder": "^4.0.0", - "@types/json-schema": "^7.0.11", - "@types/react": "^18.2.6", - "@types/react-dom": "^18.2.4", - "@typescript-eslint/eslint-plugin": "^4.13.0", - "@typescript-eslint/parser": "^4.13.0", - "css-loader": "^6.7.1", - "eslint": "^7.5.0", - "eslint-config-prettier": "^6.10.1", - "eslint-plugin-prettier": "^3.1.2", - "husky": "^2.4.1", - "lint-staged": "^8.2.1", - "mkdirp": "^1.0.3", - "npm-run-all": "^4.1.5", - "prettier": "^2.8.7", - "rimraf": "^4.4.1", - "source-map-loader": "^1.0.2", - "style-loader": "^3.3.1", - "stylelint": "^15.10.1", - "stylelint-config-prettier": "^9.0.4", - "stylelint-config-recommended": "^8.0.0", - "stylelint-config-standard": "^26.0.0", - "stylelint-csstree-validator": "^3.0.0", - "stylelint-prettier": "^2.0.0", - "tslint": "^5.18.0", - "tslint-config-prettier": "^1.18.0", - "tslint-plugin-prettier": "^2.0.1", - "typescript": "~5.0.4" - }, - "sideEffects": ["style/*.css", "style/index.js"], - "styleModule": "style/index.js", - "publishConfig": { - "access": "public" - }, - "jupyterlab": { - "discovery": { - "server": { - "managers": ["pip"], - "base": { - "name": "jupyterlab_latex" - } - } + "name": "@jupyterlab/latex", + "version": "4.1.1", + "description": "JupyterLab extension for running LaTeX", + "keywords": [ + "jupyter", + "jupyterlab", + "jupyterlab-extension", + "latex" + ], + "homepage": "https://github.com/jupyterlab/jupyterlab-latex", + "bugs": { + "url": "https://github.com/jupyterlab/jupyterlab-latex/issues" }, - "extension": true, - "outputDir": "jupyterlab_latex/labextension", - "schemaDir": "schema", - "sharedPackages": { - "pdfjs-dist": { - "bundled": true, - "singleton": true, - "strictVersion": true - } - } - }, - "eslintIgnore": ["node_modules", "dist", "coverage", "**/*.d.ts"], - "eslintConfig": { - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - "plugin:prettier/recommended" + "license": "BSD-3-Clause", + "author": { + "name": "Jupyter Development Team", + "email": "jupyter@googlegroups.com" + }, + "files": [ + "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}", + "style/**/*.{css,js,eot,gif,html,jpg,json,png,svg,woff2,ttf}", + "schema/*.json", + "lib/*/*d.ts", + "lib/*/*.js", + "style/*.*", + "style/index.js" ], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "project": "tsconfig.json", - "sourceType": "module" + "directories": { + "lib": "lib/" }, - "plugins": ["@typescript-eslint"], - "rules": { - "@typescript-eslint/naming-convention": [ - "error", - { - "selector": "interface", - "format": ["PascalCase"], - "custom": { - "regex": "^I[A-Z]", - "match": true - } - } - ], - "@typescript-eslint/no-unused-vars": [ - "warn", - { - "args": "none" - } - ], - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/no-namespace": "off", - "@typescript-eslint/no-use-before-define": "off", - "@typescript-eslint/quotes": [ - "error", - "single", - { - "avoidEscape": true, - "allowTemplateLiterals": false + "main": "lib/index.js", + "types": "lib/index.d.ts", + "style": "style/index.css", + "repository": { + "type": "git", + "url": "https://github.com/jupyterlab/jupyterlab-latex.git" + }, + "scripts": { + "build": "jlpm build:lib && jlpm build:labextension:dev", + "build:prod": "jlpm clean && jlpm build:lib:prod && jlpm build:labextension", + "build:labextension": "jupyter labextension build .", + "build:labextension:dev": "jupyter labextension build --development True .", + "build:lib": "tsc --sourceMap", + "build:lib:prod": "tsc", + "clean": "jlpm clean:lib", + "clean:lib": "rimraf lib tsconfig.tsbuildinfo", + "clean:lintcache": "rimraf .eslintcache .stylelintcache", + "clean:labextension": "rimraf jupyterlab_latex/labextension jupyterlab_latex/_version.py", + "clean:all": "jlpm clean:lib && jlpm clean:labextension && jlpm clean:lintcache", + "eslint": "jlpm eslint:check --fix", + "eslint:check": "eslint . --cache", + "install:extension": "jlpm build", + "lint": "jlpm stylelint && jlpm prettier && jlpm eslint", + "lint:check": "jlpm stylelint:check && jlpm prettier:check && jlpm eslint:check", + "prettier": "jlpm prettier:base --write --list-different", + "prettier:base": "prettier \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md}\"", + "prettier:check": "jlpm prettier:base --check", + "stylelint": "jlpm stylelint:check --fix", + "stylelint:check": "stylelint --cache \"style/**/*.css\"", + "watch": "run-p watch:src watch:labextension", + "watch:src": "tsc -w --sourceMap", + "watch:labextension": "jupyter labextension watch ." + }, + "dependencies": { + "@jupyterlab/application": "^4.0.0", + "@jupyterlab/apputils": "^4.0.0", + "@jupyterlab/codeeditor": "^4.0.0", + "@jupyterlab/coreutils": "^6.0.0", + "@jupyterlab/docmanager": "^4.0.0", + "@jupyterlab/docregistry": "^4.0.0", + "@jupyterlab/filebrowser": "^4.0.0", + "@jupyterlab/fileeditor": "^4.0.0", + "@jupyterlab/launcher": "^4.0.0", + "@jupyterlab/mainmenu": "^4.0.0", + "@jupyterlab/services": "^7.0.0", + "@jupyterlab/settingregistry": "^4.0.0", + "@jupyterlab/statedb": "^4.0.0", + "@jupyterlab/ui-components": "^4.0.0", + "@lumino/coreutils": "^2.1.1", + "@lumino/disposable": "^2.1.1", + "@lumino/domutils": "^2.0.0", + "@lumino/messaging": "^2.0.0", + "@lumino/signaling": "2.1.1", + "@lumino/widgets": "^2.1.1", + "pdfjs-dist": "2.4.456", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "yjs": "^13.6.1" + }, + "devDependencies": { + "@jupyterlab/builder": "^4.0.0", + "@types/json-schema": "^7.0.11", + "@types/react": "^18.2.6", + "@types/react-dom": "^18.2.4", + "@typescript-eslint/eslint-plugin": "^4.13.0", + "@typescript-eslint/parser": "^4.13.0", + "css-loader": "^6.7.1", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.10.1", + "eslint-plugin-prettier": "^3.1.2", + "husky": "^2.4.1", + "lint-staged": "^8.2.1", + "mkdirp": "^1.0.3", + "npm-run-all": "^4.1.5", + "prettier": "^2.8.7", + "rimraf": "^4.4.1", + "source-map-loader": "^1.0.2", + "style-loader": "^3.3.1", + "stylelint": "^15.10.1", + "stylelint-config-prettier": "^9.0.4", + "stylelint-config-recommended": "^8.0.0", + "stylelint-config-standard": "^26.0.0", + "stylelint-csstree-validator": "^3.0.0", + "stylelint-prettier": "^2.0.0", + "tslint": "^5.18.0", + "tslint-config-prettier": "^1.18.0", + "tslint-plugin-prettier": "^2.0.1", + "typescript": "~5.0.4" + }, + "sideEffects": [ + "style/*.css", + "style/index.js" + ], + "styleModule": "style/index.js", + "publishConfig": { + "access": "public" + }, + "jupyterlab": { + "discovery": { + "server": { + "managers": [ + "pip" + ], + "base": { + "name": "jupyterlab_latex" + } + } + }, + "extension": true, + "outputDir": "jupyterlab_latex/labextension", + "schemaDir": "schema", + "sharedPackages": { + "pdfjs-dist": { + "bundled": true, + "singleton": true, + "strictVersion": true + } } - ], - "curly": ["error", "all"], - "eqeqeq": "error", - "prefer-arrow-callback": "error" - } - }, - "prettier": { - "singleQuote": true, - "trailingComma": "none", - "arrowParens": "avoid", - "endOfLine": "auto", - "overrides": [ - { - "files": "*.json", - "options": { - "parser": "json" + }, + "eslintIgnore": [ + "node_modules", + "dist", + "coverage", + "**/*.d.ts" + ], + "eslintConfig": { + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", + "plugin:prettier/recommended" + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "project": "tsconfig.json", + "sourceType": "module" + }, + "plugins": [ + "@typescript-eslint" + ], + "rules": { + "@typescript-eslint/naming-convention": [ + "error", + { + "selector": "interface", + "format": [ + "PascalCase" + ], + "custom": { + "regex": "^I[A-Z]", + "match": true + } + } + ], + "@typescript-eslint/no-unused-vars": [ + "warn", + { + "args": "none" + } + ], + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/no-use-before-define": "off", + "@typescript-eslint/quotes": [ + "error", + "single", + { + "avoidEscape": true, + "allowTemplateLiterals": false + } + ], + "curly": [ + "error", + "all" + ], + "eqeqeq": "error", + "prefer-arrow-callback": "error" } - }, - { - "files": "*.md", - "options": { - "parser": "markdown" + }, + "prettier": { + "singleQuote": true, + "trailingComma": "none", + "arrowParens": "avoid", + "endOfLine": "auto", + "overrides": [ + { + "files": "*.json", + "options": { + "parser": "json" + } + }, + { + "files": "*.md", + "options": { + "parser": "markdown" + } + } + ] + }, + "stylelint": { + "extends": [ + "stylelint-config-recommended", + "stylelint-config-standard", + "stylelint-prettier/recommended" + ], + "plugins": [ + "stylelint-csstree-validator" + ], + "rules": { + "csstree/validator": true, + "property-no-vendor-prefix": null, + "selector-class-pattern": "^([a-z][A-z\\d]*)(-[A-z\\d]+)*$", + "selector-no-vendor-prefix": null, + "value-no-vendor-prefix": null } - } - ] - }, - "stylelint": { - "extends": [ - "stylelint-config-recommended", - "stylelint-config-standard", - "stylelint-prettier/recommended" - ], - "plugins": ["stylelint-csstree-validator"], - "rules": { - "csstree/validator": true, - "property-no-vendor-prefix": null, - "selector-class-pattern": "^([a-z][A-z\\d]*)(-[A-z\\d]+)*$", - "selector-no-vendor-prefix": null, - "value-no-vendor-prefix": null } - } } From 9bf16578ab7763e62ea0ca055d7ec4584440ddef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Krassowski?= <5832902+krassowski@users.noreply.github.com> Date: Thu, 5 Sep 2024 12:10:39 +0100 Subject: [PATCH 08/28] Add missing comma (#233) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 026df4e..07e534a 100644 --- a/README.md +++ b/README.md @@ -163,4 +163,4 @@ With the watch command running, every saved change will immediately be built loc ## Changes -For information on the changes with different versions of the `jupyterlab-latex` library, see our [changelog](./CHANGELOG.md) +For information on the changes with different versions of the `jupyterlab-latex` library, see our [changelog](./CHANGELOG.md). From 9befa19d0d3d193c776ece1e431e7070c07957d9 Mon Sep 17 00:00:00 2001 From: krassowski Date: Thu, 5 Sep 2024 11:19:16 +0000 Subject: [PATCH 09/28] Publish 4.1.2 SHA256 hashes: jupyterlab-latex-4.1.2.tgz: 84cda78e1e0c97189c6e4d28afc2871f7abed3e7da1b9e7ba0feb62277d95119 jupyterlab_latex-4.1.2-py3-none-any.whl: 2247781c80f9cbdf0e69d54bc7775036d0741fd4df91c4c3826ea31621192724 jupyterlab_latex-4.1.2.tar.gz: e7e0c9e4ebe23f6a1a517e458668db822b4c115fbe918677d652def2b750aef3 --- CHANGELOG.md | 18 ++++++++++++++++-- package.json | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bd4339d..6867205 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,22 @@ +## 4.1.2 + +([Full Changelog](https://github.com/jupyterlab/jupyterlab-latex/compare/v4.1.1...9bf16578ab7763e62ea0ca055d7ec4584440ddef)) + +### Documentation improvements + +- Add missing comma [#233](https://github.com/jupyterlab/jupyterlab-latex/pull/233) ([@krassowski](https://github.com/krassowski)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyterlab-latex/graphs/contributors?from=2024-09-05&to=2024-09-05&type=c)) + +[@krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab-latex+involves%3Akrassowski+updated%3A2024-09-05..2024-09-05&type=Issues) + + + ## 4.1.1 ([Full Changelog](https://github.com/jupyterlab/jupyterlab-latex/compare/v4.1.0...5a48105d5e859338fc596266620727b240fb62af)) @@ -20,8 +36,6 @@ [@akisaini](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab-latex+involves%3Aakisaini+updated%3A2024-08-30..2024-09-04&type=Issues) | [@ktaletsk](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab-latex+involves%3Aktaletsk+updated%3A2024-08-30..2024-09-04&type=Issues) | [@naoh16](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab-latex+involves%3Anaoh16+updated%3A2024-08-30..2024-09-04&type=Issues) - - - **4.1.0**: - Migrate to [JupyterLab extension template](https://github.com/jupyterlab/extension-template) diff --git a/package.json b/package.json index 0090c66..9e5be8b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/latex", - "version": "4.1.1", + "version": "4.1.2", "description": "JupyterLab extension for running LaTeX", "keywords": [ "jupyter", From 3e490aa42608c5170c36b5dd8e641045b3cb9818 Mon Sep 17 00:00:00 2001 From: Konstantin Taletskiy Date: Thu, 5 Sep 2024 11:04:07 -0700 Subject: [PATCH 10/28] Update PDF.js to 3.8.162 (#232) * chore(deps): Bump pdfjs-dist from 2.4.456 to 2.16.105 * fix: use EventBus explicitly feat: update to new major version of pdfjs * chore: fix linting issues * fix: issue with package.json * chore: update typescript-eslint dependencies * chore: update typescript-eslint dependencies --- package.json | 476 +++++++++++++++++++++++++-------------------------- src/pdf.ts | 8 +- yarn.lock | 248 +++++++++++++++++---------- 3 files changed, 397 insertions(+), 335 deletions(-) diff --git a/package.json b/package.json index 9e5be8b..954addf 100644 --- a/package.json +++ b/package.json @@ -1,248 +1,248 @@ { - "name": "@jupyterlab/latex", - "version": "4.1.2", - "description": "JupyterLab extension for running LaTeX", - "keywords": [ - "jupyter", - "jupyterlab", - "jupyterlab-extension", - "latex" - ], - "homepage": "https://github.com/jupyterlab/jupyterlab-latex", - "bugs": { - "url": "https://github.com/jupyterlab/jupyterlab-latex/issues" - }, - "license": "BSD-3-Clause", - "author": { - "name": "Jupyter Development Team", - "email": "jupyter@googlegroups.com" + "name": "@jupyterlab/latex", + "version": "4.1.2", + "description": "JupyterLab extension for running LaTeX", + "keywords": [ + "jupyter", + "jupyterlab", + "jupyterlab-extension", + "latex" + ], + "homepage": "https://github.com/jupyterlab/jupyterlab-latex", + "bugs": { + "url": "https://github.com/jupyterlab/jupyterlab-latex/issues" + }, + "license": "BSD-3-Clause", + "author": { + "name": "Jupyter Development Team", + "email": "jupyter@googlegroups.com" + }, + "files": [ + "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}", + "style/**/*.{css,js,eot,gif,html,jpg,json,png,svg,woff2,ttf}", + "schema/*.json", + "lib/*/*d.ts", + "lib/*/*.js", + "style/*.*", + "style/index.js" + ], + "directories": { + "lib": "lib/" + }, + "main": "lib/index.js", + "types": "lib/index.d.ts", + "style": "style/index.css", + "repository": { + "type": "git", + "url": "https://github.com/jupyterlab/jupyterlab-latex.git" + }, + "scripts": { + "build": "jlpm build:lib && jlpm build:labextension:dev", + "build:prod": "jlpm clean && jlpm build:lib:prod && jlpm build:labextension", + "build:labextension": "jupyter labextension build .", + "build:labextension:dev": "jupyter labextension build --development True .", + "build:lib": "tsc --sourceMap", + "build:lib:prod": "tsc", + "clean": "jlpm clean:lib", + "clean:lib": "rimraf lib tsconfig.tsbuildinfo", + "clean:lintcache": "rimraf .eslintcache .stylelintcache", + "clean:labextension": "rimraf jupyterlab_latex/labextension jupyterlab_latex/_version.py", + "clean:all": "jlpm clean:lib && jlpm clean:labextension && jlpm clean:lintcache", + "eslint": "jlpm eslint:check --fix", + "eslint:check": "eslint . --cache", + "install:extension": "jlpm build", + "lint": "jlpm stylelint && jlpm prettier && jlpm eslint", + "lint:check": "jlpm stylelint:check && jlpm prettier:check && jlpm eslint:check", + "prettier": "jlpm prettier:base --write --list-different", + "prettier:base": "prettier \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md}\"", + "prettier:check": "jlpm prettier:base --check", + "stylelint": "jlpm stylelint:check --fix", + "stylelint:check": "stylelint --cache \"style/**/*.css\"", + "watch": "run-p watch:src watch:labextension", + "watch:src": "tsc -w --sourceMap", + "watch:labextension": "jupyter labextension watch ." + }, + "dependencies": { + "@jupyterlab/application": "^4.0.0", + "@jupyterlab/apputils": "^4.0.0", + "@jupyterlab/codeeditor": "^4.0.0", + "@jupyterlab/coreutils": "^6.0.0", + "@jupyterlab/docmanager": "^4.0.0", + "@jupyterlab/docregistry": "^4.0.0", + "@jupyterlab/filebrowser": "^4.0.0", + "@jupyterlab/fileeditor": "^4.0.0", + "@jupyterlab/launcher": "^4.0.0", + "@jupyterlab/mainmenu": "^4.0.0", + "@jupyterlab/services": "^7.0.0", + "@jupyterlab/settingregistry": "^4.0.0", + "@jupyterlab/statedb": "^4.0.0", + "@jupyterlab/ui-components": "^4.0.0", + "@lumino/coreutils": "^2.1.1", + "@lumino/disposable": "^2.1.1", + "@lumino/domutils": "^2.0.0", + "@lumino/messaging": "^2.0.0", + "@lumino/signaling": "2.1.1", + "@lumino/widgets": "^2.1.1", + "pdfjs-dist": "2.4.456", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "yjs": "^13.6.1" + }, + "devDependencies": { + "@jupyterlab/builder": "^4.0.0", + "@types/json-schema": "^7.0.11", + "@types/react": "^18.2.6", + "@types/react-dom": "^18.2.4", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", + "css-loader": "^6.7.1", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.10.1", + "eslint-plugin-prettier": "^3.1.2", + "husky": "^2.4.1", + "lint-staged": "^8.2.1", + "mkdirp": "^1.0.3", + "npm-run-all": "^4.1.5", + "prettier": "^2.8.7", + "rimraf": "^4.4.1", + "source-map-loader": "^1.0.2", + "style-loader": "^3.3.1", + "stylelint": "^15.10.1", + "stylelint-config-prettier": "^9.0.4", + "stylelint-config-recommended": "^8.0.0", + "stylelint-config-standard": "^26.0.0", + "stylelint-csstree-validator": "^3.0.0", + "stylelint-prettier": "^2.0.0", + "tslint": "^5.18.0", + "tslint-config-prettier": "^1.18.0", + "tslint-plugin-prettier": "^2.0.1", + "typescript": "~5.0.4" + }, + "sideEffects": [ + "style/*.css", + "style/index.js" + ], + "styleModule": "style/index.js", + "publishConfig": { + "access": "public" + }, + "jupyterlab": { + "discovery": { + "server": { + "managers": [ + "pip" + ], + "base": { + "name": "jupyterlab_latex" + } + } }, - "files": [ - "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}", - "style/**/*.{css,js,eot,gif,html,jpg,json,png,svg,woff2,ttf}", - "schema/*.json", - "lib/*/*d.ts", - "lib/*/*.js", - "style/*.*", - "style/index.js" + "extension": true, + "outputDir": "jupyterlab_latex/labextension", + "schemaDir": "schema", + "sharedPackages": { + "pdfjs-dist": { + "bundled": true, + "singleton": true, + "strictVersion": true + } + } + }, + "eslintIgnore": [ + "node_modules", + "dist", + "coverage", + "**/*.d.ts" + ], + "eslintConfig": { + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", + "plugin:prettier/recommended" ], - "directories": { - "lib": "lib/" - }, - "main": "lib/index.js", - "types": "lib/index.d.ts", - "style": "style/index.css", - "repository": { - "type": "git", - "url": "https://github.com/jupyterlab/jupyterlab-latex.git" + "parser": "@typescript-eslint/parser", + "parserOptions": { + "project": "tsconfig.json", + "sourceType": "module" }, - "scripts": { - "build": "jlpm build:lib && jlpm build:labextension:dev", - "build:prod": "jlpm clean && jlpm build:lib:prod && jlpm build:labextension", - "build:labextension": "jupyter labextension build .", - "build:labextension:dev": "jupyter labextension build --development True .", - "build:lib": "tsc --sourceMap", - "build:lib:prod": "tsc", - "clean": "jlpm clean:lib", - "clean:lib": "rimraf lib tsconfig.tsbuildinfo", - "clean:lintcache": "rimraf .eslintcache .stylelintcache", - "clean:labextension": "rimraf jupyterlab_latex/labextension jupyterlab_latex/_version.py", - "clean:all": "jlpm clean:lib && jlpm clean:labextension && jlpm clean:lintcache", - "eslint": "jlpm eslint:check --fix", - "eslint:check": "eslint . --cache", - "install:extension": "jlpm build", - "lint": "jlpm stylelint && jlpm prettier && jlpm eslint", - "lint:check": "jlpm stylelint:check && jlpm prettier:check && jlpm eslint:check", - "prettier": "jlpm prettier:base --write --list-different", - "prettier:base": "prettier \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md}\"", - "prettier:check": "jlpm prettier:base --check", - "stylelint": "jlpm stylelint:check --fix", - "stylelint:check": "stylelint --cache \"style/**/*.css\"", - "watch": "run-p watch:src watch:labextension", - "watch:src": "tsc -w --sourceMap", - "watch:labextension": "jupyter labextension watch ." - }, - "dependencies": { - "@jupyterlab/application": "^4.0.0", - "@jupyterlab/apputils": "^4.0.0", - "@jupyterlab/codeeditor": "^4.0.0", - "@jupyterlab/coreutils": "^6.0.0", - "@jupyterlab/docmanager": "^4.0.0", - "@jupyterlab/docregistry": "^4.0.0", - "@jupyterlab/filebrowser": "^4.0.0", - "@jupyterlab/fileeditor": "^4.0.0", - "@jupyterlab/launcher": "^4.0.0", - "@jupyterlab/mainmenu": "^4.0.0", - "@jupyterlab/services": "^7.0.0", - "@jupyterlab/settingregistry": "^4.0.0", - "@jupyterlab/statedb": "^4.0.0", - "@jupyterlab/ui-components": "^4.0.0", - "@lumino/coreutils": "^2.1.1", - "@lumino/disposable": "^2.1.1", - "@lumino/domutils": "^2.0.0", - "@lumino/messaging": "^2.0.0", - "@lumino/signaling": "2.1.1", - "@lumino/widgets": "^2.1.1", - "pdfjs-dist": "2.4.456", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "yjs": "^13.6.1" - }, - "devDependencies": { - "@jupyterlab/builder": "^4.0.0", - "@types/json-schema": "^7.0.11", - "@types/react": "^18.2.6", - "@types/react-dom": "^18.2.4", - "@typescript-eslint/eslint-plugin": "^4.13.0", - "@typescript-eslint/parser": "^4.13.0", - "css-loader": "^6.7.1", - "eslint": "^7.5.0", - "eslint-config-prettier": "^6.10.1", - "eslint-plugin-prettier": "^3.1.2", - "husky": "^2.4.1", - "lint-staged": "^8.2.1", - "mkdirp": "^1.0.3", - "npm-run-all": "^4.1.5", - "prettier": "^2.8.7", - "rimraf": "^4.4.1", - "source-map-loader": "^1.0.2", - "style-loader": "^3.3.1", - "stylelint": "^15.10.1", - "stylelint-config-prettier": "^9.0.4", - "stylelint-config-recommended": "^8.0.0", - "stylelint-config-standard": "^26.0.0", - "stylelint-csstree-validator": "^3.0.0", - "stylelint-prettier": "^2.0.0", - "tslint": "^5.18.0", - "tslint-config-prettier": "^1.18.0", - "tslint-plugin-prettier": "^2.0.1", - "typescript": "~5.0.4" - }, - "sideEffects": [ - "style/*.css", - "style/index.js" + "plugins": [ + "@typescript-eslint" ], - "styleModule": "style/index.js", - "publishConfig": { - "access": "public" - }, - "jupyterlab": { - "discovery": { - "server": { - "managers": [ - "pip" - ], - "base": { - "name": "jupyterlab_latex" - } - } - }, - "extension": true, - "outputDir": "jupyterlab_latex/labextension", - "schemaDir": "schema", - "sharedPackages": { - "pdfjs-dist": { - "bundled": true, - "singleton": true, - "strictVersion": true - } + "rules": { + "@typescript-eslint/naming-convention": [ + "error", + { + "selector": "interface", + "format": [ + "PascalCase" + ], + "custom": { + "regex": "^I[A-Z]", + "match": true + } } - }, - "eslintIgnore": [ - "node_modules", - "dist", - "coverage", - "**/*.d.ts" - ], - "eslintConfig": { - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - "plugin:prettier/recommended" - ], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "project": "tsconfig.json", - "sourceType": "module" - }, - "plugins": [ - "@typescript-eslint" - ], - "rules": { - "@typescript-eslint/naming-convention": [ - "error", - { - "selector": "interface", - "format": [ - "PascalCase" - ], - "custom": { - "regex": "^I[A-Z]", - "match": true - } - } - ], - "@typescript-eslint/no-unused-vars": [ - "warn", - { - "args": "none" - } - ], - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/no-namespace": "off", - "@typescript-eslint/no-use-before-define": "off", - "@typescript-eslint/quotes": [ - "error", - "single", - { - "avoidEscape": true, - "allowTemplateLiterals": false - } - ], - "curly": [ - "error", - "all" - ], - "eqeqeq": "error", - "prefer-arrow-callback": "error" + ], + "@typescript-eslint/no-unused-vars": [ + "warn", + { + "args": "none" } - }, - "prettier": { - "singleQuote": true, - "trailingComma": "none", - "arrowParens": "avoid", - "endOfLine": "auto", - "overrides": [ - { - "files": "*.json", - "options": { - "parser": "json" - } - }, - { - "files": "*.md", - "options": { - "parser": "markdown" - } - } - ] - }, - "stylelint": { - "extends": [ - "stylelint-config-recommended", - "stylelint-config-standard", - "stylelint-prettier/recommended" - ], - "plugins": [ - "stylelint-csstree-validator" - ], - "rules": { - "csstree/validator": true, - "property-no-vendor-prefix": null, - "selector-class-pattern": "^([a-z][A-z\\d]*)(-[A-z\\d]+)*$", - "selector-no-vendor-prefix": null, - "value-no-vendor-prefix": null + ], + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/no-use-before-define": "off", + "@typescript-eslint/quotes": [ + "error", + "single", + { + "avoidEscape": true, + "allowTemplateLiterals": false } + ], + "curly": [ + "error", + "all" + ], + "eqeqeq": "error", + "prefer-arrow-callback": "error" + } + }, + "prettier": { + "singleQuote": true, + "trailingComma": "none", + "arrowParens": "avoid", + "endOfLine": "auto", + "overrides": [ + { + "files": "*.json", + "options": { + "parser": "json" + } + }, + { + "files": "*.md", + "options": { + "parser": "markdown" + } + } + ] + }, + "stylelint": { + "extends": [ + "stylelint-config-recommended", + "stylelint-config-standard", + "stylelint-prettier/recommended" + ], + "plugins": [ + "stylelint-csstree-validator" + ], + "rules": { + "csstree/validator": true, + "property-no-vendor-prefix": null, + "selector-class-pattern": "^([a-z][A-z\\d]*)(-[A-z\\d]+)*$", + "selector-no-vendor-prefix": null, + "value-no-vendor-prefix": null } + } } diff --git a/src/pdf.ts b/src/pdf.ts index eb2eed4..ec55d2f 100644 --- a/src/pdf.ts +++ b/src/pdf.ts @@ -82,8 +82,12 @@ export class PDFJSViewer extends Widget { constructor(context: DocumentRegistry.Context) { super({ node: Private.createNode() }); this._pdfjsLoaded = Private.ensurePDFJS().then(pdfjsLib => { + const eventBus = new pdfjsLib.EventBus(); this._getDocument = pdfjsLib.getDocument; - this._viewer = new pdfjsLib.PDFViewer({ container: this.node }); + this._viewer = new pdfjsLib.PDFViewer({ + container: this.node, + eventBus: eventBus + }); }); this.context = context; @@ -648,7 +652,7 @@ namespace Private { return { ...(({ getDocument }) => ({ getDocument }))(lib), - ...(({ PDFViewer }) => ({ PDFViewer }))(viewer) + ...(({ PDFViewer, EventBus }) => ({ PDFViewer, EventBus }))(viewer) }; } } diff --git a/yarn.lock b/yarn.lock index 2addd1f..565297b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -352,6 +352,24 @@ __metadata: languageName: node linkType: hard +"@eslint-community/eslint-utils@npm:^4.4.0": + version: 4.4.0 + resolution: "@eslint-community/eslint-utils@npm:4.4.0" + dependencies: + eslint-visitor-keys: ^3.3.0 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.5.1": + version: 4.11.0 + resolution: "@eslint-community/regexpp@npm:4.11.0" + checksum: 97d2fe46690b69417a551bd19a3dc53b6d9590d2295c43cc4c4e44e64131af541e2f4a44d5c12e87de990403654d3dae9d33600081f3a2f0386b368abc9111ec + languageName: node + linkType: hard + "@eslint/eslintrc@npm:^0.4.3": version: 0.4.3 resolution: "@eslint/eslintrc@npm:0.4.3" @@ -813,8 +831,8 @@ __metadata: "@types/json-schema": ^7.0.11 "@types/react": ^18.2.6 "@types/react-dom": ^18.2.4 - "@typescript-eslint/eslint-plugin": ^4.13.0 - "@typescript-eslint/parser": ^4.13.0 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 css-loader: ^6.7.1 eslint: ^7.5.0 eslint-config-prettier: ^6.10.1 @@ -1528,7 +1546,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:^7.0.11, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.7, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:^7.0.11, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 @@ -1584,6 +1602,13 @@ __metadata: languageName: node linkType: hard +"@types/semver@npm:^7.5.0": + version: 7.5.8 + resolution: "@types/semver@npm:7.5.8" + checksum: ea6f5276f5b84c55921785a3a27a3cd37afee0111dfe2bcb3e03c31819c197c782598f17f0b150a69d453c9584cd14c4c4d7b9a55d2c5e6cacd4d66fdb3b3663 + languageName: node + linkType: hard + "@types/source-list-map@npm:*": version: 0.1.6 resolution: "@types/source-list-map@npm:0.1.6" @@ -1602,103 +1627,126 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^4.13.0": - version: 4.33.0 - resolution: "@typescript-eslint/eslint-plugin@npm:4.33.0" +"@typescript-eslint/eslint-plugin@npm:^6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.21.0" dependencies: - "@typescript-eslint/experimental-utils": 4.33.0 - "@typescript-eslint/scope-manager": 4.33.0 - debug: ^4.3.1 - functional-red-black-tree: ^1.0.1 - ignore: ^5.1.8 - regexpp: ^3.1.0 - semver: ^7.3.5 - tsutils: ^3.21.0 + "@eslint-community/regexpp": ^4.5.1 + "@typescript-eslint/scope-manager": 6.21.0 + "@typescript-eslint/type-utils": 6.21.0 + "@typescript-eslint/utils": 6.21.0 + "@typescript-eslint/visitor-keys": 6.21.0 + debug: ^4.3.4 + graphemer: ^1.4.0 + ignore: ^5.2.4 + natural-compare: ^1.4.0 + semver: ^7.5.4 + ts-api-utils: ^1.0.1 peerDependencies: - "@typescript-eslint/parser": ^4.0.0 - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: d74855d0a5ffe0b2f362ec02fcd9301d39a53fb4155b9bd0cb15a0a31d065143129ebf98df9d86af4b6f74de1d423a4c0d8c0095520844068117453afda5bc4f + checksum: 5ef2c502255e643e98051e87eb682c2a257e87afd8ec3b9f6274277615e1c2caf3131b352244cfb1987b8b2c415645eeacb9113fa841fc4c9b2ac46e8aed6efd languageName: node linkType: hard -"@typescript-eslint/experimental-utils@npm:4.33.0": - version: 4.33.0 - resolution: "@typescript-eslint/experimental-utils@npm:4.33.0" +"@typescript-eslint/parser@npm:^6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/parser@npm:6.21.0" dependencies: - "@types/json-schema": ^7.0.7 - "@typescript-eslint/scope-manager": 4.33.0 - "@typescript-eslint/types": 4.33.0 - "@typescript-eslint/typescript-estree": 4.33.0 - eslint-scope: ^5.1.1 - eslint-utils: ^3.0.0 + "@typescript-eslint/scope-manager": 6.21.0 + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/typescript-estree": 6.21.0 + "@typescript-eslint/visitor-keys": 6.21.0 + debug: ^4.3.4 peerDependencies: - eslint: "*" - checksum: f859800ada0884f92db6856f24efcb1d073ac9883ddc2b1aa9339f392215487895bed8447ebce3741e8141bb32e545244abef62b73193ba9a8a0527c523aabae + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 162fe3a867eeeffda7328bce32dae45b52283c68c8cb23258fb9f44971f761991af61f71b8c9fe1aa389e93dfe6386f8509c1273d870736c507d76dd40647b68 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^4.13.0": - version: 4.33.0 - resolution: "@typescript-eslint/parser@npm:4.33.0" +"@typescript-eslint/scope-manager@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/scope-manager@npm:6.21.0" dependencies: - "@typescript-eslint/scope-manager": 4.33.0 - "@typescript-eslint/types": 4.33.0 - "@typescript-eslint/typescript-estree": 4.33.0 - debug: ^4.3.1 - peerDependencies: - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 102457eae1acd516211098fea081c8a2ed728522bbda7f5a557b6ef23d88970514f9a0f6285d53fca134d3d4d7d17822b5d5e12438d5918df4d1f89cc9e67d57 + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/visitor-keys": 6.21.0 + checksum: 71028b757da9694528c4c3294a96cc80bc7d396e383a405eab3bc224cda7341b88e0fc292120b35d3f31f47beac69f7083196c70616434072fbcd3d3e62d3376 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:4.33.0": - version: 4.33.0 - resolution: "@typescript-eslint/scope-manager@npm:4.33.0" +"@typescript-eslint/type-utils@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/type-utils@npm:6.21.0" dependencies: - "@typescript-eslint/types": 4.33.0 - "@typescript-eslint/visitor-keys": 4.33.0 - checksum: 9a25fb7ba7c725ea7227a24d315b0f6aacbad002e2549a049edf723c1d3615c22f5c301f0d7d615b377f2cdf2f3519d97e79af0c459de6ef8d2aaf0906dff13e + "@typescript-eslint/typescript-estree": 6.21.0 + "@typescript-eslint/utils": 6.21.0 + debug: ^4.3.4 + ts-api-utils: ^1.0.1 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 77025473f4d80acf1fafcce99c5c283e557686a61861febeba9c9913331f8a41e930bf5cd8b7a54db502a57b6eb8ea6d155cbd4f41349ed00e3d7aeb1f477ddc languageName: node linkType: hard -"@typescript-eslint/types@npm:4.33.0": - version: 4.33.0 - resolution: "@typescript-eslint/types@npm:4.33.0" - checksum: 3baae1ca35872421b4eb60f5d3f3f32dc1d513f2ae0a67dee28c7d159fd7a43ed0d11a8a5a0f0c2d38507ffa036fc7c511cb0f18a5e8ac524b3ebde77390ec53 +"@typescript-eslint/types@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/types@npm:6.21.0" + checksum: 9501b47d7403417af95fc1fb72b2038c5ac46feac0e1598a46bcb43e56a606c387e9dcd8a2a0abe174c91b509f2d2a8078b093786219eb9a01ab2fbf9ee7b684 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:4.33.0": - version: 4.33.0 - resolution: "@typescript-eslint/typescript-estree@npm:4.33.0" +"@typescript-eslint/typescript-estree@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.21.0" dependencies: - "@typescript-eslint/types": 4.33.0 - "@typescript-eslint/visitor-keys": 4.33.0 - debug: ^4.3.1 - globby: ^11.0.3 - is-glob: ^4.0.1 - semver: ^7.3.5 - tsutils: ^3.21.0 + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/visitor-keys": 6.21.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + minimatch: 9.0.3 + semver: ^7.5.4 + ts-api-utils: ^1.0.1 peerDependenciesMeta: typescript: optional: true - checksum: 2566984390c76bd95f43240057215c068c69769e406e27aba41e9f21fd300074d6772e4983fa58fe61e80eb5550af1548d2e31e80550d92ba1d051bb00fe6f5c + checksum: dec02dc107c4a541e14fb0c96148f3764b92117c3b635db3a577b5a56fc48df7a556fa853fb82b07c0663b4bf2c484c9f245c28ba3e17e5cb0918ea4cab2ea21 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:4.33.0": - version: 4.33.0 - resolution: "@typescript-eslint/visitor-keys@npm:4.33.0" +"@typescript-eslint/utils@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/utils@npm:6.21.0" dependencies: - "@typescript-eslint/types": 4.33.0 - eslint-visitor-keys: ^2.0.0 - checksum: 59953e474ad4610c1aa23b2b1a964445e2c6201521da6367752f37939d854352bbfced5c04ea539274065e012b1337ba3ffa49c2647a240a4e87155378ba9873 + "@eslint-community/eslint-utils": ^4.4.0 + "@types/json-schema": ^7.0.12 + "@types/semver": ^7.5.0 + "@typescript-eslint/scope-manager": 6.21.0 + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/typescript-estree": 6.21.0 + semver: ^7.5.4 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + checksum: b129b3a4aebec8468259f4589985cb59ea808afbfdb9c54f02fad11e17d185e2bf72bb332f7c36ec3c09b31f18fc41368678b076323e6e019d06f74ee93f7bf2 + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.21.0" + dependencies: + "@typescript-eslint/types": 6.21.0 + eslint-visitor-keys: ^3.4.1 + checksum: 67c7e6003d5af042d8703d11538fca9d76899f0119130b373402819ae43f0bc90d18656aa7add25a24427ccf1a0efd0804157ba83b0d4e145f06107d7d1b7433 languageName: node linkType: hard @@ -2809,7 +2857,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^4.0.1, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.4": +"debug@npm:^4.0.1, debug@npm:^4.1.1, debug@npm:^4.3.4": version: 4.3.6 resolution: "debug@npm:4.3.6" dependencies: @@ -3282,17 +3330,6 @@ __metadata: languageName: node linkType: hard -"eslint-utils@npm:^3.0.0": - version: 3.0.0 - resolution: "eslint-utils@npm:3.0.0" - dependencies: - eslint-visitor-keys: ^2.0.0 - peerDependencies: - eslint: ">=5" - checksum: 0668fe02f5adab2e5a367eee5089f4c39033af20499df88fe4e6aba2015c20720404d8c3d6349b6f716b08fdf91b9da4e5d5481f265049278099c4c836ccb619 - languageName: node - linkType: hard - "eslint-visitor-keys@npm:^1.1.0, eslint-visitor-keys@npm:^1.3.0": version: 1.3.0 resolution: "eslint-visitor-keys@npm:1.3.0" @@ -3307,6 +3344,13 @@ __metadata: languageName: node linkType: hard +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 + languageName: node + linkType: hard + "eslint@npm:^7.5.0": version: 7.32.0 resolution: "eslint@npm:7.32.0" @@ -3938,7 +3982,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.0.3, globby@npm:^11.1.0": +"globby@npm:^11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: @@ -3988,6 +4032,13 @@ __metadata: languageName: node linkType: hard +"graphemer@npm:^1.4.0": + version: 1.4.0 + resolution: "graphemer@npm:1.4.0" + checksum: bab8f0be9b568857c7bec9fda95a89f87b783546d02951c40c33f84d05bb7da3fd10f863a9beb901463669b6583173a8c8cc6d6b306ea2b9b9d5d3d943c3a673 + languageName: node + linkType: hard + "hard-rejection@npm:^2.1.0": version: 2.1.0 resolution: "hard-rejection@npm:2.1.0" @@ -4185,7 +4236,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.1.8, ignore@npm:^5.2.0, ignore@npm:^5.2.4": +"ignore@npm:^5.2.0, ignore@npm:^5.2.4": version: 5.3.2 resolution: "ignore@npm:5.3.2" checksum: 2acfd32a573260ea522ea0bfeff880af426d68f6831f973129e2ba7363f422923cf53aab62f8369cbf4667c7b25b6f8a3761b34ecdb284ea18e87a5262a865be @@ -4473,7 +4524,7 @@ __metadata: languageName: node linkType: hard -"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1": +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3": version: 4.0.3 resolution: "is-glob@npm:4.0.3" dependencies: @@ -5357,6 +5408,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:9.0.3": + version: 9.0.3 + resolution: "minimatch@npm:9.0.3" + dependencies: + brace-expansion: ^2.0.1 + checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 + languageName: node + linkType: hard + "minimatch@npm:^3.0.4, minimatch@npm:^3.1.1": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -6632,7 +6692,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.2.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.4": +"semver@npm:^7.2.1, semver@npm:^7.3.4, semver@npm:^7.5.4": version: 7.6.3 resolution: "semver@npm:7.6.3" bin: @@ -7476,6 +7536,15 @@ __metadata: languageName: node linkType: hard +"ts-api-utils@npm:^1.0.1": + version: 1.3.0 + resolution: "ts-api-utils@npm:1.3.0" + peerDependencies: + typescript: ">=4.2.0" + checksum: c746ddabfdffbf16cb0b0db32bb287236a19e583057f8649ee7c49995bb776e1d3ef384685181c11a1a480369e022ca97512cb08c517b2d2bd82c83754c97012 + languageName: node + linkType: hard + "tslib@npm:^1.13.0, tslib@npm:^1.7.1, tslib@npm:^1.8.0, tslib@npm:^1.8.1, tslib@npm:^1.9.0": version: 1.14.1 resolution: "tslib@npm:1.14.1" @@ -7542,17 +7611,6 @@ __metadata: languageName: node linkType: hard -"tsutils@npm:^3.21.0": - version: 3.21.0 - resolution: "tsutils@npm:3.21.0" - dependencies: - tslib: ^1.8.1 - peerDependencies: - typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - checksum: 1843f4c1b2e0f975e08c4c21caa4af4f7f65a12ac1b81b3b8489366826259323feb3fc7a243123453d2d1a02314205a7634e048d4a8009921da19f99755cdc48 - languageName: node - linkType: hard - "type-check@npm:^0.4.0, type-check@npm:~0.4.0": version: 0.4.0 resolution: "type-check@npm:0.4.0" From 204faf7ba9c0cea7ceba1f2768a86619aea6d468 Mon Sep 17 00:00:00 2001 From: ktaletsk Date: Thu, 5 Sep 2024 18:19:25 +0000 Subject: [PATCH 11/28] Publish 4.1.3 SHA256 hashes: jupyterlab-latex-4.1.3.tgz: 28b02ef366053a09ca81cd7b7b3f33b5243a0683d161be0733b05a418ac236a8 jupyterlab_latex-4.1.3-py3-none-any.whl: 3f68885b9bf6286e8ed3f0146b22b5cb35f0b0cd81a632bc99af4efc79e3cc53 jupyterlab_latex-4.1.3.tar.gz: 4b512a1ca244bc22944197307fd7fac371239e017305c115a66dcd3b10ca0e76 --- CHANGELOG.md | 22 ++- package.json | 476 +++++++++++++++++++++++++-------------------------- 2 files changed, 258 insertions(+), 240 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6867205..d953c85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,26 @@ +## 4.1.3 + +([Full Changelog](https://github.com/jupyterlab/jupyterlab-latex/compare/v4.1.1...3e490aa42608c5170c36b5dd8e641045b3cb9818)) + +### Maintenance and upkeep improvements + +- Update PDF.js to 3.8.162 [#232](https://github.com/jupyterlab/jupyterlab-latex/pull/232) ([@ktaletsk](https://github.com/ktaletsk)) + +### Documentation improvements + +- Add missing comma [#233](https://github.com/jupyterlab/jupyterlab-latex/pull/233) ([@krassowski](https://github.com/krassowski)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyterlab-latex/graphs/contributors?from=2024-09-05&to=2024-09-05&type=c)) + +[@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab-latex+involves%3Agithub-actions+updated%3A2024-09-05..2024-09-05&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab-latex+involves%3Akrassowski+updated%3A2024-09-05..2024-09-05&type=Issues) | [@ktaletsk](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab-latex+involves%3Aktaletsk+updated%3A2024-09-05..2024-09-05&type=Issues) + + + ## 4.1.2 ([Full Changelog](https://github.com/jupyterlab/jupyterlab-latex/compare/v4.1.1...9bf16578ab7763e62ea0ca055d7ec4584440ddef)) @@ -16,8 +36,6 @@ [@krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab-latex+involves%3Akrassowski+updated%3A2024-09-05..2024-09-05&type=Issues) - - ## 4.1.1 ([Full Changelog](https://github.com/jupyterlab/jupyterlab-latex/compare/v4.1.0...5a48105d5e859338fc596266620727b240fb62af)) diff --git a/package.json b/package.json index 954addf..cd9b24d 100644 --- a/package.json +++ b/package.json @@ -1,248 +1,248 @@ { - "name": "@jupyterlab/latex", - "version": "4.1.2", - "description": "JupyterLab extension for running LaTeX", - "keywords": [ - "jupyter", - "jupyterlab", - "jupyterlab-extension", - "latex" - ], - "homepage": "https://github.com/jupyterlab/jupyterlab-latex", - "bugs": { - "url": "https://github.com/jupyterlab/jupyterlab-latex/issues" - }, - "license": "BSD-3-Clause", - "author": { - "name": "Jupyter Development Team", - "email": "jupyter@googlegroups.com" - }, - "files": [ - "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}", - "style/**/*.{css,js,eot,gif,html,jpg,json,png,svg,woff2,ttf}", - "schema/*.json", - "lib/*/*d.ts", - "lib/*/*.js", - "style/*.*", - "style/index.js" - ], - "directories": { - "lib": "lib/" - }, - "main": "lib/index.js", - "types": "lib/index.d.ts", - "style": "style/index.css", - "repository": { - "type": "git", - "url": "https://github.com/jupyterlab/jupyterlab-latex.git" - }, - "scripts": { - "build": "jlpm build:lib && jlpm build:labextension:dev", - "build:prod": "jlpm clean && jlpm build:lib:prod && jlpm build:labextension", - "build:labextension": "jupyter labextension build .", - "build:labextension:dev": "jupyter labextension build --development True .", - "build:lib": "tsc --sourceMap", - "build:lib:prod": "tsc", - "clean": "jlpm clean:lib", - "clean:lib": "rimraf lib tsconfig.tsbuildinfo", - "clean:lintcache": "rimraf .eslintcache .stylelintcache", - "clean:labextension": "rimraf jupyterlab_latex/labextension jupyterlab_latex/_version.py", - "clean:all": "jlpm clean:lib && jlpm clean:labextension && jlpm clean:lintcache", - "eslint": "jlpm eslint:check --fix", - "eslint:check": "eslint . --cache", - "install:extension": "jlpm build", - "lint": "jlpm stylelint && jlpm prettier && jlpm eslint", - "lint:check": "jlpm stylelint:check && jlpm prettier:check && jlpm eslint:check", - "prettier": "jlpm prettier:base --write --list-different", - "prettier:base": "prettier \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md}\"", - "prettier:check": "jlpm prettier:base --check", - "stylelint": "jlpm stylelint:check --fix", - "stylelint:check": "stylelint --cache \"style/**/*.css\"", - "watch": "run-p watch:src watch:labextension", - "watch:src": "tsc -w --sourceMap", - "watch:labextension": "jupyter labextension watch ." - }, - "dependencies": { - "@jupyterlab/application": "^4.0.0", - "@jupyterlab/apputils": "^4.0.0", - "@jupyterlab/codeeditor": "^4.0.0", - "@jupyterlab/coreutils": "^6.0.0", - "@jupyterlab/docmanager": "^4.0.0", - "@jupyterlab/docregistry": "^4.0.0", - "@jupyterlab/filebrowser": "^4.0.0", - "@jupyterlab/fileeditor": "^4.0.0", - "@jupyterlab/launcher": "^4.0.0", - "@jupyterlab/mainmenu": "^4.0.0", - "@jupyterlab/services": "^7.0.0", - "@jupyterlab/settingregistry": "^4.0.0", - "@jupyterlab/statedb": "^4.0.0", - "@jupyterlab/ui-components": "^4.0.0", - "@lumino/coreutils": "^2.1.1", - "@lumino/disposable": "^2.1.1", - "@lumino/domutils": "^2.0.0", - "@lumino/messaging": "^2.0.0", - "@lumino/signaling": "2.1.1", - "@lumino/widgets": "^2.1.1", - "pdfjs-dist": "2.4.456", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "yjs": "^13.6.1" - }, - "devDependencies": { - "@jupyterlab/builder": "^4.0.0", - "@types/json-schema": "^7.0.11", - "@types/react": "^18.2.6", - "@types/react-dom": "^18.2.4", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "css-loader": "^6.7.1", - "eslint": "^7.5.0", - "eslint-config-prettier": "^6.10.1", - "eslint-plugin-prettier": "^3.1.2", - "husky": "^2.4.1", - "lint-staged": "^8.2.1", - "mkdirp": "^1.0.3", - "npm-run-all": "^4.1.5", - "prettier": "^2.8.7", - "rimraf": "^4.4.1", - "source-map-loader": "^1.0.2", - "style-loader": "^3.3.1", - "stylelint": "^15.10.1", - "stylelint-config-prettier": "^9.0.4", - "stylelint-config-recommended": "^8.0.0", - "stylelint-config-standard": "^26.0.0", - "stylelint-csstree-validator": "^3.0.0", - "stylelint-prettier": "^2.0.0", - "tslint": "^5.18.0", - "tslint-config-prettier": "^1.18.0", - "tslint-plugin-prettier": "^2.0.1", - "typescript": "~5.0.4" - }, - "sideEffects": [ - "style/*.css", - "style/index.js" - ], - "styleModule": "style/index.js", - "publishConfig": { - "access": "public" - }, - "jupyterlab": { - "discovery": { - "server": { - "managers": [ - "pip" - ], - "base": { - "name": "jupyterlab_latex" - } - } + "name": "@jupyterlab/latex", + "version": "4.1.3", + "description": "JupyterLab extension for running LaTeX", + "keywords": [ + "jupyter", + "jupyterlab", + "jupyterlab-extension", + "latex" + ], + "homepage": "https://github.com/jupyterlab/jupyterlab-latex", + "bugs": { + "url": "https://github.com/jupyterlab/jupyterlab-latex/issues" }, - "extension": true, - "outputDir": "jupyterlab_latex/labextension", - "schemaDir": "schema", - "sharedPackages": { - "pdfjs-dist": { - "bundled": true, - "singleton": true, - "strictVersion": true - } - } - }, - "eslintIgnore": [ - "node_modules", - "dist", - "coverage", - "**/*.d.ts" - ], - "eslintConfig": { - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - "plugin:prettier/recommended" + "license": "BSD-3-Clause", + "author": { + "name": "Jupyter Development Team", + "email": "jupyter@googlegroups.com" + }, + "files": [ + "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}", + "style/**/*.{css,js,eot,gif,html,jpg,json,png,svg,woff2,ttf}", + "schema/*.json", + "lib/*/*d.ts", + "lib/*/*.js", + "style/*.*", + "style/index.js" ], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "project": "tsconfig.json", - "sourceType": "module" + "directories": { + "lib": "lib/" + }, + "main": "lib/index.js", + "types": "lib/index.d.ts", + "style": "style/index.css", + "repository": { + "type": "git", + "url": "https://github.com/jupyterlab/jupyterlab-latex.git" }, - "plugins": [ - "@typescript-eslint" + "scripts": { + "build": "jlpm build:lib && jlpm build:labextension:dev", + "build:prod": "jlpm clean && jlpm build:lib:prod && jlpm build:labextension", + "build:labextension": "jupyter labextension build .", + "build:labextension:dev": "jupyter labextension build --development True .", + "build:lib": "tsc --sourceMap", + "build:lib:prod": "tsc", + "clean": "jlpm clean:lib", + "clean:lib": "rimraf lib tsconfig.tsbuildinfo", + "clean:lintcache": "rimraf .eslintcache .stylelintcache", + "clean:labextension": "rimraf jupyterlab_latex/labextension jupyterlab_latex/_version.py", + "clean:all": "jlpm clean:lib && jlpm clean:labextension && jlpm clean:lintcache", + "eslint": "jlpm eslint:check --fix", + "eslint:check": "eslint . --cache", + "install:extension": "jlpm build", + "lint": "jlpm stylelint && jlpm prettier && jlpm eslint", + "lint:check": "jlpm stylelint:check && jlpm prettier:check && jlpm eslint:check", + "prettier": "jlpm prettier:base --write --list-different", + "prettier:base": "prettier \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md}\"", + "prettier:check": "jlpm prettier:base --check", + "stylelint": "jlpm stylelint:check --fix", + "stylelint:check": "stylelint --cache \"style/**/*.css\"", + "watch": "run-p watch:src watch:labextension", + "watch:src": "tsc -w --sourceMap", + "watch:labextension": "jupyter labextension watch ." + }, + "dependencies": { + "@jupyterlab/application": "^4.0.0", + "@jupyterlab/apputils": "^4.0.0", + "@jupyterlab/codeeditor": "^4.0.0", + "@jupyterlab/coreutils": "^6.0.0", + "@jupyterlab/docmanager": "^4.0.0", + "@jupyterlab/docregistry": "^4.0.0", + "@jupyterlab/filebrowser": "^4.0.0", + "@jupyterlab/fileeditor": "^4.0.0", + "@jupyterlab/launcher": "^4.0.0", + "@jupyterlab/mainmenu": "^4.0.0", + "@jupyterlab/services": "^7.0.0", + "@jupyterlab/settingregistry": "^4.0.0", + "@jupyterlab/statedb": "^4.0.0", + "@jupyterlab/ui-components": "^4.0.0", + "@lumino/coreutils": "^2.1.1", + "@lumino/disposable": "^2.1.1", + "@lumino/domutils": "^2.0.0", + "@lumino/messaging": "^2.0.0", + "@lumino/signaling": "2.1.1", + "@lumino/widgets": "^2.1.1", + "pdfjs-dist": "2.4.456", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "yjs": "^13.6.1" + }, + "devDependencies": { + "@jupyterlab/builder": "^4.0.0", + "@types/json-schema": "^7.0.11", + "@types/react": "^18.2.6", + "@types/react-dom": "^18.2.4", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", + "css-loader": "^6.7.1", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.10.1", + "eslint-plugin-prettier": "^3.1.2", + "husky": "^2.4.1", + "lint-staged": "^8.2.1", + "mkdirp": "^1.0.3", + "npm-run-all": "^4.1.5", + "prettier": "^2.8.7", + "rimraf": "^4.4.1", + "source-map-loader": "^1.0.2", + "style-loader": "^3.3.1", + "stylelint": "^15.10.1", + "stylelint-config-prettier": "^9.0.4", + "stylelint-config-recommended": "^8.0.0", + "stylelint-config-standard": "^26.0.0", + "stylelint-csstree-validator": "^3.0.0", + "stylelint-prettier": "^2.0.0", + "tslint": "^5.18.0", + "tslint-config-prettier": "^1.18.0", + "tslint-plugin-prettier": "^2.0.1", + "typescript": "~5.0.4" + }, + "sideEffects": [ + "style/*.css", + "style/index.js" ], - "rules": { - "@typescript-eslint/naming-convention": [ - "error", - { - "selector": "interface", - "format": [ - "PascalCase" - ], - "custom": { - "regex": "^I[A-Z]", - "match": true - } - } - ], - "@typescript-eslint/no-unused-vars": [ - "warn", - { - "args": "none" - } - ], - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/no-namespace": "off", - "@typescript-eslint/no-use-before-define": "off", - "@typescript-eslint/quotes": [ - "error", - "single", - { - "avoidEscape": true, - "allowTemplateLiterals": false + "styleModule": "style/index.js", + "publishConfig": { + "access": "public" + }, + "jupyterlab": { + "discovery": { + "server": { + "managers": [ + "pip" + ], + "base": { + "name": "jupyterlab_latex" + } + } + }, + "extension": true, + "outputDir": "jupyterlab_latex/labextension", + "schemaDir": "schema", + "sharedPackages": { + "pdfjs-dist": { + "bundled": true, + "singleton": true, + "strictVersion": true + } } - ], - "curly": [ - "error", - "all" - ], - "eqeqeq": "error", - "prefer-arrow-callback": "error" - } - }, - "prettier": { - "singleQuote": true, - "trailingComma": "none", - "arrowParens": "avoid", - "endOfLine": "auto", - "overrides": [ - { - "files": "*.json", - "options": { - "parser": "json" + }, + "eslintIgnore": [ + "node_modules", + "dist", + "coverage", + "**/*.d.ts" + ], + "eslintConfig": { + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", + "plugin:prettier/recommended" + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "project": "tsconfig.json", + "sourceType": "module" + }, + "plugins": [ + "@typescript-eslint" + ], + "rules": { + "@typescript-eslint/naming-convention": [ + "error", + { + "selector": "interface", + "format": [ + "PascalCase" + ], + "custom": { + "regex": "^I[A-Z]", + "match": true + } + } + ], + "@typescript-eslint/no-unused-vars": [ + "warn", + { + "args": "none" + } + ], + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/no-use-before-define": "off", + "@typescript-eslint/quotes": [ + "error", + "single", + { + "avoidEscape": true, + "allowTemplateLiterals": false + } + ], + "curly": [ + "error", + "all" + ], + "eqeqeq": "error", + "prefer-arrow-callback": "error" } - }, - { - "files": "*.md", - "options": { - "parser": "markdown" + }, + "prettier": { + "singleQuote": true, + "trailingComma": "none", + "arrowParens": "avoid", + "endOfLine": "auto", + "overrides": [ + { + "files": "*.json", + "options": { + "parser": "json" + } + }, + { + "files": "*.md", + "options": { + "parser": "markdown" + } + } + ] + }, + "stylelint": { + "extends": [ + "stylelint-config-recommended", + "stylelint-config-standard", + "stylelint-prettier/recommended" + ], + "plugins": [ + "stylelint-csstree-validator" + ], + "rules": { + "csstree/validator": true, + "property-no-vendor-prefix": null, + "selector-class-pattern": "^([a-z][A-z\\d]*)(-[A-z\\d]+)*$", + "selector-no-vendor-prefix": null, + "value-no-vendor-prefix": null } - } - ] - }, - "stylelint": { - "extends": [ - "stylelint-config-recommended", - "stylelint-config-standard", - "stylelint-prettier/recommended" - ], - "plugins": [ - "stylelint-csstree-validator" - ], - "rules": { - "csstree/validator": true, - "property-no-vendor-prefix": null, - "selector-class-pattern": "^([a-z][A-z\\d]*)(-[A-z\\d]+)*$", - "selector-no-vendor-prefix": null, - "value-no-vendor-prefix": null } - } } From 5c6e405b77db6eb4136a216d9d9f3d5890ed8e01 Mon Sep 17 00:00:00 2001 From: Konstantin Taletskiy Date: Thu, 5 Sep 2024 14:12:49 -0700 Subject: [PATCH 12/28] Update README.md --- README.md | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 07e534a..2800008 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,15 @@ # JupyterLab LaTeX - -| build | stable | latest | -| :---------------: | :------------------------------: | :------------------------------: | -| [![ci-badge]][ci] | [![binder-badge]][binder-stable] | [![binder-badge]][binder-latest] | - -[ci-badge]: https://github.com/jupyterlab/jupyterlab-latex/actions/workflows/build.yml/badge.svg -[ci]: https://github.com/jupyterlab/jupyterlab-latex/actions/workflows/build.yml?query=branch/master [binder-badge]: https://mybinder.org/badge_logo.svg -[binder-stable]: https://mybinder.org/v2/gh/jupyterlab/jupyterlab-latex.git/3.1.0?urlpath=lab/tree/sample.tex [binder-latest]: https://mybinder.org/v2/gh/jupyterlab/jupyterlab-latex.git/master?urlpath=lab/tree/sample.tex +[ci-badge]: https://github.com/jupyterlab/jupyterlab-latex/actions/workflows/build.yml/badge.svg +[ci]: https://github.com/jupyterlab/jupyterlab-latex/actions/workflows/build.yml?query=branch/master +[npm-version-badge]: https://img.shields.io/npm/v/@jupyterlab/latex.svg +[npm-version]: https://www.npmjs.com/package/@jupyterlab/latex +[pypi-version-badge]: https://img.shields.io/pypi/v/jupyterlab-latex.svg +[pypi-version]: https://pypi.org/project/jupyterlab-latex +[pypi-downloads-badge]: https://img.shields.io/pypi/dm/jupyterlab-latex + +[![binder-badge]][binder-latest] [![ci-badge]][ci] [![npm-version-badge]][npm-version] [![pypi-version-badge]][pypi-version] ![PyPI - Downloads](https://img.shields.io/pypi/dm/jupyterlab-latex) [![Version](https://img.shields.io/conda/vn/conda-forge/jupyterlab-latex.svg)](https://anaconda.org/conda-forge/jupyterlab-latex) ![Conda Downloads](https://img.shields.io/conda/d/conda-forge/jupyterlab-latex) An extension for JupyterLab which allows for live-editing of LaTeX documents. @@ -35,13 +36,18 @@ For more advanced usage documentation, see [here](docs/advanced.md). This extension includes both a notebook server extension (which interfaces with the LaTeX compiler) and a lab extension (which provides the UI for the LaTeX preview). -The Python package named `jupyterlab_latex` provides both of them as a prebuilt extension. +The Python package named `jupyterlab-latex` provides both of them as a prebuilt extension. To install the extension, run the following in your terminal: -```bash -pip install jupyterlab_latex -``` +- For `pip` + ```bash + pip install jupyterlab-latex + ``` +- For `conda` + ```bash + conda install conda-forge::jupyterlab-latex + ``` ### Check installation @@ -57,7 +63,7 @@ and see the block like this in the output jupyterlab_latex enabled - Validating jupyterlab_latex... Package jupyterlab_latex took 0.0010s to import - jupyterlab_latex 4.1.0 OK + jupyterlab_latex 4.1.3 OK ``` then @@ -69,7 +75,7 @@ jupyter labextension list and see the block like this in the output ``` -@jupyterlab/latex v3.1.0 enabled OK (python, jupyterlab-latex) +@jupyterlab/latex v4.1.3 enabled OK (python, jupyterlab-latex) ``` ## Customization From 8990b48f188f40f124a318201b46cac55130b554 Mon Sep 17 00:00:00 2001 From: Konstantin Taletskiy Date: Thu, 5 Sep 2024 14:26:26 -0700 Subject: [PATCH 13/28] fix: prettier constraints (#234) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2800008..dcc24db 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # JupyterLab LaTeX + [binder-badge]: https://mybinder.org/badge_logo.svg [binder-latest]: https://mybinder.org/v2/gh/jupyterlab/jupyterlab-latex.git/master?urlpath=lab/tree/sample.tex [ci-badge]: https://github.com/jupyterlab/jupyterlab-latex/actions/workflows/build.yml/badge.svg @@ -46,7 +47,7 @@ To install the extension, run the following in your terminal: ``` - For `conda` ```bash - conda install conda-forge::jupyterlab-latex + conda install conda-forge::jupyterlab-latex ``` ### Check installation From 6b54029a4e756393ddd915a6b533aa638fb19177 Mon Sep 17 00:00:00 2001 From: Konstantin Taletskiy Date: Fri, 6 Sep 2024 15:29:37 -0700 Subject: [PATCH 14/28] docs: improve JupyterLab LaTeX extension description and logo (#236) --- README.md | 2 +- images/show_preview.png | Bin 81336 -> 641262 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dcc24db..ed784c7 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ [![binder-badge]][binder-latest] [![ci-badge]][ci] [![npm-version-badge]][npm-version] [![pypi-version-badge]][pypi-version] ![PyPI - Downloads](https://img.shields.io/pypi/dm/jupyterlab-latex) [![Version](https://img.shields.io/conda/vn/conda-forge/jupyterlab-latex.svg)](https://anaconda.org/conda-forge/jupyterlab-latex) ![Conda Downloads](https://img.shields.io/conda/d/conda-forge/jupyterlab-latex) -An extension for JupyterLab which allows for live-editing of LaTeX documents. +A JupyterLab extension for live-editing of LaTeX documents. ## Usage diff --git a/images/show_preview.png b/images/show_preview.png index 23c7a1abcef9dc30f4feceaa4b619ac777c5b9cd..f040d59bd95dd0835e164934cf2d98e735bd00e8 100644 GIT binary patch literal 641262 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%0Aa`L&iT$A~^|IeH>6=$sO3{w-ms-$~j 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 literal 81336 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 OCnv2eRV8T>{C@y?yM!VD From 14638709daf75bbbfb5c92a8f18c7e3832f131e6 Mon Sep 17 00:00:00 2001 From: Konstantin Taletskiy Date: Sat, 7 Sep 2024 09:49:41 -0700 Subject: [PATCH 15/28] feat: make extension compatible with custom drives (#235) --- src/index.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index 748e674..b8b3818 100644 --- a/src/index.ts +++ b/src/index.ts @@ -335,7 +335,13 @@ function activateLatexPlugin( return Promise.resolve(void 0); } pending = true; - return latexBuildRequest(texContext!.path, synctex, serverSettings) + + /** Get the local file path without any drive prefix potentially added by + * other extensions like jupyter-collaboration + */ + const localPath = app.serviceManager.contents.localPath(texContext!.path); + + return latexBuildRequest(localPath, synctex, serverSettings) .then(() => { // Read the pdf file contents from disk. pdfContext ? pdfContext.revert() : findOpenOrRevealPDF(); From c3d3d8e0ed1c8c69105a8bbc0d48858c6203af67 Mon Sep 17 00:00:00 2001 From: Sunao Hara Date: Tue, 10 Sep 2024 08:40:43 +0900 Subject: [PATCH 16/28] Use root_dir configuraion (#237) * replace notebook_dir with root_dir * Append debug lines for build commands --- jupyterlab_latex/__init__.py | 4 ++-- jupyterlab_latex/build.py | 11 ++++++++--- jupyterlab_latex/synctex.py | 13 +++++++------ 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/jupyterlab_latex/__init__.py b/jupyterlab_latex/__init__.py index 40a76ad..03188bd 100644 --- a/jupyterlab_latex/__init__.py +++ b/jupyterlab_latex/__init__.py @@ -47,11 +47,11 @@ def load_jupyter_server_extension(nb_server_app): handlers = [(f'{build}{path_regex}', LatexBuildHandler, - {"notebook_dir": nb_server_app.notebook_dir} + {"root_dir": nb_server_app.root_dir} ), (f'{synctex}{path_regex}', LatexSynctexHandler, - {"notebook_dir": nb_server_app.notebook_dir} + {"root_dir": nb_server_app.root_dir} )] web_app.add_handlers('.*$', handlers) diff --git a/jupyterlab_latex/build.py b/jupyterlab_latex/build.py index b763fd4..713340d 100644 --- a/jupyterlab_latex/build.py +++ b/jupyterlab_latex/build.py @@ -64,8 +64,8 @@ class LatexBuildHandler(APIHandler): A handler that runs LaTeX on the server. """ - def initialize(self, notebook_dir): - self.notebook_dir = notebook_dir + def initialize(self, root_dir): + self.root_dir = root_dir def build_tex_cmd_sequence(self, tex_base_name, run_bibtex=False): @@ -162,6 +162,8 @@ def run_latex(self, command_sequence): """ for cmd in command_sequence: + self.log.debug(f'jupyterlab-latex: run: {" ".join(cmd)} (CWD: {os.getcwd()})') + code, output = yield run_command(cmd) if code != 0: self.set_status(500) @@ -179,10 +181,13 @@ def get(self, path = ''): Given a path, run LaTeX, cleanup, and respond when done. """ # Parse the path into the base name and extension of the file - tex_file_path = os.path.join(self.notebook_dir, path.strip('/')) + tex_file_path = os.path.join(self.root_dir, path.strip('/')) tex_base_name, ext = os.path.splitext(os.path.basename(tex_file_path)) c = LatexConfig(config=self.config) + self.log.debug((f"jupyterlab-latex: get: path=({path}), " + f"CWD=({os.getcwd()}), root_dir=({self.serverapp.root_dir})")) + if not os.path.exists(tex_file_path): self.set_status(403) out = f"Request cannot be completed; no file at `{tex_file_path}`." diff --git a/jupyterlab_latex/synctex.py b/jupyterlab_latex/synctex.py index 0f1a2d0..72f62e8 100644 --- a/jupyterlab_latex/synctex.py +++ b/jupyterlab_latex/synctex.py @@ -16,8 +16,8 @@ class LatexSynctexHandler(APIHandler): A handler that runs synctex on the server. """ - def initialize(self, notebook_dir): - self.notebook_dir = notebook_dir + def initialize(self, root_dir): + self.root_dir = root_dir def build_synctex_cmd(self, base_name, ext): @@ -79,7 +79,7 @@ def build_synctex_edit_cmd(self, pdf_name, pos): """ c = LatexConfig(config=self.config) - pdf_path = os.path.join(self.notebook_dir, pdf_name+".pdf") + pdf_path = os.path.join(self.root_dir, pdf_name+".pdf") cmd = ( c.synctex_command, @@ -107,8 +107,8 @@ def build_synctex_view_cmd(self, tex_name, pos): """ c = LatexConfig(config=self.config) - pdf_path = os.path.join(self.notebook_dir, tex_name+".pdf") - tex_path = os.path.join(self.notebook_dir, tex_name+".tex") + pdf_path = os.path.join(self.root_dir, tex_name+".pdf") + tex_path = os.path.join(self.root_dir, tex_name+".tex") cmd = ( c.synctex_command, @@ -145,6 +145,7 @@ def run_synctex(self, cmd): there. """ + self.log.debug(f'jupyterlab-latex: run: {" ".join(cmd)} (CWD: {os.getcwd()})') code, output = yield run_command(cmd) if code != 0: self.set_status(500) @@ -176,7 +177,7 @@ def get(self, path = ''): # Parse the path into the base name and extension of the file relative_file_path = str(Path(path.strip('/'))) relative_base_path = os.path.splitext(relative_file_path)[0] - full_file_path = os.path.join(self.notebook_dir, relative_file_path) + full_file_path = os.path.join(self.root_dir, relative_file_path) workdir = os.path.dirname(full_file_path) base_name, ext = os.path.splitext(os.path.basename(full_file_path)) From 923ca15313d9b3a15fb01a2b02b4f52309970978 Mon Sep 17 00:00:00 2001 From: ktaletsk Date: Tue, 10 Sep 2024 00:07:52 +0000 Subject: [PATCH 17/28] Publish 4.1.4 SHA256 hashes: jupyterlab-latex-4.1.4.tgz: d9409e0b19258ec2e66c10b2f1c08ca354057a8915bb1eba81c5d83516163f3b jupyterlab_latex-4.1.4-py3-none-any.whl: 543d202124000ce1c561a330f7dd386b8f42218144a85fb1ea5d2cbd83fcfda2 jupyterlab_latex-4.1.4.tar.gz: e592e33fa8e3ec97b979fc58ac8728d938410dc6c50ed03cc1c9da1508f4147c --- CHANGELOG.md | 24 ++++++++++++++++++++++-- package.json | 2 +- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d953c85..12d578f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,28 @@ +## 4.1.4 + +([Full Changelog](https://github.com/jupyterlab/jupyterlab-latex/compare/v4.1.3...c3d3d8e0ed1c8c69105a8bbc0d48858c6203af67)) + +### Enhancements made + +- Use root_dir configuraion [#237](https://github.com/jupyterlab/jupyterlab-latex/pull/237) ([@naoh16](https://github.com/naoh16)) +- Make extension compatible with custom drives [#235](https://github.com/jupyterlab/jupyterlab-latex/pull/235) ([@ktaletsk](https://github.com/ktaletsk)) + +### Documentation improvements + +- \[Docs\] Improve the repo description and update screenshot [#236](https://github.com/jupyterlab/jupyterlab-latex/pull/236) ([@ktaletsk](https://github.com/ktaletsk)) +- docs: fix lint error [#234](https://github.com/jupyterlab/jupyterlab-latex/pull/234) ([@ktaletsk](https://github.com/ktaletsk)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyterlab-latex/graphs/contributors?from=2024-09-05&to=2024-09-09&type=c)) + +[@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab-latex+involves%3Agithub-actions+updated%3A2024-09-05..2024-09-09&type=Issues) | [@ktaletsk](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab-latex+involves%3Aktaletsk+updated%3A2024-09-05..2024-09-09&type=Issues) | [@naoh16](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab-latex+involves%3Anaoh16+updated%3A2024-09-05..2024-09-09&type=Issues) + + + ## 4.1.3 ([Full Changelog](https://github.com/jupyterlab/jupyterlab-latex/compare/v4.1.1...3e490aa42608c5170c36b5dd8e641045b3cb9818)) @@ -20,8 +42,6 @@ [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab-latex+involves%3Agithub-actions+updated%3A2024-09-05..2024-09-05&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab-latex+involves%3Akrassowski+updated%3A2024-09-05..2024-09-05&type=Issues) | [@ktaletsk](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab-latex+involves%3Aktaletsk+updated%3A2024-09-05..2024-09-05&type=Issues) - - ## 4.1.2 ([Full Changelog](https://github.com/jupyterlab/jupyterlab-latex/compare/v4.1.1...9bf16578ab7763e62ea0ca055d7ec4584440ddef)) diff --git a/package.json b/package.json index cd9b24d..60adf79 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/latex", - "version": "4.1.3", + "version": "4.1.4", "description": "JupyterLab extension for running LaTeX", "keywords": [ "jupyter", From dd1628ca2989282f55fb0176b821b983cc43515d Mon Sep 17 00:00:00 2001 From: Akshat Saini Date: Wed, 11 Sep 2024 13:10:38 -0400 Subject: [PATCH 18/28] chore: added icons in style/icons --- style/icons/bold.svg | 1 + style/icons/center-align.svg | 1 + style/icons/chart-column-solid.svg | 1 + style/icons/italic.svg | 1 + style/icons/left-align.svg | 1 + style/icons/list.svg | 1 + style/icons/olist.svg | 1 + style/icons/right-align.svg | 1 + style/icons/table.svg | 1 + style/icons/underline.svg | 1 + 10 files changed, 10 insertions(+) create mode 100644 style/icons/bold.svg create mode 100644 style/icons/center-align.svg create mode 100644 style/icons/chart-column-solid.svg create mode 100644 style/icons/italic.svg create mode 100644 style/icons/left-align.svg create mode 100644 style/icons/list.svg create mode 100644 style/icons/olist.svg create mode 100644 style/icons/right-align.svg create mode 100644 style/icons/table.svg create mode 100644 style/icons/underline.svg diff --git a/style/icons/bold.svg b/style/icons/bold.svg new file mode 100644 index 0000000..5dc59b7 --- /dev/null +++ b/style/icons/bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/style/icons/center-align.svg b/style/icons/center-align.svg new file mode 100644 index 0000000..624ba7f --- /dev/null +++ b/style/icons/center-align.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/style/icons/chart-column-solid.svg b/style/icons/chart-column-solid.svg new file mode 100644 index 0000000..6985b7b --- /dev/null +++ b/style/icons/chart-column-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/style/icons/italic.svg b/style/icons/italic.svg new file mode 100644 index 0000000..f095c28 --- /dev/null +++ b/style/icons/italic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/style/icons/left-align.svg b/style/icons/left-align.svg new file mode 100644 index 0000000..430fb92 --- /dev/null +++ b/style/icons/left-align.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/style/icons/list.svg b/style/icons/list.svg new file mode 100644 index 0000000..3913160 --- /dev/null +++ b/style/icons/list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/style/icons/olist.svg b/style/icons/olist.svg new file mode 100644 index 0000000..55c1f2a --- /dev/null +++ b/style/icons/olist.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/style/icons/right-align.svg b/style/icons/right-align.svg new file mode 100644 index 0000000..9103d5e --- /dev/null +++ b/style/icons/right-align.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/style/icons/table.svg b/style/icons/table.svg new file mode 100644 index 0000000..2ef9ca4 --- /dev/null +++ b/style/icons/table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/style/icons/underline.svg b/style/icons/underline.svg new file mode 100644 index 0000000..9687cda --- /dev/null +++ b/style/icons/underline.svg @@ -0,0 +1 @@ + \ No newline at end of file From 055301d38a7816bb2ded613050c2b3410f8dad61 Mon Sep 17 00:00:00 2001 From: Akshat Saini Date: Wed, 11 Sep 2024 13:18:42 -0400 Subject: [PATCH 19/28] chore: updated build.py, error.tsx --- jupyterlab_latex/build.py | 99 +++++++++++++++++++++++++++++++++++---- package.json | 6 +++ src/error.tsx | 63 +++++++++++++++++++++++-- 3 files changed, 153 insertions(+), 15 deletions(-) diff --git a/jupyterlab_latex/build.py b/jupyterlab_latex/build.py index 713340d..7a8819e 100644 --- a/jupyterlab_latex/build.py +++ b/jupyterlab_latex/build.py @@ -64,8 +64,8 @@ class LatexBuildHandler(APIHandler): A handler that runs LaTeX on the server. """ - def initialize(self, root_dir): - self.root_dir = root_dir + def initialize(self, notebook_dir): + self.notebook_dir = notebook_dir def build_tex_cmd_sequence(self, tex_base_name, run_bibtex=False): @@ -136,6 +136,91 @@ def bib_condition(self): """ return any([re.match(r'.*\.bib', x) for x in set(glob.glob("*"))]) + def filter_output(self, latex_output): + """Filters latex output for "interesting" messages + + Parameters + ---------- + latex_output: string + This is the output of the executed latex command from, + run_command in run_latex. + + returns: + A string representing the filtered output. + + Notes + ----- + - Based on the public domain perl script texfot v 1.43 written by + Karl Berry in 2014. It has no home page beyond the package on + CTAN: . + + """ + ignore = re.compile(r'''^( + LaTeX\ Warning:\ You\ have\ requested\ package + |LaTeX\ Font\ Warning:\ Some\ font\ shapes + |LaTeX\ Font\ Warning:\ Size\ substitutions + |Package\ auxhook\ Warning:\ Cannot\ patch + |Package\ caption\ Warning:\ Un(supported|known)\ document\ class + |Package\ fixltx2e\ Warning:\ fixltx2e\ is\ not\ required + |Package\ frenchb?\.ldf\ Warning:\ (Figures|The\ definition) + |Package\ layouts\ Warning:\ Layout\ scale + |\*\*\*\ Reloading\ Xunicode\ for\ encoding # spurious *** + |pdfTeX\ warning:.*inclusion:\ fou #nd PDF version ... + |pdfTeX\ warning:.*inclusion:\ mul #tiple pdfs with page group + |libpng\ warning:\ iCCP:\ Not\ recognizing + |!\ $ + |This\ is + |No\ pages\ of\ output. # possibly not worth ignoring? + )''', re.VERBOSE) + + next_line = re.compile(r'''^( + .*?:[0-9]+: # usual file:lineno: form + |! # usual ! form + |>\ [^<] # from \show..., but not "> ... + |Missing\ character: # good to show (need \tracinglostchars=1) + |\\endL.*problem # XeTeX? + |\*\*\*\s # *** from some packages or subprograms + |l\.[0-9]+ # line number marking + |all\ text\ was\ ignored\ after\ line + |.*Fatal\ error + |.*for\ symbol.*on\ input\ line + )''', re.VERBOSE) + + print_next = False + filtered_output = [] + + for line in latex_output.split('\n'): + if print_next: + filtered_output.append(line) + print_next = False + + elif ignore.match(line): + continue + + elif next_line.match(line): + filtered_output.append(line) + print_next = True + + elif show.match(line): + filtered_output.append(line) + + return '\n'.join(filtered_output) + @gen.coroutine def run_latex(self, command_sequence): @@ -162,14 +247,12 @@ def run_latex(self, command_sequence): """ for cmd in command_sequence: - self.log.debug(f'jupyterlab-latex: run: {" ".join(cmd)} (CWD: {os.getcwd()})') - code, output = yield run_command(cmd) if code != 0: self.set_status(500) self.log.error((f'LaTeX command `{" ".join(cmd)}` ' f'errored with code: {code}')) - return output + return json.dumps({'fullMessage':output, 'errorOnlyMessage':self.filter_output(output)}) return "LaTeX compiled" @@ -181,13 +264,10 @@ def get(self, path = ''): Given a path, run LaTeX, cleanup, and respond when done. """ # Parse the path into the base name and extension of the file - tex_file_path = os.path.join(self.root_dir, path.strip('/')) + tex_file_path = os.path.join(self.notebook_dir, path.strip('/')) tex_base_name, ext = os.path.splitext(os.path.basename(tex_file_path)) c = LatexConfig(config=self.config) - self.log.debug((f"jupyterlab-latex: get: path=({path}), " - f"CWD=({os.getcwd()}), root_dir=({self.serverapp.root_dir})")) - if not os.path.exists(tex_file_path): self.set_status(403) out = f"Request cannot be completed; no file at `{tex_file_path}`." @@ -207,4 +287,3 @@ def get(self, path = ''): run_bibtex=bibtex) out = yield self.run_latex(cmd_sequence) self.finish(out) - diff --git a/package.json b/package.json index 60adf79..e968096 100644 --- a/package.json +++ b/package.json @@ -73,6 +73,7 @@ "@jupyterlab/fileeditor": "^4.0.0", "@jupyterlab/launcher": "^4.0.0", "@jupyterlab/mainmenu": "^4.0.0", + "@jupyterlab/notebook": "^4.0.0", "@jupyterlab/services": "^7.0.0", "@jupyterlab/settingregistry": "^4.0.0", "@jupyterlab/statedb": "^4.0.0", @@ -123,6 +124,11 @@ "style/index.js" ], "styleModule": "style/index.js", + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, "publishConfig": { "access": "public" }, diff --git a/src/error.tsx b/src/error.tsx index 521c1ab..9109e61 100644 --- a/src/error.tsx +++ b/src/error.tsx @@ -5,12 +5,17 @@ import { Message } from '@lumino/messaging'; import { Widget } from '@lumino/widgets'; +import { HTMLSelect } from '@jupyterlab/ui-components'; + import * as React from 'react'; import * as ReactDOM from 'react-dom'; const LATEX_ERROR_PANEL = 'jp-LatexErrorPanel'; const LATEX_ERROR_CONTAINER = 'jp-LatexErrorContainer'; +const TOOLBAR_CELLTYPE_CLASS = 'jp-Notebook-toolbarCellType'; +const TOOLBAR_CELLTYPE_DROPDOWN_CLASS = 'jp-Notebook-toolbarCellTypeDropdown'; + /** * A widget which hosts the error logs from LaTeX * when document compilation fails. @@ -22,10 +27,11 @@ export class ErrorPanel extends Widget { constructor() { super(); this.addClass(LATEX_ERROR_PANEL); + this.addClass(TOOLBAR_CELLTYPE_CLASS); } set text(value: string) { - ReactDOM.render(, this.node, () => { + ReactDOM.render(, this.node, () => { this.update(); }); } @@ -34,7 +40,7 @@ export class ErrorPanel extends Widget { * Handle an update request. */ protected onUpdateRequest(msg: Message): void { - const el = this.node.children[0]; + const el = this.node.children[2].children[0]; el.scrollTop = el.scrollHeight; } @@ -48,14 +54,61 @@ export class ErrorPanel extends Widget { export interface ILatexProps { text: string; + node: ErrorPanel; } export class LatexError extends React.Component { + selectedValue: string; + fullMessage: string; + errorOnlyMessage: string; + displayedMessage: string; + + constructor(props: Readonly) { + super(props); + let messages = JSON.parse(props.text); + this.fullMessage = messages.fullMessage; + this.errorOnlyMessage = messages.errorOnlyMessage; + this.displayedMessage = this.errorOnlyMessage; + } + + handleChange = (event: React.ChangeEvent): void => { + this.selectedValue = event.target.value; + if (event.target.value === 'Filtered') { + this.displayedMessage = this.errorOnlyMessage; + } else if (event.target.value === 'Unfiltered') { + this.displayedMessage = this.fullMessage; + } else if (event.target.value === 'JSON') { + this.displayedMessage = this.props.text; + } + + /** + * Force ErrorPanel to rerender. + */ + this.setState({}); + this.props.node.update(); + }; + render() { return ( -
-        {this.props.text}
-      
+ <> + + +
+ +
+ +
+
+            {this.displayedMessage}
+          
+
+ ); } } From ef4a176d47f5c071132d9fa39d6a7e2b198b66b7 Mon Sep 17 00:00:00 2001 From: Akshat Saini Date: Wed, 11 Sep 2024 13:18:56 -0400 Subject: [PATCH 20/28] chore: update package.json --- package.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/package.json b/package.json index e968096..79ffa8a 100644 --- a/package.json +++ b/package.json @@ -124,11 +124,6 @@ "style/index.js" ], "styleModule": "style/index.js", - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, "publishConfig": { "access": "public" }, From b285d5229dcc05b1791ade7bea86a8f1193310c1 Mon Sep 17 00:00:00 2001 From: Akshat Saini Date: Wed, 11 Sep 2024 13:20:48 -0400 Subject: [PATCH 21/28] chore: update intex.ts --- src/index.ts | 751 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 724 insertions(+), 27 deletions(-) diff --git a/src/index.ts b/src/index.ts index b8b3818..13e764e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -11,7 +11,10 @@ import { import { IWidgetTracker, WidgetTracker, - showErrorMessage + showErrorMessage, + ICommandPalette, + InputDialog, + ToolbarButton } from '@jupyterlab/apputils'; import { CodeEditor } from '@jupyterlab/codeeditor'; @@ -44,18 +47,34 @@ import { LabIcon } from '@jupyterlab/ui-components'; import { IDefaultFileBrowser } from '@jupyterlab/filebrowser'; -import { ICommandPalette } from '@jupyterlab/apputils'; - import { IMainMenu } from '@jupyterlab/mainmenu'; import latexIconStr from '../style/latex.svg'; +import listIconStr from '../style/icons/list.svg'; +import olistIconStr from '../style/icons/olist.svg'; +import italicIconStr from '../style/icons/italic.svg'; +import boldIconStr from '../style/icons/bold.svg'; +import underlineIconStr from '../style/icons/underline.svg'; +import tableIconStr from '../style/icons/table.svg'; +import rightIconStr from '../style/icons/right-align.svg'; +import centerIconStr from '../style/icons/center-align.svg'; +import leftIconStr from '../style/icons/left-align.svg'; +import plotIconStr from '../style/icons/chart-column-solid.svg'; + import '../style/index.css'; +import { Menu } from '@lumino/widgets'; + +import { NotebookPanel, INotebookModel } from '@jupyterlab/notebook'; + +import { IDisposable, DisposableDelegate } from '@lumino/disposable'; + /** * A class that tracks editor widgets. */ -export type IPDFJSTracker = IWidgetTracker>; +export interface IPDFJSTracker + extends IWidgetTracker> {} /* tslint:disable */ /** @@ -88,6 +107,8 @@ namespace CommandIDs { * Create new latex file */ export const createNew = 'latex:create-new-latex-file'; + + export const createTable = 'latex:create-table'; } /** @@ -214,6 +235,17 @@ function synctexViewRequest( }); } +function isLatexFile( + editorTracker: IEditorTracker +): IDocumentWidget | null { + let widget = editorTracker.currentWidget; + if (widget && PathExt.extname(widget.context.path) === '.tex') { + return widget; + } else { + return null; + } +} + /** * Activate the file browser. */ @@ -233,7 +265,7 @@ function activateLatexPlugin( ): void { const { commands } = app; const id = 'jupyterlab-latex'; - + const icon = new LabIcon({ name: 'launcher:latex-icon', svgstr: latexIconStr @@ -251,7 +283,7 @@ function activateLatexPlugin( // a .tex document, open a LaTeX preview for it. const openPreview = (widget: IDocumentWidget) => { // If we can't find the document context, bail. - const texContext = manager.contextForWidget(widget); + let texContext = manager.contextForWidget(widget); if (!texContext) { return; } @@ -295,9 +327,9 @@ function activateLatexPlugin( (view: ISynctexViewOptions) => { // SyncTex line is one-based, so subtract 1. const cursor = { line: view.line - 1, column: 0 }; - ( - widget as IDocumentWidget - ).content.editor.setCursorPosition(cursor); + (widget as IDocumentWidget< + FileEditor + >).content.editor.setCursorPosition(cursor); } ); }; @@ -335,13 +367,7 @@ function activateLatexPlugin( return Promise.resolve(void 0); } pending = true; - - /** Get the local file path without any drive prefix potentially added by - * other extensions like jupyter-collaboration - */ - const localPath = app.serviceManager.contents.localPath(texContext!.path); - - return latexBuildRequest(localPath, synctex, serverSettings) + return latexBuildRequest(texContext!.path, synctex, serverSettings) .then(() => { // Read the pdf file contents from disk. pdfContext ? pdfContext.revert() : findOpenOrRevealPDF(); @@ -391,13 +417,521 @@ function activateLatexPlugin( state.save(id, { paths: Array.from(Private.previews) }); }; + class EditorToolbarPanel + implements + DocumentRegistry.IWidgetExtension { + createNew( + panel: NotebookPanel, + context: DocumentRegistry.IContext + ): IDisposable { + const execOpenLataxPreview = () => { + commands.execute(CommandIDs.openLatexPreview); + }; + + const createInputDialog = (mess: string, action: string) => { + let widget = editorTracker.currentWidget; + if (widget) { + let editor = widget.content.editor; + InputDialog.getText({ + title: mess + }).then(value => { + if (value.value) { + if (editor.replaceSelection) { + editor.replaceSelection(action + '{' + value.value + '}'); + } + } + }); + } + }; + + const replaceSelection = (action: string) => { + let widget = editorTracker.currentWidget; + if (widget) { + let editor = widget.content.editor; + if (editor.replaceSelection && editor.getSelection) { + let start = editor.getSelection().start; + let end = editor.getSelection().end; + if (start.line == end.line) { + let selection: string | undefined = editor.getLine(start.line); + if (selection) { + selection = selection.substring(start.column, end.column); + if (selection.length > 0) { + editor.replaceSelection(action + '{' + selection + '}'); + return 1; + } + } + } + } + } + return 0; + }; + + const insertSubscript = () => { + let action = '_'; + let result = replaceSelection(action); + if (result == 0) { + createInputDialog('Provide Desired Subscript', action); + } + }; + + const insertSuperscript = () => { + let action = '^'; + let result = replaceSelection(action); + if (result == 0) { + createInputDialog('Provide Desired Superscript', action); + } + }; + + const insertFraction = () => { + InputDialog.getText({ + title: + 'Provide Desired Fraction: Numerator, Denominator\nEX: 1,2 -> \u00BD ' + }).then(value => { + if (value.value) { + let widget = editorTracker.currentWidget; + let inputString = value.value; + let inputArgs = inputString.split(','); + if (widget && inputArgs.length == 2) { + let editor = widget.content.editor; + if (editor.replaceSelection) { + editor.replaceSelection( + '\\frac{' + + inputArgs[0].trim() + + '}{' + + inputArgs[1].trim() + + '}' + ); + } + } + } + }); + }; + + const leftAlign = () => { + let action = '\\leftline'; + let result = replaceSelection(action); + if (result == 0) { + createInputDialog('Provide Text to Left Align', action); + } + }; + + const centerAlign = () => { + let action = '\\centerline'; + let result = replaceSelection(action); + if (result == 0) { + createInputDialog('Provide Text to Center Align', action); + } + }; + + const rightAlign = () => { + let action = '\\rightline'; + let result = replaceSelection(action); + if (result == 0) { + createInputDialog('Provide Text to Right Align', action); + } + }; + + const insertBold = () => { + let action = '\\textbf'; + let result = replaceSelection(action); + if (result == 0) { + createInputDialog('Provide Text to Bold', action); + } + }; + + const insertItalics = () => { + let action = '\\textit'; + let result = replaceSelection(action); + if (result == 0) { + createInputDialog('Provide Text to Italicise', action); + } + }; + + const insertUnderline = () => { + let action = '\\underline'; + let result = replaceSelection(action); + if (result == 0) { + createInputDialog('Provide Text to Underline', action); + } + }; + + const insertBulletList = () => { + let widget = editorTracker.currentWidget; + if (widget) { + let editor = widget.content.editor; + if (editor.replaceSelection) { + editor.replaceSelection( + '\\begin{itemize}' + + '\n' + + '\t' + + '\\item' + + '\n' + + '\\end{itemize}' + ); + } + } + }; + + const insertNumberedList = () => { + let widget = editorTracker.currentWidget; + if (widget) { + let editor = widget.content.editor; + if (editor.replaceSelection) { + editor.replaceSelection( + '\\begin{enumerate}' + + '\n' + + '\t' + + '\\item' + + '\n' + + '\\end{enumerate}' + ); + } + } + }; + const insertPlot = () => { + InputDialog.getItem({ + title: 'Select Plot Type', + items: [ + 'Mathematical Expression', + 'Data From File', + 'Scatter Plot', + 'Bar Graphs', + 'Contour Plots', + 'Parametric Plot' + ] + }).then(value => { + if (value.value) { + let plotText = ''; + + switch (value.value) { + case 'Mathematical Expression': { + plotText = + '\\begin{tikzpicture}' + + '\n\\begin{axis}[' + + '\n\taxis lines = left,' + + '\n\txlabel = \\(x\\),' + + '\n\tylabel = {\\(f(x)\\)},' + + '\n]' + + '\n\\addplot [' + + '\n\tdomain=-10:10, ' + + '\n\tsamples=100, ' + + '\n\tcolor=blue,' + + '\n]' + + '\n{x^2};' + + '\n\\addlegendentry{\\(x^2\\)}' + + '\n\\end{axis}' + + '\n\\end{tikzpicture}'; + break; + } + case 'Data From File': { + plotText = + '\\begin{tikzpicture}' + + '\n\\begin{axis}[' + + '\n\ttitle={Title},' + + '\n\txlabel={x axis label},' + + '\n\tylabel={y axis label},' + + '\n\txmin=0, xmax=100,' + + '\n\tymin=0, ymax=100,' + + '\n\txtick={},' + + '\n\tytick={},' + + '\n\tlegend pos=north west' + + '\n]' + + '\n\n\\addplot[' + + '\n\tcolor=blue,' + + '\n\tmark=*]' + + '\n{Data File Path};' + + '\n\n\\legend{Legend Text}' + + '\n\n\\end{axis}' + + '\n\\end{tikzpicture}'; + break; + } + case 'Scatter Plot': { + plotText = + '\\begin{tikzpicture}' + + '\n\\begin{axis}[' + + '\n\ttitle={Title},' + + '\n\txlabel={x axis label},' + + '\n\tylabel={y axis label},' + + '\n\txmin=0, xmax=100,' + + '\n\tymin=0, ymax=100,' + + '\n\txtick={},' + + '\n\tytick={},' + + '\n\tlegend pos=north west' + + '\n]' + + '\n\n\\addplot[' + + '\n\tonly marks,' + + '\n\tmark=*]' + + '\ntable' + + '\n{Data File Path};' + + '\n\n\\legend{Legend Text}' + + '\n\n\\end{axis}' + + '\n\\end{tikzpicture}'; + break; + } + case 'Bar Graphs': { + plotText = + '\\begin{tikzpicture}' + + '\n\\begin{axis}[' + + '\ntitle={Title},' + + '\nxlabel={x axis label},' + + '\nylabel={y axis label},' + + '\nxmin=0, xmax=100,' + + '\nymin=0, ymax=100,' + + '\nenlargelimits=0.05,' + + '\nlegend pos=north west,' + + '\nybar,' + + '\n]' + + '\n\n\\addplot table {\\mydata};' + + '\n\n\\end{axis}' + + '\n\\end{tikzpicture}'; + break; + } + case 'Contour Plots': { + plotText = + '\\begin{tikzpicture}' + + '\n\\begin{axis}' + + '\n[' + + '\n\ttitle={Title},' + + '\n\tview={0}{90}' + + '\n]' + + '\n\\addplot3[' + + '\n\tcontour gnuplot={levels={0.5}}' + + '\n]' + + '\n{sqrt(x^2+y^2)};' + + '\n\\addlegendentry{\\(sqrt(x^2+y^2)\\)}' + + '\n\\end{axis}' + + '\n\\end{tikzpicture}'; + break; + } + case 'Parametric Plot': { + plotText = + '\\begin{tikzpicture}' + + '\n\\begin{axis}' + + '\n[' + + '\n\ttitle={Title},' + + '\n\tview={60}{30}' + + '\n]' + + '\n\n\\addplot3[' + + '\n\tdomain=-5:5,' + + '\n\tsamples = 60,' + + '\n\tsamples y=0,' + + '\n]' + + '\n({sin(deg(x))},' + + '\n{cos(deg(x))},' + + '\n{x});' + + '\n\n\\addlegendentry{\\(Legend Label)\\)}' + + '\n\n\\end{axis}' + + '\n\\end{tikzpicture}'; + break; + } + } + + let widget = editorTracker.currentWidget; + if (widget) { + let editor = widget.content.editor; + if (editor.replaceSelection) { + editor.replaceSelection(plotText); + } + } + } + }); + }; + + const execCreateTable = () => { + //const createTable = 'latex:create-table' + commands.execute(CommandIDs.createTable); + //app.commands.addCommand('latex:create-table', { + }; + + const previewButton = new ToolbarButton({ + className: 'run-latexPreview-command', + label: 'Preview', + onClick: execOpenLataxPreview, + tooltip: 'Click to preview your LaTeX document' + }); + + const subscriptButton = new ToolbarButton({ + className: 'insert-subscript', + label: 'Xᵧ', + onClick: insertSubscript, + tooltip: 'Click to open subscript input dialog' + }); + + const superscriptButton = new ToolbarButton({ + className: 'insert-superscript', + label: 'X\u02B8', + onClick: insertSuperscript, + tooltip: 'Click to open superscript input dialog' + }); + + const fractionButton = new ToolbarButton({ + className: 'insert-fraction', + label: 'X/Y', + onClick: insertFraction, + tooltip: 'Click to open fraction input dialog' + }); + const lefticon = new LabIcon({ + name: 'launcher:left-icon', + svgstr: leftIconStr + }); + const leftTextAlignmentButton = new ToolbarButton({ + className: 'insert-text', + icon: lefticon, + onClick: leftAlign, + tooltip: 'Click to left align highlighted text' + }); + + const centericon = new LabIcon({ + name: 'launcher:center-icon', + svgstr: centerIconStr + }); + const centerTextAlignmentButton = new ToolbarButton({ + className: 'insert-text', + icon: centericon, + onClick: centerAlign, + tooltip: 'Click to left align highlighted text' + }); + + const righticon = new LabIcon({ + name: 'launcher:right-icon', + svgstr: rightIconStr + }); + const rightTextAlignmentButton = new ToolbarButton({ + className: 'insert-text', + icon: righticon, + onClick: rightAlign, + tooltip: 'Click to left align highlighted text' + }); + const boldicon = new LabIcon({ + name: 'launcher:bold-icon', + svgstr: boldIconStr + }); + + const boldButton = new ToolbarButton({ + className: 'bold-text', + icon: boldicon, + onClick: insertBold, + tooltip: 'Click to insert bold text' + }); + + const italicsicon = new LabIcon({ + name: 'launcher:italics-icon', + svgstr: italicIconStr + }); + + const italicsButton = new ToolbarButton({ + className: 'italicize-text', + icon: italicsicon, + onClick: insertItalics, + tooltip: 'Click to insert italicized text' + }); + + const underlineicon = new LabIcon({ + name: 'launcher:underline-icon', + svgstr: underlineIconStr + }); + const underlineButton = new ToolbarButton({ + className: 'underline-text', + icon: underlineicon, + onClick: insertUnderline, + tooltip: 'Click to insert underlined text' + }); + + const listicon = new LabIcon({ + name: 'launcher:list-icon', + svgstr: listIconStr + }); + + const bulletListButton = new ToolbarButton({ + className: 'insert-bullet-list', + icon: listicon, + onClick: insertBulletList, + tooltip: 'Click to insert bullet list' + }); + + const olisticon = new LabIcon({ + name: 'launcher:olist-icon', + svgstr: olistIconStr + }); + + const numberedListButton = new ToolbarButton({ + className: 'insert-numbered-list', + icon: olisticon, + onClick: insertNumberedList, + tooltip: 'Click to insert numbered list' + }); + + const tableicon = new LabIcon({ + name: 'launcher:table-icon', + svgstr: tableIconStr + }); + const tableInsertButton = new ToolbarButton({ + className: 'insert-table', + icon: tableicon, + onClick: execCreateTable, + tooltip: 'Click to insert table' + }); + + const plotIcon = new LabIcon({ + name: 'launcher:plot-icon', + svgstr: plotIconStr + }); + + const plotButton = new ToolbarButton({ + className: 'insert-plot', + icon: plotIcon, + onClick: insertPlot, + tooltip: 'Click to insert a plot' + }); + + if (context.path.endsWith('.tex')) { + panel.toolbar.insertItem(10, 'Preview', previewButton); + panel.toolbar.insertItem(10, 'sub', subscriptButton); + panel.toolbar.insertItem(10, 'super', superscriptButton); + panel.toolbar.insertItem(10, 'fraction', fractionButton); + + panel.toolbar.insertItem(10, 'left', leftTextAlignmentButton); + panel.toolbar.insertItem(10, 'center', centerTextAlignmentButton); + panel.toolbar.insertItem(10, 'right', rightTextAlignmentButton); + + panel.toolbar.insertItem(10, 'bold', boldButton); + panel.toolbar.insertItem(10, 'italics', italicsButton); + panel.toolbar.insertItem(10, 'underline', underlineButton); + panel.toolbar.insertItem(10, 'bullet-list', bulletListButton); + panel.toolbar.insertItem(10, 'numbered-list', numberedListButton); + panel.toolbar.insertItem(10, 'table', tableInsertButton); + panel.toolbar.insertItem(10, 'insert-plot', plotButton); + } + return new DisposableDelegate(() => { + previewButton.dispose(); + subscriptButton.dispose(); + superscriptButton.dispose(); + fractionButton.dispose(); + + leftTextAlignmentButton.dispose(); + centerTextAlignmentButton.dispose(); + rightTextAlignmentButton.dispose(); + + boldButton.dispose(); + italicsButton.dispose(); + underlineButton.dispose(); + bulletListButton.dispose(); + numberedListButton.dispose(); + tableInsertButton.dispose(); + plotButton.dispose(); + }); + } + } + + app.docRegistry.addWidgetExtension('Editor', new EditorToolbarPanel()); + // If there are any active previews in the statedb, // activate them upon initialization. Promise.all([state.fetch(id), app.restored]).then(([args]) => { - const paths = + let paths = (args && ((args as ReadonlyJSONObject)['paths'] as string[])) || []; paths.forEach(path => { - const widget = manager.findWidget(path); + let widget = manager.findWidget(path); if (widget) { openPreview(widget); } @@ -435,17 +969,14 @@ function activateLatexPlugin( commands.addCommand(CommandIDs.openLatexPreview, { execute: () => { // Get the current widget that had its contextMenu activated. - const widget = editorTracker.currentWidget; + let widget = editorTracker.currentWidget; if (widget) { openPreview(widget); } }, isEnabled: hasWidget, isVisible: () => { - const widget = editorTracker.currentWidget; - return ( - (widget && PathExt.extname(widget.context.path) === '.tex') || false - ); + return isLatexFile(editorTracker) != null; }, label: 'Show LaTeX Preview' }); @@ -502,6 +1033,7 @@ function activateLatexPlugin( // Add the command to the menu if (menu) { menu.fileMenu.newMenu.addGroup([{ command }], 30); + addLatexMenu(app, editorTracker, menu); } } @@ -524,7 +1056,7 @@ function addSynctexCommands( app.commands.addCommand(CommandIDs.synctexEdit, { execute: () => { // Get the pdf widget that had its contextMenu activated. - const widget = pdfTracker.currentWidget; + let widget = pdfTracker.currentWidget; if (widget) { // Get the page number. const pos = widget.content.position; @@ -573,7 +1105,7 @@ function addSynctexCommands( app.commands.addCommand(CommandIDs.synctexView, { execute: () => { // Get the current widget that had its contextMenu activated. - const widget = editorTracker.currentWidget; + let widget = editorTracker.currentWidget; if (widget) { // Get the cursor position. let pos = widget.content.editor.getCursorPosition(); @@ -607,7 +1139,7 @@ function addSynctexCommands( }, isEnabled: hasEditorWidget, isVisible: () => { - const widget = editorTracker.currentWidget; + let widget = editorTracker.currentWidget; return !!widget && Private.previews.has(widget.context.path); }, label: 'Scroll PDF to Cursor' @@ -647,6 +1179,171 @@ function addSynctexCommands( return disposables; } +function addLatexMenu( + app: JupyterFrontEnd, + editorTracker: IEditorTracker, + mainMenu: IMainMenu +): void { + const constantMenu = new Menu({ commands: app.commands }); + constantMenu.title.label = 'Constants'; + + const constants = new Map(); + constants.set('Pi', '\\pi'); + constants.set('Euler–Mascheroni constant', '\\gamma'); + constants.set('Golden Ratio', '\\varphi'); + + constants.forEach((value: string, key: string) => { + let commandName = 'latex:' + key.replace(' ', '-').toLowerCase(); + app.commands.addCommand(commandName, { + label: key, + caption: value, + execute: async args => { + let widget = isLatexFile(editorTracker); + if (widget) { + let editor = widget.content.editor; + if (editor.replaceSelection) { + editor.replaceSelection(value); + } + } + } + }); + + constantMenu.addItem({ + command: commandName, + args: {} + }); + }); + + const symbolMenu = new Menu({ commands: app.commands }); + symbolMenu.title.label = 'Symbols'; + + const symbols = new Map(); + // Less than symbols + symbols.set('Not Less Than', '\\nless'); + symbols.set('Less Than or Equal', '\\leq'); + symbols.set('Not Less Than or Equal', '\\nleq'); + // Greater than symbols + symbols.set('Not Greater Than', '\\ngtr'); + symbols.set('Greater Than or Equal', '\\geq'); + symbols.set('Not Greater Than or Equal', '\\ngeq'); + // Subset + symbols.set('Proper Subset', '\\subset'); + symbols.set('Not Proper Subset', '\\not\\subset'); + symbols.set('Subset', '\\subseteq'); + symbols.set('Not Subset', '\\nsubseteq'); + // Superset + symbols.set('Proper Superset', '\\supset'); + symbols.set('Not Proper Superset', '\\not\\supset'); + symbols.set('Superset', '\\supseteq'); + symbols.set('Not Superset', '\\nsupseteq'); + // Additional Set Notation + symbols.set('Member Of', '\\in'); + symbols.set('Not Member Of', '\\notin'); + symbols.set('Has Member', '\\ni'); + symbols.set('Union', '\\cup'); + symbols.set('Intersection', '\\cap'); + // Logic + symbols.set('There Exists', '\\ni'); + symbols.set('For All', '\\ni'); + symbols.set('Logical Not', '\\neg'); + symbols.set('Logical And', '\\land'); + symbols.set('Logical Or', '\\lor'); + + symbols.forEach((value: string, key: string) => { + let commandName = 'latex:' + key.replace(' ', '-').toLowerCase(); + app.commands.addCommand(commandName, { + label: key, + caption: value, + execute: async args => { + let widget = isLatexFile(editorTracker); + if (widget) { + let editor = widget.content.editor; + if (editor.replaceSelection) { + editor.replaceSelection(value); + } + } + } + }); + + symbolMenu.addItem({ + command: commandName, + args: {} + }); + }); + + app.commands.addCommand('latex:create-table', { + label: 'Create Table', + caption: 'Open a window to create a LaTeX table', + execute: async args => { + let rowResult = await InputDialog.getNumber({ + title: 'How many rows?' + }); + if (rowResult.button.accept) { + let colResult = await InputDialog.getNumber({ + title: 'How many columns?' + }); + if (colResult.button.accept) { + let widget = isLatexFile(editorTracker); + if (widget) { + let editor = widget.content.editor; + if (editor.replaceSelection) { + if (rowResult.value && colResult.value) { + editor.replaceSelection( + generateTable(rowResult.value, colResult.value) + ); + } + } + } + } + } + } + }); + + const menu = new Menu({ commands: app.commands }); + menu.title.label = 'LaTeX'; + menu.addItem({ + submenu: constantMenu, + type: 'submenu', + args: {} + }); + menu.addItem({ + submenu: symbolMenu, + type: 'submenu', + args: {} + }); + + menu.addItem({ + type: 'command', + command: 'latex:create-table' + }); + + mainMenu.addMenu(menu, true, { rank: 100 }); +} + +function generateTable(rowNum: number, colNum: number): string { + let columnConfig = 'c|'; + + let rowText = ''; + for (let i = 1; i <= rowNum * colNum; i++) { + if (i % colNum == 0) { + rowText += `cell${i} \\\\`; + if (i != rowNum * colNum) { + rowText += '\n\\hline\n'; + } + } else { + rowText += `cell${i} & `; + } + } + + return `\\begin{center} + \\begin{tabular}{ |${columnConfig.repeat(colNum)} } + \\hline + ${rowText} + \\hline + \\end{tabular} + \\end{center}`.replace(/^ +/gm, ''); +} + /** * The list of file types for pdfs. */ @@ -743,4 +1440,4 @@ namespace Private { errorPanel.title.closable = true; return errorPanel; } -} +} \ No newline at end of file From c2f3bc74d66bc137c6fe7c5c215a00bfb6adf668 Mon Sep 17 00:00:00 2001 From: Akshat Saini Date: Wed, 11 Sep 2024 13:24:54 -0400 Subject: [PATCH 22/28] chore: run lint:check and prettier --- src/error.tsx | 2 +- src/index.ts | 142 +++++++++++++++++++++++++------------------------- yarn.lock | 113 ++++++++++++++++++++++++++++++++++++++- 3 files changed, 184 insertions(+), 73 deletions(-) diff --git a/src/error.tsx b/src/error.tsx index 9109e61..ecc3c17 100644 --- a/src/error.tsx +++ b/src/error.tsx @@ -58,7 +58,7 @@ export interface ILatexProps { } export class LatexError extends React.Component { - selectedValue: string; + selectedValue: string | undefined; fullMessage: string; errorOnlyMessage: string; displayedMessage: string; diff --git a/src/index.ts b/src/index.ts index 13e764e..9e7fcf7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -238,7 +238,7 @@ function synctexViewRequest( function isLatexFile( editorTracker: IEditorTracker ): IDocumentWidget | null { - let widget = editorTracker.currentWidget; + const widget = editorTracker.currentWidget; if (widget && PathExt.extname(widget.context.path) === '.tex') { return widget; } else { @@ -265,7 +265,7 @@ function activateLatexPlugin( ): void { const { commands } = app; const id = 'jupyterlab-latex'; - + const icon = new LabIcon({ name: 'launcher:latex-icon', svgstr: latexIconStr @@ -283,7 +283,7 @@ function activateLatexPlugin( // a .tex document, open a LaTeX preview for it. const openPreview = (widget: IDocumentWidget) => { // If we can't find the document context, bail. - let texContext = manager.contextForWidget(widget); + const texContext = manager.contextForWidget(widget); if (!texContext) { return; } @@ -327,9 +327,9 @@ function activateLatexPlugin( (view: ISynctexViewOptions) => { // SyncTex line is one-based, so subtract 1. const cursor = { line: view.line - 1, column: 0 }; - (widget as IDocumentWidget< - FileEditor - >).content.editor.setCursorPosition(cursor); + ( + widget as IDocumentWidget + ).content.editor.setCursorPosition(cursor); } ); }; @@ -418,8 +418,8 @@ function activateLatexPlugin( }; class EditorToolbarPanel - implements - DocumentRegistry.IWidgetExtension { + implements DocumentRegistry.IWidgetExtension + { createNew( panel: NotebookPanel, context: DocumentRegistry.IContext @@ -429,9 +429,9 @@ function activateLatexPlugin( }; const createInputDialog = (mess: string, action: string) => { - let widget = editorTracker.currentWidget; + const widget = editorTracker.currentWidget; if (widget) { - let editor = widget.content.editor; + const editor = widget.content.editor; InputDialog.getText({ title: mess }).then(value => { @@ -445,13 +445,13 @@ function activateLatexPlugin( }; const replaceSelection = (action: string) => { - let widget = editorTracker.currentWidget; + const widget = editorTracker.currentWidget; if (widget) { - let editor = widget.content.editor; + const editor = widget.content.editor; if (editor.replaceSelection && editor.getSelection) { - let start = editor.getSelection().start; - let end = editor.getSelection().end; - if (start.line == end.line) { + const start = editor.getSelection().start; + const end = editor.getSelection().end; + if (start.line === end.line) { let selection: string | undefined = editor.getLine(start.line); if (selection) { selection = selection.substring(start.column, end.column); @@ -467,17 +467,17 @@ function activateLatexPlugin( }; const insertSubscript = () => { - let action = '_'; - let result = replaceSelection(action); - if (result == 0) { + const action = '_'; + const result = replaceSelection(action); + if (result === 0) { createInputDialog('Provide Desired Subscript', action); } }; const insertSuperscript = () => { - let action = '^'; - let result = replaceSelection(action); - if (result == 0) { + const action = '^'; + const result = replaceSelection(action); + if (result === 0) { createInputDialog('Provide Desired Superscript', action); } }; @@ -488,11 +488,11 @@ function activateLatexPlugin( 'Provide Desired Fraction: Numerator, Denominator\nEX: 1,2 -> \u00BD ' }).then(value => { if (value.value) { - let widget = editorTracker.currentWidget; - let inputString = value.value; - let inputArgs = inputString.split(','); - if (widget && inputArgs.length == 2) { - let editor = widget.content.editor; + const widget = editorTracker.currentWidget; + const inputString = value.value; + const inputArgs = inputString.split(','); + if (widget && inputArgs.length === 2) { + const editor = widget.content.editor; if (editor.replaceSelection) { editor.replaceSelection( '\\frac{' + @@ -508,57 +508,57 @@ function activateLatexPlugin( }; const leftAlign = () => { - let action = '\\leftline'; - let result = replaceSelection(action); - if (result == 0) { + const action = '\\leftline'; + const result = replaceSelection(action); + if (result === 0) { createInputDialog('Provide Text to Left Align', action); } }; const centerAlign = () => { - let action = '\\centerline'; - let result = replaceSelection(action); - if (result == 0) { + const action = '\\centerline'; + const result = replaceSelection(action); + if (result === 0) { createInputDialog('Provide Text to Center Align', action); } }; const rightAlign = () => { - let action = '\\rightline'; - let result = replaceSelection(action); - if (result == 0) { + const action = '\\rightline'; + const result = replaceSelection(action); + if (result === 0) { createInputDialog('Provide Text to Right Align', action); } }; const insertBold = () => { - let action = '\\textbf'; - let result = replaceSelection(action); - if (result == 0) { + const action = '\\textbf'; + const result = replaceSelection(action); + if (result === 0) { createInputDialog('Provide Text to Bold', action); } }; const insertItalics = () => { - let action = '\\textit'; - let result = replaceSelection(action); - if (result == 0) { + const action = '\\textit'; + const result = replaceSelection(action); + if (result === 0) { createInputDialog('Provide Text to Italicise', action); } }; const insertUnderline = () => { - let action = '\\underline'; - let result = replaceSelection(action); - if (result == 0) { + const action = '\\underline'; + const result = replaceSelection(action); + if (result === 0) { createInputDialog('Provide Text to Underline', action); } }; const insertBulletList = () => { - let widget = editorTracker.currentWidget; + const widget = editorTracker.currentWidget; if (widget) { - let editor = widget.content.editor; + const editor = widget.content.editor; if (editor.replaceSelection) { editor.replaceSelection( '\\begin{itemize}' + @@ -573,9 +573,9 @@ function activateLatexPlugin( }; const insertNumberedList = () => { - let widget = editorTracker.currentWidget; + const widget = editorTracker.currentWidget; if (widget) { - let editor = widget.content.editor; + const editor = widget.content.editor; if (editor.replaceSelection) { editor.replaceSelection( '\\begin{enumerate}' + @@ -726,9 +726,9 @@ function activateLatexPlugin( } } - let widget = editorTracker.currentWidget; + const widget = editorTracker.currentWidget; if (widget) { - let editor = widget.content.editor; + const editor = widget.content.editor; if (editor.replaceSelection) { editor.replaceSelection(plotText); } @@ -928,10 +928,10 @@ function activateLatexPlugin( // If there are any active previews in the statedb, // activate them upon initialization. Promise.all([state.fetch(id), app.restored]).then(([args]) => { - let paths = + const paths = (args && ((args as ReadonlyJSONObject)['paths'] as string[])) || []; paths.forEach(path => { - let widget = manager.findWidget(path); + const widget = manager.findWidget(path); if (widget) { openPreview(widget); } @@ -969,14 +969,14 @@ function activateLatexPlugin( commands.addCommand(CommandIDs.openLatexPreview, { execute: () => { // Get the current widget that had its contextMenu activated. - let widget = editorTracker.currentWidget; + const widget = editorTracker.currentWidget; if (widget) { openPreview(widget); } }, isEnabled: hasWidget, isVisible: () => { - return isLatexFile(editorTracker) != null; + return isLatexFile(editorTracker) !== null; }, label: 'Show LaTeX Preview' }); @@ -1056,7 +1056,7 @@ function addSynctexCommands( app.commands.addCommand(CommandIDs.synctexEdit, { execute: () => { // Get the pdf widget that had its contextMenu activated. - let widget = pdfTracker.currentWidget; + const widget = pdfTracker.currentWidget; if (widget) { // Get the page number. const pos = widget.content.position; @@ -1105,7 +1105,7 @@ function addSynctexCommands( app.commands.addCommand(CommandIDs.synctexView, { execute: () => { // Get the current widget that had its contextMenu activated. - let widget = editorTracker.currentWidget; + const widget = editorTracker.currentWidget; if (widget) { // Get the cursor position. let pos = widget.content.editor.getCursorPosition(); @@ -1139,7 +1139,7 @@ function addSynctexCommands( }, isEnabled: hasEditorWidget, isVisible: () => { - let widget = editorTracker.currentWidget; + const widget = editorTracker.currentWidget; return !!widget && Private.previews.has(widget.context.path); }, label: 'Scroll PDF to Cursor' @@ -1193,14 +1193,14 @@ function addLatexMenu( constants.set('Golden Ratio', '\\varphi'); constants.forEach((value: string, key: string) => { - let commandName = 'latex:' + key.replace(' ', '-').toLowerCase(); + const commandName = 'latex:' + key.replace(' ', '-').toLowerCase(); app.commands.addCommand(commandName, { label: key, caption: value, execute: async args => { - let widget = isLatexFile(editorTracker); + const widget = isLatexFile(editorTracker); if (widget) { - let editor = widget.content.editor; + const editor = widget.content.editor; if (editor.replaceSelection) { editor.replaceSelection(value); } @@ -1250,14 +1250,14 @@ function addLatexMenu( symbols.set('Logical Or', '\\lor'); symbols.forEach((value: string, key: string) => { - let commandName = 'latex:' + key.replace(' ', '-').toLowerCase(); + const commandName = 'latex:' + key.replace(' ', '-').toLowerCase(); app.commands.addCommand(commandName, { label: key, caption: value, execute: async args => { - let widget = isLatexFile(editorTracker); + const widget = isLatexFile(editorTracker); if (widget) { - let editor = widget.content.editor; + const editor = widget.content.editor; if (editor.replaceSelection) { editor.replaceSelection(value); } @@ -1275,17 +1275,17 @@ function addLatexMenu( label: 'Create Table', caption: 'Open a window to create a LaTeX table', execute: async args => { - let rowResult = await InputDialog.getNumber({ + const rowResult = await InputDialog.getNumber({ title: 'How many rows?' }); if (rowResult.button.accept) { - let colResult = await InputDialog.getNumber({ + const colResult = await InputDialog.getNumber({ title: 'How many columns?' }); if (colResult.button.accept) { - let widget = isLatexFile(editorTracker); + const widget = isLatexFile(editorTracker); if (widget) { - let editor = widget.content.editor; + const editor = widget.content.editor; if (editor.replaceSelection) { if (rowResult.value && colResult.value) { editor.replaceSelection( @@ -1321,13 +1321,13 @@ function addLatexMenu( } function generateTable(rowNum: number, colNum: number): string { - let columnConfig = 'c|'; + const columnConfig = 'c|'; let rowText = ''; for (let i = 1; i <= rowNum * colNum; i++) { - if (i % colNum == 0) { + if (i % colNum === 0) { rowText += `cell${i} \\\\`; - if (i != rowNum * colNum) { + if (i !== rowNum * colNum) { rowText += '\n\\hline\n'; } } else { @@ -1440,4 +1440,4 @@ namespace Private { errorPanel.title.closable = true; return errorPanel; } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 565297b..255cc9d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -558,6 +558,20 @@ __metadata: languageName: node linkType: hard +"@jupyterlab/attachments@npm:^4.2.5": + version: 4.2.5 + resolution: "@jupyterlab/attachments@npm:4.2.5" + dependencies: + "@jupyterlab/nbformat": ^4.2.5 + "@jupyterlab/observables": ^5.2.5 + "@jupyterlab/rendermime": ^4.2.5 + "@jupyterlab/rendermime-interfaces": ^3.10.5 + "@lumino/disposable": ^2.1.2 + "@lumino/signaling": ^2.1.2 + checksum: f49fc50f9889de9c7da88e004ae4dd562460da050ff373c946ec54863fcf293dacb5e15de57dbfb0b01141648989a873188a00b898cbb491bbd6c50140a0392c + languageName: node + linkType: hard + "@jupyterlab/builder@npm:^4.0.0": version: 4.2.5 resolution: "@jupyterlab/builder@npm:4.2.5" @@ -599,6 +613,42 @@ __metadata: languageName: node linkType: hard +"@jupyterlab/cells@npm:^4.2.5": + version: 4.2.5 + resolution: "@jupyterlab/cells@npm:4.2.5" + dependencies: + "@codemirror/state": ^6.4.1 + "@codemirror/view": ^6.26.0 + "@jupyter/ydoc": ^2.0.1 + "@jupyterlab/apputils": ^4.3.5 + "@jupyterlab/attachments": ^4.2.5 + "@jupyterlab/codeeditor": ^4.2.5 + "@jupyterlab/codemirror": ^4.2.5 + "@jupyterlab/coreutils": ^6.2.5 + "@jupyterlab/documentsearch": ^4.2.5 + "@jupyterlab/filebrowser": ^4.2.5 + "@jupyterlab/nbformat": ^4.2.5 + "@jupyterlab/observables": ^5.2.5 + "@jupyterlab/outputarea": ^4.2.5 + "@jupyterlab/rendermime": ^4.2.5 + "@jupyterlab/services": ^7.2.5 + "@jupyterlab/toc": ^6.2.5 + "@jupyterlab/translation": ^4.2.5 + "@jupyterlab/ui-components": ^4.2.5 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/domutils": ^2.0.1 + "@lumino/dragdrop": ^2.1.4 + "@lumino/messaging": ^2.0.1 + "@lumino/polling": ^2.1.2 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + "@lumino/widgets": ^2.3.2 + react: ^18.2.0 + checksum: 6b2f84c0036dbc8808eb6f5057d07dae00d8000fac2f91568ca3f9b6abe30e6724d1be7ce53f085f6e8a93850817316f4e9e2c0e4fb81c3b29e104908a570d3b + languageName: node + linkType: hard + "@jupyterlab/codeeditor@npm:^4.0.0, @jupyterlab/codeeditor@npm:^4.2.5": version: 4.2.5 resolution: "@jupyterlab/codeeditor@npm:4.2.5" @@ -749,7 +799,7 @@ __metadata: languageName: node linkType: hard -"@jupyterlab/filebrowser@npm:^4.0.0": +"@jupyterlab/filebrowser@npm:^4.0.0, @jupyterlab/filebrowser@npm:^4.2.5": version: 4.2.5 resolution: "@jupyterlab/filebrowser@npm:4.2.5" dependencies: @@ -818,6 +868,7 @@ __metadata: "@jupyterlab/fileeditor": ^4.0.0 "@jupyterlab/launcher": ^4.0.0 "@jupyterlab/mainmenu": ^4.0.0 + "@jupyterlab/notebook": ^4.0.0 "@jupyterlab/services": ^7.0.0 "@jupyterlab/settingregistry": ^4.0.0 "@jupyterlab/statedb": ^4.0.0 @@ -927,6 +978,44 @@ __metadata: languageName: node linkType: hard +"@jupyterlab/notebook@npm:^4.0.0": + version: 4.2.5 + resolution: "@jupyterlab/notebook@npm:4.2.5" + dependencies: + "@jupyter/ydoc": ^2.0.1 + "@jupyterlab/apputils": ^4.3.5 + "@jupyterlab/cells": ^4.2.5 + "@jupyterlab/codeeditor": ^4.2.5 + "@jupyterlab/codemirror": ^4.2.5 + "@jupyterlab/coreutils": ^6.2.5 + "@jupyterlab/docregistry": ^4.2.5 + "@jupyterlab/documentsearch": ^4.2.5 + "@jupyterlab/lsp": ^4.2.5 + "@jupyterlab/nbformat": ^4.2.5 + "@jupyterlab/observables": ^5.2.5 + "@jupyterlab/rendermime": ^4.2.5 + "@jupyterlab/services": ^7.2.5 + "@jupyterlab/settingregistry": ^4.2.5 + "@jupyterlab/statusbar": ^4.2.5 + "@jupyterlab/toc": ^6.2.5 + "@jupyterlab/translation": ^4.2.5 + "@jupyterlab/ui-components": ^4.2.5 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/domutils": ^2.0.1 + "@lumino/dragdrop": ^2.1.4 + "@lumino/messaging": ^2.0.1 + "@lumino/polling": ^2.1.2 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + "@lumino/widgets": ^2.3.2 + react: ^18.2.0 + checksum: 1c91b42e890407574451903af7d48db8c216fa9e27ecc4e60ee76366572029ff73be3974085427b72eaedf67e718a7d4f93207f7b66dd3cf27a0b51172ca7727 + languageName: node + linkType: hard + "@jupyterlab/observables@npm:^5.2.5": version: 5.2.5 resolution: "@jupyterlab/observables@npm:5.2.5" @@ -940,6 +1029,28 @@ __metadata: languageName: node linkType: hard +"@jupyterlab/outputarea@npm:^4.2.5": + version: 4.2.5 + resolution: "@jupyterlab/outputarea@npm:4.2.5" + dependencies: + "@jupyterlab/apputils": ^4.3.5 + "@jupyterlab/nbformat": ^4.2.5 + "@jupyterlab/observables": ^5.2.5 + "@jupyterlab/rendermime": ^4.2.5 + "@jupyterlab/rendermime-interfaces": ^3.10.5 + "@jupyterlab/services": ^7.2.5 + "@jupyterlab/translation": ^4.2.5 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.2 + checksum: 0e2834244dfc12491d7207e9749c92caaa44424e5541cb227f5933a61884e6d42c67791f5c8982cbefebf6b7ce94fe595e633571d9ebc381dd130616899a4291 + languageName: node + linkType: hard + "@jupyterlab/rendermime-interfaces@npm:^3.10.5": version: 3.10.5 resolution: "@jupyterlab/rendermime-interfaces@npm:3.10.5" From cf6bc7e8c02d713f6d097adeb01b3b35f1996d23 Mon Sep 17 00:00:00 2001 From: Akshat Saini Date: Wed, 11 Sep 2024 13:28:13 -0400 Subject: [PATCH 23/28] chore: update sample.tex --- sample.tex | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/sample.tex b/sample.tex index 2e74d75..56e72c1 100644 --- a/sample.tex +++ b/sample.tex @@ -6,17 +6,18 @@ \title{JupyterLab \LaTeX} \date{} \maketitle - +test +$5_{3_{4} + 4_{3} + 5^{4}}$ \section{Introduction} This is a sample document demonstrating the ability to live-edit \LaTeX documents in JupyterLab. \\ -\\ Right-click on this document, and select "Show LaTeX Preview". A new panel should open up on the right with the PDF that is generated by this document. If there are any errors in the document, an error panel should open below. \\ +Test \\ We can write equations: \begin{equation} @@ -25,7 +26,6 @@ \section{Introduction} \label{eq:Navier–Stokes} \end{equation} \\ -\\ And we can write tables: \begin{center} \begin{tabular}{ | l | c | r| } @@ -37,8 +37,16 @@ \section{Introduction} \end{tabular} \end{center} + +\centering{Right-click on this document, and select "Show LaTeX Preview". A new panel should open up on the right with the PDF that is generated by this document. If there are any errors in the document, an error panel should open below.} + + We can reference equations by their numbers, i.e. Equation (\ref{eq:Navier–Stokes}). +Hello +We can reference equations by their numbers, i.e. Equation (\ref{eq:Navier–Stokes}). + + \subsection{We can add new subsections} And we can include images, such as the Jupyter logo: \begin{center} @@ -50,8 +58,6 @@ \subsection{We can add new subsections} \pagebreak - - You can also use SyncTeX by typing ⌘(CMD)/CTRL+⇧(SHIFT)+X. -\end{document} +\end{document} \ No newline at end of file From 076b2758c16ce08dda6990c3c45177453d511740 Mon Sep 17 00:00:00 2001 From: Akshat Saini Date: Wed, 11 Sep 2024 13:58:55 -0400 Subject: [PATCH 24/28] chore: update build.py, index.ts --- jupyterlab_latex/build.py | 18 +++--- src/index.ts | 131 ++++++++++++++++++++------------------ 2 files changed, 77 insertions(+), 72 deletions(-) diff --git a/jupyterlab_latex/build.py b/jupyterlab_latex/build.py index 7a8819e..d33596d 100644 --- a/jupyterlab_latex/build.py +++ b/jupyterlab_latex/build.py @@ -64,8 +64,8 @@ class LatexBuildHandler(APIHandler): A handler that runs LaTeX on the server. """ - def initialize(self, notebook_dir): - self.notebook_dir = notebook_dir + def initialize(self, root_dir): + self.root_dir = root_dir def build_tex_cmd_sequence(self, tex_base_name, run_bibtex=False): @@ -138,22 +138,18 @@ def bib_condition(self): def filter_output(self, latex_output): """Filters latex output for "interesting" messages - Parameters ---------- latex_output: string This is the output of the executed latex command from, run_command in run_latex. - returns: A string representing the filtered output. - Notes ----- - Based on the public domain perl script texfot v 1.43 written by Karl Berry in 2014. It has no home page beyond the package on CTAN: . - """ ignore = re.compile(r'''^( LaTeX\ Warning:\ You\ have\ requested\ package @@ -208,7 +204,7 @@ def filter_output(self, latex_output): if print_next: filtered_output.append(line) print_next = False - + elif ignore.match(line): continue @@ -221,7 +217,6 @@ def filter_output(self, latex_output): return '\n'.join(filtered_output) - @gen.coroutine def run_latex(self, command_sequence): """Run commands sequentially, returning a 500 code on an error. @@ -247,6 +242,8 @@ def run_latex(self, command_sequence): """ for cmd in command_sequence: + self.log.debug(f'jupyterlab-latex: run: {" ".join(cmd)} (CWD: {os.getcwd()})') + code, output = yield run_command(cmd) if code != 0: self.set_status(500) @@ -264,10 +261,13 @@ def get(self, path = ''): Given a path, run LaTeX, cleanup, and respond when done. """ # Parse the path into the base name and extension of the file - tex_file_path = os.path.join(self.notebook_dir, path.strip('/')) + tex_file_path = os.path.join(self.root_dir, path.strip('/')) tex_base_name, ext = os.path.splitext(os.path.basename(tex_file_path)) c = LatexConfig(config=self.config) + self.log.debug((f"jupyterlab-latex: get: path=({path}), " + f"CWD=({os.getcwd()}), root_dir=({self.serverapp.root_dir})")) + if not os.path.exists(tex_file_path): self.set_status(403) out = f"Request cannot be completed; no file at `{tex_file_path}`." diff --git a/src/index.ts b/src/index.ts index 9e7fcf7..93308a6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -73,8 +73,7 @@ import { IDisposable, DisposableDelegate } from '@lumino/disposable'; /** * A class that tracks editor widgets. */ -export interface IPDFJSTracker - extends IWidgetTracker> {} +export type IPDFJSTracker = IWidgetTracker>; /* tslint:disable */ /** @@ -238,7 +237,7 @@ function synctexViewRequest( function isLatexFile( editorTracker: IEditorTracker ): IDocumentWidget | null { - const widget = editorTracker.currentWidget; + let widget = editorTracker.currentWidget; if (widget && PathExt.extname(widget.context.path) === '.tex') { return widget; } else { @@ -367,7 +366,13 @@ function activateLatexPlugin( return Promise.resolve(void 0); } pending = true; - return latexBuildRequest(texContext!.path, synctex, serverSettings) + + /** Get the local file path without any drive prefix potentially added by + * other extensions like jupyter-collaboration + */ + const localPath = app.serviceManager.contents.localPath(texContext!.path); + + return latexBuildRequest(localPath, synctex, serverSettings) .then(() => { // Read the pdf file contents from disk. pdfContext ? pdfContext.revert() : findOpenOrRevealPDF(); @@ -418,8 +423,8 @@ function activateLatexPlugin( }; class EditorToolbarPanel - implements DocumentRegistry.IWidgetExtension - { + implements + DocumentRegistry.IWidgetExtension { createNew( panel: NotebookPanel, context: DocumentRegistry.IContext @@ -429,9 +434,9 @@ function activateLatexPlugin( }; const createInputDialog = (mess: string, action: string) => { - const widget = editorTracker.currentWidget; + let widget = editorTracker.currentWidget; if (widget) { - const editor = widget.content.editor; + let editor = widget.content.editor; InputDialog.getText({ title: mess }).then(value => { @@ -445,13 +450,13 @@ function activateLatexPlugin( }; const replaceSelection = (action: string) => { - const widget = editorTracker.currentWidget; + let widget = editorTracker.currentWidget; if (widget) { - const editor = widget.content.editor; + let editor = widget.content.editor; if (editor.replaceSelection && editor.getSelection) { - const start = editor.getSelection().start; - const end = editor.getSelection().end; - if (start.line === end.line) { + let start = editor.getSelection().start; + let end = editor.getSelection().end; + if (start.line == end.line) { let selection: string | undefined = editor.getLine(start.line); if (selection) { selection = selection.substring(start.column, end.column); @@ -467,17 +472,17 @@ function activateLatexPlugin( }; const insertSubscript = () => { - const action = '_'; - const result = replaceSelection(action); - if (result === 0) { + let action = '_'; + let result = replaceSelection(action); + if (result == 0) { createInputDialog('Provide Desired Subscript', action); } }; const insertSuperscript = () => { - const action = '^'; - const result = replaceSelection(action); - if (result === 0) { + let action = '^'; + let result = replaceSelection(action); + if (result == 0) { createInputDialog('Provide Desired Superscript', action); } }; @@ -488,11 +493,11 @@ function activateLatexPlugin( 'Provide Desired Fraction: Numerator, Denominator\nEX: 1,2 -> \u00BD ' }).then(value => { if (value.value) { - const widget = editorTracker.currentWidget; - const inputString = value.value; - const inputArgs = inputString.split(','); - if (widget && inputArgs.length === 2) { - const editor = widget.content.editor; + let widget = editorTracker.currentWidget; + let inputString = value.value; + let inputArgs = inputString.split(','); + if (widget && inputArgs.length == 2) { + let editor = widget.content.editor; if (editor.replaceSelection) { editor.replaceSelection( '\\frac{' + @@ -508,57 +513,57 @@ function activateLatexPlugin( }; const leftAlign = () => { - const action = '\\leftline'; - const result = replaceSelection(action); - if (result === 0) { + let action = '\\leftline'; + let result = replaceSelection(action); + if (result == 0) { createInputDialog('Provide Text to Left Align', action); } }; const centerAlign = () => { - const action = '\\centerline'; - const result = replaceSelection(action); - if (result === 0) { + let action = '\\centerline'; + let result = replaceSelection(action); + if (result == 0) { createInputDialog('Provide Text to Center Align', action); } }; const rightAlign = () => { - const action = '\\rightline'; - const result = replaceSelection(action); - if (result === 0) { + let action = '\\rightline'; + let result = replaceSelection(action); + if (result == 0) { createInputDialog('Provide Text to Right Align', action); } }; const insertBold = () => { - const action = '\\textbf'; - const result = replaceSelection(action); - if (result === 0) { + let action = '\\textbf'; + let result = replaceSelection(action); + if (result == 0) { createInputDialog('Provide Text to Bold', action); } }; const insertItalics = () => { - const action = '\\textit'; - const result = replaceSelection(action); - if (result === 0) { + let action = '\\textit'; + let result = replaceSelection(action); + if (result == 0) { createInputDialog('Provide Text to Italicise', action); } }; const insertUnderline = () => { - const action = '\\underline'; - const result = replaceSelection(action); - if (result === 0) { + let action = '\\underline'; + let result = replaceSelection(action); + if (result == 0) { createInputDialog('Provide Text to Underline', action); } }; const insertBulletList = () => { - const widget = editorTracker.currentWidget; + let widget = editorTracker.currentWidget; if (widget) { - const editor = widget.content.editor; + let editor = widget.content.editor; if (editor.replaceSelection) { editor.replaceSelection( '\\begin{itemize}' + @@ -573,9 +578,9 @@ function activateLatexPlugin( }; const insertNumberedList = () => { - const widget = editorTracker.currentWidget; + let widget = editorTracker.currentWidget; if (widget) { - const editor = widget.content.editor; + let editor = widget.content.editor; if (editor.replaceSelection) { editor.replaceSelection( '\\begin{enumerate}' + @@ -726,9 +731,9 @@ function activateLatexPlugin( } } - const widget = editorTracker.currentWidget; + let widget = editorTracker.currentWidget; if (widget) { - const editor = widget.content.editor; + let editor = widget.content.editor; if (editor.replaceSelection) { editor.replaceSelection(plotText); } @@ -976,7 +981,7 @@ function activateLatexPlugin( }, isEnabled: hasWidget, isVisible: () => { - return isLatexFile(editorTracker) !== null; + return isLatexFile(editorTracker) != null; }, label: 'Show LaTeX Preview' }); @@ -1193,14 +1198,14 @@ function addLatexMenu( constants.set('Golden Ratio', '\\varphi'); constants.forEach((value: string, key: string) => { - const commandName = 'latex:' + key.replace(' ', '-').toLowerCase(); + let commandName = 'latex:' + key.replace(' ', '-').toLowerCase(); app.commands.addCommand(commandName, { label: key, caption: value, execute: async args => { - const widget = isLatexFile(editorTracker); + let widget = isLatexFile(editorTracker); if (widget) { - const editor = widget.content.editor; + let editor = widget.content.editor; if (editor.replaceSelection) { editor.replaceSelection(value); } @@ -1250,14 +1255,14 @@ function addLatexMenu( symbols.set('Logical Or', '\\lor'); symbols.forEach((value: string, key: string) => { - const commandName = 'latex:' + key.replace(' ', '-').toLowerCase(); + let commandName = 'latex:' + key.replace(' ', '-').toLowerCase(); app.commands.addCommand(commandName, { label: key, caption: value, execute: async args => { - const widget = isLatexFile(editorTracker); + let widget = isLatexFile(editorTracker); if (widget) { - const editor = widget.content.editor; + let editor = widget.content.editor; if (editor.replaceSelection) { editor.replaceSelection(value); } @@ -1275,17 +1280,17 @@ function addLatexMenu( label: 'Create Table', caption: 'Open a window to create a LaTeX table', execute: async args => { - const rowResult = await InputDialog.getNumber({ + let rowResult = await InputDialog.getNumber({ title: 'How many rows?' }); if (rowResult.button.accept) { - const colResult = await InputDialog.getNumber({ + let colResult = await InputDialog.getNumber({ title: 'How many columns?' }); if (colResult.button.accept) { - const widget = isLatexFile(editorTracker); + let widget = isLatexFile(editorTracker); if (widget) { - const editor = widget.content.editor; + let editor = widget.content.editor; if (editor.replaceSelection) { if (rowResult.value && colResult.value) { editor.replaceSelection( @@ -1321,13 +1326,13 @@ function addLatexMenu( } function generateTable(rowNum: number, colNum: number): string { - const columnConfig = 'c|'; + let columnConfig = 'c|'; let rowText = ''; for (let i = 1; i <= rowNum * colNum; i++) { - if (i % colNum === 0) { + if (i % colNum == 0) { rowText += `cell${i} \\\\`; - if (i !== rowNum * colNum) { + if (i != rowNum * colNum) { rowText += '\n\\hline\n'; } } else { @@ -1440,4 +1445,4 @@ namespace Private { errorPanel.title.closable = true; return errorPanel; } -} +} \ No newline at end of file From e974ca36c46bd22ff327180cd1c06c4fd4f39000 Mon Sep 17 00:00:00 2001 From: Akshat Saini Date: Wed, 11 Sep 2024 14:01:55 -0400 Subject: [PATCH 25/28] chore: run prettier on index.ts --- src/index.ts | 120 +++++++++++++++++++++++++-------------------------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/src/index.ts b/src/index.ts index 93308a6..df2bc90 100644 --- a/src/index.ts +++ b/src/index.ts @@ -237,7 +237,7 @@ function synctexViewRequest( function isLatexFile( editorTracker: IEditorTracker ): IDocumentWidget | null { - let widget = editorTracker.currentWidget; + const widget = editorTracker.currentWidget; if (widget && PathExt.extname(widget.context.path) === '.tex') { return widget; } else { @@ -423,8 +423,8 @@ function activateLatexPlugin( }; class EditorToolbarPanel - implements - DocumentRegistry.IWidgetExtension { + implements DocumentRegistry.IWidgetExtension + { createNew( panel: NotebookPanel, context: DocumentRegistry.IContext @@ -434,9 +434,9 @@ function activateLatexPlugin( }; const createInputDialog = (mess: string, action: string) => { - let widget = editorTracker.currentWidget; + const widget = editorTracker.currentWidget; if (widget) { - let editor = widget.content.editor; + const editor = widget.content.editor; InputDialog.getText({ title: mess }).then(value => { @@ -450,13 +450,13 @@ function activateLatexPlugin( }; const replaceSelection = (action: string) => { - let widget = editorTracker.currentWidget; + const widget = editorTracker.currentWidget; if (widget) { - let editor = widget.content.editor; + const editor = widget.content.editor; if (editor.replaceSelection && editor.getSelection) { - let start = editor.getSelection().start; - let end = editor.getSelection().end; - if (start.line == end.line) { + const start = editor.getSelection().start; + const end = editor.getSelection().end; + if (start.line === end.line) { let selection: string | undefined = editor.getLine(start.line); if (selection) { selection = selection.substring(start.column, end.column); @@ -472,17 +472,17 @@ function activateLatexPlugin( }; const insertSubscript = () => { - let action = '_'; - let result = replaceSelection(action); - if (result == 0) { + const action = '_'; + const result = replaceSelection(action); + if (result === 0) { createInputDialog('Provide Desired Subscript', action); } }; const insertSuperscript = () => { - let action = '^'; - let result = replaceSelection(action); - if (result == 0) { + const action = '^'; + const result = replaceSelection(action); + if (result === 0) { createInputDialog('Provide Desired Superscript', action); } }; @@ -493,11 +493,11 @@ function activateLatexPlugin( 'Provide Desired Fraction: Numerator, Denominator\nEX: 1,2 -> \u00BD ' }).then(value => { if (value.value) { - let widget = editorTracker.currentWidget; - let inputString = value.value; - let inputArgs = inputString.split(','); - if (widget && inputArgs.length == 2) { - let editor = widget.content.editor; + const widget = editorTracker.currentWidget; + const inputString = value.value; + const inputArgs = inputString.split(','); + if (widget && inputArgs.length === 2) { + const editor = widget.content.editor; if (editor.replaceSelection) { editor.replaceSelection( '\\frac{' + @@ -513,57 +513,57 @@ function activateLatexPlugin( }; const leftAlign = () => { - let action = '\\leftline'; - let result = replaceSelection(action); - if (result == 0) { + const action = '\\leftline'; + const result = replaceSelection(action); + if (result === 0) { createInputDialog('Provide Text to Left Align', action); } }; const centerAlign = () => { - let action = '\\centerline'; - let result = replaceSelection(action); - if (result == 0) { + const action = '\\centerline'; + const result = replaceSelection(action); + if (result === 0) { createInputDialog('Provide Text to Center Align', action); } }; const rightAlign = () => { - let action = '\\rightline'; - let result = replaceSelection(action); - if (result == 0) { + const action = '\\rightline'; + const result = replaceSelection(action); + if (result === 0) { createInputDialog('Provide Text to Right Align', action); } }; const insertBold = () => { - let action = '\\textbf'; - let result = replaceSelection(action); - if (result == 0) { + const action = '\\textbf'; + const result = replaceSelection(action); + if (result === 0) { createInputDialog('Provide Text to Bold', action); } }; const insertItalics = () => { - let action = '\\textit'; - let result = replaceSelection(action); - if (result == 0) { + const action = '\\textit'; + const result = replaceSelection(action); + if (result === 0) { createInputDialog('Provide Text to Italicise', action); } }; const insertUnderline = () => { - let action = '\\underline'; - let result = replaceSelection(action); - if (result == 0) { + const action = '\\underline'; + const result = replaceSelection(action); + if (result === 0) { createInputDialog('Provide Text to Underline', action); } }; const insertBulletList = () => { - let widget = editorTracker.currentWidget; + const widget = editorTracker.currentWidget; if (widget) { - let editor = widget.content.editor; + const editor = widget.content.editor; if (editor.replaceSelection) { editor.replaceSelection( '\\begin{itemize}' + @@ -578,9 +578,9 @@ function activateLatexPlugin( }; const insertNumberedList = () => { - let widget = editorTracker.currentWidget; + const widget = editorTracker.currentWidget; if (widget) { - let editor = widget.content.editor; + const editor = widget.content.editor; if (editor.replaceSelection) { editor.replaceSelection( '\\begin{enumerate}' + @@ -731,9 +731,9 @@ function activateLatexPlugin( } } - let widget = editorTracker.currentWidget; + const widget = editorTracker.currentWidget; if (widget) { - let editor = widget.content.editor; + const editor = widget.content.editor; if (editor.replaceSelection) { editor.replaceSelection(plotText); } @@ -981,7 +981,7 @@ function activateLatexPlugin( }, isEnabled: hasWidget, isVisible: () => { - return isLatexFile(editorTracker) != null; + return isLatexFile(editorTracker) !== null; }, label: 'Show LaTeX Preview' }); @@ -1198,14 +1198,14 @@ function addLatexMenu( constants.set('Golden Ratio', '\\varphi'); constants.forEach((value: string, key: string) => { - let commandName = 'latex:' + key.replace(' ', '-').toLowerCase(); + const commandName = 'latex:' + key.replace(' ', '-').toLowerCase(); app.commands.addCommand(commandName, { label: key, caption: value, execute: async args => { - let widget = isLatexFile(editorTracker); + const widget = isLatexFile(editorTracker); if (widget) { - let editor = widget.content.editor; + const editor = widget.content.editor; if (editor.replaceSelection) { editor.replaceSelection(value); } @@ -1255,14 +1255,14 @@ function addLatexMenu( symbols.set('Logical Or', '\\lor'); symbols.forEach((value: string, key: string) => { - let commandName = 'latex:' + key.replace(' ', '-').toLowerCase(); + const commandName = 'latex:' + key.replace(' ', '-').toLowerCase(); app.commands.addCommand(commandName, { label: key, caption: value, execute: async args => { - let widget = isLatexFile(editorTracker); + const widget = isLatexFile(editorTracker); if (widget) { - let editor = widget.content.editor; + const editor = widget.content.editor; if (editor.replaceSelection) { editor.replaceSelection(value); } @@ -1280,17 +1280,17 @@ function addLatexMenu( label: 'Create Table', caption: 'Open a window to create a LaTeX table', execute: async args => { - let rowResult = await InputDialog.getNumber({ + const rowResult = await InputDialog.getNumber({ title: 'How many rows?' }); if (rowResult.button.accept) { - let colResult = await InputDialog.getNumber({ + const colResult = await InputDialog.getNumber({ title: 'How many columns?' }); if (colResult.button.accept) { - let widget = isLatexFile(editorTracker); + const widget = isLatexFile(editorTracker); if (widget) { - let editor = widget.content.editor; + const editor = widget.content.editor; if (editor.replaceSelection) { if (rowResult.value && colResult.value) { editor.replaceSelection( @@ -1326,13 +1326,13 @@ function addLatexMenu( } function generateTable(rowNum: number, colNum: number): string { - let columnConfig = 'c|'; + const columnConfig = 'c|'; let rowText = ''; for (let i = 1; i <= rowNum * colNum; i++) { - if (i % colNum == 0) { + if (i % colNum === 0) { rowText += `cell${i} \\\\`; - if (i != rowNum * colNum) { + if (i !== rowNum * colNum) { rowText += '\n\\hline\n'; } } else { @@ -1445,4 +1445,4 @@ namespace Private { errorPanel.title.closable = true; return errorPanel; } -} \ No newline at end of file +} From 9f30f6015b5c30dc7396a5211952c7abda7355ff Mon Sep 17 00:00:00 2001 From: Akshat Saini Date: Wed, 11 Sep 2024 16:12:30 -0400 Subject: [PATCH 26/28] chore: run lint check --- src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index 21db12a..df2bc90 100644 --- a/src/index.ts +++ b/src/index.ts @@ -264,7 +264,7 @@ function activateLatexPlugin( ): void { const { commands } = app; const id = 'jupyterlab-latex'; - + const icon = new LabIcon({ name: 'launcher:latex-icon', svgstr: latexIconStr From cdbcf55d7c1a7f30321a9d0d598a69ed25155c0b Mon Sep 17 00:00:00 2001 From: Akshat Saini Date: Wed, 11 Sep 2024 16:16:46 -0400 Subject: [PATCH 27/28] chore: added new yarn.lock --- yarn.lock | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/yarn.lock b/yarn.lock index d9bdd4a..255cc9d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -572,20 +572,6 @@ __metadata: languageName: node linkType: hard -"@jupyterlab/attachments@npm:^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/attachments@npm:4.0.0" - dependencies: - "@jupyterlab/nbformat": ^4.0.0 - "@jupyterlab/observables": ^5.0.0 - "@jupyterlab/rendermime": ^4.0.0 - "@jupyterlab/rendermime-interfaces": ^3.8.0 - "@lumino/disposable": ^2.1.1 - "@lumino/signaling": ^2.1.1 - checksum: 71c8e488a0d31e00e1345336edece04faa0d2b6fbf5de284fad05bb2a8f732c57e9b2ffe10999dd416a1d00cdce4bc425f9f88dd91684cb8b55eea52a1d5ed98 - languageName: node - linkType: hard - "@jupyterlab/builder@npm:^4.0.0": version: 4.2.5 resolution: "@jupyterlab/builder@npm:4.2.5" From e2c862a8f041bb61904fc945c1f4fdde05c07579 Mon Sep 17 00:00:00 2001 From: Akshat Saini Date: Wed, 11 Sep 2024 16:46:40 -0400 Subject: [PATCH 28/28] chore: clean build.py --- jupyterlab_latex/build.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/jupyterlab_latex/build.py b/jupyterlab_latex/build.py index 124a1a3..5fc2eda 100644 --- a/jupyterlab_latex/build.py +++ b/jupyterlab_latex/build.py @@ -138,22 +138,22 @@ def bib_condition(self): def filter_output(self, latex_output): """Filters latex output for "interesting" messages -<<<<<<< HEAD -======= ->>>>>>> upstream/ux-improvements Parameters ---------- latex_output: string This is the output of the executed latex command from, run_command in run_latex. + returns: A string representing the filtered output. + Notes ----- - Based on the public domain perl script texfot v 1.43 written by Karl Berry in 2014. It has no home page beyond the package on CTAN: . + """ ignore = re.compile(r'''^( LaTeX\ Warning:\ You\ have\ requested\ package