dominds 1.3.1 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/README.md +9 -2
  2. package/README.zh.md +9 -2
  3. package/dist/apps/app-lock-file.js +33 -57
  4. package/dist/apps/configuration-file.js +267 -0
  5. package/dist/apps/enabled-apps.js +217 -252
  6. package/dist/apps/manifest.js +132 -0
  7. package/dist/apps/resolution-file.js +80 -192
  8. package/dist/apps/workspace-app-state.js +8 -0
  9. package/dist/cli/disable.js +18 -22
  10. package/dist/cli/enable.js +20 -58
  11. package/dist/cli/install.js +74 -80
  12. package/dist/cli/uninstall.js +48 -25
  13. package/dist/cli/update.js +36 -80
  14. package/dist/docs/app-constitution.md +12 -7
  15. package/dist/docs/app-constitution.zh.md +13 -8
  16. package/dist/llm/kernel-driver/engine.js +10 -4
  17. package/dist/llm/kernel-driver/flow.js +93 -0
  18. package/dist/llm/kernel-driver/loop.js +4 -1
  19. package/dist/llm/kernel-driver/subdialog.js +5 -1
  20. package/dist/llm/kernel-driver/tellask-special.js +48 -6
  21. package/dist/server/server-core.js +19 -4
  22. package/dist/server/websocket-handler.js +26 -6
  23. package/dist/static/assets/{_basePickBy-CmziIRM9.js → _basePickBy-B2o4z1Hf.js} +3 -3
  24. package/dist/static/assets/{_basePickBy-CmziIRM9.js.map → _basePickBy-B2o4z1Hf.js.map} +1 -1
  25. package/dist/static/assets/{_baseUniq-CgDZxcD0.js → _baseUniq-CLmcxjdl.js} +2 -2
  26. package/dist/static/assets/{_baseUniq-CgDZxcD0.js.map → _baseUniq-CLmcxjdl.js.map} +1 -1
  27. package/dist/static/assets/{arc-Df9rjNNk.js → arc-CymD_KN7.js} +2 -2
  28. package/dist/static/assets/{arc-Df9rjNNk.js.map → arc-CymD_KN7.js.map} +1 -1
  29. package/dist/static/assets/{architectureDiagram-VXUJARFQ-Bif8topC.js → architectureDiagram-VXUJARFQ-DJQfSJUH.js} +7 -7
  30. package/dist/static/assets/{architectureDiagram-VXUJARFQ-Bif8topC.js.map → architectureDiagram-VXUJARFQ-DJQfSJUH.js.map} +1 -1
  31. package/dist/static/assets/{blockDiagram-VD42YOAC-D9Egoflr.js → blockDiagram-VD42YOAC-pHVz60D0.js} +7 -7
  32. package/dist/static/assets/{blockDiagram-VD42YOAC-D9Egoflr.js.map → blockDiagram-VD42YOAC-pHVz60D0.js.map} +1 -1
  33. package/dist/static/assets/{c4Diagram-YG6GDRKO-DBf1NeBf.js → c4Diagram-YG6GDRKO-B0WnCfAT.js} +3 -3
  34. package/dist/static/assets/{c4Diagram-YG6GDRKO-DBf1NeBf.js.map → c4Diagram-YG6GDRKO-B0WnCfAT.js.map} +1 -1
  35. package/dist/static/assets/{channel-Dc34yAJl.js → channel-CX9BlKil.js} +2 -2
  36. package/dist/static/assets/{channel-Dc34yAJl.js.map → channel-CX9BlKil.js.map} +1 -1
  37. package/dist/static/assets/{chunk-4BX2VUAB-B65G1dJI.js → chunk-4BX2VUAB-lXArRj3o.js} +2 -2
  38. package/dist/static/assets/{chunk-4BX2VUAB-B65G1dJI.js.map → chunk-4BX2VUAB-lXArRj3o.js.map} +1 -1
  39. package/dist/static/assets/{chunk-55IACEB6-CSDEOGl2.js → chunk-55IACEB6-CdqwynH9.js} +2 -2
  40. package/dist/static/assets/{chunk-55IACEB6-CSDEOGl2.js.map → chunk-55IACEB6-CdqwynH9.js.map} +1 -1
  41. package/dist/static/assets/{chunk-B4BG7PRW-Cb6W3QWJ.js → chunk-B4BG7PRW-Y-uXcJst.js} +5 -5
  42. package/dist/static/assets/{chunk-B4BG7PRW-Cb6W3QWJ.js.map → chunk-B4BG7PRW-Y-uXcJst.js.map} +1 -1
  43. package/dist/static/assets/{chunk-DI55MBZ5-ZAJWeVWH.js → chunk-DI55MBZ5-C5xSbRST.js} +4 -4
  44. package/dist/static/assets/{chunk-DI55MBZ5-ZAJWeVWH.js.map → chunk-DI55MBZ5-C5xSbRST.js.map} +1 -1
  45. package/dist/static/assets/{chunk-FMBD7UC4-DiwRlImb.js → chunk-FMBD7UC4-5uefwCjI.js} +2 -2
  46. package/dist/static/assets/{chunk-FMBD7UC4-DiwRlImb.js.map → chunk-FMBD7UC4-5uefwCjI.js.map} +1 -1
  47. package/dist/static/assets/{chunk-QN33PNHL-wilj7fb5.js → chunk-QN33PNHL-DzWVcvpI.js} +2 -2
  48. package/dist/static/assets/{chunk-QN33PNHL-wilj7fb5.js.map → chunk-QN33PNHL-DzWVcvpI.js.map} +1 -1
  49. package/dist/static/assets/{chunk-QZHKN3VN-DGmviJfR.js → chunk-QZHKN3VN-BrrvAZdP.js} +2 -2
  50. package/dist/static/assets/{chunk-QZHKN3VN-DGmviJfR.js.map → chunk-QZHKN3VN-BrrvAZdP.js.map} +1 -1
  51. package/dist/static/assets/{chunk-TZMSLE5B-Nm5wTXa_.js → chunk-TZMSLE5B-DyKOlPTY.js} +2 -2
  52. package/dist/static/assets/{chunk-TZMSLE5B-Nm5wTXa_.js.map → chunk-TZMSLE5B-DyKOlPTY.js.map} +1 -1
  53. package/dist/static/assets/{classDiagram-2ON5EDUG-BvUbXD6H.js → classDiagram-2ON5EDUG-FCrnlCWC.js} +6 -6
  54. package/dist/static/assets/{classDiagram-2ON5EDUG-BvUbXD6H.js.map → classDiagram-2ON5EDUG-FCrnlCWC.js.map} +1 -1
  55. package/dist/static/assets/{classDiagram-v2-WZHVMYZB-BvUbXD6H.js → classDiagram-v2-WZHVMYZB-FCrnlCWC.js} +6 -6
  56. package/dist/static/assets/{classDiagram-v2-WZHVMYZB-BvUbXD6H.js.map → classDiagram-v2-WZHVMYZB-FCrnlCWC.js.map} +1 -1
  57. package/dist/static/assets/{clone-0VLS7GaA.js → clone-BlI81KqZ.js} +2 -2
  58. package/dist/static/assets/{clone-0VLS7GaA.js.map → clone-BlI81KqZ.js.map} +1 -1
  59. package/dist/static/assets/{cose-bilkent-S5V4N54A-anaPs-75.js → cose-bilkent-S5V4N54A-yM7S2atz.js} +2 -2
  60. package/dist/static/assets/{cose-bilkent-S5V4N54A-anaPs-75.js.map → cose-bilkent-S5V4N54A-yM7S2atz.js.map} +1 -1
  61. package/dist/static/assets/{dagre-6UL2VRFP-YwdsZ11r.js → dagre-6UL2VRFP-BcweuZHt.js} +7 -7
  62. package/dist/static/assets/{dagre-6UL2VRFP-YwdsZ11r.js.map → dagre-6UL2VRFP-BcweuZHt.js.map} +1 -1
  63. package/dist/static/assets/{diagram-PSM6KHXK-5KQCf3h2.js → diagram-PSM6KHXK-D4-QwLW1.js} +8 -8
  64. package/dist/static/assets/{diagram-PSM6KHXK-5KQCf3h2.js.map → diagram-PSM6KHXK-D4-QwLW1.js.map} +1 -1
  65. package/dist/static/assets/{diagram-QEK2KX5R-Mf24XxZL.js → diagram-QEK2KX5R-BVbuejJn.js} +7 -7
  66. package/dist/static/assets/{diagram-QEK2KX5R-Mf24XxZL.js.map → diagram-QEK2KX5R-BVbuejJn.js.map} +1 -1
  67. package/dist/static/assets/{diagram-S2PKOQOG-DyQjD4D5.js → diagram-S2PKOQOG-pB6N6Tq_.js} +7 -7
  68. package/dist/static/assets/{diagram-S2PKOQOG-DyQjD4D5.js.map → diagram-S2PKOQOG-pB6N6Tq_.js.map} +1 -1
  69. package/dist/static/assets/{erDiagram-Q2GNP2WA-CEzTKw1u.js → erDiagram-Q2GNP2WA-DLKmthuw.js} +5 -5
  70. package/dist/static/assets/{erDiagram-Q2GNP2WA-CEzTKw1u.js.map → erDiagram-Q2GNP2WA-DLKmthuw.js.map} +1 -1
  71. package/dist/static/assets/{flowDiagram-NV44I4VS-DT821XSz.js → flowDiagram-NV44I4VS-BsBhWukh.js} +6 -6
  72. package/dist/static/assets/{flowDiagram-NV44I4VS-DT821XSz.js.map → flowDiagram-NV44I4VS-BsBhWukh.js.map} +1 -1
  73. package/dist/static/assets/{ganttDiagram-JELNMOA3-DlmeVsGg.js → ganttDiagram-JELNMOA3-Debz-J-C.js} +3 -3
  74. package/dist/static/assets/{ganttDiagram-JELNMOA3-DlmeVsGg.js.map → ganttDiagram-JELNMOA3-Debz-J-C.js.map} +1 -1
  75. package/dist/static/assets/{gitGraphDiagram-V2S2FVAM-yAfyBG_d.js → gitGraphDiagram-V2S2FVAM-BnAPFBGR.js} +8 -8
  76. package/dist/static/assets/{gitGraphDiagram-V2S2FVAM-yAfyBG_d.js.map → gitGraphDiagram-V2S2FVAM-BnAPFBGR.js.map} +1 -1
  77. package/dist/static/assets/{graph-BYv8vyWe.js → graph-DbzWiBNK.js} +3 -3
  78. package/dist/static/assets/{graph-BYv8vyWe.js.map → graph-DbzWiBNK.js.map} +1 -1
  79. package/dist/static/assets/{index-DMbwqOm6.js → index-B-8J28g7.js} +987 -1049
  80. package/dist/static/assets/index-B-8J28g7.js.map +1 -0
  81. package/dist/static/assets/{index-BiNcBn_U.css → index-CD5wtC_i.css} +1 -1
  82. package/dist/static/assets/{infoDiagram-HS3SLOUP-DaadramQ.js → infoDiagram-HS3SLOUP-CZ5hWoxV.js} +6 -6
  83. package/dist/static/assets/{infoDiagram-HS3SLOUP-DaadramQ.js.map → infoDiagram-HS3SLOUP-CZ5hWoxV.js.map} +1 -1
  84. package/dist/static/assets/{journeyDiagram-XKPGCS4Q-ftN8hxu3.js → journeyDiagram-XKPGCS4Q-CKN3oSxk.js} +5 -5
  85. package/dist/static/assets/{journeyDiagram-XKPGCS4Q-ftN8hxu3.js.map → journeyDiagram-XKPGCS4Q-CKN3oSxk.js.map} +1 -1
  86. package/dist/static/assets/{kanban-definition-3W4ZIXB7-BIXETQ-C.js → kanban-definition-3W4ZIXB7-BQCMklfJ.js} +3 -3
  87. package/dist/static/assets/{kanban-definition-3W4ZIXB7-BIXETQ-C.js.map → kanban-definition-3W4ZIXB7-BQCMklfJ.js.map} +1 -1
  88. package/dist/static/assets/{layout-OTbrj0Ye.js → layout-C5B58szc.js} +5 -5
  89. package/dist/static/assets/{layout-OTbrj0Ye.js.map → layout-C5B58szc.js.map} +1 -1
  90. package/dist/static/assets/{linear-CVfOC669.js → linear-_32fut6G.js} +2 -2
  91. package/dist/static/assets/{linear-CVfOC669.js.map → linear-_32fut6G.js.map} +1 -1
  92. package/dist/static/assets/{mindmap-definition-VGOIOE7T-D2zv5uI9.js → mindmap-definition-VGOIOE7T-C_goMzjx.js} +4 -4
  93. package/dist/static/assets/{mindmap-definition-VGOIOE7T-D2zv5uI9.js.map → mindmap-definition-VGOIOE7T-C_goMzjx.js.map} +1 -1
  94. package/dist/static/assets/{pieDiagram-ADFJNKIX-DaUXTsv7.js → pieDiagram-ADFJNKIX-BQ2n0cOB.js} +8 -8
  95. package/dist/static/assets/{pieDiagram-ADFJNKIX-DaUXTsv7.js.map → pieDiagram-ADFJNKIX-BQ2n0cOB.js.map} +1 -1
  96. package/dist/static/assets/{quadrantDiagram-AYHSOK5B-B7O2wPX9.js → quadrantDiagram-AYHSOK5B-BLg7_neg.js} +3 -3
  97. package/dist/static/assets/{quadrantDiagram-AYHSOK5B-B7O2wPX9.js.map → quadrantDiagram-AYHSOK5B-BLg7_neg.js.map} +1 -1
  98. package/dist/static/assets/{requirementDiagram-UZGBJVZJ-DpauVPY1.js → requirementDiagram-UZGBJVZJ-DwkJt0zi.js} +4 -4
  99. package/dist/static/assets/{requirementDiagram-UZGBJVZJ-DpauVPY1.js.map → requirementDiagram-UZGBJVZJ-DwkJt0zi.js.map} +1 -1
  100. package/dist/static/assets/{sankeyDiagram-TZEHDZUN-B3Hbfvad.js → sankeyDiagram-TZEHDZUN-DmxmatUB.js} +2 -2
  101. package/dist/static/assets/{sankeyDiagram-TZEHDZUN-B3Hbfvad.js.map → sankeyDiagram-TZEHDZUN-DmxmatUB.js.map} +1 -1
  102. package/dist/static/assets/{sequenceDiagram-WL72ISMW-KdbWByWT.js → sequenceDiagram-WL72ISMW-KHU_eApU.js} +4 -4
  103. package/dist/static/assets/{sequenceDiagram-WL72ISMW-KdbWByWT.js.map → sequenceDiagram-WL72ISMW-KHU_eApU.js.map} +1 -1
  104. package/dist/static/assets/{stateDiagram-FKZM4ZOC-yDOCVezC.js → stateDiagram-FKZM4ZOC-B3DBCxAL.js} +9 -9
  105. package/dist/static/assets/{stateDiagram-FKZM4ZOC-yDOCVezC.js.map → stateDiagram-FKZM4ZOC-B3DBCxAL.js.map} +1 -1
  106. package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-CpCJhvQO.js → stateDiagram-v2-4FDKWEC3-C-uIk7gh.js} +5 -5
  107. package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-CpCJhvQO.js.map → stateDiagram-v2-4FDKWEC3-C-uIk7gh.js.map} +1 -1
  108. package/dist/static/assets/{timeline-definition-IT6M3QCI-CHxuEjhV.js → timeline-definition-IT6M3QCI-SysEcQCC.js} +3 -3
  109. package/dist/static/assets/{timeline-definition-IT6M3QCI-CHxuEjhV.js.map → timeline-definition-IT6M3QCI-SysEcQCC.js.map} +1 -1
  110. package/dist/static/assets/{treemap-GDKQZRPO-Bsqu3wIy.js → treemap-GDKQZRPO-d0AbKEc4.js} +5 -5
  111. package/dist/static/assets/{treemap-GDKQZRPO-Bsqu3wIy.js.map → treemap-GDKQZRPO-d0AbKEc4.js.map} +1 -1
  112. package/dist/static/assets/{xychartDiagram-PRI3JC2R-RZy33lFF.js → xychartDiagram-PRI3JC2R-CmSQMxUh.js} +3 -3
  113. package/dist/static/assets/{xychartDiagram-PRI3JC2R-RZy33lFF.js.map → xychartDiagram-PRI3JC2R-CmSQMxUh.js.map} +1 -1
  114. package/dist/static/index.html +2 -2
  115. package/dist/tools/fs.js +1 -1
  116. package/package.json +9 -7
  117. package/dist/agent-priming.js +0 -2051
  118. package/dist/apps/installed-file.js +0 -207
  119. package/dist/apps/runtime-port.js +0 -91
  120. package/dist/docs/dominds-agent-priming.md +0 -218
  121. package/dist/docs/dominds-agent-priming.zh.md +0 -196
  122. package/dist/docs/drive-logic-context-refactor-plan.zh.md +0 -338
  123. package/dist/docs/keep-going.md +0 -176
  124. package/dist/docs/keep-going.zh.md +0 -162
  125. package/dist/docs/kernel-app-architecture.md +0 -286
  126. package/dist/docs/kernel-app-architecture.zh.md +0 -285
  127. package/dist/docs/showing-by-doing.md +0 -208
  128. package/dist/docs/showing-by-doing.zh.md +0 -177
  129. package/dist/docs/team-mgmt-toolset.md +0 -482
  130. package/dist/docs/team-mgmt-toolset.zh.md +0 -426
  131. package/dist/llm/driver-entry.js +0 -28
  132. package/dist/llm/driver-v2/context-health.js +0 -121
  133. package/dist/llm/driver-v2/context.js +0 -56
  134. package/dist/llm/driver-v2/core.js +0 -1545
  135. package/dist/llm/driver-v2/index.js +0 -26
  136. package/dist/llm/driver-v2/orchestrator.js +0 -158
  137. package/dist/llm/driver-v2/policy.js +0 -129
  138. package/dist/llm/driver-v2/restore-dialog-hierarchy.js +0 -73
  139. package/dist/llm/driver-v2/round.js +0 -366
  140. package/dist/llm/driver-v2/runtime-utils.js +0 -365
  141. package/dist/llm/driver-v2/saying-events.js +0 -20
  142. package/dist/llm/driver-v2/subdialog-txn.js +0 -42
  143. package/dist/llm/driver-v2/supdialog-response.js +0 -400
  144. package/dist/llm/driver-v2/tellask-bridge.js +0 -1148
  145. package/dist/llm/driver-v2/types.js +0 -10
  146. package/dist/llm/driver-v2-ref-only/context-health.js +0 -121
  147. package/dist/llm/driver-v2-ref-only/context.js +0 -17
  148. package/dist/llm/driver-v2-ref-only/core.js +0 -1710
  149. package/dist/llm/driver-v2-ref-only/index.js +0 -26
  150. package/dist/llm/driver-v2-ref-only/orchestrator.js +0 -158
  151. package/dist/llm/driver-v2-ref-only/policy.js +0 -129
  152. package/dist/llm/driver-v2-ref-only/restore-dialog-hierarchy.js +0 -73
  153. package/dist/llm/driver-v2-ref-only/round.js +0 -366
  154. package/dist/llm/driver-v2-ref-only/runtime-utils.js +0 -473
  155. package/dist/llm/driver-v2-ref-only/saying-events.js +0 -18
  156. package/dist/llm/driver-v2-ref-only/subdialog-txn.js +0 -42
  157. package/dist/llm/driver-v2-ref-only/supdialog-response.js +0 -453
  158. package/dist/llm/driver-v2-ref-only/tellask-bridge.js +0 -1178
  159. package/dist/llm/driver-v2-ref-only/types.js +0 -10
  160. package/dist/llm/driver.js +0 -4093
  161. package/dist/minds/promptdocs.js +0 -263
  162. package/dist/server/prompts-routes.js +0 -545
  163. package/dist/shared/team-mgmt-manual.js +0 -120
  164. package/dist/shared/types/prompts.js +0 -2
  165. package/dist/shared/types/tellask.js +0 -8
  166. package/dist/showing-by-doing.js +0 -1091
  167. package/dist/snippets/README.en.md +0 -3
  168. package/dist/snippets/README.md +0 -4
  169. package/dist/static/assets/index-DMbwqOm6.js.map +0 -1
  170. package/dist/tellask.js +0 -439
  171. package/dist/tools/context-health.js +0 -177
  172. package/dist/tools/diag.js +0 -583
  173. package/dist/tools/prompts/memory/en/errors.md +0 -155
  174. package/dist/tools/prompts/memory/en/index.md +0 -47
  175. package/dist/tools/prompts/memory/en/principles.md +0 -87
  176. package/dist/tools/prompts/memory/en/scenarios.md +0 -174
  177. package/dist/tools/prompts/memory/en/tools.md +0 -129
  178. package/dist/tools/prompts/memory/zh/errors.md +0 -155
  179. package/dist/tools/prompts/memory/zh/index.md +0 -47
  180. package/dist/tools/prompts/memory/zh/principles.md +0 -89
  181. package/dist/tools/prompts/memory/zh/scenarios.md +0 -174
  182. package/dist/tools/prompts/memory/zh/tools.md +0 -129
  183. package/dist/tools/team-mgmt.js +0 -3487
  184. package/dist/utils/task-doc.js +0 -236
