desktopr 2.0.2 → 2.0.3

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.
@@ -5,9 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.BROWSER_STORAGE_NAMESPACE = exports.WINDOWS_LABELS_TRACKER_VARIABLE_NAME = exports.READY_EVENT_NAME = exports.COMAPNION_WINDOW_LABEL_PREFIX = exports.API_VERSION = exports.APP_URL = void 0;
7
7
  const bridge_constants_json_1 = __importDefault(require("./bridge.constants.json"));
8
- const package_json_1 = __importDefault(require("../sdk/package.json"));
9
8
  exports.APP_URL = bridge_constants_json_1.default.appUrl;
10
- exports.API_VERSION = package_json_1.default.version;
9
+ exports.API_VERSION = bridge_constants_json_1.default.apiVersion;
11
10
  exports.COMAPNION_WINDOW_LABEL_PREFIX = bridge_constants_json_1.default.companionWindowLabelPrefix;
12
11
  exports.READY_EVENT_NAME = "dtrReady";
13
12
  exports.WINDOWS_LABELS_TRACKER_VARIABLE_NAME = "open-windows-labels-tracker-rpkw6kjzxn8bfhj5u74q";
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "appUrl": "http://blank.html",
3
- "appVersion": "0.2.1",
3
+ "apiVersion": "2.0.3",
4
4
  "companionWindowLabelPrefix": "dtr-cache-only-window-"
5
5
  }
@@ -4,3 +4,4 @@ export declare const normalizeString: (str: string, options?: {
4
4
  spacesFiller: string;
5
5
  }) => string;
6
6
  export declare const platformSpecifcFilter: (platforms: DtrPlatform[]) => Promise<void>;
7
+ export declare const getAppVersion: () => Promise<string>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.platformSpecifcFilter = exports.normalizeString = void 0;
3
+ exports.getAppVersion = exports.platformSpecifcFilter = exports.normalizeString = void 0;
4
4
  const utils_1 = require("../utils");
