@jxsuite/studio 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/chunks/{2020-xp8vnwma.js → 2020-n6tfwnda.js} +2 -2
  2. package/dist/chunks/{Overlay.dev-723bv0df.js → Overlay.dev-etqjwyf9.js} +4 -4
  3. package/dist/chunks/cf-account-picker-en86v7x7.js +163 -0
  4. package/dist/chunks/{content-source-t88vb2dr.js → content-source-48xg86wj.js} +17 -17
  5. package/dist/chunks/{convert-to-repeater-dhw1nrz9.js → convert-to-repeater-43tfn7cs.js} +24 -24
  6. package/dist/chunks/{entry-commands-6z6bhxg0.js → entry-commands-e63f1xc0.js} +20 -20
  7. package/dist/chunks/{extension-sections-3ydgjbdy.js → extension-sections-txv08xxg.js} +23 -23
  8. package/dist/chunks/{file-ops-rskmhxyq.js → file-ops-wbh4hhsx.js} +16 -16
  9. package/dist/chunks/{files-0cratsr0.js → files-3kfkwhk4.js} +25 -24
  10. package/dist/chunks/{focus-trap.esm-ggawf1hy.js → focus-trap.esm-9t2drp0g.js} +6 -5
  11. package/dist/chunks/{format-host-tgcmfs4p.js → format-host-w16q81tf.js} +2 -2
  12. package/dist/chunks/fs-events-hrrg328g.js +1 -1
  13. package/dist/chunks/{git-panel-0yywyk76.js → git-panel-532whr1y.js} +16 -15
  14. package/dist/chunks/{index-nj44jpzj.js → index-wcnt3r9g.js} +2 -2
  15. package/dist/chunks/{jx-validate-8q2g05x1.js → jx-validate-8er6gbxy.js} +3 -3
  16. package/dist/chunks/{layers-panel-z3tqe5cd.js → layers-panel-07hm7g5j.js} +19 -19
  17. package/dist/chunks/{monaco-setup-rws7k4br.js → monaco-setup-vx9bhp1d.js} +2 -2
  18. package/dist/chunks/{publish-panel-54jvhskq.js → publish-panel-v9st96ja.js} +11 -10
  19. package/dist/chunks/{quick-search-cgfmjwq5.js → quick-search-zccjp6gv.js} +26 -25
  20. package/dist/chunks/{right-panel-cqp8bc4v.js → right-panel-vm3b6kwy.js} +17 -17
  21. package/dist/chunks/{sp-overlay.dev-yztmtrs1.js → sp-overlay.dev-qgvhnxf4.js} +5 -5
  22. package/dist/chunks/{sp-tooltip.dev-xcvpnqr0.js → sp-tooltip.dev-4sastdnw.js} +3 -3
  23. package/dist/chunks/{studio-txwkm6p9.js → studio-0bq6eh7v.js} +2 -2
  24. package/dist/chunks/studio-1ngbejft.js +181 -0
  25. package/dist/chunks/{studio-gv8vvshc.js → studio-1wagb550.js} +3 -3
  26. package/dist/chunks/{studio-kjjsjak4.js → studio-2b946z26.js} +58 -57
  27. package/dist/chunks/{studio-4pqqxbrt.js → studio-3bqpr0zh.js} +16 -16
  28. package/dist/chunks/{studio-v38hmvx1.js → studio-4b5z1x43.js} +42 -8
  29. package/dist/chunks/{studio-9c4k4vhv.js → studio-4n2b5gzb.js} +4 -4
  30. package/dist/chunks/{studio-p8j86wag.js → studio-4r1pv6zf.js} +2 -2
  31. package/dist/chunks/{studio-mmv72a27.js → studio-5fx3g9jg.js} +29 -48
  32. package/dist/chunks/{studio-5rywrkxz.js → studio-5myknm0a.js} +42 -42
  33. package/dist/chunks/{studio-sf7zjgv1.js → studio-6yw4y3my.js} +3 -3
  34. package/dist/chunks/{studio-pdfjntbk.js → studio-950k0dx6.js} +35 -35
  35. package/dist/chunks/{studio-eenfkt4e.js → studio-ahn3pdgx.js} +5 -5
  36. package/dist/chunks/{studio-eesa1myv.js → studio-b55y6ewx.js} +9 -9
  37. package/dist/chunks/{studio-cb12yz9w.js → studio-cmb03bg5.js} +99 -1264
  38. package/dist/chunks/studio-dm19q43r.js +195 -0
  39. package/dist/chunks/{studio-ahjfdy6e.js → studio-ef49pnzx.js} +6 -6
  40. package/dist/chunks/{studio-wx5609xd.js → studio-ew0djmhg.js} +10 -10
  41. package/dist/chunks/{studio-9r6j5ev1.js → studio-f3wqjtk5.js} +4 -3
  42. package/dist/chunks/{studio-8swrjbny.js → studio-fbf92ckf.js} +14 -14
  43. package/dist/chunks/{studio-4q0wznzf.js → studio-gcye7qka.js} +442 -126
  44. package/dist/chunks/{studio-ex8zyp98.js → studio-gfgb8pe6.js} +23 -184
  45. package/dist/chunks/{studio-r1r7afxx.js → studio-jc994dnr.js} +24 -24
  46. package/dist/chunks/{studio-yxrkyv8a.js → studio-jkftxyvz.js} +52 -3416
  47. package/dist/chunks/{studio-hbtp0eh1.js → studio-msd847zn.js} +13 -13
  48. package/dist/chunks/{studio-kyk2v92a.js → studio-mtfnaqs9.js} +14 -14
  49. package/dist/chunks/{studio-vadzgkrz.js → studio-n6j9t10q.js} +2 -2
  50. package/dist/chunks/{studio-68n67094.js → studio-q9jd1a60.js} +4 -4
  51. package/dist/chunks/studio-qcy05dp8.js +1743 -0
  52. package/dist/chunks/{studio-htsf0w6m.js → studio-qjy2z9bv.js} +12 -30
  53. package/dist/chunks/{studio-2zkz8evn.js → studio-trxrabqf.js} +12 -12
  54. package/dist/chunks/{studio-5q69gfag.js → studio-x4qkdat5.js} +12 -11
  55. package/dist/chunks/studio-x813zp48.js +195 -0
  56. package/dist/chunks/{studio-1hbqnt19.js → studio-zqazsct2.js} +29 -29
  57. package/dist/chunks/{workspace-xpres40v.js → workspace-fjx52ryv.js} +4 -4
  58. package/dist/iframe-entry.js +34 -33
  59. package/dist/manifest.json +7 -0
  60. package/dist/studio.js +534 -546
  61. package/favicon.ico +0 -0
  62. package/index.html +1 -0
  63. package/package.json +15 -14
  64. package/src/about/about-modal.ts +4 -3
  65. package/src/files/files.ts +6 -4
  66. package/src/files/media-paths.ts +13 -42
  67. package/src/files/media-usage.ts +41 -131
  68. package/src/hosting/document.ts +2 -0
  69. package/src/hosting/layout.ts +8 -0
  70. package/src/new-project/import-tab.ts +37 -15
  71. package/src/new-project/location-fields.ts +8 -5
  72. package/src/panels/ai-chat/composer.ts +10 -0
  73. package/src/platforms/cloud.ts +241 -70
  74. package/src/publish/publish-panel.ts +62 -2
  75. package/src/services/ai-import-tools.ts +50 -12
  76. package/src/services/ai-models.ts +108 -1
  77. package/src/services/context-manager.ts +12 -1
  78. package/src/services/tool-executor.ts +11 -0
  79. package/src/settings/preferences-accounts.ts +193 -12
  80. package/src/settings/preferences-dialog.ts +75 -18
  81. package/src/types.ts +27 -3
  82. package/src/ui/ai-managed-connect.ts +62 -13
  83. package/src/ui/ai-model-picker.ts +29 -2
  84. package/src/ui/cf-account-picker.ts +200 -0
  85. package/styles/shell.css +36 -0
  86. package/dist/chunks/studio-bw5dz6km.js +0 -608
