@dxos/cli 0.8.1 → 0.8.2-main.2f9c567

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 (50) hide show
  1. package/dist/src/commands/debug/generate.js +2 -2
  2. package/dist/src/commands/debug/generate.js.map +1 -1
  3. package/dist/src/commands/function/list.d.ts +1 -1
  4. package/dist/src/commands/function/list.d.ts.map +1 -1
  5. package/dist/src/commands/function/list.js +2 -3
  6. package/dist/src/commands/function/list.js.map +1 -1
  7. package/dist/src/commands/function/trigger/list.d.ts +1 -1
  8. package/dist/src/commands/function/trigger/list.d.ts.map +1 -1
  9. package/dist/src/commands/function/trigger/list.js +2 -4
  10. package/dist/src/commands/function/trigger/list.js.map +1 -1
  11. package/dist/src/commands/function/upload.d.ts +7 -2
  12. package/dist/src/commands/function/upload.d.ts.map +1 -1
  13. package/dist/src/commands/function/upload.js +105 -98
  14. package/dist/src/commands/function/upload.js.map +1 -1
  15. package/dist/src/commands/function/watch.d.ts +29 -0
  16. package/dist/src/commands/function/watch.d.ts.map +1 -0
  17. package/dist/src/commands/function/watch.js +130 -0
  18. package/dist/src/commands/function/watch.js.map +1 -0
  19. package/dist/src/commands/halo/credential/list.d.ts +1 -0
  20. package/dist/src/commands/halo/credential/list.d.ts.map +1 -1
  21. package/dist/src/commands/halo/credential/list.js +25 -16
  22. package/dist/src/commands/halo/credential/list.js.map +1 -1
  23. package/dist/src/commands/space/list.d.ts +1 -0
  24. package/dist/src/commands/space/list.d.ts.map +1 -1
  25. package/dist/src/commands/space/list.js +7 -3
  26. package/dist/src/commands/space/list.js.map +1 -1
  27. package/dist/src/components/SpaceTable.d.ts.map +1 -1
  28. package/dist/src/components/SpaceTable.js +7 -4
  29. package/dist/src/components/SpaceTable.js.map +1 -1
  30. package/dist/src/help.d.ts.map +1 -1
  31. package/dist/src/help.js +6 -1
  32. package/dist/src/help.js.map +1 -1
  33. package/dist/src/util/function/bundle.d.ts +5 -0
  34. package/dist/src/util/function/bundle.d.ts.map +1 -0
  35. package/dist/src/util/function/bundle.js +13 -0
  36. package/dist/src/util/function/bundle.js.map +1 -0
  37. package/dist/src/util/function/index.d.ts +3 -0
  38. package/dist/src/util/function/index.d.ts.map +1 -0
  39. package/dist/src/util/function/index.js +6 -0
  40. package/dist/src/util/function/index.js.map +1 -0
  41. package/dist/src/util/function/lookup.d.ts +20 -0
  42. package/dist/src/util/function/lookup.d.ts.map +1 -0
  43. package/dist/src/util/function/lookup.js +14 -0
  44. package/dist/src/util/function/lookup.js.map +1 -0
  45. package/dist/src/util/index.d.ts +1 -0
  46. package/dist/src/util/index.d.ts.map +1 -1
  47. package/dist/src/util/index.js +1 -0
  48. package/dist/src/util/index.js.map +1 -1
  49. package/oclif.manifest.json +219 -81
  50. package/package.json +25 -25
@@ -4,7 +4,7 @@
4
4
  import { Flags } from '@oclif/core';
5
5
  import { sleep } from '@dxos/async';
6
6
  import { ARG_SPACE_KEYS } from '@dxos/cli-base';
7
- import { create } from '@dxos/client/echo';
7
+ import { live } from '@dxos/client/echo';
8
8
  import { faker } from '@dxos/random';
9
9
  import { BaseCommand } from '../../base';
10
10
  // TODO(burdon): Testing plugin (vs. debug)?
