@datalayer/core 1.0.24 → 1.1.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -24
- package/lib/api/constants.d.ts +3 -0
- package/lib/api/constants.js +3 -0
- package/lib/api/index.d.ts +0 -8
- package/lib/api/index.js +0 -8
- package/lib/cli-login.js +167 -0
- package/lib/client/base.d.ts +0 -3
- package/lib/client/base.js +0 -2
- package/lib/client/index.d.ts +10 -98
- package/lib/client/index.js +12 -21
- package/lib/components/avatars/UserAvatar.d.ts +16 -0
- package/lib/components/avatars/UserAvatar.js +47 -0
- package/lib/components/avatars/index.d.ts +1 -0
- package/lib/components/avatars/index.js +1 -0
- package/lib/components/billing/BillableAccountSelect.js +4 -0
- package/lib/components/billing/index.js +4 -0
- package/lib/components/checkout/StripeCheckout.js +48 -2
- package/lib/components/context/index.d.ts +0 -1
- package/lib/components/context/index.js +0 -1
- package/lib/components/display/DisplayHandle.d.ts +12 -0
- package/lib/components/display/DisplayHandle.js +11 -0
- package/lib/components/display/LiveRelativeTime.d.ts +1 -10
- package/lib/components/display/LiveRelativeTime.js +5 -16
- package/lib/components/display/index.d.ts +1 -0
- package/lib/components/display/index.js +1 -0
- package/lib/components/flashes/index.d.ts +0 -1
- package/lib/components/flashes/index.js +0 -1
- package/lib/components/index.d.ts +2 -0
- package/lib/components/index.js +2 -0
- package/lib/components/principal/Principal.d.ts +7 -0
- package/lib/components/principal/Principal.js +153 -16
- package/lib/components/principal/PrincipalAvatar.d.ts +1 -1
- package/lib/components/principal/PrincipalAvatar.js +4 -28
- package/lib/components/principal/PrincipalBadge.js +4 -4
- package/lib/components/principal/PrincipalDetailsOverlay.d.ts +4 -2
- package/lib/components/principal/PrincipalDetailsOverlay.js +27 -7
- package/lib/components/principal/PrincipalSwitcherMenu.js +76 -39
- package/lib/components/progress/index.d.ts +0 -1
- package/lib/components/progress/index.js +0 -1
- package/lib/components/sharing/ShareAccessComponent.d.ts +3 -2
- package/lib/components/sharing/ShareAccessComponent.js +180 -133
- package/lib/components/sharing/SharingEditor.js +4 -0
- package/lib/components/snippets/index.d.ts +1 -1
- package/lib/components/snippets/index.js +1 -1
- package/lib/components/students/StudentResultCircle.d.ts +21 -0
- package/lib/components/students/StudentResultCircle.js +59 -0
- package/lib/components/students/index.d.ts +1 -1
- package/lib/components/students/index.js +1 -1
- package/lib/components/time/LiveRelativeTime.d.ts +14 -0
- package/lib/components/time/LiveRelativeTime.js +43 -0
- package/lib/components/time/index.d.ts +1 -0
- package/lib/components/time/index.js +9 -0
- package/lib/components/timeline/Timeline.d.ts +20 -0
- package/lib/components/timeline/Timeline.js +90 -0
- package/lib/components/timeline/index.d.ts +1 -0
- package/lib/components/timeline/index.js +9 -0
- package/lib/components/tokens/index.d.ts +1 -1
- package/lib/components/tokens/index.js +1 -1
- package/lib/components/toolbars/index.d.ts +1 -3
- package/lib/components/toolbars/index.js +1 -3
- package/lib/hooks/cacheConverters.d.ts +21 -0
- package/lib/hooks/cacheConverters.js +110 -0
- package/lib/hooks/index.d.ts +0 -2
- package/lib/hooks/index.js +0 -2
- package/lib/hooks/useCache.d.ts +65 -36
- package/lib/hooks/useCache.js +424 -65
- package/lib/hooks/useDatalayer.js +3 -1
- package/lib/hooks/useIAM.js +1 -3
- package/lib/hooks/useLocationHandles.d.ts +3 -1
- package/lib/hooks/useLocationHandles.js +2 -1
- package/lib/hooks/usePrincipalStore.d.ts +2 -2
- package/lib/hooks/usePrincipalStore.js +97 -14
- package/lib/hooks/useProjectStore.d.ts +1 -1
- package/lib/hooks/useSelectedPrincipal.js +1 -1
- package/lib/hooks/useUser.js +19 -2
- package/lib/index.d.ts +1 -6
- package/lib/index.js +1 -13
- package/lib/main.js +3 -3
- package/lib/mocks/index.js +1 -1
- package/lib/mocks/models/index.d.ts +0 -1
- package/lib/mocks/models/index.js +0 -1
- package/lib/models/Datasource.d.ts +2 -2
- package/lib/models/IAM.d.ts +1 -1
- package/lib/models/IAMToken.d.ts +1 -1
- package/lib/models/School.d.ts +12 -3
- package/lib/models/Secret.d.ts +2 -2
- package/lib/models/Student.d.ts +13 -3
- package/lib/models/Usage.d.ts +11 -1
- package/lib/models/UserDTO.d.ts +2 -2
- package/lib/models/index.d.ts +0 -30
- package/lib/models/index.js +0 -30
- package/lib/routes/index.d.ts +1 -0
- package/lib/routes/index.js +1 -0
- package/lib/routes/publicPaths.d.ts +23 -0
- package/lib/routes/publicPaths.js +74 -0
- package/lib/state/State.d.ts +0 -12
- package/lib/state/State.js +0 -12
- package/lib/state/substates/CoreState.js +1 -1
- package/lib/state/substates/LayoutState.d.ts +12 -1
- package/lib/state/substates/index.d.ts +0 -7
- package/lib/state/substates/index.js +0 -7
- package/lib/utils/Date.d.ts +7 -0
- package/lib/utils/Date.js +43 -10
- package/lib/utils/Handles.js +3 -1
- package/lib/utils/index.d.ts +1 -1
- package/lib/utils/index.js +1 -1
- package/lib/views/api-keys/APIKeyEdit.d.ts +8 -0
- package/lib/views/{iam-tokens/IAMTokenEdit.js → api-keys/APIKeyEdit.js} +31 -31
- package/lib/views/api-keys/APIKeyNew.d.ts +8 -0
- package/lib/views/api-keys/APIKeyNew.js +143 -0
- package/lib/views/api-keys/APIKeys.d.ts +12 -0
- package/lib/views/api-keys/APIKeys.js +128 -0
- package/lib/views/api-keys/APIKeysStandalone.d.ts +2 -0
- package/lib/views/api-keys/APIKeysStandalone.js +117 -0
- package/lib/views/api-keys/index.d.ts +3 -0
- package/lib/{mocks/jupyter → views/api-keys}/index.js +3 -1
- package/lib/views/datasources/DatasourceDetail.d.ts +1 -1
- package/lib/views/datasources/DatasourceNew.d.ts +1 -1
- package/lib/views/datasources/Datasources.d.ts +1 -1
- package/lib/views/datasources/Datasources.js +12 -3
- package/lib/views/iam/SignInSimple.d.ts +37 -1
- package/lib/views/iam/SignInSimple.js +110 -12
- package/package.json +5 -3
- package/lib/App.css +0 -47
- package/lib/App.d.ts +0 -3
- package/lib/App.js +0 -21
- package/lib/api/runtimes/checkpoints.d.ts +0 -122
- package/lib/api/runtimes/checkpoints.js +0 -118
- package/lib/api/runtimes/environments.d.ts +0 -9
- package/lib/api/runtimes/environments.js +0 -29
- package/lib/api/runtimes/healthz.d.ts +0 -15
- package/lib/api/runtimes/healthz.js +0 -44
- package/lib/api/runtimes/index.d.ts +0 -12
- package/lib/api/runtimes/index.js +0 -16
- package/lib/api/runtimes/runtimes.d.ts +0 -138
- package/lib/api/runtimes/runtimes.js +0 -230
- package/lib/api/runtimes/snapshots.d.ts +0 -38
- package/lib/api/runtimes/snapshots.js +0 -82
- package/lib/api/spacer/documents.d.ts +0 -12
- package/lib/api/spacer/documents.js +0 -43
- package/lib/api/spacer/healthz.d.ts +0 -15
- package/lib/api/spacer/healthz.js +0 -44
- package/lib/api/spacer/index.d.ts +0 -15
- package/lib/api/spacer/index.js +0 -19
- package/lib/api/spacer/items.d.ts +0 -25
- package/lib/api/spacer/items.js +0 -55
- package/lib/api/spacer/lexicals.d.ts +0 -34
- package/lib/api/spacer/lexicals.js +0 -89
- package/lib/api/spacer/notebooks.d.ts +0 -34
- package/lib/api/spacer/notebooks.js +0 -89
- package/lib/api/spacer/spaces.d.ts +0 -84
- package/lib/api/spacer/spaces.js +0 -170
- package/lib/api/spacer/users.d.ts +0 -9
- package/lib/api/spacer/users.js +0 -29
- package/lib/client/mixins/RuntimesMixin.d.ts +0 -93
- package/lib/client/mixins/RuntimesMixin.js +0 -229
- package/lib/client/mixins/SpacerMixin.d.ts +0 -210
- package/lib/client/mixins/SpacerMixin.js +0 -615
- package/lib/client/utils/spacerUtils.d.ts +0 -18
- package/lib/client/utils/spacerUtils.js +0 -32
- package/lib/collaboration/DatalayerCollaboration.d.ts +0 -13
- package/lib/collaboration/DatalayerCollaboration.js +0 -28
- package/lib/collaboration/DatalayerCollaborationProvider.d.ts +0 -60
- package/lib/collaboration/DatalayerCollaborationProvider.js +0 -163
- package/lib/collaboration/index.d.ts +0 -2
- package/lib/collaboration/index.js +0 -6
- package/lib/components/context/SpaceSelect.d.ts +0 -2
- package/lib/components/context/SpaceSelect.js +0 -42
- package/lib/components/flashes/FlashDisclaimer.d.ts +0 -2
- package/lib/components/flashes/FlashDisclaimer.js +0 -17
- package/lib/components/icons/ArtifactIcon.d.ts +0 -10
- package/lib/components/icons/ArtifactIcon.js +0 -58
- package/lib/components/icons/index.d.ts +0 -1
- package/lib/components/icons/index.js +0 -5
- package/lib/components/nbgrader/NbGradesDetails.d.ts +0 -5
- package/lib/components/nbgrader/NbGradesDetails.js +0 -14
- package/lib/components/nbgrader/index.d.ts +0 -1
- package/lib/components/nbgrader/index.js +0 -5
- package/lib/components/progress/CreditsIndicator.d.ts +0 -33
- package/lib/components/progress/CreditsIndicator.js +0 -23
- package/lib/components/runtimes/RuntimeCellVariables.d.ts +0 -39
- package/lib/components/runtimes/RuntimeCellVariables.js +0 -172
- package/lib/components/runtimes/RuntimeCellVariablesDialog.d.ts +0 -37
- package/lib/components/runtimes/RuntimeCellVariablesDialog.js +0 -101
- package/lib/components/runtimes/RuntimeLauncherDialog.d.ts +0 -57
- package/lib/components/runtimes/RuntimeLauncherDialog.js +0 -275
- package/lib/components/runtimes/RuntimePickerBase.d.ts +0 -69
- package/lib/components/runtimes/RuntimePickerBase.js +0 -122
- package/lib/components/runtimes/RuntimePickerCell.d.ts +0 -34
- package/lib/components/runtimes/RuntimePickerCell.js +0 -104
- package/lib/components/runtimes/RuntimePickerNotebook.d.ts +0 -42
- package/lib/components/runtimes/RuntimePickerNotebook.js +0 -232
- package/lib/components/runtimes/RuntimeReservationControl.d.ts +0 -47
- package/lib/components/runtimes/RuntimeReservationControl.js +0 -42
- package/lib/components/runtimes/RuntimeSimplePicker.d.ts +0 -38
- package/lib/components/runtimes/RuntimeSimplePicker.js +0 -155
- package/lib/components/runtimes/RuntimeTransfer.d.ts +0 -16
- package/lib/components/runtimes/RuntimeTransfer.js +0 -5
- package/lib/components/runtimes/RuntimeUtils.d.ts +0 -17
- package/lib/components/runtimes/RuntimeUtils.js +0 -178
- package/lib/components/runtimes/RuntimeVariables.d.ts +0 -38
- package/lib/components/runtimes/RuntimeVariables.js +0 -75
- package/lib/components/runtimes/index.d.ts +0 -11
- package/lib/components/runtimes/index.js +0 -15
- package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +0 -33
- package/lib/components/snapshots/SandboxSnapshotMenu.js +0 -169
- package/lib/components/snapshots/index.d.ts +0 -1
- package/lib/components/snapshots/index.js +0 -5
- package/lib/components/snippets/SnippetDialog.d.ts +0 -42
- package/lib/components/snippets/SnippetDialog.js +0 -42
- package/lib/components/students/StudentItemStatus.d.ts +0 -7
- package/lib/components/students/StudentItemStatus.js +0 -66
- package/lib/components/tokens/SpaceVariantToken.d.ts +0 -5
- package/lib/components/tokens/SpaceVariantToken.js +0 -23
- package/lib/components/toolbars/AssignmentEditorToolbar.d.ts +0 -4
- package/lib/components/toolbars/AssignmentEditorToolbar.js +0 -18
- package/lib/components/toolbars/DocumentEditorToolbar.d.ts +0 -2
- package/lib/components/toolbars/DocumentEditorToolbar.js +0 -12
- package/lib/components/toolbars/NotebookEditorToolbar.d.ts +0 -29
- package/lib/components/toolbars/NotebookEditorToolbar.js +0 -30
- package/lib/examples/CellExample.d.ts +0 -6
- package/lib/examples/CellExample.js +0 -20
- package/lib/examples/NotebookExample.d.ts +0 -6
- package/lib/examples/NotebookExample.js +0 -19
- package/lib/examples/lexical-theme.css +0 -436
- package/lib/examples/notebooks/IPyWidgetsExample.ipynb.json +0 -101
- package/lib/examples/notebooks/IPyWidgetsExampleWithState.ipynb.json +0 -112
- package/lib/examples/notebooks/Lite.ipynb.json +0 -128
- package/lib/examples/notebooks/Matplotlib.ipynb.json +0 -137
- package/lib/examples/notebooks/NotebookExample1.ipynb.json +0 -126
- package/lib/examples/notebooks/NotebookExample2.ipynb.json +0 -48
- package/lib/examples/notebooks/NotebookOutputs.ipynb.json +0 -49
- package/lib/examples/notebooks/NotebookToCExample.ipynb.json +0 -102
- package/lib/examples/notebooks/PyGWalker.ipynb.json +0 -55
- package/lib/hooks/useCellOutputshot.d.ts +0 -4
- package/lib/hooks/useCellOutputshot.js +0 -25
- package/lib/hooks/useProjects.d.ts +0 -628
- package/lib/hooks/useProjects.js +0 -190
- package/lib/hooks/useRuntimes.d.ts +0 -5
- package/lib/hooks/useRuntimes.js +0 -34
- package/lib/mocks/models/CourseMock.d.ts +0 -6
- package/lib/mocks/models/CourseMock.js +0 -29
- package/lib/mocks/models/SpaceMock.d.ts +0 -6
- package/lib/mocks/models/SpaceMock.js +0 -25
- package/lib/models/Assignment.d.ts +0 -7
- package/lib/models/Assignment.js +0 -5
- package/lib/models/Cell.d.ts +0 -8
- package/lib/models/Cell.js +0 -5
- package/lib/models/CodeBlock.d.ts +0 -10
- package/lib/models/CodeBlock.js +0 -5
- package/lib/models/CodeSandboxSnapshot.d.ts +0 -92
- package/lib/models/CodeSandboxSnapshot.js +0 -13
- package/lib/models/CodeSandboxSnapshotDTO.d.ts +0 -173
- package/lib/models/CodeSandboxSnapshotDTO.js +0 -139
- package/lib/models/CodefeedBlocks.d.ts +0 -7
- package/lib/models/CodefeedBlocks.js +0 -5
- package/lib/models/Content.d.ts +0 -5
- package/lib/models/Content.js +0 -5
- package/lib/models/Course.d.ts +0 -17
- package/lib/models/Course.js +0 -5
- package/lib/models/Dataset.d.ts +0 -16
- package/lib/models/Dataset.js +0 -5
- package/lib/models/Document.d.ts +0 -8
- package/lib/models/Document.js +0 -5
- package/lib/models/Environment.d.ts +0 -86
- package/lib/models/Environment.js +0 -5
- package/lib/models/EnvironmentDTO.d.ts +0 -125
- package/lib/models/EnvironmentDTO.js +0 -88
- package/lib/models/Exercise.d.ts +0 -16
- package/lib/models/Exercise.js +0 -5
- package/lib/models/Item.d.ts +0 -20
- package/lib/models/Item.js +0 -5
- package/lib/models/ItemDTO.d.ts +0 -74
- package/lib/models/ItemDTO.js +0 -186
- package/lib/models/ItemType.d.ts +0 -2
- package/lib/models/ItemType.js +0 -5
- package/lib/models/Lesson.d.ts +0 -5
- package/lib/models/Lesson.js +0 -5
- package/lib/models/LexicalDTO.d.ts +0 -155
- package/lib/models/LexicalDTO.js +0 -157
- package/lib/models/Library.d.ts +0 -10
- package/lib/models/Library.js +0 -5
- package/lib/models/Notebook.d.ts +0 -11
- package/lib/models/Notebook.js +0 -5
- package/lib/models/NotebookDTO.d.ts +0 -96
- package/lib/models/NotebookDTO.js +0 -153
- package/lib/models/Page.d.ts +0 -41
- package/lib/models/Page.js +0 -25
- package/lib/models/PageTag.d.ts +0 -19
- package/lib/models/PageTag.js +0 -94
- package/lib/models/ProjectDTO.d.ts +0 -89
- package/lib/models/ProjectDTO.js +0 -131
- package/lib/models/Runtime.d.ts +0 -123
- package/lib/models/Runtime.js +0 -18
- package/lib/models/RuntimeDTO.d.ts +0 -191
- package/lib/models/RuntimeDTO.js +0 -204
- package/lib/models/Space.d.ts +0 -35
- package/lib/models/Space.js +0 -66
- package/lib/models/SpaceDTO.d.ts +0 -334
- package/lib/models/SpaceDTO.js +0 -244
- package/lib/models/SpaceItem.d.ts +0 -10
- package/lib/models/SpaceItem.js +0 -5
- package/lib/models/SpaceMember.d.ts +0 -6
- package/lib/models/SpaceMember.js +0 -5
- package/lib/models/StudentItem.d.ts +0 -21
- package/lib/models/StudentItem.js +0 -5
- package/lib/services/DatalayerServiceManager.d.ts +0 -22
- package/lib/services/DatalayerServiceManager.js +0 -69
- package/lib/services/index.d.ts +0 -4
- package/lib/services/index.js +0 -7
- package/lib/services/reconnectToRuntime.d.ts +0 -32
- package/lib/services/reconnectToRuntime.js +0 -59
- package/lib/state/substates/CellState.d.ts +0 -12
- package/lib/state/substates/CellState.js +0 -22
- package/lib/state/substates/DocumentState.d.ts +0 -10
- package/lib/state/substates/DocumentState.js +0 -14
- package/lib/state/substates/GradeState.d.ts +0 -10
- package/lib/state/substates/GradeState.js +0 -14
- package/lib/state/substates/JupyterLabState.d.ts +0 -16
- package/lib/state/substates/JupyterLabState.js +0 -17
- package/lib/state/substates/NbformatState.d.ts +0 -13
- package/lib/state/substates/NbformatState.js +0 -16
- package/lib/state/substates/RuntimesState.d.ts +0 -79
- package/lib/state/substates/RuntimesState.js +0 -180
- package/lib/state/substates/SpaceState.d.ts +0 -11
- package/lib/state/substates/SpaceState.js +0 -16
- package/lib/stateful/index.d.ts +0 -2
- package/lib/stateful/index.js +0 -6
- package/lib/stateful/jupyter/exec/Python.d.ts +0 -5
- package/lib/stateful/jupyter/exec/Python.js +0 -100
- package/lib/stateful/jupyter/exec/Snippets.d.ts +0 -105
- package/lib/stateful/jupyter/exec/Snippets.js +0 -101
- package/lib/stateful/jupyter/exec/index.d.ts +0 -2
- package/lib/stateful/jupyter/exec/index.js +0 -6
- package/lib/stateful/jupyter/index.d.ts +0 -2
- package/lib/stateful/jupyter/index.js +0 -6
- package/lib/stateful/jupyter/kernelsHandler.d.ts +0 -8
- package/lib/stateful/jupyter/kernelsHandler.js +0 -39
- package/lib/stateful/runtimes/actions.d.ts +0 -102
- package/lib/stateful/runtimes/actions.js +0 -249
- package/lib/stateful/runtimes/apis.d.ts +0 -273
- package/lib/stateful/runtimes/apis.js +0 -5
- package/lib/stateful/runtimes/index.d.ts +0 -5
- package/lib/stateful/runtimes/index.js +0 -9
- package/lib/stateful/runtimes/settings.d.ts +0 -15
- package/lib/stateful/runtimes/settings.js +0 -31
- package/lib/stateful/runtimes/snapshots.d.ts +0 -25
- package/lib/stateful/runtimes/snapshots.js +0 -150
- package/lib/stateful/runtimes/utils.d.ts +0 -7
- package/lib/stateful/runtimes/utils.js +0 -14
- package/lib/utils/Cells.d.ts +0 -2
- package/lib/utils/Cells.js +0 -28
- package/lib/views/iam-tokens/IAMTokenEdit.d.ts +0 -6
- package/lib/views/iam-tokens/IAMTokenNew.d.ts +0 -8
- package/lib/views/iam-tokens/IAMTokenNew.js +0 -118
- package/lib/views/iam-tokens/IAMTokens.d.ts +0 -12
- package/lib/views/iam-tokens/IAMTokens.js +0 -87
- package/lib/views/iam-tokens/Tokens.d.ts +0 -2
- package/lib/views/iam-tokens/Tokens.js +0 -85
- package/lib/views/iam-tokens/index.d.ts +0 -3
- package/lib/views/iam-tokens/index.js +0 -7
- /package/lib/{mocks/jupyter/index.d.ts → cli-login.d.ts} +0 -0
- /package/lib/utils/{logger.d.ts → Logger.d.ts} +0 -0
- /package/lib/utils/{logger.js → Logger.js} +0 -0
package/lib/models/index.js
CHANGED
|
@@ -32,28 +32,17 @@
|
|
|
32
32
|
*
|
|
33
33
|
* @module models
|
|
34
34
|
*/
|
|
35
|
-
export * from './Assignment.js';
|
|
36
35
|
export * from './Base.js';
|
|
37
|
-
export * from './Cell.js';
|
|
38
|
-
export * from './CodeBlock.js';
|
|
39
|
-
export * from './CodefeedBlocks.js';
|
|
40
36
|
export * from './Common.js';
|
|
41
37
|
export * from './Contact.js';
|
|
42
38
|
export * from './ContactEvent.js';
|
|
43
39
|
export * from './ContactIAMProvider.js';
|
|
44
40
|
export * from './ContactTags.js';
|
|
45
|
-
export * from './Content.js';
|
|
46
|
-
export * from './Course.js';
|
|
47
41
|
export * from './Credits.js';
|
|
48
42
|
export * from './CreditsDTO.js';
|
|
49
|
-
export * from './Dataset.js';
|
|
50
43
|
export * from './Datasource.js';
|
|
51
44
|
export * from './Dean.js';
|
|
52
|
-
export * from './Document.js';
|
|
53
|
-
export * from './Environment.js';
|
|
54
|
-
export * from './EnvironmentDTO.js';
|
|
55
45
|
export * from './Errors.js';
|
|
56
|
-
export * from './Exercise.js';
|
|
57
46
|
export * from './GrowthKPI.js';
|
|
58
47
|
export * from './IAM.js';
|
|
59
48
|
export * from './IAMProviderLinked.js';
|
|
@@ -64,38 +53,19 @@ export * from './IAMToken.js';
|
|
|
64
53
|
export * from './Inbound.js';
|
|
65
54
|
export * from './Instructor.js';
|
|
66
55
|
export * from './Invite.js';
|
|
67
|
-
export * from './Item.js';
|
|
68
|
-
export * from './ItemDTO.js';
|
|
69
|
-
export * from './ItemType.js';
|
|
70
56
|
export * from './LandingRoles.js';
|
|
71
|
-
export * from './Lesson.js';
|
|
72
|
-
export * from './LexicalDTO.js';
|
|
73
|
-
export * from './Library.js';
|
|
74
57
|
export * from './Member.js';
|
|
75
|
-
export * from './Notebook.js';
|
|
76
|
-
export * from './NotebookDTO.js';
|
|
77
58
|
export * from './Organization.js';
|
|
78
59
|
export * from './OrganizationMember.js';
|
|
79
60
|
export * from './Outbound.js';
|
|
80
|
-
export * from './Page.js';
|
|
81
|
-
export * from './PageTag.js';
|
|
82
61
|
export * from './Profile.js';
|
|
83
62
|
export * from './Role.js';
|
|
84
63
|
export * from './RolesOrganization.js';
|
|
85
64
|
export * from './RolesPlatform.js';
|
|
86
65
|
export * from './RolesTeam.js';
|
|
87
|
-
export * from './Runtime.js';
|
|
88
|
-
export * from './RuntimeDTO.js';
|
|
89
|
-
export * from './CodeSandboxSnapshot.js';
|
|
90
|
-
export * from './CodeSandboxSnapshotDTO.js';
|
|
91
66
|
export * from './School.js';
|
|
92
67
|
export * from './Secret.js';
|
|
93
|
-
export * from './Space.js';
|
|
94
|
-
export * from './SpaceDTO.js';
|
|
95
|
-
export * from './SpaceItem.js';
|
|
96
|
-
export * from './SpaceMember.js';
|
|
97
68
|
export * from './Student.js';
|
|
98
|
-
export * from './StudentItem.js';
|
|
99
69
|
export * from './Survey.js';
|
|
100
70
|
export * from './Team.js';
|
|
101
71
|
export * from './TeamMember.js';
|
package/lib/routes/index.d.ts
CHANGED
package/lib/routes/index.js
CHANGED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical, single source of truth for the public route prefixes that
|
|
3
|
+
* anonymous (logged-out) users are allowed to view.
|
|
4
|
+
*
|
|
5
|
+
* This list is shared across packages so the various auth gates stay in sync:
|
|
6
|
+
* - `useUser` (core) must NOT force a navigation to the login page on these.
|
|
7
|
+
* - The application router uses it to decide whether a route requires auth.
|
|
8
|
+
*
|
|
9
|
+
* Keep the entries as normalized prefixes (lowercase, no trailing slash).
|
|
10
|
+
*/
|
|
11
|
+
export declare const PUBLIC_PATH_PREFIXES: readonly string[];
|
|
12
|
+
/**
|
|
13
|
+
* Normalize a pathname for prefix matching: strip the query string and hash,
|
|
14
|
+
* trim surrounding whitespace, lowercase, and remove any trailing slash.
|
|
15
|
+
* Always returns a leading-slash path (defaults to '/').
|
|
16
|
+
*/
|
|
17
|
+
export declare const normalizePathname: (pathname: string) => string;
|
|
18
|
+
/**
|
|
19
|
+
* Whether the given pathname is under one of the public path prefixes and is
|
|
20
|
+
* therefore viewable by anonymous users without an authentication redirect.
|
|
21
|
+
*/
|
|
22
|
+
export declare const isPublicPath: (pathname: string) => boolean;
|
|
23
|
+
export default isPublicPath;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Canonical, single source of truth for the public route prefixes that
|
|
7
|
+
* anonymous (logged-out) users are allowed to view.
|
|
8
|
+
*
|
|
9
|
+
* This list is shared across packages so the various auth gates stay in sync:
|
|
10
|
+
* - `useUser` (core) must NOT force a navigation to the login page on these.
|
|
11
|
+
* - The application router uses it to decide whether a route requires auth.
|
|
12
|
+
*
|
|
13
|
+
* Keep the entries as normalized prefixes (lowercase, no trailing slash).
|
|
14
|
+
*/
|
|
15
|
+
export const PUBLIC_PATH_PREFIXES = [
|
|
16
|
+
'/about',
|
|
17
|
+
'/agents',
|
|
18
|
+
'/agentspecs',
|
|
19
|
+
'/blog',
|
|
20
|
+
'/careers',
|
|
21
|
+
'/community',
|
|
22
|
+
'/compare',
|
|
23
|
+
'/connect',
|
|
24
|
+
'/contact',
|
|
25
|
+
'/dataliens',
|
|
26
|
+
'/docs',
|
|
27
|
+
'/events',
|
|
28
|
+
'/features',
|
|
29
|
+
'/integrations',
|
|
30
|
+
'/join/confirm/user',
|
|
31
|
+
'/library',
|
|
32
|
+
'/outbounds/contacts/unsubscribe',
|
|
33
|
+
'/outbounds/invites/pages',
|
|
34
|
+
'/outbounds/invites/unsubscribe',
|
|
35
|
+
'/outbounds/users/unsubscribe',
|
|
36
|
+
'/partners',
|
|
37
|
+
'/password',
|
|
38
|
+
'/pricing',
|
|
39
|
+
'/privacy',
|
|
40
|
+
'/public',
|
|
41
|
+
'/releases',
|
|
42
|
+
'/reports',
|
|
43
|
+
'/research',
|
|
44
|
+
'/search',
|
|
45
|
+
'/settings/agentspecs',
|
|
46
|
+
'/signup/confirm/user',
|
|
47
|
+
'/support',
|
|
48
|
+
'/team',
|
|
49
|
+
'/terms',
|
|
50
|
+
'/testimonials',
|
|
51
|
+
'/trust',
|
|
52
|
+
'/tutorials',
|
|
53
|
+
'/usecases',
|
|
54
|
+
'/use-cases',
|
|
55
|
+
];
|
|
56
|
+
/**
|
|
57
|
+
* Normalize a pathname for prefix matching: strip the query string and hash,
|
|
58
|
+
* trim surrounding whitespace, lowercase, and remove any trailing slash.
|
|
59
|
+
* Always returns a leading-slash path (defaults to '/').
|
|
60
|
+
*/
|
|
61
|
+
export const normalizePathname = (pathname) => {
|
|
62
|
+
const path = (pathname || '').split('?')[0]?.split('#')[0] || '/';
|
|
63
|
+
const normalized = path.trim().toLowerCase().replace(/\/+$/, '');
|
|
64
|
+
return normalized || '/';
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Whether the given pathname is under one of the public path prefixes and is
|
|
68
|
+
* therefore viewable by anonymous users without an authentication redirect.
|
|
69
|
+
*/
|
|
70
|
+
export const isPublicPath = (pathname) => {
|
|
71
|
+
const normalized = normalizePathname(pathname);
|
|
72
|
+
return PUBLIC_PATH_PREFIXES.some(prefix => normalized === prefix || normalized.startsWith(`${prefix}/`));
|
|
73
|
+
};
|
|
74
|
+
export default isPublicPath;
|
package/lib/state/State.d.ts
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
import { coreStore } from './substates/CoreState';
|
|
2
|
-
import { cellStore } from './substates/CellState';
|
|
3
|
-
import { documentStore } from './substates/DocumentState';
|
|
4
|
-
import { gradeStore } from './substates/GradeState';
|
|
5
2
|
import { iamStore } from './substates/IAMState';
|
|
6
|
-
import { runtimesStore } from './substates/RuntimesState';
|
|
7
3
|
import { layoutStore } from './substates/LayoutState';
|
|
8
|
-
import { nbformatStore } from './substates/NbformatState';
|
|
9
4
|
import { organizationStore } from './substates/OrganizationState';
|
|
10
|
-
import { spaceStore } from './substates/SpaceState';
|
|
11
5
|
import { surveysStore } from './substates/SurveysState';
|
|
12
6
|
import { teamStore } from './substates/TeamState';
|
|
13
7
|
export type DatalayerRunState = {
|
|
@@ -15,15 +9,9 @@ export type DatalayerRunState = {
|
|
|
15
9
|
setVersion: (version: string) => void;
|
|
16
10
|
isDev: boolean;
|
|
17
11
|
core: typeof coreStore.getState;
|
|
18
|
-
cell: typeof cellStore.getState;
|
|
19
|
-
document: typeof documentStore.getState;
|
|
20
|
-
grade: typeof gradeStore.getState;
|
|
21
12
|
iam: typeof iamStore.getState;
|
|
22
|
-
runtimes: typeof runtimesStore.getState;
|
|
23
13
|
layout: typeof layoutStore.getState;
|
|
24
|
-
nbformat: typeof nbformatStore.getState;
|
|
25
14
|
organization: typeof organizationStore.getState;
|
|
26
|
-
space: typeof spaceStore.getState;
|
|
27
15
|
success: typeof surveysStore.getState;
|
|
28
16
|
team: typeof teamStore.getState;
|
|
29
17
|
};
|
package/lib/state/State.js
CHANGED
|
@@ -5,15 +5,9 @@
|
|
|
5
5
|
import { createStore } from 'zustand/vanilla';
|
|
6
6
|
import { useStore } from 'zustand';
|
|
7
7
|
import { coreStore } from './substates/CoreState.js';
|
|
8
|
-
import { cellStore } from './substates/CellState.js';
|
|
9
|
-
import { documentStore } from './substates/DocumentState.js';
|
|
10
|
-
import { gradeStore } from './substates/GradeState.js';
|
|
11
8
|
import { iamStore } from './substates/IAMState.js';
|
|
12
|
-
import { runtimesStore } from './substates/RuntimesState.js';
|
|
13
9
|
import { layoutStore } from './substates/LayoutState.js';
|
|
14
|
-
import { nbformatStore } from './substates/NbformatState.js';
|
|
15
10
|
import { organizationStore } from './substates/OrganizationState.js';
|
|
16
|
-
import { spaceStore } from './substates/SpaceState.js';
|
|
17
11
|
import { surveysStore } from './substates/SurveysState.js';
|
|
18
12
|
import { teamStore } from './substates/TeamState.js';
|
|
19
13
|
import { isDevDeployment } from '../utils/index.js';
|
|
@@ -26,15 +20,9 @@ export const runStore = createStore((set, get) => ({
|
|
|
26
20
|
},
|
|
27
21
|
isDev: isDevDeployment(),
|
|
28
22
|
core: coreStore.getState,
|
|
29
|
-
cell: cellStore.getState,
|
|
30
|
-
document: documentStore.getState,
|
|
31
|
-
grade: gradeStore.getState,
|
|
32
23
|
iam: iamStore.getState,
|
|
33
|
-
runtimes: runtimesStore.getState,
|
|
34
24
|
layout: layoutStore.getState,
|
|
35
|
-
nbformat: nbformatStore.getState,
|
|
36
25
|
organization: organizationStore.getState,
|
|
37
|
-
space: spaceStore.getState,
|
|
38
26
|
success: surveysStore.getState,
|
|
39
27
|
team: teamStore.getState,
|
|
40
28
|
}));
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { createStore } from 'zustand/vanilla';
|
|
6
6
|
import { useStore } from 'zustand';
|
|
7
|
-
import { configLogger } from '../../utils/
|
|
7
|
+
import { configLogger } from '../../utils/Logger.js';
|
|
8
8
|
let loadConfigurationFromServer = true;
|
|
9
9
|
let initialConfiguration = {
|
|
10
10
|
runUrl: 'https://prod1.datalayer.run',
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import { ReactPortal } from 'react';
|
|
2
|
-
import { IAnyOrganization,
|
|
2
|
+
import { IAnyOrganization, IAnyTeam } from '../../models';
|
|
3
|
+
/**
|
|
4
|
+
* Structural placeholder for a space in the layout state. The concrete space
|
|
5
|
+
* models live in the runtime/content package (`@datalayer/agent-runtimes`);
|
|
6
|
+
* the core layout store keeps them loosely typed to avoid depending on the
|
|
7
|
+
* content models.
|
|
8
|
+
*/
|
|
9
|
+
type IAnySpace = Record<string, any>;
|
|
10
|
+
/**
|
|
11
|
+
* Structural placeholder for a space item in the layout state. See IAnySpace.
|
|
12
|
+
*/
|
|
13
|
+
type ISpaceItem = Record<string, any>;
|
|
3
14
|
export type BannerDisplayVariant = 'danger' | 'info' | 'success' | 'warning';
|
|
4
15
|
export type LeftSidebarVariant = 'codefeed' | 'course' | 'empty' | 'guess-account' | 'guess-space' | 'guess-spaces' | 'organization' | 'organization-space' | 'organization-spaces' | 'organizations' | 'public' | 'unchanged' | 'user' | 'user-space' | 'user-spaces';
|
|
5
16
|
export type BackdropDisplay = {
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
export * from './CellState';
|
|
2
1
|
export * from './CoreState';
|
|
3
2
|
export * from './DatasourceState';
|
|
4
|
-
export * from './DocumentState';
|
|
5
|
-
export * from './GradeState';
|
|
6
3
|
export * from './IAMState';
|
|
7
|
-
export * from './JupyterLabState';
|
|
8
4
|
export * from './LayoutState';
|
|
9
|
-
export * from './NbformatState';
|
|
10
5
|
export * from './OrganizationState';
|
|
11
|
-
export * from './RuntimesState';
|
|
12
|
-
export * from './SpaceState';
|
|
13
6
|
export * from './SurveysState';
|
|
14
7
|
export * from './TeamState';
|
|
@@ -2,17 +2,10 @@
|
|
|
2
2
|
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
3
|
* Distributed under the terms of the Modified BSD License.
|
|
4
4
|
*/
|
|
5
|
-
export * from './CellState.js';
|
|
6
5
|
export * from './CoreState.js';
|
|
7
6
|
export * from './DatasourceState.js';
|
|
8
|
-
export * from './DocumentState.js';
|
|
9
|
-
export * from './GradeState.js';
|
|
10
7
|
export * from './IAMState.js';
|
|
11
|
-
export * from './JupyterLabState.js';
|
|
12
8
|
export * from './LayoutState.js';
|
|
13
|
-
export * from './NbformatState.js';
|
|
14
9
|
export * from './OrganizationState.js';
|
|
15
|
-
export * from './RuntimesState.js';
|
|
16
|
-
export * from './SpaceState.js';
|
|
17
10
|
export * from './SurveysState.js';
|
|
18
11
|
export * from './TeamState.js';
|
package/lib/utils/Date.d.ts
CHANGED
|
@@ -6,6 +6,13 @@ export declare const timeSince: (date: Date) => string;
|
|
|
6
6
|
* Examples: "just now", "15m ago", "3h ago", "2d ago", "4w ago", "1y ago".
|
|
7
7
|
*/
|
|
8
8
|
export declare const formatRelativeTime: (value?: Date | string | number, now?: Date) => string | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Build a detailed datetime string suitable for tooltips.
|
|
11
|
+
*
|
|
12
|
+
* Example:
|
|
13
|
+
* "2026-06-08T16:15:32.531Z • Jun 8, 2026, 6:15:32 PM CEST (Europe/Paris)"
|
|
14
|
+
*/
|
|
15
|
+
export declare const formatDateTimeDetails: (value?: Date | string | number) => string | undefined;
|
|
9
16
|
/**
|
|
10
17
|
* Format a duration in milliseconds into a human-readable string.
|
|
11
18
|
*
|
package/lib/utils/Date.js
CHANGED
|
@@ -76,24 +76,57 @@ export const formatRelativeTime = (value, now = new Date()) => {
|
|
|
76
76
|
if (Number.isNaN(ts)) {
|
|
77
77
|
return typeof value === 'string' ? value : undefined;
|
|
78
78
|
}
|
|
79
|
-
const diffMs =
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
79
|
+
const diffMs = ts - now.getTime();
|
|
80
|
+
const inFuture = diffMs > 0;
|
|
81
|
+
const absSeconds = Math.floor(Math.abs(diffMs) / 1000);
|
|
82
|
+
if (absSeconds < 30)
|
|
83
|
+
return inFuture ? 'in a few seconds' : 'just now';
|
|
84
|
+
const withDirection = (value, unit) => {
|
|
85
|
+
return inFuture ? `in ${value}${unit}` : `${value}${unit} ago`;
|
|
86
|
+
};
|
|
87
|
+
if (absSeconds < 60)
|
|
88
|
+
return withDirection(absSeconds, 's');
|
|
89
|
+
const minutes = Math.floor(absSeconds / 60);
|
|
84
90
|
if (minutes < 60)
|
|
85
|
-
return
|
|
91
|
+
return withDirection(minutes, 'm');
|
|
86
92
|
const hours = Math.floor(minutes / 60);
|
|
87
93
|
if (hours < 24)
|
|
88
|
-
return
|
|
94
|
+
return withDirection(hours, 'h');
|
|
89
95
|
const days = Math.floor(hours / 24);
|
|
90
96
|
if (days < 7)
|
|
91
|
-
return
|
|
97
|
+
return withDirection(days, 'd');
|
|
92
98
|
const weeks = Math.floor(days / 7);
|
|
93
99
|
if (weeks < 52)
|
|
94
|
-
return
|
|
100
|
+
return withDirection(weeks, 'w');
|
|
95
101
|
const years = Math.floor(days / 365);
|
|
96
|
-
return
|
|
102
|
+
return withDirection(years, 'y');
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Build a detailed datetime string suitable for tooltips.
|
|
106
|
+
*
|
|
107
|
+
* Example:
|
|
108
|
+
* "2026-06-08T16:15:32.531Z • Jun 8, 2026, 6:15:32 PM CEST (Europe/Paris)"
|
|
109
|
+
*/
|
|
110
|
+
export const formatDateTimeDetails = (value) => {
|
|
111
|
+
if (value === undefined || value === null) {
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
const date = value instanceof Date
|
|
115
|
+
? value
|
|
116
|
+
: typeof value === 'number'
|
|
117
|
+
? new Date(value)
|
|
118
|
+
: new Date(value);
|
|
119
|
+
const ts = date.getTime();
|
|
120
|
+
if (Number.isNaN(ts)) {
|
|
121
|
+
return typeof value === 'string' ? value : undefined;
|
|
122
|
+
}
|
|
123
|
+
const iso = date.toISOString();
|
|
124
|
+
const zone = Intl.DateTimeFormat().resolvedOptions().timeZone || 'local';
|
|
125
|
+
const local = new Intl.DateTimeFormat(undefined, {
|
|
126
|
+
dateStyle: 'medium',
|
|
127
|
+
timeStyle: 'long',
|
|
128
|
+
}).format(date);
|
|
129
|
+
return `${iso} • ${local} (${zone})`;
|
|
97
130
|
};
|
|
98
131
|
/**
|
|
99
132
|
* Format a duration in milliseconds into a human-readable string.
|
package/lib/utils/Handles.js
CHANGED
|
@@ -22,7 +22,9 @@ export function formatFriendlyHandle(handle) {
|
|
|
22
22
|
? 'GitHub'
|
|
23
23
|
: provider === 'google'
|
|
24
24
|
? 'Google'
|
|
25
|
-
:
|
|
25
|
+
: provider === 'linkedin'
|
|
26
|
+
? 'LinkedIn'
|
|
27
|
+
: providerRaw || 'External';
|
|
26
28
|
const identifier = restParts.join(':').trim();
|
|
27
29
|
if (!identifier) {
|
|
28
30
|
return providerLabel;
|
package/lib/utils/index.d.ts
CHANGED
|
@@ -3,7 +3,6 @@ export * from './Avatar';
|
|
|
3
3
|
export * from './Browser';
|
|
4
4
|
export * from './cli';
|
|
5
5
|
export * from './Cookie';
|
|
6
|
-
export * from './Cells';
|
|
7
6
|
export * from './Date';
|
|
8
7
|
export * from './Download';
|
|
9
8
|
export * from './DownloadFile';
|
|
@@ -15,6 +14,7 @@ export * from './Ids';
|
|
|
15
14
|
export * from './Jwt';
|
|
16
15
|
export * from './Jupyter';
|
|
17
16
|
export * from './Lazy';
|
|
17
|
+
export * from './Logger';
|
|
18
18
|
export * from './Msc';
|
|
19
19
|
export * from './Name';
|
|
20
20
|
export * from './Notebook';
|
package/lib/utils/index.js
CHANGED
|
@@ -7,7 +7,6 @@ export * from './Avatar.js';
|
|
|
7
7
|
export * from './Browser.js';
|
|
8
8
|
export * from './cli/index.js';
|
|
9
9
|
export * from './Cookie.js';
|
|
10
|
-
export * from './Cells.js';
|
|
11
10
|
export * from './Date.js';
|
|
12
11
|
export * from './Download.js';
|
|
13
12
|
export * from './DownloadFile.js';
|
|
@@ -19,6 +18,7 @@ export * from './Ids.js';
|
|
|
19
18
|
export * from './Jwt.js';
|
|
20
19
|
export * from './Jupyter.js';
|
|
21
20
|
export * from './Lazy.js';
|
|
21
|
+
export * from './Logger.js';
|
|
22
22
|
export * from './Msc.js';
|
|
23
23
|
export * from './Name.js';
|
|
24
24
|
export * from './Notebook.js';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type APIKeyEditProps = {
|
|
2
|
+
/** Route to navigate after delete. Defaults to '/settings/iam/api-keys'. */
|
|
3
|
+
apiKeysListRoute?: string;
|
|
4
|
+
/** Whether to render the local edit title header. Defaults to true. */
|
|
5
|
+
showTitle?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare const APIKeyEdit: ({ apiKeysListRoute, showTitle, }?: APIKeyEditProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export default APIKeyEdit;
|
|
@@ -10,20 +10,20 @@ import { Box } from '@datalayer/primer-addons';
|
|
|
10
10
|
import { BoringAvatar } from '../../components/avatars/index.js';
|
|
11
11
|
import { useCache, useNavigate, useToast } from '../../hooks/index.js';
|
|
12
12
|
import { useRunStore } from '../../state/index.js';
|
|
13
|
-
export const
|
|
14
|
-
const { tokenId } = useParams();
|
|
13
|
+
export const APIKeyEdit = ({ apiKeysListRoute = '/settings/iam/api-keys', showTitle = true, } = {}) => {
|
|
14
|
+
const { tokenId: apiKeyId } = useParams();
|
|
15
15
|
const runStore = useRunStore();
|
|
16
16
|
const navigate = useNavigate();
|
|
17
17
|
const { enqueueToast } = useToast();
|
|
18
|
-
const { useUpdateToken, useToken, useDeleteToken } = useCache();
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const [
|
|
18
|
+
const { useUpdateToken: useUpdateAPIKey, useToken: useAPIKey, useDeleteToken: useDeleteAPIKey, } = useCache();
|
|
19
|
+
const getAPIKeyQuery = useAPIKey(apiKeyId);
|
|
20
|
+
const updateAPIKeyMutation = useUpdateAPIKey();
|
|
21
|
+
const deleteAPIKeyMutation = useDeleteAPIKey();
|
|
22
|
+
const [apiKey, setAPIKey] = useState();
|
|
23
23
|
const [formValues, setFormValues] = useState({
|
|
24
|
-
name:
|
|
24
|
+
name: apiKey?.name,
|
|
25
25
|
nameConfirm: '',
|
|
26
|
-
description:
|
|
26
|
+
description: apiKey?.description,
|
|
27
27
|
});
|
|
28
28
|
const [validationResult, setValidationResult] = useState({
|
|
29
29
|
name: undefined,
|
|
@@ -31,12 +31,12 @@ export const IAMTokenEdit = ({ tokensListRoute = '/settings/iam/tokens', } = {})
|
|
|
31
31
|
description: undefined,
|
|
32
32
|
});
|
|
33
33
|
useEffect(() => {
|
|
34
|
-
if (
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
setFormValues({ ...
|
|
34
|
+
if (getAPIKeyQuery.data) {
|
|
35
|
+
const key = getAPIKeyQuery.data;
|
|
36
|
+
setAPIKey(key);
|
|
37
|
+
setFormValues({ ...key, nameConfirm: '' });
|
|
38
38
|
}
|
|
39
|
-
}, [
|
|
39
|
+
}, [getAPIKeyQuery.data]);
|
|
40
40
|
const nameNameChange = (event) => {
|
|
41
41
|
setFormValues(prevFormValues => ({
|
|
42
42
|
...prevFormValues,
|
|
@@ -63,7 +63,7 @@ export const IAMTokenEdit = ({ tokensListRoute = '/settings/iam/tokens', } = {})
|
|
|
63
63
|
: formValues.name.length > 2
|
|
64
64
|
? true
|
|
65
65
|
: false,
|
|
66
|
-
nameConfirm: formValues.nameConfirm ===
|
|
66
|
+
nameConfirm: formValues.nameConfirm === apiKey?.name ? true : false,
|
|
67
67
|
description: formValues.description === undefined
|
|
68
68
|
? undefined
|
|
69
69
|
: formValues.description.length > 2
|
|
@@ -71,20 +71,20 @@ export const IAMTokenEdit = ({ tokensListRoute = '/settings/iam/tokens', } = {})
|
|
|
71
71
|
: false,
|
|
72
72
|
});
|
|
73
73
|
}, [formValues]);
|
|
74
|
-
const
|
|
74
|
+
const submitAPIKey = async () => {
|
|
75
75
|
runStore.layout().showBackdrop();
|
|
76
|
-
const
|
|
77
|
-
...
|
|
76
|
+
const updatedAPIKey = {
|
|
77
|
+
...apiKey,
|
|
78
78
|
name: formValues.name,
|
|
79
79
|
description: formValues.description,
|
|
80
80
|
};
|
|
81
|
-
|
|
81
|
+
updateAPIKeyMutation.mutate(updatedAPIKey, {
|
|
82
82
|
onSuccess: (resp) => {
|
|
83
83
|
if (resp.success) {
|
|
84
|
-
enqueueToast('The
|
|
84
|
+
enqueueToast('The API key was updated successfully.', {
|
|
85
85
|
variant: 'success',
|
|
86
86
|
});
|
|
87
|
-
|
|
87
|
+
setAPIKey(updatedAPIKey);
|
|
88
88
|
}
|
|
89
89
|
},
|
|
90
90
|
onSettled: () => {
|
|
@@ -92,31 +92,31 @@ export const IAMTokenEdit = ({ tokensListRoute = '/settings/iam/tokens', } = {})
|
|
|
92
92
|
},
|
|
93
93
|
});
|
|
94
94
|
};
|
|
95
|
-
const
|
|
96
|
-
runStore.layout().showBackdrop('Deleting the
|
|
97
|
-
|
|
95
|
+
const deleteAPIKey = async () => {
|
|
96
|
+
runStore.layout().showBackdrop('Deleting the API key...');
|
|
97
|
+
deleteAPIKeyMutation.mutate(apiKey.id, {
|
|
98
98
|
onSuccess: (resp) => {
|
|
99
99
|
if (resp.success) {
|
|
100
|
-
enqueueToast('The
|
|
100
|
+
enqueueToast('The API key was deleted successfully.', {
|
|
101
101
|
variant: 'success',
|
|
102
102
|
});
|
|
103
|
-
navigate(
|
|
103
|
+
navigate(apiKeysListRoute);
|
|
104
104
|
}
|
|
105
105
|
else {
|
|
106
|
-
enqueueToast(resp.message || 'Failed to delete
|
|
106
|
+
enqueueToast(resp.message || 'Failed to delete API key.', {
|
|
107
107
|
variant: 'error',
|
|
108
108
|
});
|
|
109
109
|
}
|
|
110
110
|
},
|
|
111
111
|
onError: () => {
|
|
112
|
-
enqueueToast('Failed to delete
|
|
112
|
+
enqueueToast('Failed to delete API key.', { variant: 'error' });
|
|
113
113
|
},
|
|
114
114
|
onSettled: () => {
|
|
115
115
|
runStore.layout().hideBackdrop();
|
|
116
116
|
},
|
|
117
117
|
});
|
|
118
118
|
};
|
|
119
|
-
return (_jsxs(_Fragment, { children: [_jsx(PageHeader, { children: _jsx(Heading, { sx: { fontSize: 3 }, children: "API Key" }) }), _jsxs(Box, { display: "flex", children: [_jsxs(Box, { children: [_jsx(BoringAvatar, { displayName:
|
|
119
|
+
return (_jsxs(_Fragment, { children: [showTitle && (_jsx(PageHeader, { children: _jsx(Heading, { sx: { fontSize: 3 }, children: "API Key" }) })), _jsxs(Box, { display: "flex", children: [_jsxs(Box, { children: [_jsx(BoringAvatar, { displayName: apiKey?.name, size: 100, style: { paddingRight: 10 } }), _jsx(Text, { as: "h2", sx: { paddingTop: 3 }, children: apiKey?.name }), _jsx(Box, { mt: 3, children: _jsx(Label, { size: "large", children: apiKey?.variant }) })] }), _jsxs(Box, { ml: 10, children: [_jsxs(Box, { sx: { label: { marginTop: 2 } }, children: [_jsxs(FormControl, { children: [_jsx(FormControl.Label, { children: "Name" }), _jsx(TextInput, { block: true, value: formValues.name, onChange: nameNameChange }), validationResult.name === false && (_jsx(FormControl.Validation, { variant: "error", children: "Name must have more than 2 characters." }))] }), _jsxs(FormControl, { children: [_jsx(FormControl.Label, { children: "Description" }), _jsx(Textarea, { block: true, value: formValues.description, onChange: nameDescriptionChange, rows: 5 }), validationResult.description === false && (_jsx(FormControl.Validation, { variant: "error", children: "Description must have more than 2 characters." }))] }), _jsxs(FormControl, { children: [_jsx(FormControl.Label, { children: "Expiration date" }), _jsx(TextInput, { block: true, value: apiKey?.expirationDate.toLocaleDateString(), onChange: nameNameChange, disabled: true })] }), _jsx(Button, { variant: "primary", disabled: !validationResult.name || !validationResult.description, sx: { marginTop: 3 }, onClick: submitAPIKey, children: "Update API key" })] }), _jsxs(Box, { sx: { marginTop: 3 }, children: [_jsx(Heading, { as: "h2", sx: {
|
|
120
120
|
fontSize: 4,
|
|
121
121
|
fontWeight: 'normal',
|
|
122
122
|
color: 'danger.fg',
|
|
@@ -130,6 +130,6 @@ export const IAMTokenEdit = ({ tokensListRoute = '/settings/iam/tokens', } = {})
|
|
|
130
130
|
alignItems: 'center',
|
|
131
131
|
justifyContent: 'space-between',
|
|
132
132
|
gap: 3,
|
|
133
|
-
}, children: [_jsxs(Box, { sx: { display: 'grid', gap: 1 }, children: [_jsx(Text, { sx: { fontSize: 1, fontWeight: 'bold', color: 'danger.fg' }, children: "Confirm the
|
|
133
|
+
}, children: [_jsxs(Box, { sx: { display: 'grid', gap: 1 }, children: [_jsx(Text, { sx: { fontSize: 1, fontWeight: 'bold', color: 'danger.fg' }, children: "Confirm the API key name to delete" }), _jsx(FormControl, { children: _jsx(TextInput, { block: true, value: formValues.nameConfirm, onChange: nameConfirmChange }) }), _jsx(Text, { sx: { fontSize: 1, color: 'fg.muted' }, children: "This operation is not reversible." })] }), _jsx(Button, { variant: "danger", disabled: !validationResult.nameConfirm, onClick: deleteAPIKey, children: "Delete API key" })] })] })] })] })] }));
|
|
134
134
|
};
|
|
135
|
-
export default
|
|
135
|
+
export default APIKeyEdit;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type APIKeyNewProps = {
|
|
2
|
+
/** Route to navigate when clicking "List my API keys". Defaults to '/settings/iam/api-keys'. */
|
|
3
|
+
apiKeysListRoute?: string;
|
|
4
|
+
/** Whether to render the "New API Key" title header in create mode. Defaults to true. */
|
|
5
|
+
showTitle?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare const APIKeyNew: ({ apiKeysListRoute, showTitle, }?: APIKeyNewProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export default APIKeyNew;
|