@dxos/cli 0.8.4-main.67995b8 → 0.8.4-main.c4373fc

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 (165) hide show
  1. package/dist/src/commands/agent/agent.node.test.js +6 -6
  2. package/dist/src/commands/agent/agent.node.test.js.map +1 -1
  3. package/dist/src/commands/agent/invitations.js +12 -13
  4. package/dist/src/commands/agent/invitations.js.map +1 -1
  5. package/dist/src/commands/agent/list.js +16 -17
  6. package/dist/src/commands/agent/list.js.map +1 -1
  7. package/dist/src/commands/agent/restart.js +11 -12
  8. package/dist/src/commands/agent/restart.js.map +1 -1
  9. package/dist/src/commands/agent/start.d.ts.map +1 -1
  10. package/dist/src/commands/agent/start.js +48 -53
  11. package/dist/src/commands/agent/start.js.map +1 -1
  12. package/dist/src/commands/agent/status.js +6 -7
  13. package/dist/src/commands/agent/status.js.map +1 -1
  14. package/dist/src/commands/agent/stop.js +12 -13
  15. package/dist/src/commands/agent/stop.js.map +1 -1
  16. package/dist/src/commands/config/index.js +5 -7
  17. package/dist/src/commands/config/index.js.map +1 -1
  18. package/dist/src/commands/config/index.node.test.js +1 -1
  19. package/dist/src/commands/config/index.node.test.js.map +1 -1
  20. package/dist/src/commands/debug/diagnostics.js +22 -23
  21. package/dist/src/commands/debug/diagnostics.js.map +1 -1
  22. package/dist/src/commands/debug/error.js +2 -3
  23. package/dist/src/commands/debug/error.js.map +1 -1
  24. package/dist/src/commands/debug/generate.js +29 -31
  25. package/dist/src/commands/debug/generate.js.map +1 -1
  26. package/dist/src/commands/debug/metrics.js +11 -13
  27. package/dist/src/commands/debug/metrics.js.map +1 -1
  28. package/dist/src/commands/debug/status.d.ts.map +1 -1
  29. package/dist/src/commands/debug/status.js +15 -14
  30. package/dist/src/commands/debug/status.js.map +1 -1
  31. package/dist/src/commands/device/info.js +5 -7
  32. package/dist/src/commands/device/info.js.map +1 -1
  33. package/dist/src/commands/device/list.js +8 -9
  34. package/dist/src/commands/device/list.js.map +1 -1
  35. package/dist/src/commands/device/update.js +8 -10
  36. package/dist/src/commands/device/update.js.map +1 -1
  37. package/dist/src/commands/{function/upload.d.ts → edge/status.d.ts} +2 -17
  38. package/dist/src/commands/edge/status.d.ts.map +1 -0
  39. package/dist/src/commands/edge/status.js +24 -0
  40. package/dist/src/commands/edge/status.js.map +1 -0
  41. package/dist/src/commands/function/list.js +3 -4
  42. package/dist/src/commands/function/list.js.map +1 -1
  43. package/dist/src/commands/function/logs.js +9 -11
  44. package/dist/src/commands/function/logs.js.map +1 -1
  45. package/dist/src/commands/function/trigger/list.d.ts.map +1 -1
  46. package/dist/src/commands/function/trigger/list.js +10 -11
  47. package/dist/src/commands/function/trigger/list.js.map +1 -1
  48. package/dist/src/commands/function/watch.d.ts.map +1 -1
  49. package/dist/src/commands/function/watch.js +20 -22
  50. package/dist/src/commands/function/watch.js.map +1 -1
  51. package/dist/src/commands/halo/create.js +12 -13
  52. package/dist/src/commands/halo/create.js.map +1 -1
  53. package/dist/src/commands/halo/credential/add.js +5 -6
  54. package/dist/src/commands/halo/credential/add.js.map +1 -1
  55. package/dist/src/commands/halo/credential/list.js +23 -24
  56. package/dist/src/commands/halo/credential/list.js.map +1 -1
  57. package/dist/src/commands/halo/identity.js +5 -6
  58. package/dist/src/commands/halo/identity.js.map +1 -1
  59. package/dist/src/commands/halo/join.js +22 -24
  60. package/dist/src/commands/halo/join.js.map +1 -1
  61. package/dist/src/commands/halo/keys.js +3 -4
  62. package/dist/src/commands/halo/keys.js.map +1 -1
  63. package/dist/src/commands/halo/recovery/generate.js +3 -4
  64. package/dist/src/commands/halo/recovery/generate.js.map +1 -1
  65. package/dist/src/commands/halo/recovery/use.js +7 -8
  66. package/dist/src/commands/halo/recovery/use.js.map +1 -1
  67. package/dist/src/commands/halo/share.d.ts.map +1 -1
  68. package/dist/src/commands/halo/share.js +27 -28
  69. package/dist/src/commands/halo/share.js.map +1 -1
  70. package/dist/src/commands/halo/update.js +9 -11
  71. package/dist/src/commands/halo/update.js.map +1 -1
  72. package/dist/src/commands/info.js +6 -7
  73. package/dist/src/commands/info.js.map +1 -1
  74. package/dist/src/commands/profile/import.d.ts.map +1 -1
  75. package/dist/src/commands/profile/import.js +15 -16
  76. package/dist/src/commands/profile/import.js.map +1 -1
  77. package/dist/src/commands/profile/inspect.d.ts.map +1 -1
  78. package/dist/src/commands/profile/inspect.js +14 -15
  79. package/dist/src/commands/profile/inspect.js.map +1 -1
  80. package/dist/src/commands/reset/index.d.ts.map +1 -1
  81. package/dist/src/commands/reset/index.js +15 -17
  82. package/dist/src/commands/reset/index.js.map +1 -1
  83. package/dist/src/commands/shell/index.js +2 -3
  84. package/dist/src/commands/shell/index.js.map +1 -1
  85. package/dist/src/commands/space/close.js +3 -4
  86. package/dist/src/commands/space/close.js.map +1 -1
  87. package/dist/src/commands/space/create.js +5 -6
  88. package/dist/src/commands/space/create.js.map +1 -1
  89. package/dist/src/commands/space/epoch.js +4 -5
  90. package/dist/src/commands/space/epoch.js.map +1 -1
  91. package/dist/src/commands/space/info.js +4 -5
  92. package/dist/src/commands/space/info.js.map +1 -1
  93. package/dist/src/commands/space/join.js +14 -16
  94. package/dist/src/commands/space/join.js.map +1 -1
  95. package/dist/src/commands/space/list.js +20 -21
  96. package/dist/src/commands/space/list.js.map +1 -1
  97. package/dist/src/commands/space/members.js +9 -10
  98. package/dist/src/commands/space/members.js.map +1 -1
  99. package/dist/src/commands/space/open.js +3 -4
  100. package/dist/src/commands/space/open.js.map +1 -1
  101. package/dist/src/commands/space/query.js +13 -15
  102. package/dist/src/commands/space/query.js.map +1 -1
  103. package/dist/src/commands/space/schema/list.js +13 -16
  104. package/dist/src/commands/space/schema/list.js.map +1 -1
  105. package/dist/src/commands/space/share.d.ts.map +1 -1
  106. package/dist/src/commands/space/share.js +31 -32
  107. package/dist/src/commands/space/share.js.map +1 -1
  108. package/dist/src/commands/tunnel/index.js +19 -22
  109. package/dist/src/commands/tunnel/index.js.map +1 -1
  110. package/dist/src/commands/tunnel/list.js +10 -13
  111. package/dist/src/commands/tunnel/list.js.map +1 -1
  112. package/dist/src/components/SpaceTable.d.ts.map +1 -1
  113. package/dist/src/components/SpaceTable.js.map +1 -1
  114. package/dist/src/components/SystemTable.d.ts.map +1 -1
  115. package/dist/src/components/SystemTable.js +2 -2
  116. package/dist/src/components/SystemTable.js.map +1 -1
  117. package/dist/src/help.js +1 -1
  118. package/dist/src/help.js.map +1 -1
  119. package/dist/src/util/function/index.d.ts +0 -1
  120. package/dist/src/util/function/index.d.ts.map +1 -1
  121. package/dist/src/util/function/index.js +0 -1
  122. package/dist/src/util/function/index.js.map +1 -1
  123. package/dist/src/util/function/lookup.d.ts +7 -6
  124. package/dist/src/util/function/lookup.d.ts.map +1 -1
  125. package/dist/src/util/function/lookup.js +2 -3
  126. package/dist/src/util/function/lookup.js.map +1 -1
  127. package/dist/src/util/provider/digital-ocean.js +3 -3
  128. package/dist/src/util/provider/digital-ocean.js.map +1 -1
  129. package/dist/src/util/provider/provider.d.ts.map +1 -1
  130. package/dist/src/util/provider/provider.js.map +1 -1
  131. package/dist/src/util/publish/build.d.ts +1 -1
  132. package/dist/src/util/publish/build.d.ts.map +1 -1
  133. package/dist/src/util/publish/build.js +2 -3
  134. package/dist/src/util/publish/build.js.map +1 -1
  135. package/dist/src/util/publish/common.d.ts.map +1 -1
  136. package/dist/src/util/publish/common.js.map +1 -1
  137. package/dist/src/util/publish/config.d.ts.map +1 -1
  138. package/dist/src/util/publish/config.js +2 -3
  139. package/dist/src/util/publish/config.js.map +1 -1
  140. package/dist/src/util/publish/ipfs-upload.d.ts.map +1 -1
  141. package/dist/src/util/publish/ipfs-upload.js.map +1 -1
  142. package/dist/src/util/publish/publish.d.ts.map +1 -1
  143. package/dist/src/util/publish/publish.js +4 -5
  144. package/dist/src/util/publish/publish.js.map +1 -1
  145. package/dist/src/util/publish/publisher-rpc-peer.d.ts.map +1 -1
  146. package/dist/src/util/publish/publisher-rpc-peer.js +10 -8
  147. package/dist/src/util/publish/publisher-rpc-peer.js.map +1 -1
  148. package/dist/src/util/supervisor/supervisor-rpc-peer.d.ts.map +1 -1
  149. package/dist/src/util/supervisor/supervisor-rpc-peer.js +10 -8
  150. package/dist/src/util/supervisor/supervisor-rpc-peer.js.map +1 -1
  151. package/dist/src/util/tunnel/common.d.ts.map +1 -1
  152. package/dist/src/util/tunnel/common.js.map +1 -1
  153. package/dist/src/util/tunnel/tunnel-rpc-peer.d.ts.map +1 -1
  154. package/dist/src/util/tunnel/tunnel-rpc-peer.js +10 -8
  155. package/dist/src/util/tunnel/tunnel-rpc-peer.js.map +1 -1
  156. package/dist/tsconfig.tsbuildinfo +1 -1
  157. package/oclif.manifest.json +20 -65
  158. package/package.json +32 -32
  159. package/dist/src/commands/function/upload.d.ts.map +0 -1
  160. package/dist/src/commands/function/upload.js +0 -153
  161. package/dist/src/commands/function/upload.js.map +0 -1
  162. package/dist/src/util/function/bundle.d.ts +0 -5
  163. package/dist/src/util/function/bundle.d.ts.map +0 -1
  164. package/dist/src/util/function/bundle.js +0 -13
  165. package/dist/src/util/function/bundle.js.map +0 -1
