@ms-cloudpack/overlay 0.16.113 → 0.17.0
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/browser-esm/lib/index.js +113 -204
- package/dist/browser-esm/lib/index.js.map +4 -4
- package/dist/browser-esm/ori-output.json +81 -95
- package/dist/browser-esm/result.json +10 -10
- package/lib/components/CloudpackProvider/CloudpackProvider.d.ts +3 -2
- package/lib/components/CloudpackProvider/CloudpackProvider.d.ts.map +1 -1
- package/lib/components/CloudpackProvider/CloudpackProvider.js +2 -4
- package/lib/components/CloudpackProvider/CloudpackProvider.js.map +1 -1
- package/lib/components/CloudpackProvider/useStatus.d.ts.map +1 -1
- package/lib/components/CloudpackProvider/useStatus.js +12 -3
- package/lib/components/CloudpackProvider/useStatus.js.map +1 -1
- package/lib/components/CloudpackProvider/useStatusDetails.d.ts +52 -16
- package/lib/components/CloudpackProvider/useStatusDetails.d.ts.map +1 -1
- package/lib/components/CloudpackProvider/useStatusDetails.js +11 -2
- package/lib/components/CloudpackProvider/useStatusDetails.js.map +1 -1
- package/lib/components/ErrorDialog/ErrorDialog.js +1 -1
- package/lib/components/ErrorDialog/ErrorDialog.js.map +1 -1
- package/lib/components/ErrorDialog/PathError.js +2 -2
- package/lib/components/ErrorDialog/PathError.js.map +1 -1
- package/lib/components/ErrorDialog/useErrorEvents.js +1 -1
- package/lib/components/ErrorDialog/useErrorEvents.js.map +1 -1
- package/lib/components/StatusDialog/StatusDialog.js +1 -1
- package/lib/components/StatusDialog/StatusDialog.js.map +1 -1
- package/lib/components/StatusDialog/TaskList.d.ts.map +1 -1
- package/lib/components/StatusDialog/TaskList.js +10 -1
- package/lib/components/StatusDialog/TaskList.js.map +1 -1
- package/lib/components/StatusDialog/TaskResultItem.js +2 -2
- package/lib/components/StatusDialog/TaskResultItem.js.map +1 -1
- package/lib/components/StatusDialog/TaskStatus.d.ts +2 -2
- package/lib/components/StatusDialog/TaskStatus.d.ts.map +1 -1
- package/lib/components/StatusDialog/TaskStatus.js +39 -28
- package/lib/components/StatusDialog/TaskStatus.js.map +1 -1
- package/lib/hooks/usePageLoadTimeReporter.js +2 -2
- package/lib/hooks/usePageLoadTimeReporter.js.map +1 -1
- package/lib/index.js +27 -7
- package/lib/index.js.map +1 -1
- package/package.json +4 -6
- package/lib/components/CloudpackProvider/createCloudpackClient.d.ts +0 -27
- package/lib/components/CloudpackProvider/createCloudpackClient.d.ts.map +0 -1
- package/lib/components/CloudpackProvider/createCloudpackClient.js +0 -163
- package/lib/components/CloudpackProvider/createCloudpackClient.js.map +0 -1
- /package/dist/ori/logs/{2g8DL8XvNNiSPBsWRhfIm0Mk1wF-logger.log → 2gDrbKHv6HJdsrJbtR1hpUGJy8u-logger.log} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PathError.js","sourceRoot":"","sources":["../../../src/components/ErrorDialog/PathError.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,uCAAuC,CAAC;AAC3D,OAAO,SAAS,MAAM,kCAAkC,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,eAAe,MAAM,wCAAwC,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAEzE,MAAM,UAAU,SAAS,CAAC,KAA4B;IACpD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAU,KAAK,CAAC,CAAC;IACrE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC9D,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"PathError.js","sourceRoot":"","sources":["../../../src/components/ErrorDialog/PathError.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport styles from '../StatusDialog/TaskStatus.module.css';\nimport ErrorIcon from '../../images/error-24.inline.svg';\nimport { default as cx } from 'classnames';\nimport ChevronDownIcon from '../../images/chevrondown-20.inline.svg';\nimport type { UnsupportedErrorEvent } from './useErrorEvents.js';\nimport { Button } from '../Button/Button.js';\nimport { useCloudpack } from '../CloudpackProvider/CloudpackProvider.js';\n\nexport function PathError(props: UnsupportedErrorEvent) {\n const [showContent, setshowContent] = React.useState<boolean>(false);\n const { packageName, importPath, issuerUrl, fixable } = props;\n const cloudpack = useCloudpack();\n\n const editConfig = () => {\n void cloudpack.openConfigEditor.mutate();\n };\n\n const addOverride = () => {\n void cloudpack.addPackageOverride.mutate({ packageName, importPath, issuerUrl });\n };\n\n return (\n <div className={styles.root}>\n <div className={cx(styles.header, styles.error)}>\n <button\n className={styles.expandButton}\n onClick={() => setshowContent(!showContent)}\n aria-label={showContent ? `Minimize ${packageName}/${importPath}` : `Expand ${packageName}/${importPath}`}\n >\n <img\n className={cx(styles.expandIcon, !showContent && styles.collapsed)}\n src={ChevronDownIcon}\n alt=\"Chevron down icon\"\n />\n </button>\n <img className={styles.errorIcon} src={ErrorIcon} alt=\"Error icon\" />\n <div className={styles.title}>{`${packageName}/${importPath}`}</div>\n </div>\n {showContent && (\n <>\n <div className={styles.commands}>\n {fixable && <Button onClick={addOverride}>Add override</Button>}\n <Button onClick={editConfig}>Edit config file</Button>\n </div>\n <div className={styles.content}>\n <div className={styles.title}>Details</div>\n\n <div className={styles.nameValueArea}>\n <div className={styles.name}>Problem</div>\n <div className={styles.value}>\n {importPath === '.'\n ? `An unrecognized package \"${packageName}\" was imported.`\n : `Path \"${importPath}\" was imported from package \"${packageName}\" but was not recognized as an exported path.`}\n </div>\n </div>\n <div className={styles.nameValueArea}>\n <div className={styles.name}>Solution</div>\n <div className={styles.value}>\n {fixable\n ? `Remove the path from the import in your source. (Import from \"${packageName}\" rather than \"${packageName}/${importPath}\")`\n : importPath === '.'\n ? `Make sure the package name is valid.`\n : `Import not found on package. Make sure the import path is valid.`}\n </div>\n </div>\n </div>\n </>\n )}\n </div>\n );\n}\n"]}
|
|
@@ -21,7 +21,7 @@ export const useErrorEvents = () => {
|
|
|
21
21
|
const { packageName } = importString;
|
|
22
22
|
const importPath = importString.importPath.replace(/^\.\//, '');
|
|
23
23
|
(async () => {
|
|
24
|
-
const { fixable } = await cloudpack.
|
|
24
|
+
const { fixable } = await cloudpack.validatePackageOverride.query({ packageName, importPath, issuerUrl });
|
|
25
25
|
setErrorEvents((prev) => ({
|
|
26
26
|
...prev,
|
|
27
27
|
unsupported: [...prev.unsupported, { packageName, importPath, issuerUrl: issuerUrl, fixable }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useErrorEvents.js","sourceRoot":"","sources":["../../../src/components/ErrorDialog/useErrorEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAsBzE,iCAAiC;AACjC,MAAM,cAAc,GAAG,CAAC,KAA4B,EAAyB,EAAE;IAC7E,OAAO,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC;AACnG,CAAC,CAAC;AAEF,qDAAqD;AACrD,MAAM,UAAU,GAAG,CAAC,KAA4B,EAAyB,EAAE;IACzE,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC;AAC3E,CAAC,CAAC;AAIF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAA2C,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9G,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,sBAAsB,GAAG,CAAC,OAAe,EAAE,SAAkB,EAAQ,EAAE;YAC3E,MAAM,UAAU,GAAG,qCAAqC,CAAC;YACzD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAExC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC;gBACrC,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAEhE,CAAC,KAAK,IAAI,EAAE;oBACV,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"useErrorEvents.js","sourceRoot":"","sources":["../../../src/components/ErrorDialog/useErrorEvents.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useState } from 'react';\nimport { parseImportString } from '@ms-cloudpack/path-string-parsing';\nimport { useCloudpack } from '../CloudpackProvider/CloudpackProvider.js';\n\ndeclare global {\n interface Window {\n __pageErrors: {\n uncaughtErrors: ErrorEvent[];\n uncaughtRejections: PromiseRejectionEvent[];\n unregister: () => void;\n };\n }\n}\n\n// Interface with reason as a record.\ninterface ReasonRecord extends PromiseRejectionEvent {\n readonly reason: Record<string, unknown>;\n}\n\n// Interface with message as a string.\ninterface ReasonString extends ReasonRecord {\n readonly reason: { message: string };\n}\n\n// Verify the reason is a record.\nconst reasonIsRecord = (event: PromiseRejectionEvent): event is ReasonRecord => {\n return typeof event.reason === 'object' && !Array.isArray(event.reason) && event.reason !== null;\n};\n\n// Verify the reason has a message which is a string.\nconst hasMessage = (event: PromiseRejectionEvent): event is ReasonString => {\n return reasonIsRecord(event) && typeof event.reason.message === 'string';\n};\n\nexport type UnsupportedErrorEvent = { packageName: string; importPath: string; issuerUrl?: string; fixable?: boolean };\n\nexport const useErrorEvents = () => {\n const [errorEvents, setErrorEvents] = useState<{ unsupported: UnsupportedErrorEvent[] }>({ unsupported: [] });\n const cloudpack = useCloudpack();\n\n useEffect(() => {\n const handleUnsupportedError = (message: string, issuerUrl?: string): void => {\n const errorRegex = /[Mm]odule specifier,? ['\"](.*?)['\"]/;\n const match = message.match(errorRegex);\n\n if (match) {\n const importString = parseImportString(match[1]);\n const { packageName } = importString;\n const importPath = importString.importPath.replace(/^\\.\\//, '');\n\n (async () => {\n const { fixable } = await cloudpack.validatePackageOverride.query({ packageName, importPath, issuerUrl });\n setErrorEvents((prev) => ({\n ...prev,\n unsupported: [...prev.unsupported, { packageName, importPath, issuerUrl: issuerUrl, fixable }],\n }));\n })().catch(() => {\n // no-op\n });\n }\n };\n\n const pageErrors = window.__pageErrors;\n\n pageErrors.unregister();\n\n // Append unsupported paths to the list.\n window.addEventListener('error', (event: ErrorEvent) => {\n handleUnsupportedError(event.message, event.filename);\n });\n\n // Handle errors caught before rendering.\n for (const error of pageErrors.uncaughtErrors) {\n handleUnsupportedError(error.message, error.filename);\n }\n\n // Append unsupported paths to the list.\n window.addEventListener('unhandledrejection', (event: PromiseRejectionEvent) => {\n hasMessage(event) && handleUnsupportedError(event.reason.message);\n });\n\n // Handle rejections caught before rendering.\n for (const error of pageErrors.uncaughtRejections) {\n hasMessage(error) && handleUnsupportedError(error.reason.message);\n }\n }, [cloudpack]);\n\n return errorEvents;\n};\n"]}
|
|
@@ -14,7 +14,7 @@ export function StatusDialog({ onClose }) {
|
|
|
14
14
|
setSearchFilter(event.target.value);
|
|
15
15
|
}, []);
|
|
16
16
|
const restartAllTasks = () => {
|
|
17
|
-
cloudpack.restartAllTasks();
|
|
17
|
+
void cloudpack.restartAllTasks.mutate();
|
|
18
18
|
};
|
|
19
19
|
const toggleIssuesOnly = () => setIssuesOnly((value) => !value);
|
|
20
20
|
return (React.createElement(Dialog, { title: "Task results", id: elementIds.statusDialogRoot, draggable: true, onClose: onClose, commands: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusDialog.js","sourceRoot":"","sources":["../../../src/components/StatusDialog/StatusDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMhD,MAAM,UAAU,YAAY,CAAC,EAAE,OAAO,EAAqB;IACzD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1D,MAAM,kBAAkB,GAAG,WAAW,CAAC,CAAC,KAA0C,EAAE,EAAE;QACpF,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,SAAS,CAAC,eAAe,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"StatusDialog.js","sourceRoot":"","sources":["../../../src/components/StatusDialog/StatusDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMhD,MAAM,UAAU,YAAY,CAAC,EAAE,OAAO,EAAqB;IACzD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1D,MAAM,kBAAkB,GAAG,WAAW,CAAC,CAAC,KAA0C,EAAE,EAAE;QACpF,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,KAAK,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAEhE,OAAO,CACL,oBAAC,MAAM,IACL,KAAK,EAAC,cAAc,EACpB,EAAE,EAAE,UAAU,CAAC,gBAAgB,EAC/B,SAAS,QACT,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE;YACR,oBAAC,MAAM,IAAC,OAAO,QAAC,OAAO,EAAE,eAAe,EAAE,GAAG,EAAC,SAAS,wBAE9C;YACT,oBAAC,MAAM,IAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,EAAC,QAAQ,IAC5C,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,wBAAwB,CAClD;SACV;QAED,oBAAC,SAAS,IAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,GAAI;QAChE,oBAAC,QAAQ,IAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,GAAI,CACzD,CACV,CAAC;AACJ,CAAC","sourcesContent":["import React, { useCallback } from 'react';\nimport { TaskList } from './TaskList.js';\nimport { useCloudpack } from '../CloudpackProvider/CloudpackProvider.js';\nimport { Button } from '../Button/Button.js';\nimport { Dialog } from '../Dialog/Dialog.js';\nimport { Searchbox } from './Searchbox.js';\nimport { elementIds } from '../../constants.js';\n\nexport interface StatusDialogProps {\n onClose: () => void;\n}\n\nexport function StatusDialog({ onClose }: StatusDialogProps) {\n const cloudpack = useCloudpack();\n const [searchFilter, setSearchFilter] = React.useState('');\n const [issuesOnly, setIssuesOnly] = React.useState(false);\n\n const handleSearchChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\n event.preventDefault();\n setSearchFilter(event.target.value);\n }, []);\n\n const restartAllTasks = () => {\n void cloudpack.restartAllTasks.mutate();\n };\n\n const toggleIssuesOnly = () => setIssuesOnly((value) => !value);\n\n return (\n <Dialog\n title=\"Task results\"\n id={elementIds.statusDialogRoot}\n draggable\n onClose={onClose}\n commands={[\n <Button primary onClick={restartAllTasks} key=\"restart\">\n Restart all tasks\n </Button>,\n <Button onClick={toggleIssuesOnly} key=\"issues\">\n {issuesOnly ? 'Show all tasks' : 'Show tasks with issues'}\n </Button>,\n ]}\n >\n <Searchbox value={searchFilter} onChange={handleSearchChange} />\n <TaskList searchFilter={searchFilter} issuesOnly={issuesOnly} />\n </Dialog>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskList.d.ts","sourceRoot":"","sources":["../../../src/components/StatusDialog/TaskList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TaskList.d.ts","sourceRoot":"","sources":["../../../src/components/StatusDialog/TaskList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,QAAQ,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,aAAa,qBAoBnE"}
|
|
@@ -8,7 +8,7 @@ export function TaskList({ searchFilter, issuesOnly }) {
|
|
|
8
8
|
let filteredTasks = tasks;
|
|
9
9
|
if (searchFilter) {
|
|
10
10
|
searchFilter = searchFilter.toLowerCase();
|
|
11
|
-
filteredTasks = filteredTasks.filter(({ name }) => searchFilter && name
|
|
11
|
+
filteredTasks = filteredTasks.filter(({ name }) => searchFilter && name?.toLowerCase().includes(searchFilter));
|
|
12
12
|
}
|
|
13
13
|
if (issuesOnly) {
|
|
14
14
|
filteredTasks = filteredTasks.filter(({ errors, warnings }) => errors?.length || warnings?.length);
|
|
@@ -29,6 +29,15 @@ function sortTasks(a, b) {
|
|
|
29
29
|
if (aErrors !== bErrors) {
|
|
30
30
|
return aErrors > bErrors ? -1 : 1;
|
|
31
31
|
}
|
|
32
|
+
if (a.name === undefined && b.name === undefined) {
|
|
33
|
+
return a.id < b.id ? -1 : 1;
|
|
34
|
+
}
|
|
35
|
+
else if (a.name === undefined) {
|
|
36
|
+
return 1;
|
|
37
|
+
}
|
|
38
|
+
else if (b.name === undefined) {
|
|
39
|
+
return -1;
|
|
40
|
+
}
|
|
32
41
|
return a.name < b.name ? -1 : 1;
|
|
33
42
|
}
|
|
34
43
|
//# sourceMappingURL=TaskList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskList.js","sourceRoot":"","sources":["../../../src/components/StatusDialog/TaskList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"TaskList.js","sourceRoot":"","sources":["../../../src/components/StatusDialog/TaskList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAQ3C,MAAM,UAAU,QAAQ,CAAC,EAAE,YAAY,EAAE,UAAU,EAAiB;IAClE,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEpD,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,YAAY,EAAE,CAAC;QACjB,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAC1C,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,YAAY,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IACjH,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,CAAC,CAAC;IACrG,CAAC;IAED,OAAO,CACL,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI,IACxB,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC3B,oBAAC,UAAU,IAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,GAAI,CAC3C,CAAC,CACE,CACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,CAAkB,EAAE,CAAkB;IACvD,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/C,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC;IAEtC,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACjD,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,CAAC;IACX,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC","sourcesContent":["import React from 'react';\nimport { TaskStatus } from './TaskStatus.js';\nimport { useStatusDetails } from '../CloudpackProvider/useStatusDetails.js';\nimport styles from './TaskList.module.css';\nimport type { TaskDescription } from '@ms-cloudpack/api-server/browser';\n\nexport interface TaskListProps {\n searchFilter?: string;\n issuesOnly?: boolean;\n}\n\nexport function TaskList({ searchFilter, issuesOnly }: TaskListProps) {\n const details = useStatusDetails();\n const tasks = (details.tasks || []).sort(sortTasks);\n\n let filteredTasks = tasks;\n if (searchFilter) {\n searchFilter = searchFilter.toLowerCase();\n filteredTasks = filteredTasks.filter(({ name }) => searchFilter && name?.toLowerCase().includes(searchFilter));\n }\n if (issuesOnly) {\n filteredTasks = filteredTasks.filter(({ errors, warnings }) => errors?.length || warnings?.length);\n }\n\n return (\n <div className={styles.root}>\n {filteredTasks.map((task) => (\n <TaskStatus key={task.name} task={task} />\n ))}\n </div>\n );\n}\n\n/**\n * Really the server should be sorting. Get stuff out of the browser.\n */\nfunction sortTasks(a: TaskDescription, b: TaskDescription) {\n const aStatus = a.status === 'pending' ? 1 : 0;\n const bStatus = b.status === 'pending' ? 1 : 0;\n\n if (aStatus !== bStatus) {\n return aStatus > bStatus ? -1 : 1;\n }\n\n const aErrors = a.errors?.length || 0;\n const bErrors = b.errors?.length || 0;\n\n if (aErrors !== bErrors) {\n return aErrors > bErrors ? -1 : 1;\n }\n\n if (a.name === undefined && b.name === undefined) {\n return a.id < b.id ? -1 : 1;\n } else if (a.name === undefined) {\n return 1;\n } else if (b.name === undefined) {\n return -1;\n }\n\n return a.name < b.name ? -1 : 1;\n}\n"]}
|
|
@@ -2,10 +2,10 @@ import React from 'react';
|
|
|
2
2
|
import { useCloudpack } from '../CloudpackProvider/CloudpackProvider.js';
|
|
3
3
|
import styles from './TaskResultItem.module.css';
|
|
4
4
|
export function TaskResultItem({ item, projectPath, index }) {
|
|
5
|
-
const
|
|
5
|
+
const cloudpack = useCloudpack();
|
|
6
6
|
const openSource = (ev) => {
|
|
7
7
|
if (item.location) {
|
|
8
|
-
|
|
8
|
+
void cloudpack.openCodeEditor.mutate({
|
|
9
9
|
rootPath: projectPath,
|
|
10
10
|
relativePath: item.location?.file,
|
|
11
11
|
line: item.location?.line,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskResultItem.js","sourceRoot":"","sources":["../../../src/components/StatusDialog/TaskResultItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,MAAM,MAAM,6BAA6B,CAAC;AAQjD,MAAM,UAAU,cAAc,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAuB;IAC9E,MAAM,
|
|
1
|
+
{"version":3,"file":"TaskResultItem.js","sourceRoot":"","sources":["../../../src/components/StatusDialog/TaskResultItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,MAAM,MAAM,6BAA6B,CAAC;AAQjD,MAAM,UAAU,cAAc,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAuB;IAC9E,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,MAAM,UAAU,GAAG,CAAC,EAAoB,EAAE,EAAE;QAC1C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC;gBACnC,QAAQ,EAAE,WAAW;gBACrB,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI;gBACjC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI;gBACzB,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM;aAC9B,CAAC,CAAC;YACH,EAAE,CAAC,cAAc,EAAE,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,oBAAoB,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;SACvG,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,CACL,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI;QACzB,6BAAK,SAAS,EAAE,MAAM,CAAC,SAAS,GAAQ;QACxC,6BAAK,SAAS,EAAE,MAAM,CAAC,OAAO;YAC5B,6BAAK,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC9B,gCAAQ,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI;oBAChD,KAAK;;oBAAI,QAAQ,CACX,CACL;YACN,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI;;gBACvB,IAAI,CAAC,MAAM;;gBAAI,IAAI,CAAC,IAAI,CACtB;YACN,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI,IAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAO,CAC9D,CACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import type { BundleMessage } from '@ms-cloudpack/common-types';\nimport React from 'react';\nimport { useCloudpack } from '../CloudpackProvider/CloudpackProvider.js';\nimport styles from './TaskResultItem.module.css';\n\nexport interface TaskResultItemProps {\n item: BundleMessage;\n projectPath: string;\n index: number;\n}\n\nexport function TaskResultItem({ item, projectPath, index }: TaskResultItemProps) {\n const cloudpack = useCloudpack();\n\n const openSource = (ev: React.MouseEvent) => {\n if (item.location) {\n void cloudpack.openCodeEditor.mutate({\n rootPath: projectPath,\n relativePath: item.location?.file,\n line: item.location?.line,\n column: item.location?.column,\n });\n ev.preventDefault();\n }\n };\n\n const location = [item.location?.file || '(path unavailable)', item.location?.line, item.location?.column]\n .filter(Boolean)\n .join(':');\n\n return (\n <div className={styles.root}>\n <div className={styles.statusBar}></div>\n <div className={styles.content}>\n <div className={styles.titleArea}>\n <button onClick={openSource} className={styles.file}>\n {index}. {location}\n </button>\n </div>\n <div className={styles.text}>\n [{item.source}] {item.text}\n </div>\n <pre className={styles.text}>{JSON.stringify(item, null, 2)}</pre>\n </div>\n </div>\n );\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type {
|
|
2
|
+
import type { TaskDescription } from '@ms-cloudpack/api-server/browser';
|
|
3
3
|
export interface TaskStatusProps {
|
|
4
|
-
task:
|
|
4
|
+
task: TaskDescription;
|
|
5
5
|
}
|
|
6
6
|
export declare function TaskStatus({ task }: TaskStatusProps): React.JSX.Element;
|
|
7
7
|
//# sourceMappingURL=TaskStatus.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskStatus.d.ts","sourceRoot":"","sources":["../../../src/components/StatusDialog/TaskStatus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"TaskStatus.d.ts","sourceRoot":"","sources":["../../../src/components/StatusDialog/TaskStatus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAUxE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,eAAe,CAAC;CACvB;AAeD,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,eAAe,qBA2GnD"}
|
|
@@ -21,22 +21,31 @@ function getCompletion(task) {
|
|
|
21
21
|
}
|
|
22
22
|
export function TaskStatus({ task }) {
|
|
23
23
|
const [isOpen, setIsOpen] = React.useState(undefined);
|
|
24
|
-
const { name, warnings, errors } = task;
|
|
24
|
+
const { name, warnings = [], errors = [] } = task;
|
|
25
25
|
const cloudpack = useCloudpack();
|
|
26
|
-
const showContent = isOpen === true || (isOpen === undefined &&
|
|
26
|
+
const showContent = isOpen === true || (isOpen === undefined && errors?.length > 0);
|
|
27
|
+
const inputPath = task.inputPath;
|
|
27
28
|
const open = (rootPath) => {
|
|
28
|
-
cloudpack.
|
|
29
|
+
void cloudpack.openFilePath.mutate({
|
|
29
30
|
rootPath,
|
|
30
31
|
});
|
|
31
32
|
};
|
|
32
33
|
const openPackage = () => {
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
if (!inputPath) {
|
|
35
|
+
console.error('No input path for task', task);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
void cloudpack.openCodeEditor.mutate({
|
|
39
|
+
rootPath: inputPath,
|
|
35
40
|
relativePath: 'package.json',
|
|
36
41
|
});
|
|
37
42
|
};
|
|
38
43
|
const restartTask = () => {
|
|
39
|
-
|
|
44
|
+
if (!inputPath) {
|
|
45
|
+
console.error('No input path for task', task);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
void cloudpack.restartTask.mutate({ id: task.id, inputPath });
|
|
40
49
|
};
|
|
41
50
|
return (React.createElement("div", { className: styles.root },
|
|
42
51
|
React.createElement("div", { className: getHeaderClassName(task) },
|
|
@@ -46,31 +55,33 @@ export function TaskStatus({ task }) {
|
|
|
46
55
|
errors?.length > 0 && React.createElement("img", { className: styles.errorIcon, src: ErrorIcon, alt: "Error icon" }),
|
|
47
56
|
React.createElement("div", { className: styles.title }, name),
|
|
48
57
|
React.createElement("div", { className: styles.farArea }, getCompletion(task))),
|
|
49
|
-
showContent &&
|
|
50
|
-
React.createElement(
|
|
51
|
-
React.createElement(
|
|
52
|
-
|
|
53
|
-
React.createElement("div", { className: styles.
|
|
54
|
-
|
|
55
|
-
React.createElement("div", { className: styles.
|
|
56
|
-
|
|
57
|
-
React.createElement("
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
React.createElement("div", { className: styles.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
React.createElement(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
React.createElement(
|
|
67
|
-
|
|
58
|
+
showContent &&
|
|
59
|
+
(inputPath ? (React.createElement(React.Fragment, null,
|
|
60
|
+
React.createElement("div", { className: styles.commands },
|
|
61
|
+
React.createElement(Button, { onClick: restartTask }, "Restart task")),
|
|
62
|
+
React.createElement("div", { className: styles.content },
|
|
63
|
+
React.createElement("div", { className: styles.title }, "Details"),
|
|
64
|
+
React.createElement("div", { className: styles.nameValueArea },
|
|
65
|
+
React.createElement("div", { className: styles.name }, "Input path"),
|
|
66
|
+
React.createElement("div", { className: styles.value },
|
|
67
|
+
React.createElement("button", { className: styles.linkButton, onClick: () => open(inputPath) }, task.inputPath),
|
|
68
|
+
React.createElement("button", { className: styles.linkButton, onClick: openPackage }, "(Package.json)"))),
|
|
69
|
+
React.createElement("div", { className: styles.nameValueArea },
|
|
70
|
+
React.createElement("div", { className: styles.name }, "Output path"),
|
|
71
|
+
React.createElement("button", { className: styles.linkButton, onClick: () => open(inputPath) }, task.outputPath)),
|
|
72
|
+
errors?.length > 0 && (React.createElement(React.Fragment, null,
|
|
73
|
+
React.createElement("div", { className: styles.title }, "Errors"),
|
|
74
|
+
React.createElement("div", { className: styles.resultItems }, errors.map((error, index) => (React.createElement(TaskResultItem, { key: index, item: error, projectPath: inputPath, index: index + 1 })))))),
|
|
75
|
+
warnings?.length > 0 && (React.createElement(React.Fragment, null,
|
|
76
|
+
React.createElement("div", { className: styles.title }, "Warnings"),
|
|
77
|
+
React.createElement("div", { className: styles.resultItems }, warnings.map((warning, index) => (React.createElement(TaskResultItem, { key: index, item: warning, projectPath: inputPath, index: index + 1 }))))))))) : (React.createElement("div", { className: styles.content }, "No input path found for task. This is a Cloudpack bug. Please report it.")))));
|
|
68
78
|
}
|
|
69
79
|
function getHeaderClassName(task) {
|
|
80
|
+
const { errors = [], warnings = [] } = task;
|
|
70
81
|
return cx(styles.header, {
|
|
71
|
-
[styles.success]:
|
|
72
|
-
[styles.warning]:
|
|
73
|
-
[styles.error]:
|
|
82
|
+
[styles.success]: errors?.length === 0 && warnings?.length === 0,
|
|
83
|
+
[styles.warning]: errors?.length === 0 && warnings?.length > 0,
|
|
84
|
+
[styles.error]: errors?.length > 0,
|
|
74
85
|
});
|
|
75
86
|
}
|
|
76
87
|
//# sourceMappingURL=TaskStatus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskStatus.js","sourceRoot":"","sources":["../../../src/components/StatusDialog/TaskStatus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,MAAM,MAAM,yBAAyB,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,SAAS,MAAM,kCAAkC,CAAC;AACzD,OAAO,WAAW,MAAM,oCAAoC,CAAC;AAC7D,OAAO,eAAe,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAM7C,SAAS,aAAa,CAAC,IAAyB;IAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO;QACL,gBAAgB,IAAI,CAAC,oBAAoB,IAAI;QAC7C,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACxF,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,WAAW,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;KACjG;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAE,IAAI,EAAmB;IAClD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAsB,SAAS,CAAC,CAAC;IAC3E,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,WAAW,GAAG,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IAEzF,MAAM,IAAI,GAAG,CAAC,QAAgB,EAAE,EAAE;QAChC,SAAS,CAAC,IAAI,CAAC;YACb,QAAQ;SACT,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,SAAS,CAAC,UAAU,CAAC;YACnB,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,YAAY,EAAE,cAAc;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,SAAS,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACpE,CAAC,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI;QACzB,6BAAK,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC;YACtC,gCACE,SAAS,EAAE,MAAM,CAAC,YAAY,EAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,gBAC1B,WAAW,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE;gBAE/D,6BACE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,WAAW,IAAI,MAAM,CAAC,SAAS,CAAC,EAClE,GAAG,EAAE,eAAe,EACpB,GAAG,EAAC,mBAAmB,GACvB,CACK;YACR,MAAM,EAAE,MAAM,KAAK,CAAC,IAAI,QAAQ,EAAE,MAAM,KAAK,CAAC,IAAI,CACjD,6BAAK,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAC,cAAc,GAAG,CAC1E;YACA,MAAM,EAAE,MAAM,GAAG,CAAC,IAAI,6BAAK,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAC,YAAY,GAAG;YAC5F,6BAAK,SAAS,EAAE,MAAM,CAAC,KAAK,IAAG,IAAI,CAAO;YAC1C,6BAAK,SAAS,EAAE,MAAM,CAAC,OAAO,IAAG,aAAa,CAAC,IAAI,CAAC,CAAO,CACvD;QACL,WAAW,IAAI,CACd;YACE,6BAAK,SAAS,EAAE,MAAM,CAAC,QAAQ;gBAC7B,oBAAC,MAAM,IAAC,OAAO,EAAE,WAAW,mBAAuB,CAC/C;YACN,6BAAK,SAAS,EAAE,MAAM,CAAC,OAAO;gBAC5B,6BAAK,SAAS,EAAE,MAAM,CAAC,KAAK,cAAe;gBAC3C,6BAAK,SAAS,EAAE,MAAM,CAAC,aAAa;oBAClC,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI,iBAAkB;oBAC7C,6BAAK,SAAS,EAAE,MAAM,CAAC,KAAK;wBAC1B,gCAAQ,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IACtE,IAAI,CAAC,SAAS,CACR;wBAET,gCAAQ,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,qBAEjD,CACL,CACF;gBACN,6BAAK,SAAS,EAAE,MAAM,CAAC,aAAa;oBAClC,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI,kBAAmB;oBAC9C,gCAAQ,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IACvE,IAAI,CAAC,UAAU,CACT,CACL;gBACL,MAAM,EAAE,MAAM,GAAG,CAAC,IAAI,CACrB;oBACE,6BAAK,SAAS,EAAE,MAAM,CAAC,KAAK,aAAc;oBAC1C,6BAAK,SAAS,EAAE,MAAM,CAAC,WAAW,IAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,oBAAC,cAAc,IAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,GAAI,CAC3F,CAAC,CACE,CACL,CACJ;gBACA,QAAQ,EAAE,MAAM,GAAG,CAAC,IAAI,CACvB;oBACE,6BAAK,SAAS,EAAE,MAAM,CAAC,KAAK,eAAgB;oBAC5C,6BAAK,SAAS,EAAE,MAAM,CAAC,WAAW,IAC/B,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAChC,oBAAC,cAAc,IAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,GAAI,CAC7F,CAAC,CACE,CACL,CACJ,CACG,CACL,CACJ,CACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAyB;IACnD,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE;QACvB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,KAAK,CAAC;QAC1E,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC;QACxE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC;KACxC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import React from 'react';\nimport type { TaskDescriptionType } from '../CloudpackProvider/useStatusDetails.js';\nimport { TaskResultItem } from './TaskResultItem.js';\nimport styles from './TaskStatus.module.css';\nimport { default as cx } from 'classnames';\nimport ErrorIcon from '../../images/error-24.inline.svg';\nimport SuccessIcon from '../../images/success-24.inline.svg';\nimport ChevronDownIcon from '../../images/chevrondown-20.inline.svg';\nimport { useCloudpack } from '../CloudpackProvider/CloudpackProvider.js';\nimport { Button } from '../Button/Button.js';\n\nexport interface TaskStatusProps {\n task: TaskDescriptionType;\n}\n\nfunction getCompletion(task: TaskDescriptionType) {\n if (task.status === 'pending') {\n return 'Running';\n }\n return [\n `Completed in ${task.durationMilliseconds}ms`,\n task.errors?.length && `${task.errors.length} error${task.errors.length > 1 ? 's' : ''}`,\n task.warnings?.length && `${task.warnings.length} warning${task.warnings.length > 1 ? 's' : ''}`,\n ]\n .filter(Boolean)\n .join(', ');\n}\n\nexport function TaskStatus({ task }: TaskStatusProps) {\n const [isOpen, setIsOpen] = React.useState<boolean | undefined>(undefined);\n const { name, warnings, errors } = task;\n const cloudpack = useCloudpack();\n const showContent = isOpen === true || (isOpen === undefined && task.errors?.length > 0);\n\n const open = (rootPath: string) => {\n cloudpack.open({\n rootPath,\n });\n };\n\n const openPackage = () => {\n cloudpack.openSource({\n rootPath: task.inputPath,\n relativePath: 'package.json',\n });\n };\n\n const restartTask = () => {\n cloudpack.restartTask({ id: task.id, inputPath: task.inputPath });\n };\n\n return (\n <div className={styles.root}>\n <div className={getHeaderClassName(task)}>\n <button\n className={styles.expandButton}\n onClick={() => setIsOpen(!showContent)}\n aria-label={showContent ? `Minimize ${name}` : `Expand ${name}`}\n >\n <img\n className={cx(styles.expandIcon, !showContent && styles.collapsed)}\n src={ChevronDownIcon}\n alt=\"Chevron down icon\"\n />\n </button>\n {errors?.length === 0 && warnings?.length === 0 && (\n <img className={styles.errorIcon} src={SuccessIcon} alt=\"Success icon\" />\n )}\n {errors?.length > 0 && <img className={styles.errorIcon} src={ErrorIcon} alt=\"Error icon\" />}\n <div className={styles.title}>{name}</div>\n <div className={styles.farArea}>{getCompletion(task)}</div>\n </div>\n {showContent && (\n <>\n <div className={styles.commands}>\n <Button onClick={restartTask}>Restart task</Button>\n </div>\n <div className={styles.content}>\n <div className={styles.title}>Details</div>\n <div className={styles.nameValueArea}>\n <div className={styles.name}>Input path</div>\n <div className={styles.value}>\n <button className={styles.linkButton} onClick={() => open(task.inputPath)}>\n {task.inputPath}\n </button>\n\n <button className={styles.linkButton} onClick={openPackage}>\n (Package.json)\n </button>\n </div>\n </div>\n <div className={styles.nameValueArea}>\n <div className={styles.name}>Output path</div>\n <button className={styles.linkButton} onClick={() => open(task.outputPath)}>\n {task.outputPath}\n </button>\n </div>\n {errors?.length > 0 && (\n <>\n <div className={styles.title}>Errors</div>\n <div className={styles.resultItems}>\n {errors.map((error, index) => (\n <TaskResultItem key={index} item={error} projectPath={task.inputPath} index={index + 1} />\n ))}\n </div>\n </>\n )}\n {warnings?.length > 0 && (\n <>\n <div className={styles.title}>Warnings</div>\n <div className={styles.resultItems}>\n {warnings.map((warning, index) => (\n <TaskResultItem key={index} item={warning} projectPath={task.inputPath} index={index + 1} />\n ))}\n </div>\n </>\n )}\n </div>\n </>\n )}\n </div>\n );\n}\n\nfunction getHeaderClassName(task: TaskDescriptionType) {\n return cx(styles.header, {\n [styles.success]: task.errors?.length === 0 && task.warnings?.length === 0,\n [styles.warning]: task.errors?.length === 0 && task.warnings?.length > 0,\n [styles.error]: task.errors?.length > 0,\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TaskStatus.js","sourceRoot":"","sources":["../../../src/components/StatusDialog/TaskStatus.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport type { TaskDescription } from '@ms-cloudpack/api-server/browser';\nimport { TaskResultItem } from './TaskResultItem.js';\nimport styles from './TaskStatus.module.css';\nimport { default as cx } from 'classnames';\nimport ErrorIcon from '../../images/error-24.inline.svg';\nimport SuccessIcon from '../../images/success-24.inline.svg';\nimport ChevronDownIcon from '../../images/chevrondown-20.inline.svg';\nimport { useCloudpack } from '../CloudpackProvider/CloudpackProvider.js';\nimport { Button } from '../Button/Button.js';\n\nexport interface TaskStatusProps {\n task: TaskDescription;\n}\n\nfunction getCompletion(task: TaskDescription) {\n if (task.status === 'pending') {\n return 'Running';\n }\n return [\n `Completed in ${task.durationMilliseconds}ms`,\n task.errors?.length && `${task.errors.length} error${task.errors.length > 1 ? 's' : ''}`,\n task.warnings?.length && `${task.warnings.length} warning${task.warnings.length > 1 ? 's' : ''}`,\n ]\n .filter(Boolean)\n .join(', ');\n}\n\nexport function TaskStatus({ task }: TaskStatusProps) {\n const [isOpen, setIsOpen] = React.useState<boolean | undefined>(undefined);\n const { name, warnings = [], errors = [] } = task;\n const cloudpack = useCloudpack();\n const showContent = isOpen === true || (isOpen === undefined && errors?.length > 0);\n\n const inputPath = task.inputPath;\n\n const open = (rootPath: string) => {\n void cloudpack.openFilePath.mutate({\n rootPath,\n });\n };\n\n const openPackage = () => {\n if (!inputPath) {\n console.error('No input path for task', task);\n return;\n }\n void cloudpack.openCodeEditor.mutate({\n rootPath: inputPath,\n relativePath: 'package.json',\n });\n };\n\n const restartTask = () => {\n if (!inputPath) {\n console.error('No input path for task', task);\n return;\n }\n void cloudpack.restartTask.mutate({ id: task.id, inputPath });\n };\n\n return (\n <div className={styles.root}>\n <div className={getHeaderClassName(task)}>\n <button\n className={styles.expandButton}\n onClick={() => setIsOpen(!showContent)}\n aria-label={showContent ? `Minimize ${name}` : `Expand ${name}`}\n >\n <img\n className={cx(styles.expandIcon, !showContent && styles.collapsed)}\n src={ChevronDownIcon}\n alt=\"Chevron down icon\"\n />\n </button>\n {errors?.length === 0 && warnings?.length === 0 && (\n <img className={styles.errorIcon} src={SuccessIcon} alt=\"Success icon\" />\n )}\n {errors?.length > 0 && <img className={styles.errorIcon} src={ErrorIcon} alt=\"Error icon\" />}\n <div className={styles.title}>{name}</div>\n <div className={styles.farArea}>{getCompletion(task)}</div>\n </div>\n {showContent &&\n (inputPath ? (\n <>\n <div className={styles.commands}>\n <Button onClick={restartTask}>Restart task</Button>\n </div>\n <div className={styles.content}>\n <div className={styles.title}>Details</div>\n <div className={styles.nameValueArea}>\n <div className={styles.name}>Input path</div>\n <div className={styles.value}>\n <button className={styles.linkButton} onClick={() => open(inputPath)}>\n {task.inputPath}\n </button>\n\n <button className={styles.linkButton} onClick={openPackage}>\n (Package.json)\n </button>\n </div>\n </div>\n <div className={styles.nameValueArea}>\n <div className={styles.name}>Output path</div>\n <button className={styles.linkButton} onClick={() => open(inputPath)}>\n {task.outputPath}\n </button>\n </div>\n {errors?.length > 0 && (\n <>\n <div className={styles.title}>Errors</div>\n <div className={styles.resultItems}>\n {errors.map((error, index) => (\n <TaskResultItem key={index} item={error} projectPath={inputPath} index={index + 1} />\n ))}\n </div>\n </>\n )}\n {warnings?.length > 0 && (\n <>\n <div className={styles.title}>Warnings</div>\n <div className={styles.resultItems}>\n {warnings.map((warning, index) => (\n <TaskResultItem key={index} item={warning} projectPath={inputPath} index={index + 1} />\n ))}\n </div>\n </>\n )}\n </div>\n </>\n ) : (\n <div className={styles.content}>No input path found for task. This is a Cloudpack bug. Please report it.</div>\n ))}\n </div>\n );\n}\n\nfunction getHeaderClassName(task: TaskDescription) {\n const { errors = [], warnings = [] } = task;\n return cx(styles.header, {\n [styles.success]: errors?.length === 0 && warnings?.length === 0,\n [styles.warning]: errors?.length === 0 && warnings?.length > 0,\n [styles.error]: errors?.length > 0,\n });\n}\n"]}
|
|
@@ -8,9 +8,9 @@ export function usePageLoadTimeReporter() {
|
|
|
8
8
|
const { getPageLoadTime, getBrowserCacheRatio } = window.__cloudpack;
|
|
9
9
|
const newPageLoadTime = await getPageLoadTime();
|
|
10
10
|
setPageLoadTime(newPageLoadTime);
|
|
11
|
-
cloudpack.reportMetric({ metric: 'PAGE_LOAD_TIME', value: newPageLoadTime });
|
|
11
|
+
await cloudpack.reportMetric.mutate({ metric: 'PAGE_LOAD_TIME', value: newPageLoadTime });
|
|
12
12
|
// Page is loaded, the browser cache ratio can be reported
|
|
13
|
-
cloudpack.reportMetric({ metric: 'BROWSER_CACHE_RATIO', value: getBrowserCacheRatio() });
|
|
13
|
+
await cloudpack.reportMetric.mutate({ metric: 'BROWSER_CACHE_RATIO', value: getBrowserCacheRatio() });
|
|
14
14
|
}
|
|
15
15
|
void reportPageLoadTime();
|
|
16
16
|
}, [cloudpack]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePageLoadTimeReporter.js","sourceRoot":"","sources":["../../src/hooks/usePageLoadTimeReporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,sDAAsD,CAAC;AAEpF,MAAM,UAAU,uBAAuB;IACrC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;IACjE,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,KAAK,UAAU,kBAAkB;YAC/B,MAAM,EAAE,eAAe,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;YAErE,MAAM,eAAe,GAAG,MAAM,eAAe,EAAE,CAAC;YAChD,eAAe,CAAC,eAAe,CAAC,CAAC;YACjC,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"usePageLoadTimeReporter.js","sourceRoot":"","sources":["../../src/hooks/usePageLoadTimeReporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,sDAAsD,CAAC;AAEpF,MAAM,UAAU,uBAAuB;IACrC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;IACjE,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,KAAK,UAAU,kBAAkB;YAC/B,MAAM,EAAE,eAAe,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;YAErE,MAAM,eAAe,GAAG,MAAM,eAAe,EAAE,CAAC;YAChD,eAAe,CAAC,eAAe,CAAC,CAAC;YACjC,MAAM,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;YAE1F,0DAA0D;YAC1D,MAAM,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;QACxG,CAAC;QAED,KAAK,kBAAkB,EAAE,CAAC;IAC5B,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import React from 'react';\nimport { useCloudpack } from '../components/CloudpackProvider/CloudpackProvider.js';\n\nexport function usePageLoadTimeReporter() {\n const [pageLoadTime, setPageLoadTime] = React.useState<number>();\n const cloudpack = useCloudpack();\n\n React.useEffect(() => {\n async function reportPageLoadTime() {\n const { getPageLoadTime, getBrowserCacheRatio } = window.__cloudpack;\n\n const newPageLoadTime = await getPageLoadTime();\n setPageLoadTime(newPageLoadTime);\n await cloudpack.reportMetric.mutate({ metric: 'PAGE_LOAD_TIME', value: newPageLoadTime });\n\n // Page is loaded, the browser cache ratio can be reported\n await cloudpack.reportMetric.mutate({ metric: 'BROWSER_CACHE_RATIO', value: getBrowserCacheRatio() });\n }\n\n void reportPageLoadTime();\n }, [cloudpack]);\n\n return pageLoadTime;\n}\n"]}
|
package/lib/index.js
CHANGED
|
@@ -3,11 +3,31 @@ import ReactDOM from 'react-dom';
|
|
|
3
3
|
import { CloudpackProvider } from './components/CloudpackProvider/CloudpackProvider.js';
|
|
4
4
|
import { StatusOverlay } from './components/StatusOverlay/StatusOverlay.js';
|
|
5
5
|
import { ThemeProvider } from './components/ThemeProvider/ThemeProvider.js';
|
|
6
|
-
import { elementIds } from './constants.js';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
import { cookieNames, elementIds } from './constants.js';
|
|
7
|
+
import { createCloudpackClient, reloadCountSource } from '@ms-cloudpack/api-server/browser';
|
|
8
|
+
import { getCookies } from './components/CloudpackProvider/getCookies.js';
|
|
9
|
+
async function start() {
|
|
10
|
+
const cookies = getCookies();
|
|
11
|
+
const sessionId = cookies[cookieNames.sessionId];
|
|
12
|
+
const apiUrl = cookies[cookieNames.apiUrl];
|
|
13
|
+
const currentSequence = cookies[cookieNames.sessionSequence];
|
|
14
|
+
const client = await createCloudpackClient({ url: apiUrl });
|
|
15
|
+
if (sessionId === (await client.getSessionId.query())) {
|
|
16
|
+
console.log('[Cloudpack] socket opened');
|
|
17
|
+
}
|
|
18
|
+
client.onDataChanged.subscribe(reloadCountSource, {
|
|
19
|
+
onData: (data) => {
|
|
20
|
+
if (Number(data) > Number(currentSequence)) {
|
|
21
|
+
window.location.reload();
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
const rootDiv = document.createElement('div');
|
|
26
|
+
rootDiv.id = elementIds.root;
|
|
27
|
+
ReactDOM.render(React.createElement(ThemeProvider, null,
|
|
28
|
+
React.createElement(CloudpackProvider, { client: client },
|
|
29
|
+
React.createElement(StatusOverlay, null))), rootDiv);
|
|
30
|
+
document.body.appendChild(rootDiv);
|
|
31
|
+
}
|
|
32
|
+
void start();
|
|
13
33
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qDAAqD,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qDAAqD,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAE1E,KAAK,UAAU,KAAK;IAClB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAE7D,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAE5D,IAAI,SAAS,KAAK,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,iBAAiB,EAAE;QAChD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACf,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC3C,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC;IAE7B,QAAQ,CAAC,MAAM,CACb,oBAAC,aAAa;QACZ,oBAAC,iBAAiB,IAAC,MAAM,EAAE,MAAM;YAC/B,oBAAC,aAAa,OAAG,CACC,CACN,EAChB,OAAO,CACR,CAAC;IAEF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,KAAK,EAAE,CAAC","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { CloudpackProvider } from './components/CloudpackProvider/CloudpackProvider.js';\nimport { StatusOverlay } from './components/StatusOverlay/StatusOverlay.js';\nimport { ThemeProvider } from './components/ThemeProvider/ThemeProvider.js';\nimport { cookieNames, elementIds } from './constants.js';\nimport { createCloudpackClient, reloadCountSource } from '@ms-cloudpack/api-server/browser';\nimport { getCookies } from './components/CloudpackProvider/getCookies.js';\n\nasync function start() {\n const cookies = getCookies();\n const sessionId = cookies[cookieNames.sessionId];\n const apiUrl = cookies[cookieNames.apiUrl];\n const currentSequence = cookies[cookieNames.sessionSequence];\n\n const client = await createCloudpackClient({ url: apiUrl });\n\n if (sessionId === (await client.getSessionId.query())) {\n console.log('[Cloudpack] socket opened');\n }\n\n client.onDataChanged.subscribe(reloadCountSource, {\n onData: (data) => {\n if (Number(data) > Number(currentSequence)) {\n window.location.reload();\n }\n },\n });\n\n const rootDiv = document.createElement('div');\n rootDiv.id = elementIds.root;\n\n ReactDOM.render(\n <ThemeProvider>\n <CloudpackProvider client={client}>\n <StatusOverlay />\n </CloudpackProvider>\n </ThemeProvider>,\n rootDiv,\n );\n\n document.body.appendChild(rootDiv);\n}\n\nvoid start();\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ms-cloudpack/overlay",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "The Cloudpack overlay ux.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -28,16 +28,14 @@
|
|
|
28
28
|
"lint": "cloudpack-scripts lint"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@ms-cloudpack/api-server": "^0.
|
|
32
|
-
"@ms-cloudpack/data-bus": "^0.4.2",
|
|
31
|
+
"@ms-cloudpack/api-server": "^0.44.0",
|
|
33
32
|
"@ms-cloudpack/path-string-parsing": "^1.2.2",
|
|
34
33
|
"classnames": "^2.0.0",
|
|
35
34
|
"react": "^17.0.0 || ^18.0.0",
|
|
36
|
-
"react-dom": "^17.0.0 || ^18.0.0"
|
|
37
|
-
"zod": "^3.21.4"
|
|
35
|
+
"react-dom": "^17.0.0 || ^18.0.0"
|
|
38
36
|
},
|
|
39
37
|
"devDependencies": {
|
|
40
|
-
"@ms-cloudpack/common-types": "^0.5.
|
|
38
|
+
"@ms-cloudpack/common-types": "^0.5.2",
|
|
41
39
|
"@ms-cloudpack/eslint-plugin-internal": "^0.0.1",
|
|
42
40
|
"@ms-cloudpack/scripts": "^0.0.1",
|
|
43
41
|
"@types/react": "^17.0.58",
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { type DataBusPath } from '@ms-cloudpack/data-bus';
|
|
2
|
-
import type { AddPackageOverrideInput, OpenCodeEditorInput, OpenFilePathInput, ReportMetricInput, ValidatePackageOverrideInput, ValidatePackageOverrideOutput } from '@ms-cloudpack/api-server/browser';
|
|
3
|
-
import type { z } from 'zod';
|
|
4
|
-
export interface CloudpackClient {
|
|
5
|
-
/**
|
|
6
|
-
* Closes the websocket connection.
|
|
7
|
-
*/
|
|
8
|
-
dispose(): void;
|
|
9
|
-
getValue<TZodData extends z.ZodType>(path: DataBusPath<TZodData>): z.infer<TZodData>;
|
|
10
|
-
/**
|
|
11
|
-
* Creates a subscription to the given path.
|
|
12
|
-
*/
|
|
13
|
-
subscribe<TZodData extends z.ZodType>(path: DataBusPath<TZodData>, callback: (newValue: any, oldValue: any) => void): () => void;
|
|
14
|
-
openSource(options: OpenCodeEditorInput): void;
|
|
15
|
-
open(options: OpenFilePathInput): void;
|
|
16
|
-
editConfig(): void;
|
|
17
|
-
addOverride(options: AddPackageOverrideInput): void;
|
|
18
|
-
validateOverride(options: ValidatePackageOverrideInput): Promise<ValidatePackageOverrideOutput>;
|
|
19
|
-
restartAllTasks(): void;
|
|
20
|
-
restartTask(options: {
|
|
21
|
-
id: string;
|
|
22
|
-
inputPath: string;
|
|
23
|
-
}): void;
|
|
24
|
-
reportMetric(options: ReportMetricInput): void;
|
|
25
|
-
}
|
|
26
|
-
export declare function createCloudpackClient(): CloudpackClient;
|
|
27
|
-
//# sourceMappingURL=createCloudpackClient.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createCloudpackClient.d.ts","sourceRoot":"","sources":["../../../src/components/CloudpackProvider/createCloudpackClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAG7B,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;IAChB,QAAQ,CAAC,QAAQ,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACrF;;OAEG;IACH,SAAS,CAAC,QAAQ,SAAS,CAAC,CAAC,OAAO,EAClC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,EAC3B,QAAQ,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,KAAK,IAAI,GAC/C,MAAM,IAAI,CAAC;IAEd,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC/C,IAAI,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACvC,UAAU,IAAI,IAAI,CAAC;IACnB,WAAW,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACpD,gBAAgB,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAChG,eAAe,IAAI,IAAI,CAAC;IACxB,WAAW,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9D,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAChD;AAED,wBAAgB,qBAAqB,IAAI,eAAe,CAsLvD"}
|