@@ -13,27 +13,28 @@ import {
13
13
  renderGitPanel,
14
14
  signInToGithub,
15
15
  sourceControlCommands
16
- } from "./studio-ex8zyp98.js";
16
+ } from "./studio-gfgb8pe6.js";
17
17
  import"./studio-8jpzqk5s.js";
18
- import"./studio-9c4k4vhv.js";
19
- import"./studio-ahjfdy6e.js";
20
- import"./studio-kjjsjak4.js";
21
- import"./studio-hbtp0eh1.js";
22
- import"./studio-t7qb9db8.js";
23
- import"./studio-9n4mrmnb.js";
24
- import"./studio-2zkz8evn.js";
18
+ import"./studio-1ngbejft.js";
19
+ import"./studio-4n2b5gzb.js";
20
+ import"./studio-ef49pnzx.js";
21
+ import"./studio-2b946z26.js";
22
+ import"./studio-msd847zn.js";
23
+ import"./studio-trxrabqf.js";
25
24
  import"./studio-wcy8trfx.js";
26
- import"./studio-92ab2jqe.js";
27
- import"./studio-xrapxwwc.js";
28
25
  import"./studio-m3hwn7y1.js";
29
- import"./studio-4rzyrtjz.js";
30
- import"./studio-kryvsw6j.js";
31
26
  import"./studio-g1wdche0.js";