@@ -1884,10 +1884,10 @@
1884
1884
  "update.js"
1885
1885
  ]
1886
1886
  },
1887
- "function:list": {
1887
+ "edge:status": {
1888
1888
  "aliases": [],
1889
1889
  "args": {},
1890
- "description": "List functions.",
1890
+ "description": "Show agent status",
1891
1891
  "flags": {
1892
1892
  "json": {
1893
1893
  "description": "Output as JSON.",
@@ -1975,7 +1975,7 @@
1975
1975
  },
1976
1976
  "hasDynamicHelp": false,
1977
1977
  "hiddenAliases": [],
1978
- "id": "function:list",
1978
+ "id": "edge:status",
1979
1979
  "pluginAlias": "@dxos/cli",
1980
1980
  "pluginName": "@dxos/cli",
1981
1981
  "pluginType": "core",
@@ -1986,20 +1986,14 @@
1986
1986
  "dist",
1987
1987
  "src",
1988
1988
  "commands",
1989
- "function",
1990
- "list.js"
1989
+ "edge",
1990
+ "status.js"
1991
1991
  ]
1992
1992
  },
1993
- "function:logs": {
1993
+ "function:list": {
1994
1994
  "aliases": [],
1995
- "args": {
1996
- "name": {
1997
- "description": "Function name.",
1998
- "name": "name",
1999
- "required": true
2000
- }
2001
- },
2002
- "description": "Get function logs.",
1995
+ "args": {},
1996
+ "description": "List functions.",
2003
1997
  "flags": {
2004
1998
  "json": {
2005
1999
  "description": "Output as JSON.",
@@ -2087,11 +2081,10 @@
2087
2081
  },
2088
2082
  "hasDynamicHelp": false,
2089
2083
  "hiddenAliases": [],
2090
- "id": "function:logs",
2084
+ "id": "function:list",
2091
2085
  "pluginAlias": "@dxos/cli",
2092
2086
  "pluginName": "@dxos/cli",
2093
2087
  "pluginType": "core",
2094
- "state": "deprecated",
2095
2088
  "strict": true,
2096
2089
  "enableJsonFlag": true,
2097
2090
  "isESM": true,
@@ -2100,18 +2093,19 @@
2100
2093
  "src",
2101
2094
  "commands",
2102
2095
  "function",
2103
- "logs.js"
2096
+ "list.js"
2104
2097
  ]
2105
2098
  },
2106
- "function:upload": {
2099
+ "function:logs": {
2107
2100
  "aliases": [],
2108
2101
  "args": {
2109
- "file": {
2110
- "name": "file",
2102
+ "name": {
2103
+ "description": "Function name.",
2104
+ "name": "name",
2111
2105
  "required": true
2112
2106
  }
2113
2107
  },
2114
- "description": "Upload user function.",
2108
+ "description": "Get function logs.",
2115
2109
  "flags": {
2116
2110
  "json": {
2117
2111
  "description": "Output as JSON.",
@@ -2195,54 +2189,15 @@
2195
2189
  "hasDynamicHelp": false,
2196
2190
  "multiple": false,
2197
2191
  "type": "option"
2198
- },
2199
- "name": {
2200
- "description": "Function name.",
2201
- "name": "name",
2202
- "hasDynamicHelp": false,
2203
- "multiple": false,
2204
- "type": "option"
2205
- },
2206
- "version": {
2207
- "description": "Function version.",
2208
- "name": "version",
2209
- "hasDynamicHelp": false,
2210
- "multiple": false,
2211
- "type": "option"
2212
- },
2213
- "composerScript": {
2214
- "description": "Loads the script into composer.",
2215
- "name": "composerScript",
2216
- "allowNo": false,
2217
- "type": "boolean"
2218
- },
2219
- "functionId": {
2220
- "description": "Existing UserFunction ID to update.",
2221
- "name": "functionId",
2222
- "hasDynamicHelp": false,
2223
- "multiple": false,
2224
- "type": "option"
2225
- },
2226
- "spaceKey": {
2227
- "description": "Space key to create/update Script source in.",
2228
- "name": "spaceKey",
2229
- "hasDynamicHelp": false,
2230
- "multiple": false,
2231
- "type": "option"
2232
- },
2233
- "noSpace": {
2234
- "description": "Only uploads a function, without creating a FunctionObject in ECHO.",
2235
- "name": "noSpace",
2236
- "allowNo": false,
2237
- "type": "boolean"
2238
2192
  }
2239
2193
  },
2240
2194
  "hasDynamicHelp": false,
2241
2195
  "hiddenAliases": [],
2242
- "id": "function:upload",
2196
+ "id": "function:logs",
2243
2197
  "pluginAlias": "@dxos/cli",
2244
2198
  "pluginName": "@dxos/cli",
2245
2199
  "pluginType": "core",
2200
+ "state": "deprecated",
2246
2201
  "strict": true,
2247
2202
  "enableJsonFlag": true,
2248
2203
  "isESM": true,
@@ -2251,7 +2206,7 @@
2251
2206
  "src",
2252
2207
  "commands",
2253
2208
  "function",
2254
- "upload.js"
2209
+ "logs.js"
2255
2210
  ]
2256
2211
  },
2257
2212
  "function:watch": {
@@ -4852,7 +4807,7 @@
4852
4807
  "name": {
4853
4808
  "description": "Tunnel name",
4854
4809
  "name": "name",
4855
- "default": "steak-failed-alpha-sad",
4810
+ "default": "stairway-india-bakerloo-fruit",
4856
4811
  "hasDynamicHelp": false,
4857
4812
  "multiple": false,
4858
4813
  "type": "option"
@@ -5714,5 +5669,5 @@
5714
5669
  ]
5715
5670
  }
5716
5671
  },
5717
- "version": "0.8.4-main.67995b8"
5672
+ "version": "0.8.4-main.c4373fc"
5718
5673
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/cli",
3
- "version": "0.8.4-main.67995b8",
3
+ "version": "0.8.4-main.c4373fc",
4
4
  "description": "DXOS CLI",
5
5
  "keywords": [
6
6
  "dxos",
@@ -29,7 +29,7 @@
29
29
  "@oclif/plugin-autocomplete": "^3.2.6",
30
30
  "@oclif/plugin-help": "^6.2.16",
31
31
  "@oclif/plugin-plugins": "^5.4.15",
32
- "@oclif/plugin-update": "^4.6.6",
32
+ "@oclif/plugin-update": "^4.7.8",
33
33
  "@octokit/core": "^4.0.4",
34
34
  "chalk": "^4.1.0",
35
35
  "cli-progress": "^3.11.2",
@@ -39,8 +39,8 @@
39
39
  "fs-extra": "^8.1.0",
40
40
  "get-folder-size": "^2.0.1",
41
41
  "git-rev-sync": "^3.0.2",
42
- "ink": "^3.2.0",
43
- "ink-table": "~3.0.0",
42
+ "ink": "^6.3.1",
43
+ "ink-table": "^3.1.0",
44
44
  "inquirer": "^12.0.0",
45
45
  "isomorphic-ws": "^5.0.0",
46
46
  "js-yaml": "^4.1.0",
@@ -50,34 +50,33 @@
50
50
  "node-fetch": "^2.6.0",
51
51
  "pkg-up": "^3.1.0",
52
52
  "platform": "^1.3.6",
53
- "react": "~18.2.0",
53
+ "react": "~19.2.0",
54
54
  "ws": "^8.14.2",
55
- "wtfnode": "^0.9.1",
56
- "@dxos/agent": "0.8.4-main.67995b8",
57
- "@dxos/async": "0.8.4-main.67995b8",
58
- "@dxos/cli-base": "0.8.4-main.67995b8",
59
- "@dxos/cli-composer": "0.8.4-main.67995b8",
60
- "@dxos/client": "0.8.4-main.67995b8",
61
- "@dxos/client-protocol": "0.8.4-main.67995b8",
62
- "@dxos/client-services": "0.8.4-main.67995b8",
63
- "@dxos/config": "0.8.4-main.67995b8",
64
- "@dxos/compute": "0.8.4-main.67995b8",
65
- "@dxos/context": "0.8.4-main.67995b8",
66
- "@dxos/echo": "0.8.4-main.67995b8",
67
- "@dxos/debug": "0.8.4-main.67995b8",
68
- "@dxos/echo-schema": "0.8.4-main.67995b8",
69
- "@dxos/functions": "0.8.4-main.67995b8",
70
- "@dxos/invariant": "0.8.4-main.67995b8",
71
- "@dxos/log": "0.8.4-main.67995b8",
72
- "@dxos/network-manager": "0.8.4-main.67995b8",
73
- "@dxos/node-std": "0.8.4-main.67995b8",
74
- "@dxos/observability": "0.8.4-main.67995b8",
75
- "@dxos/random": "0.8.4-main.67995b8",
76
- "@dxos/process": "0.8.4-main.67995b8",
77
- "@dxos/rpc": "0.8.4-main.67995b8",
78
- "@dxos/schema": "0.8.4-main.67995b8",
79
- "@dxos/util": "0.8.4-main.67995b8",
80
- "@dxos/protocols": "0.8.4-main.67995b8"
55
+ "wtfnode": "^0.10.0",
56
+ "@dxos/agent": "0.8.4-main.c4373fc",
57
+ "@dxos/async": "0.8.4-main.c4373fc",
58
+ "@dxos/cli-base": "0.8.4-main.c4373fc",
59
+ "@dxos/cli-composer": "0.8.4-main.c4373fc",
60
+ "@dxos/client-protocol": "0.8.4-main.c4373fc",
61
+ "@dxos/client": "0.8.4-main.c4373fc",
62
+ "@dxos/client-services": "0.8.4-main.c4373fc",
63
+ "@dxos/compute": "0.8.4-main.c4373fc",
64
+ "@dxos/config": "0.8.4-main.c4373fc",
65
+ "@dxos/context": "0.8.4-main.c4373fc",
66
+ "@dxos/debug": "0.8.4-main.c4373fc",
67
+ "@dxos/echo": "0.8.4-main.c4373fc",
68
+ "@dxos/invariant": "0.8.4-main.c4373fc",
69
+ "@dxos/network-manager": "0.8.4-main.c4373fc",
70
+ "@dxos/functions": "0.8.4-main.c4373fc",
71
+ "@dxos/log": "0.8.4-main.c4373fc",
72
+ "@dxos/node-std": "0.8.4-main.c4373fc",
73
+ "@dxos/protocols": "0.8.4-main.c4373fc",
74
+ "@dxos/random": "0.8.4-main.c4373fc",
75
+ "@dxos/rpc": "0.8.4-main.c4373fc",
76
+ "@dxos/observability": "0.8.4-main.c4373fc",
77
+ "@dxos/schema": "0.8.4-main.c4373fc",
78
+ "@dxos/process": "0.8.4-main.c4373fc",
79
+ "@dxos/util": "0.8.4-main.c4373fc"
81
80
  },
82
81
  "devDependencies": {
83
82
  "@oclif/test": "^4.1.0",
@@ -87,9 +86,10 @@
87
86
  "@types/lodash.defaultsdeep": "^4.6.6",
88
87
  "@types/node-fetch": "^2.5.10",
89
88
  "@types/platform": "^1.3.4",
90
- "@types/react-dom": "~18.2.0",
89
+ "@types/react-dom": "~19.2.1",
91
90
  "oclif": "^4.15.12",
92
91
  "shx": "^0.3.3",
92
+ "ts-node": "10.9.1",
93
93
  "undici": "*"
94
94
  },
95
95
  "peerDependencies": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../../src/commands/function/upload.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAKzC,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW,CAAC,OAAO,MAAM,CAAC;IAC5D,OAAgB,cAAc,UAAQ;IACtC,OAAgB,WAAW,SAA2B;IAEtD,OAAgB,KAAK;;;;;;;;;;;;;;;;;MAQnB;IAEF,OAAgB,IAAI;;MAElB;IAEI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;YAoCX,WAAW;YAgBX,mBAAmB;YAcnB,OAAO;IA0BrB,OAAO,CAAC,qBAAqB;YAgBf,qBAAqB;YA6BrB,eAAe;CAW9B"}
@@ -1,153 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
- import { Args, Flags } from '@oclif/core';
5
- import fs from 'node:fs';
6
- import { basename } from 'node:path';
7
- import path from 'path';
8
- import { asyncTimeout } from '@dxos/async';
9
- import { Obj, Ref } from '@dxos/echo';
10
- import { FunctionType, ScriptType, makeFunctionUrl, setUserFunctionUrlInMetadata } from '@dxos/functions';
11
- import { incrementSemverPatch, uploadWorkerFunction } from '@dxos/functions/edge';
12
- import { invariant } from '@dxos/invariant';
13
- import { DataType } from '@dxos/schema';
14
- import { BaseCommand } from '../../base';
15
- import { bundleScript, findFunctionByDeploymentId } from '../../util';
16
- // TODO: move to cli-composer
17
- class Upload extends BaseCommand {
18
- async run() {
19
- const { scriptFileContent, bundledScript } = await this._loadScript();
20
- if (this.flags.noSpace) {
21
- return this.execWithClient(async ({ client }) => {
22
- const identity = client.halo.identity.get();
23
- invariant(identity, 'Identity not available');
24
- const uploadResult = await this._upload(client, identity.identityKey, undefined, bundledScript);
25
- this.log(`Upload complete: ${uploadResult.functionId}, version ${uploadResult.version}`);
26
- });
27
- }
28
- return this.execWithSpace(async ({ client, space }) => {
29
- client.addTypes([FunctionType]);
30
- const identity = client.halo.identity.get();
31
- invariant(identity, 'Identity not available');
32
- const existingFunctionObject = await this._loadFunctionObject(space);
33
- const uploadResult = await this._upload(client, identity.identityKey, existingFunctionObject, bundledScript);
34
- const functionObject = this._updateFunctionObject(space, existingFunctionObject, uploadResult);
35
- if (this.flags.composerScript) {
36
- await this._updateComposerScript(client, space, functionObject, basename(this.args.file), scriptFileContent);
37
- }
38
- return uploadResult;
39
- }, { spaceKeys: this.flags.spaceKey ? [this.flags.spaceKey] : undefined });
40
- }
41
- async _loadScript() {
42
- var _a, _b;
43
- let scriptFileContent;
44
- try {
45
- scriptFileContent = fs.readFileSync(this.args.file, 'utf8');
46
- }
47
- catch (err) {
48
- this.error(`Error reading file ${this.args.file}: ${err.message}`);
49
- }
50
- const bundleResult = await bundleScript(scriptFileContent);
51
- if (bundleResult.error || !bundleResult.bundle) {
52
- this.error(`Error bundling script ${this.args.file}: ${(_b = (_a = bundleResult.error) === null || _a === void 0 ? void 0 : _a.message) !== null && _b !== void 0 ? _b : 'empty output'}`);
53
- }
54
- return { scriptFileContent, bundledScript: bundleResult.bundle };
55
- }
56
- async _loadFunctionObject(space) {
57
- const matchingFunction = await findFunctionByDeploymentId(space, this.flags.functionId);
58
- if (this.flags.functionId && !matchingFunction) {
59
- this.warn(`Function ECHO object not found for ${this.flags.functionId}`);
60
- }
61
- if (this.flags.verbose && matchingFunction) {
62
- this.log(`Function ECHO object found, ID: ${matchingFunction.id}`);
63
- }
64
- return matchingFunction;
65
- }
66
- async _upload(client, ownerPublicKey, functionObject, bundledSource) {
67
- try {
68
- const result = await asyncTimeout(uploadWorkerFunction({
69
- client,
70
- ownerPublicKey,
71
- version: await this._getNextVersion(functionObject),
72
- functionId: this.flags.functionId,
73
- name: this.flags.name,
74
- source: bundledSource,
75
- }), 10000);
76
- invariant(result.functionId, 'Upload failed.');
77
- this.log(`Uploaded function ${result.functionId}, version ${result.version}`);
78
- return result;
79
- }
80
- catch (err) {
81
- this.error(err.message);
82
- }
83
- }
84
- _updateFunctionObject(space, existingObject, uploadResult) {
85
- var _a;
86
- let functionObject = existingObject;
87
- if (!functionObject) {
88
- const name = path.basename(this.args.file, path.extname(this.args.file));
89
- functionObject = space.db.add(Obj.make(FunctionType, { name, version: uploadResult.version }));
90
- }
91
- functionObject.name = (_a = this.flags.name) !== null && _a !== void 0 ? _a : functionObject.name;
92
- functionObject.version = uploadResult.version;
93
- setUserFunctionUrlInMetadata(Obj.getMeta(functionObject), makeFunctionUrl(uploadResult));
94
- return functionObject;
95
- }
96
- async _updateComposerScript(client, space, functionObject, scriptFileName, scriptFileContent) {
97
- var _a;
98
- client.addTypes([ScriptType, DataType.Text]);
99
- if (functionObject.source) {
100
- const script = await functionObject.source.load();
101
- const source = await script.source.load();
102
- source.content = scriptFileContent;
103
- if (this.flags.verbose) {
104
- this.log(`Updated source of ${script.id}`);
105
- }
106
- }
107
- else {
108
- const sourceObj = space.db.add(DataType.makeText(scriptFileContent));
109
- const obj = space.db.add(Obj.make(ScriptType, { name: (_a = this.flags.name) !== null && _a !== void 0 ? _a : scriptFileName, source: Ref.make(sourceObj) }));
110
- functionObject.source = Ref.make(obj);
111
- await makeObjectNavigableInComposer(client, space, obj);
112
- if (this.flags.verbose) {
113
- this.log(`Created object, ID: ${obj.id}`);
114
- }
115
- }
116
- }
117
- async _getNextVersion(functionObject) {
118
- var _a;
119
- if (this.flags.version) {
120
- return this.flags.version;
121
- }
122
- if (functionObject) {
123
- return incrementSemverPatch((_a = functionObject === null || functionObject === void 0 ? void 0 : functionObject.version) !== null && _a !== void 0 ? _a : '0.0.0');
124
- }
125
- return '0.0.1';
126
- }
127
- }
128
- Upload.enableJsonFlag = true;
129
- Upload.description = 'Upload user function.';
130
- Upload.flags = {
131
- ...BaseCommand.flags,
132
- name: Flags.string({ description: 'Function name.' }),
133
- version: Flags.string({ description: 'Function version.' }),
134
- composerScript: Flags.boolean({ description: 'Loads the script into composer.' }),
135
- functionId: Flags.string({ description: 'Existing UserFunction ID to update.' }),
136
- spaceKey: Flags.string({ description: 'Space key to create/update Script source in.' }),
137
- noSpace: Flags.boolean({ description: 'Only uploads a function, without creating a FunctionObject in ECHO.' }),
138
- };
139
- Upload.args = {
140
- file: Args.string({ required: true }),
141
- };
142
- export default Upload;
143
- const makeObjectNavigableInComposer = async (client, space, obj) => {
144
- const collection = space.properties['dxos.org/type/Collection'];
145
- if (collection) {
146
- client.addTypes([DataType.Collection]);
147
- const composerCollection = await collection.load();
148
- if (composerCollection) {
149
- composerCollection.objects.push(Ref.make(obj));
150
- }
151
- }
152
- };
153
- //# sourceMappingURL=upload.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../../src/commands/function/upload.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export declare const bundleScript: (source: string) => Promise<{
2
- bundle?: string;
3
- error?: Error;
4
- }>;
5
- //# sourceMappingURL=bundle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../../../src/util/function/bundle.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,CAS7F,CAAC"}
@@ -1,13 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
- import { Bundler } from '@dxos/functions/bundler';
5
- export const bundleScript = async (source) => {
6
- const bundler = new Bundler({ platform: 'node', sandboxedModules: [], remoteModules: {} });
7
- const buildResult = await bundler.bundle({ source });
8
- if (buildResult.error || !buildResult.bundle) {
9
- return { error: buildResult.error || new Error('Bundle creation failed') };
10
- }
11
- return { bundle: buildResult.bundle };
12
- };
13
- //# sourceMappingURL=bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../../src/util/function/bundle.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AACF,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,MAAc,EAA+C,EAAE;IAChG,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3F,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAErD,IAAI,WAAW,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAC7C,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,wBAAwB,CAAC,EAAE,CAAC;IAC7E,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;AACxC,CAAC,CAAC"}