@@ -22,7 +22,7 @@ class Generate extends BaseCommand {
22
22
  var _a;
23
23
  const space = await this.getSpace(client, this.args.key);
24
24
  for (let i = 0; i < this.flags.objects; i++) {
25
- space === null || space === void 0 ? void 0 : space.db.add(create({ type, title: faker.lorem.word() }));
25
+ space === null || space === void 0 ? void 0 : space.db.add(live({ type, title: faker.lorem.word() }));
26
26
  await space.db.flush();
27
27
  await pause();
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../src/commands/debug/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../src/commands/debug/generate.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type FunctionManifest } from '@dxos/functions/types';
1
+ import { type FunctionManifest } from '@dxos/functions';
2
2
  import { BaseCommand } from '../../base';
3
3
  export default class List extends BaseCommand<typeof List> {
4
4
  static enableJsonFlag: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/commands/function/list.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW,CAAC,OAAO,IAAI,CAAC;IACxD,OAAgB,cAAc,UAAQ;IACtC,OAAgB,WAAW,SAAqB;IAE1C,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;CAgB1B;AAGD,eAAO,MAAM,cAAc,eAAe,gBAAgB,CAAC,WAAW,CAAC,SAStE,CAAC"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/commands/function/list.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW,CAAC,OAAO,IAAI,CAAC;IACxD,OAAgB,cAAc,UAAQ;IACtC,OAAgB,WAAW,SAAqB;IAE1C,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;CAgB1B;AAGD,eAAO,MAAM,cAAc,eAAe,gBAAgB,CAAC,WAAW,CAAC,SAQtE,CAAC"}
@@ -30,9 +30,8 @@ export default List;
30
30
  // TODO(burdon): List stats.
31
31
  export const printFunctions = (functions = []) => {
32
32
  ux.stdout(table(functions, {
33
- uri: { primary: true },
34
- route: {},
35
- handler: {},
33
+ name: { primary: true },
34
+ version: {},
36
35
  description: {},
37
36
  }));
38
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/function/list.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAEF,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAqB,IAAK,SAAQ,WAAwB;IAIxD,KAAK,CAAC,GAAG;QACP,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;;YACpD,8CAA8C;YAC9C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAa,CAAC;YAC1D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACvE,MAAM,eAAe,GAAG,MAAA,MAAA,MAAA,MAAM,CAAC,MAAM,CAAC,OAAO,0CAAE,KAAK,0CAAE,OAAO,0CAAE,IAAI,CACjE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,iCAAiC,CAC5D,CAAC;YAEF,MAAM,IAAI,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,mCAAI,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,0CAAE,QAAQ,mCAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC;YAC9G,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAqB,CAAC;YACxE,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;YAC/B,cAAc,CAAC,SAAS,CAAC,CAAC;YAC1B,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;;AAlBe,mBAAc,GAAG,IAAI,CAAC;AACtB,gBAAW,GAAG,iBAAiB,CAAC;eAF7B,IAAI;AAsBzB,4BAA4B;AAC5B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,YAA2C,EAAE,EAAE,EAAE;IAC9E,EAAE,CAAC,MAAM,CACP,KAAK,CAAC,SAAS,EAAE;QACf,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACtB,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,EAAE;KAChB,CAAC,CACH,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/function/list.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAEF,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAqB,IAAK,SAAQ,WAAwB;IAIxD,KAAK,CAAC,GAAG;QACP,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;;YACpD,8CAA8C;YAC9C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAa,CAAC;YAC1D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACvE,MAAM,eAAe,GAAG,MAAA,MAAA,MAAA,MAAM,CAAC,MAAM,CAAC,OAAO,0CAAE,KAAK,0CAAE,OAAO,0CAAE,IAAI,CACjE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,iCAAiC,CAC5D,CAAC;YAEF,MAAM,IAAI,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,mCAAI,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,0CAAE,QAAQ,mCAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC;YAC9G,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAqB,CAAC;YACxE,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;YAC/B,cAAc,CAAC,SAAS,CAAC,CAAC;YAC1B,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;;AAlBe,mBAAc,GAAG,IAAI,CAAC;AACtB,gBAAW,GAAG,iBAAiB,CAAC;eAF7B,IAAI;AAsBzB,4BAA4B;AAC5B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,YAA2C,EAAE,EAAE,EAAE;IAC9E,EAAE,CAAC,MAAM,CACP,KAAK,CAAC,SAAS,EAAE;QACf,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACvB,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,EAAE;KAChB,CAAC,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { type TableOptions } from '@dxos/cli-base';
2
- import { FunctionTrigger } from '@dxos/functions/types';
2
+ import { FunctionTrigger } from '@dxos/functions';
3
3
  import { BaseCommand } from '../../../base';
4
4
  export default class List extends BaseCommand<typeof List> {
5
5
  static enableJsonFlag: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../src/commands/function/trigger/list.ts"],"names":[],"mappings":"AAOA,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW,CAAC,OAAO,IAAI,CAAC;IACxD,OAAgB,cAAc,UAAQ;IACtC,OAAgB,WAAW,SAA+B;IAC1D,OAAgB,KAAK;;;;;;;;;;;;;;;MAMnB;IAEI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;CAuB1B;AAGD,eAAO,MAAM,aAAa,cAAe,eAAe,EAAE,WAAW,YAAY,SAchF,CAAC"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../src/commands/function/trigger/list.ts"],"names":[],"mappings":"AAOA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW,CAAC,OAAO,IAAI,CAAC;IACxD,OAAgB,cAAc,UAAQ;IACtC,OAAgB,WAAW,SAA+B;IAC1D,OAAgB,KAAK;;;;;;;;;;;;;;;MAMnB;IAEI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;CAuB1B;AAGD,eAAO,MAAM,aAAa,cAAe,eAAe,EAAE,WAAW,YAAY,SAahF,CAAC"}
@@ -3,10 +3,9 @@
3
3
  //
4
4
  import { Flags, ux } from '@oclif/core';
5
5
  import chalk from 'chalk';
6
- import { stringify, table } from '@dxos/cli-base';
6
+ import { table } from '@dxos/cli-base';
7
7
  import { Filter } from '@dxos/client/echo';
8
- import { FunctionTrigger } from '@dxos/functions/types';
9
- import { omit } from '@dxos/log';
8
+ import { FunctionTrigger } from '@dxos/functions';
10
9
  import { BaseCommand } from '../../../base';
11
10
  class List extends BaseCommand {
12
11
  async run() {
@@ -48,7 +47,6 @@ export const printTriggers = (functions, options) => {
48
47
  enabled: { get: (row) => (row.enabled ? `${chalk.green('✔')}` : '') },
49
48
  function: {},
50
49
  spec: { get: (row) => row.spec.type },
51
- meta: { get: (row) => stringify(omit(row.spec, 'type')) },
52
50
  }, options));
53
51
  };
