asyar-sdk 1.3.4 → 1.4.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/README.md CHANGED
@@ -30,6 +30,8 @@ The `asyar` CLI drives the full extension development workflow:
30
30
  | `asyar build` | Production build of your extension |
31
31
  | `asyar validate` | Check manifest and project structure |
32
32
  | `asyar link` | Symlink your extension into the app's extensions directory |
33
+ | `asyar attach` | Register an extension directory for dev loading in the launcher |
34
+ | `asyar detach` | Unregister a dev extension from the launcher |
33
35
  | `asyar publish` | Build, package, and publish to the Asyar Store |
34
36
  | `asyar doctor` | Diagnose environment issues |
35
37
  | `asyar --version` | Show CLI version |
@@ -40,6 +42,16 @@ The `publish` command includes automatic guards:
40
42
  - **Stale build detection** — blocks publishing if source files are newer than the build output
41
43
  - **Duplicate version check** — blocks publishing if the version is already live in the store
42
44
 
45
+ ### Dev Loading Workflow
46
+
47
+ The `attach` and `detach` commands enable a fast developer loop:
48
+
49
+ 1. **Attach**: `asyar attach .` — Builds the extension and registers its current directory with the Asyar App. The launcher will now load this extension directly from your project folder during development.
50
+ 2. **Bulk Attach**: `asyar attach --all /path/to/extensions` — Scans for and attaches all extensions in a category/folder.
51
+ 3. **Detach**: `asyar detach` — Removes the dev registration.
52
+
53
+ Unlike `asyar link`, which uses symlinks/copying into a specialized system directory, `attach` allows the launcher to read your project in-place (respecting your development build outputs).
54
+
43
55
  ## For Core Developers
44
56
 
