@todesktop/shared 7.193.0 → 7.195.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/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # @todesktop/shared
2
2
 
3
+ ## 7.195.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 56627a8: Add support for custom plugins from ToDesktop Builder (including
8
+ private npm packages)
9
+
10
+ ## 7.194.0
11
+
12
+ ### Minor Changes
13
+
14
+ - dc5fe40: Add build introspection feature for interactive shell access to
15
+ in-progress builds
16
+ - `todesktop build --introspect` enables introspection on all platforms during
17
+ build creation
18
+ - New `todesktop introspect [buildId]` command for connecting to running
19
+ builds with interactive shell access
20
+ - Agent Introspection Service (AIS) runs on build agents, providing secure
21
+ WebSocket terminal access via Cloudflare Quick Tunnels
22
+ - Firebase function `startIntrospectionSession` handles authentication and
23
+ session management
24
+ - Builds with introspection sessions cannot be released (security safeguard)
25
+ - Session limits: 30 min inactivity timeout, 60 min absolute TTL, single
26
+ concurrent session per platform
27
+
3
28
  ## 7.191.1
4
29
 
5
30
  ### Patch Changes
@@ -1,6 +1,5 @@
1
- import type { Build } from '../desktopify';
2
- import type { IntrospectBreakpointStatus, IntrospectShellStatus } from '../desktopify';
3
- export type IntrospectPlatformName = 'mac' | 'windows' | 'linux';
1
+ import type { Build, IntrospectBreakpointStatus, IntrospectShellStatus } from '../desktopify';
2
+ export type IntrospectPlatformName = 'linux' | 'mac' | 'windows';
4
3
  /**
5
4
  * Check if a build was introspected (has connectedAt or disconnectedAt on any platform).
6
5
  * Builds that were introspected cannot be released.
@@ -4,16 +4,16 @@ exports.wasIntrospected = wasIntrospected;
4
4
  exports.getIntrospectedPlatformNames = getIntrospectedPlatformNames;
5
5
  exports.formatIntrospectionStatus = formatIntrospectionStatus;
6
6
  const PLATFORM_LABELS = {
7
+ linux: 'Linux',
7
8
  mac: 'Mac',
8
9
  windows: 'Windows',
9
- linux: 'Linux',
10
10
  };
11
11
  /**
12
12
  * Check if a build was introspected (has connectedAt or disconnectedAt on any platform).
13
13
  * Builds that were introspected cannot be released.
14
14
  */