@@ -1 +1 @@
1
- {"version":3,"file":"graph-BYv8vyWe.js","sources":["../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/union.js","../../../node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/graphlib/graph.js"],"sourcesContent":["import baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport baseUniq from './_baseUniq.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\nvar union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n});\n\nexport default union;\n","import * as _ from 'lodash-es';\n\nvar DEFAULT_EDGE_NAME = '\\x00';\nvar GRAPH_NODE = '\\x00';\nvar EDGE_KEY_DELIM = '\\x01';\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\nexport class Graph {\n constructor(opts = {}) {\n this._isDirected = Object.prototype.hasOwnProperty.call(opts, 'directed')\n ? opts.directed\n : true;\n this._isMultigraph = Object.prototype.hasOwnProperty.call(opts, 'multigraph')\n ? opts.multigraph\n : false;\n this._isCompound = Object.prototype.hasOwnProperty.call(opts, 'compound')\n ? opts.compound\n : false;\n\n // Label for the graph itself\n this._label = undefined;\n\n // Defaults to be set when creating a new node\n this._defaultNodeLabelFn = _.constant(undefined);\n\n // Defaults to be set when creating a new edge\n this._defaultEdgeLabelFn = _.constant(undefined);\n\n // v -> label\n this._nodes = {};\n\n if (this._isCompound) {\n // v -> parent\n this._parent = {};\n\n // v -> children\n this._children = {};\n this._children[GRAPH_NODE] = {};\n }\n\n // v -> edgeObj\n this._in = {};\n\n // u -> v -> Number\n this._preds = {};\n\n // v -> edgeObj\n this._out = {};\n\n // v -> w -> Number\n this._sucs = {};\n\n // e -> edgeObj\n this._edgeObjs = {};\n\n // e -> label\n this._edgeLabels = {};\n }\n /* === Graph functions ========= */\n isDirected() {\n return this._isDirected;\n }\n isMultigraph() {\n return this._isMultigraph;\n }\n isCompound() {\n return this._isCompound;\n }\n setGraph(label) {\n this._label = label;\n return this;\n }\n graph() {\n return this._label;\n }\n /* === Node functions ========== */\n setDefaultNodeLabel(newDefault) {\n if (!_.isFunction(newDefault)) {\n newDefault = _.constant(newDefault);\n }\n this._defaultNodeLabelFn = newDefault;\n return this;\n }\n nodeCount() {\n return this._nodeCount;\n }\n nodes() {\n return _.keys(this._nodes);\n }\n sources() {\n var self = this;\n return _.filter(this.nodes(), function (v) {\n return _.isEmpty(self._in[v]);\n });\n }\n sinks() {\n var self = this;\n return _.filter(this.nodes(), function (v) {\n return _.isEmpty(self._out[v]);\n });\n }\n setNodes(vs, value) {\n var args = arguments;\n var self = this;\n _.each(vs, function (v) {\n if (args.length > 1) {\n self.setNode(v, value);\n } else {\n self.setNode(v);\n }\n });\n return this;\n }\n setNode(v, value) {\n if (Object.prototype.hasOwnProperty.call(this._nodes, v)) {\n if (arguments.length > 1) {\n this._nodes[v] = value;\n }\n return this;\n }\n\n // @ts-expect-error\n this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v);\n if (this._isCompound) {\n this._parent[v] = GRAPH_NODE;\n this._children[v] = {};\n this._children[GRAPH_NODE][v] = true;\n }\n this._in[v] = {};\n this._preds[v] = {};\n this._out[v] = {};\n this._sucs[v] = {};\n ++this._nodeCount;\n return this;\n }\n node(v) {\n return this._nodes[v];\n }\n hasNode(v) {\n return Object.prototype.hasOwnProperty.call(this._nodes, v);\n }\n removeNode(v) {\n if (Object.prototype.hasOwnProperty.call(this._nodes, v)) {\n var removeEdge = (e) => this.removeEdge(this._edgeObjs[e]);\n delete this._nodes[v];\n if (this._isCompound) {\n this._removeFromParentsChildList(v);\n delete this._parent[v];\n _.each(this.children(v), (child) => {\n this.setParent(child);\n });\n delete this._children[v];\n }\n _.each(_.keys(this._in[v]), removeEdge);\n delete this._in[v];\n delete this._preds[v];\n _.each(_.keys(this._out[v]), removeEdge);\n delete this._out[v];\n delete this._sucs[v];\n --this._nodeCount;\n }\n return this;\n }\n setParent(v, parent) {\n if (!this._isCompound) {\n throw new Error('Cannot set parent in a non-compound graph');\n }\n\n if (_.isUndefined(parent)) {\n parent = GRAPH_NODE;\n } else {\n // Coerce parent to string\n parent += '';\n for (var ancestor = parent; !_.isUndefined(ancestor); ancestor = this.parent(ancestor)) {\n if (ancestor === v) {\n throw new Error('Setting ' + parent + ' as parent of ' + v + ' would create a cycle');\n }\n }\n\n this.setNode(parent);\n }\n\n this.setNode(v);\n this._removeFromParentsChildList(v);\n this._parent[v] = parent;\n this._children[parent][v] = true;\n return this;\n }\n _removeFromParentsChildList(v) {\n delete this._children[this._parent[v]][v];\n }\n parent(v) {\n if (this._isCompound) {\n var parent = this._parent[v];\n if (parent !== GRAPH_NODE) {\n return parent;\n }\n }\n }\n children(v) {\n if (_.isUndefined(v)) {\n v = GRAPH_NODE;\n }\n\n if (this._isCompound) {\n var children = this._children[v];\n if (children) {\n return _.keys(children);\n }\n } else if (v === GRAPH_NODE) {\n return this.nodes();\n } else if (this.hasNode(v)) {\n return [];\n }\n }\n predecessors(v) {\n var predsV = this._preds[v];\n if (predsV) {\n return _.keys(predsV);\n }\n }\n successors(v) {\n var sucsV = this._sucs[v];\n if (sucsV) {\n return _.keys(sucsV);\n }\n }\n neighbors(v) {\n var preds = this.predecessors(v);\n if (preds) {\n return _.union(preds, this.successors(v));\n }\n }\n isLeaf(v) {\n var neighbors;\n if (this.isDirected()) {\n neighbors = this.successors(v);\n } else {\n neighbors = this.neighbors(v);\n }\n return neighbors.length === 0;\n }\n filterNodes(filter) {\n // @ts-expect-error\n var copy = new this.constructor({\n directed: this._isDirected,\n multigraph: this._isMultigraph,\n compound: this._isCompound,\n });\n\n copy.setGraph(this.graph());\n\n var self = this;\n _.each(this._nodes, function (value, v) {\n if (filter(v)) {\n copy.setNode(v, value);\n }\n });\n\n _.each(this._edgeObjs, function (e) {\n // @ts-expect-error\n if (copy.hasNode(e.v) && copy.hasNode(e.w)) {\n copy.setEdge(e, self.edge(e));\n }\n });\n\n var parents = {};\n function findParent(v) {\n var parent = self.parent(v);\n if (parent === undefined || copy.hasNode(parent)) {\n parents[v] = parent;\n return parent;\n } else if (parent in parents) {\n return parents[parent];\n } else {\n return findParent(parent);\n }\n }\n\n if (this._isCompound) {\n _.each(copy.nodes(), function (v) {\n copy.setParent(v, findParent(v));\n });\n }\n\n return copy;\n }\n /* === Edge functions ========== */\n setDefaultEdgeLabel(newDefault) {\n if (!_.isFunction(newDefault)) {\n newDefault = _.constant(newDefault);\n }\n this._defaultEdgeLabelFn = newDefault;\n return this;\n }\n edgeCount() {\n return this._edgeCount;\n }\n edges() {\n return _.values(this._edgeObjs);\n }\n setPath(vs, value) {\n var self = this;\n var args = arguments;\n _.reduce(vs, function (v, w) {\n if (args.length > 1) {\n self.setEdge(v, w, value);\n } else {\n self.setEdge(v, w);\n }\n return w;\n });\n return this;\n }\n /*\n * setEdge(v, w, [value, [name]])\n * setEdge({ v, w, [name] }, [value])\n */\n setEdge() {\n var v, w, name, value;\n var valueSpecified = false;\n var arg0 = arguments[0];\n\n if (typeof arg0 === 'object' && arg0 !== null && 'v' in arg0) {\n v = arg0.v;\n w = arg0.w;\n name = arg0.name;\n if (arguments.length === 2) {\n value = arguments[1];\n valueSpecified = true;\n }\n } else {\n v = arg0;\n w = arguments[1];\n name = arguments[3];\n if (arguments.length > 2) {\n value = arguments[2];\n valueSpecified = true;\n }\n }\n\n v = '' + v;\n w = '' + w;\n if (!_.isUndefined(name)) {\n name = '' + name;\n }\n\n var e = edgeArgsToId(this._isDirected, v, w, name);\n if (Object.prototype.hasOwnProperty.call(this._edgeLabels, e)) {\n if (valueSpecified) {\n this._edgeLabels[e] = value;\n }\n return this;\n }\n\n if (!_.isUndefined(name) && !this._isMultigraph) {\n throw new Error('Cannot set a named edge when isMultigraph = false');\n }\n\n // It didn't exist, so we need to create it.\n // First ensure the nodes exist.\n this.setNode(v);\n this.setNode(w);\n\n // @ts-expect-error\n this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name);\n\n var edgeObj = edgeArgsToObj(this._isDirected, v, w, name);\n // Ensure we add undirected edges in a consistent way.\n v = edgeObj.v;\n w = edgeObj.w;\n\n Object.freeze(edgeObj);\n this._edgeObjs[e] = edgeObj;\n incrementOrInitEntry(this._preds[w], v);\n incrementOrInitEntry(this._sucs[v], w);\n this._in[w][e] = edgeObj;\n this._out[v][e] = edgeObj;\n this._edgeCount++;\n return this;\n }\n edge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n return this._edgeLabels[e];\n }\n hasEdge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n return Object.prototype.hasOwnProperty.call(this._edgeLabels, e);\n }\n removeEdge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n var edge = this._edgeObjs[e];\n if (edge) {\n v = edge.v;\n w = edge.w;\n delete this._edgeLabels[e];\n delete this._edgeObjs[e];\n decrementOrRemoveEntry(this._preds[w], v);\n decrementOrRemoveEntry(this._sucs[v], w);\n delete this._in[w][e];\n delete this._out[v][e];\n this._edgeCount--;\n }\n return this;\n }\n inEdges(v, u) {\n var inV = this._in[v];\n if (inV) {\n var edges = _.values(inV);\n if (!u) {\n return edges;\n }\n return _.filter(edges, function (edge) {\n return edge.v === u;\n });\n }\n }\n outEdges(v, w) {\n var outV = this._out[v];\n if (outV) {\n var edges = _.values(outV);\n if (!w) {\n return edges;\n }\n return _.filter(edges, function (edge) {\n return edge.w === w;\n });\n }\n }\n nodeEdges(v, w) {\n var inEdges = this.inEdges(v, w);\n if (inEdges) {\n return inEdges.concat(this.outEdges(v, w));\n }\n }\n}\n\n/* Number of nodes in the graph. Should only be changed by the implementation. */\nGraph.prototype._nodeCount = 0;\n\n/* Number of edges in the graph. Should only be changed by the implementation. */\nGraph.prototype._edgeCount = 0;\n\nfunction incrementOrInitEntry(map, k) {\n if (map[k]) {\n map[k]++;\n } else {\n map[k] = 1;\n }\n}\n\nfunction decrementOrRemoveEntry(map, k) {\n if (!--map[k]) {\n delete map[k];\n }\n}\n\nfunction edgeArgsToId(isDirected, v_, w_, name) {\n var v = '' + v_;\n var w = '' + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM + (_.isUndefined(name) ? DEFAULT_EDGE_NAME : name);\n}\n\nfunction edgeArgsToObj(isDirected, v_, w_, name) {\n var v = '' + v_;\n var w = '' + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n var edgeObj = { v: v, w: w };\n if (name) {\n edgeObj.name = name;\n }\n return edgeObj;\n}\n\nfunction edgeObjToId(isDirected, edgeObj) {\n return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);\n}\n"],"names":["_.constant","_.isFunction","_.keys","_.filter","_.isEmpty","_.each","_.isUndefined","_.union","filter","_.values","_.reduce"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"graph-DbzWiBNK.js","sources":["../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/union.js","../../../node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/graphlib/graph.js"],"sourcesContent":["import baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport baseUniq from './_baseUniq.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\nvar union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n});\n\nexport default union;\n","import * as _ from 'lodash-es';\n\nvar DEFAULT_EDGE_NAME = '\\x00';\nvar GRAPH_NODE = '\\x00';\nvar EDGE_KEY_DELIM = '\\x01';\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\nexport class Graph {\n constructor(opts = {}) {\n this._isDirected = Object.prototype.hasOwnProperty.call(opts, 'directed')\n ? opts.directed\n : true;\n this._isMultigraph = Object.prototype.hasOwnProperty.call(opts, 'multigraph')\n ? opts.multigraph\n : false;\n this._isCompound = Object.prototype.hasOwnProperty.call(opts, 'compound')\n ? opts.compound\n : false;\n\n // Label for the graph itself\n this._label = undefined;\n\n // Defaults to be set when creating a new node\n this._defaultNodeLabelFn = _.constant(undefined);\n\n // Defaults to be set when creating a new edge\n this._defaultEdgeLabelFn = _.constant(undefined);\n\n // v -> label\n this._nodes = {};\n\n if (this._isCompound) {\n // v -> parent\n this._parent = {};\n\n // v -> children\n this._children = {};\n this._children[GRAPH_NODE] = {};\n }\n\n // v -> edgeObj\n this._in = {};\n\n // u -> v -> Number\n this._preds = {};\n\n // v -> edgeObj\n this._out = {};\n\n // v -> w -> Number\n this._sucs = {};\n\n // e -> edgeObj\n this._edgeObjs = {};\n\n // e -> label\n this._edgeLabels = {};\n }\n /* === Graph functions ========= */\n isDirected() {\n return this._isDirected;\n }\n isMultigraph() {\n return this._isMultigraph;\n }\n isCompound() {\n return this._isCompound;\n }\n setGraph(label) {\n this._label = label;\n return this;\n }\n graph() {\n return this._label;\n }\n /* === Node functions ========== */\n setDefaultNodeLabel(newDefault) {\n if (!_.isFunction(newDefault)) {\n newDefault = _.constant(newDefault);\n }\n this._defaultNodeLabelFn = newDefault;\n return this;\n }\n nodeCount() {\n return this._nodeCount;\n }\n nodes() {\n return _.keys(this._nodes);\n }\n sources() {\n var self = this;\n return _.filter(this.nodes(), function (v) {\n return _.isEmpty(self._in[v]);\n });\n }\n sinks() {\n var self = this;\n return _.filter(this.nodes(), function (v) {\n return _.isEmpty(self._out[v]);\n });\n }\n setNodes(vs, value) {\n var args = arguments;\n var self = this;\n _.each(vs, function (v) {\n if (args.length > 1) {\n self.setNode(v, value);\n } else {\n self.setNode(v);\n }\n });\n return this;\n }\n setNode(v, value) {\n if (Object.prototype.hasOwnProperty.call(this._nodes, v)) {\n if (arguments.length > 1) {\n this._nodes[v] = value;\n }\n return this;\n }\n\n // @ts-expect-error\n this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v);\n if (this._isCompound) {\n this._parent[v] = GRAPH_NODE;\n this._children[v] = {};\n this._children[GRAPH_NODE][v] = true;\n }\n this._in[v] = {};\n this._preds[v] = {};\n this._out[v] = {};\n this._sucs[v] = {};\n ++this._nodeCount;\n return this;\n }\n node(v) {\n return this._nodes[v];\n }\n hasNode(v) {\n return Object.prototype.hasOwnProperty.call(this._nodes, v);\n }\n removeNode(v) {\n if (Object.prototype.hasOwnProperty.call(this._nodes, v)) {\n var removeEdge = (e) => this.removeEdge(this._edgeObjs[e]);\n delete this._nodes[v];\n if (this._isCompound) {\n this._removeFromParentsChildList(v);\n delete this._parent[v];\n _.each(this.children(v), (child) => {\n this.setParent(child);\n });\n delete this._children[v];\n }\n _.each(_.keys(this._in[v]), removeEdge);\n delete this._in[v];\n delete this._preds[v];\n _.each(_.keys(this._out[v]), removeEdge);\n delete this._out[v];\n delete this._sucs[v];\n --this._nodeCount;\n }\n return this;\n }\n setParent(v, parent) {\n if (!this._isCompound) {\n throw new Error('Cannot set parent in a non-compound graph');\n }\n\n if (_.isUndefined(parent)) {\n parent = GRAPH_NODE;\n } else {\n // Coerce parent to string\n parent += '';\n for (var ancestor = parent; !_.isUndefined(ancestor); ancestor = this.parent(ancestor)) {\n if (ancestor === v) {\n throw new Error('Setting ' + parent + ' as parent of ' + v + ' would create a cycle');\n }\n }\n\n this.setNode(parent);\n }\n\n this.setNode(v);\n this._removeFromParentsChildList(v);\n this._parent[v] = parent;\n this._children[parent][v] = true;\n return this;\n }\n _removeFromParentsChildList(v) {\n delete this._children[this._parent[v]][v];\n }\n parent(v) {\n if (this._isCompound) {\n var parent = this._parent[v];\n if (parent !== GRAPH_NODE) {\n return parent;\n }\n }\n }\n children(v) {\n if (_.isUndefined(v)) {\n v = GRAPH_NODE;\n }\n\n if (this._isCompound) {\n var children = this._children[v];\n if (children) {\n return _.keys(children);\n }\n } else if (v === GRAPH_NODE) {\n return this.nodes();\n } else if (this.hasNode(v)) {\n return [];\n }\n }\n predecessors(v) {\n var predsV = this._preds[v];\n if (predsV) {\n return _.keys(predsV);\n }\n }\n successors(v) {\n var sucsV = this._sucs[v];\n if (sucsV) {\n return _.keys(sucsV);\n }\n }\n neighbors(v) {\n var preds = this.predecessors(v);\n if (preds) {\n return _.union(preds, this.successors(v));\n }\n }\n isLeaf(v) {\n var neighbors;\n if (this.isDirected()) {\n neighbors = this.successors(v);\n } else {\n neighbors = this.neighbors(v);\n }\n return neighbors.length === 0;\n }\n filterNodes(filter) {\n // @ts-expect-error\n var copy = new this.constructor({\n directed: this._isDirected,\n multigraph: this._isMultigraph,\n compound: this._isCompound,\n });\n\n copy.setGraph(this.graph());\n\n var self = this;\n _.each(this._nodes, function (value, v) {\n if (filter(v)) {\n copy.setNode(v, value);\n }\n });\n\n _.each(this._edgeObjs, function (e) {\n // @ts-expect-error\n if (copy.hasNode(e.v) && copy.hasNode(e.w)) {\n copy.setEdge(e, self.edge(e));\n }\n });\n\n var parents = {};\n function findParent(v) {\n var parent = self.parent(v);\n if (parent === undefined || copy.hasNode(parent)) {\n parents[v] = parent;\n return parent;\n } else if (parent in parents) {\n return parents[parent];\n } else {\n return findParent(parent);\n }\n }\n\n if (this._isCompound) {\n _.each(copy.nodes(), function (v) {\n copy.setParent(v, findParent(v));\n });\n }\n\n return copy;\n }\n /* === Edge functions ========== */\n setDefaultEdgeLabel(newDefault) {\n if (!_.isFunction(newDefault)) {\n newDefault = _.constant(newDefault);\n }\n this._defaultEdgeLabelFn = newDefault;\n return this;\n }\n edgeCount() {\n return this._edgeCount;\n }\n edges() {\n return _.values(this._edgeObjs);\n }\n setPath(vs, value) {\n var self = this;\n var args = arguments;\n _.reduce(vs, function (v, w) {\n if (args.length > 1) {\n self.setEdge(v, w, value);\n } else {\n self.setEdge(v, w);\n }\n return w;\n });\n return this;\n }\n /*\n * setEdge(v, w, [value, [name]])\n * setEdge({ v, w, [name] }, [value])\n */\n setEdge() {\n var v, w, name, value;\n var valueSpecified = false;\n var arg0 = arguments[0];\n\n if (typeof arg0 === 'object' && arg0 !== null && 'v' in arg0) {\n v = arg0.v;\n w = arg0.w;\n name = arg0.name;\n if (arguments.length === 2) {\n value = arguments[1];\n valueSpecified = true;\n }\n } else {\n v = arg0;\n w = arguments[1];\n name = arguments[3];\n if (arguments.length > 2) {\n value = arguments[2];\n valueSpecified = true;\n }\n }\n\n v = '' + v;\n w = '' + w;\n if (!_.isUndefined(name)) {\n name = '' + name;\n }\n\n var e = edgeArgsToId(this._isDirected, v, w, name);\n if (Object.prototype.hasOwnProperty.call(this._edgeLabels, e)) {\n if (valueSpecified) {\n this._edgeLabels[e] = value;\n }\n return this;\n }\n\n if (!_.isUndefined(name) && !this._isMultigraph) {\n throw new Error('Cannot set a named edge when isMultigraph = false');\n }\n\n // It didn't exist, so we need to create it.\n // First ensure the nodes exist.\n this.setNode(v);\n this.setNode(w);\n\n // @ts-expect-error\n this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name);\n\n var edgeObj = edgeArgsToObj(this._isDirected, v, w, name);\n // Ensure we add undirected edges in a consistent way.\n v = edgeObj.v;\n w = edgeObj.w;\n\n Object.freeze(edgeObj);\n this._edgeObjs[e] = edgeObj;\n incrementOrInitEntry(this._preds[w], v);\n incrementOrInitEntry(this._sucs[v], w);\n this._in[w][e] = edgeObj;\n this._out[v][e] = edgeObj;\n this._edgeCount++;\n return this;\n }\n edge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n return this._edgeLabels[e];\n }\n hasEdge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n return Object.prototype.hasOwnProperty.call(this._edgeLabels, e);\n }\n removeEdge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n var edge = this._edgeObjs[e];\n if (edge) {\n v = edge.v;\n w = edge.w;\n delete this._edgeLabels[e];\n delete this._edgeObjs[e];\n decrementOrRemoveEntry(this._preds[w], v);\n decrementOrRemoveEntry(this._sucs[v], w);\n delete this._in[w][e];\n delete this._out[v][e];\n this._edgeCount--;\n }\n return this;\n }\n inEdges(v, u) {\n var inV = this._in[v];\n if (inV) {\n var edges = _.values(inV);\n if (!u) {\n return edges;\n }\n return _.filter(edges, function (edge) {\n return edge.v === u;\n });\n }\n }\n outEdges(v, w) {\n var outV = this._out[v];\n if (outV) {\n var edges = _.values(outV);\n if (!w) {\n return edges;\n }\n return _.filter(edges, function (edge) {\n return edge.w === w;\n });\n }\n }\n nodeEdges(v, w) {\n var inEdges = this.inEdges(v, w);\n if (inEdges) {\n return inEdges.concat(this.outEdges(v, w));\n }\n }\n}\n\n/* Number of nodes in the graph. Should only be changed by the implementation. */\nGraph.prototype._nodeCount = 0;\n\n/* Number of edges in the graph. Should only be changed by the implementation. */\nGraph.prototype._edgeCount = 0;\n\nfunction incrementOrInitEntry(map, k) {\n if (map[k]) {\n map[k]++;\n } else {\n map[k] = 1;\n }\n}\n\nfunction decrementOrRemoveEntry(map, k) {\n if (!--map[k]) {\n delete map[k];\n }\n}\n\nfunction edgeArgsToId(isDirected, v_, w_, name) {\n var v = '' + v_;\n var w = '' + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM + (_.isUndefined(name) ? DEFAULT_EDGE_NAME : name);\n}\n\nfunction edgeArgsToObj(isDirected, v_, w_, name) {\n var v = '' + v_;\n var w = '' + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n var edgeObj = { v: v, w: w };\n if (name) {\n edgeObj.name = name;\n }\n return edgeObj;\n}\n\nfunction edgeObjToId(isDirected, edgeObj) {\n return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);\n}\n"],"names":["_.constant","_.isFunction","_.keys","_.filter","_.isEmpty","_.each","_.isUndefined","_.union","filter","_.values","_.reduce"],"mappings":"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","x_google_ignoreList":[0,1]}