45
57
  If you are contributing to the SDK itself, use the workspace setup described in the [Asyar README](https://github.com/Xoshbin/asyar#development-setup).
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerAttach(program: Command): void;
3
+ //# sourceMappingURL=attach.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attach.d.ts","sourceRoot":"","sources":["../../../cli/commands/attach.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QAgE9C"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.registerAttach = registerAttach;
39
+ const fs = __importStar(require("node:fs"));
40
+ const path = __importStar(require("node:path"));
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ const manifest_1 = require("../lib/manifest");
43
+ const platform_1 = require("../lib/platform");
44
+ const build_1 = require("./build");
45
+ function registerAttach(program) {
46
+ program
47
+ .command('attach [path]')
48
+ .description('Register an extension directory for dev loading in the launcher')
49
+ .option('--all', 'Scan [path] for subdirectories containing manifest.json and attach each one')
50
+ .option('--no-build', 'Skip building the extension(s)')
51
+ .action((targetPathArg, opts) => __awaiter(this, void 0, void 0, function* () {
52
+ try {
53
+ const targetPath = path.resolve(targetPathArg || process.cwd());
54
+ let extensionDirs = [];
55
+ if (opts.all) {
56
+ const subdirs = fs.readdirSync(targetPath, { withFileTypes: true })
57
+ .filter((dirent) => dirent.isDirectory())
58
+ .map((dirent) => path.join(targetPath, dirent.name));
59
+ extensionDirs = subdirs.filter((dir) => fs.existsSync(path.join(dir, 'manifest.json')));
60
+ if (extensionDirs.length === 0) {
61
+ console.log(chalk_1.default.red('✗ No extensions with manifest.json found in ' + targetPath));
62
+ return;
63
+ }
64
+ }
65
+ else {
66
+ if (!fs.existsSync(path.join(targetPath, 'manifest.json'))) {
67
+ throw new Error(`manifest.json not found in ${targetPath}`);
68
+ }
69
+ extensionDirs = [targetPath];
70
+ }
71
+ const devExtensionsFile = (0, platform_1.getDevExtensionsFile)();
72
+ const devExtensionsDir = path.dirname(devExtensionsFile);
73
+ if (!fs.existsSync(devExtensionsDir)) {
74
+ fs.mkdirSync(devExtensionsDir, { recursive: true });
75
+ }
76
+ let registry = {};
77
+ if (fs.existsSync(devExtensionsFile)) {
78
+ try {
79
+ registry = JSON.parse(fs.readFileSync(devExtensionsFile, 'utf-8'));
80
+ }
81
+ catch (_a) {
82
+ registry = {};
83
+ }
84
+ }
85
+ for (const dir of extensionDirs) {
86
+ const manifest = (0, manifest_1.readManifest)(dir);
87
+ if (opts.build !== false) {
88
+ yield (0, build_1.runViteBuild)(dir);
89
+ (0, build_1.verifyBuildOutput)(dir);
90
+ }
91
+ registry[manifest.id] = dir;
92
+ console.log(chalk_1.default.green('✓') + ` Attached ${manifest.name} (${manifest.id})`);
93
+ }
94
+ fs.writeFileSync(devExtensionsFile, JSON.stringify(registry, null, 2));
95
+ console.log(chalk_1.default.cyan(`\n${extensionDirs.length} extension(s) attached. Restart the launcher to load them.`));
96
+ }
97
+ catch (error) {
98
+ console.log(chalk_1.default.red('✗ ' + error.message));
99
+ process.exit(1);
100
+ }
101
+ }));
102
+ }
103
+ //# sourceMappingURL=attach.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attach.js","sourceRoot":"","sources":["../../../cli/commands/attach.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerDetach(program: Command): void;
3
+ //# sourceMappingURL=detach.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detach.d.ts","sourceRoot":"","sources":["../../../cli/commands/detach.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOnC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QAgE9C"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.registerDetach = registerDetach;
30
+ const fs = __importStar(require("node:fs"));
31
+ const path = __importStar(require("node:path"));
32
+ const chalk_1 = __importDefault(require("chalk"));
33
+ const manifest_1 = require("../lib/manifest");
34
+ const platform_1 = require("../lib/platform");
35
+ function registerDetach(program) {
36
+ program
37
+ .command('detach [id-or-path]')
38
+ .description('Unregister a dev extension from the launcher')
39
+ .option('--all', 'Remove all dev extension registrations')
40
+ .action((idOrPath, opts) => {
41
+ try {
42
+ const devExtensionsFile = (0, platform_1.getDevExtensionsFile)();
43
+ if (!fs.existsSync(devExtensionsFile)) {
44
+ console.log(chalk_1.default.yellow('No dev extensions registered.'));
45
+ return;
46
+ }
47
+ let registry = JSON.parse(fs.readFileSync(devExtensionsFile, 'utf-8'));
48
+ if (opts.all) {
49
+ const count = Object.keys(registry).length;
50
+ fs.writeFileSync(devExtensionsFile, JSON.stringify({}, null, 2));
51
+ console.log(chalk_1.default.green('✓') + ` Detached ${count} extension(s).`);
52
+ return;
53
+ }
54
+ let identifier = idOrPath;
55
+ if (!identifier) {
56
+ try {
57
+ const manifest = (0, manifest_1.readManifest)(process.cwd());
58
+ identifier = manifest.id;
59
+ }
60
+ catch (_a) {
61
+ console.log(chalk_1.default.red('Provide an extension ID, path, or run from inside an extension directory.'));
62
+ return;
63
+ }
64
+ }
65
+ let removedId;
66
+ if (identifier.includes('/') || identifier.includes('\\')) {
67
+ // It's a path
68
+ const fullPath = path.resolve(identifier);
69
+ for (const [id, dir] of Object.entries(registry)) {
70
+ if (path.resolve(dir) === fullPath) {
71
+ removedId = id;
72
+ delete registry[id];
73
+ break;
74
+ }
75
+ }
76
+ }
77
+ else {
78
+ // It's an ID
79
+ if (registry[identifier]) {
80
+ removedId = identifier;
81
+ delete registry[identifier];
82
+ }
83
+ }
84
+ if (!removedId) {
85
+ console.log(chalk_1.default.yellow(`Extension "${identifier}" is not registered as a dev extension.`));
86
+ return;
87
+ }
88
+ fs.writeFileSync(devExtensionsFile, JSON.stringify(registry, null, 2));
89
+ console.log(chalk_1.default.green('✓') + ` Detached ${removedId}`);
90
+ }
91
+ catch (error) {
92
+ console.log(chalk_1.default.red('✗ ' + error.message));
93
+ process.exit(1);
94
+ }
95
+ });
96
+ }
97
+ //# sourceMappingURL=detach.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detach.js","sourceRoot":"","sources":["../../../cli/commands/detach.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,wCAgEC;AAtED,4CAA6B;AAC7B,gDAAiC;AACjC,kDAAyB;AACzB,8CAA8C;AAC9C,8CAAsD;AAEtD,SAAgB,cAAc,CAAC,OAAgB;IAC7C,OAAO;SACJ,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,8CAA8C,CAAC;SAC3D,MAAM,CAAC,OAAO,EAAE,wCAAwC,CAAC;SACzD,MAAM,CAAC,CAAC,QAA4B,EAAE,IAAS,EAAE,EAAE;QAClD,IAAI,CAAC;YACH,MAAM,iBAAiB,GAAG,IAAA,+BAAoB,GAAE,CAAA;YAChD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAA;gBAC1D,OAAM;YACR,CAAC;YAED,IAAI,QAAQ,GAA2B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAA;YAE9F,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAA;gBAC1C,EAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;gBAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,aAAa,KAAK,gBAAgB,CAAC,CAAA;gBAClE,OAAM;YACR,CAAC;YAED,IAAI,UAAU,GAAG,QAAQ,CAAA;YACzB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,IAAA,uBAAY,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;oBAC5C,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAA;gBAC1B,CAAC;gBAAC,WAAM,CAAC;oBACP,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC,CAAA;oBACnG,OAAM;gBACR,CAAC;YACH,CAAC;YAED,IAAI,SAA6B,CAAA;YACjC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1D,cAAc;gBACd,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;gBACzC,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACjD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;wBACnC,SAAS,GAAG,EAAE,CAAA;wBACd,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAA;wBACnB,MAAK;oBACP,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,aAAa;gBACb,IAAI,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACzB,SAAS,GAAG,UAAU,CAAA;oBACtB,OAAO,QAAQ,CAAC,UAAU,CAAC,CAAA;gBAC7B,CAAC;YACH,CAAC;YAED,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,cAAc,UAAU,yCAAyC,CAAC,CAAC,CAAA;gBAC5F,OAAM;YACR,CAAC;YAED,EAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACtE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,aAAa,SAAS,EAAE,CAAC,CAAA;QAC1D,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;YAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
package/dist/cli/index.js CHANGED
@@ -10,6 +10,8 @@ const link_1 = require("./commands/link");
10
10
  const dev_1 = require("./commands/dev");
11
11
  const publish_1 = require("./commands/publish");
12
12
  const doctor_1 = require("./commands/doctor");
13
+ const attach_1 = require("./commands/attach");
14
+ const detach_1 = require("./commands/detach");
13
15
  const pkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.resolve)(__dirname, '..', '..', 'package.json'), 'utf-8'));