54
52
  //# sourceMappingURL=list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../src/commands/function/trigger/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../src/commands/function/trigger/list.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,9 @@ export default class Upload extends BaseCommand<typeof Upload> {
5
5
  static flags: {
6
6
  name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
7
  version: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
- spaceKey: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
- objectId: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
+ composerScript: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
9
  functionId: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
+ spaceKey: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
11
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
12
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
13
  'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
@@ -23,6 +23,11 @@ export default class Upload extends BaseCommand<typeof Upload> {
23
23
  file: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
24
24
  };
25
25
  run(): Promise<any>;
26
+ private _loadScript;
27
+ private _loadFunctionObject;
28
+ private _upload;
29
+ private _updateFunctionObject;
30
+ private _updateComposerScript;
26
31
  private _getNextVersion;
27
32
  }
28
33
  //# sourceMappingURL=upload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../../src/commands/function/upload.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAIzC,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW,CAAC,OAAO,MAAM,CAAC;IAC5D,OAAgB,cAAc,UAAQ;IACtC,OAAgB,WAAW,SAA2B;IAEtD,OAAgB,KAAK;;;;;;;;;;;;;;;;MAUnB;IAEF,OAAgB,IAAI;;MAElB;IAEI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;YA+GX,eAAe;CAW9B"}
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;;;;;;;;;;;;;;;;MAOnB;IAEF,OAAgB,IAAI;;MAElB;IAEI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;YAwBX,WAAW;YAgBX,mBAAmB;YAcnB,OAAO;IAsBrB,OAAO,CAAC,qBAAqB;YAgBf,qBAAqB;YA6BrB,eAAe;CAW9B"}
@@ -3,117 +3,117 @@
3
3
  //