32
27
  import"./studio-5ehhackm.js";
33
28
  import"./studio-bgxt93ga.js";
34
29
  import"./studio-p4ngc046.js";
30
+ import"./studio-t7qb9db8.js";
31
+ import"./studio-9n4mrmnb.js";
32
+ import"./studio-92ab2jqe.js";
33
+ import"./studio-xrapxwwc.js";
34
+ import"./studio-4rzyrtjz.js";
35
+ import"./studio-kryvsw6j.js";
35
36
  import"./studio-q7v10cg2.js";
36
- import"./studio-eenfkt4e.js";
37
+ import"./studio-ahn3pdgx.js";
37
38
  import"./studio-9ab8gqsm.js";
38
39
  import"./studio-53n8bp04.js";
39
40
  import"./studio-a0tswy0w.js";
@@ -54,5 +55,5 @@ export {
54
55
  sourceControlCommands
55
56
  };
56
57
 
57
- //# debugId=DA6358C591E4B3FF64756E2164756E21
58
- //# sourceMappingURL=git-panel-0yywyk76.js.map
58
+ //# debugId=8CAD36EE2AF0B12064756E2164756E21
59
+ //# sourceMappingURL=git-panel-532whr1y.js.map
@@ -10,7 +10,7 @@ import {
10
10
  require_validate,
11
11
  require_validation,
12
12
  require_validation_error
13
- } from "./studio-4q0wznzf.js";
13
+ } from "./studio-gcye7qka.js";
14
14
  import {
15
15
  __commonJS
16
16
  } from "./studio-a0tswy0w.js";
