lua-cli 3.5.0-alpha.9 โ 3.5.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/api/backup.api.service.d.ts +9 -12
- package/dist/api/backup.api.service.d.ts.map +1 -1
- package/dist/api/backup.api.service.js +11 -11
- package/dist/api/backup.api.service.js.map +1 -1
- package/dist/api/unifiedto.api.service.d.ts +30 -2
- package/dist/api/unifiedto.api.service.d.ts.map +1 -1
- package/dist/api/unifiedto.api.service.js +17 -2
- package/dist/api/unifiedto.api.service.js.map +1 -1
- package/dist/cli/command-definitions.d.ts.map +1 -1
- package/dist/cli/command-definitions.js +9 -1
- package/dist/cli/command-definitions.js.map +1 -1
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/integrations.d.ts.map +1 -1
- package/dist/commands/integrations.js +111 -250
- package/dist/commands/integrations.js.map +1 -1
- package/dist/commands/pushBackup.d.ts +3 -2
- package/dist/commands/pushBackup.d.ts.map +1 -1
- package/dist/commands/pushBackup.js +11 -20
- package/dist/commands/pushBackup.js.map +1 -1
- package/dist/commands/update.d.ts +14 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +81 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/compiler/plugins/job.plugin.d.ts.map +1 -1
- package/dist/compiler/plugins/job.plugin.js +2 -3
- package/dist/compiler/plugins/job.plugin.js.map +1 -1
- package/dist/index.js +22 -20
- package/dist/index.js.map +1 -1
- package/dist/interfaces/backup.d.ts +0 -25
- package/dist/interfaces/backup.d.ts.map +1 -1
- package/dist/interfaces/unifiedto.d.ts +26 -0
- package/dist/interfaces/unifiedto.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/backup-helpers.d.ts +9 -7
- package/dist/utils/backup-helpers.d.ts.map +1 -1
- package/dist/utils/backup-helpers.js +54 -22
- package/dist/utils/backup-helpers.js.map +1 -1
- package/dist/utils/cli.d.ts +2 -1
- package/dist/utils/cli.d.ts.map +1 -1
- package/dist/utils/cli.js +42 -2
- package/dist/utils/cli.js.map +1 -1
- package/dist/utils/version-check.d.ts +37 -0
- package/dist/utils/version-check.d.ts.map +1 -0
- package/dist/utils/version-check.js +120 -0
- package/dist/utils/version-check.js.map +1 -0
- package/docs/README.md +2 -2
- package/package.json +1 -1
- package/template/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -37,49 +37,51 @@ Categories:
|
|
|
37
37
|
๐ Authentication Manage API keys and authentication
|
|
38
38
|
๐ Project Setup Initialize and configure projects
|
|
39
39
|
๐ฆ Development Build and test your skills locally
|
|
40
|
-
โ๏ธ
|
|
41
|
-
๐ฌ Testing
|
|
42
|
-
โ๏ธ
|
|
43
|
-
๐ Utilities
|
|
40
|
+
โ๏ธ Deployment Push and deploy to production
|
|
41
|
+
๐ฌ Testing Chat and test your agent
|
|
42
|
+
โ๏ธ Configuration Manage environment and persona
|
|
43
|
+
๐ Utilities Quick access to admin and docs
|
|
44
44
|
|
|
45
45
|
Examples:
|
|
46
|
-
$ lua auth configure
|
|
46
|
+
$ lua auth configure ๐ Set up your API key
|
|
47
47
|
$ lua init ๐ Initialize a new project
|
|
48
48
|
$ lua compile ๐ฆ Compile your skills
|
|
49
49
|
$ lua test ๐งช Test tools interactively
|
|
50
|
-
$ lua push โ๏ธ
|
|
51
|
-
$ lua push skill โ๏ธ
|
|
52
|
-
$ lua push persona โ๏ธ
|
|
50
|
+
$ lua push โ๏ธ Push to server (interactive)
|
|
51
|
+
$ lua push skill โ๏ธ Push skill directly
|
|
52
|
+
$ lua push persona โ๏ธ Push persona directly
|
|
53
53
|
$ lua deploy ๐ Deploy to production
|
|
54
54
|
$ lua chat ๐ฌ Start interactive chat
|
|
55
|
-
$ lua env โ๏ธ
|
|
56
|
-
$ lua env staging โ๏ธ
|
|
57
|
-
$ lua env production โ๏ธ
|
|
55
|
+
$ lua env โ๏ธ Manage environment variables (interactive)
|
|
56
|
+
$ lua env staging โ๏ธ Manage staging env vars directly
|
|
57
|
+
$ lua env production โ๏ธ Manage production env vars directly
|
|
58
58
|
$ lua persona ๐ค Manage agent persona (interactive)
|
|
59
59
|
$ lua persona staging ๐ค Manage staging persona directly
|
|
60
60
|
$ lua persona production ๐ค Manage production persona directly
|
|
61
|
-
$ lua skills โ๏ธ
|
|
62
|
-
$ lua skills staging โ๏ธ
|
|
63
|
-
$ lua skills production โ๏ธ
|
|
61
|
+
$ lua skills โ๏ธ Manage skills (interactive)
|
|
62
|
+
$ lua skills staging โ๏ธ View staging skills directly
|
|
63
|
+
$ lua skills production โ๏ธ Manage production skills directly
|
|
64
64
|
$ lua features ๐ฏ Manage agent features
|
|
65
65
|
$ lua admin ๐ง Open admin dashboard
|
|
66
66
|
$ lua evals ๐ Open evaluations dashboard
|
|
67
67
|
$ lua docs ๐ Open documentation
|
|
68
68
|
$ lua completion ๐ฏ Enable shell autocomplete
|
|
69
|
-
$ lua marketplace ๐๏ธ
|
|
69
|
+
$ lua marketplace ๐๏ธ Interact with the Lua Marketplace
|
|
70
70
|
|
|
71
71
|
๐ Documentation: https://docs.heylua.ai
|
|
72
72
|
๐ Support: https://heylua.ai/support
|
|
73
73
|
`);
|
|
74
|
+
// Set CI mode before any command runs (must happen before parse, since actions are async)
|
|
75
|
+
program.hook('preAction', (thisCommand) => {
|
|
76
|
+
const opts = thisCommand.opts();
|
|
77
|
+
if (opts.ci) {
|
|
78
|
+
setCiMode(true);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
74
81
|
// Set up all command groups
|
|
75
82
|
setupAuthCommands(program);
|
|
76
83
|
setupSkillCommands(program);
|
|
77
84
|
setupMarketplaceCommands(program);
|
|
78
85
|
// Parse command-line arguments
|
|
79
86
|
program.parse(process.argv);
|
|
80
|
-
// Check for CI mode flag and set global state
|
|
81
|
-
const options = program.opts();
|
|
82
|
-
if (options.ci) {
|
|
83
|
-
setCiMode(true);
|
|
84
|
-
}
|
|
85
87
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC/G,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAErC,gCAAgC;AAChC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACzF,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;AAExC,8BAA8B;AAC9B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,6BAA6B;AAC7B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,sDAAsD,CAAC;KACnE,OAAO,CAAC,WAAW,CAAC;KACpB,MAAM,CAAC,MAAM,EAAE,wEAAwE,CAAC;KACxF,WAAW,CAAC,QAAQ,EAAE;;gBAET,WAAW;;CAE1B,CAAC;KACC,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCvB,CAAC,CAAC;AAEH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC/G,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAErC,gCAAgC;AAChC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACzF,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;AAExC,8BAA8B;AAC9B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,6BAA6B;AAC7B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,sDAAsD,CAAC;KACnE,OAAO,CAAC,WAAW,CAAC;KACpB,MAAM,CAAC,MAAM,EAAE,wEAAwE,CAAC;KACxF,WAAW,CAAC,QAAQ,EAAE;;gBAET,WAAW;;CAE1B,CAAC;KACC,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCvB,CAAC,CAAC;AAEH,0FAA0F;AAC1F,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;IACxC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QACZ,SAAS,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,4BAA4B;AAC5B,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAElC,+BAA+B;AAC/B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -36,31 +36,6 @@ export interface CheckBlobsResponse {
|
|
|
36
36
|
/** Map of hash -> exists boolean */
|
|
37
37
|
results: Record<string, boolean>;
|
|
38
38
|
}
|
|
39
|
-
/**
|
|
40
|
-
* Single blob for upload
|
|
41
|
-
*/
|
|
42
|
-
export interface BlobUpload {
|
|
43
|
-
/** SHA-256 content hash */
|
|
44
|
-
hash: string;
|
|
45
|
-
/** Base64-encoded file content */
|
|
46
|
-
content: string;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Request for uploading blobs
|
|
50
|
-
*/
|
|
51
|
-
export interface UploadBlobsRequest {
|
|
52
|
-
/** Array of blobs to upload */
|
|
53
|
-
blobs: BlobUpload[];
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Response for blob upload
|
|
57
|
-
*/
|
|
58
|
-
export interface UploadBlobsResponse {
|
|
59
|
-
/** Number of blobs uploaded */
|
|
60
|
-
uploaded: number;
|
|
61
|
-
/** Hashes of uploaded blobs */
|
|
62
|
-
hashes: string[];
|
|
63
|
-
}
|
|
64
39
|
/**
|
|
65
40
|
* Request for saving the backup manifest (after blobs are uploaded)
|
|
66
41
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/interfaces/backup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;CACrC;AAMD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAMD;;GAEG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/interfaces/backup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;CACrC;AAMD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAMD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -53,6 +53,32 @@ export interface UnifiedToConnectionResponse {
|
|
|
53
53
|
logoUrl?: string;
|
|
54
54
|
createdAt: string;
|
|
55
55
|
updatedAt?: string;
|
|
56
|
+
mcpServer?: {
|
|
57
|
+
id: string;
|
|
58
|
+
name: string;
|
|
59
|
+
active: boolean;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Response from connection finalization
|
|
64
|
+
*/
|
|
65
|
+
export interface FinalizeConnectionResponse {
|
|
66
|
+
mcpServer: {
|
|
67
|
+
id: string;
|
|
68
|
+
name: string;
|
|
69
|
+
active: boolean;
|
|
70
|
+
};
|
|
71
|
+
webhooks: Array<{
|
|
72
|
+
id: string;
|
|
73
|
+
objectType: string;
|
|
74
|
+
event: string;
|
|
75
|
+
status: string;
|
|
76
|
+
}>;
|
|
77
|
+
failedWebhooks?: Array<{
|
|
78
|
+
objectType: string;
|
|
79
|
+
event: string;
|
|
80
|
+
error: string;
|
|
81
|
+
}>;
|
|
56
82
|
}
|
|
57
83
|
/**
|
|
58
84
|
* Available webhook event info (derived from integration support data)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unifiedto.d.ts","sourceRoot":"","sources":["../../src/interfaces/unifiedto.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,oBAAoB,CAAC;IAClC,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACpC,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"unifiedto.d.ts","sourceRoot":"","sources":["../../src/interfaces/unifiedto.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -24,5 +24,5 @@ export { OrderStatus, OrderResponse } from '../interfaces/orders.js';
|
|
|
24
24
|
export { Product } from '../interfaces/product.js';
|
|
25
25
|
export { ApiResponse, Pagination } from '../interfaces/common.js';
|
|
26
26
|
export { Channel, LuaRequest, LuaRuntime, WebhookRequest } from '../interfaces/lua.js';
|
|
27
|
-
export { BackupFileRef, CheckBlobsRequest, CheckBlobsResponse,
|
|
27
|
+
export { BackupFileRef, CheckBlobsRequest, CheckBlobsResponse, SaveManifestRequest, GetBlobUrlsRequest, GetBlobUrlsResponse, BackupMetadata, BackupManifest, BackupExistsResponse, BackupTracking } from '../interfaces/backup.js';
|
|
28
28
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,EACL,QAAQ,EACR,OAAO,EACP,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,MAAM,EACN,YAAY,EACZ,WAAW,EACX,GAAG,EAEH,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,6BAA6B,EAC7B,YAAY,EACZ,mBAAmB,EAEnB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EACL,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,EACR,aAAa,EACb,oBAAoB,EACpB,MAAM,EACP,MAAM,oBAAoB,CAAC;AAU5B,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,gBAAgB,EAChB,SAAS,EACV,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,EACL,SAAS,EACT,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,YAAY,EACZ,UAAU,EACV,MAAM,EACP,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,WAAW,EACX,aAAa,EACd,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,OAAO,EACR,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,WAAW,EACX,UAAU,EACX,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,OAAO,EACP,UAAU,EACV,UAAU,EACV,cAAc,EACf,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,EACL,QAAQ,EACR,OAAO,EACP,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,MAAM,EACN,YAAY,EACZ,WAAW,EACX,GAAG,EAEH,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,6BAA6B,EAC7B,YAAY,EACZ,mBAAmB,EAEnB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EACL,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,EACR,aAAa,EACb,oBAAoB,EACpB,MAAM,EACP,MAAM,oBAAoB,CAAC;AAU5B,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,gBAAgB,EAChB,SAAS,EACV,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,EACL,SAAS,EACT,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,YAAY,EACZ,UAAU,EACV,MAAM,EACP,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,WAAW,EACX,aAAa,EACd,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,OAAO,EACR,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,WAAW,EACX,UAAU,EACX,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,OAAO,EACP,UAAU,EACV,UAAU,EACV,cAAc,EACf,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,cAAc,EACf,MAAM,yBAAyB,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Content is stored in S3, keyed by content hash for deduplication.
|
|
6
6
|
*/
|
|
7
7
|
import type { CompilationManifest, ProjectFile } from '../compiler/types.js';
|
|
8
|
-
import type { BackupFileRef, BackupManifest
|
|
8
|
+
import type { BackupFileRef, BackupManifest } from '../interfaces/backup.js';
|
|
9
9
|
import type { YamlConfigBackup } from '../types/yaml.types.js';
|
|
10
10
|
/**
|
|
11
11
|
* Calculate a hash for a string content.
|
|
@@ -56,15 +56,17 @@ export declare function loadSourceByHash(hash: string, relativePath: string, pro
|
|
|
56
56
|
*/
|
|
57
57
|
export declare function prepareFileRefs(projectPath?: string): BackupFileRef[];
|
|
58
58
|
/**
|
|
59
|
-
*
|
|
60
|
-
*
|
|
59
|
+
* Upload blobs directly to S3 using presigned URLs.
|
|
60
|
+
* Compresses content with gzip before upload to reduce storage costs.
|
|
61
61
|
*
|
|
62
|
-
* @param
|
|
63
|
-
* @param manifest - The compilation manifest
|
|
62
|
+
* @param uploadUrls - Map of hash -> presigned S3 PUT URL
|
|
63
|
+
* @param manifest - The compilation manifest (for resolving hash โ relativePath)
|
|
64
64
|
* @param projectPath - Path to the project root
|
|
65
|
-
* @
|
|
65
|
+
* @param onProgress - Optional callback for progress updates
|
|
66
|
+
* @param concurrency - Maximum parallel uploads (default: 10)
|
|
67
|
+
* @returns Number of blobs uploaded
|
|
66
68
|
*/
|
|
67
|
-
export declare function
|
|
69
|
+
export declare function uploadBlobsToS3(uploadUrls: Record<string, string>, manifest: CompilationManifest, projectPath?: string, onProgress?: (uploaded: number, total: number) => void, concurrency?: number): Promise<number>;
|
|
68
70
|
/**
|
|
69
71
|
* Get all unique hashes from the manifest.
|
|
70
72
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/backup-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"backup-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/backup-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAQ/D;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,CASxE;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAKxF;AAMD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,GAAE,MAAsB,GAClC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAerB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,WAAW,GAAE,MAAsB,GAClC,MAAM,GAAG,IAAI,CASf;AAMD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,WAAW,GAAE,MAAsB,GAAG,aAAa,EAAE,CASpF;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,GAAE,MAAsB,EACnC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,EACtD,WAAW,GAAE,MAAW,GACvB,OAAO,CAAC,MAAM,CAAC,CAuCjB;AAgBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,GAAE,MAAsB,GAAG,MAAM,EAAE,CAI9E;AAwBD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,WAAW,GAAE,MAAW,GACvB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAoB9B;AAMD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GACpC,IAAI,CAwBN;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,GAChB;IACD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAkBA;AAMD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,gBAAgB,GAAG,SAAS,GACrC,OAAO,CAGT;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,CAK1E"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import fs from 'fs';
|
|
8
8
|
import path from 'path';
|
|
9
9
|
import crypto from 'crypto';
|
|
10
|
+
import zlib from 'zlib';
|
|
10
11
|
import { COMPILE_DIRS } from '../config/compile.constants.js';
|
|
11
12
|
import { loadManifest, hasCompilationOutput } from './artifact-loader.js';
|
|
12
13
|
// =============================================================================
|
|
@@ -108,32 +109,60 @@ export function prepareFileRefs(projectPath = process.cwd()) {
|
|
|
108
109
|
}));
|
|
109
110
|
}
|
|
110
111
|
/**
|
|
111
|
-
*
|
|
112
|
-
*
|
|
112
|
+
* Upload blobs directly to S3 using presigned URLs.
|
|
113
|
+
* Compresses content with gzip before upload to reduce storage costs.
|
|
113
114
|
*
|
|
114
|
-
* @param
|
|
115
|
-
* @param manifest - The compilation manifest
|
|
115
|
+
* @param uploadUrls - Map of hash -> presigned S3 PUT URL
|
|
116
|
+
* @param manifest - The compilation manifest (for resolving hash โ relativePath)
|
|
116
117
|
* @param projectPath - Path to the project root
|
|
117
|
-
* @
|
|
118
|
+
* @param onProgress - Optional callback for progress updates
|
|
119
|
+
* @param concurrency - Maximum parallel uploads (default: 10)
|
|
120
|
+
* @returns Number of blobs uploaded
|
|
121
|
+
*/
|
|
122
|
+
export async function uploadBlobsToS3(uploadUrls, manifest, projectPath = process.cwd(), onProgress, concurrency = 10) {
|
|
123
|
+
const hashes = Object.keys(uploadUrls);
|
|
124
|
+
const hashToRelativePath = buildHashToRelativePathMap(manifest);
|
|
125
|
+
let uploaded = 0;
|
|
126
|
+
for (let i = 0; i < hashes.length; i += concurrency) {
|
|
127
|
+
const batch = hashes.slice(i, i + concurrency);
|
|
128
|
+
await Promise.all(batch.map(async (hash) => {
|
|
129
|
+
const relativePath = hashToRelativePath.get(hash);
|
|
130
|
+
if (!relativePath) {
|
|
131
|
+
throw new Error(`No file found in manifest for hash: ${hash}`);
|
|
132
|
+
}
|
|
133
|
+
const content = loadSourceByHash(hash, relativePath, projectPath);
|
|
134
|
+
if (!content) {
|
|
135
|
+
throw new Error(`Source file not found for hash: ${hash} (${relativePath})`);
|
|
136
|
+
}
|
|
137
|
+
// Gzip compress before upload
|
|
138
|
+
const compressed = zlib.gzipSync(Buffer.from(content, 'utf-8'));
|
|
139
|
+
// PUT directly to S3 presigned URL
|
|
140
|
+
const response = await fetch(uploadUrls[hash], {
|
|
141
|
+
method: 'PUT',
|
|
142
|
+
body: compressed,
|
|
143
|
+
headers: { 'Content-Type': 'application/octet-stream' },
|
|
144
|
+
});
|
|
145
|
+
if (!response.ok) {
|
|
146
|
+
throw new Error(`S3 upload failed for ${hash.substring(0, 12)}...: ${response.status} ${response.statusText}`);
|
|
147
|
+
}
|
|
148
|
+
}));
|
|
149
|
+
uploaded += batch.length;
|
|
150
|
+
onProgress?.(uploaded, hashes.length);
|
|
151
|
+
}
|
|
152
|
+
return uploaded;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Build a map from content hash to the first matching relative path.
|
|
156
|
+
* Used by uploadBlobsToS3 to resolve file extensions for loadSourceByHash.
|
|
118
157
|
*/
|
|
119
|
-
|
|
120
|
-
const
|
|
121
|
-
const blobs = [];
|
|
158
|
+
function buildHashToRelativePathMap(manifest) {
|
|
159
|
+
const map = new Map();
|
|
122
160
|
for (const file of manifest.projectFiles) {
|
|
123
|
-
if (!
|
|
124
|
-
|
|
125
|
-
const content = loadSourceByHash(file.hash, file.relativePath, projectPath);
|
|
126
|
-
if (!content) {
|
|
127
|
-
throw new Error(`Source file not found for hash: ${file.hash} (${file.relativePath})`);
|
|
161
|
+
if (!map.has(file.hash)) {
|
|
162
|
+
map.set(file.hash, file.relativePath);
|
|
128
163
|
}
|
|
129
|
-
// Base64 encode the content for upload
|
|
130
|
-
const base64Content = Buffer.from(content, 'utf-8').toString('base64');
|
|
131
|
-
blobs.push({
|
|
132
|
-
hash: file.hash,
|
|
133
|
-
content: base64Content,
|
|
134
|
-
});
|
|
135
164
|
}
|
|
136
|
-
return
|
|
165
|
+
return map;
|
|
137
166
|
}
|
|
138
167
|
/**
|
|
139
168
|
* Get all unique hashes from the manifest.
|
|
@@ -151,9 +180,10 @@ export function getAllFileHashes(projectPath = process.cwd()) {
|
|
|
151
180
|
// =============================================================================
|
|
152
181
|
/**
|
|
153
182
|
* Download a blob from a presigned URL.
|
|
183
|
+
* Decompresses gzip content (blobs are stored compressed in S3).
|
|
154
184
|
*
|
|
155
185
|
* @param url - The presigned S3 URL
|
|
156
|
-
* @returns The blob content as a
|
|
186
|
+
* @returns The decompressed blob content as a Buffer
|
|
157
187
|
*/
|
|
158
188
|
async function downloadBlobFromUrl(url) {
|
|
159
189
|
const response = await fetch(url);
|
|
@@ -161,7 +191,9 @@ async function downloadBlobFromUrl(url) {
|
|
|
161
191
|
throw new Error(`Failed to download blob: ${response.status} ${response.statusText}`);
|
|
162
192
|
}
|
|
163
193
|
const arrayBuffer = await response.arrayBuffer();
|
|
164
|
-
|
|
194
|
+
const buffer = Buffer.from(arrayBuffer);
|
|
195
|
+
// Decompress gzip (all blobs stored compressed in S3)
|
|
196
|
+
return zlib.gunzipSync(buffer);
|
|
165
197
|
}
|
|
166
198
|
/**
|
|
167
199
|
* Download multiple blobs in parallel from presigned URLs.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup-helpers.js","sourceRoot":"","sources":["../../src/utils/backup-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"backup-helpers.js","sourceRoot":"","sources":["../../src/utils/backup-helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/cli.d.ts
CHANGED
|
@@ -11,7 +11,8 @@ export declare function setCiMode(enabled: boolean): void;
|
|
|
11
11
|
export declare function isCiModeEnabled(): boolean;
|
|
12
12
|
/**
|
|
13
13
|
* Wraps a command function with standardized error handling
|
|
14
|
-
* Handles SIGINT (Ctrl+C) gracefully and provides consistent error messages
|
|
14
|
+
* Handles SIGINT (Ctrl+C) gracefully and provides consistent error messages.
|
|
15
|
+
* Also runs a background version check and warns if an update is available.
|
|
15
16
|
*/
|
|
16
17
|
export declare function withErrorHandling<T>(commandFn: () => Promise<T>, commandName: string): Promise<T>;
|
|
17
18
|
/**
|
package/dist/utils/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AA+BD;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,CAAC,CAAC,CA4BZ;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,GAAE,MAAU,GAAG,IAAI,CAIxD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAGnD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAGlD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAGhD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG/C"}
|
package/dist/utils/cli.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Centralized CLI utilities for consistent error handling and output management
|
|
3
3
|
*/
|
|
4
|
+
import { readFileSync } from 'fs';
|
|
5
|
+
import { fileURLToPath } from 'url';
|
|
6
|
+
import { dirname, join } from 'path';
|
|
4
7
|
import { AuthenticationError } from "../errors/auth.error.js";
|
|
8
|
+
import { isUpdateAvailable, printUpdateWarning } from './version-check.js';
|
|
5
9
|
/**
|
|
6
10
|
* Global state for CI mode
|
|
7
11
|
* When true, interactive prompts will throw errors instead of silently returning null
|
|
@@ -19,13 +23,47 @@ export function setCiMode(enabled) {
|
|
|
19
23
|
export function isCiModeEnabled() {
|
|
20
24
|
return isCiMode;
|
|
21
25
|
}
|
|
26
|
+
/** Lazily cached CLI version (read once from package.json) */
|
|
27
|
+
let _cliVersion = null;
|
|
28
|
+
function getCliVersion() {
|
|
29
|
+
if (!_cliVersion) {
|
|
30
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
31
|
+
const __dirname = dirname(__filename);
|
|
32
|
+
const pkg = JSON.parse(readFileSync(join(__dirname, '../../package.json'), 'utf8'));
|
|
33
|
+
_cliVersion = pkg.version;
|
|
34
|
+
}
|
|
35
|
+
return _cliVersion;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Await the background version check and print a warning if outdated.
|
|
39
|
+
* Silently catches any errors from the check itself.
|
|
40
|
+
*/
|
|
41
|
+
async function showUpdateWarningIfNeeded(versionCheckPromise) {
|
|
42
|
+
try {
|
|
43
|
+
const result = await versionCheckPromise;
|
|
44
|
+
if (result?.available && result.latest) {
|
|
45
|
+
printUpdateWarning(getCliVersion(), result.latest);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// Silently ignore version check failures
|
|
50
|
+
}
|
|
51
|
+
}
|
|
22
52
|
/**
|
|
23
53
|
* Wraps a command function with standardized error handling
|
|
24
|
-
* Handles SIGINT (Ctrl+C) gracefully and provides consistent error messages
|
|
54
|
+
* Handles SIGINT (Ctrl+C) gracefully and provides consistent error messages.
|
|
55
|
+
* Also runs a background version check and warns if an update is available.
|
|
25
56
|
*/
|
|
26
57
|
export async function withErrorHandling(commandFn, commandName) {
|
|
58
|
+
// Start version check in background (non-blocking, runs in parallel with command)
|
|
59
|
+
// Skip for the 'update' command (it handles version checking itself)
|
|
60
|
+
const versionCheckPromise = (commandName !== 'update')
|
|
61
|
+
? isUpdateAvailable(getCliVersion()).catch(() => null)
|
|
62
|
+
: Promise.resolve(null);
|
|
27
63
|
try {
|
|
28
|
-
|
|
64
|
+
const result = await commandFn();
|
|
65
|
+
await showUpdateWarningIfNeeded(versionCheckPromise);
|
|
66
|
+
return result;
|
|
29
67
|
}
|
|
30
68
|
catch (error) {
|
|
31
69
|
if (error.name === 'ExitPromptError') {
|
|
@@ -35,9 +73,11 @@ export async function withErrorHandling(commandFn, commandName) {
|
|
|
35
73
|
if (AuthenticationError.isAuthenticationError(error)) {
|
|
36
74
|
console.error(`โ ${error.message}`);
|
|
37
75
|
console.error("๐ก Run 'lua auth configure' to update your API key.");
|
|
76
|
+
await showUpdateWarningIfNeeded(versionCheckPromise);
|
|
38
77
|
throw new Error(error.message);
|
|
39
78
|
}
|
|
40
79
|
console.error(`โ Error during ${commandName}:`, error.message);
|
|
80
|
+
await showUpdateWarningIfNeeded(versionCheckPromise);
|
|
41
81
|
throw new Error(`Error during ${commandName}: ${error.message}`);
|
|
42
82
|
}
|
|
43
83
|
}
|
package/dist/utils/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version Check Utilities
|
|
3
|
+
* Checks npm registry for the latest lua-cli version and caches the result.
|
|
4
|
+
* Used by the update command (LUA-123) and the outdated version warning (LUA-124).
|
|
5
|
+
*/
|
|
6
|
+
interface VersionCheckCache {
|
|
7
|
+
latestVersion: string;
|
|
8
|
+
checkedAt: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Read cached version check result.
|
|
12
|
+
* Returns null if cache is missing, corrupt, or expired.
|
|
13
|
+
*/
|
|
14
|
+
export declare function getCachedVersionCheck(): VersionCheckCache | null;
|
|
15
|
+
/**
|
|
16
|
+
* Save version check result to cache file.
|
|
17
|
+
*/
|
|
18
|
+
export declare function saveCachedVersionCheck(latestVersion: string): void;
|
|
19
|
+
/**
|
|
20
|
+
* Fetch the latest version from npm registry.
|
|
21
|
+
* Uses the dist-tag matching the current version's pre-release channel (e.g. "alpha").
|
|
22
|
+
* Returns null on any failure (network, timeout, parse error).
|
|
23
|
+
*/
|
|
24
|
+
export declare function fetchLatestVersion(currentVersion?: string): Promise<string | null>;
|
|
25
|
+
/**
|
|
26
|
+
* Check if an update is available. Uses 24h cache to avoid hitting npm on every run.
|
|
27
|
+
*/
|
|
28
|
+
export declare function isUpdateAvailable(currentVersion: string): Promise<{
|
|
29
|
+
available: boolean;
|
|
30
|
+
latest: string | null;
|
|
31
|
+
}>;
|
|
32
|
+
/**
|
|
33
|
+
* Print a boxed update warning to stderr (so piped --json stdout is not corrupted).
|
|
34
|
+
*/
|
|
35
|
+
export declare function printUpdateWarning(currentVersion: string, latestVersion: string): void;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=version-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../src/utils/version-check.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4BH,UAAU,iBAAiB;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,iBAAiB,GAAG,IAAI,CAUhE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CASlE;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAaxF;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAiBxD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CActF"}
|