4
4
  import { Args, Flags } from '@oclif/core';
5
5
  import fs from 'node:fs';
6
+ import { basename } from 'node:path';
7
+ import path from 'path';
6
8
  import { asyncTimeout } from '@dxos/async';
7
- import { Filter, loadObjectReferences, makeRef } from '@dxos/client/echo';
8
- import { create, getMeta } from '@dxos/client/echo';
9
- import { getUserFunctionUrlInMetadata, incrementSemverPatch, setUserFunctionUrlInMetadata, uploadWorkerFunction, FunctionType, ScriptType, } from '@dxos/functions';
9
+ import { CollectionType } from '@dxos/cli-composer';
10
+ import { getMeta, live, makeRef } from '@dxos/client/echo';
11
+ import { FunctionType, ScriptType, makeFunctionUrl, setUserFunctionUrlInMetadata } from '@dxos/functions';
12
+ import { incrementSemverPatch, uploadWorkerFunction } from '@dxos/functions/edge';
10
13
  import { invariant } from '@dxos/invariant';
11
- import { TextType } from '@dxos/schema';
14
+ import { DataType } from '@dxos/schema';
12
15
  import { BaseCommand } from '../../base';
16
+ import { bundleScript, findFunctionByDeploymentId } from '../../util';
13
17
  // TODO: move to cli-composer