15
15
  function wasIntrospected(build) {
16
- const introspect = build.introspect;
16
+ const { introspect } = build;
17
17
  if (!introspect)
18
18
  return false;
19
19
  const platforms = ['mac', 'windows', 'linux'];
@@ -30,7 +30,7 @@ function wasIntrospected(build) {
30
30
  * Returns capitalized platform names (e.g., ['Mac', 'Windows']).
31
31
  */
32
32
  function getIntrospectedPlatformNames(build) {
33
- const introspect = build.introspect;
33
+ const { introspect } = build;
34
34
  if (!introspect)
35
35
  return [];
36
36
  const platforms = ['mac', 'windows', 'linux'];
@@ -1,5 +1,10 @@
1
1
  type AjvJSONSchemaType = object;
2
2
  export interface DesktopAppPlugin {
3
+ /**
4
+ * Specifies if the plugin requires authentication to npm for installation.
5
+ * If true, the npm token will be retrieved from Azure KeyVault during the build.
6
+ */
7
+ npmAuthRequired?: boolean;
3
8
  /**
4
9
  * Package name, including version information.
5
10
  * e.g. "@todesktop/plugin-foo", "@todesktop/plugin-baz@1.0.0"
@@ -1,6 +1,5 @@
1
- import type { Build } from '../desktopify';
2
- import type { IntrospectBreakpointStatus, IntrospectShellStatus } from '../desktopify';
3
- export type IntrospectPlatformName = 'mac' | 'windows' | 'linux';
1
+ import type { Build, IntrospectBreakpointStatus, IntrospectShellStatus } from '../desktopify';
2
+ export type IntrospectPlatformName = 'linux' | 'mac' | 'windows';
4
3
  /**
5
4
  * Check if a build was introspected (has connectedAt or disconnectedAt on any platform).
6
5
  * Builds that were introspected cannot be released.
@@ -1,14 +1,14 @@
1
1
  const PLATFORM_LABELS = {
2
+ linux: 'Linux',
2
3
  mac: 'Mac',
3
4
  windows: 'Windows',
4
- linux: 'Linux',
5
5
  };
6
6
  /**
7
7
  * Check if a build was introspected (has connectedAt or disconnectedAt on any platform).
8
8
  * Builds that were introspected cannot be released.
9
9
  */
10
10
  export function wasIntrospected(build) {
11
- const introspect = build.introspect;
11
+ const { introspect } = build;
12
12
  if (!introspect)
13
13
  return false;
14
14
  const platforms = ['mac', 'windows', 'linux'];
@@ -25,7 +25,7 @@ export function wasIntrospected(build) {
25
25
  * Returns capitalized platform names (e.g., ['Mac', 'Windows']).
26
26
  */
27
27
  export function getIntrospectedPlatformNames(build) {
28
- const introspect = build.introspect;
28
+ const { introspect } = build;
29
29
  if (!introspect)
30
30
  return [];
31
31
  const platforms = ['mac', 'windows', 'linux'];
@@ -1,5 +1,10 @@
1
1
  type AjvJSONSchemaType = object;
2
2
  export interface DesktopAppPlugin {
3
+ /**
4
+ * Specifies if the plugin requires authentication to npm for installation.
5
+ * If true, the npm token will be retrieved from Azure KeyVault during the build.
6
+ */
7
+ npmAuthRequired?: boolean;
3
8
  /**
4
9
  * Package name, including version information.
5
10
  * e.g. "@todesktop/plugin-foo", "@todesktop/plugin-baz@1.0.0"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@todesktop/shared",
3
- "version": "7.193.0",
3
+ "version": "7.195.0",
4
4
  "description": "",
5
5
  "main": "./lib/cjs/index.js",
6
6
  "module": "./lib/esm/index.js",
@@ -1,15 +1,15 @@
1
- import type { Build } from '../desktopify';
2
1
  import type {
2
+ Build,
3
3
  IntrospectBreakpointStatus,
4
4
  IntrospectShellStatus,
5
5
  } from '../desktopify';
6
6
 
7
- export type IntrospectPlatformName = 'mac' | 'windows' | 'linux';
7
+ export type IntrospectPlatformName = 'linux' | 'mac' | 'windows';
8
8
 
9
9
  const PLATFORM_LABELS: Record<IntrospectPlatformName, string> = {
10
+ linux: 'Linux',
10
11
  mac: 'Mac',
11
12
  windows: 'Windows',
12
- linux: 'Linux',
13
13
  };
14
14
 
15
15
  /**
@@ -17,7 +17,7 @@ const PLATFORM_LABELS: Record<IntrospectPlatformName, string> = {
17
17
  * Builds that were introspected cannot be released.
18
18
  */
19
19
  export function wasIntrospected(build: Build): boolean {
20
- const introspect = build.introspect;
20
+ const { introspect } = build;
21
21
  if (!introspect) return false;
22
22
 
23
23
  const platforms: IntrospectPlatformName[] = ['mac', 'windows', 'linux'];
@@ -37,7 +37,7 @@ export function wasIntrospected(build: Build): boolean {
37
37
  * Returns capitalized platform names (e.g., ['Mac', 'Windows']).
38
38
  */
39
39
  export function getIntrospectedPlatformNames(build: Build): string[] {
40
- const introspect = build.introspect;
40
+ const { introspect } = build;
41
41
  if (!introspect) return [];
42
42
 
43
43
  const platforms: IntrospectPlatformName[] = ['mac', 'windows', 'linux'];
package/src/plugin.ts CHANGED
@@ -1,5 +1,11 @@
1
1
  type AjvJSONSchemaType = object;
2
2
  export interface DesktopAppPlugin {
3
+ /**
4
+ * Specifies if the plugin requires authentication to npm for installation.
5
+ * If true, the npm token will be retrieved from Azure KeyVault during the build.
6
+ */
7
+ npmAuthRequired?: boolean;
8
+
3
9
  /**
4
10
  * Package name, including version information.
5
11
  * e.g. "@todesktop/plugin-foo", "@todesktop/plugin-baz@1.0.0"
package/vitest.config.ts CHANGED
@@ -3,7 +3,6 @@ import { defineConfig } from 'vitest/config';
3
3
 
4
4
  export default defineConfig({
5
5
  test: {
6
- exclude: ['lib/**', 'node_modules/**'],
7
- include: ['src/**/*.test.ts'],
6
+ exclude: ['**/node_modules/**', '**/lib/**'],
8
7
  },
9
8
  });