@@ -544,4 +544,4 @@ var require_dist = __commonJS(function(exports, module) {
544
544
  export default require_dist();
545
545
 
546
546
  //# debugId=63B9398DFFB8851464756E2164756E21
547
- //# sourceMappingURL=index-nj44jpzj.js.map
547
+ //# sourceMappingURL=index-wcnt3r9g.js.map
@@ -4,8 +4,8 @@ import {
4
4
  validateDoc,
5
5
  validateDocOrNull,
6
6
  validateProjectConfig
7
- } from "./studio-68n67094.js";
8
- import"./studio-9r6j5ev1.js";
7
+ } from "./studio-q9jd1a60.js";
8
+ import"./studio-f3wqjtk5.js";
9
9
  import"./studio-a0tswy0w.js";
10
10
  export {
11
11
  applyProjectSchemas,
@@ -16,4 +16,4 @@ export {
16
16
  };
17
17
 
18
18
  //# debugId=C0D3EDEA0B44B76D64756E2164756E21
19
- //# sourceMappingURL=jx-validate-8q2g05x1.js.map
19
+ //# sourceMappingURL=jx-validate-8er6gbxy.js.map
@@ -14,33 +14,33 @@ import {
14
14
  renderLayersTemplate,
15
15
  renderRowCommands,
16
16
  startLayerTitleEdit
17
- } from "./studio-yxrkyv8a.js";
18
- import"./studio-8swrjbny.js";
19
- import"./studio-pdfjntbk.js";
17
+ } from "./studio-jkftxyvz.js";
18
+ import"./studio-fbf92ckf.js";
19
+ import"./studio-950k0dx6.js";
20
20
  import"./studio-7nte2hj4.js";
21
- import"./studio-p8j86wag.js";
22
- import"./studio-gv8vvshc.js";
23
- import"./studio-5q69gfag.js";
24
- import"./studio-bw5dz6km.js";
25
- import"./studio-htsf0w6m.js";
21
+ import"./studio-4r1pv6zf.js";
22
+ import"./studio-1wagb550.js";
23
+ import"./studio-x4qkdat5.js";
24
+ import"./studio-qcy05dp8.js";
25
+ import"./studio-qjy2z9bv.js";
26
26
  import"./studio-cft9r4r7.js";
27
- import"./studio-kjjsjak4.js";
28
- import"./studio-hbtp0eh1.js";
29
- import"./studio-t7qb9db8.js";
30
- import"./studio-9n4mrmnb.js";
31
- import"./studio-2zkz8evn.js";
27
+ import"./studio-2b946z26.js";
28
+ import"./studio-msd847zn.js";
29
+ import"./studio-trxrabqf.js";
32
30
  import"./studio-wcy8trfx.js";
33
- import"./studio-92ab2jqe.js";
34
- import"./studio-xrapxwwc.js";
35
31
  import"./studio-m3hwn7y1.js";
36
- import"./studio-4rzyrtjz.js";
37
- import"./studio-kryvsw6j.js";
38
32
  import"./studio-g1wdche0.js";
39
33
  import"./studio-5ehhackm.js";
40
34
  import"./studio-bgxt93ga.js";
41
35
  import"./studio-p4ngc046.js";
36
+ import"./studio-t7qb9db8.js";
37
+ import"./studio-9n4mrmnb.js";
38
+ import"./studio-92ab2jqe.js";
39
+ import"./studio-xrapxwwc.js";
40
+ import"./studio-4rzyrtjz.js";
41
+ import"./studio-kryvsw6j.js";
42
42
  import"./studio-q7v10cg2.js";
43
- import"./studio-eenfkt4e.js";
43
+ import"./studio-ahn3pdgx.js";
44
44
  import"./studio-9ab8gqsm.js";
45
45
  import"./studio-t5wqwzdh.js";
46
46
  import"./studio-53n8bp04.js";
@@ -64,4 +64,4 @@ export {
64
64
  };
65
65
 
66
66
  //# debugId=6E6B40F265059D9364756E2164756E21
67
- //# sourceMappingURL=layers-panel-z3tqe5cd.js.map
67
+ //# sourceMappingURL=layers-panel-07hm7g5j.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  project_schema_default,
6
6
  schema_default
7
- } from "./studio-9r6j5ev1.js";
7
+ } from "./studio-f3wqjtk5.js";
8
8
  import"./studio-t5wqwzdh.js";
9
9
  import {
10
10
  bundleUrl
@@ -402,4 +402,4 @@ export {
402
402
  };
403
403
 
404
404
  //# debugId=FF41659D37D1106D64756E2164756E21
405
- //# sourceMappingURL=monaco-setup-rws7k4br.js.map
405
+ //# sourceMappingURL=monaco-setup-vx9bhp1d.js.map
@@ -1,22 +1,23 @@
1
1
  import {
2
2
  openPublishPanel,
3
3
  seedPublishConnected
4
- } from "./studio-v38hmvx1.js";
4
+ } from "./studio-4b5z1x43.js";
5
+ import"./studio-dm19q43r.js";
5
6
  import"./studio-kyh9avvv.js";
6
- import"./studio-ahjfdy6e.js";
7
- import"./studio-hbtp0eh1.js";
7
+ import"./studio-ef49pnzx.js";
8
+ import"./studio-msd847zn.js";
9
+ import"./studio-trxrabqf.js";
10
+ import"./studio-wcy8trfx.js";
11
+ import"./studio-5ehhackm.js";
12
+ import"./studio-p4ngc046.js";
8
13
  import"./studio-t7qb9db8.js";
9
14
  import"./studio-9n4mrmnb.js";
10
- import"./studio-2zkz8evn.js";
11
- import"./studio-wcy8trfx.js";
12
15
  import"./studio-92ab2jqe.js";
13
16
  import"./studio-xrapxwwc.js";
14
17
  import"./studio-4rzyrtjz.js";
15
18
  import"./studio-kryvsw6j.js";
16
- import"./studio-5ehhackm.js";
17
- import"./studio-p4ngc046.js";
18
19
  import"./studio-q7v10cg2.js";
19
- import"./studio-eenfkt4e.js";
20
+ import"./studio-ahn3pdgx.js";
20
21
  import"./studio-9ab8gqsm.js";
21
22
  import"./studio-a0tswy0w.js";