14
16
  commander_1.program
15
17
  .name('asyar')
@@ -21,5 +23,7 @@ commander_1.program
21
23
  (0, dev_1.registerDev)(commander_1.program);
22
24
  (0, publish_1.registerPublish)(commander_1.program);
23
25
  (0, doctor_1.registerDoctor)(commander_1.program);
26
+ (0, attach_1.registerAttach)(commander_1.program);
27
+ (0, detach_1.registerDetach)(commander_1.program);
24
28
  commander_1.program.parse(process.argv);
25
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../cli/index.ts"],"names":[],"mappings":";;;AACA,yCAAmC;AACnC,2BAAiC;AACjC,+BAA8B;AAC9B,kDAAsD;AACtD,4CAAgD;AAChD,0CAA8C;AAC9C,wCAA4C;AAC5C,gDAAoD;AACpD,8CAAkD;AAElD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAA,cAAO,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;AAE7F,mBAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,+BAA+B,CAAC;KAC5C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AAEvB,IAAA,2BAAgB,EAAC,mBAAO,CAAC,CAAA;AACzB,IAAA,qBAAa,EAAC,mBAAO,CAAC,CAAA;AACtB,IAAA,mBAAY,EAAC,mBAAO,CAAC,CAAA;AACrB,IAAA,iBAAW,EAAC,mBAAO,CAAC,CAAA;AACpB,IAAA,yBAAe,EAAC,mBAAO,CAAC,CAAA;AACxB,IAAA,uBAAc,EAAC,mBAAO,CAAC,CAAA;AAEvB,mBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../cli/index.ts"],"names":[],"mappings":";;;AACA,yCAAmC;AACnC,2BAAiC;AACjC,+BAA8B;AAC9B,kDAAsD;AACtD,4CAAgD;AAChD,0CAA8C;AAC9C,wCAA4C;AAC5C,gDAAoD;AACpD,8CAAkD;AAClD,8CAAkD;AAClD,8CAAkD;AAGlD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAA,cAAO,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;AAE7F,mBAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,+BAA+B,CAAC;KAC5C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AAEvB,IAAA,2BAAgB,EAAC,mBAAO,CAAC,CAAA;AACzB,IAAA,qBAAa,EAAC,mBAAO,CAAC,CAAA;AACtB,IAAA,mBAAY,EAAC,mBAAO,CAAC,CAAA;AACrB,IAAA,iBAAW,EAAC,mBAAO,CAAC,CAAA;AACpB,IAAA,yBAAe,EAAC,mBAAO,CAAC,CAAA;AACxB,IAAA,uBAAc,EAAC,mBAAO,CAAC,CAAA;AACvB,IAAA,uBAAc,EAAC,mBAAO,CAAC,CAAA;AACvB,IAAA,uBAAc,EAAC,mBAAO,CAAC,CAAA;AAGvB,mBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA"}
@@ -1,2 +1,4 @@
1
1
  export declare function getExtensionsDir(): string;
