@quenty/nevermore-cli 4.28.1 → 4.29.0-canary.697.26191410126.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.
Files changed (57) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/commands/batch-command/batch-deploy-command.js +9 -2
  3. package/dist/commands/batch-command/batch-deploy-command.js.map +1 -1
  4. package/dist/commands/batch-command/batch-test-command.d.ts +1 -0
  5. package/dist/commands/batch-command/batch-test-command.d.ts.map +1 -1
  6. package/dist/commands/batch-command/batch-test-command.js +14 -4
  7. package/dist/commands/batch-command/batch-test-command.js.map +1 -1
  8. package/dist/commands/deploy-command/index.d.ts.map +1 -1
  9. package/dist/commands/deploy-command/index.js +20 -20
  10. package/dist/commands/deploy-command/index.js.map +1 -1
  11. package/dist/commands/deploy-command/select-target.d.ts +10 -0
  12. package/dist/commands/deploy-command/select-target.d.ts.map +1 -0
  13. package/dist/commands/deploy-command/select-target.js +53 -0
  14. package/dist/commands/deploy-command/select-target.js.map +1 -0
  15. package/dist/commands/test-command/test-command.d.ts +1 -0
  16. package/dist/commands/test-command/test-command.d.ts.map +1 -1
  17. package/dist/commands/test-command/test-command.js +42 -27
  18. package/dist/commands/test-command/test-command.js.map +1 -1
  19. package/dist/utils/batch/batch-runner.js +1 -1
  20. package/dist/utils/batch/batch-runner.js.map +1 -1
  21. package/dist/utils/build/deploy-config.d.ts +4 -3
  22. package/dist/utils/build/deploy-config.d.ts.map +1 -1
  23. package/dist/utils/build/deploy-config.js +7 -3
  24. package/dist/utils/build/deploy-config.js.map +1 -1
  25. package/dist/utils/build/deploy-config.test.d.ts +2 -0
  26. package/dist/utils/build/deploy-config.test.d.ts.map +1 -0
  27. package/dist/utils/build/deploy-config.test.js +41 -0
  28. package/dist/utils/build/deploy-config.test.js.map +1 -0
  29. package/dist/utils/job-context/cloud-job-context.d.ts.map +1 -1
  30. package/dist/utils/job-context/cloud-job-context.js +5 -2
  31. package/dist/utils/job-context/cloud-job-context.js.map +1 -1
  32. package/dist/utils/open-cloud/open-cloud-client.d.ts +2 -1
  33. package/dist/utils/open-cloud/open-cloud-client.d.ts.map +1 -1
  34. package/dist/utils/open-cloud/open-cloud-client.js +39 -14
  35. package/dist/utils/open-cloud/open-cloud-client.js.map +1 -1
  36. package/package.json +6 -6
  37. package/src/commands/batch-command/batch-deploy-command.ts +8 -4
  38. package/src/commands/batch-command/batch-test-command.ts +15 -5
  39. package/src/commands/deploy-command/index.ts +21 -24
  40. package/src/commands/deploy-command/select-target.ts +80 -0
  41. package/src/commands/test-command/test-command.ts +48 -33
  42. package/src/utils/batch/batch-runner.ts +1 -1
  43. package/src/utils/build/deploy-config.test.ts +51 -0
  44. package/src/utils/build/deploy-config.ts +7 -3
  45. package/src/utils/job-context/cloud-job-context.ts +10 -2
  46. package/src/utils/open-cloud/open-cloud-client.ts +54 -14
  47. package/templates/game-template/.github/workflows/{deploy.yml → integration.yml} +30 -26
  48. package/templates/game-template/.github/workflows/tests.yml +30 -20
  49. package/templates/game-template/README.md +22 -1
  50. package/templates/game-template/aftman.toml +1 -0
  51. package/templates/game-template/default.project.json +3 -0
  52. package/templates/game-template/package.json +7 -2
  53. package/templates/game-template/src/modules/jest.config.lua +4 -0
  54. package/templates/game-template/src/scripts/Server/ServerMain.server.lua +6 -0
  55. package/templates/plugin-template/.github/workflows/{deploy.yml → integration.yml} +30 -26
  56. package/templates/plugin-template/.github/workflows/tests.yml +18 -13
  57. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-config.js","sourceRoot":"","sources":["../../../src/utils/build/deploy-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy-config.js","sourceRoot":"","sources":["../../../src/utils/build/deploy-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=deploy-config.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-config.test.d.ts","sourceRoot":"","sources":["../../../src/utils/build/deploy-config.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { resolveDefaultTargetName, } from './deploy-config.js';