22
23
  export {
@@ -24,5 +25,5 @@ export {
24
25
  seedPublishConnected
25
26
  };
26
27
 
27
- //# debugId=839EB3AB6F790E5264756E2164756E21
28
- //# sourceMappingURL=publish-panel-54jvhskq.js.map
28
+ //# debugId=DB0BE286B99E8C6B64756E2164756E21
29
+ //# sourceMappingURL=publish-panel-v9st96ja.js.map
@@ -10,40 +10,41 @@ import {
10
10
  paletteArgs,
11
11
  rankBy,
12
12
  resolvePaletteMode
13
- } from "./studio-kyk2v92a.js";
14
- import"./studio-5rywrkxz.js";
15
- import"./studio-p8j86wag.js";
16
- import"./studio-gv8vvshc.js";
17
- import"./studio-ex8zyp98.js";
13
+ } from "./studio-mtfnaqs9.js";
14
+ import"./studio-5myknm0a.js";
15
+ import"./studio-4r1pv6zf.js";
16
+ import"./studio-1wagb550.js";
17
+ import"./studio-gfgb8pe6.js";
18
18
  import"./studio-8jpzqk5s.js";
19
- import"./studio-sf7zjgv1.js";
20
- import"./studio-4pqqxbrt.js";
21
- import"./studio-eesa1myv.js";
22
- import"./studio-cb12yz9w.js";
19
+ import"./studio-1ngbejft.js";
20
+ import"./studio-6yw4y3my.js";
21
+ import"./studio-3bqpr0zh.js";
22
+ import"./studio-b55y6ewx.js";
23
+ import"./studio-cmb03bg5.js";
23
24
  import"./studio-q43a5y9h.js";
24
25
  import"./studio-qq6jym04.js";
25
- import"./studio-bw5dz6km.js";
26
- import"./studio-htsf0w6m.js";
26
+ import"./studio-qcy05dp8.js";
27
+ import"./studio-qjy2z9bv.js";
27
28
  import"./studio-cft9r4r7.js";
28
- import"./studio-9c4k4vhv.js";
29
- import"./studio-ahjfdy6e.js";
30
- import"./studio-kjjsjak4.js";
31
- import"./studio-hbtp0eh1.js";
32
- import"./studio-t7qb9db8.js";
33
- import"./studio-9n4mrmnb.js";
34
- import"./studio-2zkz8evn.js";
29
+ import"./studio-4n2b5gzb.js";
30
+ import"./studio-ef49pnzx.js";
31
+ import"./studio-2b946z26.js";
32
+ import"./studio-msd847zn.js";
33
+ import"./studio-trxrabqf.js";
35
34
  import"./studio-wcy8trfx.js";
36
- import"./studio-92ab2jqe.js";
37
- import"./studio-xrapxwwc.js";
38
35
  import"./studio-m3hwn7y1.js";
39
- import"./studio-4rzyrtjz.js";
40
- import"./studio-kryvsw6j.js";
41
36
  import"./studio-g1wdche0.js";
42
37
  import"./studio-5ehhackm.js";
43
38
  import"./studio-bgxt93ga.js";
44
39
  import"./studio-p4ngc046.js";
40
+ import"./studio-t7qb9db8.js";
41
+ import"./studio-9n4mrmnb.js";
42
+ import"./studio-92ab2jqe.js";
43
+ import"./studio-xrapxwwc.js";
44
+ import"./studio-4rzyrtjz.js";
45
+ import"./studio-kryvsw6j.js";
45
46
  import"./studio-q7v10cg2.js";
46
- import"./studio-eenfkt4e.js";
47
+ import"./studio-ahn3pdgx.js";
47
48
  import"./studio-9ab8gqsm.js";
48
49
  import"./studio-53n8bp04.js";
49
50
  import"./studio-a0tswy0w.js";
@@ -61,5 +62,5 @@ export {
61
62
  resolvePaletteMode
62
63
  };
63
64
 
64
- //# debugId=D9EDB3CAE0CB06B864756E2164756E21
65
- //# sourceMappingURL=quick-search-cgfmjwq5.js.map
65
+ //# debugId=FBD29DEBE4AAD2EC64756E2164756E21
66
+ //# sourceMappingURL=quick-search-zccjp6gv.js.map
@@ -4,32 +4,32 @@ import {
4
4
  render,
5
5
  setInspectorTab,
6
6
  unmount
7
- } from "./studio-1hbqnt19.js";
8
- import"./studio-8swrjbny.js";
9
- import"./studio-pdfjntbk.js";
7
+ } from "./studio-zqazsct2.js";
8
+ import"./studio-fbf92ckf.js";
9
+ import"./studio-950k0dx6.js";
10
10
  import"./studio-7nte2hj4.js";