2
+ export declare function getAppDataDir(): string;
3
+ export declare function getDevExtensionsFile(): string;
2
4
  //# sourceMappingURL=platform.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../cli/lib/platform.ts"],"names":[],"mappings":"AAGA,wBAAgB,gBAAgB,IAAI,MAAM,CAmBzC"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../cli/lib/platform.ts"],"names":[],"mappings":"AAGA,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAmBtC;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
@@ -24,17 +24,25 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.getExtensionsDir = getExtensionsDir;
27
+ exports.getAppDataDir = getAppDataDir;
28
+ exports.getDevExtensionsFile = getDevExtensionsFile;
27
29
  const os = __importStar(require("os"));
28
30
  const path = __importStar(require("path"));
29
31
  function getExtensionsDir() {
32
+ return path.join(getAppDataDir(), 'extensions');
33
+ }
34
+ function getAppDataDir() {
30
35
  var _a, _b;
31
36
  switch (process.platform) {
32
37
  case 'darwin':
33
- return path.join(os.homedir(), 'Library', 'Application Support', 'org.asyar.app', 'extensions');
38
+ return path.join(os.homedir(), 'Library', 'Application Support', 'org.asyar.app');
34
39
  case 'win32':
35
- return path.join((_a = process.env.APPDATA) !== null && _a !== void 0 ? _a : path.join(os.homedir(), 'AppData', 'Roaming'), 'org.asyar.app', 'extensions');
40
+ return path.join((_a = process.env.APPDATA) !== null && _a !== void 0 ? _a : path.join(os.homedir(), 'AppData', 'Roaming'), 'org.asyar.app');
36
41
  default: // linux — respects XDG_DATA_HOME
37
- return path.join((_b = process.env.XDG_DATA_HOME) !== null && _b !== void 0 ? _b : path.join(os.homedir(), '.local', 'share'), 'org.asyar.app', 'extensions');
42
+ return path.join((_b = process.env.XDG_DATA_HOME) !== null && _b !== void 0 ? _b : path.join(os.homedir(), '.local', 'share'), 'org.asyar.app');
38
43
  }
39
44
  }