14
18
  class Upload extends BaseCommand {
15
19
  async run() {
16
- let scriptContent;
20
+ const { scriptFileContent, bundledScript } = await this._loadScript();
21
+ return this.execWithSpace(async ({ client, space }) => {
22
+ client.addTypes([FunctionType]);
23
+ const identity = client.halo.identity.get();
24
+ invariant(identity, 'Identity not available');
25
+ const existingFunctionObject = await this._loadFunctionObject(space);
26
+ const uploadResult = await this._upload(client, space, existingFunctionObject, bundledScript);
27
+ const functionObject = this._updateFunctionObject(space, existingFunctionObject, uploadResult);
28
+ if (this.flags.composerScript) {
29
+ await this._updateComposerScript(client, space, functionObject, basename(this.args.file), scriptFileContent);
30
+ }
31
+ }, { spaceKeys: this.flags.spaceKey ? [this.flags.spaceKey] : undefined });
32
+ }
33
+ async _loadScript() {
34
+ var _a, _b;
35
+ let scriptFileContent;
17
36
  try {
18
- scriptContent = fs.readFileSync(this.args.file, 'utf8');
37
+ scriptFileContent = fs.readFileSync(this.args.file, 'utf8');
19
38
  }
20
39
  catch (err) {
21
40
  this.error(`Error reading file ${this.args.file}: ${err.message}`);
22
41
  }
23
- const handleUpload = async ({ client, space }) => {
24
- invariant(space, 'Has to provide a space');
25
- client.addTypes([ScriptType, TextType]);
26
- const identity = client.halo.identity.get();
27
- invariant(identity, 'Identity not available');
28
- let existingFunctionId;
29
- let existingObject;
30
- let functionUrlFromExistingObject;
31
- if (this.flags.functionId) {
32
- existingFunctionId = this.flags.functionId;
33
- }
34
- // Find existing object and functionId in metadata if it exists
35
- if (this.flags.objectId) {
36
- const qr = await space.db.query(Filter.schema(ScriptType)).run();
37
- existingObject = qr.objects.find((o) => o.id === this.flags.objectId);
38
- if (!existingObject) {
39
- this.error(`Object not found: ${this.flags.spaceKey}/${this.flags.objectId}`);
40
- }
41
- functionUrlFromExistingObject = await getUserFunctionUrlInMetadata(getMeta(existingObject));
42
- if (functionUrlFromExistingObject) {
43
- existingFunctionId = functionUrlFromExistingObject.split('/').at(-1);
44
- if (existingFunctionId !== this.flags.functionId) {
45
- this.warn(`provided functionId ${this.flags.functionId} does not match existing functionId ${existingFunctionId}, using existing functionId`);
46
- }
47
- }
48
- if (this.flags.verbose) {
49
- this.log(`Uploading to existing FunctionId ${existingFunctionId} read from ${this.flags.spaceKey}/${this.flags.objectId}`);
50
- }
51
- }
52
- let result;
53
- try {
54
- result = await asyncTimeout(uploadWorkerFunction({
55
- client,
56
- spaceId: space.id,
57
- version: await this._getNextVersion(space, existingFunctionId),
58
- functionId: existingFunctionId,
59
- name: this.flags.name,
60
- source: scriptContent,
61
- }), 5000);
62
- invariant(result.functionId, 'Upload failed.');
63
- this.log(`Uploaded function: ${result.functionId}`);
64
- }
65
- catch (err) {
66
- this.error(err.message);
67
- }
68
- // If we haven't been provided an ECHO space/object, we're done.
69
- if (!space) {
70
- return;
71
- }
72
- if (existingObject) {
73
- // Update existing object
74
- await loadObjectReferences(existingObject, (obj) => obj.source);
75
- if (!existingObject.source) {
76
- this.error('Object source not found');
77
- }
78
- existingObject.source.target.content = scriptContent;
79
- if (this.flags.verbose) {
80
- this.log(`Updated source in ${this.flags.spaceKey}/${this.flags.objectId} (${existingObject.source.target.id})`);
81
- }
82
- if (!functionUrlFromExistingObject) {
83
- setUserFunctionUrlInMetadata(getMeta(existingObject), `/${space.id}/${result.functionId}`);
84
- }
85
- else {
86
- if (existingFunctionId !== result.functionId) {
87
- this.error('functionId mismatch');
88
- }
89
- }
42
+ const bundleResult = await bundleScript(scriptFileContent);
43
+ if (bundleResult.error || !bundleResult.bundle) {
44
+ 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'}`);
45
+ }
46
+ return { scriptFileContent, bundledScript: bundleResult.bundle };
47
+ }
48
+ async _loadFunctionObject(space) {
49
+ const matchingFunction = await findFunctionByDeploymentId(space, this.flags.functionId);
50
+ if (this.flags.functionId && !matchingFunction) {
51
+ this.warn(`Function ECHO object not found for ${this.flags.functionId}`);
52
+ }
53
+ if (this.flags.verbose && matchingFunction) {
54
+ this.log(`Function ECHO object found, ID: ${matchingFunction.id}`);
55
+ }
56
+ return matchingFunction;
57
+ }
58
+ async _upload(client, space, functionObject, bundledSource) {
59
+ let result;
60
+ try {
61
+ result = await asyncTimeout(uploadWorkerFunction({
62
+ client,
63
+ spaceId: space.id,
64
+ version: await this._getNextVersion(functionObject),
65
+ functionId: this.flags.functionId,
66
+ name: this.flags.name,
67
+ source: bundledSource,
68
+ }), 10000);
69
+ invariant(result.functionId, 'Upload failed.');
70
+ this.log(`Uploaded function ${result.functionId}, version ${result.version}`);
71
+ return result;
72
+ }
73
+ catch (err) {
74
+ this.error(err.message);
75
+ }
76
+ }
77
+ _updateFunctionObject(space, existingObject, uploadResult) {
78
+ var _a;
79
+ let functionObject = existingObject;
80
+ if (!functionObject) {
81
+ const name = path.basename(this.args.file, path.extname(this.args.file));
82
+ functionObject = space.db.add(live(FunctionType, { name, version: uploadResult.version }));
83
+ }
84
+ functionObject.name = (_a = this.flags.name) !== null && _a !== void 0 ? _a : functionObject.name;
85
+ functionObject.version = uploadResult.version;
86
+ setUserFunctionUrlInMetadata(getMeta(functionObject), makeFunctionUrl(space.id, uploadResult));
87
+ return functionObject;
88
+ }
89
+ async _updateComposerScript(client, space, functionObject, scriptFileName, scriptFileContent) {
90
+ var _a;
91
+ client.addTypes([ScriptType, DataType.Text]);
92
+ if (functionObject.source) {
93
+ const script = await functionObject.source.load();
94
+ const source = await script.source.load();
95
+ source.content = scriptFileContent;
96
+ if (this.flags.verbose) {
97
+ this.log(`Updated source of ${script.id}`);
90
98
  }
91
- else {
92
- // Create new object
93
- // TODO: make object navigable in Composer.
94
- const sourceObj = space.db.add(create(TextType, { content: scriptContent }));
95
- const obj = space.db.add(create(ScriptType, { name: this.flags.name, source: makeRef(sourceObj) }));
96
- setUserFunctionUrlInMetadata(getMeta(obj), result.functionId);
97
- if (this.flags.verbose) {
98
- this.log(`Created object: ${this.flags.spaceKey}/${obj.id}`);
99
- }
99
+ }
100
+ else {
101
+ const sourceObj = space.db.add(live(DataType.Text, { content: scriptFileContent }));
102
+ const obj = space.db.add(live(ScriptType, { name: (_a = this.flags.name) !== null && _a !== void 0 ? _a : scriptFileName, source: makeRef(sourceObj) }));
103
+ functionObject.source = makeRef(obj);
104
+ await makeObjectNavigableInComposer(client, space, obj);
105
+ if (this.flags.verbose) {
106
+ this.log(`Created object, ID: ${obj.id}`);
100
107
  }
101
- };
102
- if (this.flags.spaceKey) {
103
- return await this.execWithSpace(async ({ client, space }) => await handleUpload({ client, space }), {
104
- spaceKeys: [this.flags.spaceKey],
105
- });
106
108
  }
107
- return await this.execWithClient(async ({ client }) => await handleUpload({ client }));
108
109
  }
109
- async _getNextVersion(space, functionId) {
110
- var _a, _b;
110
+ async _getNextVersion(functionObject) {
111
+ var _a;
111
112
  if (this.flags.version) {
112
113
  return this.flags.version;
113
114
  }
114
- if (functionId) {
115
- const { objects } = await space.db.query(Filter.schema(FunctionType, { id: functionId })).run();
116
- return incrementSemverPatch((_b = (_a = objects[0]) === null || _a === void 0 ? void 0 : _a.version) !== null && _b !== void 0 ? _b : '0.0.0');
115
+ if (functionObject) {
116
+ return incrementSemverPatch((_a = functionObject === null || functionObject === void 0 ? void 0 : functionObject.version) !== null && _a !== void 0 ? _a : '0.0.0');
117
117
  }
118
118
  return '0.0.1';
119
119
  }
@@ -124,15 +124,22 @@ Upload.flags = {
124
124
  ...BaseCommand.flags,
125
125
  name: Flags.string({ description: 'Function name.' }),
126
126
  version: Flags.string({ description: 'Function version.' }),
127
+ composerScript: Flags.boolean({ description: 'Loads the script into composer.' }),
128
+ functionId: Flags.string({ description: 'Existing UserFunction ID to update.' }),
127
129
  spaceKey: Flags.string({ description: 'Space key to create/update Script source in.' }),
128
- objectId: Flags.string({ description: 'Existing Script Object ID to update.' }),
129
- functionId: Flags.string({
130
- description: 'Existing UserFunction ID to update.',
131
- conflict: ['objectId', 'spaceKey'],
132
- }),
133
130
  };
134
131
  Upload.args = {
135
132
  file: Args.string({ required: true }),
136
133
  };
137
134
  export default Upload;
135
+ const makeObjectNavigableInComposer = async (client, space, obj) => {
136
+ const collection = space.properties['dxos.org/type/Collection'];
137
+ if (collection) {
138
+ client.addTypes([CollectionType]);
139
+ const composerCollection = await collection.load();
140
+ if (composerCollection) {
141
+ composerCollection.objects.push(makeRef(obj));
142
+ }
143
+ }
144
+ };
138
145
  //# sourceMappingURL=upload.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../../src/commands/function/upload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../../src/commands/function/upload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { BaseCommand } from '../../base';
2
+ export default class Watch extends BaseCommand<typeof Watch> {
3
+ static enableJsonFlag: boolean;
4
+ static description: string;
5
+ static flags: {
6
+ functionId: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
7
+ spaceKey: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
+ 'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
+ profile: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
12
+ config: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
13
+ timeout: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
14
+ target: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
+ agent: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
+ 'json-log': import("@oclif/core/interfaces").BooleanFlag<boolean>;
17
+ 'json-logfile': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
18
+ };
19
+ static args: {
20
+ file: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
21
+ };
22
+ run(): Promise<any>;
23
+ private _loadFunctionObject;
24
+ private _isRuntimeReady;
25
+ private _uploadSource;
26
+ private _logWithTime;
27
+ private _printUploadInstruction;
28
+ }
29
+ //# sourceMappingURL=watch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../../src/commands/function/watch.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAMzC,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW,CAAC,OAAO,KAAK,CAAC;IAC1D,OAAgB,cAAc,UAAQ;IACtC,OAAgB,WAAW,SAAwC;IAEnE,OAAgB,KAAK;;;;;;;;;;;;;MAInB;IAEF,OAAgB,IAAI;;MAElB;IAEI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;YAgDX,mBAAmB;YAkBnB,eAAe;YA6Bf,aAAa;IAe3B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,uBAAuB;CAIhC"}
@@ -0,0 +1,130 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+ import { Args, Flags } from '@oclif/core';
5
+ import fs from 'fs';
6
+ import { debounce, Trigger } from '@dxos/async';
7
+ import { FunctionType, ScriptType } from '@dxos/functions';
8
+ import { DataType } from '@dxos/schema';
9
+ import { BaseCommand } from '../../base';
10
+ import { bundleScript } from '../../util';
11
+ import { findFunctionByDeploymentId } from '../../util/function/lookup';
12
+ const LOCAL_FUNCTIONS_RUNTIME_URL = 'http://127.0.0.1:3123';
13
+ class Watch extends BaseCommand {
14
+ async run() {
15
+ return this.execWithSpace(async ({ client, space }) => {
16
+ client.addTypes([DataType.Text, ScriptType, FunctionType]);
17
+ const { scriptContent } = await this._loadFunctionObject(space);
18
+ this._logWithTime(`Watching for changes in ${this.args.file}`);
19
+ const updateSource = debounce(async () => {
20
+ const readinessCheckResult = await this._isRuntimeReady();
21
+ if (!readinessCheckResult.ready) {
22
+ this._logWithTime(`Functions runtime readiness check failed: ${readinessCheckResult.reason}`);
23
+ return;
24
+ }
25
+ const source = fs.readFileSync(this.args.file, 'utf-8');
26
+ const bundleResult = await bundleScript(source);
27
+ if (!bundleResult.bundle) {
28
+ this._logWithTime('Source bundling failed, waiting for new changes...');
29
+ return;
30
+ }
31
+ const updateResult = await this._uploadSource(bundleResult.bundle);
32
+ if (updateResult.success) {
33
+ if (scriptContent) {
34
+ scriptContent.content = source;
35
+ }
36
+ this._logWithTime('Worker source updated');
37
+ }
38
+ else {
39
+ this._logWithTime(`Failed to update worker source, reason: ${updateResult.reason}`);
40
+ }
41
+ }, 2000);
42
+ const trigger = new Trigger();
43
+ fs.watch(this.args.file, (event) => {
44
+ if (event === 'rename') {
45
+ trigger.wake();
46
+ }
47
+ else {
48
+ updateSource();
49
+ }
50
+ });
51
+ await trigger.wait();
52
+ });
53
+ }
54
+ async _loadFunctionObject(space) {
55
+ const matchingFunction = await findFunctionByDeploymentId(space, this.flags.functionId);
56
+ if (!matchingFunction) {
57
+ this.log(`Function with id ${this.flags.functionId} not found in space ${space.id}.`);
58
+ this._printUploadInstruction();
59
+ this.exit();
60
+ }
61
+ if (!matchingFunction.source) {
62
+ return { functionObject: matchingFunction };
63
+ }
64
+ const script = await matchingFunction.source.load();
65
+ const content = await script.source.load();
66
+ return { functionObject: matchingFunction, scriptContent: content };
67
+ }
68
+ async _isRuntimeReady() {
69
+ var _a, _b;
70
+ try {
71
+ const result = await fetch(`${LOCAL_FUNCTIONS_RUNTIME_URL}/sanity`);
72
+ if (result.status !== 200) {
73
+ this.log(`Function runtime sanity check failed: ${result.statusText}`);
74
+ }
75
+ }
76
+ catch (err) {
77
+ return { ready: false, reason: `Functions runtime not running, expected on ${LOCAL_FUNCTIONS_RUNTIME_URL}` };
78
+ }
79
+ try {
80
+ const functionId = this.flags.functionId;
81
+ const result = await fetch(`${LOCAL_FUNCTIONS_RUNTIME_URL}/workers/${functionId}/versions`);
82
+ if (result.status !== 200) {
83
+ return { ready: false, reason: `Deployment status check failed: ${result.statusText}` };
84
+ }
85
+ const bodyJson = await result.json();
86
+ if (!((_a = bodyJson.versions) === null || _a === void 0 ? void 0 : _a.length)) {
87
+ return { ready: false, reason: `Function with id ${functionId} is not deployed.` };
88
+ }
89
+ return { ready: true };
90
+ }
91
+ catch (err) {
92
+ return { ready: false, reason: `Deployment status check failed, reason: ${(_b = err.message) !== null && _b !== void 0 ? _b : 'unknown'}` };
93
+ }
94
+ }
95
+ async _uploadSource(bundledScript) {
96
+ var _a;
97
+ try {
98
+ const result = await fetch(`${LOCAL_FUNCTIONS_RUNTIME_URL}/workers/${this.flags.functionId}/source`, {
99
+ method: 'PUT',
100
+ body: Buffer.from(bundledScript),
101
+ });
102
+ if (result.status !== 200) {
103
+ return { success: false, reason: result.statusText };
104
+ }
105
+ return { success: true };
106
+ }
107
+ catch (err) {
108
+ return { success: false, reason: (_a = err.message) !== null && _a !== void 0 ? _a : 'unknown' };
109
+ }
110
+ }
111
+ _logWithTime(message) {
112
+ this.log(`[${new Date().toTimeString().split(' ')[0]}] ${message}`);
113
+ }
114
+ _printUploadInstruction() {
115
+ const message = ['Try running:', '', 'dx function upload scriptFilePath'].join('\n');
116
+ this.log(message);
117
+ }
118
+ }
119
+ Watch.enableJsonFlag = true;
120
+ Watch.description = 'Hot reload script on file changes.';
121
+ Watch.flags = {
122
+ ...BaseCommand.flags,
123
+ functionId: Flags.string({ description: 'Existing UserFunction ID to update.', required: true }),
124
+ spaceKey: Flags.string({ description: 'Space key to create/update Script source in.' }),
125
+ };
126
+ Watch.args = {
127
+ file: Args.string({ required: true }),
128
+ };
129
+ export default Watch;
130
+ //# sourceMappingURL=watch.js.map