11
- import"./studio-gv8vvshc.js";
11
+ import"./studio-1wagb550.js";
12
12
  import"./studio-8jpzqk5s.js";
13
- import"./studio-5q69gfag.js";
14
- import"./studio-htsf0w6m.js";
13
+ import"./studio-x4qkdat5.js";
14
+ import"./studio-qjy2z9bv.js";
15
15
  import"./studio-cft9r4r7.js";
16
- import"./studio-kjjsjak4.js";
17
- import"./studio-hbtp0eh1.js";
18
- import"./studio-t7qb9db8.js";
19
- import"./studio-9n4mrmnb.js";
20
- import"./studio-2zkz8evn.js";
16
+ import"./studio-2b946z26.js";
17
+ import"./studio-msd847zn.js";
18
+ import"./studio-trxrabqf.js";
21
19
  import"./studio-wcy8trfx.js";
22
- import"./studio-92ab2jqe.js";
23
- import"./studio-xrapxwwc.js";
24
20
  import"./studio-m3hwn7y1.js";
25
- import"./studio-4rzyrtjz.js";
26
- import"./studio-kryvsw6j.js";
27
21
  import"./studio-g1wdche0.js";
28
22
  import"./studio-5ehhackm.js";
29
23
  import"./studio-bgxt93ga.js";
30
24
  import"./studio-p4ngc046.js";
25
+ import"./studio-t7qb9db8.js";
26
+ import"./studio-9n4mrmnb.js";
27
+ import"./studio-92ab2jqe.js";
28
+ import"./studio-xrapxwwc.js";
29
+ import"./studio-4rzyrtjz.js";
30
+ import"./studio-kryvsw6j.js";
31
31
  import"./studio-q7v10cg2.js";
32
- import"./studio-eenfkt4e.js";
32
+ import"./studio-ahn3pdgx.js";
33
33
  import"./studio-9ab8gqsm.js";
34
34
  import"./studio-t5wqwzdh.js";
35
35
  import"./studio-53n8bp04.js";
@@ -43,4 +43,4 @@ export {
43
43
  };
44
44
 
45
45
  //# debugId=24F4EB4D5FA872B164756E2164756E21
46
- //# sourceMappingURL=right-panel-cqp8bc4v.js.map
46
+ //# sourceMappingURL=right-panel-vm3b6kwy.js.map
@@ -1,9 +1,9 @@
1
- import"./studio-txwkm6p9.js";
2
- import"./studio-mmv72a27.js";
3
- import"./studio-z6nw2ek2.js";
4
- import"./studio-8q517dfr.js";
1
+ import"./studio-0bq6eh7v.js";
2
+ import"./studio-5fx3g9jg.js";
5
3
  import"./studio-ahnzd9rg.js";
4
+ import"./studio-z6nw2ek2.js";
6
5
  import"./studio-tmc5emrw.js";
6
+ import"./studio-8q517dfr.js";
7
7
  import"./studio-18j3bmcz.js";
8
8
  import"./studio-zczps70q.js";
9
9
  import"./studio-7nte2hj4.js";
@@ -15,4 +15,4 @@ import"./studio-kryvsw6j.js";
15
15
  import"./studio-a0tswy0w.js";
16
16
 
17
17
  //# debugId=18A0F7485A8C139064756E2164756E21
18
- //# sourceMappingURL=sp-overlay.dev-yztmtrs1.js.map
18
+ //# sourceMappingURL=sp-overlay.dev-qgvhnxf4.js.map
@@ -1,6 +1,6 @@
1
- import"./studio-vadzgkrz.js";
2
- import"./studio-8q517dfr.js";
1
+ import"./studio-n6j9t10q.js";
3
2
  import"./studio-tmc5emrw.js";
3
+ import"./studio-8q517dfr.js";
4
4
  import"./studio-18j3bmcz.js";
5
5
  import"./studio-zczps70q.js";
6
6
  import"./studio-7nte2hj4.js";
@@ -12,4 +12,4 @@ import"./studio-kryvsw6j.js";
12
12
  import"./studio-a0tswy0w.js";
13
13
 
14
14
  //# debugId=6CCEFD43C09F3F2A64756E2164756E21
15
- //# sourceMappingURL=sp-tooltip.dev-xcvpnqr0.js.map
15
+ //# sourceMappingURL=sp-tooltip.dev-4sastdnw.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Overlay
3
- } from "./studio-mmv72a27.js";
3
+ } from "./studio-5fx3g9jg.js";
4
4
  import {
5
5
  defineElement
6
6
  } from "./studio-18j3bmcz.js";