45
+ function getDevExtensionsFile() {
46
+ return path.join(getAppDataDir(), 'dev_extensions.json');
47
+ }
40
48
  //# sourceMappingURL=platform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../../cli/lib/platform.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAGA,4CAmBC;AAtBD,uCAAwB;AACxB,2CAA4B;AAE5B,SAAgB,gBAAgB;;IAC9B,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC,IAAI,CACd,EAAE,CAAC,OAAO,EAAE,EACZ,SAAS,EAAE,qBAAqB,EAChC,eAAe,EAAE,YAAY,CAC9B,CAAA;QACH,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,IAAI,CACd,MAAA,OAAO,CAAC,GAAG,CAAC,OAAO,mCAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,EACpE,eAAe,EAAE,YAAY,CAC9B,CAAA;QACH,SAAS,iCAAiC;YACxC,OAAO,IAAI,CAAC,IAAI,CACd,MAAA,OAAO,CAAC,GAAG,CAAC,aAAa,mCAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,EACvE,eAAe,EAAE,YAAY,CAC9B,CAAA;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../../cli/lib/platform.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAGA,4CAEC;AAED,sCAmBC;AAED,oDAEC;AA9BD,uCAAwB;AACxB,2CAA4B;AAE5B,SAAgB,gBAAgB;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,YAAY,CAAC,CAAA;AACjD,CAAC;AAED,SAAgB,aAAa;;IAC3B,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC,IAAI,CACd,EAAE,CAAC,OAAO,EAAE,EACZ,SAAS,EAAE,qBAAqB,EAChC,eAAe,CAChB,CAAA;QACH,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,IAAI,CACd,MAAA,OAAO,CAAC,GAAG,CAAC,OAAO,mCAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,EACpE,eAAe,CAChB,CAAA;QACH,SAAS,iCAAiC;YACxC,OAAO,IAAI,CAAC,IAAI,CACd,MAAA,OAAO,CAAC,GAAG,CAAC,aAAa,mCAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,EACvE,eAAe,CAChB,CAAA;IACL,CAAC;AACH,CAAC;AAED,SAAgB,oBAAoB;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,qBAAqB,CAAC,CAAA;AAC1D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ClipboardHistoryServiceProxy.d.ts","sourceRoot":"","sources":["../../src/services/ClipboardHistoryServiceProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,qBAAa,4BAA6B,SAAQ,gBAAiB,YAAW,wBAAwB;IACpG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,cAAc,IAAI,IAAI;IAItB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IAOvD,SAAS,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAI/D,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5C,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAK3C,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI1C,oBAAoB,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,iBAAiB,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAG9E"}
