@jskit-ai/workspaces-web 0.1.72 → 0.1.74

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.
@@ -1,7 +1,7 @@
1
1
  export default Object.freeze({
2
2
  packageVersion: 1,
3
3
  packageId: "@jskit-ai/workspaces-web",
4
- version: "0.1.72",
4
+ version: "0.1.74",
5
5
  kind: "runtime",
6
6
  description: "Workspace web module: workspace selector, tools widget, workspace surfaces, members UI, and settings hosts.",
7
7
  dependsOn: [
@@ -227,8 +227,8 @@ export default Object.freeze({
227
227
  mutations: {
228
228
  dependencies: {
229
229
  runtime: {
230
- "@jskit-ai/workspaces-core": "0.1.71",
231
- "@jskit-ai/users-web": "0.1.110"
230
+ "@jskit-ai/workspaces-core": "0.1.73",
231
+ "@jskit-ai/users-web": "0.1.112"
232
232
  },
233
233
  dev: {}
234
234
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jskit-ai/workspaces-web",
3
- "version": "0.1.72",
3
+ "version": "0.1.74",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "test": "node --test"
@@ -14,12 +14,12 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "@mdi/js": "^7.4.47",
17
- "@jskit-ai/http-runtime": "0.1.94",
18
- "@jskit-ai/kernel": "0.1.95",
19
- "@jskit-ai/shell-web": "0.1.94",
20
- "@jskit-ai/users-core": "0.1.105",
21
- "@jskit-ai/users-web": "0.1.110",
22
- "@jskit-ai/workspaces-core": "0.1.71"
17
+ "@jskit-ai/http-runtime": "0.1.96",
18
+ "@jskit-ai/kernel": "0.1.98",
19
+ "@jskit-ai/shell-web": "0.1.97",
20
+ "@jskit-ai/users-core": "0.1.107",
21
+ "@jskit-ai/users-web": "0.1.112",
22
+ "@jskit-ai/workspaces-core": "0.1.73"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "@tanstack/vue-query": "^5.90.5",
@@ -132,7 +132,7 @@ function useAccountSettingsInvitesSectionRuntime() {
132
132
  const pendingInvites = computed(() =>
133
133
  Array.isArray(pendingInvitesModel.pendingInvites) ? pendingInvitesModel.pendingInvites : []
134
134
  );
135
- const isResolvingInvite = computed(() => Boolean(redeemInviteCommand.isRunning.value));
135
+ const isResolvingInvite = computed(() => Boolean(redeemInviteCommand.isRunning));
136
136
 
137
137
  const { workspaceSurfaceId } = useWorkspaceSurfaceId({
138
138
  route,
@@ -413,9 +413,9 @@ const memberRemoveCommand = useCommand({
413
413
 
414
414
  const status = computed(() => {
415
415
  return {
416
- isCreatingInvite: Boolean(inviteCreateCommand.isRunning.value),
417
- isRevokingInvite: Boolean(revokeInviteCommand.isRunning.value),
418
- isRemovingMember: Boolean(memberRemoveCommand.isRunning.value),
416
+ isCreatingInvite: Boolean(inviteCreateCommand.isRunning),
417
+ isRevokingInvite: Boolean(revokeInviteCommand.isRunning),
418
+ isRemovingMember: Boolean(memberRemoveCommand.isRunning),
419
419
  hasLoadedWorkspaceSettings: !canInviteMembers.value || !workspaceSettingsView.isLoading,
420
420
  hasLoadedMembersList: !canViewMembers.value || !workspaceMembersList.isInitialLoading,
421
421
  hasLoadedInviteList: !canViewMembers.value || !workspaceInvitesList.isInitialLoading,
@@ -574,7 +574,7 @@ watch(
574
574
  );
575
575
 
576
576
  async function submitInvite() {
577
- if (inviteCreateCommand.isRunning.value || !canInviteMembers.value) {
577
+ if (inviteCreateCommand.isRunning || !canInviteMembers.value) {
578
578
  return;
579
579
  }
580
580
 
@@ -594,7 +594,7 @@ async function submitInvite() {
594
594
  }
595
595
 
596
596
  async function submitRevokeInvite(inviteId) {
597
- if (revokeInviteCommand.isRunning.value || !canRevokeInvites.value) {
597
+ if (revokeInviteCommand.isRunning || !canRevokeInvites.value) {
598
598
  return;
599
599
  }
600
600
 
@@ -645,7 +645,7 @@ async function submitMemberRoleUpdate(member, roleSid) {
645
645
  }
646
646
 
647
647
  async function submitRemoveMember(member) {
648
- if (memberRemoveCommand.isRunning.value || !canManageMembers.value) {
648
+ if (memberRemoveCommand.isRunning || !canManageMembers.value) {
649
649
  return;
650
650
  }
651
651
 
@@ -165,7 +165,7 @@ const isBootstrapping = computed(() => Boolean(bootstrapView.isLoading));
165
165
  const isRefreshingBootstrap = computed(() => Boolean(bootstrapView.isRefetching));
166
166
  const bootstrapLoadError = computed(() => String(bootstrapView.loadError || "").trim());
167
167
  const canCreateWorkspace = computed(() => bootstrapModel.workspaceAllowSelfCreate === true);
168
- const isCreatingWorkspace = computed(() => Boolean(createWorkspaceCommand.isRunning.value));
168
+ const isCreatingWorkspace = computed(() => Boolean(createWorkspaceCommand.isRunning));
169
169
 
170
170
  function reportFeedback({
171
171
  message,
@@ -126,6 +126,42 @@ test("workspaces-web resource load states expose local retry actions", async ()
126
126
  }
127
127
  });
128
128
 
129
+ test("workspaces-web command loading state uses users-web proxyRefs contract", async () => {
130
+ const expectations = new Map([
131
+ [
132
+ "src/client/components/WorkspaceMembersClientElement.vue",
133
+ [
134
+ /isCreatingInvite: Boolean\(inviteCreateCommand\.isRunning\)/,
135
+ /if \(inviteCreateCommand\.isRunning \|\| !canInviteMembers\.value\)/
136
+ ]
137
+ ],
138
+ [
139
+ "src/client/components/WorkspacesClientElement.vue",
140
+ [
141
+ /const isCreatingWorkspace = computed\(\(\) => Boolean\(createWorkspaceCommand\.isRunning\)\)/
142
+ ]
143
+ ],
144
+ [
145
+ "src/client/account-settings/useAccountSettingsInvitesSectionRuntime.js",
146
+ [
147
+ /const isResolvingInvite = computed\(\(\) => Boolean\(redeemInviteCommand\.isRunning\)\)/
148
+ ]
149
+ ]
150
+ ]);
151
+
152
+ for (const [relativePath, patterns] of expectations) {
153
+ const source = await readFile(path.join(PACKAGE_DIR, relativePath), "utf8");
154
+ assert.doesNotMatch(
155
+ source,
156
+ /\.isRunning\.value/,
157
+ `${relativePath} must not read useCommand().isRunning.value; useCommand returns proxyRefs.`
158
+ );
159
+ for (const pattern of patterns) {
160
+ assert.match(source, pattern, `${relativePath} must expose command loading state to the UI.`);
161
+ }
162
+ }
163
+ });
164
+
129
165
  test("workspaces-web installs an account invites cue scaffold that reads placement runtime state", async () => {
130
166
  const source = await readFile(
131
167
  path.join(PACKAGE_DIR, "templates", "packages", "main", "src", "client", "components", "AccountPendingInvitesCue.vue"),