@yubild/cli 0.1.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/dist/commands/deploy.d.ts +6 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +73 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/diff.d.ts +6 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +97 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/export.d.ts +9 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +93 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/init.d.ts +8 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +95 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/login.d.ts +9 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +81 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +6 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +17 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/projects.d.ts +6 -0
- package/dist/commands/projects.d.ts.map +1 -0
- package/dist/commands/projects.js +76 -0
- package/dist/commands/projects.js.map +1 -0
- package/dist/commands/publish.d.ts +8 -0
- package/dist/commands/publish.d.ts.map +1 -0
- package/dist/commands/publish.js +81 -0
- package/dist/commands/publish.js.map +1 -0
- package/dist/commands/pull.d.ts +8 -0
- package/dist/commands/pull.d.ts.map +1 -0
- package/dist/commands/pull.js +86 -0
- package/dist/commands/pull.js.map +1 -0
- package/dist/commands/push.d.ts +6 -0
- package/dist/commands/push.d.ts.map +1 -0
- package/dist/commands/push.js +73 -0
- package/dist/commands/push.js.map +1 -0
- package/dist/commands/sync.d.ts +8 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +111 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/watch.d.ts +8 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +91 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/commands/whoami.d.ts +6 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +32 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +89 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api-client.d.ts +141 -0
- package/dist/lib/api-client.d.ts.map +1 -0
- package/dist/lib/api-client.js +154 -0
- package/dist/lib/api-client.js.map +1 -0
- package/dist/lib/auth.d.ts +36 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +108 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/config.d.ts +28 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +100 -0
- package/dist/lib/config.js.map +1 -0
- package/package.json +30 -0
- package/src/commands/deploy.ts +42 -0
- package/src/commands/diff.ts +81 -0
- package/src/commands/export.ts +71 -0
- package/src/commands/init.ts +69 -0
- package/src/commands/login.ts +52 -0
- package/src/commands/logout.ts +16 -0
- package/src/commands/projects.ts +53 -0
- package/src/commands/publish.ts +51 -0
- package/src/commands/pull.ts +59 -0
- package/src/commands/push.ts +42 -0
- package/src/commands/sync.ts +86 -0
- package/src/commands/watch.ts +71 -0
- package/src/commands/whoami.ts +31 -0
- package/src/index.ts +104 -0
- package/src/lib/api-client.ts +231 -0
- package/src/lib/auth.ts +86 -0
- package/src/lib/config.ts +77 -0
- package/src/types/esm-modules.d.ts +41 -0
- package/tsconfig.json +19 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* yubild projects
|
|
4
|
+
* List all projects
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.projectsCommand = projectsCommand;
|
|
41
|
+
const auth_1 = require("../lib/auth");
|
|
42
|
+
const api_client_1 = require("../lib/api-client");
|
|
43
|
+
async function projectsCommand() {
|
|
44
|
+
if (!(0, auth_1.isAuthenticated)()) {
|
|
45
|
+
console.error('Error: Not authenticated. Run `yubild login` first.');
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
const { default: chalk } = await Promise.resolve().then(() => __importStar(require('chalk')));
|
|
49
|
+
try {
|
|
50
|
+
const client = new api_client_1.ApiClient();
|
|
51
|
+
const { projects } = await client.listProjects();
|
|
52
|
+
if (projects.length === 0) {
|
|
53
|
+
console.log('No projects found.');
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const padName = Math.max(...projects.map((p) => p.name.length), 4);
|
|
57
|
+
const padSlug = Math.max(...projects.map((p) => p.slug.length), 4);
|
|
58
|
+
const padVersion = Math.max(...projects.map((p) => p.version.length), 7);
|
|
59
|
+
const padFramework = Math.max(...projects.map((p) => p.framework.length), 9);
|
|
60
|
+
console.log('');
|
|
61
|
+
console.log(` ${chalk.bold('Name'.padEnd(padName))} ${chalk.bold('Slug'.padEnd(padSlug))} ${chalk.bold('Version'.padEnd(padVersion))} ${chalk.bold('Framework'.padEnd(padFramework))} ${chalk.bold('Last Updated')}`);
|
|
62
|
+
console.log(` ${''.padEnd(padName, '-')} ${''.padEnd(padSlug, '-')} ${''.padEnd(padVersion, '-')} ${''.padEnd(padFramework, '-')} ${''.padEnd(20, '-')}`);
|
|
63
|
+
for (const project of projects) {
|
|
64
|
+
const updatedAt = new Date(project.updatedAt).toLocaleDateString();
|
|
65
|
+
console.log(` ${project.name.padEnd(padName)} ${chalk.gray(project.slug.padEnd(padSlug))} ${chalk.cyan(project.version.padEnd(padVersion))} ${project.framework.padEnd(padFramework)} ${chalk.gray(updatedAt)}`);
|
|
66
|
+
}
|
|
67
|
+
console.log('');
|
|
68
|
+
console.log(` ${chalk.gray(`${projects.length} project(s)`)}`);
|
|
69
|
+
console.log('');
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
console.error(`\nFailed to list projects: ${error.message}`);
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,IAAI,CAAC,CAuChB"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* yubild publish
|
|
4
|
+
* Publish design tokens to Git via Pull Request
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.publishCommand = publishCommand;
|
|
41
|
+
const config_1 = require("../lib/config");
|
|
42
|
+
const auth_1 = require("../lib/auth");
|
|
43
|
+
const api_client_1 = require("../lib/api-client");
|
|
44
|
+
async function publishCommand(options) {
|
|
45
|
+
if (!(0, auth_1.isAuthenticated)()) {
|
|
46
|
+
console.error('Error: Not authenticated. Run `yubild login` first.');
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
const config = (0, config_1.loadConfig)();
|
|
50
|
+
if (!config) {
|
|
51
|
+
console.error('Error: No .yubildrc found. Run `yubild init` first.');
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
const { default: chalk } = await Promise.resolve().then(() => __importStar(require('chalk')));
|
|
55
|
+
const { default: ora } = await Promise.resolve().then(() => __importStar(require('ora')));
|
|
56
|
+
const spinner = ora('Creating Pull Request...').start();
|
|
57
|
+
try {
|
|
58
|
+
const client = new api_client_1.ApiClient();
|
|
59
|
+
const result = await client.publishToGit(config.projectId, options.repo);
|
|
60
|
+
if (result.published) {
|
|
61
|
+
spinner.succeed('Pull Request created!');
|
|
62
|
+
console.log('');
|
|
63
|
+
if (result.prUrl) {
|
|
64
|
+
console.log(` PR URL: ${chalk.green(result.prUrl)}`);
|
|
65
|
+
}
|
|
66
|
+
if (result.prNumber) {
|
|
67
|
+
console.log(` PR #${chalk.cyan(String(result.prNumber))}`);
|
|
68
|
+
}
|
|
69
|
+
console.log('');
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
spinner.warn('Publish completed but no PR was created.');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
spinner.fail('Publish failed');
|
|
77
|
+
console.error(`\nFailed to publish: ${error.message}`);
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=publish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMH,wCAyCC;AA7CD,0CAA2C;AAC3C,sCAA8C;AAC9C,kDAA8C;AAEvC,KAAK,UAAU,cAAc,CAAC,OAEpC;IACC,IAAI,CAAC,IAAA,sBAAe,GAAE,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,wDAAa,OAAO,GAAC,CAAC;IACjD,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,wDAAa,KAAK,GAAC,CAAC;IAE7C,MAAM,OAAO,GAAG,GAAG,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;IAExD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,sBAAS,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAEzE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,wBAAyB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,wBAAsB,WAAW,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+C7E"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* yubild pull
|
|
4
|
+
* Pull design tokens from Yubild and write them to local files
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.pullCommand = pullCommand;
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
const config_1 = require("../lib/config");
|
|
44
|
+
const auth_1 = require("../lib/auth");
|
|
45
|
+
const api_client_1 = require("../lib/api-client");
|
|
46
|
+
async function pullCommand(options) {
|
|
47
|
+
if (!(0, auth_1.isAuthenticated)()) {
|
|
48
|
+
console.error('Error: Not authenticated. Run `yubild login` first.');
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
const config = (0, config_1.loadConfig)();
|
|
52
|
+
if (!config) {
|
|
53
|
+
console.error('Error: No .yubildrc found. Run `yubild init` first.');
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
const formats = options.format ? [options.format] : config.formats;
|
|
57
|
+
console.log(`Pulling tokens for project ${config.projectId}...`);
|
|
58
|
+
console.log(`Formats: ${formats.join(', ')}`);
|
|
59
|
+
try {
|
|
60
|
+
const client = new api_client_1.ApiClient();
|
|
61
|
+
const { files, version } = await client.pullTokens(config.projectId, formats);
|
|
62
|
+
// Ensure output directory exists
|
|
63
|
+
const outputDir = path.resolve(config.outputDir);
|
|
64
|
+
if (!fs.existsSync(outputDir)) {
|
|
65
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
66
|
+
}
|
|
67
|
+
// Write each file
|
|
68
|
+
let writtenCount = 0;
|
|
69
|
+
for (const file of files) {
|
|
70
|
+
const filePath = path.join(outputDir, file.path);
|
|
71
|
+
const fileDir = path.dirname(filePath);
|
|
72
|
+
if (!fs.existsSync(fileDir)) {
|
|
73
|
+
fs.mkdirSync(fileDir, { recursive: true });
|
|
74
|
+
}
|
|
75
|
+
fs.writeFileSync(filePath, file.content, 'utf-8');
|
|
76
|
+
writtenCount++;
|
|
77
|
+
console.log(` Written: ${file.path}`);
|
|
78
|
+
}
|
|
79
|
+
console.log(`\nPulled ${writtenCount} files (v${version}) to ${config.outputDir}\n`);
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
console.error(`\nFailed to pull tokens: ${error.message}`);
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=pull.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQH,kCA+CC;AArDD,uCAAyB;AACzB,2CAA6B;AAC7B,0CAA2C;AAC3C,sCAA8C;AAC9C,kDAA8C;AAEvC,KAAK,UAAU,WAAW,CAAC,OAA4B;IAC5D,IAAI,CAAC,IAAA,sBAAe,GAAE,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IAEnE,OAAO,CAAC,GAAG,CAAC,8BAA8B,MAAM,CAAC,SAAS,KAAK,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,sBAAS,EAAE,CAAC;QAC/B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE9E,iCAAiC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,kBAAkB;QAClB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,CAAC;YAED,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAClD,YAAY,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,YAAY,YAAY,YAAY,OAAO,QAAQ,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4BAA6B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAgCjD"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* yubild push
|
|
4
|
+
* Push design tokens to Figma
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.pushCommand = pushCommand;
|
|
41
|
+
const config_1 = require("../lib/config");
|
|
42
|
+
const auth_1 = require("../lib/auth");
|
|
43
|
+
const api_client_1 = require("../lib/api-client");
|
|
44
|
+
async function pushCommand() {
|
|
45
|
+
if (!(0, auth_1.isAuthenticated)()) {
|
|
46
|
+
console.error('Error: Not authenticated. Run `yubild login` first.');
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
const config = (0, config_1.loadConfig)();
|
|
50
|
+
if (!config) {
|
|
51
|
+
console.error('Error: No .yubildrc found. Run `yubild init` first.');
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
const { default: chalk } = await Promise.resolve().then(() => __importStar(require('chalk')));
|
|
55
|
+
const { default: ora } = await Promise.resolve().then(() => __importStar(require('ora')));
|
|
56
|
+
const spinner = ora('Pushing tokens to Figma...').start();
|
|
57
|
+
try {
|
|
58
|
+
const client = new api_client_1.ApiClient();
|
|
59
|
+
const result = await client.pushToFigma(config.projectId);
|
|
60
|
+
spinner.succeed('Tokens pushed to Figma!');
|
|
61
|
+
console.log('');
|
|
62
|
+
console.log(` Project: ${chalk.cyan(result.data.projectName)}`);
|
|
63
|
+
console.log(` Variables: ${result.data.variables.length}`);
|
|
64
|
+
console.log(` Exported at: ${chalk.gray(result.data.exportedAt)}`);
|
|
65
|
+
console.log('');
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
spinner.fail('Push failed');
|
|
69
|
+
console.error(`\nFailed to push tokens: ${error.message}`);
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=push.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMH,kCAgCC;AApCD,0CAA2C;AAC3C,sCAA8C;AAC9C,kDAA8C;AAEvC,KAAK,UAAU,WAAW;IAC/B,IAAI,CAAC,IAAA,sBAAe,GAAE,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,wDAAa,OAAO,GAAC,CAAC;IACjD,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,wDAAa,KAAK,GAAC,CAAC;IAE7C,MAAM,OAAO,GAAG,GAAG,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;IAE1D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,sBAAS,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE1D,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,4BAA6B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,wBAAsB,WAAW,CAAC,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4EjF"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* yubild sync
|
|
4
|
+
* Sync design tokens between local project and Figma
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.syncCommand = syncCommand;
|
|
41
|
+
const config_1 = require("../lib/config");
|
|
42
|
+
const auth_1 = require("../lib/auth");
|
|
43
|
+
const api_client_1 = require("../lib/api-client");
|
|
44
|
+
async function syncCommand(options) {
|
|
45
|
+
if (!(0, auth_1.isAuthenticated)()) {
|
|
46
|
+
console.error('Error: Not authenticated. Run `yubild login` first.');
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
const config = (0, config_1.loadConfig)();
|
|
50
|
+
if (!config) {
|
|
51
|
+
console.error('Error: No .yubildrc found. Run `yubild init` first.');
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
const { default: chalk } = await Promise.resolve().then(() => __importStar(require('chalk')));
|
|
55
|
+
const { default: ora } = await Promise.resolve().then(() => __importStar(require('ora')));
|
|
56
|
+
const spinner = ora('Syncing with Figma...').start();
|
|
57
|
+
try {
|
|
58
|
+
const client = new api_client_1.ApiClient();
|
|
59
|
+
const result = await client.syncTokens(config.projectId, options.autoMerge ?? false);
|
|
60
|
+
if (result.synced) {
|
|
61
|
+
spinner.succeed('Sync complete!');
|
|
62
|
+
const summary = result.summary;
|
|
63
|
+
if (summary) {
|
|
64
|
+
console.log('');
|
|
65
|
+
console.log(` ${chalk.green(`+ ${summary.added} added`)}`);
|
|
66
|
+
console.log(` ${chalk.yellow(`~ ${summary.modified} modified`)}`);
|
|
67
|
+
console.log(` ${chalk.red(`- ${summary.removed} removed`)}`);
|
|
68
|
+
console.log(` ${chalk.gray(` ${summary.unchanged} unchanged`)}`);
|
|
69
|
+
}
|
|
70
|
+
if (result.warnings && result.warnings.length > 0) {
|
|
71
|
+
console.log('');
|
|
72
|
+
for (const warning of result.warnings) {
|
|
73
|
+
console.log(` ${chalk.yellow('Warning:')} ${warning}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
spinner.warn('Sync requires conflict resolution');
|
|
79
|
+
if (result.diff) {
|
|
80
|
+
console.log('');
|
|
81
|
+
console.log('Diff:');
|
|
82
|
+
console.log('');
|
|
83
|
+
const padKey = Math.max(...result.diff.entries.map((e) => e.tokenKey.length), 10);
|
|
84
|
+
const padStatus = 10;
|
|
85
|
+
console.log(` ${'Token'.padEnd(padKey)} ${'Status'.padEnd(padStatus)} ${'Local'.padEnd(20)} Figma`);
|
|
86
|
+
console.log(` ${''.padEnd(padKey, '-')} ${''.padEnd(padStatus, '-')} ${''.padEnd(20, '-')} ${''.padEnd(20, '-')}`);
|
|
87
|
+
for (const entry of result.diff.entries) {
|
|
88
|
+
const statusColor = entry.status === 'added'
|
|
89
|
+
? chalk.green
|
|
90
|
+
: entry.status === 'modified'
|
|
91
|
+
? chalk.yellow
|
|
92
|
+
: entry.status === 'removed'
|
|
93
|
+
? chalk.red
|
|
94
|
+
: chalk.gray;
|
|
95
|
+
console.log(` ${entry.tokenKey.padEnd(padKey)} ${statusColor(entry.status.padEnd(padStatus))} ${(entry.localValue ?? '-').padEnd(20)} ${entry.figmaValue ?? '-'}`);
|
|
96
|
+
}
|
|
97
|
+
const s = result.diff.summary;
|
|
98
|
+
console.log('');
|
|
99
|
+
console.log(` Summary: ${chalk.green(`+${s.added}`)} ${chalk.yellow(`~${s.modified}`)} ${chalk.red(`-${s.removed}`)} ${chalk.gray(`${s.unchanged} unchanged`)}`);
|
|
100
|
+
}
|
|
101
|
+
console.log('');
|
|
102
|
+
console.log(` Use ${chalk.cyan('yubild sync --auto-merge')} to auto-merge, or resolve conflicts in the Yubild UI.`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
spinner.fail('Sync failed');
|
|
107
|
+
console.error(`\nFailed to sync tokens: ${error.message}`);
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DhB"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* yubild watch
|
|
4
|
+
* Watch for token changes and auto-sync
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.watchCommand = watchCommand;
|
|
41
|
+
const config_1 = require("../lib/config");
|
|
42
|
+
const auth_1 = require("../lib/auth");
|
|
43
|
+
const api_client_1 = require("../lib/api-client");
|
|
44
|
+
async function watchCommand(options) {
|
|
45
|
+
if (!(0, auth_1.isAuthenticated)()) {
|
|
46
|
+
console.error('Error: Not authenticated. Run `yubild login` first.');
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
const config = (0, config_1.loadConfig)();
|
|
50
|
+
if (!config) {
|
|
51
|
+
console.error('Error: No .yubildrc found. Run `yubild init` first.');
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
const { default: chalk } = await Promise.resolve().then(() => __importStar(require('chalk')));
|
|
55
|
+
const intervalSeconds = parseInt(options.interval ?? '30', 10);
|
|
56
|
+
if (isNaN(intervalSeconds) || intervalSeconds < 5) {
|
|
57
|
+
console.error('Error: Interval must be a number >= 5 seconds.');
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
const client = new api_client_1.ApiClient();
|
|
61
|
+
console.log(chalk.cyan(`Watching for changes every ${intervalSeconds}s... (Ctrl+C to stop)`));
|
|
62
|
+
console.log('');
|
|
63
|
+
const check = async () => {
|
|
64
|
+
try {
|
|
65
|
+
const diff = await client.diffTokens(config.projectId);
|
|
66
|
+
const totalChanges = diff.summary.added + diff.summary.modified + diff.summary.removed;
|
|
67
|
+
if (totalChanges === 0) {
|
|
68
|
+
console.log(chalk.gray(`[${new Date().toLocaleTimeString()}] No changes detected.`));
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
console.log(chalk.yellow(`[${new Date().toLocaleTimeString()}] Changes detected: `) +
|
|
72
|
+
`${chalk.green(`+${diff.summary.added}`)} ${chalk.yellow(`~${diff.summary.modified}`)} ${chalk.red(`-${diff.summary.removed}`)}`);
|
|
73
|
+
console.log(chalk.cyan(' Auto-syncing...'));
|
|
74
|
+
const result = await client.syncTokens(config.projectId, true);
|
|
75
|
+
if (result.synced) {
|
|
76
|
+
console.log(chalk.green(' Sync complete!'));
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
console.log(chalk.yellow(' Sync requires manual resolution. Run `yubild sync` to resolve.'));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
console.error(chalk.red(` Error: ${error.message}`));
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
// Run immediately on start
|
|
87
|
+
await check();
|
|
88
|
+
// Then run on interval
|
|
89
|
+
setInterval(check, intervalSeconds * 1000);
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=watch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAsBnD"}
|