@forge/cli 13.4.0-next.1-experimental-0b00ed8 → 13.4.0-next.13-experimental-3dcad97

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 (73) hide show
  1. package/CHANGELOG.md +145 -8
  2. package/npm-shrinkwrap.json +58 -98
  3. package/out/autocomplete/autocomplete-config.json +19 -0
  4. package/out/command-line/command.d.ts +3 -1
  5. package/out/command-line/command.d.ts.map +1 -1
  6. package/out/command-line/command.js +6 -3
  7. package/out/command-line/command.js.map +1 -1
  8. package/out/command-line/controller/install-controller.d.ts +3 -1
  9. package/out/command-line/controller/install-controller.d.ts.map +1 -1
  10. package/out/command-line/controller/install-controller.js +6 -1
  11. package/out/command-line/controller/install-controller.js.map +1 -1
  12. package/out/command-line/controller/settings-controller.d.ts +3 -1
  13. package/out/command-line/controller/settings-controller.d.ts.map +1 -1
  14. package/out/command-line/controller/settings-controller.js +38 -1
  15. package/out/command-line/controller/settings-controller.js.map +1 -1
  16. package/out/command-line/controller/site-controller.d.ts +10 -0
  17. package/out/command-line/controller/site-controller.d.ts.map +1 -0
  18. package/out/command-line/controller/site-controller.js +39 -0
  19. package/out/command-line/controller/site-controller.js.map +1 -0
  20. package/out/command-line/dependency-injection.d.ts +4 -0
  21. package/out/command-line/dependency-injection.d.ts.map +1 -1
  22. package/out/command-line/dependency-injection.js +11 -2
  23. package/out/command-line/dependency-injection.js.map +1 -1
  24. package/out/command-line/index.d.ts +0 -2
  25. package/out/command-line/index.d.ts.map +1 -1
  26. package/out/command-line/index.js +16 -22
  27. package/out/command-line/index.js.map +1 -1
  28. package/out/command-line/proxy.d.ts +15 -0
  29. package/out/command-line/proxy.d.ts.map +1 -0
  30. package/out/command-line/proxy.js +71 -0
  31. package/out/command-line/proxy.js.map +1 -0
  32. package/out/command-line/register-app-commands.d.ts.map +1 -1
  33. package/out/command-line/register-app-commands.js +1 -1
  34. package/out/command-line/register-app-commands.js.map +1 -1
  35. package/out/command-line/register-containers-commands.js +1 -1
  36. package/out/command-line/register-containers-commands.js.map +1 -1
  37. package/out/command-line/register-installation-commands.d.ts.map +1 -1
  38. package/out/command-line/register-installation-commands.js +17 -4
  39. package/out/command-line/register-installation-commands.js.map +1 -1
  40. package/out/command-line/register-settings-commands.d.ts.map +1 -1
  41. package/out/command-line/register-settings-commands.js +1 -0
  42. package/out/command-line/register-settings-commands.js.map +1 -1
  43. package/out/command-line/register-site-commands.d.ts +3 -0
  44. package/out/command-line/register-site-commands.d.ts.map +1 -0
  45. package/out/command-line/register-site-commands.js +19 -0
  46. package/out/command-line/register-site-commands.js.map +1 -0
  47. package/out/command-line/view/deploy-view.d.ts.map +1 -1
  48. package/out/command-line/view/deploy-view.js +1 -1
  49. package/out/command-line/view/deploy-view.js.map +1 -1
  50. package/out/command-line/view/site-view.d.ts +15 -0
  51. package/out/command-line/view/site-view.d.ts.map +1 -0
  52. package/out/command-line/view/site-view.js +57 -0
  53. package/out/command-line/view/site-view.js.map +1 -0
  54. package/out/service/cached-config-service.d.ts +1 -0
  55. package/out/service/cached-config-service.d.ts.map +1 -1
  56. package/out/service/cached-config-service.js +3 -2
  57. package/out/service/cached-config-service.js.map +1 -1
  58. package/out/service/resources-uploader-service.d.ts.map +1 -1
  59. package/out/service/resources-uploader-service.js +7 -3
  60. package/out/service/resources-uploader-service.js.map +1 -1
  61. package/out/site/graphql-client.d.ts +36 -0
  62. package/out/site/graphql-client.d.ts.map +1 -0
  63. package/out/site/graphql-client.js +86 -0
  64. package/out/site/graphql-client.js.map +1 -0
  65. package/out/site/index.d.ts +3 -0
  66. package/out/site/index.d.ts.map +1 -0
  67. package/out/site/index.js +6 -0
  68. package/out/site/index.js.map +1 -0
  69. package/out/site/site-service.d.ts +32 -0
  70. package/out/site/site-service.d.ts.map +1 -0
  71. package/out/site/site-service.js +80 -0
  72. package/out/site/site-service.js.map +1 -0
  73. package/package.json +10 -13
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SiteView = void 0;
4
+ const cli_shared_1 = require("@forge/cli-shared");
5
+ class SiteView {
6
+ ui;
7
+ constructor(ui) {
8
+ this.ui = ui;
9
+ }
10
+ checkForExistingSite(work) {
11
+ return this.ui.displayTemporaryMessage(work, cli_shared_1.Text.site.provision.checkingExisting);
12
+ }
13
+ requestSite(work) {
14
+ return this.ui.displayTemporaryMessage(work, cli_shared_1.Text.site.provision.requesting);
15
+ }
16
+ watchProvisioning(poll) {
17
+ return this.ui.displayProgress(() => {
18
+ this.ui.info(cli_shared_1.Text.site.provision.detach);
19
+ return poll();
20
+ }, cli_shared_1.Text.site.provision.poll.start, (result) => result.kind === 'timeout' ? cli_shared_1.Text.site.provision.poll.timeoutSpinner : cli_shared_1.Text.site.provision.poll.completed);
21
+ }
22
+ reportStatus(status) {
23
+ this.ui.info(cli_shared_1.Text.site.provision.poll.status(status));
24
+ }
25
+ alreadyExists() {
26
+ this.ui.info(cli_shared_1.Text.site.provision.alreadyExists);
27
+ }
28
+ backgroundTimeout() {
29
+ this.ui.emptyLine();
30
+ this.ui.warn(cli_shared_1.Text.site.provision.backgroundTimeout);
31
+ }
32
+ completedWithErrors() {
33
+ this.ui.warn(cli_shared_1.Text.site.provision.completedWithErrors);
34
+ }
35
+ renderSite(site) {
36
+ if (!site) {
37
+ this.ui.info(cli_shared_1.Text.site.provision.noResult);
38
+ return;
39
+ }
40
+ this.ui.emptyLine();
41
+ this.ui.table([
42
+ ['name', cli_shared_1.Text.site.provision.table.name],
43
+ ['siteUrl', cli_shared_1.Text.site.provision.table.siteUrl],
44
+ ['status', cli_shared_1.Text.site.provision.table.status],
45
+ ['expires', cli_shared_1.Text.site.provision.table.expires]
46
+ ], [
47
+ {
48
+ name: site.cloudName,
49
+ siteUrl: site.siteUrl ?? null,
50
+ status: site.status ?? null,
51
+ expires: site.expiresAt ?? null
52
+ }
53
+ ]);
54
+ }
55
+ }
56
+ exports.SiteView = SiteView;
57
+ //# sourceMappingURL=site-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-view.js","sourceRoot":"","sources":["../../../src/command-line/view/site-view.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { CachedConf } from '@forge/cli-shared';
2
+ export declare const FORGE_PROXY_ENV_VAR = "FORGE_PROXY";
2
3
  export declare class CachedConfigService {
3
4
  private readonly cachedConf;
4
5
  constructor(cachedConf: CachedConf);
@@ -1 +1 @@
1
- {"version":3,"file":"cached-config-service.d.ts","sourceRoot":"","sources":["../../src/service/cached-config-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAU/C,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAE5C,QAAQ,IAAI,MAAM,GAAG,SAAS;IAI9B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIzC,WAAW,IAAI,IAAI;IAInB,uBAAuB,IAAI,OAAO,GAAG,SAAS;IAO9C,uBAAuB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAIzD,OAAO,CAAC,sBAAsB;IAIvB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAMxD,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAM9D,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIjC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAQ3C,gBAAgB,IAAI,OAAO;IAS3B,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAGhD"}
1
+ {"version":3,"file":"cached-config-service.d.ts","sourceRoot":"","sources":["../../src/service/cached-config-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAO/C,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AAIjD,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAE5C,QAAQ,IAAI,MAAM,GAAG,SAAS;IAI9B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIzC,WAAW,IAAI,IAAI;IAInB,uBAAuB,IAAI,OAAO,GAAG,SAAS;IAO9C,uBAAuB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAIzD,OAAO,CAAC,sBAAsB;IAIvB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAMxD,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAM9D,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIjC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAQ3C,gBAAgB,IAAI,OAAO;IAS3B,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAGhD"}
@@ -1,18 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CachedConfigService = void 0;
3
+ exports.CachedConfigService = exports.FORGE_PROXY_ENV_VAR = void 0;
4
4
  const ANALYTICS_PREFERENCES_KEY = 'analytics-preferences';
5
5
  const DEFAULT_ENVIRONMENT_KEY = 'default-environment';
6
6
  const ASSISTANT_NAME_KEY = 'assistant-name';
7
7
  const CUSTOM_EFFECTS_KEY = 'seasonal-effects';
8
8
  const PROXY_KEY = 'proxy';
9
+ exports.FORGE_PROXY_ENV_VAR = 'FORGE_PROXY';
9
10
  class CachedConfigService {
10
11
  cachedConf;
11
12
  constructor(cachedConf) {
12
13
  this.cachedConf = cachedConf;
13
14
  }
14
15
  getProxy() {
15
- return this.cachedConf.get(PROXY_KEY);
16
+ return process.env[exports.FORGE_PROXY_ENV_VAR]?.trim() || this.cachedConf.get(PROXY_KEY);
16
17
  }
17
18
  setProxy(preference) {
18
19
  this.cachedConf.set(PROXY_KEY, preference);
@@ -1 +1 @@
1
- {"version":3,"file":"cached-config-service.js","sourceRoot":"","sources":["../../src/service/cached-config-service.ts"],"names":[],"mappings":";;;AAEA,MAAM,yBAAyB,GAAG,uBAAuB,CAAC;AAC1D,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AACtD,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAC5C,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAC9C,MAAM,SAAS,GAAG,OAAO,CAAC;AAI1B,MAAa,mBAAmB;IACD;IAA7B,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAEhD,QAAQ;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAEM,QAAQ,CAAC,UAAyB;QACvC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC7C,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAEM,uBAAuB;QAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACxD,CAAC;IAEM,uBAAuB,CAAC,UAAmB;QAChD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,yBAAyB,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;IAEO,sBAAsB;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAsB,uBAAuB,CAAC,IAAI,EAAE,CAAC;IACjF,CAAC;IAEM,qBAAqB,CAAC,KAAa;QACxC,MAAM,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE1D,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAEM,qBAAqB,CAAC,KAAa,EAAE,UAAkB;QAC5D,MAAM,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC1D,mBAAmB,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAsB,uBAAuB,EAAE,mBAAmB,CAAC,CAAC;IACzF,CAAC;IAEM,gBAAgB;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC;IACzD,CAAC;IAEM,gBAAgB,CAAC,IAAmB;QACzC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAEM,gBAAgB;QAErB,IAAI,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC;IACzD,CAAC;IAEM,gBAAgB,CAAC,OAAgB;QACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;CACF;AAlED,kDAkEC"}
1
+ {"version":3,"file":"cached-config-service.js","sourceRoot":"","sources":["../../src/service/cached-config-service.ts"],"names":[],"mappings":";;;AAEA,MAAM,yBAAyB,GAAG,uBAAuB,CAAC;AAC1D,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AACtD,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAC5C,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAC9C,MAAM,SAAS,GAAG,OAAO,CAAC;AACb,QAAA,mBAAmB,GAAG,aAAa,CAAC;AAIjD,MAAa,mBAAmB;IACD;IAA7B,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAEhD,QAAQ;QACb,OAAO,OAAO,CAAC,GAAG,CAAC,2BAAmB,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACpF,CAAC;IAEM,QAAQ,CAAC,UAAyB;QACvC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC7C,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAEM,uBAAuB;QAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACxD,CAAC;IAEM,uBAAuB,CAAC,UAAmB;QAChD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,yBAAyB,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;IAEO,sBAAsB;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAsB,uBAAuB,CAAC,IAAI,EAAE,CAAC;IACjF,CAAC;IAEM,qBAAqB,CAAC,KAAa;QACxC,MAAM,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE1D,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAEM,qBAAqB,CAAC,KAAa,EAAE,UAAkB;QAC5D,MAAM,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC1D,mBAAmB,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAsB,uBAAuB,EAAE,mBAAmB,CAAC,CAAC;IACzF,CAAC;IAEM,gBAAgB;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC;IACzD,CAAC;IAEM,gBAAgB,CAAC,IAAmB;QACzC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAEM,gBAAgB;QAErB,IAAI,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC;IACzD,CAAC;IAEM,gBAAgB,CAAC,OAAgB;QACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;CACF;AAlED,kDAkEC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resources-uploader-service.d.ts","sourceRoot":"","sources":["../../src/service/resources-uploader-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAG5F,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,0BAA0B,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/F;AAcD,qBAAa,wBAAyB,YAAW,eAAe;IAClD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,gBAAgB;IAClD,MAAM,CAAC,EAClB,OAAO,EACP,YAAY,EACb,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,0BAA0B,CAAC;KAC1C,GAAG,OAAO,CAAC,IAAI,CAAC;CAyBlB"}
1
+ {"version":3,"file":"resources-uploader-service.d.ts","sourceRoot":"","sources":["../../src/service/resources-uploader-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,gBAAgB,EAAE,0BAA0B,EAAuB,MAAM,mBAAmB,CAAC;AAGjH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,0BAA0B,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/F;AAcD,qBAAa,wBAAyB,YAAW,eAAe;IAClD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,gBAAgB;IAClD,MAAM,CAAC,EAClB,OAAO,EACP,YAAY,EACb,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,0BAA0B,CAAC;KAC1C,GAAG,OAAO,CAAC,IAAI,CAAC;CA6BlB"}
@@ -28,10 +28,14 @@ class ResourcesUploaderService {
28
28
  formData.append(k, v);
29
29
  });
30
30
  formData.append('file', content);
31
- const body = new Uint8Array(formData.getBuffer());
32
- const headers = formData.getHeaders();
33
- const response = await fetch(preSignedUrl.uploadUrl, {
31
+ const body = formData.getBuffer();
32
+ const headers = {
33
+ ...formData.getHeaders(),
34
+ 'content-length': body.length.toString()
35
+ };
36
+ const response = await (0, cli_shared_1.sendWithNodeRequest)({
34
37
  method: 'POST',
38
+ url: preSignedUrl.uploadUrl,
35
39
  headers,
36
40
  body
37
41
  });
@@ -1 +1 @@
1
- {"version":3,"file":"resources-uploader-service.js","sourceRoot":"","sources":["../../src/service/resources-uploader-service.ts"],"names":[],"mappings":";;;;AAAA,kDAA4F;AAC5F,kEAAiC;AAMjC,MAAM,mBAAoB,SAAQ,sBAAS;IAEtB;IADnB,YACmB,YAAqB,KAAK,EAC3C,SAA8B;QAE9B,KAAK,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC;QAHnC,cAAS,GAAT,SAAS,CAAiB;IAI7C,CAAC;IACM,WAAW;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF;AAED,MAAa,wBAAwB;IACN;IAA7B,YAA6B,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAAG,CAAC;IAC5D,KAAK,CAAC,MAAM,CAAC,EAClB,OAAO,EACP,YAAY,EAIb;QACC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAE9D,MAAM,QAAQ,GAAG,IAAI,mBAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;QACnD,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;QAEpD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YAC7D,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAiB,CAAC;QAErD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE;YACnD,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;CACF;AAjCD,4DAiCC"}
1
+ {"version":3,"file":"resources-uploader-service.js","sourceRoot":"","sources":["../../src/service/resources-uploader-service.ts"],"names":[],"mappings":";;;;AAAA,kDAAiH;AACjH,kEAAiC;AAMjC,MAAM,mBAAoB,SAAQ,sBAAS;IAEtB;IADnB,YACmB,YAAqB,KAAK,EAC3C,SAA8B;QAE9B,KAAK,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC;QAHnC,cAAS,GAAT,SAAS,CAAiB;IAI7C,CAAC;IACM,WAAW;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF;AAED,MAAa,wBAAwB;IACN;IAA7B,YAA6B,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAAG,CAAC;IAC5D,KAAK,CAAC,MAAM,CAAC,EAClB,OAAO,EACP,YAAY,EAIb;QACC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAE9D,MAAM,QAAQ,GAAG,IAAI,mBAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;QACnD,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;QAEpD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YAC7D,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG;YACd,GAAG,QAAQ,CAAC,UAAU,EAAE;YACxB,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;SACzC,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,gCAAmB,EAAC;YACzC,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,YAAY,CAAC,SAAS;YAC3B,OAAO;YACP,IAAI;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;CACF;AArCD,4DAqCC"}
@@ -0,0 +1,36 @@
1
+ import { GraphQLClient } from '@forge/cli-shared';
2
+ export type DemoSiteProvisioningStatus = 'PENDING' | 'RUNNING' | 'COMPLETED' | 'COMPLETED_WITH_ERRORS' | 'FAILED';
3
+ export interface DemoSite {
4
+ dfId: string;
5
+ cloudName: string;
6
+ siteUrl?: string | null;
7
+ status?: string | null;
8
+ createdAt?: string | null;
9
+ expiresAt?: string | null;
10
+ }
11
+ export interface DemoSiteProvisioning {
12
+ taskId: string;
13
+ cloudName?: string | null;
14
+ status: DemoSiteProvisioningStatus;
15
+ startedAt?: string | null;
16
+ finishedAt?: string | null;
17
+ site?: DemoSite | null;
18
+ }
19
+ export interface ProvisionDemoSiteResult {
20
+ taskId: string;
21
+ cloudName?: string | null;
22
+ xnId?: string | null;
23
+ }
24
+ export interface DemoSiteClient {
25
+ provisionDemoSite(): Promise<ProvisionDemoSiteResult>;
26
+ getDemoSiteProvisioning(taskId: string): Promise<DemoSiteProvisioning | undefined>;
27
+ getDemoSite(): Promise<DemoSite | undefined>;
28
+ }
29
+ export declare class DemoSiteGraphQLClient implements DemoSiteClient {
30
+ private readonly graphqlClient;
31
+ constructor(graphqlClient: GraphQLClient);
32
+ provisionDemoSite(): Promise<ProvisionDemoSiteResult>;
33
+ getDemoSiteProvisioning(taskId: string): Promise<DemoSiteProvisioning | undefined>;
34
+ getDemoSite(): Promise<DemoSite | undefined>;
35
+ }
36
+ //# sourceMappingURL=graphql-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/site/graphql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,aAAa,EAAwB,MAAM,mBAAmB,CAAC;AAMlF,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,uBAAuB,GAAG,QAAQ,CAAC;AAGlH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAGD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,0BAA0B,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CACxB;AAGD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,iBAAiB,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtD,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAC;IACnF,WAAW,IAAI,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;CAC9C;AA0BD,qBAAa,qBAAsB,YAAW,cAAc;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE5C,iBAAiB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAyCrD,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IAyBlF,WAAW,IAAI,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;CAiB1D"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DemoSiteGraphQLClient = void 0;
4
+ const cli_shared_1 = require("@forge/cli-shared");
5
+ class DemoSiteGraphQLClient {
6
+ graphqlClient;
7
+ constructor(graphqlClient) {
8
+ this.graphqlClient = graphqlClient;
9
+ }
10
+ async provisionDemoSite() {
11
+ const mutation = `
12
+ mutation forge_cli_provisionDemoSite {
13
+ provisionDemoSite {
14
+ success
15
+ errors {
16
+ message
17
+ extensions {
18
+ errorType
19
+ statusCode
20
+ }
21
+ }
22
+ taskId
23
+ cloudName
24
+ xnId
25
+ }
26
+ }
27
+ `;
28
+ const { response, requestId } = await this.graphqlClient.mutate(mutation, {});
29
+ const payload = response?.provisionDemoSite;
30
+ if (!payload || payload.success === false || !payload.taskId) {
31
+ const error = (0, cli_shared_1.getError)(payload?.errors);
32
+ const message = error.message ?? 'Failed to start demo site provisioning';
33
+ throw new cli_shared_1.GraphQlMutationError(`${message} (requestId: ${requestId || 'unknown'})`, {
34
+ requestId,
35
+ code: error.code,
36
+ statusCode: error.statusCode
37
+ });
38
+ }
39
+ return {
40
+ taskId: payload.taskId,
41
+ cloudName: payload.cloudName,
42
+ xnId: payload.xnId
43
+ };
44
+ }
45
+ async getDemoSiteProvisioning(taskId) {
46
+ const query = `
47
+ query forge_cli_demoSiteProvisioning($taskId: ID!) {
48
+ demoSiteProvisioning(taskId: $taskId) {
49
+ taskId
50
+ cloudName
51
+ status
52
+ startedAt
53
+ finishedAt
54
+ site {
55
+ dfId
56
+ cloudName
57
+ siteUrl
58
+ status
59
+ createdAt
60
+ expiresAt
61
+ }
62
+ }
63
+ }
64
+ `;
65
+ const result = await this.graphqlClient.query(query, { taskId });
66
+ return result?.demoSiteProvisioning ?? undefined;
67
+ }
68
+ async getDemoSite() {
69
+ const query = `
70
+ query forge_cli_demoSite {
71
+ demoSite {
72
+ dfId
73
+ cloudName
74
+ siteUrl
75
+ status
76
+ createdAt
77
+ expiresAt
78
+ }
79
+ }
80
+ `;
81
+ const result = await this.graphqlClient.query(query, {});
82
+ return result?.demoSite ?? undefined;
83
+ }
84
+ }
85
+ exports.DemoSiteGraphQLClient = DemoSiteGraphQLClient;
86
+ //# sourceMappingURL=graphql-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-client.js","sourceRoot":"","sources":["../../src/site/graphql-client.ts"],"names":[],"mappings":";;;AAAA,kDAAkF;AAiElF,MAAa,qBAAqB;IACH;IAA7B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAEtD,KAAK,CAAC,iBAAiB;QAC5B,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;KAgBhB,CAAC;QAEF,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAU,QAAQ,EAAE,EAAE,CAAC,CAAC;QACvF,MAAM,OAAO,GAAI,QAAkD,EAAE,iBAAiB,CAAC;QAIvF,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7D,MAAM,KAAK,GAAG,IAAA,qBAAQ,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,wCAAwC,CAAC;YAC1E,MAAM,IAAI,iCAAoB,CAAC,GAAG,OAAO,gBAAgB,SAAS,IAAI,SAAS,GAAG,EAAE;gBAClF,SAAS;gBACT,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,uBAAuB,CAAC,MAAc;QACjD,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;KAkBb,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAA0B,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1F,OAAQ,MAAmD,EAAE,oBAAoB,IAAI,SAAS,CAAC;IACjG,CAAC;IAEM,KAAK,CAAC,WAAW;QACtB,MAAM,KAAK,GAAG;;;;;;;;;;;KAWb,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAU,KAAK,EAAE,EAAE,CAAC,CAAC;QAClE,OAAQ,MAAuC,EAAE,QAAQ,IAAI,SAAS,CAAC;IACzE,CAAC;CACF;AAtFD,sDAsFC"}
@@ -0,0 +1,3 @@
1
+ export * from './graphql-client';
2
+ export * from './site-service';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/site/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./graphql-client"), exports);
5
+ tslib_1.__exportStar(require("./site-service"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/site/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,yDAA+B"}
@@ -0,0 +1,32 @@
1
+ import { Logger, UserError } from '@forge/cli-shared';
2
+ import { DemoSite, DemoSiteClient, DemoSiteProvisioning, DemoSiteProvisioningStatus, ProvisionDemoSiteResult } from './graphql-client';
3
+ export declare const DEFAULT_PROVISION_TIMEOUT_MS: number;
4
+ export declare const DEFAULT_PROVISION_POLL_INTERVAL_MS: number;
5
+ export declare class SiteProvisioningFailedError extends UserError {
6
+ }
7
+ export interface PollOptions {
8
+ timeoutMs?: number;
9
+ intervalMs?: number;
10
+ onStatus?: (status: DemoSiteProvisioningStatus) => void;
11
+ }
12
+ export type ProvisioningOutcome = {
13
+ kind: 'completed';
14
+ provisioning: DemoSiteProvisioning;
15
+ } | {
16
+ kind: 'completedWithErrors';
17
+ provisioning: DemoSiteProvisioning;
18
+ } | {
19
+ kind: 'timeout';
20
+ taskId: string;
21
+ };
22
+ export declare const isActiveDemoSite: (site: DemoSite | undefined) => boolean;
23
+ export declare class SiteService {
24
+ private readonly client;
25
+ private readonly logger;
26
+ constructor(client: DemoSiteClient, logger?: Logger);
27
+ provision(): Promise<ProvisionDemoSiteResult>;
28
+ getExistingSite(): Promise<DemoSite | undefined>;
29
+ hasActiveDemoSite(): Promise<boolean>;
30
+ pollProvisioning(taskId: string, options?: PollOptions): Promise<ProvisioningOutcome>;
31
+ }
32
+ //# sourceMappingURL=site-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-service.d.ts","sourceRoot":"","sources":["../../src/site/site-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA2B,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE/E,OAAO,EACL,QAAQ,EACR,cAAc,EACd,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACxB,MAAM,kBAAkB,CAAC;AAK1B,eAAO,MAAM,4BAA4B,QAAgB,CAAC;AAG1D,eAAO,MAAM,kCAAkC,QAAW,CAAC;AAE3D,qBAAa,2BAA4B,SAAQ,SAAS;CAAG;AAE7D,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,0BAA0B,KAAK,IAAI,CAAC;CACzD;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,YAAY,EAAE,oBAAoB,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,YAAY,EAAE,oBAAoB,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAQxC,eAAO,MAAM,gBAAgB,GAAI,MAAM,QAAQ,GAAG,SAAS,KAAG,OAiB7D,CAAC;AAEF,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,MAAM,EAAE,cAAc,EACtB,MAAM,GAAE,MAAmB;IAIjC,SAAS,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAQ7C,eAAe,IAAI,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAKhD,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAsBrC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAsCvG"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SiteService = exports.isActiveDemoSite = exports.SiteProvisioningFailedError = exports.DEFAULT_PROVISION_POLL_INTERVAL_MS = exports.DEFAULT_PROVISION_TIMEOUT_MS = void 0;
4
+ const cli_shared_1 = require("@forge/cli-shared");
5
+ const INACTIVE_SITE_STATUSES = ['EXPIRED', 'DEACTIVATED', 'DELETED', 'INACTIVE', 'FAILED'];
6
+ exports.DEFAULT_PROVISION_TIMEOUT_MS = 3 * 60 * 1000;
7
+ exports.DEFAULT_PROVISION_POLL_INTERVAL_MS = 5 * 1000;
8
+ class SiteProvisioningFailedError extends cli_shared_1.UserError {
9
+ }
10
+ exports.SiteProvisioningFailedError = SiteProvisioningFailedError;
11
+ const isActiveDemoSite = (site) => {
12
+ if (!site?.siteUrl) {
13
+ return false;
14
+ }
15
+ if (site.status && INACTIVE_SITE_STATUSES.includes(site.status.toUpperCase())) {
16
+ return false;
17
+ }
18
+ if (site.expiresAt) {
19
+ const expiresAt = Date.parse(site.expiresAt);
20
+ if (!Number.isNaN(expiresAt) && expiresAt <= Date.now()) {
21
+ return false;
22
+ }
23
+ }
24
+ return true;
25
+ };
26
+ exports.isActiveDemoSite = isActiveDemoSite;
27
+ class SiteService {
28
+ client;
29
+ logger;
30
+ constructor(client, logger = cli_shared_1.NullLogger) {
31
+ this.client = client;
32
+ this.logger = logger;
33
+ }
34
+ async provision() {
35
+ return this.client.provisionDemoSite();
36
+ }
37
+ async getExistingSite() {
38
+ return this.client.getDemoSite();
39
+ }
40
+ async hasActiveDemoSite() {
41
+ try {
42
+ const site = await this.client.getDemoSite();
43
+ this.logger.debug(cli_shared_1.Text.site.debug.demoSiteLookup(site?.siteUrl, site?.status, site?.expiresAt));
44
+ return (0, exports.isActiveDemoSite)(site);
45
+ }
46
+ catch (error) {
47
+ this.logger.debug(cli_shared_1.Text.site.debug.demoSiteLookupFailed(error instanceof Error ? error.message : String(error)));
48
+ return true;
49
+ }
50
+ }
51
+ async pollProvisioning(taskId, options = {}) {
52
+ const timeoutMs = options.timeoutMs ?? exports.DEFAULT_PROVISION_TIMEOUT_MS;
53
+ const intervalMs = options.intervalMs ?? exports.DEFAULT_PROVISION_POLL_INTERVAL_MS;
54
+ const deadline = Date.now() + timeoutMs;
55
+ let lastStatus;
56
+ while (true) {
57
+ const provisioning = await this.client.getDemoSiteProvisioning(taskId);
58
+ const status = provisioning?.status;
59
+ if (status && status !== lastStatus) {
60
+ lastStatus = status;
61
+ options.onStatus?.(status);
62
+ }
63
+ if (status === 'COMPLETED' && provisioning) {
64
+ return { kind: 'completed', provisioning };
65
+ }
66
+ if (status === 'COMPLETED_WITH_ERRORS' && provisioning?.site) {
67
+ return { kind: 'completedWithErrors', provisioning };
68
+ }
69
+ if (status === 'FAILED' || status === 'COMPLETED_WITH_ERRORS') {
70
+ throw new SiteProvisioningFailedError(`Demo site provisioning ${status === 'FAILED' ? 'failed' : 'completed with errors'} (taskId: ${taskId}).`);
71
+ }
72
+ if (Date.now() >= deadline) {
73
+ return { kind: 'timeout', taskId };
74
+ }
75
+ await (0, cli_shared_1.pause)(intervalMs);
76
+ }
77
+ }
78
+ }
79
+ exports.SiteService = SiteService;
80
+ //# sourceMappingURL=site-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-service.js","sourceRoot":"","sources":["../../src/site/site-service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/cli",
3
- "version": "13.4.0-next.1-experimental-0b00ed8",
3
+ "version": "13.4.0-next.13-experimental-3dcad97",
4
4
  "description": "A command line interface for managing Atlassian-hosted apps",
5
5
  "author": "Atlassian",
6
6
  "license": "SEE LICENSE IN LICENSE.txt",
@@ -21,14 +21,14 @@
21
21
  "generate:custom-scopes-types": "json2ts --input src/custom-scopes/validation/schema.json --output src/custom-scopes/generated-types.d.ts --style.singleQuote"
22
22
  },
23
23
  "dependencies": {
24
- "@forge/bundler": "7.1.1-next.1-experimental-0b00ed8",
25
- "@forge/cli-shared": "9.3.1-next.1-experimental-0b00ed8",
24
+ "@forge/bundler": "7.2.0-next.11-experimental-3dcad97",
25
+ "@forge/cli-shared": "9.4.0-next.8-experimental-3dcad97",
26
26
  "@forge/egress": "3.0.0",
27
- "@forge/lint": "6.1.1-next.1-experimental-0b00ed8",
28
- "@forge/manifest": "13.3.0-experimental-0b00ed8",
27
+ "@forge/lint": "6.2.0-next.11-experimental-3dcad97",
28
+ "@forge/manifest": "13.3.1-next.1-experimental-3dcad97",
29
29
  "@forge/i18n": "1.0.0",
30
30
  "@forge/runtime": "7.0.0",
31
- "@forge/tunnel": "7.1.1-next.1-experimental-0b00ed8",
31
+ "@forge/tunnel": "7.1.1-next.11-experimental-3dcad97",
32
32
  "@forge/util": "3.0.0",
33
33
  "@sentry/node": "7.106.0",
34
34
  "ajv": "^8.18.0",
@@ -49,9 +49,9 @@
49
49
  "fs-extra": "^11.2.0",
50
50
  "hidefile": "^3.0.0",
51
51
  "http-proxy-agent": "^7.0.2",
52
+ "https-proxy-agent": "^7.0.6",
52
53
  "latest-version": "^7.0.0",
53
54
  "lodash": "^4.17.21",
54
- "node-fetch": "2.7.0",
55
55
  "node-machine-id": "^1.1.12",
56
56
  "omelette": "^0.4.17",
57
57
  "ora": "^5.4.1",
@@ -60,6 +60,7 @@
60
60
  "semver": "^7.6.0",
61
61
  "tmp": "^0.2.3",
62
62
  "tslib": "^2.6.2",
63
+ "undici": "^7.29.0",
63
64
  "v8-compile-cache": "^2.4.0",
64
65
  "yaml": "^2.3.4"
65
66
  },
@@ -75,7 +76,6 @@
75
76
  "@types/jest": "^29.5.14",
76
77
  "@types/jws": "^3.2.10",
77
78
  "@types/node": "20.19.1",
78
- "@types/node-fetch": "^2.6.12",
79
79
  "@types/omelette": "^0.4.5",
80
80
  "@types/semver": "^7.5.8",
81
81
  "@types/tmp": "^0.2.6",
@@ -92,12 +92,9 @@
92
92
  "typescript": "5.9.2"
93
93
  },
94
94
  "engines": {
95
- "node": ">=20.18.1 <22.23.1 || >22.23.1 <24.17.0 || >24.17.0"
96
- },
97
- "engines_why": {
98
- "22.23.1": "ECO-1586: Includes bug https://github.com/nodejs/node/issues/63989 triggering 'Premature close' on node-fetch",
99
- "24.17.0": "ECO-1586: Includes bug https://github.com/nodejs/node/issues/63989 triggering 'Premature close' on node-fetch"
95
+ "node": ">=20.18.1"
100
96
  },
97
+ "engines_why": {},
101
98
  "publishConfig": {
102
99
  "registry": "https://packages.atlassian.com/api/npm/npm-public/"
103
100
  },