3
+ function makeTarget(placeId) {
4
+ return {
5
+ universeId: 1,
6
+ placeId,
7
+ project: 'default.project.json',
8
+ };
9
+ }
10
+ function makeConfig(targets) {
11
+ return { targets };
12
+ }
13
+ describe('resolveDefaultTargetName', () => {
14
+ it('returns the only target when there is just one', () => {
15
+ const config = makeConfig({ prod: makeTarget(1) });
16
+ expect(resolveDefaultTargetName(config)).toBe('prod');
17
+ });
18
+ it('prefers integration over test when both exist', () => {
19
+ const config = makeConfig({
20
+ test: makeTarget(1),
21
+ integration: makeTarget(2),
22
+ });
23
+ expect(resolveDefaultTargetName(config)).toBe('integration');
24
+ });
25
+ it('falls back to test when integration is absent', () => {
26
+ const config = makeConfig({ test: makeTarget(1), dev: makeTarget(2) });
27
+ expect(resolveDefaultTargetName(config)).toBe('test');
28
+ });
29
+ it('returns integration when present alongside non-test targets', () => {
30
+ const config = makeConfig({
31
+ integration: makeTarget(1),
32
+ dev: makeTarget(2),
33
+ });
34
+ expect(resolveDefaultTargetName(config)).toBe('integration');
35
+ });
36
+ it('throws when no preferred target exists and multiple options are present', () => {
37
+ const config = makeConfig({ foo: makeTarget(1), bar: makeTarget(2) });
38
+ expect(() => resolveDefaultTargetName(config)).toThrowError(/foo, bar/);
39
+ });
40
+ });
41
+ //# sourceMappingURL=deploy-config.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-config.test.js","sourceRoot":"","sources":["../../../src/utils/build/deploy-config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAGL,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAE5B,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO;QACL,UAAU,EAAE,CAAC;QACb,OAAO;QACP,OAAO,EAAE,sBAAsB;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,OAAqC;IACvD,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC;AAED,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;YACnB,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;SAC3B,CAAC,CAAC;QACH,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvE,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;YAC1B,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;SACnB,CAAC,CAAC;QACH,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtE,MAAM,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-job-context.d.ts","sourceRoot":"","sources":["../../../src/utils/job-context/cloud-job-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EACL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAkBvD,qBAAa,eAAgB,SAAQ,cAAc;gBACrC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe;IAI1D,qBAAqB,CACzB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,UAAU,CAAC;IAgChB,cAAc,CAClB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC;IAoCrB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBrD,YAAY,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpC"}
1
+ {"version":3,"file":"cloud-job-context.d.ts","sourceRoot":"","sources":["../../../src/utils/job-context/cloud-job-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EACL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAkBvD,qBAAa,eAAgB,SAAQ,cAAc;gBACrC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe;IAI1D,qBAAqB,CACzB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,UAAU,CAAC;IAgChB,cAAc,CAClB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC;IA4CrB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBrD,YAAY,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpC"}
@@ -42,7 +42,10 @@ export class CloudJobContext extends BaseJobContext {
42
42
  const cloudDeployment = deployment;
43
43
  const { scriptContent, packageName, timeoutMs = 120_000 } = options;
44
44
  this._reporter.onPackagePhaseChange(packageName, 'scheduling');
45
- const task = await this._openCloudClient.createExecutionTaskAsync(cloudDeployment.universeId, cloudDeployment.placeId, cloudDeployment.version, scriptContent);
45
+ const task = await this._openCloudClient.createExecutionTaskAsync(cloudDeployment.universeId, cloudDeployment.placeId, cloudDeployment.version, scriptContent, timeoutMs);
46
+ // Give the server-side timeout a head start so we observe the cancelled
47
+ // task state instead of bailing out on the client first.
48
+ const CLIENT_TIMEOUT_GRACE_MS = 30_000;
46
49
  let pollCount = 0;
47
50
  const completedTask = await Promise.race([
48
51
  this._openCloudClient.pollTaskCompletionAsync(task.path, (state) => {
@@ -58,7 +61,7 @@ export class CloudJobContext extends BaseJobContext {
58
61
  label,
59
62
  });
60
63
  }),
61
- timeoutAsync(timeoutMs, `Test timed out after ${timeoutMs / 1000}s`),
64
+ timeoutAsync(timeoutMs + CLIENT_TIMEOUT_GRACE_MS, `Test timed out after ${timeoutMs / 1000}s`),
62
65
  ]);
63
66
  cloudDeployment.taskPath = task.path;
64
67
  cloudDeployment.taskState = completedTask.state;
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-job-context.js","sourceRoot":"","sources":["../../../src/utils/job-context/cloud-job-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloud-job-context.js","sourceRoot":"","sources":["../../../src/utils/job-context/cloud-job-context.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export interface LuauTask {
7
7
  user: string;
8
8
  state: 'STATE_UNSPECIFIED' | 'QUEUED' | 'PROCESSING' | 'CANCELLED' | 'COMPLETE' | 'FAILED';
9
9
  script: string;
10
+ timeout?: string;
10
11
  }
11
12
  export interface OpenCloudClientOptions {
12
13
  apiKey: string | (() => Promise<string>);
@@ -19,7 +20,7 @@ export declare class OpenCloudClient {
19
20
  constructor(options: OpenCloudClientOptions);
20
21
  private _resolveApiKeyAsync;
21
22
  uploadPlaceAsync(universeId: number, placeId: number, rbxlPath: string, publish?: boolean, onProgress?: (transferredBytes: number, totalBytes: number) => void): Promise<number>;
22
- createExecutionTaskAsync(universeId: number, placeId: number, placeVersion: number, script: string): Promise<LuauTask>;
23
+ createExecutionTaskAsync(universeId: number, placeId: number, placeVersion: number, script: string, timeoutMs?: number): Promise<LuauTask>;
23
24
  pollTaskCompletionAsync(taskPath: string, onProgress?: (state: LuauTask['state']) => void): Promise<LuauTask>;
24
25
  getTaskLogsAsync(taskPath: string): Promise<ParsedTestLogs>;
25
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"open-cloud-client.d.ts","sourceRoot":"","sources":["../../../src/utils/open-cloud/open-cloud-client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EACD,mBAAmB,GACnB,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,UAAU,GACV,QAAQ,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,WAAW,EAAE,WAAW,CAAC;CAC1B;AAsDD,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,YAAY,CAAc;gBAEtB,OAAO,EAAE,sBAAsB;YAQ7B,mBAAmB;IAW3B,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,OAAO,EACjB,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,GAClE,OAAO,CAAC,MAAM,CAAC;IAiGZ,wBAAwB,CAC5B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC;IAsCd,uBAAuB,CAC3B,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,GAC9C,OAAO,CAAC,QAAQ,CAAC;IAkCd,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAKjE;;;;OAIG;IACG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAgB9C,kBAAkB;IAyBhC;;;;;OAKG;IACG,kBAAkB,CACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;CAqDnB"}
1
+ {"version":3,"file":"open-cloud-client.d.ts","sourceRoot":"","sources":["../../../src/utils/open-cloud/open-cloud-client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EACD,mBAAmB,GACnB,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,UAAU,GACV,QAAQ,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,WAAW,EAAE,WAAW,CAAC;CAC1B;AAsDD,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,YAAY,CAAc;gBAEtB,OAAO,EAAE,sBAAsB;YAQ7B,mBAAmB;IAW3B,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,OAAO,EACjB,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,GAClE,OAAO,CAAC,MAAM,CAAC;IAiGZ,wBAAwB,CAC5B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,QAAQ,CAAC;IAiDd,uBAAuB,CAC3B,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,GAC9C,OAAO,CAAC,QAAQ,CAAC;IAkCd,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAKjE;;;;OAIG;IACG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAgB9C,kBAAkB;IAoDhC;;;;;OAKG;IACG,kBAAkB,CACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;CAqDnB"}
@@ -124,16 +124,22 @@ export class OpenCloudClient {
124
124
  const data = (await response.json());
125
125
  return data.versionNumber;
126
126
  }
127
- async createExecutionTaskAsync(universeId, placeId, placeVersion, script) {
127
+ async createExecutionTaskAsync(universeId, placeId, placeVersion, script, timeoutMs) {
128
128
  const apiKey = await this._resolveApiKeyAsync();
129
129
  const url = `https://apis.roblox.com/cloud/v2/universes/${universeId}/places/${placeId}/versions/${placeVersion}/luau-execution-session-tasks`;
130
+ const body = { script, enableBinaryOutput: false };
131
+ if (timeoutMs !== undefined) {
132
+ // Roblox encodes durations as Google AIP duration strings (e.g. "120s").
133
+ // The server uses this to cancel runaway scripts on its end.
134
+ body.timeout = `${Math.max(1, Math.ceil(timeoutMs / 1000))}s`;
135
+ }
130
136
  const response = await this._rateLimiter.fetchAsync(url, {
131
137
  method: 'POST',
132
138
  headers: {
133
139
  'Content-Type': 'application/json',
134
140
  'X-API-Key': apiKey,
135
141
  },
136
- body: JSON.stringify({ script }),
142
+ body: JSON.stringify(body),
137
143
  });
138
144
  if (!response.ok) {
139
145
  const text = await response.text();
@@ -192,18 +198,37 @@ export class OpenCloudClient {
192
198
  }
193
199
  async _fetchRawLogsAsync(taskPath) {
194
200
  const apiKey = await this._resolveApiKeyAsync();
195
- const response = await this._rateLimiter.fetchAsync(`https://apis.roblox.com/cloud/v2/${taskPath}/logs`, {
196
- method: 'GET',
197
- headers: {
198
- 'X-API-Key': apiKey,
199
- },
200
- });
201
- if (!response.ok) {
202
- const text = await response.text();
203
- throw new Error(`Get logs failed: ${response.status}: ${text}`);
204
- }
205
- const data = (await response.json());
206
- const messages = data.luauExecutionSessionTaskLogs?.[0]?.messages ?? [];
201
+ const messages = [];
202
+ let pageToken;
203
+ do {
204
+ const url = new URL(`https://apis.roblox.com/cloud/v2/${taskPath}/logs`);
205
+ url.searchParams.set('view', 'STRUCTURED');
206
+ if (pageToken) {
207
+ url.searchParams.set('pageToken', pageToken);
208
+ }
209
+ const response = await this._rateLimiter.fetchAsync(url.toString(), {
210
+ method: 'GET',
211
+ headers: {
212
+ 'X-API-Key': apiKey,
213
+ },
214
+ });
215
+ if (!response.ok) {
216
+ const text = await response.text();
217
+ throw new Error(`Get logs failed: ${response.status}: ${text}`);
218
+ }
219
+ const data = (await response.json());
220
+ for (const entry of data.luauExecutionSessionTaskLogs ?? []) {
221
+ if (entry.structuredMessages?.length) {
222
+ for (const msg of entry.structuredMessages) {
223
+ messages.push(msg.message);
224
+ }
225
+ }
226
+ else if (entry.messages?.length) {
227
+ messages.push(...entry.messages);
228
+ }
229
+ }
230
+ pageToken = data.nextPageToken || undefined;
231
+ } while (pageToken);
207
232
  return messages.join('\n');
208
233
  }
209
234
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"open-cloud-client.js","sourceRoot":"","sources":["../../../src/utils/open-cloud/open-cloud-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open-cloud-client.js","sourceRoot":"","sources":["../../../src/utils/open-cloud/open-cloud-client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quenty/nevermore-cli",
3
- "version": "4.28.1",
3
+ "version": "4.29.0-canary.697.26191410126.0",
4
4
  "description": "CLI interface for Nevermore",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -25,10 +25,10 @@
25
25
  "Quenty"
26
26
  ],
27
27
  "dependencies": {
28
- "@quenty/cli-output-helpers": "1.13.0",
29
- "@quenty/nevermore-cli-helpers": "1.12.0",
30
- "@quenty/nevermore-template-helpers": "1.14.0",
31
- "@quenty/studio-bridge": "0.11.0",
28
+ "@quenty/cli-output-helpers": "1.14.0-canary.697.26191410126.0",
29
+ "@quenty/nevermore-cli-helpers": "1.13.0-canary.697.26191410126.0",
30
+ "@quenty/nevermore-template-helpers": "1.15.0-canary.697.26191410126.0",
31
+ "@quenty/studio-bridge": "0.12.0-canary.697.26191410126.0",
32
32
  "execa": "^9.6.1",
33
33
  "find-git-root": "^1.0.4",
34
34
  "inquirer": "^13.2.0",
@@ -57,5 +57,5 @@
57
57
  "engines": {
58
58
  "node": ">=16"
59
59
  },
60
- "gitHead": "d2ca9c50ede638274a0bc4890c5e10e68132c50d"
60
+ "gitHead": "c9c842433333fede662e0e36cde35e9a060ef7ca"
61
61
  }
@@ -179,6 +179,7 @@ async function _runAsync(args: BatchDeployArgs): Promise<void> {
179
179
 
180
180
  await reporter.startAsync();
181
181
 
182
+ let exitCode = 0;
182
183
  try {
183
184
  const results = await runBatchAsync<BatchDeployResult>({
184
185
  packages,
@@ -239,13 +240,16 @@ async function _runAsync(args: BatchDeployArgs): Promise<void> {
239
240
  };
240
241
  },
241
242
  });
242
-
243
- await reporter.stopAsync();
244
-
245
- process.exit(results.summary.failed > 0 ? 1 : 0);
243
+ if (results.summary.failed > 0) exitCode = 1;
244
+ } catch (err) {
245
+ OutputHelper.error(err instanceof Error ? err.message : String(err));
246
+ exitCode = 1;
246
247
  } finally {
247
248
  await context.disposeAsync();
248
249
  }
250
+
251
+ await reporter.stopAsync();
252
+ process.exit(exitCode);
249
253
  }
250
254
 
251
255
  function _annotateSmokeTestFailure(logs: string): string {
@@ -24,7 +24,6 @@ import {
24
24
  import {
25
25
  type LiveStateTracker,
26
26
  type BatchTestResult,
27
- type BatchTestSummary,
28
27
  CompositeReporter,
29
28
  GithubCommentTableReporter,
30
29
  GroupedReporter,
@@ -51,6 +50,7 @@ interface BatchTestArgs extends NevermoreGlobalArgs {
51
50
  aggregated?: boolean;
52
51
  batchPlaceId?: number;
53
52
  batchUniverseId?: number;
53
+ timeout?: number;
54
54
  }
55
55
 
56
56
  export const batchTestCommand: CommandModule<
@@ -112,6 +112,11 @@ export const batchTestCommand: CommandModule<
112
112
  describe:
113
113
  'Override universeId for the aggregated batch upload (--aggregated only)',
114
114
  type: 'number',
115
+ })
116
+ .option('timeout', {
117
+ describe:
118
+ 'Per-package script execution time in seconds. Sent to the Open Cloud API so Roblox cancels server-side on overrun (default: 120)',
119
+ type: 'number',
115
120
  });
116
121
  },
117
122
  handler: async (args) => {
@@ -200,7 +205,7 @@ async function _runAsync(args: BatchTestArgs): Promise<void> {
200
205
  });
201
206
  }
202
207
 
203
- const timeoutMs = 120_000;
208
+ const timeoutMs = (args.timeout ?? 120) * 1000;
204
209
 
205
210
  // In aggregated mode, the inner context gets a broadcast reporter that translates
206
211
  // phase changes from the shared '_batch_' operation to all real packages
@@ -222,9 +227,10 @@ async function _runAsync(args: BatchTestArgs): Promise<void> {
222
227
  : innerContext;
223
228
 
224
229
  await reporter.startAsync();
225
- let results: BatchTestSummary;
230
+
231
+ let exitCode = 0;
226
232
  try {
227
- results = await runBatchAsync<BatchTestResult>({
233
+ const results = await runBatchAsync<BatchTestResult>({
228
234
  packages,
229
235
  concurrency,
230
236
  reporter,
@@ -248,6 +254,10 @@ async function _runAsync(args: BatchTestArgs): Promise<void> {
248
254
  };
249
255
  },
250
256
  });
257
+ if (results.summary.failed > 0) exitCode = 1;
258
+ } catch (err) {
259
+ OutputHelper.error(OutputHelper.formatErrorChain(err));
260
+ exitCode = 1;
251
261
  } finally {
252
262
  await context.disposeAsync();
253
263
  }
@@ -256,7 +266,7 @@ async function _runAsync(args: BatchTestArgs): Promise<void> {
256
266
 
257
267
  // Node.js fetch (undici) keeps TCP connections alive in a global pool,
258
268
  // which prevents the event loop from draining. Explicit exit required.
259
- process.exit(results.summary.failed > 0 ? 1 : 0);
269
+ process.exit(exitCode);
260
270
  }
261
271
 
262
272
  async function _runWithRetryAsync(
@@ -16,12 +16,8 @@ import { OpenCloudClient } from '../../utils/open-cloud/open-cloud-client.js';
16
16
  import { RateLimiter } from '../../utils/open-cloud/rate-limiter.js';
17
17
  import { CloudJobContext } from '../../utils/job-context/cloud-job-context.js';
18
18
  import { readPackageNameAsync } from '../../utils/nevermore-cli-utils.js';
19
- import {
20
- loadDeployConfigAsync,
21
- resolveDefaultTargetName,
22
- resolveDeployConfigPath,
23
- } from '../../utils/build/deploy-config.js';
24
19
  import { handleInitAsync } from './deploy-init.js';
20
+ import { selectTargetAsync } from './select-target.js';
25
21
 
26
22
  export interface DeployArgs extends NevermoreGlobalArgs {
27
23
  apiKey?: string;
@@ -158,15 +154,11 @@ export class DeployCommand<T> implements CommandModule<T, DeployArgs> {
158
154
  const cwd = process.cwd();
159
155
  const packageName = (await readPackageNameAsync(cwd)) ?? path.basename(cwd);
160
156
 
161
- let targetName: string;
162
- let targetAutoDetected = false;
163
- if (args.target) {
164
- targetName = args.target;
165
- } else {
166
- const config = await loadDeployConfigAsync(resolveDeployConfigPath(cwd));
167
- targetName = resolveDefaultTargetName(config);
168
- targetAutoDetected = true;
169
- }
157
+ const { targetName, autoDetected: targetAutoDetected } =
158
+ await selectTargetAsync(cwd, {
159
+ explicitTarget: args.target,
160
+ publish: args.publish ?? false,
161
+ });
170
162
 
171
163
  const useSpinner = process.stdout.isTTY && !args.verbose;
172
164
  const showLogs = args.logs ?? false;
@@ -219,6 +211,8 @@ export class DeployCommand<T> implements CommandModule<T, DeployArgs> {
219
211
  const startMs = Date.now();
220
212
  reporter.onPackageStart(packageName);
221
213
 
214
+ let exitCode = 0;
215
+ let publishedVersion: number | undefined;
222
216
  try {
223
217
  const builtPlace = await context.buildPlaceAsync({
224
218
  targetName,
@@ -235,6 +229,7 @@ export class DeployCommand<T> implements CommandModule<T, DeployArgs> {
235
229
  reporter,
236
230
  packageName,
237
231
  });
232
+ publishedVersion = version;
238
233
 
239
234
  const durationMs = Date.now() - startMs;
240
235
  const action = args.publish ? 'Published' : 'Saved';
@@ -245,13 +240,6 @@ export class DeployCommand<T> implements CommandModule<T, DeployArgs> {
245
240
  durationMs,
246
241
  progressSummary: { kind: 'version', version },
247
242
  });
248
-
249
- if (args.publish) {
250
- OutputHelper.info(`Published v${version} — live in game.`);
251
- } else {
252
- OutputHelper.info(`Saved v${version} — not yet live.`);
253
- OutputHelper.hint('Use --publish to make it live in game.');
254
- }
255
243
  } catch (err) {
256
244
  const durationMs = Date.now() - startMs;
257
245
  const errorMessage = err instanceof Error ? err.message : String(err);
@@ -263,13 +251,22 @@ export class DeployCommand<T> implements CommandModule<T, DeployArgs> {
263
251
  durationMs,
264
252
  error: errorMessage,
265
253
  });
266
-
267
- await reporter.stopAsync();
268
- throw err;
254
+ exitCode = 1;
269
255
  } finally {
270
256
  await context.disposeAsync();
271
257
  }
272
258
 
273
259
  await reporter.stopAsync();
260
+
261
+ if (publishedVersion !== undefined) {
262
+ if (args.publish) {
263
+ OutputHelper.info(`Published v${publishedVersion} — live in game.`);
264
+ } else {
265
+ OutputHelper.info(`Saved v${publishedVersion} — not yet live.`);
266
+ OutputHelper.hint('Use --publish to make it live in game.');
267
+ }
268
+ }
269
+
270
+ if (exitCode !== 0) process.exit(exitCode);
274
271
  }
275
272
  }
@@ -0,0 +1,80 @@
1
+ import inquirer from 'inquirer';
2
+ import {
3
+ type DeployConfig,
4
+ loadDeployConfigAsync,
5
+ resolveDefaultTargetName,
6
+ resolveDeployConfigPath,
7
+ } from '../../utils/build/deploy-config.js';
8
+
9
+ export interface SelectTargetOptions {
10
+ explicitTarget?: string;
11
+ publish: boolean;
12
+ }
13
+
14
+ export interface SelectTargetResult {
15
+ targetName: string;
16
+ autoDetected: boolean;
17
+ }
18
+
19
+ export async function selectTargetAsync(
20
+ cwd: string,
21
+ options: SelectTargetOptions
22
+ ): Promise<SelectTargetResult> {
23
+ if (options.explicitTarget) {
24
+ return { targetName: options.explicitTarget, autoDetected: false };
25
+ }
26
+
27
+ const config = await loadDeployConfigAsync(resolveDeployConfigPath(cwd));
28
+ const targets = Object.keys(config.targets);
29
+
30
+ if (targets.length <= 1 || !_canPrompt()) {
31
+ return {
32
+ targetName: resolveDefaultTargetName(config),
33
+ autoDetected: true,
34
+ };
35
+ }
36
+
37
+ const targetName = await _promptForTargetAsync(config, options.publish);
38
+ return { targetName, autoDetected: false };
39
+ }
40
+
41
+ function _canPrompt(): boolean {
42
+ return Boolean(process.stdin.isTTY && process.stdout.isTTY);
43
+ }
44
+
45
+ async function _promptForTargetAsync(
46
+ config: DeployConfig,
47
+ publish: boolean
48
+ ): Promise<string> {
49
+ const targets = Object.keys(config.targets);
50
+ const preferred = _preferredTarget(targets);
51
+ const orderedTargets = preferred
52
+ ? [preferred, ...targets.filter((t) => t !== preferred)]
53
+ : targets;
54
+
55
+ const choices = orderedTargets.map((name) => {
56
+ const target = config.targets[name]!;
57
+ return {
58
+ name: `${name} (place ${target.placeId})`,
59
+ value: name,
60
+ };
61
+ });
62
+
63
+ const action = publish ? 'publish' : 'deploy';
64
+ const { selection } = await inquirer.prompt<{ selection: string }>([
65
+ {
66
+ type: 'select',
67
+ name: 'selection',
68
+ message: `Select a target to ${action} to:`,
69
+ choices,
70
+ default: preferred,
71
+ },
72
+ ]);
73
+ return selection;
74
+ }
75
+
76
+ function _preferredTarget(targets: string[]): string | undefined {
77
+ if (targets.includes('integration')) return 'integration';
78
+ if (targets.includes('test')) return 'test';
79
+ return undefined;
80
+ }