@nextop-os/workspace-issue-manager 0.0.27 → 0.0.29
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/dist/assets/workspace-dock-task.png +0 -0
- package/dist/{chunk-LJQG24Y2.js → chunk-DRWYHOZ2.js} +159 -25
- package/dist/chunk-DRWYHOZ2.js.map +1 -0
- package/dist/chunk-N6NGQ7DZ.js +14 -0
- package/dist/chunk-N6NGQ7DZ.js.map +1 -0
- package/dist/{chunk-JGIOWEUE.js → chunk-WT6PIL4Q.js} +108 -48
- package/dist/chunk-WT6PIL4Q.js.map +1 -0
- package/dist/{chunk-MCVRP7RR.js → chunk-YN5NYKAA.js} +67 -20
- package/dist/chunk-YN5NYKAA.js.map +1 -0
- package/dist/{chunk-5V4DIEWZ.js → chunk-YTOMO5IO.js} +1932 -1947
- package/dist/chunk-YTOMO5IO.js.map +1 -0
- package/dist/contracts/index.d.ts +111 -67
- package/dist/core/index.d.ts +14 -6
- package/dist/core/index.js +4 -2
- package/dist/{feature-2zhsUF_g.d.ts → feature-RwN37-fu.d.ts} +9 -1
- package/dist/i18n/index.js +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.js +5 -3
- package/dist/{issueManagerControllerService.interface-BtvnnFla.d.ts → issueManagerControllerService.interface-BuGBkqN3.d.ts} +3 -2
- package/dist/services/index.d.ts +4 -3
- package/dist/services/index.js +3 -3
- package/dist/ui/index.d.ts +6 -3
- package/dist/ui/index.js +4 -4
- package/dist/workbench/constants.d.ts +6 -0
- package/dist/workbench/constants.js +9 -0
- package/dist/workbench/constants.js.map +1 -0
- package/dist/workbench/index.d.ts +5 -4
- package/dist/workbench/index.js +16 -12
- package/dist/workbench/index.js.map +1 -1
- package/openapi/issue-manager.v1.yaml +366 -2
- package/package.json +11 -6
- package/dist/chunk-5V4DIEWZ.js.map +0 -1
- package/dist/chunk-JGIOWEUE.js.map +0 -1
- package/dist/chunk-LJQG24Y2.js.map +0 -1
- package/dist/chunk-MCVRP7RR.js.map +0 -1
package/dist/workbench/index.js
CHANGED
|
@@ -2,24 +2,21 @@ import {
|
|
|
2
2
|
IssueManagerNode,
|
|
3
3
|
IssueManagerNodeHeader,
|
|
4
4
|
dispatchIssueManagerTaskListCollapsed
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-
|
|
5
|
+
} from "../chunk-YTOMO5IO.js";
|
|
6
|
+
import "../chunk-DRWYHOZ2.js";
|
|
7
7
|
import {
|
|
8
8
|
normalizeIssueManagerNodeState,
|
|
9
9
|
resolveIssueManagerExpandedFrame,
|
|
10
10
|
shouldAutoCollapseIssueManagerSidebar
|
|
11
|
-
} from "../chunk-
|
|
12
|
-
import "../chunk-
|
|
11
|
+
} from "../chunk-YN5NYKAA.js";
|
|
12
|
+
import "../chunk-WT6PIL4Q.js";
|
|
13
|
+
import {
|
|
14
|
+
defaultIssueManagerNodeFrame,
|
|
15
|
+
defaultIssueManagerWorkbenchTypeId
|
|
16
|
+
} from "../chunk-N6NGQ7DZ.js";
|
|
13
17
|
|
|
14
18
|
// src/workbench/index.ts
|
|
15
19
|
import { createElement } from "react";
|
|
16
|
-
var defaultIssueManagerWorkbenchTypeId = "issue-manager";
|
|
17
|
-
var defaultIssueManagerNodeFrame = {
|
|
18
|
-
height: 620,
|
|
19
|
-
width: 960,
|
|
20
|
-
x: 220,
|
|
21
|
-
y: 120
|
|
22
|
-
};
|
|
23
20
|
function createIssueManagerWorkbenchNodeDefinition({
|
|
24
21
|
emptyIllustration,
|
|
25
22
|
feature,
|
|
@@ -83,17 +80,20 @@ function createIssueManagerWorkbenchNodeDefinition({
|
|
|
83
80
|
const applyTaskListCollapsed = (collapsed) => {
|
|
84
81
|
dispatchIssueManagerTaskListCollapsed({
|
|
85
82
|
collapsed,
|
|
86
|
-
nodeId: node.id
|
|
83
|
+
nodeId: node.id,
|
|
84
|
+
workspaceId: externalWorkspaceState.workspaceId ?? ""
|
|
87
85
|
});
|
|
88
86
|
persistTaskListCollapsed(collapsed);
|
|
89
87
|
};
|
|
90
88
|
return createElement(IssueManagerNodeHeader, {
|
|
89
|
+
activeTopicId: nodeState.activeTopicId ?? null,
|
|
91
90
|
copy: feature.i18n,
|
|
92
91
|
defaultActions,
|
|
93
92
|
isSidebarAutoCollapsed,
|
|
94
93
|
isSidebarCollapsed,
|
|
95
94
|
nodeId: node.id,
|
|
96
95
|
title: node.title,
|
|
96
|
+
workspaceId: externalWorkspaceState.workspaceId ?? "",
|
|
97
97
|
...dragHandleProps,
|
|
98
98
|
onPointerDown: (event) => {
|
|
99
99
|
dragHandleProps.onPointerDown?.(event);
|
|
@@ -118,6 +118,9 @@ function createIssueManagerWorkbenchNodeDefinition({
|
|
|
118
118
|
window: {
|
|
119
119
|
closable: true,
|
|
120
120
|
defaultOpen: false,
|
|
121
|
+
minimizedDock: {
|
|
122
|
+
kind: "snapshot"
|
|
123
|
+
},
|
|
121
124
|
minimizable: true,
|
|
122
125
|
restoreOnLoad: true
|
|
123
126
|
}
|
|
@@ -214,6 +217,7 @@ export {
|
|
|
214
217
|
createIssueManagerWorkbenchContribution,
|
|
215
218
|
createIssueManagerWorkbenchLaunchHandler,
|
|
216
219
|
createIssueManagerWorkbenchNodeDefinition,
|
|
220
|
+
defaultIssueManagerNodeFrame,
|
|
217
221
|
defaultIssueManagerWorkbenchTypeId
|
|
218
222
|
};
|
|
219
223
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/workbench/index.ts"],"sourcesContent":["import { createElement, type ReactNode } from \"react\";\nimport type { RichTextAtProvider } from \"@nextop-os/ui-rich-text/types\";\nimport type {\n WorkbenchContribution,\n WorkbenchFrame,\n WorkbenchHostDockEntry,\n WorkbenchHostExternalStateSource,\n WorkbenchHostLaunchRequest,\n WorkbenchHostLaunchResult,\n WorkbenchHostNodeDefinition\n} from \"@nextop-os/workbench-surface\";\nimport type { IssueManagerNodeState } from \"../contracts/index.ts\";\nimport {\n normalizeIssueManagerNodeState,\n resolveIssueManagerExpandedFrame,\n shouldAutoCollapseIssueManagerSidebar,\n type IssueManagerFeature\n} from \"../core/index.ts\";\nimport type { IssueManagerControllerService } from \"../services/issueManagerControllerService.interface.ts\";\nimport {\n dispatchIssueManagerTaskListCollapsed,\n IssueManagerNode,\n IssueManagerNodeHeader\n} from \"../ui/IssueManagerNode.tsx\";\n\nexport interface IssueManagerExternalWorkspaceState {\n workspaceId?: string | null;\n}\n\nexport interface CreateIssueManagerWorkbenchNodeDefinitionInput {\n emptyIllustration?: ReactNode;\n feature: IssueManagerFeature;\n frame?: WorkbenchFrame;\n onStateChange?: (input: {\n instanceId: string;\n instanceKey?: string | null;\n nodeId: string;\n state: IssueManagerNodeState;\n workspaceState: IssueManagerExternalWorkspaceState;\n }) => void;\n resolveRichTextAtProviders?: (input: {\n surface: \"issue\" | \"task\";\n workspaceId: string;\n }) => readonly RichTextAtProvider[];\n service?: IssueManagerControllerService;\n title?: string;\n typeId?: string;\n}\n\nexport interface CreateIssueManagerWorkbenchLaunchHandlerInput {\n frame?: WorkbenchFrame;\n title?: string;\n typeId?: string;\n}\n\nexport interface CreateIssueManagerDockEntryInput {\n dockIcon?: ReactNode;\n feature: IssueManagerFeature;\n id?: string;\n order?: number;\n separatorAfter?: boolean;\n sectionId?: string;\n typeId?: string;\n}\n\nexport interface CreateIssueManagerWorkbenchContributionInput {\n contributionId?: string;\n dockEntry?: Omit<CreateIssueManagerDockEntryInput, \"feature\">;\n externalStateSource?: WorkbenchHostExternalStateSource<\n Partial<IssueManagerNodeState> | null,\n IssueManagerExternalWorkspaceState\n >;\n feature: IssueManagerFeature;\n node?: Omit<CreateIssueManagerWorkbenchNodeDefinitionInput, \"feature\">;\n typeId?: string;\n}\n\nexport const defaultIssueManagerWorkbenchTypeId = \"issue-manager\";\n\nconst defaultIssueManagerNodeFrame: WorkbenchFrame = {\n height: 620,\n width: 960,\n x: 220,\n y: 120\n};\n\nexport function createIssueManagerWorkbenchNodeDefinition<\n TExternalWorkspaceState extends IssueManagerExternalWorkspaceState =\n IssueManagerExternalWorkspaceState\n>({\n emptyIllustration,\n feature,\n frame = defaultIssueManagerNodeFrame,\n onStateChange,\n resolveRichTextAtProviders,\n service,\n title,\n typeId = defaultIssueManagerWorkbenchTypeId\n}: CreateIssueManagerWorkbenchNodeDefinitionInput): WorkbenchHostNodeDefinition<\n Partial<IssueManagerNodeState> | null,\n TExternalWorkspaceState\n> {\n return {\n frame,\n instance: {\n mode: \"single\"\n },\n renderBody: (context) =>\n createElement(IssueManagerNode, {\n emptyIllustration,\n feature,\n nodeId: context.node.id,\n onStateChange: onStateChange\n ? (state) =>\n onStateChange({\n instanceId: context.instanceId,\n instanceKey: context.instanceKey ?? null,\n nodeId: context.node.id,\n state,\n workspaceState: context.externalWorkspaceState\n })\n : undefined,\n resolveRichTextAtProviders,\n service,\n state: context.externalNodeState,\n workspaceId: context.externalWorkspaceState.workspaceId ?? \"\"\n }),\n renderHeader: ({\n defaultActions,\n dragHandleProps,\n externalNodeState,\n externalWorkspaceState,\n instanceId,\n instanceKey,\n isFocused,\n node,\n surfaceSize,\n windowActions\n }) => {\n const nodeState = normalizeIssueManagerNodeState(externalNodeState);\n const isSidebarAutoCollapsed = shouldAutoCollapseIssueManagerSidebar(\n node.frame.width\n );\n const isSidebarCollapsed =\n nodeState.taskListCollapsed === true || isSidebarAutoCollapsed;\n const persistTaskListCollapsed = (collapsed: boolean) => {\n onStateChange?.({\n instanceId,\n instanceKey: instanceKey ?? null,\n nodeId: node.id,\n state: {\n ...nodeState,\n taskListCollapsed: collapsed\n },\n workspaceState: externalWorkspaceState\n });\n };\n const applyTaskListCollapsed = (collapsed: boolean) => {\n dispatchIssueManagerTaskListCollapsed({\n collapsed,\n nodeId: node.id\n });\n persistTaskListCollapsed(collapsed);\n };\n\n return createElement(IssueManagerNodeHeader, {\n copy: feature.i18n,\n defaultActions,\n isSidebarAutoCollapsed,\n isSidebarCollapsed,\n nodeId: node.id,\n title: node.title,\n ...dragHandleProps,\n onPointerDown: (event) => {\n dragHandleProps.onPointerDown?.(event);\n if (!isFocused) {\n windowActions.focus();\n }\n },\n onToggleSidebar: (nextCollapsed) => {\n if (\n isSidebarCollapsed &&\n nextCollapsed === false &&\n node.displayMode !== \"fullscreen\"\n ) {\n windowActions.resize(\n resolveIssueManagerExpandedFrame(node.frame, surfaceSize.width)\n );\n applyTaskListCollapsed(false);\n return;\n }\n\n applyTaskListCollapsed(nextCollapsed);\n }\n });\n },\n title: title ?? feature.i18n.t(\"title\"),\n typeId,\n window: {\n closable: true,\n defaultOpen: false,\n minimizable: true,\n restoreOnLoad: true\n }\n };\n}\n\nexport function createIssueManagerDockEntry({\n dockIcon,\n feature,\n id,\n order,\n separatorAfter,\n sectionId,\n typeId = defaultIssueManagerWorkbenchTypeId\n}: CreateIssueManagerDockEntryInput): WorkbenchHostDockEntry {\n return {\n icon: dockIcon ?? null,\n id: id ?? typeId,\n label: feature.i18n.t(\"dockLabel\"),\n launchBehavior: \"enabled\",\n matchNode: (node) => node.data.typeId === typeId,\n order,\n resolvePopupItem: ({ node }) => ({\n title: node.title\n }),\n separatorAfter,\n sectionId,\n typeId,\n visibility: \"always\"\n };\n}\n\nexport function createIssueManagerDockIconImage(src: string): ReactNode {\n return createElement(\"img\", {\n alt: \"\",\n \"aria-hidden\": \"true\",\n \"data-issue-manager-dock-icon\": \"true\",\n draggable: false,\n src\n });\n}\n\nexport function createIssueManagerWorkbenchLaunchHandler({\n frame = defaultIssueManagerNodeFrame,\n title,\n typeId = defaultIssueManagerWorkbenchTypeId\n}: CreateIssueManagerWorkbenchLaunchHandlerInput = {}): (\n request: WorkbenchHostLaunchRequest\n) => Promise<WorkbenchHostLaunchResult | null> {\n return (request) => {\n if (request.typeId !== typeId) {\n return Promise.resolve(null);\n }\n\n return Promise.resolve({\n defaultFrame: frame,\n dockEntryId: request.dockEntryId ?? typeId,\n framePolicy: \"cascade\",\n instanceId: typeId,\n title,\n typeId\n });\n };\n}\n\nexport function createIssueManagerWorkbenchContribution({\n contributionId,\n dockEntry,\n externalStateSource,\n feature,\n node,\n typeId = defaultIssueManagerWorkbenchTypeId\n}: CreateIssueManagerWorkbenchContributionInput): WorkbenchContribution {\n return {\n dockEntries: [\n createIssueManagerDockEntry({\n ...dockEntry,\n feature,\n typeId\n })\n ],\n externalStateSource,\n id: contributionId ?? typeId,\n nodes: [\n createIssueManagerWorkbenchNodeDefinition({\n ...node,\n feature,\n typeId\n })\n ],\n onLaunchRequest: createIssueManagerWorkbenchLaunchHandler({\n frame: node?.frame,\n title: node?.title,\n typeId\n })\n };\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/workbench/index.ts"],"sourcesContent":["import { createElement, type ReactNode } from \"react\";\nimport type { RichTextAtProvider } from \"@nextop-os/ui-rich-text/types\";\nimport type {\n WorkbenchContribution,\n WorkbenchFrame,\n WorkbenchHostDockEntry,\n WorkbenchHostExternalStateSource,\n WorkbenchHostLaunchRequest,\n WorkbenchHostLaunchResult,\n WorkbenchHostNodeDefinition\n} from \"@nextop-os/workbench-surface\";\nimport type { IssueManagerNodeState } from \"../contracts/index.ts\";\nimport {\n normalizeIssueManagerNodeState,\n resolveIssueManagerExpandedFrame,\n shouldAutoCollapseIssueManagerSidebar,\n type IssueManagerFeature\n} from \"../core/index.ts\";\nimport type { IssueManagerControllerService } from \"../services/issueManagerControllerService.interface.ts\";\nimport {\n dispatchIssueManagerTaskListCollapsed,\n IssueManagerNode,\n IssueManagerNodeHeader\n} from \"../ui/IssueManagerNode.tsx\";\nexport {\n defaultIssueManagerNodeFrame,\n defaultIssueManagerWorkbenchTypeId\n} from \"./constants.ts\";\nimport {\n defaultIssueManagerNodeFrame,\n defaultIssueManagerWorkbenchTypeId\n} from \"./constants.ts\";\n\nexport interface IssueManagerExternalWorkspaceState {\n workspaceId?: string | null;\n}\n\nexport interface CreateIssueManagerWorkbenchNodeDefinitionInput {\n emptyIllustration?: ReactNode;\n feature: IssueManagerFeature;\n frame?: WorkbenchFrame;\n onStateChange?: (input: {\n instanceId: string;\n instanceKey?: string | null;\n nodeId: string;\n state: IssueManagerNodeState;\n workspaceState: IssueManagerExternalWorkspaceState;\n }) => void;\n resolveRichTextAtProviders?: (input: {\n surface: \"issue\" | \"task\";\n workspaceId: string;\n }) => readonly RichTextAtProvider[];\n service?: IssueManagerControllerService;\n title?: string;\n typeId?: string;\n}\n\nexport interface CreateIssueManagerWorkbenchLaunchHandlerInput {\n frame?: WorkbenchFrame;\n title?: string;\n typeId?: string;\n}\n\nexport interface CreateIssueManagerDockEntryInput {\n dockIcon?: ReactNode;\n feature: IssueManagerFeature;\n id?: string;\n order?: number;\n separatorAfter?: boolean;\n sectionId?: string;\n typeId?: string;\n}\n\nexport interface CreateIssueManagerWorkbenchContributionInput {\n contributionId?: string;\n dockEntry?: Omit<CreateIssueManagerDockEntryInput, \"feature\">;\n externalStateSource?: WorkbenchHostExternalStateSource<\n Partial<IssueManagerNodeState> | null,\n IssueManagerExternalWorkspaceState\n >;\n feature: IssueManagerFeature;\n node?: Omit<CreateIssueManagerWorkbenchNodeDefinitionInput, \"feature\">;\n typeId?: string;\n}\n\nexport function createIssueManagerWorkbenchNodeDefinition<\n TExternalWorkspaceState extends IssueManagerExternalWorkspaceState =\n IssueManagerExternalWorkspaceState\n>({\n emptyIllustration,\n feature,\n frame = defaultIssueManagerNodeFrame,\n onStateChange,\n resolveRichTextAtProviders,\n service,\n title,\n typeId = defaultIssueManagerWorkbenchTypeId\n}: CreateIssueManagerWorkbenchNodeDefinitionInput): WorkbenchHostNodeDefinition<\n Partial<IssueManagerNodeState> | null,\n TExternalWorkspaceState\n> {\n return {\n frame,\n instance: {\n mode: \"single\"\n },\n renderBody: (context) =>\n createElement(IssueManagerNode, {\n emptyIllustration,\n feature,\n nodeId: context.node.id,\n onStateChange: onStateChange\n ? (state) =>\n onStateChange({\n instanceId: context.instanceId,\n instanceKey: context.instanceKey ?? null,\n nodeId: context.node.id,\n state,\n workspaceState: context.externalWorkspaceState\n })\n : undefined,\n resolveRichTextAtProviders,\n service,\n state: context.externalNodeState,\n workspaceId: context.externalWorkspaceState.workspaceId ?? \"\"\n }),\n renderHeader: ({\n defaultActions,\n dragHandleProps,\n externalNodeState,\n externalWorkspaceState,\n instanceId,\n instanceKey,\n isFocused,\n node,\n surfaceSize,\n windowActions\n }) => {\n const nodeState = normalizeIssueManagerNodeState(externalNodeState);\n const isSidebarAutoCollapsed = shouldAutoCollapseIssueManagerSidebar(\n node.frame.width\n );\n const isSidebarCollapsed =\n nodeState.taskListCollapsed === true || isSidebarAutoCollapsed;\n const persistTaskListCollapsed = (collapsed: boolean) => {\n onStateChange?.({\n instanceId,\n instanceKey: instanceKey ?? null,\n nodeId: node.id,\n state: {\n ...nodeState,\n taskListCollapsed: collapsed\n },\n workspaceState: externalWorkspaceState\n });\n };\n const applyTaskListCollapsed = (collapsed: boolean) => {\n dispatchIssueManagerTaskListCollapsed({\n collapsed,\n nodeId: node.id,\n workspaceId: externalWorkspaceState.workspaceId ?? \"\"\n });\n persistTaskListCollapsed(collapsed);\n };\n\n return createElement(IssueManagerNodeHeader, {\n activeTopicId: nodeState.activeTopicId ?? null,\n copy: feature.i18n,\n defaultActions,\n isSidebarAutoCollapsed,\n isSidebarCollapsed,\n nodeId: node.id,\n title: node.title,\n workspaceId: externalWorkspaceState.workspaceId ?? \"\",\n ...dragHandleProps,\n onPointerDown: (event) => {\n dragHandleProps.onPointerDown?.(event);\n if (!isFocused) {\n windowActions.focus();\n }\n },\n onToggleSidebar: (nextCollapsed) => {\n if (\n isSidebarCollapsed &&\n nextCollapsed === false &&\n node.displayMode !== \"fullscreen\"\n ) {\n windowActions.resize(\n resolveIssueManagerExpandedFrame(node.frame, surfaceSize.width)\n );\n applyTaskListCollapsed(false);\n return;\n }\n\n applyTaskListCollapsed(nextCollapsed);\n }\n });\n },\n title: title ?? feature.i18n.t(\"title\"),\n typeId,\n window: {\n closable: true,\n defaultOpen: false,\n minimizedDock: {\n kind: \"snapshot\"\n },\n minimizable: true,\n restoreOnLoad: true\n }\n };\n}\n\nexport function createIssueManagerDockEntry({\n dockIcon,\n feature,\n id,\n order,\n separatorAfter,\n sectionId,\n typeId = defaultIssueManagerWorkbenchTypeId\n}: CreateIssueManagerDockEntryInput): WorkbenchHostDockEntry {\n return {\n icon: dockIcon ?? null,\n id: id ?? typeId,\n label: feature.i18n.t(\"dockLabel\"),\n launchBehavior: \"enabled\",\n matchNode: (node) => node.data.typeId === typeId,\n order,\n resolvePopupItem: ({ node }) => ({\n title: node.title\n }),\n separatorAfter,\n sectionId,\n typeId,\n visibility: \"always\"\n };\n}\n\nexport function createIssueManagerDockIconImage(src: string): ReactNode {\n return createElement(\"img\", {\n alt: \"\",\n \"aria-hidden\": \"true\",\n \"data-issue-manager-dock-icon\": \"true\",\n draggable: false,\n src\n });\n}\n\nexport function createIssueManagerWorkbenchLaunchHandler({\n frame = defaultIssueManagerNodeFrame,\n title,\n typeId = defaultIssueManagerWorkbenchTypeId\n}: CreateIssueManagerWorkbenchLaunchHandlerInput = {}): (\n request: WorkbenchHostLaunchRequest\n) => Promise<WorkbenchHostLaunchResult | null> {\n return (request) => {\n if (request.typeId !== typeId) {\n return Promise.resolve(null);\n }\n\n return Promise.resolve({\n defaultFrame: frame,\n dockEntryId: request.dockEntryId ?? typeId,\n framePolicy: \"cascade\",\n instanceId: typeId,\n title,\n typeId\n });\n };\n}\n\nexport function createIssueManagerWorkbenchContribution({\n contributionId,\n dockEntry,\n externalStateSource,\n feature,\n node,\n typeId = defaultIssueManagerWorkbenchTypeId\n}: CreateIssueManagerWorkbenchContributionInput): WorkbenchContribution {\n return {\n dockEntries: [\n createIssueManagerDockEntry({\n ...dockEntry,\n feature,\n typeId\n })\n ],\n externalStateSource,\n id: contributionId ?? typeId,\n nodes: [\n createIssueManagerWorkbenchNodeDefinition({\n ...node,\n feature,\n typeId\n })\n ],\n onLaunchRequest: createIssueManagerWorkbenchLaunchHandler({\n frame: node?.frame,\n title: node?.title,\n typeId\n })\n };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -5,6 +5,125 @@ info:
|
|
|
5
5
|
tags:
|
|
6
6
|
- name: issue
|
|
7
7
|
paths:
|
|
8
|
+
/v1/workspaces/{workspaceID}/issue-topics:
|
|
9
|
+
parameters:
|
|
10
|
+
- $ref: "#/components/parameters/WorkspaceID"
|
|
11
|
+
get:
|
|
12
|
+
operationId: listWorkspaceIssueTopics
|
|
13
|
+
tags:
|
|
14
|
+
- issue
|
|
15
|
+
summary: List issue-manager topics for one workspace
|
|
16
|
+
responses:
|
|
17
|
+
"200":
|
|
18
|
+
description: Workspace issue topics
|
|
19
|
+
content:
|
|
20
|
+
application/json:
|
|
21
|
+
schema:
|
|
22
|
+
$ref: "#/components/schemas/IssueManagerTopicListResponse"
|
|
23
|
+
"400":
|
|
24
|
+
$ref: "#/components/responses/InvalidRequestError"
|
|
25
|
+
"401":
|
|
26
|
+
$ref: "#/components/responses/UnauthorizedError"
|
|
27
|
+
"404":
|
|
28
|
+
$ref: "#/components/responses/WorkspaceNotFoundError"
|
|
29
|
+
"405":
|
|
30
|
+
$ref: "#/components/responses/MethodNotAllowedError"
|
|
31
|
+
"502":
|
|
32
|
+
$ref: "#/components/responses/WorkspaceOperationError"
|
|
33
|
+
"503":
|
|
34
|
+
$ref: "#/components/responses/ServiceUnavailableError"
|
|
35
|
+
post:
|
|
36
|
+
operationId: createWorkspaceIssueTopic
|
|
37
|
+
tags:
|
|
38
|
+
- issue
|
|
39
|
+
summary: Create one issue-manager topic
|
|
40
|
+
requestBody:
|
|
41
|
+
required: true
|
|
42
|
+
content:
|
|
43
|
+
application/json:
|
|
44
|
+
schema:
|
|
45
|
+
$ref: "#/components/schemas/CreateIssueManagerTopicRequest"
|
|
46
|
+
responses:
|
|
47
|
+
"201":
|
|
48
|
+
description: Workspace issue topic created
|
|
49
|
+
content:
|
|
50
|
+
application/json:
|
|
51
|
+
schema:
|
|
52
|
+
$ref: "#/components/schemas/IssueManagerTopicResponse"
|
|
53
|
+
"400":
|
|
54
|
+
$ref: "#/components/responses/InvalidRequestError"
|
|
55
|
+
"401":
|
|
56
|
+
$ref: "#/components/responses/UnauthorizedError"
|
|
57
|
+
"404":
|
|
58
|
+
$ref: "#/components/responses/WorkspaceNotFoundError"
|
|
59
|
+
"405":
|
|
60
|
+
$ref: "#/components/responses/MethodNotAllowedError"
|
|
61
|
+
"409":
|
|
62
|
+
$ref: "#/components/responses/WorkspaceIssueResourceExistsError"
|
|
63
|
+
"502":
|
|
64
|
+
$ref: "#/components/responses/WorkspaceOperationError"
|
|
65
|
+
"503":
|
|
66
|
+
$ref: "#/components/responses/ServiceUnavailableError"
|
|
67
|
+
/v1/workspaces/{workspaceID}/issue-topics/{topicID}:
|
|
68
|
+
parameters:
|
|
69
|
+
- $ref: "#/components/parameters/WorkspaceID"
|
|
70
|
+
- $ref: "#/components/parameters/IssueManagerTopicID"
|
|
71
|
+
patch:
|
|
72
|
+
operationId: updateWorkspaceIssueTopic
|
|
73
|
+
tags:
|
|
74
|
+
- issue
|
|
75
|
+
summary: Update one issue-manager topic
|
|
76
|
+
requestBody:
|
|
77
|
+
required: true
|
|
78
|
+
content:
|
|
79
|
+
application/json:
|
|
80
|
+
schema:
|
|
81
|
+
$ref: "#/components/schemas/UpdateIssueManagerTopicRequest"
|
|
82
|
+
responses:
|
|
83
|
+
"200":
|
|
84
|
+
description: Workspace issue topic updated
|
|
85
|
+
content:
|
|
86
|
+
application/json:
|
|
87
|
+
schema:
|
|
88
|
+
$ref: "#/components/schemas/IssueManagerTopicResponse"
|
|
89
|
+
"400":
|
|
90
|
+
$ref: "#/components/responses/InvalidRequestError"
|
|
91
|
+
"401":
|
|
92
|
+
$ref: "#/components/responses/UnauthorizedError"
|
|
93
|
+
"404":
|
|
94
|
+
$ref: "#/components/responses/WorkspaceIssueResourceNotFoundError"
|
|
95
|
+
"405":
|
|
96
|
+
$ref: "#/components/responses/MethodNotAllowedError"
|
|
97
|
+
"502":
|
|
98
|
+
$ref: "#/components/responses/WorkspaceOperationError"
|
|
99
|
+
"503":
|
|
100
|
+
$ref: "#/components/responses/ServiceUnavailableError"
|
|
101
|
+
delete:
|
|
102
|
+
operationId: deleteWorkspaceIssueTopic
|
|
103
|
+
tags:
|
|
104
|
+
- issue
|
|
105
|
+
summary: Delete one issue-manager topic
|
|
106
|
+
responses:
|
|
107
|
+
"200":
|
|
108
|
+
description: Workspace issue topic deleted
|
|
109
|
+
content:
|
|
110
|
+
application/json:
|
|
111
|
+
schema:
|
|
112
|
+
$ref: "#/components/schemas/DeleteIssueManagerTopicResponse"
|
|
113
|
+
"400":
|
|
114
|
+
$ref: "#/components/responses/InvalidRequestError"
|
|
115
|
+
"401":
|
|
116
|
+
$ref: "#/components/responses/UnauthorizedError"
|
|
117
|
+
"404":
|
|
118
|
+
$ref: "#/components/responses/WorkspaceIssueResourceNotFoundError"
|
|
119
|
+
"405":
|
|
120
|
+
$ref: "#/components/responses/MethodNotAllowedError"
|
|
121
|
+
"409":
|
|
122
|
+
$ref: "#/components/responses/WorkspaceIssueResourceExistsError"
|
|
123
|
+
"502":
|
|
124
|
+
$ref: "#/components/responses/WorkspaceOperationError"
|
|
125
|
+
"503":
|
|
126
|
+
$ref: "#/components/responses/ServiceUnavailableError"
|
|
8
127
|
/v1/workspaces/{workspaceID}/issues:
|
|
9
128
|
parameters:
|
|
10
129
|
- $ref: "#/components/parameters/WorkspaceID"
|
|
@@ -16,6 +135,7 @@ paths:
|
|
|
16
135
|
parameters:
|
|
17
136
|
- $ref: "#/components/parameters/IssueManagerPageSize"
|
|
18
137
|
- $ref: "#/components/parameters/IssueManagerPageToken"
|
|
138
|
+
- $ref: "#/components/parameters/IssueManagerTopicIDQuery"
|
|
19
139
|
- $ref: "#/components/parameters/IssueManagerStatusFilter"
|
|
20
140
|
- $ref: "#/components/parameters/IssueManagerSearchQuery"
|
|
21
141
|
responses:
|
|
@@ -216,6 +336,125 @@ paths:
|
|
|
216
336
|
$ref: "#/components/responses/WorkspaceOperationError"
|
|
217
337
|
"503":
|
|
218
338
|
$ref: "#/components/responses/ServiceUnavailableError"
|
|
339
|
+
/v1/workspaces/{workspaceID}/issues/{issueID}/runs:
|
|
340
|
+
parameters:
|
|
341
|
+
- $ref: "#/components/parameters/WorkspaceID"
|
|
342
|
+
- $ref: "#/components/parameters/IssueManagerIssueID"
|
|
343
|
+
get:
|
|
344
|
+
operationId: listWorkspaceIssueRuns
|
|
345
|
+
tags:
|
|
346
|
+
- issue
|
|
347
|
+
summary: List runs for one issue-manager issue
|
|
348
|
+
responses:
|
|
349
|
+
"200":
|
|
350
|
+
description: Workspace issue runs
|
|
351
|
+
content:
|
|
352
|
+
application/json:
|
|
353
|
+
schema:
|
|
354
|
+
$ref: "#/components/schemas/IssueManagerRunListResponse"
|
|
355
|
+
"400":
|
|
356
|
+
$ref: "#/components/responses/InvalidRequestError"
|
|
357
|
+
"401":
|
|
358
|
+
$ref: "#/components/responses/UnauthorizedError"
|
|
359
|
+
"404":
|
|
360
|
+
$ref: "#/components/responses/WorkspaceIssueResourceNotFoundError"
|
|
361
|
+
"405":
|
|
362
|
+
$ref: "#/components/responses/MethodNotAllowedError"
|
|
363
|
+
"502":
|
|
364
|
+
$ref: "#/components/responses/WorkspaceOperationError"
|
|
365
|
+
"503":
|
|
366
|
+
$ref: "#/components/responses/ServiceUnavailableError"
|
|
367
|
+
post:
|
|
368
|
+
operationId: createWorkspaceIssueRun
|
|
369
|
+
tags:
|
|
370
|
+
- issue
|
|
371
|
+
summary: Create one run for an issue-manager issue
|
|
372
|
+
requestBody:
|
|
373
|
+
required: true
|
|
374
|
+
content:
|
|
375
|
+
application/json:
|
|
376
|
+
schema:
|
|
377
|
+
$ref: "#/components/schemas/CreateIssueManagerRunRequest"
|
|
378
|
+
responses:
|
|
379
|
+
"201":
|
|
380
|
+
description: Workspace issue run created
|
|
381
|
+
content:
|
|
382
|
+
application/json:
|
|
383
|
+
schema:
|
|
384
|
+
$ref: "#/components/schemas/IssueManagerRunResponse"
|
|
385
|
+
"400":
|
|
386
|
+
$ref: "#/components/responses/InvalidRequestError"
|
|
387
|
+
"401":
|
|
388
|
+
$ref: "#/components/responses/UnauthorizedError"
|
|
389
|
+
"404":
|
|
390
|
+
$ref: "#/components/responses/WorkspaceIssueResourceNotFoundError"
|
|
391
|
+
"405":
|
|
392
|
+
$ref: "#/components/responses/MethodNotAllowedError"
|
|
393
|
+
"409":
|
|
394
|
+
$ref: "#/components/responses/WorkspaceIssueResourceExistsError"
|
|
395
|
+
"502":
|
|
396
|
+
$ref: "#/components/responses/WorkspaceOperationError"
|
|
397
|
+
"503":
|
|
398
|
+
$ref: "#/components/responses/ServiceUnavailableError"
|
|
399
|
+
/v1/workspaces/{workspaceID}/issues/{issueID}/runs/{runID}:
|
|
400
|
+
parameters:
|
|
401
|
+
- $ref: "#/components/parameters/WorkspaceID"
|
|
402
|
+
- $ref: "#/components/parameters/IssueManagerIssueID"
|
|
403
|
+
- $ref: "#/components/parameters/IssueManagerRunID"
|
|
404
|
+
get:
|
|
405
|
+
operationId: getWorkspaceIssueRun
|
|
406
|
+
tags:
|
|
407
|
+
- issue
|
|
408
|
+
summary: Get one issue-manager issue run
|
|
409
|
+
responses:
|
|
410
|
+
"200":
|
|
411
|
+
description: Workspace issue run
|
|
412
|
+
content:
|
|
413
|
+
application/json:
|
|
414
|
+
schema:
|
|
415
|
+
$ref: "#/components/schemas/IssueManagerRunEnvelope"
|
|
416
|
+
"400":
|
|
417
|
+
$ref: "#/components/responses/InvalidRequestError"
|
|
418
|
+
"401":
|
|
419
|
+
$ref: "#/components/responses/UnauthorizedError"
|
|
420
|
+
"404":
|
|
421
|
+
$ref: "#/components/responses/WorkspaceIssueResourceNotFoundError"
|
|
422
|
+
"405":
|
|
423
|
+
$ref: "#/components/responses/MethodNotAllowedError"
|
|
424
|
+
"502":
|
|
425
|
+
$ref: "#/components/responses/WorkspaceOperationError"
|
|
426
|
+
"503":
|
|
427
|
+
$ref: "#/components/responses/ServiceUnavailableError"
|
|
428
|
+
patch:
|
|
429
|
+
operationId: completeWorkspaceIssueRun
|
|
430
|
+
tags:
|
|
431
|
+
- issue
|
|
432
|
+
summary: Complete one issue-manager issue run
|
|
433
|
+
requestBody:
|
|
434
|
+
required: true
|
|
435
|
+
content:
|
|
436
|
+
application/json:
|
|
437
|
+
schema:
|
|
438
|
+
$ref: "#/components/schemas/CompleteIssueManagerRunRequest"
|
|
439
|
+
responses:
|
|
440
|
+
"200":
|
|
441
|
+
description: Workspace issue run completed
|
|
442
|
+
content:
|
|
443
|
+
application/json:
|
|
444
|
+
schema:
|
|
445
|
+
$ref: "#/components/schemas/IssueManagerRunEnvelope"
|
|
446
|
+
"400":
|
|
447
|
+
$ref: "#/components/responses/InvalidRequestError"
|
|
448
|
+
"401":
|
|
449
|
+
$ref: "#/components/responses/UnauthorizedError"
|
|
450
|
+
"404":
|
|
451
|
+
$ref: "#/components/responses/WorkspaceIssueResourceNotFoundError"
|
|
452
|
+
"405":
|
|
453
|
+
$ref: "#/components/responses/MethodNotAllowedError"
|
|
454
|
+
"502":
|
|
455
|
+
$ref: "#/components/responses/WorkspaceOperationError"
|
|
456
|
+
"503":
|
|
457
|
+
$ref: "#/components/responses/ServiceUnavailableError"
|
|
219
458
|
/v1/workspaces/{workspaceID}/issues/{issueID}/tasks:
|
|
220
459
|
parameters:
|
|
221
460
|
- $ref: "#/components/parameters/WorkspaceID"
|
|
@@ -561,6 +800,20 @@ components:
|
|
|
561
800
|
schema:
|
|
562
801
|
type: string
|
|
563
802
|
minLength: 1
|
|
803
|
+
IssueManagerTopicID:
|
|
804
|
+
name: topicID
|
|
805
|
+
in: path
|
|
806
|
+
required: true
|
|
807
|
+
schema:
|
|
808
|
+
type: string
|
|
809
|
+
minLength: 1
|
|
810
|
+
IssueManagerTopicIDQuery:
|
|
811
|
+
name: topicId
|
|
812
|
+
in: query
|
|
813
|
+
required: true
|
|
814
|
+
schema:
|
|
815
|
+
type: string
|
|
816
|
+
minLength: 1
|
|
564
817
|
IssueManagerTaskID:
|
|
565
818
|
name: taskID
|
|
566
819
|
in: path
|
|
@@ -705,12 +958,53 @@ components:
|
|
|
705
958
|
canceled:
|
|
706
959
|
type: integer
|
|
707
960
|
minimum: 0
|
|
961
|
+
IssueManagerTopic:
|
|
962
|
+
type: object
|
|
963
|
+
additionalProperties: false
|
|
964
|
+
required:
|
|
965
|
+
- topicId
|
|
966
|
+
- workspaceId
|
|
967
|
+
- title
|
|
968
|
+
- summary
|
|
969
|
+
- isDefault
|
|
970
|
+
- pinnedAtUnix
|
|
971
|
+
- lastActivityAtUnix
|
|
972
|
+
- createdAtUnix
|
|
973
|
+
- updatedAtUnix
|
|
974
|
+
properties:
|
|
975
|
+
topicId:
|
|
976
|
+
type: string
|
|
977
|
+
workspaceId:
|
|
978
|
+
type: string
|
|
979
|
+
title:
|
|
980
|
+
type: string
|
|
981
|
+
summary:
|
|
982
|
+
type: string
|
|
983
|
+
isDefault:
|
|
984
|
+
type: boolean
|
|
985
|
+
pinnedAtUnix:
|
|
986
|
+
type: integer
|
|
987
|
+
format: int64
|
|
988
|
+
minimum: 0
|
|
989
|
+
lastActivityAtUnix:
|
|
990
|
+
type: integer
|
|
991
|
+
format: int64
|
|
992
|
+
minimum: 0
|
|
993
|
+
createdAtUnix:
|
|
994
|
+
type: integer
|
|
995
|
+
format: int64
|
|
996
|
+
minimum: 0
|
|
997
|
+
updatedAtUnix:
|
|
998
|
+
type: integer
|
|
999
|
+
format: int64
|
|
1000
|
+
minimum: 0
|
|
708
1001
|
IssueManagerIssue:
|
|
709
1002
|
type: object
|
|
710
1003
|
additionalProperties: false
|
|
711
1004
|
required:
|
|
712
1005
|
- issueId
|
|
713
1006
|
- workspaceId
|
|
1007
|
+
- topicId
|
|
714
1008
|
- title
|
|
715
1009
|
- content
|
|
716
1010
|
- status
|
|
@@ -731,6 +1025,8 @@ components:
|
|
|
731
1025
|
type: string
|
|
732
1026
|
workspaceId:
|
|
733
1027
|
type: string
|
|
1028
|
+
topicId:
|
|
1029
|
+
type: string
|
|
734
1030
|
title:
|
|
735
1031
|
type: string
|
|
736
1032
|
content:
|
|
@@ -834,7 +1130,6 @@ components:
|
|
|
834
1130
|
additionalProperties: false
|
|
835
1131
|
required:
|
|
836
1132
|
- runId
|
|
837
|
-
- taskId
|
|
838
1133
|
- issueId
|
|
839
1134
|
- workspaceId
|
|
840
1135
|
- requesterUserId
|
|
@@ -896,7 +1191,6 @@ components:
|
|
|
896
1191
|
required:
|
|
897
1192
|
- outputId
|
|
898
1193
|
- runId
|
|
899
|
-
- taskId
|
|
900
1194
|
- issueId
|
|
901
1195
|
- workspaceId
|
|
902
1196
|
- path
|
|
@@ -1019,6 +1313,24 @@ components:
|
|
|
1019
1313
|
properties:
|
|
1020
1314
|
issue:
|
|
1021
1315
|
$ref: "#/components/schemas/IssueManagerIssue"
|
|
1316
|
+
IssueManagerTopicResponse:
|
|
1317
|
+
type: object
|
|
1318
|
+
additionalProperties: false
|
|
1319
|
+
required:
|
|
1320
|
+
- topic
|
|
1321
|
+
properties:
|
|
1322
|
+
topic:
|
|
1323
|
+
$ref: "#/components/schemas/IssueManagerTopic"
|
|
1324
|
+
IssueManagerTopicListResponse:
|
|
1325
|
+
type: object
|
|
1326
|
+
additionalProperties: false
|
|
1327
|
+
required:
|
|
1328
|
+
- topics
|
|
1329
|
+
properties:
|
|
1330
|
+
topics:
|
|
1331
|
+
type: array
|
|
1332
|
+
items:
|
|
1333
|
+
$ref: "#/components/schemas/IssueManagerTopic"
|
|
1022
1334
|
IssueManagerIssueListResponse:
|
|
1023
1335
|
type: object
|
|
1024
1336
|
additionalProperties: false
|
|
@@ -1045,6 +1357,9 @@ components:
|
|
|
1045
1357
|
- issue
|
|
1046
1358
|
- tasks
|
|
1047
1359
|
- contextRefs
|
|
1360
|
+
- latestRun
|
|
1361
|
+
- recentRuns
|
|
1362
|
+
- latestOutputs
|
|
1048
1363
|
properties:
|
|
1049
1364
|
issue:
|
|
1050
1365
|
$ref: "#/components/schemas/IssueManagerIssue"
|
|
@@ -1056,6 +1371,18 @@ components:
|
|
|
1056
1371
|
type: array
|
|
1057
1372
|
items:
|
|
1058
1373
|
$ref: "#/components/schemas/IssueManagerContextRef"
|
|
1374
|
+
latestRun:
|
|
1375
|
+
allOf:
|
|
1376
|
+
- $ref: "#/components/schemas/IssueManagerRun"
|
|
1377
|
+
nullable: true
|
|
1378
|
+
recentRuns:
|
|
1379
|
+
type: array
|
|
1380
|
+
items:
|
|
1381
|
+
$ref: "#/components/schemas/IssueManagerRun"
|
|
1382
|
+
latestOutputs:
|
|
1383
|
+
type: array
|
|
1384
|
+
items:
|
|
1385
|
+
$ref: "#/components/schemas/IssueManagerRunOutput"
|
|
1059
1386
|
IssueManagerTaskResponse:
|
|
1060
1387
|
type: object
|
|
1061
1388
|
additionalProperties: false
|
|
@@ -1156,15 +1483,42 @@ components:
|
|
|
1156
1483
|
type: object
|
|
1157
1484
|
additionalProperties: false
|
|
1158
1485
|
required:
|
|
1486
|
+
- topicId
|
|
1159
1487
|
- title
|
|
1160
1488
|
properties:
|
|
1161
1489
|
issueId:
|
|
1162
1490
|
type: string
|
|
1491
|
+
topicId:
|
|
1492
|
+
type: string
|
|
1493
|
+
minLength: 1
|
|
1163
1494
|
title:
|
|
1164
1495
|
type: string
|
|
1165
1496
|
minLength: 1
|
|
1166
1497
|
content:
|
|
1167
1498
|
type: string
|
|
1499
|
+
CreateIssueManagerTopicRequest:
|
|
1500
|
+
type: object
|
|
1501
|
+
additionalProperties: false
|
|
1502
|
+
required:
|
|
1503
|
+
- title
|
|
1504
|
+
properties:
|
|
1505
|
+
topicId:
|
|
1506
|
+
type: string
|
|
1507
|
+
title:
|
|
1508
|
+
type: string
|
|
1509
|
+
minLength: 1
|
|
1510
|
+
summary:
|
|
1511
|
+
type: string
|
|
1512
|
+
UpdateIssueManagerTopicRequest:
|
|
1513
|
+
type: object
|
|
1514
|
+
additionalProperties: false
|
|
1515
|
+
properties:
|
|
1516
|
+
title:
|
|
1517
|
+
type: string
|
|
1518
|
+
summary:
|
|
1519
|
+
type: string
|
|
1520
|
+
pinned:
|
|
1521
|
+
type: boolean
|
|
1168
1522
|
UpdateIssueManagerIssueRequest:
|
|
1169
1523
|
type: object
|
|
1170
1524
|
additionalProperties: false
|
|
@@ -1173,6 +1527,8 @@ components:
|
|
|
1173
1527
|
type: string
|
|
1174
1528
|
content:
|
|
1175
1529
|
type: string
|
|
1530
|
+
status:
|
|
1531
|
+
$ref: "#/components/schemas/IssueManagerStatus"
|
|
1176
1532
|
CreateIssueManagerTaskRequest:
|
|
1177
1533
|
type: object
|
|
1178
1534
|
additionalProperties: false
|
|
@@ -1293,6 +1649,14 @@ components:
|
|
|
1293
1649
|
properties:
|
|
1294
1650
|
removed:
|
|
1295
1651
|
type: boolean
|
|
1652
|
+
DeleteIssueManagerTopicResponse:
|
|
1653
|
+
type: object
|
|
1654
|
+
additionalProperties: false
|
|
1655
|
+
required:
|
|
1656
|
+
- removed
|
|
1657
|
+
properties:
|
|
1658
|
+
removed:
|
|
1659
|
+
type: boolean
|
|
1296
1660
|
DeleteIssueManagerTaskResponse:
|
|
1297
1661
|
type: object
|
|
1298
1662
|
additionalProperties: false
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nextop-os/workspace-issue-manager",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.29",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -34,6 +34,10 @@
|
|
|
34
34
|
"types": "./dist/ui/index.d.ts",
|
|
35
35
|
"import": "./dist/ui/index.js"
|
|
36
36
|
},
|
|
37
|
+
"./workbench/constants": {
|
|
38
|
+
"types": "./dist/workbench/constants.d.ts",
|
|
39
|
+
"import": "./dist/workbench/constants.js"
|
|
40
|
+
},
|
|
37
41
|
"./workbench": {
|
|
38
42
|
"types": "./dist/workbench/index.d.ts",
|
|
39
43
|
"import": "./dist/workbench/index.js"
|
|
@@ -50,11 +54,12 @@
|
|
|
50
54
|
"directory": "packages/workspace/issue-manager"
|
|
51
55
|
},
|
|
52
56
|
"dependencies": {
|
|
53
|
-
"@nextop-os/ui-i18n-runtime": "0.0.
|
|
54
|
-
"@nextop-os/ui-rich-text": "0.0.
|
|
55
|
-
"@nextop-os/ui-system": "0.0.
|
|
56
|
-
"@nextop-os/workbench-surface": "0.0.
|
|
57
|
-
"@nextop-os/workspace-file-
|
|
57
|
+
"@nextop-os/ui-i18n-runtime": "0.0.29",
|
|
58
|
+
"@nextop-os/ui-rich-text": "0.0.29",
|
|
59
|
+
"@nextop-os/ui-system": "0.0.29",
|
|
60
|
+
"@nextop-os/workbench-surface": "0.0.29",
|
|
61
|
+
"@nextop-os/workspace-file-reference": "0.0.29",
|
|
62
|
+
"@nextop-os/workspace-file-preview": "0.0.29",
|
|
58
63
|
"valtio": "^2.3.2"
|
|
59
64
|
},
|
|
60
65
|
"devDependencies": {
|