@bgx4k3p/huly-mcp-server 2.2.3 → 2.2.5
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.
- package/README.md +186 -56
- package/node_modules/@hcengineering/account-client/lib/__tests__/utils.test.js +249 -0
- package/node_modules/@hcengineering/account-client/lib/__tests__/utils.test.js.map +7 -0
- package/node_modules/@hcengineering/account-client/lib/client.js +88 -3
- package/node_modules/@hcengineering/account-client/lib/client.js.map +2 -2
- package/node_modules/@hcengineering/account-client/lib/types.js.map +2 -2
- package/node_modules/@hcengineering/account-client/lib/utils.js +50 -0
- package/node_modules/@hcengineering/account-client/lib/utils.js.map +2 -2
- package/node_modules/@hcengineering/account-client/package.json +22 -19
- package/node_modules/@hcengineering/account-client/src/__tests__/utils.test.ts +304 -0
- package/node_modules/@hcengineering/account-client/src/client.ts +127 -6
- package/node_modules/@hcengineering/account-client/src/types.ts +7 -0
- package/node_modules/@hcengineering/account-client/src/utils.ts +65 -1
- package/node_modules/@hcengineering/analytics/lib/index.js +1 -1
- package/node_modules/@hcengineering/analytics/lib/index.js.map +2 -2
- package/node_modules/@hcengineering/analytics/package.json +19 -16
- package/node_modules/@hcengineering/analytics/src/index.ts +2 -1
- package/node_modules/@hcengineering/api-client/lib/client.js +9 -4
- package/node_modules/@hcengineering/api-client/lib/client.js.map +2 -2
- package/node_modules/@hcengineering/api-client/lib/rest/adapter.js +64 -0
- package/node_modules/@hcengineering/api-client/lib/rest/adapter.js.map +7 -0
- package/node_modules/@hcengineering/api-client/lib/rest/index.js +2 -0
- package/node_modules/@hcengineering/api-client/lib/rest/index.js.map +2 -2
- package/node_modules/@hcengineering/api-client/lib/socket/node.js +5 -1
- package/node_modules/@hcengineering/api-client/lib/socket/node.js.map +2 -2
- package/node_modules/@hcengineering/api-client/package.json +28 -25
- package/node_modules/@hcengineering/api-client/src/client.ts +10 -1
- package/node_modules/@hcengineering/api-client/src/rest/adapter.ts +96 -0
- package/node_modules/@hcengineering/api-client/src/rest/index.ts +1 -0
- package/node_modules/@hcengineering/api-client/src/socket/node.ts +6 -1
- package/node_modules/@hcengineering/chunter/lib/index.js.map +2 -2
- package/node_modules/@hcengineering/chunter/package.json +13 -10
- package/node_modules/@hcengineering/client/package.json +21 -18
- package/node_modules/@hcengineering/client-resources/package.json +24 -21
- package/node_modules/@hcengineering/collaborator-client/package.json +21 -18
- package/node_modules/@hcengineering/contact/lib/__tests__/workspaceMemberStatusUtils.test.js +38 -0
- package/node_modules/@hcengineering/contact/lib/__tests__/workspaceMemberStatusUtils.test.js.map +7 -0
- package/node_modules/@hcengineering/contact/lib/index.js +13 -4
- package/node_modules/@hcengineering/contact/lib/index.js.map +2 -2
- package/node_modules/@hcengineering/contact/lib/types.js.map +1 -1
- package/node_modules/@hcengineering/contact/lib/utils.js +132 -108
- package/node_modules/@hcengineering/contact/lib/utils.js.map +3 -3
- package/node_modules/@hcengineering/contact/lib/workspaceMemberStatusUtils.js +79 -0
- package/node_modules/@hcengineering/contact/lib/workspaceMemberStatusUtils.js.map +7 -0
- package/node_modules/@hcengineering/contact/package.json +12 -9
- package/node_modules/@hcengineering/core/CHANGELOG.md +9 -1
- package/node_modules/@hcengineering/core/lang/cs.json +6 -1
- package/node_modules/@hcengineering/core/lang/de.json +6 -1
- package/node_modules/@hcengineering/core/lang/en.json +6 -1
- package/node_modules/@hcengineering/core/lang/es.json +6 -1
- package/node_modules/@hcengineering/core/lang/fr.json +6 -1
- package/node_modules/@hcengineering/core/lang/it.json +6 -1
- package/node_modules/@hcengineering/core/lang/ja.json +6 -1
- package/node_modules/@hcengineering/core/lang/pt-br.json +70 -0
- package/node_modules/@hcengineering/core/lang/pt.json +6 -1
- package/node_modules/@hcengineering/core/lang/ru.json +6 -1
- package/node_modules/@hcengineering/core/lang/tr.json +6 -1
- package/node_modules/@hcengineering/core/lang/zh.json +6 -1
- package/node_modules/@hcengineering/core/lib/__tests__/autoJoinRoles.test.js +13 -0
- package/node_modules/@hcengineering/core/lib/__tests__/autoJoinRoles.test.js.map +7 -0
- package/node_modules/@hcengineering/core/lib/__tests__/memdb.test.js +133 -0
- package/node_modules/@hcengineering/core/lib/__tests__/memdb.test.js.map +2 -2
- package/node_modules/@hcengineering/core/lib/__tests__/minmodel.js +25 -0
- package/node_modules/@hcengineering/core/lib/__tests__/minmodel.js.map +2 -2
- package/node_modules/@hcengineering/core/lib/__tests__/query.test.js +43 -0
- package/node_modules/@hcengineering/core/lib/__tests__/query.test.js.map +7 -0
- package/node_modules/@hcengineering/core/lib/autoJoinRoles.js +36 -0
- package/node_modules/@hcengineering/core/lib/autoJoinRoles.js.map +7 -0
- package/node_modules/@hcengineering/core/lib/classes.js +5 -0
- package/node_modules/@hcengineering/core/lib/classes.js.map +3 -3
- package/node_modules/@hcengineering/core/lib/clone.js +13 -2
- package/node_modules/@hcengineering/core/lib/clone.js.map +2 -2
- package/node_modules/@hcengineering/core/lib/component.js +14 -3
- package/node_modules/@hcengineering/core/lib/component.js.map +2 -2
- package/node_modules/@hcengineering/core/lib/index.js +2 -0
- package/node_modules/@hcengineering/core/lib/index.js.map +2 -2
- package/node_modules/@hcengineering/core/lib/memdb.js +6 -2
- package/node_modules/@hcengineering/core/lib/memdb.js.map +2 -2
- package/node_modules/@hcengineering/core/lib/operations.js +11 -0
- package/node_modules/@hcengineering/core/lib/operations.js.map +2 -2
- package/node_modules/@hcengineering/core/lib/predicate.js +3 -0
- package/node_modules/@hcengineering/core/lib/predicate.js.map +2 -2
- package/node_modules/@hcengineering/core/lib/storage.js.map +2 -2
- package/node_modules/@hcengineering/core/lib/tx.js +3 -1
- package/node_modules/@hcengineering/core/lib/tx.js.map +2 -2
- package/node_modules/@hcengineering/core/lib/utils.js +1 -1
- package/node_modules/@hcengineering/core/lib/utils.js.map +2 -2
- package/node_modules/@hcengineering/core/lib/versioning.js +17 -0
- package/node_modules/@hcengineering/core/lib/versioning.js.map +7 -0
- package/node_modules/@hcengineering/core/package.json +22 -19
- package/node_modules/@hcengineering/core/src/__tests__/autoJoinRoles.test.ts +27 -0
- package/node_modules/@hcengineering/core/src/__tests__/memdb.test.ts +150 -1
- package/node_modules/@hcengineering/core/src/__tests__/minmodel.ts +29 -1
- package/node_modules/@hcengineering/core/src/__tests__/query.test.ts +66 -0
- package/node_modules/@hcengineering/core/src/autoJoinRoles.ts +33 -0
- package/node_modules/@hcengineering/core/src/classes.ts +61 -1
- package/node_modules/@hcengineering/core/src/clone.ts +13 -2
- package/node_modules/@hcengineering/core/src/component.ts +25 -9
- package/node_modules/@hcengineering/core/src/index.ts +2 -0
- package/node_modules/@hcengineering/core/src/memdb.ts +7 -3
- package/node_modules/@hcengineering/core/src/operations.ts +11 -0
- package/node_modules/@hcengineering/core/src/predicate.ts +3 -0
- package/node_modules/@hcengineering/core/src/storage.ts +6 -3
- package/node_modules/@hcengineering/core/src/tx.ts +4 -1
- package/node_modules/@hcengineering/core/src/utils.ts +1 -1
- package/node_modules/@hcengineering/core/src/versioning.ts +13 -0
- package/node_modules/@hcengineering/measurements/lib/__tests__/performance.test.js +3 -3
- package/node_modules/@hcengineering/measurements/lib/__tests__/performance.test.js.map +2 -2
- package/node_modules/@hcengineering/measurements/package.json +17 -14
- package/node_modules/@hcengineering/measurements/src/__tests__/performance.test.ts +3 -3
- package/node_modules/@hcengineering/platform/lang/pt-br.json +31 -0
- package/node_modules/@hcengineering/platform/lib/__tests__/i18n.test.js +100 -0
- package/node_modules/@hcengineering/platform/lib/__tests__/i18n.test.js.map +2 -2
- package/node_modules/@hcengineering/platform/lib/__tests__/status.test.js +78 -0
- package/node_modules/@hcengineering/platform/lib/__tests__/status.test.js.map +7 -0
- package/node_modules/@hcengineering/platform/lib/i18n.js +78 -69
- package/node_modules/@hcengineering/platform/lib/i18n.js.map +3 -3
- package/node_modules/@hcengineering/platform/lib/status.js +25 -0
- package/node_modules/@hcengineering/platform/lib/status.js.map +2 -2
- package/node_modules/@hcengineering/platform/package.json +18 -15
- package/node_modules/@hcengineering/platform/src/__tests__/i18n.test.ts +114 -2
- package/node_modules/@hcengineering/platform/src/__tests__/status.test.ts +77 -0
- package/node_modules/@hcengineering/platform/src/i18n.ts +99 -71
- package/node_modules/@hcengineering/platform/src/status.ts +30 -0
- package/node_modules/@hcengineering/rank/package.json +19 -16
- package/node_modules/@hcengineering/rpc/package.json +21 -18
- package/node_modules/@hcengineering/tags/package.json +12 -9
- package/node_modules/@hcengineering/task/package.json +14 -11
- package/node_modules/@hcengineering/text/lib/markup/__tests__/utils.test.js +25 -0
- package/node_modules/@hcengineering/text/lib/markup/__tests__/utils.test.js.map +2 -2
- package/node_modules/@hcengineering/text/lib/tiptapExtensions.js +6 -0
- package/node_modules/@hcengineering/text/lib/tiptapExtensions.js.map +2 -2
- package/node_modules/@hcengineering/text/package.json +23 -18
- package/node_modules/@hcengineering/text/src/markup/__tests__/utils.test.ts +27 -0
- package/node_modules/@hcengineering/text/src/tiptapExtensions.ts +3 -0
- package/node_modules/@hcengineering/text-core/lib/markup/model.js +1 -0
- package/node_modules/@hcengineering/text-core/lib/markup/model.js.map +2 -2
- package/node_modules/@hcengineering/text-core/package.json +20 -17
- package/node_modules/@hcengineering/text-core/src/markup/model.ts +2 -1
- package/node_modules/@hcengineering/text-html/package.json +19 -16
- package/node_modules/@hcengineering/text-markdown/lib/serializer.js +14 -0
- package/node_modules/@hcengineering/text-markdown/lib/serializer.js.map +2 -2
- package/node_modules/@hcengineering/text-markdown/package.json +20 -17
- package/node_modules/@hcengineering/text-markdown/src/serializer.ts +14 -0
- package/node_modules/@hcengineering/tracker/lib/index.js +1 -0
- package/node_modules/@hcengineering/tracker/lib/index.js.map +2 -2
- package/node_modules/@hcengineering/tracker/package.json +16 -13
- package/node_modules/@tiptap/core/dist/commands/focus.d.ts.map +1 -1
- package/node_modules/@tiptap/core/dist/index.cjs +19 -2
- package/node_modules/@tiptap/core/dist/index.cjs.map +1 -1
- package/node_modules/@tiptap/core/dist/index.js +19 -3
- package/node_modules/@tiptap/core/dist/index.js.map +1 -1
- package/node_modules/@tiptap/core/dist/index.umd.js +19 -2
- package/node_modules/@tiptap/core/dist/index.umd.js.map +1 -1
- package/node_modules/@tiptap/core/dist/utilities/index.d.ts +1 -0
- package/node_modules/@tiptap/core/dist/utilities/index.d.ts.map +1 -1
- package/node_modules/@tiptap/core/dist/utilities/isSafari.d.ts +10 -0
- package/node_modules/@tiptap/core/dist/utilities/isSafari.d.ts.map +1 -0
- package/node_modules/@tiptap/core/package.json +2 -2
- package/node_modules/@tiptap/core/src/commands/focus.ts +7 -2
- package/node_modules/@tiptap/core/src/utilities/index.ts +1 -0
- package/node_modules/@tiptap/core/src/utilities/isSafari.ts +11 -0
- package/node_modules/@tiptap/extension-blockquote/package.json +2 -2
- package/node_modules/@tiptap/extension-bold/package.json +2 -2
- package/node_modules/@tiptap/extension-bullet-list/package.json +2 -2
- package/node_modules/@tiptap/extension-code/package.json +2 -2
- package/node_modules/@tiptap/extension-code-block/package.json +3 -3
- package/node_modules/@tiptap/extension-document/package.json +2 -2
- package/node_modules/@tiptap/extension-dropcursor/package.json +3 -3
- package/node_modules/@tiptap/extension-gapcursor/package.json +3 -3
- package/node_modules/@tiptap/extension-hard-break/package.json +2 -2
- package/node_modules/@tiptap/extension-heading/package.json +2 -2
- package/node_modules/@tiptap/extension-highlight/package.json +2 -2
- package/node_modules/@tiptap/extension-history/package.json +3 -3
- package/node_modules/@tiptap/extension-horizontal-rule/package.json +3 -3
- package/node_modules/@tiptap/extension-italic/package.json +2 -2
- package/node_modules/@tiptap/extension-link/package.json +3 -3
- package/node_modules/@tiptap/extension-list-item/package.json +2 -2
- package/node_modules/@tiptap/extension-mention/package.json +4 -4
- package/node_modules/@tiptap/extension-ordered-list/package.json +2 -2
- package/node_modules/@tiptap/extension-paragraph/package.json +2 -2
- package/node_modules/@tiptap/extension-strike/package.json +2 -2
- package/node_modules/@tiptap/extension-subscript/README.md +14 -0
- package/node_modules/@tiptap/extension-subscript/dist/index.cjs +61 -0
- package/node_modules/@tiptap/extension-subscript/dist/index.cjs.map +1 -0
- package/node_modules/@tiptap/extension-subscript/dist/index.d.ts +4 -0
- package/node_modules/@tiptap/extension-subscript/dist/index.d.ts.map +1 -0
- package/node_modules/@tiptap/extension-subscript/dist/index.js +56 -0
- package/node_modules/@tiptap/extension-subscript/dist/index.js.map +1 -0
- package/node_modules/@tiptap/extension-subscript/dist/index.umd.js +65 -0
- package/node_modules/@tiptap/extension-subscript/dist/index.umd.js.map +1 -0
- package/node_modules/@tiptap/extension-subscript/dist/subscript.d.ts +36 -0
- package/node_modules/@tiptap/extension-subscript/dist/subscript.d.ts.map +1 -0
- package/node_modules/@tiptap/extension-subscript/package.json +49 -0
- package/node_modules/@tiptap/extension-subscript/src/index.ts +5 -0
- package/node_modules/@tiptap/extension-subscript/src/subscript.ts +91 -0
- package/node_modules/@tiptap/extension-superscript/README.md +14 -0
- package/node_modules/@tiptap/extension-superscript/dist/index.cjs +61 -0
- package/node_modules/@tiptap/extension-superscript/dist/index.cjs.map +1 -0
- package/node_modules/@tiptap/extension-superscript/dist/index.d.ts +4 -0
- package/node_modules/@tiptap/extension-superscript/dist/index.d.ts.map +1 -0
- package/node_modules/@tiptap/extension-superscript/dist/index.js +56 -0
- package/node_modules/@tiptap/extension-superscript/dist/index.js.map +1 -0
- package/node_modules/@tiptap/extension-superscript/dist/index.umd.js +65 -0
- package/node_modules/@tiptap/extension-superscript/dist/index.umd.js.map +1 -0
- package/node_modules/@tiptap/extension-superscript/dist/superscript.d.ts +36 -0
- package/node_modules/@tiptap/extension-superscript/dist/superscript.d.ts.map +1 -0
- package/node_modules/@tiptap/extension-superscript/package.json +49 -0
- package/node_modules/@tiptap/extension-superscript/src/index.ts +5 -0
- package/node_modules/@tiptap/extension-superscript/src/superscript.ts +91 -0
- package/node_modules/@tiptap/extension-table/package.json +3 -3
- package/node_modules/@tiptap/extension-table-cell/package.json +2 -2
- package/node_modules/@tiptap/extension-table-header/package.json +2 -2
- package/node_modules/@tiptap/extension-table-row/package.json +2 -2
- package/node_modules/@tiptap/extension-task-item/package.json +3 -3
- package/node_modules/@tiptap/extension-task-list/package.json +2 -2
- package/node_modules/@tiptap/extension-text/package.json +2 -2
- package/node_modules/@tiptap/extension-typography/package.json +2 -2
- package/node_modules/@tiptap/extension-underline/package.json +2 -2
- package/node_modules/@tiptap/html/package.json +3 -3
- package/node_modules/@tiptap/pm/package.json +1 -1
- package/node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-text-style/package.json +2 -2
- package/node_modules/@tiptap/starter-kit/package.json +22 -22
- package/node_modules/@tiptap/suggestion/package.json +3 -3
- package/node_modules/linkify-it/build/index.cjs.js +99 -94
- package/node_modules/linkify-it/index.mjs +99 -94
- package/node_modules/linkify-it/package.json +11 -1
- package/node_modules/linkifyjs/README.md +4 -2
- package/node_modules/linkifyjs/dist/linkify.cjs +8 -11
- package/node_modules/linkifyjs/dist/linkify.d.cts +14 -14
- package/node_modules/linkifyjs/dist/linkify.d.mts +14 -14
- package/node_modules/linkifyjs/dist/linkify.js +8 -11
- package/node_modules/linkifyjs/dist/linkify.min.js +1 -1
- package/node_modules/linkifyjs/dist/linkify.mjs +8 -11
- package/node_modules/linkifyjs/package.json +1 -1
- package/node_modules/markdown-it/README.md +13 -17
- package/node_modules/markdown-it/dist/index.cjs.js +111 -31
- package/node_modules/markdown-it/dist/markdown-it.js +117 -31
- package/node_modules/markdown-it/dist/markdown-it.min.js +2 -2
- package/node_modules/markdown-it/lib/common/utils.mjs +30 -1
- package/node_modules/markdown-it/lib/index.mjs +1 -1
- package/node_modules/markdown-it/lib/rules_block/heading.mjs +2 -2
- package/node_modules/markdown-it/lib/rules_block/html_block.mjs +12 -1
- package/node_modules/markdown-it/lib/rules_block/lheading.mjs +4 -1
- package/node_modules/markdown-it/lib/rules_block/paragraph.mjs +3 -1
- package/node_modules/markdown-it/lib/rules_core/smartquotes.mjs +37 -21
- package/node_modules/markdown-it/lib/rules_inline/entity.mjs +2 -2
- package/node_modules/markdown-it/lib/rules_inline/state_inline.mjs +37 -6
- package/node_modules/markdown-it/package.json +14 -3
- package/node_modules/msgpackr/README.md +1 -3
- package/node_modules/msgpackr/benchmark.md +26 -16
- package/node_modules/msgpackr/dist/index-no-eval.cjs +35 -16
- package/node_modules/msgpackr/dist/index-no-eval.cjs.map +1 -1
- package/node_modules/msgpackr/dist/index-no-eval.min.js +1 -1
- package/node_modules/msgpackr/dist/index-no-eval.min.js.map +1 -1
- package/node_modules/msgpackr/dist/index.js +35 -16
- package/node_modules/msgpackr/dist/index.js.map +1 -1
- package/node_modules/msgpackr/dist/index.min.js +1 -1
- package/node_modules/msgpackr/dist/index.min.js.map +1 -1
- package/node_modules/msgpackr/dist/node.cjs +50 -26
- package/node_modules/msgpackr/dist/node.cjs.map +1 -1
- package/node_modules/msgpackr/dist/test.js +44 -16
- package/node_modules/msgpackr/dist/test.js.map +1 -1
- package/node_modules/msgpackr/dist/unpack-no-eval.cjs +35 -16
- package/node_modules/msgpackr/dist/unpack-no-eval.cjs.map +1 -1
- package/node_modules/msgpackr/index.d.cts +2 -0
- package/node_modules/msgpackr/index.d.ts +2 -0
- package/node_modules/msgpackr/package.json +1 -1
- package/node_modules/msgpackr/stream.js +15 -10
- package/node_modules/msgpackr/unpack.js +35 -16
- package/node_modules/prosemirror-changeset/CHANGELOG.md +12 -0
- package/node_modules/prosemirror-changeset/README.md +31 -2
- package/node_modules/prosemirror-changeset/dist/index.cjs +17 -2
- package/node_modules/prosemirror-changeset/dist/index.d.cts +32 -2
- package/node_modules/prosemirror-changeset/dist/index.d.ts +32 -2
- package/node_modules/prosemirror-changeset/dist/index.js +18 -3
- package/node_modules/prosemirror-changeset/package.json +2 -2
- package/node_modules/prosemirror-changeset/src/README.md +4 -2
- package/node_modules/prosemirror-changeset/src/change.ts +18 -0
- package/node_modules/prosemirror-changeset/src/changeset.ts +10 -4
- package/node_modules/prosemirror-changeset/src/simplify.ts +1 -1
- package/node_modules/prosemirror-changeset/test/test-simplify.ts +3 -0
- package/node_modules/prosemirror-gapcursor/CHANGELOG.md +6 -0
- package/node_modules/prosemirror-gapcursor/dist/index.cjs +1 -1
- package/node_modules/prosemirror-gapcursor/dist/index.js +1 -1
- package/node_modules/prosemirror-gapcursor/package.json +3 -2
- package/node_modules/prosemirror-gapcursor/src/gapcursor.ts +1 -1
- package/node_modules/prosemirror-markdown/CHANGELOG.md +12 -0
- package/node_modules/prosemirror-markdown/dist/index.cjs +11 -1
- package/node_modules/prosemirror-markdown/dist/index.js +14 -2
- package/node_modules/prosemirror-markdown/package.json +1 -1
- package/node_modules/prosemirror-markdown/src/to_markdown.ts +12 -3
- package/node_modules/prosemirror-menu/CHANGELOG.md +18 -0
- package/node_modules/prosemirror-menu/CONTRIBUTING.md +22 -18
- package/node_modules/prosemirror-menu/README.md +69 -29
- package/node_modules/prosemirror-menu/dist/index.cjs +232 -48
- package/node_modules/prosemirror-menu/dist/index.d.cts +29 -14
- package/node_modules/prosemirror-menu/dist/index.d.ts +29 -14
- package/node_modules/prosemirror-menu/dist/index.js +229 -36
- package/node_modules/prosemirror-menu/package.json +2 -2
- package/node_modules/prosemirror-menu/src/README.md +30 -1
- package/node_modules/prosemirror-menu/src/icons.ts +3 -2
- package/node_modules/prosemirror-menu/src/menu.ts +193 -40
- package/node_modules/prosemirror-menu/src/menubar.ts +50 -5
- package/node_modules/prosemirror-menu/style/menu.css +28 -7
- package/node_modules/prosemirror-model/CHANGELOG.md +20 -0
- package/node_modules/prosemirror-model/CONTRIBUTING.md +19 -19
- package/node_modules/prosemirror-model/README.md +3 -3
- package/node_modules/prosemirror-model/dist/index.cjs +13 -10
- package/node_modules/prosemirror-model/dist/index.d.cts +25 -21
- package/node_modules/prosemirror-model/dist/index.d.ts +25 -21
- package/node_modules/prosemirror-model/dist/index.js +19 -23
- package/node_modules/prosemirror-model/package.json +2 -2
- package/node_modules/prosemirror-model/src/fragment.ts +1 -1
- package/node_modules/prosemirror-model/src/from_dom.ts +4 -1
- package/node_modules/prosemirror-model/src/node.ts +5 -4
- package/node_modules/prosemirror-model/src/replace.ts +6 -15
- package/node_modules/prosemirror-model/src/schema.ts +1 -1
- package/node_modules/prosemirror-model/src/to_dom.ts +24 -20
- package/node_modules/prosemirror-transform/CHANGELOG.md +16 -0
- package/node_modules/prosemirror-transform/dist/index.cjs +38 -4
- package/node_modules/prosemirror-transform/dist/index.d.cts +19 -0
- package/node_modules/prosemirror-transform/dist/index.d.ts +19 -0
- package/node_modules/prosemirror-transform/dist/index.js +52 -1
- package/node_modules/prosemirror-transform/package.json +1 -1
- package/node_modules/prosemirror-transform/src/replace.ts +16 -0
- package/node_modules/prosemirror-transform/src/replace_step.ts +10 -1
- package/node_modules/prosemirror-transform/src/transform.ts +21 -2
- package/node_modules/prosemirror-view/CHANGELOG.md +34 -2
- package/node_modules/prosemirror-view/CONTRIBUTING.md +19 -19
- package/node_modules/prosemirror-view/README.md +3 -3
- package/node_modules/prosemirror-view/dist/index.cjs +96 -40
- package/node_modules/prosemirror-view/dist/index.d.cts +2 -2
- package/node_modules/prosemirror-view/dist/index.d.ts +2 -2
- package/node_modules/prosemirror-view/dist/index.js +90 -39
- package/node_modules/prosemirror-view/package.json +2 -2
- package/node_modules/prosemirror-view/src/domchange.ts +1 -1
- package/node_modules/prosemirror-view/src/domobserver.ts +59 -16
- package/node_modules/prosemirror-view/src/index.ts +4 -4
- package/node_modules/prosemirror-view/src/input.ts +9 -6
- package/node_modules/prosemirror-view/src/viewdesc.ts +26 -22
- package/node_modules/prosemirror-view/style/prosemirror.css +1 -1
- package/package.json +5 -4
- package/src/client.mjs +2 -2
- package/src/config.mjs +1 -0
- package/src/helpers.mjs +2 -2
- package/src/index.mjs +31 -1
- package/src/initCodex.mjs +281 -0
- package/src/mcp.mjs +11 -1
- package/src/mcpShared.mjs +95 -5
- package/node_modules/@hcengineering/account-client/types/client.d.ts +0 -140
- package/node_modules/@hcengineering/account-client/types/client.d.ts.map +0 -1
- package/node_modules/@hcengineering/account-client/types/index.d.ts +0 -4
- package/node_modules/@hcengineering/account-client/types/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/account-client/types/types.d.ts +0 -177
- package/node_modules/@hcengineering/account-client/types/types.d.ts.map +0 -1
- package/node_modules/@hcengineering/account-client/types/utils.d.ts +0 -5
- package/node_modules/@hcengineering/account-client/types/utils.d.ts.map +0 -1
- package/node_modules/@hcengineering/analytics/types/index.d.ts +0 -25
- package/node_modules/@hcengineering/analytics/types/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/__tests__/config.test.d.ts +0 -2
- package/node_modules/@hcengineering/api-client/types/__tests__/config.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/__tests__/markup-client.test.d.ts +0 -2
- package/node_modules/@hcengineering/api-client/types/__tests__/markup-client.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/__tests__/markup-types.test.d.ts +0 -2
- package/node_modules/@hcengineering/api-client/types/__tests__/markup-types.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/__tests__/rest-utils.test.d.ts +0 -2
- package/node_modules/@hcengineering/api-client/types/__tests__/rest-utils.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/__tests__/utils.test.d.ts +0 -2
- package/node_modules/@hcengineering/api-client/types/__tests__/utils.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/client.d.ts +0 -6
- package/node_modules/@hcengineering/api-client/types/client.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/config.d.ts +0 -8
- package/node_modules/@hcengineering/api-client/types/config.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/index.d.ts +0 -9
- package/node_modules/@hcengineering/api-client/types/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/markup/client.d.ts +0 -5
- package/node_modules/@hcengineering/api-client/types/markup/client.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/markup/index.d.ts +0 -3
- package/node_modules/@hcengineering/api-client/types/markup/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/markup/types.d.ts +0 -41
- package/node_modules/@hcengineering/api-client/types/markup/types.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/rest/index.d.ts +0 -4
- package/node_modules/@hcengineering/api-client/types/rest/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/rest/rest.d.ts +0 -39
- package/node_modules/@hcengineering/api-client/types/rest/rest.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/rest/tx.d.ts +0 -3
- package/node_modules/@hcengineering/api-client/types/rest/tx.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/rest/types.d.ts +0 -16
- package/node_modules/@hcengineering/api-client/types/rest/types.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/rest/utils.d.ts +0 -3
- package/node_modules/@hcengineering/api-client/types/rest/utils.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/socket/browser.d.ts +0 -4
- package/node_modules/@hcengineering/api-client/types/socket/browser.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/socket/index.d.ts +0 -3
- package/node_modules/@hcengineering/api-client/types/socket/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/socket/node.d.ts +0 -4
- package/node_modules/@hcengineering/api-client/types/socket/node.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/storage/client.d.ts +0 -21
- package/node_modules/@hcengineering/api-client/types/storage/client.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/storage/error.d.ts +0 -10
- package/node_modules/@hcengineering/api-client/types/storage/error.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/storage/index.d.ts +0 -4
- package/node_modules/@hcengineering/api-client/types/storage/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/storage/types.d.ts +0 -10
- package/node_modules/@hcengineering/api-client/types/storage/types.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/types.d.ts +0 -101
- package/node_modules/@hcengineering/api-client/types/types.d.ts.map +0 -1
- package/node_modules/@hcengineering/api-client/types/utils.d.ts +0 -12
- package/node_modules/@hcengineering/api-client/types/utils.d.ts.map +0 -1
- package/node_modules/@hcengineering/chunter/types/analytics.d.ts +0 -5
- package/node_modules/@hcengineering/chunter/types/analytics.d.ts.map +0 -1
- package/node_modules/@hcengineering/chunter/types/index.d.ts +0 -211
- package/node_modules/@hcengineering/chunter/types/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/chunter/types/utils.d.ts +0 -7
- package/node_modules/@hcengineering/chunter/types/utils.d.ts.map +0 -1
- package/node_modules/@hcengineering/client/types/__tests__/client.test.d.ts +0 -2
- package/node_modules/@hcengineering/client/types/__tests__/client.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/client/types/index.d.ts +0 -69
- package/node_modules/@hcengineering/client/types/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/client-resources/types/__tests__/connection.test.d.ts +0 -2
- package/node_modules/@hcengineering/client-resources/types/__tests__/connection.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/client-resources/types/__tests__/integration.test.d.ts +0 -45
- package/node_modules/@hcengineering/client-resources/types/__tests__/integration.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/client-resources/types/connection.d.ts +0 -7
- package/node_modules/@hcengineering/client-resources/types/connection.d.ts.map +0 -1
- package/node_modules/@hcengineering/client-resources/types/index.d.ts +0 -11
- package/node_modules/@hcengineering/client-resources/types/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/collaborator-client/types/__tests__/utils.test.d.ts +0 -2
- package/node_modules/@hcengineering/collaborator-client/types/__tests__/utils.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/collaborator-client/types/client.d.ts +0 -34
- package/node_modules/@hcengineering/collaborator-client/types/client.d.ts.map +0 -1
- package/node_modules/@hcengineering/collaborator-client/types/index.d.ts +0 -3
- package/node_modules/@hcengineering/collaborator-client/types/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/collaborator-client/types/utils.d.ts +0 -9
- package/node_modules/@hcengineering/collaborator-client/types/utils.d.ts.map +0 -1
- package/node_modules/@hcengineering/contact/types/__tests__/cache.test.d.ts +0 -2
- package/node_modules/@hcengineering/contact/types/__tests__/cache.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/contact/types/analytics.d.ts +0 -6
- package/node_modules/@hcengineering/contact/types/analytics.d.ts.map +0 -1
- package/node_modules/@hcengineering/contact/types/avatar.d.ts +0 -12
- package/node_modules/@hcengineering/contact/types/avatar.d.ts.map +0 -1
- package/node_modules/@hcengineering/contact/types/cache.d.ts +0 -49
- package/node_modules/@hcengineering/contact/types/cache.d.ts.map +0 -1
- package/node_modules/@hcengineering/contact/types/index.d.ts +0 -367
- package/node_modules/@hcengineering/contact/types/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/contact/types/types.d.ts +0 -25
- package/node_modules/@hcengineering/contact/types/types.d.ts.map +0 -1
- package/node_modules/@hcengineering/contact/types/utils.d.ts +0 -110
- package/node_modules/@hcengineering/contact/types/utils.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/__tests__/client.test.d.ts +0 -2
- package/node_modules/@hcengineering/core/types/__tests__/client.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/__tests__/clone.test.d.ts +0 -2
- package/node_modules/@hcengineering/core/types/__tests__/clone.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/__tests__/collaboration.test.d.ts +0 -2
- package/node_modules/@hcengineering/core/types/__tests__/collaboration.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/__tests__/collaborators.test.d.ts +0 -2
- package/node_modules/@hcengineering/core/types/__tests__/collaborators.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/__tests__/common.test.d.ts +0 -2
- package/node_modules/@hcengineering/core/types/__tests__/common.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/__tests__/connection.d.ts +0 -4
- package/node_modules/@hcengineering/core/types/__tests__/connection.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/__tests__/contexts.test.d.ts +0 -2
- package/node_modules/@hcengineering/core/types/__tests__/contexts.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/__tests__/hierarchy.test.d.ts +0 -2
- package/node_modules/@hcengineering/core/types/__tests__/hierarchy.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/__tests__/lang.test.d.ts +0 -2
- package/node_modules/@hcengineering/core/types/__tests__/lang.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/__tests__/limiter-edge-cases.test.d.ts +0 -2
- package/node_modules/@hcengineering/core/types/__tests__/limiter-edge-cases.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/__tests__/limits.test.d.ts +0 -2
- package/node_modules/@hcengineering/core/types/__tests__/limits.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/__tests__/memdb.test.d.ts +0 -2
- package/node_modules/@hcengineering/core/types/__tests__/memdb.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/__tests__/minmodel.d.ts +0 -50
- package/node_modules/@hcengineering/core/types/__tests__/minmodel.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/__tests__/objvalue.test.d.ts +0 -2
- package/node_modules/@hcengineering/core/types/__tests__/objvalue.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/__tests__/operator-bugs.test.d.ts +0 -2
- package/node_modules/@hcengineering/core/types/__tests__/operator-bugs.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/__tests__/operator.test.d.ts +0 -2
- package/node_modules/@hcengineering/core/types/__tests__/operator.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/__tests__/rate-limiter.test.d.ts +0 -2
- package/node_modules/@hcengineering/core/types/__tests__/rate-limiter.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/__tests__/time.test.d.ts +0 -2
- package/node_modules/@hcengineering/core/types/__tests__/time.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/__tests__/utils.test.d.ts +0 -2
- package/node_modules/@hcengineering/core/types/__tests__/utils.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/backup.d.ts +0 -26
- package/node_modules/@hcengineering/core/types/backup.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/benchmark.d.ts +0 -19
- package/node_modules/@hcengineering/core/types/benchmark.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/classes.d.ts +0 -716
- package/node_modules/@hcengineering/core/types/classes.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/client.d.ts +0 -69
- package/node_modules/@hcengineering/core/types/client.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/clone.d.ts +0 -3
- package/node_modules/@hcengineering/core/types/clone.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/collaboration.d.ts +0 -16
- package/node_modules/@hcengineering/core/types/collaboration.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/collaborators.d.ts +0 -3
- package/node_modules/@hcengineering/core/types/collaborators.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/common.d.ts +0 -4
- package/node_modules/@hcengineering/core/types/common.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/component.d.ts +0 -229
- package/node_modules/@hcengineering/core/types/component.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/hierarchy.d.ts +0 -84
- package/node_modules/@hcengineering/core/types/hierarchy.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/index.d.ts +0 -25
- package/node_modules/@hcengineering/core/types/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/memdb.d.ts +0 -60
- package/node_modules/@hcengineering/core/types/memdb.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/objvalue.d.ts +0 -10
- package/node_modules/@hcengineering/core/types/objvalue.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/operations.d.ts +0 -87
- package/node_modules/@hcengineering/core/types/operations.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/operator.d.ts +0 -16
- package/node_modules/@hcengineering/core/types/operator.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/predicate.d.ts +0 -6
- package/node_modules/@hcengineering/core/types/predicate.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/proxy.d.ts +0 -21
- package/node_modules/@hcengineering/core/types/proxy.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/query.d.ts +0 -21
- package/node_modules/@hcengineering/core/types/query.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/server.d.ts +0 -82
- package/node_modules/@hcengineering/core/types/server.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/status.d.ts +0 -30
- package/node_modules/@hcengineering/core/types/status.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/storage.d.ts +0 -233
- package/node_modules/@hcengineering/core/types/storage.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/time.d.ts +0 -8
- package/node_modules/@hcengineering/core/types/time.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/tx.d.ts +0 -261
- package/node_modules/@hcengineering/core/types/tx.d.ts.map +0 -1
- package/node_modules/@hcengineering/core/types/utils.d.ts +0 -207
- package/node_modules/@hcengineering/core/types/utils.d.ts.map +0 -1
- package/node_modules/@hcengineering/measurements/types/__tests__/context.test.d.ts +0 -2
- package/node_modules/@hcengineering/measurements/types/__tests__/context.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/measurements/types/__tests__/index.test.d.ts +0 -2
- package/node_modules/@hcengineering/measurements/types/__tests__/index.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/measurements/types/__tests__/metrics.test.d.ts +0 -2
- package/node_modules/@hcengineering/measurements/types/__tests__/metrics.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/measurements/types/__tests__/performance.test.d.ts +0 -2
- package/node_modules/@hcengineering/measurements/types/__tests__/performance.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/measurements/types/context.d.ts +0 -64
- package/node_modules/@hcengineering/measurements/types/context.d.ts.map +0 -1
- package/node_modules/@hcengineering/measurements/types/index.d.ts +0 -12
- package/node_modules/@hcengineering/measurements/types/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/measurements/types/metrics.d.ts +0 -34
- package/node_modules/@hcengineering/measurements/types/metrics.d.ts.map +0 -1
- package/node_modules/@hcengineering/measurements/types/types.d.ts +0 -88
- package/node_modules/@hcengineering/measurements/types/types.d.ts.map +0 -1
- package/node_modules/@hcengineering/platform/types/__tests__/i18n.test.d.ts +0 -2
- package/node_modules/@hcengineering/platform/types/__tests__/i18n.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/platform/types/__tests__/ident.test.d.ts +0 -2
- package/node_modules/@hcengineering/platform/types/__tests__/ident.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/platform/types/__tests__/plugin.d.ts +0 -7
- package/node_modules/@hcengineering/platform/types/__tests__/plugin.d.ts.map +0 -1
- package/node_modules/@hcengineering/platform/types/__tests__/resource.test.d.ts +0 -2
- package/node_modules/@hcengineering/platform/types/__tests__/resource.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/platform/types/event.d.ts +0 -39
- package/node_modules/@hcengineering/platform/types/event.d.ts.map +0 -1
- package/node_modules/@hcengineering/platform/types/i18n.d.ts +0 -28
- package/node_modules/@hcengineering/platform/types/i18n.d.ts.map +0 -1
- package/node_modules/@hcengineering/platform/types/ident.d.ts +0 -14
- package/node_modules/@hcengineering/platform/types/ident.d.ts.map +0 -1
- package/node_modules/@hcengineering/platform/types/index.d.ts +0 -19
- package/node_modules/@hcengineering/platform/types/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/platform/types/metadata.d.ts +0 -38
- package/node_modules/@hcengineering/platform/types/metadata.d.ts.map +0 -1
- package/node_modules/@hcengineering/platform/types/platform.d.ts +0 -218
- package/node_modules/@hcengineering/platform/types/platform.d.ts.map +0 -1
- package/node_modules/@hcengineering/platform/types/resource.d.ts +0 -49
- package/node_modules/@hcengineering/platform/types/resource.d.ts.map +0 -1
- package/node_modules/@hcengineering/platform/types/status.d.ts +0 -60
- package/node_modules/@hcengineering/platform/types/status.d.ts.map +0 -1
- package/node_modules/@hcengineering/platform/types/testUtils.d.ts +0 -8
- package/node_modules/@hcengineering/platform/types/testUtils.d.ts.map +0 -1
- package/node_modules/@hcengineering/rank/types/__tests__/utils.test.d.ts +0 -2
- package/node_modules/@hcengineering/rank/types/__tests__/utils.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/rank/types/index.d.ts +0 -3
- package/node_modules/@hcengineering/rank/types/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/rank/types/types.d.ts +0 -2
- package/node_modules/@hcengineering/rank/types/types.d.ts.map +0 -1
- package/node_modules/@hcengineering/rank/types/utils.d.ts +0 -6
- package/node_modules/@hcengineering/rank/types/utils.d.ts.map +0 -1
- package/node_modules/@hcengineering/rpc/types/index.d.ts +0 -3
- package/node_modules/@hcengineering/rpc/types/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/rpc/types/rpc.d.ts +0 -96
- package/node_modules/@hcengineering/rpc/types/rpc.d.ts.map +0 -1
- package/node_modules/@hcengineering/rpc/types/sliding.d.ts +0 -11
- package/node_modules/@hcengineering/rpc/types/sliding.d.ts.map +0 -1
- package/node_modules/@hcengineering/rpc/types/test/rateLimit.spec.d.ts +0 -2
- package/node_modules/@hcengineering/rpc/types/test/rateLimit.spec.d.ts.map +0 -1
- package/node_modules/@hcengineering/tags/types/analytics.d.ts +0 -5
- package/node_modules/@hcengineering/tags/types/analytics.d.ts.map +0 -1
- package/node_modules/@hcengineering/tags/types/index.d.ts +0 -105
- package/node_modules/@hcengineering/tags/types/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/task/types/index.d.ts +0 -227
- package/node_modules/@hcengineering/task/types/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/task/types/utils.d.ts +0 -61
- package/node_modules/@hcengineering/task/types/utils.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/extensions.d.ts +0 -53
- package/node_modules/@hcengineering/text/types/extensions.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/index.d.ts +0 -13
- package/node_modules/@hcengineering/text/types/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/kit.d.ts +0 -12
- package/node_modules/@hcengineering/text/types/kit.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/kits/common-kit.d.ts +0 -72
- package/node_modules/@hcengineering/text/types/kits/common-kit.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/kits/server-kit.d.ts +0 -106
- package/node_modules/@hcengineering/text/types/kits/server-kit.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/marks/code.d.ts +0 -8
- package/node_modules/@hcengineering/text/types/marks/code.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/marks/colors.d.ts +0 -21
- package/node_modules/@hcengineering/text/types/marks/colors.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/marks/inlineComment.d.ts +0 -5
- package/node_modules/@hcengineering/text/types/marks/inlineComment.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/marks/noteBase.d.ts +0 -23
- package/node_modules/@hcengineering/text/types/marks/noteBase.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/marks/qmsInlineCommentMark.d.ts +0 -6
- package/node_modules/@hcengineering/text/types/marks/qmsInlineCommentMark.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/markup/__tests__/dsl.test.d.ts +0 -2
- package/node_modules/@hcengineering/text/types/markup/__tests__/dsl.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/markup/__tests__/utils.test.d.ts +0 -5
- package/node_modules/@hcengineering/text/types/markup/__tests__/utils.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/markup/utils.d.ts +0 -19
- package/node_modules/@hcengineering/text/types/markup/utils.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/nodes/codeblock.d.ts +0 -12
- package/node_modules/@hcengineering/text/types/nodes/codeblock.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/nodes/comment.d.ts +0 -6
- package/node_modules/@hcengineering/text/types/nodes/comment.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/nodes/embed.d.ts +0 -3
- package/node_modules/@hcengineering/text/types/nodes/embed.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/nodes/emoji.d.ts +0 -17
- package/node_modules/@hcengineering/text/types/nodes/emoji.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/nodes/file.d.ts +0 -13
- package/node_modules/@hcengineering/text/types/nodes/file.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/nodes/image.d.ts +0 -52
- package/node_modules/@hcengineering/text/types/nodes/image.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/nodes/index.d.ts +0 -11
- package/node_modules/@hcengineering/text/types/nodes/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/nodes/markdown.d.ts +0 -3
- package/node_modules/@hcengineering/text/types/nodes/markdown.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/nodes/mermaid.d.ts +0 -4
- package/node_modules/@hcengineering/text/types/nodes/mermaid.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/nodes/reference.d.ts +0 -18
- package/node_modules/@hcengineering/text/types/nodes/reference.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/nodes/todo.d.ts +0 -3
- package/node_modules/@hcengineering/text/types/nodes/todo.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/nodes/utils.d.ts +0 -6
- package/node_modules/@hcengineering/text/types/nodes/utils.d.ts.map +0 -1
- package/node_modules/@hcengineering/text/types/tiptapExtensions.d.ts +0 -28
- package/node_modules/@hcengineering/text/types/tiptapExtensions.d.ts.map +0 -1
- package/node_modules/@hcengineering/text-core/types/index.d.ts +0 -6
- package/node_modules/@hcengineering/text-core/types/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/text-core/types/markup/__tests__/traverse.test.d.ts +0 -2
- package/node_modules/@hcengineering/text-core/types/markup/__tests__/traverse.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/text-core/types/markup/__tests__/utils.test.d.ts +0 -2
- package/node_modules/@hcengineering/text-core/types/markup/__tests__/utils.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/text-core/types/markup/dsl.d.ts +0 -25
- package/node_modules/@hcengineering/text-core/types/markup/dsl.d.ts.map +0 -1
- package/node_modules/@hcengineering/text-core/types/markup/model.d.ts +0 -74
- package/node_modules/@hcengineering/text-core/types/markup/model.d.ts.map +0 -1
- package/node_modules/@hcengineering/text-core/types/markup/reference.d.ts +0 -15
- package/node_modules/@hcengineering/text-core/types/markup/reference.d.ts.map +0 -1
- package/node_modules/@hcengineering/text-core/types/markup/traverse.d.ts +0 -6
- package/node_modules/@hcengineering/text-core/types/markup/traverse.d.ts.map +0 -1
- package/node_modules/@hcengineering/text-core/types/markup/utils.d.ts +0 -25
- package/node_modules/@hcengineering/text-core/types/markup/utils.d.ts.map +0 -1
- package/node_modules/@hcengineering/text-html/types/__tests__/html.test.d.ts +0 -2
- package/node_modules/@hcengineering/text-html/types/__tests__/html.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/text-html/types/index.d.ts +0 -6
- package/node_modules/@hcengineering/text-html/types/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/text-html/types/parser.d.ts +0 -10
- package/node_modules/@hcengineering/text-html/types/parser.d.ts.map +0 -1
- package/node_modules/@hcengineering/text-html/types/serializer.d.ts +0 -9
- package/node_modules/@hcengineering/text-html/types/serializer.d.ts.map +0 -1
- package/node_modules/@hcengineering/text-markdown/types/__tests__/markdown.test.d.ts +0 -9
- package/node_modules/@hcengineering/text-markdown/types/__tests__/markdown.test.d.ts.map +0 -1
- package/node_modules/@hcengineering/text-markdown/types/compare.d.ts +0 -10
- package/node_modules/@hcengineering/text-markdown/types/compare.d.ts.map +0 -1
- package/node_modules/@hcengineering/text-markdown/types/index.d.ts +0 -14
- package/node_modules/@hcengineering/text-markdown/types/index.d.ts.map +0 -1
- package/node_modules/@hcengineering/text-markdown/types/marks.d.ts +0 -8
- package/node_modules/@hcengineering/text-markdown/types/marks.d.ts.map +0 -1
- package/node_modules/@hcengineering/text-markdown/types/node.d.ts +0 -4
- package/node_modules/@hcengineering/text-markdown/types/node.d.ts.map +0 -1
- package/node_modules/@hcengineering/text-markdown/types/parser.d.ts +0 -50
- package/node_modules/@hcengineering/text-markdown/types/parser.d.ts.map +0 -1
- package/node_modules/@hcengineering/text-markdown/types/serializer.d.ts +0 -102
- package/node_modules/@hcengineering/text-markdown/types/serializer.d.ts.map +0 -1
- package/node_modules/@hcengineering/tracker/types/analytics.d.ts +0 -24
- package/node_modules/@hcengineering/tracker/types/analytics.d.ts.map +0 -1
- package/node_modules/@hcengineering/tracker/types/index.d.ts +0 -431
- package/node_modules/@hcengineering/tracker/types/index.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -17,8 +17,18 @@ May also work with [Huly Cloud](https://app.huly.io) (not yet tested).
|
|
|
17
17
|
|
|
18
18
|
Huly has no public API. The only programmatic access is through their JavaScript SDK,
|
|
19
19
|
which connects via WebSocket. This server wraps that SDK and exposes **MCP tools**
|
|
20
|
-
over both stdio and **Streamable HTTP** transports — compatible with
|
|
21
|
-
VS Code, n8n, and any MCP client.
|
|
20
|
+
over both stdio and **Streamable HTTP** transports — compatible with Codex,
|
|
21
|
+
Claude Code, VS Code, n8n, and any MCP client.
|
|
22
|
+
|
|
23
|
+
## Documentation Map
|
|
24
|
+
|
|
25
|
+
- **Install**: add the package to a project or run it with `npx`.
|
|
26
|
+
- **Quick Start**: configure Huly authentication.
|
|
27
|
+
- **Integrations**: connect Codex, Claude Code, HTTP clients, or Docker.
|
|
28
|
+
- **Configuration Reference**: environment variables and workspace behavior.
|
|
29
|
+
- **Network Configurations**: local, remote, and Cloudflare tunnel notes.
|
|
30
|
+
- **Development and Publishing**: tests, linting, and package publishing.
|
|
31
|
+
- **API Reference**: available MCP tools and response conventions.
|
|
22
32
|
|
|
23
33
|
## Install
|
|
24
34
|
|
|
@@ -42,23 +52,13 @@ cd huly-mcp-server
|
|
|
42
52
|
npm install
|
|
43
53
|
```
|
|
44
54
|
|
|
45
|
-
### Publishing
|
|
46
|
-
|
|
47
|
-
The Huly SDK has `workspace:` protocol references in transitive
|
|
48
|
-
dependencies on the npm registry. The custom pack script bundles
|
|
49
|
-
only the needed SDK packages and prunes UI bloat (32MB to 4MB):
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
npm run pack
|
|
53
|
-
npm publish bgx4k3p-huly-mcp-server-<version>.tgz --access public
|
|
54
|
-
```
|
|
55
|
-
|
|
56
55
|
---
|
|
57
56
|
|
|
58
57
|
## Quick Start
|
|
59
58
|
|
|
60
59
|
### Authentication
|
|
61
60
|
|
|
61
|
+
Configure Huly access first, then choose one integration in the next section.
|
|
62
62
|
You can authenticate with either **email/password** or a **token**.
|
|
63
63
|
|
|
64
64
|
#### Email and Password
|
|
@@ -75,9 +75,15 @@ export HULY_WORKSPACE=your-workspace
|
|
|
75
75
|
Get a token from your Huly credentials — no env vars needed beforehand:
|
|
76
76
|
|
|
77
77
|
```bash
|
|
78
|
-
|
|
78
|
+
npx -y @bgx4k3p/huly-mcp-server --get-token \
|
|
79
|
+
-e your@email.com \
|
|
80
|
+
-p your-password \
|
|
81
|
+
-u https://your-huly-instance.com
|
|
79
82
|
```
|
|
80
83
|
|
|
84
|
+
From a source checkout, use `node src/index.mjs --get-token` with the same
|
|
85
|
+
flags.
|
|
86
|
+
|
|
81
87
|
Then use it:
|
|
82
88
|
|
|
83
89
|
```bash
|
|
@@ -89,19 +95,80 @@ export HULY_WORKSPACE=your-workspace
|
|
|
89
95
|
The token does not expire. You can store it in a secrets manager
|
|
90
96
|
and stop exposing your password in environment variables.
|
|
91
97
|
|
|
98
|
+
For local stdio clients, the project config examples below set
|
|
99
|
+
`HULY_WORKSPACE` per repo. Optionally set `HULY_PROJECT` when a repository maps
|
|
100
|
+
cleanly to one Huly project. After connecting a client, call
|
|
101
|
+
`get_huly_context` first to verify that the workspace, project, URL host, and
|
|
102
|
+
auth mode are what you expect.
|
|
103
|
+
|
|
92
104
|
---
|
|
93
105
|
|
|
94
106
|
## Integrations
|
|
95
107
|
|
|
96
|
-
|
|
108
|
+
Use stdio for local coding agents and Streamable HTTP for remote clients or
|
|
109
|
+
automation systems.
|
|
110
|
+
|
|
111
|
+
### Codex (project-scoped stdio)
|
|
112
|
+
|
|
113
|
+
Codex supports MCP servers from `config.toml`. For project-specific Huly
|
|
114
|
+
workspaces, generate a repo-local Codex config layer:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
npx -y @bgx4k3p/huly-mcp-server --init-codex --workspace my-workspace
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Optionally set a default project identifier for project-scoped tools:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
npx -y @bgx4k3p/huly-mcp-server --init-codex --workspace my-workspace --project PROJ
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
This creates `.codex/config.toml`:
|
|
127
|
+
|
|
128
|
+
```toml
|
|
129
|
+
[mcp_servers.huly]
|
|
130
|
+
command = "npx"
|
|
131
|
+
args = ["-y", "@bgx4k3p/huly-mcp-server"]
|
|
132
|
+
env_vars = ["HULY_URL", "HULY_TOKEN"]
|
|
133
|
+
startup_timeout_sec = 20
|
|
134
|
+
tool_timeout_sec = 120
|
|
135
|
+
|
|
136
|
+
[mcp_servers.huly.env]
|
|
137
|
+
HULY_WORKSPACE = "my-workspace"
|
|
138
|
+
HULY_PROJECT = "PROJ"
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Keep secrets like `HULY_URL` and `HULY_TOKEN` in your user environment.
|
|
142
|
+
Set `HULY_WORKSPACE` literally in each Codex or Claude project config so every
|
|
143
|
+
repo, workspace folder, or editor project points to the intended Huly
|
|
144
|
+
workspace. `HULY_PROJECT` is optional; when present, tools that naturally
|
|
145
|
+
operate inside one project can omit the `project` argument. Explicit tool
|
|
146
|
+
arguments still win.
|
|
97
147
|
|
|
98
|
-
After
|
|
148
|
+
After starting a fresh Codex session in the project, run `get_huly_context`.
|
|
149
|
+
It returns sanitized runtime context: default workspace, default project,
|
|
150
|
+
Huly URL host, auth mode, and package version.
|
|
151
|
+
|
|
152
|
+
Codex may show local stdio MCP servers as `unauthenticated` in `/mcp`.
|
|
153
|
+
That label refers to MCP-level authentication, not Huly authentication.
|
|
154
|
+
Use `get_huly_context` to confirm the downstream Huly auth mode is `token`
|
|
155
|
+
or `email_password`.
|
|
156
|
+
|
|
157
|
+
### Claude Code (project-scoped stdio)
|
|
158
|
+
|
|
159
|
+
Generate `.mcp.json` for Claude Code:
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
npx -y @bgx4k3p/huly-mcp-server --init-claude --workspace my-workspace
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Or add the server manually from a local source checkout:
|
|
99
166
|
|
|
100
167
|
```bash
|
|
101
168
|
claude mcp add huly \
|
|
102
169
|
-e HULY_URL=https://your-huly-instance.com \
|
|
103
170
|
-e HULY_TOKEN=your-token \
|
|
104
|
-
-e HULY_WORKSPACE=
|
|
171
|
+
-e HULY_WORKSPACE=my-workspace \
|
|
105
172
|
-- node /absolute/path/to/huly-mcp-server/src/index.mjs
|
|
106
173
|
```
|
|
107
174
|
|
|
@@ -114,15 +181,28 @@ Or add to your `.mcp.json` manually (token auth — recommended):
|
|
|
114
181
|
"command": "node",
|
|
115
182
|
"args": ["/path/to/huly-mcp-server/src/index.mjs"],
|
|
116
183
|
"env": {
|
|
117
|
-
"HULY_URL": "
|
|
184
|
+
"HULY_URL": "${HULY_URL}",
|
|
118
185
|
"HULY_TOKEN": "${HULY_TOKEN}",
|
|
119
|
-
"HULY_WORKSPACE": "
|
|
186
|
+
"HULY_WORKSPACE": "my-workspace"
|
|
120
187
|
}
|
|
121
188
|
}
|
|
122
189
|
}
|
|
123
190
|
}
|
|
124
191
|
```
|
|
125
192
|
|
|
193
|
+
For project-specific workspaces, keep secrets in environment variables and set
|
|
194
|
+
the workspace slug literally in each repo. `HULY_PROJECT` is optional; set it
|
|
195
|
+
only when the repo maps cleanly to one Huly project:
|
|
196
|
+
|
|
197
|
+
```json
|
|
198
|
+
"env": {
|
|
199
|
+
"HULY_URL": "${HULY_URL}",
|
|
200
|
+
"HULY_TOKEN": "${HULY_TOKEN}",
|
|
201
|
+
"HULY_WORKSPACE": "my-workspace",
|
|
202
|
+
"HULY_PROJECT": "PROJ"
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
126
206
|
Or with email/password:
|
|
127
207
|
|
|
128
208
|
```json
|
|
@@ -132,25 +212,32 @@ Or with email/password:
|
|
|
132
212
|
"command": "node",
|
|
133
213
|
"args": ["/path/to/huly-mcp-server/src/index.mjs"],
|
|
134
214
|
"env": {
|
|
135
|
-
"HULY_URL": "
|
|
215
|
+
"HULY_URL": "${HULY_URL}",
|
|
136
216
|
"HULY_EMAIL": "${HULY_EMAIL}",
|
|
137
217
|
"HULY_PASSWORD": "${HULY_PASSWORD}",
|
|
138
|
-
"HULY_WORKSPACE": "
|
|
218
|
+
"HULY_WORKSPACE": "my-workspace"
|
|
139
219
|
}
|
|
140
220
|
}
|
|
141
221
|
}
|
|
142
222
|
}
|
|
143
223
|
```
|
|
144
224
|
|
|
145
|
-
|
|
225
|
+
### Generate Both Project Configs
|
|
146
226
|
|
|
147
|
-
|
|
148
|
-
-
|
|
149
|
-
|
|
150
|
-
- "Break down this feature into subtasks using the feature template"
|
|
227
|
+
```bash
|
|
228
|
+
npx -y @bgx4k3p/huly-mcp-server --init-all --workspace my-workspace
|
|
229
|
+
```
|
|
151
230
|
|
|
152
|
-
|
|
153
|
-
|
|
231
|
+
With an optional default project:
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
npx -y @bgx4k3p/huly-mcp-server --init-all --workspace my-workspace --project PROJ
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
`--init-claude` creates or updates `.mcp.json` while preserving other MCP
|
|
238
|
+
servers. `--init-codex` creates `.codex/config.toml` for trusted Codex
|
|
239
|
+
projects while preserving unrelated Codex settings. Existing Huly entries are
|
|
240
|
+
not replaced unless `--force` is passed.
|
|
154
241
|
|
|
155
242
|
### Streamable HTTP (n8n, VS Code, remote clients)
|
|
156
243
|
|
|
@@ -195,9 +282,25 @@ docker run -i \
|
|
|
195
282
|
huly-mcp-server node src/mcp.mjs
|
|
196
283
|
```
|
|
197
284
|
|
|
285
|
+
### Verify the Connection
|
|
286
|
+
|
|
287
|
+
In any MCP client, call `get_huly_context` first. It confirms the active
|
|
288
|
+
workspace, optional project, Huly URL host, auth mode, and package version
|
|
289
|
+
without exposing secrets.
|
|
290
|
+
|
|
291
|
+
Then ask your MCP client things like:
|
|
292
|
+
|
|
293
|
+
- "List my issues in the PROJ project"
|
|
294
|
+
- "Create a bug report for the login page crash"
|
|
295
|
+
- "Summarize the PROJ project — what's overdue?"
|
|
296
|
+
- "Break down this feature into subtasks using the feature template"
|
|
297
|
+
|
|
298
|
+
All tools have detailed descriptions optimized for AI agents.
|
|
299
|
+
MCP Resources are also available at `huly://projects/{id}` and `huly://issues/{id}`.
|
|
300
|
+
|
|
198
301
|
---
|
|
199
302
|
|
|
200
|
-
##
|
|
303
|
+
## Configuration Reference
|
|
201
304
|
|
|
202
305
|
### Environment Variables
|
|
203
306
|
|
|
@@ -209,6 +312,7 @@ docker run -i \
|
|
|
209
312
|
| `HULY_EMAIL` | No | - | Huly login email (required if no token) |
|
|
210
313
|
| `HULY_PASSWORD` | No | - | Huly login password (required if no token) |
|
|
211
314
|
| `HULY_WORKSPACE` | Yes* | - | Default workspace slug |
|
|
315
|
+
| `HULY_PROJECT` | No | - | Optional default project identifier for project-scoped tools |
|
|
212
316
|
| `HULY_TRANSPORT` | No | `ws` | SDK transport: `ws` (WebSocket) or `rest` (REST API) |
|
|
213
317
|
| `HULY_POOL_TTL_MS` | No | `1800000` | Connection pool TTL in ms (30 min) |
|
|
214
318
|
| **HTTP Server** | | | |
|
|
@@ -235,7 +339,7 @@ MCP_AUTH_TOKEN=your-token-here npm run start:server
|
|
|
235
339
|
|
|
236
340
|
If `MCP_AUTH_TOKEN` is not set, auth is disabled (fine for local-only usage).
|
|
237
341
|
|
|
238
|
-
MCP stdio mode
|
|
342
|
+
MCP stdio mode does not use this token — stdio is inherently local.
|
|
239
343
|
|
|
240
344
|
### Multi-Workspace
|
|
241
345
|
|
|
@@ -250,10 +354,31 @@ If omitted, the `HULY_WORKSPACE` env var is used as the default.
|
|
|
250
354
|
|
|
251
355
|
---
|
|
252
356
|
|
|
357
|
+
## Network Configurations
|
|
358
|
+
|
|
359
|
+
- **Local:** `HULY_URL=http://localhost:8087`
|
|
360
|
+
- **Remote:** `HULY_URL=https://huly.example.com`
|
|
361
|
+
- **Behind nginx proxy:** Point to the proxy port
|
|
362
|
+
|
|
363
|
+
### Cloudflare Access / Tunnel
|
|
364
|
+
|
|
365
|
+
If Huly is behind Cloudflare Access with MFA, create a
|
|
366
|
+
bypass Application for `/_*` or these individual paths:
|
|
367
|
+
|
|
368
|
+
- `/_accounts`
|
|
369
|
+
- `/_transactor`
|
|
370
|
+
- `/_collaborator`
|
|
371
|
+
- `/_rekoni`
|
|
372
|
+
- `/config.json`
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
253
376
|
## Testing
|
|
254
377
|
|
|
255
378
|
Uses Node.js built-in `node:test` and `node:assert` — no test framework dependencies.
|
|
256
|
-
|
|
379
|
+
The live integration suite runs twice: once with WebSocket transport and once
|
|
380
|
+
with REST transport. Focused unit suites cover dispatch, MCP tool metadata, and
|
|
381
|
+
project config generation.
|
|
257
382
|
|
|
258
383
|
```bash
|
|
259
384
|
npm test # Both transports (ws + rest)
|
|
@@ -261,38 +386,41 @@ npm run test:ws # WebSocket only
|
|
|
261
386
|
npm run test:rest # REST only
|
|
262
387
|
```
|
|
263
388
|
|
|
264
|
-
|
|
389
|
+
Test coverage:
|
|
265
390
|
|
|
266
|
-
| Suite |
|
|
267
|
-
| --- | --- |
|
|
268
|
-
| **Unit** |
|
|
269
|
-
| **Integration** |
|
|
270
|
-
| **Dispatch** |
|
|
271
|
-
| **
|
|
272
|
-
| **
|
|
273
|
-
| **
|
|
391
|
+
| Suite | Description |
|
|
392
|
+
| --- | --- |
|
|
393
|
+
| **Unit** | Constants, ID parsing, rate limiting, auth logic |
|
|
394
|
+
| **Integration** | Full CRUD lifecycle against live Huly |
|
|
395
|
+
| **Dispatch** | Schema to dispatch to client param forwarding for all tools |
|
|
396
|
+
| **MCP metadata** | Tool registration, `get_huly_context`, default project schemas |
|
|
397
|
+
| **Project config** | `--init-claude`, `--init-codex`, `--init-all` helpers |
|
|
398
|
+
| **Account-level** | Workspaces, profile, social IDs |
|
|
399
|
+
| **Mock** | Destructive ops, token auth via mocks |
|
|
400
|
+
| **Streamable HTTP** | MCP protocol over HTTP: init, tools, resources, auth, rate limiting |
|
|
274
401
|
|
|
275
402
|
**100% dispatch coverage** — every tool's params are traced end-to-end
|
|
276
403
|
through the dispatch table to the client method.
|
|
277
404
|
|
|
278
405
|
---
|
|
279
406
|
|
|
280
|
-
##
|
|
407
|
+
## Development and Publishing
|
|
281
408
|
|
|
282
|
-
|
|
283
|
-
- **Remote:** `HULY_URL=https://huly.example.com`
|
|
284
|
-
- **Behind nginx proxy:** Point to the proxy port
|
|
409
|
+
For local development:
|
|
285
410
|
|
|
286
|
-
|
|
411
|
+
```bash
|
|
412
|
+
npm install
|
|
413
|
+
npm run lint
|
|
414
|
+
node --test test/initCodex.test.mjs test/mcpShared.test.mjs
|
|
415
|
+
```
|
|
287
416
|
|
|
288
|
-
|
|
289
|
-
|
|
417
|
+
The custom pack script bundles only the Huly SDK packages needed at runtime
|
|
418
|
+
and prunes UI/frontend bloat from the published tarball:
|
|
290
419
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
-
|
|
294
|
-
|
|
295
|
-
- `/config.json`
|
|
420
|
+
```bash
|
|
421
|
+
npm run pack
|
|
422
|
+
npm publish bgx4k3p-huly-mcp-server-<version>.tgz --access public
|
|
423
|
+
```
|
|
296
424
|
|
|
297
425
|
---
|
|
298
426
|
|
|
@@ -305,14 +433,15 @@ src/
|
|
|
305
433
|
dispatch.mjs # Tool-to-method dispatch table
|
|
306
434
|
pool.mjs # Connection pool — caches clients by workspace with TTL
|
|
307
435
|
mcpShared.mjs # Shared MCP server factory — tool definitions + resources
|
|
308
|
-
mcp.mjs # MCP stdio entry point (Claude Code)
|
|
436
|
+
mcp.mjs # MCP stdio entry point (Codex, Claude Code)
|
|
309
437
|
server.mjs # MCP Streamable HTTP entry point (n8n, VS Code, remote)
|
|
310
|
-
|
|
438
|
+
initCodex.mjs # Project config helpers for Codex and Claude Code
|
|
439
|
+
index.mjs # CLI entry point — --get-token, --init-* modes + MCP re-export
|
|
311
440
|
```
|
|
312
441
|
|
|
313
442
|
```text
|
|
314
|
-
Claude
|
|
315
|
-
n8n / remote
|
|
443
|
+
Claude / Codex -> stdio -> mcp.mjs -> mcpShared.mjs -> pool -> client -> Huly SDK
|
|
444
|
+
n8n / remote -> Streamable HTTP -> server.mjs -> mcpShared.mjs -> pool -> client -> Huly SDK
|
|
316
445
|
```
|
|
317
446
|
|
|
318
447
|
---
|
|
@@ -360,6 +489,7 @@ Full list of all MCP tools available through this server.
|
|
|
360
489
|
|
|
361
490
|
| Tool | Description |
|
|
362
491
|
| --- | --- |
|
|
492
|
+
| `get_huly_context` | Show sanitized runtime context: default workspace, default project, Huly URL host, auth mode, and package version |
|
|
363
493
|
| `list_workspaces` | List all accessible workspaces |
|
|
364
494
|
| `get_workspace_info` | Get workspace details by slug |
|
|
365
495
|
| `create_workspace` | Create a new workspace |
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var import_utils = require("../utils");
|
|
3
|
+
describe("isNetworkError", () => {
|
|
4
|
+
describe("Node.js-style connection errors", () => {
|
|
5
|
+
it("should return true for ECONNRESET error", () => {
|
|
6
|
+
const error = {
|
|
7
|
+
cause: {
|
|
8
|
+
code: "ECONNRESET"
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(true);
|
|
12
|
+
});
|
|
13
|
+
it("should return true for ECONNREFUSED error", () => {
|
|
14
|
+
const error = {
|
|
15
|
+
cause: {
|
|
16
|
+
code: "ECONNREFUSED"
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(true);
|
|
20
|
+
});
|
|
21
|
+
it("should return true for ENOTFOUND error", () => {
|
|
22
|
+
const error = {
|
|
23
|
+
cause: {
|
|
24
|
+
code: "ENOTFOUND"
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(true);
|
|
28
|
+
});
|
|
29
|
+
it("should return false for other error codes", () => {
|
|
30
|
+
const error = {
|
|
31
|
+
cause: {
|
|
32
|
+
code: "EACCES"
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(false);
|
|
36
|
+
});
|
|
37
|
+
it("should return false when cause.code is not a string", () => {
|
|
38
|
+
const error = {
|
|
39
|
+
cause: {
|
|
40
|
+
code: 123
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(false);
|
|
44
|
+
});
|
|
45
|
+
it("should return false when cause is not an object", () => {
|
|
46
|
+
const error = {
|
|
47
|
+
cause: "not an object"
|
|
48
|
+
};
|
|
49
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(false);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
describe('Browser "Failed to fetch" errors', () => {
|
|
53
|
+
it('should return true for TypeError with "Failed to fetch" message', () => {
|
|
54
|
+
const error = new TypeError("Failed to fetch");
|
|
55
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(true);
|
|
56
|
+
});
|
|
57
|
+
it('should return true for TypeError with "failed to fetch" (lowercase) message', () => {
|
|
58
|
+
const error = new TypeError("failed to fetch");
|
|
59
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(true);
|
|
60
|
+
});
|
|
61
|
+
it('should return true for TypeError with "NetworkError" message', () => {
|
|
62
|
+
const error = new TypeError("NetworkError");
|
|
63
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(true);
|
|
64
|
+
});
|
|
65
|
+
it('should return true for TypeError with "networkerror" (lowercase) message', () => {
|
|
66
|
+
const error = new TypeError("networkerror");
|
|
67
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(true);
|
|
68
|
+
});
|
|
69
|
+
it('should return true for TypeError with "Network request failed" message', () => {
|
|
70
|
+
const error = new TypeError("Network request failed");
|
|
71
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(true);
|
|
72
|
+
});
|
|
73
|
+
it("should return false for TypeError with non-network message", () => {
|
|
74
|
+
const error = new TypeError("Something went wrong");
|
|
75
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(false);
|
|
76
|
+
});
|
|
77
|
+
it("should return false for TypeError with empty message", () => {
|
|
78
|
+
const error = new TypeError("");
|
|
79
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(false);
|
|
80
|
+
});
|
|
81
|
+
it("should handle TypeError with undefined message", () => {
|
|
82
|
+
const error = new TypeError();
|
|
83
|
+
expect(typeof (0, import_utils.isNetworkError)(error)).toBe("boolean");
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
describe("Error name-based detection", () => {
|
|
87
|
+
it("should return true for NetworkError with network-related message", () => {
|
|
88
|
+
const error = {
|
|
89
|
+
name: "NetworkError",
|
|
90
|
+
message: "Network connection failed"
|
|
91
|
+
};
|
|
92
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(true);
|
|
93
|
+
});
|
|
94
|
+
it("should return true for TypeError (by name) with fetch-related message", () => {
|
|
95
|
+
const error = {
|
|
96
|
+
name: "TypeError",
|
|
97
|
+
message: "fetch error occurred"
|
|
98
|
+
};
|
|
99
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(true);
|
|
100
|
+
});
|
|
101
|
+
it("should return true for FetchError with connection-related message", () => {
|
|
102
|
+
const error = {
|
|
103
|
+
name: "FetchError",
|
|
104
|
+
message: "connection timeout"
|
|
105
|
+
};
|
|
106
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(true);
|
|
107
|
+
});
|
|
108
|
+
it("should return true for NetworkError with connection message", () => {
|
|
109
|
+
const error = {
|
|
110
|
+
name: "NetworkError",
|
|
111
|
+
message: "connection refused"
|
|
112
|
+
};
|
|
113
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(true);
|
|
114
|
+
});
|
|
115
|
+
it("should return false for NetworkError with non-network message", () => {
|
|
116
|
+
const error = {
|
|
117
|
+
name: "NetworkError",
|
|
118
|
+
message: "Invalid argument"
|
|
119
|
+
};
|
|
120
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(false);
|
|
121
|
+
});
|
|
122
|
+
it("should return false for TypeError (by name) with non-network message", () => {
|
|
123
|
+
const error = {
|
|
124
|
+
name: "TypeError",
|
|
125
|
+
message: "Cannot read property of undefined"
|
|
126
|
+
};
|
|
127
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(false);
|
|
128
|
+
});
|
|
129
|
+
it("should return false for other error names", () => {
|
|
130
|
+
const error = {
|
|
131
|
+
name: "ReferenceError",
|
|
132
|
+
message: "fetch is not defined"
|
|
133
|
+
};
|
|
134
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(false);
|
|
135
|
+
});
|
|
136
|
+
it("should handle case-insensitive message matching", () => {
|
|
137
|
+
const error = {
|
|
138
|
+
name: "NetworkError",
|
|
139
|
+
message: "FETCH ERROR"
|
|
140
|
+
};
|
|
141
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(true);
|
|
142
|
+
});
|
|
143
|
+
it("should return false when message is not a string", () => {
|
|
144
|
+
const error = {
|
|
145
|
+
name: "NetworkError",
|
|
146
|
+
message: 123
|
|
147
|
+
};
|
|
148
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(false);
|
|
149
|
+
});
|
|
150
|
+
it("should return false when name is not a string", () => {
|
|
151
|
+
const error = {
|
|
152
|
+
name: 123,
|
|
153
|
+
message: "fetch error"
|
|
154
|
+
};
|
|
155
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(false);
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
describe("Edge cases", () => {
|
|
159
|
+
it("should return false for null", () => {
|
|
160
|
+
expect((0, import_utils.isNetworkError)(null)).toBe(false);
|
|
161
|
+
});
|
|
162
|
+
it("should return false for undefined", () => {
|
|
163
|
+
expect((0, import_utils.isNetworkError)(void 0)).toBe(false);
|
|
164
|
+
});
|
|
165
|
+
it("should return false for primitive values", () => {
|
|
166
|
+
expect((0, import_utils.isNetworkError)(123)).toBe(false);
|
|
167
|
+
expect((0, import_utils.isNetworkError)("string")).toBe(false);
|
|
168
|
+
expect((0, import_utils.isNetworkError)(true)).toBe(false);
|
|
169
|
+
});
|
|
170
|
+
it("should return false for empty object", () => {
|
|
171
|
+
expect((0, import_utils.isNetworkError)({})).toBe(false);
|
|
172
|
+
});
|
|
173
|
+
it("should return false for object without name or message", () => {
|
|
174
|
+
const error = {
|
|
175
|
+
someProperty: "value"
|
|
176
|
+
};
|
|
177
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(false);
|
|
178
|
+
});
|
|
179
|
+
it("should return false for regular Error without network indicators", () => {
|
|
180
|
+
const error = new Error("Something went wrong");
|
|
181
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(false);
|
|
182
|
+
});
|
|
183
|
+
it("should return false for Error with cause but wrong code", () => {
|
|
184
|
+
const error = {
|
|
185
|
+
cause: {
|
|
186
|
+
code: "SOME_OTHER_CODE"
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(false);
|
|
190
|
+
});
|
|
191
|
+
it("should return false when cause exists but code is missing", () => {
|
|
192
|
+
const error = {
|
|
193
|
+
cause: {}
|
|
194
|
+
};
|
|
195
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(false);
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
describe("Real-world error scenarios", () => {
|
|
199
|
+
it("should handle fetch API network error", () => {
|
|
200
|
+
const error = new TypeError("Failed to fetch");
|
|
201
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(true);
|
|
202
|
+
});
|
|
203
|
+
it("should handle Node.js connection refused error", () => {
|
|
204
|
+
const error = {
|
|
205
|
+
cause: {
|
|
206
|
+
code: "ECONNREFUSED",
|
|
207
|
+
errno: -61,
|
|
208
|
+
syscall: "connect",
|
|
209
|
+
address: "127.0.0.1",
|
|
210
|
+
port: 3e3
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(true);
|
|
214
|
+
});
|
|
215
|
+
it("should handle DNS resolution failure", () => {
|
|
216
|
+
const error = {
|
|
217
|
+
cause: {
|
|
218
|
+
code: "ENOTFOUND",
|
|
219
|
+
errno: -3008,
|
|
220
|
+
syscall: "getaddrinfo",
|
|
221
|
+
hostname: "nonexistent.example.com"
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(true);
|
|
225
|
+
});
|
|
226
|
+
it("should handle connection reset error", () => {
|
|
227
|
+
const error = {
|
|
228
|
+
cause: {
|
|
229
|
+
code: "ECONNRESET",
|
|
230
|
+
errno: -54,
|
|
231
|
+
syscall: "read"
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(true);
|
|
235
|
+
});
|
|
236
|
+
it("should not treat application errors as network errors", () => {
|
|
237
|
+
const error = new Error("Invalid email format");
|
|
238
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(false);
|
|
239
|
+
});
|
|
240
|
+
it("should not treat authentication errors as network errors", () => {
|
|
241
|
+
const error = {
|
|
242
|
+
name: "AuthenticationError",
|
|
243
|
+
message: "Invalid credentials"
|
|
244
|
+
};
|
|
245
|
+
expect((0, import_utils.isNetworkError)(error)).toBe(false);
|
|
246
|
+
});
|
|
247
|
+
});
|
|
248
|
+
});
|
|
249
|
+
//# sourceMappingURL=utils.test.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/__tests__/utils.test.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright \u00A9 2026 Hardcore Engineering Inc.\n//\n// Licensed under the Eclipse Public License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License. You may\n// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n//\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//\n\nimport { isNetworkError } from '../utils'\n\ndescribe('isNetworkError', () => {\n describe('Node.js-style connection errors', () => {\n it('should return true for ECONNRESET error', () => {\n const error = {\n cause: {\n code: 'ECONNRESET'\n }\n }\n expect(isNetworkError(error)).toBe(true)\n })\n\n it('should return true for ECONNREFUSED error', () => {\n const error = {\n cause: {\n code: 'ECONNREFUSED'\n }\n }\n expect(isNetworkError(error)).toBe(true)\n })\n\n it('should return true for ENOTFOUND error', () => {\n const error = {\n cause: {\n code: 'ENOTFOUND'\n }\n }\n expect(isNetworkError(error)).toBe(true)\n })\n\n it('should return false for other error codes', () => {\n const error = {\n cause: {\n code: 'EACCES'\n }\n }\n expect(isNetworkError(error)).toBe(false)\n })\n\n it('should return false when cause.code is not a string', () => {\n const error = {\n cause: {\n code: 123\n }\n }\n expect(isNetworkError(error)).toBe(false)\n })\n\n it('should return false when cause is not an object', () => {\n const error = {\n cause: 'not an object'\n }\n expect(isNetworkError(error)).toBe(false)\n })\n })\n\n describe('Browser \"Failed to fetch\" errors', () => {\n it('should return true for TypeError with \"Failed to fetch\" message', () => {\n const error = new TypeError('Failed to fetch')\n expect(isNetworkError(error)).toBe(true)\n })\n\n it('should return true for TypeError with \"failed to fetch\" (lowercase) message', () => {\n const error = new TypeError('failed to fetch')\n expect(isNetworkError(error)).toBe(true)\n })\n\n it('should return true for TypeError with \"NetworkError\" message', () => {\n const error = new TypeError('NetworkError')\n expect(isNetworkError(error)).toBe(true)\n })\n\n it('should return true for TypeError with \"networkerror\" (lowercase) message', () => {\n const error = new TypeError('networkerror')\n expect(isNetworkError(error)).toBe(true)\n })\n\n it('should return true for TypeError with \"Network request failed\" message', () => {\n const error = new TypeError('Network request failed')\n expect(isNetworkError(error)).toBe(true)\n })\n\n it('should return false for TypeError with non-network message', () => {\n const error = new TypeError('Something went wrong')\n expect(isNetworkError(error)).toBe(false)\n })\n\n it('should return false for TypeError with empty message', () => {\n const error = new TypeError('')\n expect(isNetworkError(error)).toBe(false)\n })\n\n it('should handle TypeError with undefined message', () => {\n const error = new TypeError()\n // TypeError constructor may set message to empty string or undefined\n // The function should handle this gracefully\n expect(typeof isNetworkError(error)).toBe('boolean')\n })\n })\n\n describe('Error name-based detection', () => {\n it('should return true for NetworkError with network-related message', () => {\n const error = {\n name: 'NetworkError',\n message: 'Network connection failed'\n }\n expect(isNetworkError(error)).toBe(true)\n })\n\n it('should return true for TypeError (by name) with fetch-related message', () => {\n const error = {\n name: 'TypeError',\n message: 'fetch error occurred'\n }\n expect(isNetworkError(error)).toBe(true)\n })\n\n it('should return true for FetchError with connection-related message', () => {\n const error = {\n name: 'FetchError',\n message: 'connection timeout'\n }\n expect(isNetworkError(error)).toBe(true)\n })\n\n it('should return true for NetworkError with connection message', () => {\n const error = {\n name: 'NetworkError',\n message: 'connection refused'\n }\n expect(isNetworkError(error)).toBe(true)\n })\n\n it('should return false for NetworkError with non-network message', () => {\n const error = {\n name: 'NetworkError',\n message: 'Invalid argument'\n }\n expect(isNetworkError(error)).toBe(false)\n })\n\n it('should return false for TypeError (by name) with non-network message', () => {\n const error = {\n name: 'TypeError',\n message: 'Cannot read property of undefined'\n }\n expect(isNetworkError(error)).toBe(false)\n })\n\n it('should return false for other error names', () => {\n const error = {\n name: 'ReferenceError',\n message: 'fetch is not defined'\n }\n expect(isNetworkError(error)).toBe(false)\n })\n\n it('should handle case-insensitive message matching', () => {\n const error = {\n name: 'NetworkError',\n message: 'FETCH ERROR'\n }\n expect(isNetworkError(error)).toBe(true)\n })\n\n it('should return false when message is not a string', () => {\n const error = {\n name: 'NetworkError',\n message: 123\n }\n expect(isNetworkError(error)).toBe(false)\n })\n\n it('should return false when name is not a string', () => {\n const error = {\n name: 123,\n message: 'fetch error'\n }\n expect(isNetworkError(error)).toBe(false)\n })\n })\n\n describe('Edge cases', () => {\n it('should return false for null', () => {\n expect(isNetworkError(null)).toBe(false)\n })\n\n it('should return false for undefined', () => {\n expect(isNetworkError(undefined)).toBe(false)\n })\n\n it('should return false for primitive values', () => {\n expect(isNetworkError(123)).toBe(false)\n expect(isNetworkError('string')).toBe(false)\n expect(isNetworkError(true)).toBe(false)\n })\n\n it('should return false for empty object', () => {\n expect(isNetworkError({})).toBe(false)\n })\n\n it('should return false for object without name or message', () => {\n const error = {\n someProperty: 'value'\n }\n expect(isNetworkError(error)).toBe(false)\n })\n\n it('should return false for regular Error without network indicators', () => {\n const error = new Error('Something went wrong')\n expect(isNetworkError(error)).toBe(false)\n })\n\n it('should return false for Error with cause but wrong code', () => {\n const error = {\n cause: {\n code: 'SOME_OTHER_CODE'\n }\n }\n expect(isNetworkError(error)).toBe(false)\n })\n\n it('should return false when cause exists but code is missing', () => {\n const error = {\n cause: {}\n }\n expect(isNetworkError(error)).toBe(false)\n })\n })\n\n describe('Real-world error scenarios', () => {\n it('should handle fetch API network error', () => {\n // Simulating a real browser fetch error\n const error = new TypeError('Failed to fetch')\n expect(isNetworkError(error)).toBe(true)\n })\n\n it('should handle Node.js connection refused error', () => {\n // Simulating a real Node.js connection error\n const error = {\n cause: {\n code: 'ECONNREFUSED',\n errno: -61,\n syscall: 'connect',\n address: '127.0.0.1',\n port: 3000\n }\n }\n expect(isNetworkError(error)).toBe(true)\n })\n\n it('should handle DNS resolution failure', () => {\n const error = {\n cause: {\n code: 'ENOTFOUND',\n errno: -3008,\n syscall: 'getaddrinfo',\n hostname: 'nonexistent.example.com'\n }\n }\n expect(isNetworkError(error)).toBe(true)\n })\n\n it('should handle connection reset error', () => {\n const error = {\n cause: {\n code: 'ECONNRESET',\n errno: -54,\n syscall: 'read'\n }\n }\n expect(isNetworkError(error)).toBe(true)\n })\n\n it('should not treat application errors as network errors', () => {\n const error = new Error('Invalid email format')\n expect(isNetworkError(error)).toBe(false)\n })\n\n it('should not treat authentication errors as network errors', () => {\n const error = {\n name: 'AuthenticationError',\n message: 'Invalid credentials'\n }\n expect(isNetworkError(error)).toBe(false)\n })\n })\n})\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|