diff --git a/nodpy/ast_tools.py b/nodpy/ast_tools.py index 209011f..f19d5c7 100644 --- a/nodpy/ast_tools.py +++ b/nodpy/ast_tools.py @@ -5,7 +5,11 @@ import libcst as cst from libcst.display import dump import libcst.matchers as m -from libcst.metadata import PositionProvider, ParentNodeProvider +from libcst.metadata import ( + PositionProvider, + ParentNodeProvider, + WhitespaceInclusivePositionProvider, +) from libcst.metadata import CodePosition, CodeRange _log = logging.getLogger(__name__) @@ -16,10 +20,12 @@ class FunctionFinder(m.MatcherDecoratableTransformer): METADATA_DEPENDENCIES = ( ParentNodeProvider, PositionProvider, + WhitespaceInclusivePositionProvider, ) parent_node: cst.CSTNode parent_pos: CodeRange body_indent: CodeRange + body_indent_whitespace: CodeRange target_function: str def __init__(self, target_function: str, line_no: int): @@ -32,12 +38,18 @@ def __init__(self, target_function: str, line_no: int): def visit_function(self, node: cst.FunctionDef): if m.matches(node, m.FunctionDef(m.Name(self.target_function))): body_indent = self.get_metadata(PositionProvider, node.body) - if isinstance(body_indent, CodeRange): + body_indent_whitespace = self.get_metadata( + WhitespaceInclusivePositionProvider, node.body + ) + if isinstance(body_indent, CodeRange) and isinstance( + body_indent_whitespace, CodeRange + ): if ( body_indent.start.line <= self.line_no and body_indent.end.line >= self.line_no ): self.body_indent = body_indent + self.body_indent_whitespace = body_indent_whitespace self.parent_node = node parent_pos = self.get_metadata(PositionProvider, node) if isinstance(parent_pos, CodeRange): @@ -48,17 +60,20 @@ class NodFinder(m.MatcherDecoratableTransformer): METADATA_DEPENDENCIES = ( ParentNodeProvider, PositionProvider, + WhitespaceInclusivePositionProvider, ) parent_node: cst.CSTNode parent_pos: CodeRange body_indent: CodeRange + body_indent_whitespace: CodeRange indent_block: cst.IndentedBlock | None indent_pos: CodeRange | None + indent_pos_whitespace: CodeRange | None def __init__(self, lineno: int, zoom_out: int): super(__class__, self).__init__() # type: ignore self.lineno = lineno - self.indent_stack: List[Tuple[cst.IndentedBlock, CodeRange]] = [] + self.indent_stack: List[Tuple[cst.IndentedBlock, CodeRange, CodeRange]] = [] self.def_stack: List[cst.FunctionDef] = [] self.zoom_out = zoom_out @@ -81,8 +96,14 @@ def visit_notebook_call(self, node: cst.Call): parent_node = self.get_metadata(ParentNodeProvider, indent_block) if isinstance(parent_node, cst.CSTNode): body_indent = self.get_metadata(PositionProvider, indent_block) - if isinstance(body_indent, CodeRange): + body_indent_whitespace = self.get_metadata( + WhitespaceInclusivePositionProvider, indent_block + ) + if isinstance(body_indent, CodeRange) and isinstance( + body_indent_whitespace, CodeRange + ): self.body_indent = body_indent + self.body_indent_whitespace = body_indent_whitespace self.parent_node = parent_node parent_pos = self.get_metadata( PositionProvider, parent_node @@ -96,6 +117,7 @@ def visit_notebook_call(self, node: cst.Call): stack_entry = self.indent_stack[-1 * (self.zoom_out + 1)] self.indent_block = stack_entry[0] self.indent_pos = stack_entry[1] + self.indent_pos_whitespace = stack_entry[2] # _log.warning( # f"indent_block: {self.indent_block}, {self.indent_pos}" # ) @@ -105,9 +127,18 @@ def visit_notebook_call(self, node: cst.Call): def visit_IndentedBlock(self, node): indent_pos = self.get_metadata(PositionProvider, node) - if isinstance(indent_pos, CodeRange): + indent_pos_whitespace = self.get_metadata( + WhitespaceInclusivePositionProvider, node + ) + if isinstance(indent_pos, CodeRange) and isinstance( + indent_pos_whitespace, CodeRange + ): self.indent_stack.append( - (cst.ensure_type(node, cst.IndentedBlock), indent_pos) + ( + cst.ensure_type(node, cst.IndentedBlock), + indent_pos, + indent_pos_whitespace, + ) ) def leave_IndentedBlock(self, original_node, updated_node): diff --git a/nodpy/file_helpers.py b/nodpy/file_helpers.py index 7aa9ba5..4c7f117 100644 --- a/nodpy/file_helpers.py +++ b/nodpy/file_helpers.py @@ -166,15 +166,27 @@ def makeProgramInfo( if stackFrame.function == "": func_head_start = 0 func_head_start_id = 0 + func_body_start = 0 + func_end = len(source_lines) + 1 body_indent = CodeRange( CodePosition(0, 0), CodePosition(len(source_lines) + 1, 0), ) + body_indent_whitespace = CodeRange( + CodePosition(0, 0), + CodePosition(len(source_lines) + 1, 0), + ) else: finder = FunctionFinder(stackFrame.function, stackFrame.lineno) module = wrapper.visit(finder) - _log.debug(module) + # _log.info(module) body_indent = finder.body_indent + func_body_start = finder.body_indent_whitespace.start.line + 1 + while source_lines[max(func_body_start - 1, 0)] == "\n": + func_body_start += 1 + func_end = finder.body_indent_whitespace.end.line - 1 + while source_lines[min(func_end - 1, len(source_lines) - 1)] == "\n": + func_end -= 1 func_head_start = finder.parent_pos.start.line func_head_start_id = finder.parent_pos.start.line if zoom_out > -1: @@ -183,15 +195,25 @@ def makeProgramInfo( if ( nodFinder.indent_block is not None and nodFinder.indent_pos is not None + and nodFinder.indent_pos_whitespace is not None and nodFinder.indent_pos.start.line >= body_indent.start.line and nodFinder.indent_pos.end.line <= body_indent.end.line ): body_indent = nodFinder.indent_pos - func_head_start = nodFinder.indent_pos.start.line + func_body_start = nodFinder.indent_pos_whitespace.start.line + 1 + while source_lines[max(func_body_start - 1, 0)] == "\n": + func_body_start += 1 + # func_body_start = nodFinder.indent_pos.start.line + func_end = nodFinder.indent_pos.end.line + func_head_start = func_body_start + _log.info(f"Zoom Out = {zoom_out}") + _log.info(nodFinder.indent_pos_whitespace) indent = body_indent.start.column - func_body_start = body_indent.start.line - func_end = body_indent.end.line + _log.info( + f"indent = {indent}, func_body_start = {func_body_start}, func_end = {func_end}" + ) + _log.info(body_indent) return writeNotebook( ProgramInfo( index=index, @@ -208,13 +230,27 @@ def makeProgramInfo( frame_xml=list(stackFrame.frame.f_locals.keys()), fmt=fmt, file_info=FileInfo( - function_body_position=body_indent, + function_body_position=CodeRange( + CodePosition( + func_body_start, + body_indent.start.column, + ), + CodePosition( + func_end, + body_indent.start.column, + ), + ), indent=indent, text_header=source_lines[ max(func_head_start - 1, 0) : max(func_body_start - 1, 0) ], text_body=[ - line[indent:] if line[:indent] == """ """ * indent else line + ( + line[indent:] + if line[:indent] == """ """ * indent + # else line.lstrip() if line.lstrip().startswith("#") + else line + ) for line in source_lines[max(func_body_start - 1, 0) : func_end] ], text_above=source_lines[0 : max(func_head_start - 1, 0)], diff --git a/nodpy/serverExtension.py b/nodpy/serverExtension.py index f7696c0..2171484 100644 --- a/nodpy/serverExtension.py +++ b/nodpy/serverExtension.py @@ -272,6 +272,7 @@ def post(self): + textwrap.indent( nb_content_to_write, " " * fileInfo.indent, + # lambda x: not x.startswith("#"), ).splitlines(True) + fileInfo.text_below ) diff --git a/nodpy/tests/moduletest.py b/nodpy/tests/moduletest.py index 10bafb0..19b8415 100644 --- a/nodpy/tests/moduletest.py +++ b/nodpy/tests/moduletest.py @@ -1,10 +1,19 @@ from nodpy import notebook, nodLog -def f(): +def f(x): + for i in range(10): nodLog(i) - notebook() + +# # execute notebook when $i = 8$ + + if i == 8: + notebook() + + +def g(): + f(10) -f() +g() diff --git a/yarn.lock b/yarn.lock index 5d6f940..e00543b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1371,8 +1371,8 @@ __metadata: linkType: hard "@codemirror/lang-html@npm:^6.0.0, @codemirror/lang-html@npm:^6.4.11": - version: 6.4.11 - resolution: "@codemirror/lang-html@npm:6.4.11" + version: 6.4.12 + resolution: "@codemirror/lang-html@npm:6.4.12" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/lang-css": ^6.0.0 @@ -1383,7 +1383,7 @@ __metadata: "@lezer/common": ^1.0.0 "@lezer/css": ^1.1.0 "@lezer/html": ^1.3.12 - checksum: 31a16cc6be4daa58c6765274b9b7ba1bb54a4b0858d33d8ad1c7ec1bcb85920e3715a891f8cb27f5d9dfe87bbe00f0ddfbac5b04011374e15380b9cec7ba3c69 + checksum: 0ef2b72e98ae50880ea2cb299761cea61a5a0ae56c0bc40867ee97a0018593bac3eb521e953b5f8a9d8bf6586284711652996a6fca8fef047df7efd1d5e548f4 languageName: node linkType: hard @@ -1423,8 +1423,8 @@ __metadata: linkType: hard "@codemirror/lang-markdown@npm:^6.5.0": - version: 6.5.1 - resolution: "@codemirror/lang-markdown@npm:6.5.1" + version: 6.5.2 + resolution: "@codemirror/lang-markdown@npm:6.5.2" dependencies: "@codemirror/autocomplete": ^6.7.1 "@codemirror/lang-html": ^6.0.0 @@ -1433,7 +1433,7 @@ __metadata: "@codemirror/view": ^6.0.0 "@lezer/common": ^1.2.1 "@lezer/markdown": ^1.0.0 - checksum: 35785bdc3852fde0a08b21b83adf73e879468d4db974a3ba866901b836ee9a0359549f98a236a16fd752de43fd3aedacacb23d0d015a01171c6d68734256c9f5 + checksum: e978a64e49fe517caf442a15f6f0c2ce7a22e9f5018070d67aae539becafb49cf331c1cdbd7cdf991fe529664c5f9df2192c4ba9e3a797d68073b74f3cf663cb languageName: node linkType: hard @@ -1568,14 +1568,14 @@ __metadata: linkType: hard "@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0, @codemirror/view@npm:^6.23.0, @codemirror/view@npm:^6.27.0, @codemirror/view@npm:^6.37.0, @codemirror/view@npm:^6.39.14, @codemirror/view@npm:^6.42.0": - version: 6.43.7 - resolution: "@codemirror/view@npm:6.43.7" + version: 6.43.8 + resolution: "@codemirror/view@npm:6.43.8" dependencies: "@codemirror/state": ^6.7.0 crelt: ^1.0.6 style-mod: ^4.1.0 w3c-keyname: ^2.2.4 - checksum: 2faddd84ce8e611710ef9478f65e90f0c4e01b28c6c3ee97514810cd65a5b750d553e0acf0dd14b384e21aa49aab66b2c7b76eda34c8be28d7585463d4425d28 + checksum: fa91ae8e0f9bc8fae70b53052942e0c382fa3e950ec8db9dbb112d66d17a3b5a47a465d604cfcf4792d2c3ad31af3a07da49d64dd8ca3d715d1e1c60c9c303c7 languageName: node linkType: hard @@ -2996,13 +2996,13 @@ __metadata: linkType: hard "@lezer/css@npm:^1.1.0, @lezer/css@npm:^1.1.7": - version: 1.3.4 - resolution: "@lezer/css@npm:1.3.4" + version: 1.3.6 + resolution: "@lezer/css@npm:1.3.6" dependencies: "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.3.0 - checksum: 345f14b57282e36e23572dab4b4fd2146f9f532c6eab5d6d68111e7691c6fa017f84476e0bb1e14faf0fe107addb775a27a188e2d615495de04d0c0e25c9b732 + checksum: 784650626081f3e1e290a22408a2c26d37521d9c15dd51e7d5548e1d46f39ba3a9e1c5bbc2d617b735f827a2e40b6cd1dc742e2aa39dd5aec50df8c12a0a6aac languageName: node linkType: hard @@ -4004,105 +4004,105 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:8.65.0": - version: 8.65.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.65.0" +"@typescript-eslint/eslint-plugin@npm:8.66.0": + version: 8.66.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.66.0" dependencies: "@eslint-community/regexpp": ^4.12.2 - "@typescript-eslint/scope-manager": 8.65.0 - "@typescript-eslint/type-utils": 8.65.0 - "@typescript-eslint/utils": 8.65.0 - "@typescript-eslint/visitor-keys": 8.65.0 + "@typescript-eslint/scope-manager": 8.66.0 + "@typescript-eslint/type-utils": 8.66.0 + "@typescript-eslint/utils": 8.66.0 + "@typescript-eslint/visitor-keys": 8.66.0 ignore: ^7.0.5 natural-compare: ^1.4.0 ts-api-utils: ^2.5.0 peerDependencies: - "@typescript-eslint/parser": ^8.65.0 + "@typescript-eslint/parser": ^8.66.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.1.0" - checksum: 993643021fdeafc78c70068f51826953557f61a718b7d83eb30e5520056a49b81203794a67c075057888716e84015e4e9ead4ab4b959233232140700008fcb51 + checksum: a23697818897907bc8e8bf7cffbd7f3a71bf3cd840864b9e9e590c3925d38d5b69ef960705be43345e5c5fcc49a0cade4c55f8c03ad45cae5d549fd06e306c3f languageName: node linkType: hard -"@typescript-eslint/parser@npm:8.65.0": - version: 8.65.0 - resolution: "@typescript-eslint/parser@npm:8.65.0" +"@typescript-eslint/parser@npm:8.66.0": + version: 8.66.0 + resolution: "@typescript-eslint/parser@npm:8.66.0" dependencies: - "@typescript-eslint/scope-manager": 8.65.0 - "@typescript-eslint/types": 8.65.0 - "@typescript-eslint/typescript-estree": 8.65.0 - "@typescript-eslint/visitor-keys": 8.65.0 + "@typescript-eslint/scope-manager": 8.66.0 + "@typescript-eslint/types": 8.66.0 + "@typescript-eslint/typescript-estree": 8.66.0 + "@typescript-eslint/visitor-keys": 8.66.0 debug: ^4.4.3 peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.1.0" - checksum: dee3028799e6c78f9ae5d3bfe2c686ffad189f1ee349c4d68429e6b09ef3658910782d4078a465a7bcda97fd8a40250e2825e7648adaaf68e6c7188007ebefdc + checksum: f437b258272a5e9a02e1fa1d9265dc1c9b585463563c75e792ea375f8cb2d89b93bf2f00e612f59e66febdd93480542a67455735a988baf1e6386a468904c574 languageName: node linkType: hard -"@typescript-eslint/project-service@npm:8.65.0": - version: 8.65.0 - resolution: "@typescript-eslint/project-service@npm:8.65.0" +"@typescript-eslint/project-service@npm:8.66.0": + version: 8.66.0 + resolution: "@typescript-eslint/project-service@npm:8.66.0" dependencies: - "@typescript-eslint/tsconfig-utils": ^8.65.0 - "@typescript-eslint/types": ^8.65.0 + "@typescript-eslint/tsconfig-utils": ^8.66.0 + "@typescript-eslint/types": ^8.66.0 debug: ^4.4.3 peerDependencies: typescript: ">=4.8.4 <6.1.0" - checksum: ee847273f3976b13801be5658ecc6ff636fe69b09e24a6a236a818d7deaf74371a93148f9714ba2f92b3341043171bd02987683d79be9a054b72b1433f752520 + checksum: 469923c0e8857ae94a2fb83f38fe8c770e5d43e1bdbcab31a4fd5fe4b7d59c96403647f2de0b44806f6cb729a1b91abaf4fc31b8fc8132f467cc8679e58ab6da languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.65.0": - version: 8.65.0 - resolution: "@typescript-eslint/scope-manager@npm:8.65.0" +"@typescript-eslint/scope-manager@npm:8.66.0": + version: 8.66.0 + resolution: "@typescript-eslint/scope-manager@npm:8.66.0" dependencies: - "@typescript-eslint/types": 8.65.0 - "@typescript-eslint/visitor-keys": 8.65.0 - checksum: 322079f75ed6c05e0570eb5216d1875f2649506901f2b7e4d2d79d1001829b4e52e085e3a7642978b66fe1872a8528dca35cc1767bc7d8888ba9333152833158 + "@typescript-eslint/types": 8.66.0 + "@typescript-eslint/visitor-keys": 8.66.0 + checksum: 9c828c8bd58b278d3934e4ee97975afc0f1401299761e3d8c9a800c436efcda7400d8dda484c64a1a1d94d8476e21ce1928e8d511d7a29c86082bcc96dfde187 languageName: node linkType: hard -"@typescript-eslint/tsconfig-utils@npm:8.65.0, @typescript-eslint/tsconfig-utils@npm:^8.65.0": - version: 8.65.0 - resolution: "@typescript-eslint/tsconfig-utils@npm:8.65.0" +"@typescript-eslint/tsconfig-utils@npm:8.66.0, @typescript-eslint/tsconfig-utils@npm:^8.66.0": + version: 8.66.0 + resolution: "@typescript-eslint/tsconfig-utils@npm:8.66.0" peerDependencies: typescript: ">=4.8.4 <6.1.0" - checksum: 72f70f24414da1afd4edc671117928d39d55d44244a2049ec30bdffcf8e3637239833e4a03deddbc66114b33778b25d343a6ed861d684af0cfaf14268b790ed7 + checksum: e8c72831f4d68581e1f22a76cd99c993532257a4fc20b33e5a8baf612afe774bad5b21f74263527a22420249f0eee1915697e5d8dbaaffdfe58ab62fd7cb1aa0 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.65.0": - version: 8.65.0 - resolution: "@typescript-eslint/type-utils@npm:8.65.0" +"@typescript-eslint/type-utils@npm:8.66.0": + version: 8.66.0 + resolution: "@typescript-eslint/type-utils@npm:8.66.0" dependencies: - "@typescript-eslint/types": 8.65.0 - "@typescript-eslint/typescript-estree": 8.65.0 - "@typescript-eslint/utils": 8.65.0 + "@typescript-eslint/types": 8.66.0 + "@typescript-eslint/typescript-estree": 8.66.0 + "@typescript-eslint/utils": 8.66.0 debug: ^4.4.3 ts-api-utils: ^2.5.0 peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.1.0" - checksum: 6e22156402fa61f7441db772ad72ccc951dd5ecce9af2f5005543b93bde23c6924d556fa4035b7828aba9a34948b8584c6774c94e407d8d30f8d4334b1ee5924 + checksum: ecda402accbcc6474b26bc1d106ddc64e2bfe28ab737b3a2201993266cee5806200546ca90abff989c487fd2312a69e584ffb541075b401b00b442763bbc8676 languageName: node linkType: hard -"@typescript-eslint/types@npm:8.65.0, @typescript-eslint/types@npm:^8.65.0": - version: 8.65.0 - resolution: "@typescript-eslint/types@npm:8.65.0" - checksum: 61ecc6fb57a2806a69a9e1ed514bd7b7b2b81049ea6976d3ef70dacc8907d8800f21b5b270b0765e323a299e7d597add3334105e0f3ff395c3912bee2e8c24af +"@typescript-eslint/types@npm:8.66.0, @typescript-eslint/types@npm:^8.66.0": + version: 8.66.0 + resolution: "@typescript-eslint/types@npm:8.66.0" + checksum: aec75e00f4dc242fd2ef23c93fef483d1ace87c40ccc22fc79a46964b2011e707b8aef352fd5d008838e9ecacd832e2104e4015ca09d2dcab7ac77f62eba8f75 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.65.0": - version: 8.65.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.65.0" +"@typescript-eslint/typescript-estree@npm:8.66.0": + version: 8.66.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.66.0" dependencies: - "@typescript-eslint/project-service": 8.65.0 - "@typescript-eslint/tsconfig-utils": 8.65.0 - "@typescript-eslint/types": 8.65.0 - "@typescript-eslint/visitor-keys": 8.65.0 + "@typescript-eslint/project-service": 8.66.0 + "@typescript-eslint/tsconfig-utils": 8.66.0 + "@typescript-eslint/types": 8.66.0 + "@typescript-eslint/visitor-keys": 8.66.0 debug: ^4.4.3 minimatch: ^10.2.2 semver: ^7.7.3 @@ -4110,32 +4110,32 @@ __metadata: ts-api-utils: ^2.5.0 peerDependencies: typescript: ">=4.8.4 <6.1.0" - checksum: 0a0a29c90b7b510f84246c2b112a608fee83bd8ff4564a490168d0727376b387f090791397a6c4e794cdaa763a011f0477b36544a8e339926f69b83c570b3160 + checksum: 7656ee4593ecb4e9534732cab01473ece050b86963cc7d85fe9d33535ef2d9be2223d2f83a2ec5be0031fd95f2f5460ac9eb5fac706f402f78dd60455f063f0b languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.65.0, @typescript-eslint/utils@npm:^8.54.0": - version: 8.65.0 - resolution: "@typescript-eslint/utils@npm:8.65.0" +"@typescript-eslint/utils@npm:8.66.0, @typescript-eslint/utils@npm:^8.54.0": + version: 8.66.0 + resolution: "@typescript-eslint/utils@npm:8.66.0" dependencies: "@eslint-community/eslint-utils": ^4.9.1 - "@typescript-eslint/scope-manager": 8.65.0 - "@typescript-eslint/types": 8.65.0 - "@typescript-eslint/typescript-estree": 8.65.0 + "@typescript-eslint/scope-manager": 8.66.0 + "@typescript-eslint/types": 8.66.0 + "@typescript-eslint/typescript-estree": 8.66.0 peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.1.0" - checksum: c24b9ac2c60c416d8447e6b57c00a02c602e1bdeb0a62f767e3e9e62a20df12e171a7f6e13cb0179e1e41a73be37c77b08bfe27e115e6fc4463b601737909202 + checksum: 3dfa5ddbaeceec60e8cb6e2c4e986341e481ee09700316183725ac2716eaf2893048da669c26a8a28553ff5d5fd476777f6ed837aca0f0658263f0ff5dbe267e languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.65.0": - version: 8.65.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.65.0" +"@typescript-eslint/visitor-keys@npm:8.66.0": + version: 8.66.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.66.0" dependencies: - "@typescript-eslint/types": 8.65.0 + "@typescript-eslint/types": 8.66.0 eslint-visitor-keys: ^5.0.0 - checksum: 34052098a3448cb337a33308763d57f5bcbbeb750d14241a91394d5242cd0bb90777626c16fe62b18ef990b57bee9a14a9a63f28bf466ee70533d6d86e1ee1f1 + checksum: e96c3535de85f8c4db2c502a3863dfce697c0fec46569b3a6a948457ff83f126886ea6b80952566f5be6f4f96c617fdb7c7dd7c3d86ab4e4db918bfa31bebd93 languageName: node linkType: hard @@ -4767,11 +4767,11 @@ __metadata: linkType: hard "baseline-browser-mapping@npm:^2.10.44": - version: 2.11.9 - resolution: "baseline-browser-mapping@npm:2.11.9" + version: 2.11.12 + resolution: "baseline-browser-mapping@npm:2.11.12" bin: baseline-browser-mapping: dist/cli.cjs - checksum: 47004fb1632b923290465a7a6e789fc54db75e00fe2ecfbfa060b53f5650d6453d759e27a0b058e30fa782f8baa6172c61f497e76a9a5260c3d8f4ca1e86385c + checksum: e154d9b239a282018e47a059626841052ed1dd89af2d57409169cb45bffce5a3f22bba84b56a630004d59d0e71cc7460980c40ed537662415fe13b8b87bcf0cd languageName: node linkType: hard @@ -4819,7 +4819,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.24.0, browserslist@npm:^4.28.1": +"browserslist@npm:^4.24.0, browserslist@npm:^4.28.1, browserslist@npm:^4.28.7": version: 4.28.7 resolution: "browserslist@npm:4.28.7" dependencies: @@ -4903,9 +4903,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001806": - version: 1.0.30001806 - resolution: "caniuse-lite@npm:1.0.30001806" - checksum: 4b4a970fbd7cb7b8ee6b5068336f7afa7d9cc65ff444080630ab363dcb44205994f68897c7685dc3de4f04dd1f65ec395e50790a594d0470db4894bedf5cb379 + version: 1.0.30001807 + resolution: "caniuse-lite@npm:1.0.30001807" + checksum: b9cd03f9616a27a80de3c961978cba47394c150b430f8ec90983bbd44da0e4d6aad309f9a4fab696d74c6f0bcee8ea5fb01b19fcb061eb52da548dc7f6240181 languageName: node linkType: hard @@ -5136,11 +5136,11 @@ __metadata: linkType: hard "core-js-compat@npm:^3.48.0": - version: 3.49.0 - resolution: "core-js-compat@npm:3.49.0" + version: 3.50.0 + resolution: "core-js-compat@npm:3.50.0" dependencies: - browserslist: ^4.28.1 - checksum: 21afa75a64b30810f4cc61e90758346e8df6bd20dd8da5afe08fc041b5fb766cf7c41c9cbc63f8fb96bef4e4a2a90eb6f2d7bbd20ac53b8ff23a58bc87e40231 + browserslist: ^4.28.7 + checksum: dc74d7cb879da8b1a10de54804f2d4b7bc143caa330c843aa2f42e5ca6e302dc968518182ed25724a864127b158bee245abd1a146632f872011ac24f5fd82be5 languageName: node linkType: hard @@ -5877,14 +5877,14 @@ __metadata: linkType: hard "dompurify@npm:^3.3.3": - version: 3.4.12 - resolution: "dompurify@npm:3.4.12" + version: 3.4.13 + resolution: "dompurify@npm:3.4.13" dependencies: "@types/trusted-types": ^2.0.7 dependenciesMeta: "@types/trusted-types": optional: true - checksum: 477e944e669bac9247c9ebfa55c7ea5c73f3cc6cd6b21ee72e306000e3e53d308e7bdaac89e655a0e2661de2ffbdd877e6a92537d07ba1d70c6c441fcef8c65c + checksum: e4d3c08e453521098557118ffaaa6e2ab42f9222edd57ab592b69946d76127973640df13a9c260da3cf89b6c525ccaa58bf398d0b3aff01c3b7bc3fa589b7260 languageName: node linkType: hard @@ -5930,9 +5930,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.5.393": - version: 1.5.399 - resolution: "electron-to-chromium@npm:1.5.399" - checksum: 4a37ce1c313bc5fc9a3c2d6fb118bdaab809bac45fe323a220bd9b958ecc4659c529ddab2c0ec31e50c2a423f280ac2115a6d240ffbf3dfc35c4983c11e36e54 + version: 1.5.402 + resolution: "electron-to-chromium@npm:1.5.402" + checksum: edf1beacd35c66cb50406e55a16604ef38fa7308def8efb29bf09f7e3ed2ccff2641e73442035a6ba5fad0bec8163b28a59e8ecd00bf54863c25423bd3c73a85 languageName: node linkType: hard @@ -8455,8 +8455,8 @@ __metadata: linkType: hard "mermaid@npm:^11.15.0": - version: 11.16.0 - resolution: "mermaid@npm:11.16.0" + version: 11.16.1 + resolution: "mermaid@npm:11.16.1" dependencies: "@braintree/sanitize-url": ^7.1.2 "@iconify/utils": ^3.0.2 @@ -8479,7 +8479,7 @@ __metadata: stylis: ^4.3.6 ts-dedent: ^2.2.0 uuid: ^11.1.0 || ^12 || ^13 || ^14.0.0 - checksum: 35b825cce4b0e259e5869cf50336701517819e18852953f1b4a6ab9b1fe4c1ab8f14ff34ebfd3f95384ce2b2921969eb00d5ccaed6b524c3b99f6a82b6f1bd88 + checksum: 679d6f459c2c34e8f6e686cd69423355e8b3637fad06d936846d709de71b70655cc7a7d85039f96432baacbc52ab84c580077576d9d864bee3b544a8b6d71358 languageName: node linkType: hard @@ -8625,12 +8625,12 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.3.16": - version: 3.3.16 - resolution: "nanoid@npm:3.3.16" +"nanoid@npm:^3.3.17": + version: 3.3.17 + resolution: "nanoid@npm:3.3.17" bin: nanoid: bin/nanoid.cjs - checksum: 2489d8f87f02178a15b901d7d06e490838383a2acdf01ec2b4e4343c02325ab648965a539eba8bdb821560a33e4c34be506b9e1c7c1bb5cb750e894f500fce92 + checksum: dbbfd5ccc15a9bce602797ee75b98ee5ad377bd217782b8d2e7438e6e0ba0c54529a9f60437910aa00e263224b3c074b51a1aa3e21084a3cb56347a6cbacc275 languageName: node linkType: hard @@ -8751,9 +8751,9 @@ __metadata: linkType: hard "node-releases@npm:^2.0.51": - version: 2.0.51 - resolution: "node-releases@npm:2.0.51" - checksum: 0d607ebc5c1aa94ef110e6ab926ec51fca55b8534a889a42ffeda1575af00b3bf2e2473898fa45213a3dfedde5f2cedfc4dee2060967e97d6b9518531e388710 + version: 2.0.53 + resolution: "node-releases@npm:2.0.53" + checksum: 39e306de65dbc2b95bf18b11786844bb47e2c4e73dfd6cfb679c6b427acb0f360c862680e9437325ab0866b7dd357188c65f12205a73433f2dc783cea13bb985 languageName: node linkType: hard @@ -9181,13 +9181,13 @@ __metadata: linkType: hard "postcss@npm:^8.3.11, postcss@npm:^8.4.28, postcss@npm:^8.4.33": - version: 8.5.25 - resolution: "postcss@npm:8.5.25" + version: 8.5.26 + resolution: "postcss@npm:8.5.26" dependencies: - nanoid: ^3.3.16 + nanoid: ^3.3.17 picocolors: ^1.1.1 source-map-js: ^1.2.1 - checksum: 51e1fa610322a93220a461dc56a952b398d9bdb137e1f2530fed0ddebd37bf07f2729dfce31864b67b742636f30102833924ea600fa11a0f666130a66fae2a53 + checksum: 719b1acd7db117cffa1514a6ed47e71ba4159ebddd1be2616b65dc1580a6bb9289abb8a78d26e08b45ab5a03277662483a6413e4b08325df0260831f4c2bc11b languageName: node linkType: hard @@ -10261,8 +10261,8 @@ __metadata: linkType: hard "terser@npm:^5.31.1": - version: 5.49.0 - resolution: "terser@npm:5.49.0" + version: 5.49.2 + resolution: "terser@npm:5.49.2" dependencies: "@jridgewell/source-map": ^0.3.3 acorn: ^8.15.0 @@ -10270,7 +10270,7 @@ __metadata: source-map-support: ~0.5.20 bin: terser: bin/terser - checksum: 79ca6826cc68df0be61d0eef0124ce3a59660f453db57b2488aa2d8cbeedbc2b70cd5d8bce47a3d6f33f28a427d40ef85c9b72ca5dafafa0ded26246f27421bb + checksum: f36861a87c6222be035c60e4234f13f36aeff25dfee178c9dd7ed762099d4452b047f4dcc8b8baf5bf88aa4a390f4c545351af1316e4d9d39cae35d8f0e7f0dd languageName: node linkType: hard @@ -10286,9 +10286,9 @@ __metadata: linkType: hard "tinyexec@npm:^1.0.1, tinyexec@npm:^1.2.4": - version: 1.2.4 - resolution: "tinyexec@npm:1.2.4" - checksum: 3004b0f784c17d35a87251059dd6d81685848472a21a8c258f7b6c0433a25e37552f3955b0844f422895711fae24f44a8b1165597b8b0fe3fe8d0a25264fe9d9 + version: 1.3.0 + resolution: "tinyexec@npm:1.3.0" + checksum: de21f85d48a838104b13a8c45410a5ad46c7ec75b5943d0df287a014d80cc530b825f9b0fbe63cfc0e78623b96467e19b7a9b87469bbd595e48607dce88c0958 languageName: node linkType: hard @@ -10456,17 +10456,17 @@ __metadata: linkType: hard "typescript-eslint@npm:^8.0.0": - version: 8.65.0 - resolution: "typescript-eslint@npm:8.65.0" + version: 8.66.0 + resolution: "typescript-eslint@npm:8.66.0" dependencies: - "@typescript-eslint/eslint-plugin": 8.65.0 - "@typescript-eslint/parser": 8.65.0 - "@typescript-eslint/typescript-estree": 8.65.0 - "@typescript-eslint/utils": 8.65.0 + "@typescript-eslint/eslint-plugin": 8.66.0 + "@typescript-eslint/parser": 8.66.0 + "@typescript-eslint/typescript-estree": 8.66.0 + "@typescript-eslint/utils": 8.66.0 peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.1.0" - checksum: 4373f9f34879a66983fa6ae0922796bb17df8d58aed7e38ffdb0b7b98813d4b1b2e3bd956a7fea9977bbe84fbe8a2038cb804ee127064be2e29761f764ffa2ff + checksum: 0518d30ffa44d025f8960c517b4eb13ccd75201ccbce49abbd3896e91e0076910535680a78b89107621dcd7cc61e0ec5edf28f8069a978085fd7d45e209fea66 languageName: node linkType: hard @@ -10524,9 +10524,9 @@ __metadata: linkType: hard "undici@npm:^8.4.1": - version: 8.9.0 - resolution: "undici@npm:8.9.0" - checksum: 71ce29ec2426519e2aa56df2eeffffcc633d7d121aa65c206dc3cc764f36528df20fadd519a2e0603e7b51e087920ebca392b509f48c618e652e460a8ea89541 + version: 8.10.0 + resolution: "undici@npm:8.10.0" + checksum: 6b7c5442ec67fb4048a07aba719890904be54fbcff83c58b7133011fead67877c970f8b974f5e05aa0c7f5603c726888d8b3648e891af1493e7e362d848d7e9c languageName: node linkType: hard @@ -10576,8 +10576,8 @@ __metadata: linkType: hard "update-browserslist-db@npm:^1.2.3": - version: 1.2.3 - resolution: "update-browserslist-db@npm:1.2.3" + version: 1.3.0 + resolution: "update-browserslist-db@npm:1.3.0" dependencies: escalade: ^3.2.0 picocolors: ^1.1.1 @@ -10585,7 +10585,7 @@ __metadata: browserslist: ">= 4.21.0" bin: update-browserslist-db: cli.js - checksum: 6f209a97ae8eacdd3a1ef2eb365adf49d1e2a757e5b2dd4ac87dc8c99236cbe3e572d3e605a87dd7b538a11751b71d9f93edc47c7405262a293a493d155316cd + checksum: 4db43c885efc5c66b48fd316ce6ed396c6c0c92c0ec102f11309e3a09d4532f9ea427f46b72523fee85dfb0fa072c70d3c25ad27ac1bca6c5fda0b12774ae381 languageName: node linkType: hard @@ -11041,8 +11041,8 @@ __metadata: linkType: hard "ws@npm:^8.11.0": - version: 8.21.1 - resolution: "ws@npm:8.21.1" + version: 8.21.2 + resolution: "ws@npm:8.21.2" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -11051,7 +11051,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 2e18c932d7bfeeb36fae32d874e5531f501e26dc932c48b699f9fcd2d7cc38f365e0265eddb47dec413ac6fb0effc0a8fa2cfa372d23f4f5b5ab214f394e1774 + checksum: 1e1ae90a6ac2709b8f53272bb0024ba8ce75e68a90deca72cd60d7dc6ec3031258b1159d5abd276220f2c06e6d5b65e87dc0f470e44f13855c30d4831ca86060 languageName: node linkType: hard @@ -11168,11 +11168,11 @@ __metadata: linkType: hard "yjs@npm:^13.5.0, yjs@npm:^13.5.40": - version: 13.6.31 - resolution: "yjs@npm:13.6.31" + version: 13.6.32 + resolution: "yjs@npm:13.6.32" dependencies: lib0: ^0.2.99 - checksum: 87c665c53344d48a3b85d21fa409d2a51bbdc995292a0c1bdfb1493620d4ba6c7cd1a308155642942fc45fa59e8d4557caab03d559f9408451ee6984ef180425 + checksum: 5b146dcb471ec6ac9aab2b617786f660bc2233c896bfbcc1e65c67efb06f3bfd52acf2519d3519d72b108235da1895b8350b44f2b3a2ecfa80d0f45874805071 languageName: node linkType: hard