@@ -9,4 +9,4 @@ import {
9
9
  defineElement("sp-overlay", Overlay);
10
10
 
11
11
  //# debugId=24A9645EA10C33DD64756E2164756E21
12
- //# sourceMappingURL=studio-txwkm6p9.js.map
12
+ //# sourceMappingURL=studio-0bq6eh7v.js.map
@@ -0,0 +1,181 @@
1
+ import {
2
+ showDialog
3
+ } from "./studio-t7qb9db8.js";
4
+ import {
5
+ errorMessage
6
+ } from "./studio-9n4mrmnb.js";
7
+ import {
8
+ notify
9
+ } from "./studio-xrapxwwc.js";
10
+ import {
11
+ html
12
+ } from "./studio-kryvsw6j.js";
13
+
14
+ // src/github/github-auth.ts
15
+ var CLIENT_ID = "Ov23liYVlMFpgjOEPXJH";
16
+ var STORAGE_KEY = "jx_github_token";
17
+ function nativeAuth() {
18
+ return globalThis.__jxPlatform?.githubAuth ?? null;
19
+ }
20
+ var nativeToken = null;
21
+ var nativeStored = false;
22
+ function githubTokenStored() {
23
+ return nativeToken !== null || nativeStored || localStorage.getItem(STORAGE_KEY) !== null;
24
+ }
25
+ function githubTokenLocation() {
26
+ return nativeAuth() ? "desktop" : "browser";
27
+ }
28
+ var NOTIFY_KEY = "github.auth";
29
+ var SOURCE = "Source Control";
30
+ var RETRY = "git.signInToGithub";
31
+ var MAX_POLL_FAILURES = 3;
32
+ var UNREACHABLE_DETAIL = "The request never reached GitHub. GitHub's device-flow endpoints send no CORS headers, so a " + "browser cannot call them directly — the desktop app can. A machine that is offline fails " + "identically, and the browser does not say which happened.";
33
+ function getGithubToken() {
34
+ return nativeToken ?? localStorage.getItem(STORAGE_KEY);
35
+ }
36
+ function clearGithubToken() {
37
+ nativeToken = null;
38
+ nativeStored = false;
39
+ localStorage.removeItem(STORAGE_KEY);
40
+ nativeAuth()?.signOut().catch(() => {});
41
+ }
42
+ function reportUnreachable(error) {
43
+ notify.error("Could not reach GitHub to sign in.", {
44
+ action: RETRY,
45
+ detail: `${UNREACHABLE_DETAIL}
46
+
47
+ ${errorMessage(error)}`,
48
+ key: NOTIFY_KEY,
49
+ source: SOURCE
50
+ });
51
+ }
52
+ function reportRefused(message, detail) {
53
+ notify.warn(message, { action: RETRY, detail, key: NOTIFY_KEY, source: SOURCE });
54
+ }
55
+ async function requestDeviceCode() {
56
+ let codeRes;
57
+ try {
58
+ codeRes = await fetch("https://github.com/login/device/code", {
59
+ body: JSON.stringify({ client_id: CLIENT_ID, scope: "repo" }),
60
+ headers: {
61
+ Accept: "application/json",
62
+ "Content-Type": "application/json"
63
+ },
64
+ method: "POST"
65
+ });
66
+ } catch (error) {
67
+ reportUnreachable(error);
68
+ return null;
69
+ }
70
+ if (!codeRes.ok) {
71
+ reportRefused("GitHub refused to start the sign-in.", `GitHub answered ${codeRes.status}${codeRes.statusText ? ` ${codeRes.statusText}` : ""}.`);
72
+ return null;
73
+ }
74
+ return await codeRes.json();
75
+ }
76
+ async function authenticateGithub() {
77
+ const existing = getGithubToken();
78
+ if (existing) {
79
+ return existing;
80
+ }
81
+ const native = nativeAuth();
82
+ if (native) {
83
+ try {
84
+ const { token } = await native.signIn();
85
+ nativeToken = token;
86
+ return token;
87
+ } catch (error) {
88
+ reportRefused("GitHub sign-in was not completed.", errorMessage(error));
89
+ return null;
90
+ }
91
+ }
92
+ const codeData = await requestDeviceCode();
93
+ if (!codeData) {
94
+ return null;
95
+ }
96
+ const { device_code, user_code, verification_uri, interval = 5 } = codeData;
97
+ return showDialog((done) => {
98
+ let cancelled = false;
99
+ let pollTimer = null;
100
+ let failures = 0;
101
+ const stop = () => {
102
+ cancelled = true;
103
+ if (pollTimer) {
104
+ clearTimeout(pollTimer);
105
+ }
106
+ done(null);
107
+ };
108
+ const poll = async () => {
109
+ if (cancelled) {
110
+ return;
111
+ }
112
+ try {
113
+ const tokenRes = await fetch("https://github.com/login/oauth/access_token", {
114
+ body: JSON.stringify({
115
+ client_id: CLIENT_ID,
116
+ device_code,
117
+ grant_type: "urn:ietf:params:oauth:grant-type:device_code"
118
+ }),
119
+ headers: {
120
+ Accept: "application/json",
121
+ "Content-Type": "application/json"
122
+ },
123
+ method: "POST"
124
+ });
125
+ const tokenData = await tokenRes.json();
126
+ failures = 0;
127
+ if (tokenData.access_token) {
128
+ localStorage.setItem(STORAGE_KEY, tokenData.access_token);
129
+ done(tokenData.access_token);
130
+ return;
131
+ }
132
+ if (tokenData.error === "authorization_pending") {
133
+ pollTimer = setTimeout(poll, interval * 1000);
134
+ return;
135
+ }
136
+ if (tokenData.error === "slow_down") {
137
+ pollTimer = setTimeout(poll, (interval + 5) * 1000);
138
+ return;
139
+ }
140
+ reportRefused("GitHub sign-in was not completed.", tokenData.error === "access_denied" ? "The authorization was declined on GitHub." : tokenData.error === "expired_token" ? "The device code expired before it was entered." : `GitHub answered "${tokenData.error ?? "an unrecognised response"}".`);
141
+ cancelled = true;
142
+ done(null);
143
+ } catch (error) {
144
+ failures += 1;
145
+ if (failures >= MAX_POLL_FAILURES) {
146
+ reportUnreachable(error);
147
+ cancelled = true;
148
+ done(null);
149
+ return;
150
+ }
151
+ pollTimer = setTimeout(poll, interval * 1000);
152
+ }
153
+ };
154
+ pollTimer = setTimeout(poll, interval * 1000);
155
+ return html`
156
+ <sp-dialog-wrapper
157
+ open
158
+ headline="Sign in to GitHub"
159
+ cancel-label="Cancel"
160
+ @cancel=${stop}
161
+ @close=${stop}
162
+ >
163
+ <div class="github-auth-dialog">
164
+ <p>Enter this code on GitHub to authorize Jx Studio:</p>
165
+ <div class="github-auth-code">${user_code}</div>
166
+ <p>
167
+ <a href="${verification_uri}" target="_blank" rel="noopener"
168
+ >Open ${verification_uri}</a
169
+ >
170
+ </p>
171
+ <p class="github-auth-waiting">Waiting for authorization…</p>
172
+ </div>
173
+ </sp-dialog-wrapper>
174
+ `;
175
+ });
176
+ }
177
+
178
+ export { githubTokenStored, githubTokenLocation, clearGithubToken, authenticateGithub };
179
+
180
+ //# debugId=0BF996D0D429B90564756E2164756E21
181
+ //# sourceMappingURL=studio-1ngbejft.js.map
@@ -3,10 +3,10 @@ import {
3
3
  dirName,
4
4
  extensionOf,
5
5
  mediaKind
6
- } from "./studio-htsf0w6m.js";
6
+ } from "./studio-qjy2z9bv.js";
7
7
  import {
8
8
  normalizeProjectPath
9
- } from "./studio-kjjsjak4.js";
9
+ } from "./studio-2b946z26.js";
10
10
  import {
11
11
  getPlatform
12
12
  } from "./studio-9ab8gqsm.js";
@@ -115,4 +115,4 @@ function mediaMetaSummary(meta) {
115
115
  export { peekMediaMeta, seedMediaMeta, loadMediaMeta, recordImageSize, invalidateMediaMeta, formatBytes, mediaMetaSummary };
116
116
 
117
117
  //# debugId=18B99161AAFC90A064756E2164756E21
118
- //# sourceMappingURL=studio-gv8vvshc.js.map
118
+ //# sourceMappingURL=studio-1wagb550.js.map