1
+ {"version":3,"file":"ClipboardHistoryServiceProxy.d.ts","sourceRoot":"","sources":["../../src/services/ClipboardHistoryServiceProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,qBAAa,4BAA6B,SAAQ,gBAAiB,YAAW,wBAAwB;IACpG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,cAAc,IAAI,IAAI;IAItB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IAkBvD,SAAS,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAI/D,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5C,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAK3C,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI1C,oBAAoB,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,iBAAiB,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAG9E"}
@@ -14,6 +14,18 @@ class ClipboardHistoryServiceProxy extends BaseServiceProxy_1.BaseServiceProxy {
14
14
  if (item.type === types_1.ClipboardItemType.Text || item.type === types_1.ClipboardItemType.Html) {
15
15
  return item.content || '';
16
16
  }
17
+ if (item.type === types_1.ClipboardItemType.Rtf) {
18
+ return item.content || '[RTF item]';
19
+ }
20
+ if (item.type === types_1.ClipboardItemType.Files) {
21
+ try {
22
+ const paths = JSON.parse(item.content || '[]');
23
+ return `[${paths.length} file${paths.length !== 1 ? 's' : ''}]`;
24
+ }
25
+ catch (_a) {
26
+ return '[Files]';
27
+ }
28
+ }
17
29
  return `[${item.type} item]`;
18
30
  }
19
31
  pasteItem(item) {
@@ -1 +1 @@
1
- {"version":3,"file":"ClipboardHistoryServiceProxy.js","sourceRoot":"","sources":["../../src/services/ClipboardHistoryServiceProxy.ts"],"names":[],"mappings":";;;AAEA,oCAA6C;AAC7C,yDAAsD;AAEtD,MAAa,4BAA6B,SAAQ,mCAAgB;IAChE,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAO,sBAAsB,CAAC,CAAC;IAC1D,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtE,CAAC;IAED,mBAAmB,CAAC,IAA0B;QAC5C,IAAI,IAAI,CAAC,IAAI,KAAK,yBAAiB,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,yBAAiB,CAAC,IAAI,EAAE,CAAC;YACjF,OAAO,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,IAAI,CAAC,IAAI,QAAQ,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,IAA0B;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAO,qBAAqB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAO,sBAAsB,CAAC,CAAC;IAC1D,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAU,yBAAyB,CAAC,CAAC;IAChE,CAAC;IAED,gBAAgB,CAAC,IAA0B;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAO,4BAA4B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,cAAc,CAAC,KAAc;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAyB,0BAA0B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,kBAAkB,CAAC,MAAc;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAU,8BAA8B,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,UAAU,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAU,sBAAsB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAU,6BAA6B,CAAC,CAAC;IACpE,CAAC;IAED,kBAAkB,CAAC,OAAe;QAChC,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,OAAO,OAAO,CAAC;QACrD,OAAO,yBAAyB,OAAO,EAAE,CAAC;IAC5C,CAAC;IAED,gBAAgB,CAAC,OAAe;QAC9B,OAAO,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/E,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAA+C,gCAAgC,CAAC,CAAC;IAC5G,CAAC;CACF;AA5DD,oEA4DC"}
1
+ {"version":3,"file":"ClipboardHistoryServiceProxy.js","sourceRoot":"","sources":["../../src/services/ClipboardHistoryServiceProxy.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,20 @@
4
4
  export declare enum ClipboardItemType {
5
5
  Text = "text",
6
6
  Html = "html",
7
- Image = "image"
7
+ Rtf = "rtf",
8
+ Image = "image",
9
+ Files = "files"
10
+ }
11
+ /**
12
+ * Optional metadata for clipboard items
13
+ */
14
+ export interface ClipboardItemMetadata {
15
+ width?: number;
16
+ height?: number;
17
+ fileCount?: number;
18
+ fileNames?: string[];
19
+ sizeBytes?: number;
20
+ mimeType?: string;
8
21
  }
9
22
  /**
10
23
  * Interface for clipboard history items that can be safely exposed externally
@@ -16,5 +29,6 @@ export interface ClipboardHistoryItem {
16
29
  preview?: string;
17
30
  createdAt: number;
18
31
  favorite: boolean;
32
+ metadata?: ClipboardItemMetadata;
19
33
  }
20
34
  //# sourceMappingURL=ClipboardType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClipboardType.d.ts","sourceRoot":"","sources":["../../src/types/ClipboardType.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB"}
1
+ {"version":3,"file":"ClipboardType.d.ts","sourceRoot":"","sources":["../../src/types/ClipboardType.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,IAAI,SAAS;IACb,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC"}
@@ -8,6 +8,8 @@ var ClipboardItemType;
8
8
  (function (ClipboardItemType) {
9
9
  ClipboardItemType["Text"] = "text";
10
10
  ClipboardItemType["Html"] = "html";
11
+ ClipboardItemType["Rtf"] = "rtf";
11
12
  ClipboardItemType["Image"] = "image";
13
+ ClipboardItemType["Files"] = "files";
12
14
  })(ClipboardItemType || (exports.ClipboardItemType = ClipboardItemType = {}));
13
15
  //# sourceMappingURL=ClipboardType.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClipboardType.js","sourceRoot":"","sources":["../../src/types/ClipboardType.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,oCAAe,CAAA;AACjB,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B"}
1
+ {"version":3,"file":"ClipboardType.js","sourceRoot":"","sources":["../../src/types/ClipboardType.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,iBAMX;AAND,WAAY,iBAAiB;IAC3B,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,gCAAW,CAAA;IACX,oCAAe,CAAA;IACf,oCAAe,CAAA;AACjB,CAAC,EANW,iBAAiB,iCAAjB,iBAAiB,QAM5B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "asyar-sdk",
3
- "version": "1.3.4",
3
+ "version": "1.4.0",
4
4
  "main": "dist/index.js",
5
5
  "bin": {
6
6
  "asyar": "./dist/cli/index.js"