5
5
  const normalizeString = (str, options = {
6
6
  toLowerCase: true,
@@ -20,11 +20,20 @@ const normalizeString = (str, options = {
20
20
  };
21
21
  exports.normalizeString = normalizeString;
22
22
  const platformSpecifcFilter = async (platforms) => {
23
- const appInfo = await window.Desktopr?.app.info();
23
+ const appInfo = (await window.Desktopr?.app.info());
24
24
  if (!appInfo)
25
25
  throw "Failed to check platform";
26
26
  const plat = appInfo.os;
27
- if (!(platforms.includes(plat)))
27
+ if (!platforms.includes(plat))
28
28
  throw `[unsupported platform] this method is not supported on ${plat}`;
29
29
  };
30
30
  exports.platformSpecifcFilter = platformSpecifcFilter;
31
+ const getAppVersion = async () => {
32
+ const desktopr = window?.Desktopr;
33
+ if (!desktopr)
34
+ throw "[getAppVersion] Desktopr is not available";
35
+ const appInfo = await desktopr.app.info();
36
+ const version = appInfo.version;
37
+ return version ?? "";
38
+ };
39
+ exports.getAppVersion = getAppVersion;
@@ -19,14 +19,6 @@ const dtrInitiators = async () => {
19
19
  try {
20
20
  if (!exports.DesktoprInstance.ready())
21
21
  throw ("Desktopr instance not found");
22
- try {
23
- const appInfo = await window.Desktopr?.app.info();
24
- if (appInfo?.version)
25
- window.__DESKTOPR_APP_VERSION__ = appInfo.version;
26
- }
27
- catch (error) {
28
- console.error(error);
29
- }
30
22
  console.log("## READY ##");
31
23
  const eventReady = new CustomEvent(_constants_1.READY_EVENT_NAME);
32
24
  window?.dispatchEvent(eventReady);
@@ -30,7 +30,6 @@ export type DtrPlatform = "macos" | "linux" | "windows";
30
30
  export type DesktoprAPI = {
31
31
  readonly isAvailable: boolean;
32
32
  readonly apiVersion: string;
33
- readonly appVersion: string;
34
33
  readonly ready: Promise<true>;
35
34
  invoke<T = unknown>(cmd: string, payload?: Record<string, unknown>): Promise<T>;
36
35
  isDesktop: boolean;
@@ -1,8 +1,9 @@
1
1
  import { DesktoprAPI } from "../../../_types";
2
- import { DiagnosticsTestFunctions, PrivacySettings } from "./_types";
2
+ import { DiagnosticsTestFunctions, PrivacySettings, PrivacySettingsCamelCase } from "./_types";
3
3
  export declare const diagnosticsSettings: (core: {
4
4
  invoke: DesktoprAPI["invoke"];
5
- }, settings?: PrivacySettings) => Promise<unknown>;
5
+ }, settings?: PrivacySettings) => Promise<PrivacySettingsCamelCase>;
6
+ export declare const deriveAppVersion: (v?: string) => Promise<string>;
6
7
  export declare function buildDiagnosticsTestFunctions(core: {
7
8
  invoke: DesktoprAPI["invoke"];
8
9
  }): DiagnosticsTestFunctions;
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.diagnosticsSettings = void 0;
3
+ exports.deriveAppVersion = exports.diagnosticsSettings = void 0;
4
4
  exports.buildDiagnosticsTestFunctions = buildDiagnosticsTestFunctions;
5
5
  const utils_1 = require("../../../utils");
6
+ const _helpers_1 = require("../../../_helpers");
6
7
  const diagnosticsSettings = async (core, settings) => {
7
8
  if (settings?.retentionDaysAnalytics && !utils_1.Num.isU32(settings.retentionDaysAnalytics))
8
9
  throw ("[retentionDaysAnalytics] the value must be a U32 integer number");
@@ -21,6 +22,13 @@ const diagnosticsSettings = async (core, settings) => {
21
22
  });
22
23
  };
23
24
  exports.diagnosticsSettings = diagnosticsSettings;
25
+ const deriveAppVersion = async (v) => {
26
+ if (v)
27
+ return v;
28
+ const version = await (0, _helpers_1.getAppVersion)();
29
+ return version;
30
+ };
31
+ exports.deriveAppVersion = deriveAppVersion;
24
32
  // ==============================
25
33
  // Test functions
26
34
  // ==============================
@@ -10,19 +10,31 @@ function buildDiagnostics(core) {
10
10
  get: () => core.invoke("dtr_logs_get_privacy", {}),
11
11
  },
12
12
  // SOLO analytics (Rust vuole AnalyticsRecord), usa key record_type
13
- newRecord: (recordType, payload, env) => core.invoke("dtr_logs_new_record", {
14
- recordType,
15
- payload,
16
- env,
17
- get appVersion() { return window.__DESKTOPR_APP_VERSION__; },
18
- }),
13
+ newRecord: async (recordType, payload, env, appVersion) => {
14
+ const v = await (0, _helpers_1.deriveAppVersion)(appVersion);
15
+ return await core.invoke("dtr_logs_new_record", {
16
+ recordType,
17
+ payload,
18
+ env,
19
+ appVersion: v
20
+ });
21
+ },
19
22
  newError: {
20
- js: (payload) => core.invoke("dtr_logs_record_js_error", { payload, get appVersion() { return window.__DESKTOPR_APP_VERSION__; } }),
21
- native: (payload) => core.invoke("dtr_logs_record_native_error", { payload, get appVersion() { return window.__DESKTOPR_APP_VERSION__; } }),
23
+ js: async (payload, appVersion) => {
24
+ const v = await (0, _helpers_1.deriveAppVersion)(appVersion);
25
+ return await core.invoke("dtr_logs_record_js_error", { payload, appVersion: v });
26
+ },
27
+ native: async (payload, appVersion) => {
28
+ const v = await (0, _helpers_1.deriveAppVersion)(appVersion);
29
+ return await core.invoke("dtr_logs_record_native_error", { payload, appVersion: v });
30
+ },
22
31
  // Rust richiede 'env' obbligatorio: di default "generic" se non passato
23
- generic: (payload, env = "generic") => core.invoke("dtr_logs_record_error", { payload, get appVersion() { return window.__DESKTOPR_APP_VERSION__; }, env }),
32
+ generic: async (payload, env = "generic", appVersion) => {
33
+ const v = await (0, _helpers_1.deriveAppVersion)(appVersion);
34
+ return await core.invoke("dtr_logs_record_error", { payload, env, appVersion: v });
35
+ },
24
36
  },
25
- readRecordsFile: (relPath, maxBytes) => core.invoke("dtr_logs_read_file", { relPath, maxBytes }),
37
+ readRecordsFile: (relPath) => core.invoke("dtr_logs_read_file", { relPath }),
26
38
  // qui avevi chiamato dtr_logs_read_file: correggo su dtr_logs_list_files
27
39
  listRecordsFiles: (area) => core.invoke("dtr_logs_list_files", { area }),
28
40
  runRetention: () => core.invoke("dtr_logs_run_retention", {}),
@@ -1,33 +1,34 @@
1
- import { U32 } from "../../../utils";
1
+ import { U32, U64 } from "../../../utils";
2
2
  export interface DiagnosticsInterface {
3
3
  settings: {
4
- set: (settings?: PrivacySettings) => Promise<unknown>;
5
- get: () => Promise<unknown>;
4
+ set: (settings?: PrivacySettings) => Promise<PrivacySettingsCamelCase>;
5
+ get: () => Promise<PrivacySettingsCamelCase>;
6
6
  };
7
- newRecord: (recordType: string, payload: AnalyticsPayload, env: "js" | "native" | string) => Promise<unknown>;
7
+ newRecord: (recordType: string, payload: AnalyticsPayload, env: "js" | "native" | string, appVersion?: string) => Promise<void>;
8
8
  newError: {
9
- js: (payload: ErrorPayload) => Promise<unknown>;
10
- native: (payload: ErrorPayload) => Promise<unknown>;
11
- generic: (payload: ErrorPayload, env?: string) => Promise<unknown>;
9
+ js: (payload: ErrorPayload, appVersion?: string) => Promise<void>;
10
+ native: (payload: ErrorPayload, appVersion?: string) => Promise<void>;
11
+ generic: (payload: ErrorPayload, env?: string, appVersion?: string) => Promise<void>;
12
12
  };
13
- readRecordsFile: (relPath: string, maxBytes?: number) => Promise<Uint8Array<ArrayBufferLike>>;
14
- listRecordsFiles: (area: "logs" | "crashes") => Promise<unknown>;
15
- runRetention: () => Promise<unknown>;
16
- export: (targetZipPath: string) => Promise<unknown>;
13
+ readRecordsFile: (relPath: string) => Promise<string>;
14
+ listRecordsFiles: (area: DiagnosticsArea) => Promise<ListedFile[]>;
15
+ runRetention: () => Promise<void>;
16
+ export: (targetZipPath: string) => Promise<void>;
17
17
  test: DiagnosticsTestFunctions;
18
18
  }
19
+ export type DiagnosticsArea = "logs" | "crashes" | "runtime";
19
20
  export type DiagnosticsTestFunctions = {
20
21
  testGenerateRecords: (n?: number) => Promise<void>;
21
22
  testThrowJsError: () => Promise<never>;
22
23
  testPanicRust: () => Promise<void>;
23
24
  testExportZip: (path: string) => Promise<void>;
24
- testForceRetention: (area: "logs" | "analytics" | "crashes") => Promise<void>;
25
+ testForceRetention: (area: DiagnosticsArea) => Promise<void>;
25
26
  };
26
27
  export type ErrorPayload = {
27
28
  message: string;
28
29
  filename?: string;
29
- lineno?: number;
30
- colno?: number;
30
+ lineno?: U32;
31
+ colno?: U32;
31
32
  stack?: string;
32
33
  };
33
34
  export type AnalyticsPayload = {
@@ -35,9 +36,9 @@ export type AnalyticsPayload = {
35
36
  props?: Record<string, unknown>;
36
37
  };
37
38
  export type ListedFile = {
38
- relPath: string;
39
- bytes: number;
40
- modified_ms: number;
39
+ rel_path: string;
40
+ bytes: U64;
41
+ modified_ms: U64;
41
42
  };
42
43
  export type RecordPayload = ErrorPayload | AnalyticsPayload;
43
44
  export type PrivacySettings = {
@@ -47,3 +48,10 @@ export type PrivacySettings = {
47
48
  retentionDaysLogs?: U32;
48
49
  retentionDaysCrashes?: U32;
49
50
  };
51
+ export type PrivacySettingsCamelCase = {
52
+ analytics_enabled?: boolean;
53
+ crash_reports_enabled?: boolean;
54
+ retention_days_analytics?: U32;
55
+ retention_days_logs?: U32;
56
+ retention_days_crashes?: U32;
57
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "desktopr",
3
- "version": "2.0.2",
3
+ "version": "2.0.3",
4
4
  "description": "Official JS/TS SDK for the Desktopr native bridge",
5
5
  "main": "dist-sdk/sdk/index.js",
6
6
  "types": "dist-sdk/sdk/index.d.ts",
@@ -11,8 +11,9 @@
11
11
  "README.md"
12
12
  ],
13
13
  "scripts": {
14
- "build": "rm -rf dist-sdk && tsc -p ../tsconfig.sdk.json",
14
+ "syncVersion": "bash ../scripts/sync-api-version.sh",
15
+ "build": "rm -rf dist-sdk && npm run syncVersion && tsc -p ../tsconfig.sdk.json",
15
16
  "pub": "npm publish --access public",
16
17
  "prepublishOnly": "npm run build"
17
18
  }
18
- }
19
+ }