@openfn/cli 0.0.40 → 0.0.41

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.
@@ -511,6 +511,59 @@ Paths inside the workflow are relative to the workflow.json`
511
511
  }
512
512
  };
513
513
 
514
+ // src/util/map-adaptors-to-monorepo.ts
515
+ import { readFile } from "node:fs/promises";
516
+ import path2 from "node:path";
517
+ import assert from "node:assert";
518
+ import { getNameAndVersion as getNameAndVersion2 } from "@openfn/runtime";
519
+ var validateMonoRepo = async (repoPath, log) => {
520
+ try {
521
+ const raw = await readFile(`${repoPath}/package.json`, "utf8");
522
+ const pkg = JSON.parse(raw);
523
+ assert(pkg.name === "adaptors");
524
+ } catch (e) {
525
+ log.error(`ERROR: Adaptors Monorepo not found at ${repoPath}`);
526
+ process.exit(9);
527
+ }
528
+ };
529
+ var updatePath = (adaptor, repoPath, log) => {
530
+ if (adaptor.match("=")) {
531
+ return adaptor;
532
+ }
533
+ const { name, version } = getNameAndVersion2(adaptor);
534
+ if (version) {
535
+ log.warn(
536
+ `Warning: Ignoring version specifier on ${adaptor} as loading from the adaptors monorepo`
537
+ );
538
+ }
539
+ const shortName = name.replace("@openfn/language-", "");
540
+ const abspath = path2.resolve(repoPath, "packages", shortName);
541
+ return `${name}=${abspath}`;
542
+ };
543
+ var mapAdaptorsToMonorepo = async (options, log) => {
544
+ const { adaptors, monorepoPath, workflow } = options;
545
+ if (monorepoPath) {
546
+ await validateMonoRepo(monorepoPath, log);
547
+ log.success(`Loading adaptors from monorepo at ${monorepoPath}`);
548
+ if (adaptors) {
549
+ options.adaptors = adaptors.map((a) => {
550
+ const p = updatePath(a, monorepoPath, log);
551
+ log.info(`Mapped adaptor ${a} to monorepo: ${p.split("=")[1]}`);
552
+ return p;
553
+ });
554
+ }
555
+ if (workflow) {
556
+ Object.values(workflow.jobs).forEach((job) => {
557
+ if (job.adaptor) {
558
+ job.adaptor = updatePath(job.adaptor, monorepoPath, log);
559
+ }
560
+ });
561
+ }
562
+ }
563
+ return options;
564
+ };
565
+ var map_adaptors_to_monorepo_default = mapAdaptorsToMonorepo;
566
+
514
567
  // src/execute/handler.ts
515
568
  var executeHandler = async (options, logger) => {
516
569
  const start = new Date().getTime();
@@ -518,6 +571,10 @@ var executeHandler = async (options, logger) => {
518
571
  let input = await load_input_default(options, logger);
519
572
  if (options.workflow) {
520
573
  expand_adaptors_default(options);
574
+ await map_adaptors_to_monorepo_default(
575
+ options,
576
+ logger
577
+ );
521
578
  }
522
579
  const { repoDir, monorepoPath, autoinstall } = options;
523
580
  if (autoinstall) {
@@ -564,6 +621,13 @@ var handler_default = executeHandler;
564
621
  import { writeFile as writeFile2 } from "node:fs/promises";
565
622
  var compileHandler = async (options, logger) => {
566
623
  await load_input_default(options, logger);
624
+ if (options.workflow) {
625
+ expand_adaptors_default(options);
626
+ await map_adaptors_to_monorepo_default(
627
+ options,
628
+ logger
629
+ );
630
+ }
567
631
  let result = await compile_default(options, logger);
568
632
  if (options.workflow) {
569
633
  result = JSON.stringify(result);
@@ -629,20 +693,20 @@ var handler_default3 = testHandler;
629
693
  // src/docgen/handler.ts
630
694
  import { writeFile as writeFile3 } from "node:fs/promises";
631
695
  import { readFileSync, writeFileSync, mkdirSync, rmSync } from "node:fs";
632
- import path2 from "node:path";
696
+ import path3 from "node:path";
633
697
  import { describePackage } from "@openfn/describe-package";
634
- import { getNameAndVersion as getNameAndVersion2 } from "@openfn/runtime";
698
+ import { getNameAndVersion as getNameAndVersion3 } from "@openfn/runtime";
635
699
  var RETRY_DURATION = 500;
636
700
  var RETRY_COUNT = 20;
637
701
  var TIMEOUT_MS = 1e3 * 60;
638
702
  var actualDocGen = (specifier) => describePackage(specifier, {});
639
- var ensurePath = (filePath) => mkdirSync(path2.dirname(filePath), { recursive: true });
703
+ var ensurePath = (filePath) => mkdirSync(path3.dirname(filePath), { recursive: true });
640
704
  var generatePlaceholder = (path7) => {
641
705
  writeFileSync(path7, `{ "loading": true, "timestamp": ${Date.now()}}`);
642
706
  };
643
707
  var finish = (logger, resultPath) => {
644
708
  logger.success("Done! Docs can be found at:\n");
645
- logger.print(` ${path2.resolve(resultPath)}`);
709
+ logger.print(` ${path3.resolve(resultPath)}`);
646
710
  };
647
711
  var generateDocs = async (specifier, path7, docgen, logger) => {
648
712
  const result = await docgen(specifier);
@@ -683,7 +747,7 @@ var waitForDocs = async (docs, path7, logger, retryDuration = RETRY_DURATION) =>
683
747
  };
684
748
  var docgenHandler = (options, logger, docgen = actualDocGen, retryDuration = RETRY_DURATION) => {
685
749
  const { specifier, repoDir } = options;
686
- const { version } = getNameAndVersion2(specifier);
750
+ const { version } = getNameAndVersion3(specifier);
687
751
  if (!version) {
688
752
  logger.error("Error: No version number detected");
689
753
  logger.error("eg, @openfn/language-common@1.7.5");
@@ -722,8 +786,8 @@ var docgenHandler = (options, logger, docgen = actualDocGen, retryDuration = RET
722
786
  var handler_default4 = docgenHandler;
723
787
 
724
788
  // src/docs/handler.ts
725
- import { readFile } from "node:fs/promises";
726
- import { getNameAndVersion as getNameAndVersion3, getLatestVersion } from "@openfn/runtime";
789
+ import { readFile as readFile2 } from "node:fs/promises";
790
+ import { getNameAndVersion as getNameAndVersion4, getLatestVersion } from "@openfn/runtime";
727
791
  var describeFn = (adaptorName, fn) => `## ${fn.name}(${fn.parameters.map(({ name }) => name).join(",")})
728
792
 
729
793
  ${fn.description}
@@ -753,7 +817,7 @@ var docsHandler = async (options, logger) => {
753
817
  const { adaptor, operation, repoDir } = options;
754
818
  const { adaptors } = expand_adaptors_default({ adaptors: [adaptor] });
755
819
  const [adaptorName] = adaptors;
756
- let { name, version } = getNameAndVersion3(adaptorName);
820
+ let { name, version } = getNameAndVersion4(adaptorName);
757
821
  if (!version) {
758
822
  logger.info("No version number provided, looking for latest...");
759
823
  version = await getLatestVersion(name);
@@ -770,7 +834,7 @@ var docsHandler = async (options, logger) => {
770
834
  );
771
835
  let didError = false;
772
836
  if (path7) {
773
- const source = await readFile(path7, "utf8");
837
+ const source = await readFile2(path7, "utf8");
774
838
  const data = JSON.parse(source);
775
839
  let desc;
776
840
  if (operation) {
@@ -802,7 +866,7 @@ var handler_default5 = docsHandler;
802
866
  // src/metadata/cache.ts
803
867
  import { createHash } from "node:crypto";
804
868
  import { readFileSync as readFileSync2 } from "node:fs";
805
- import path3 from "node:path";
869
+ import path4 from "node:path";
806
870
  import { writeFile as writeFile4, mkdir } from "node:fs/promises";
807
871
  var getPath = (repoDir, key) => `${repoDir}/meta/${key}.json`;
808
872
  var sortKeys = (obj) => {
@@ -833,7 +897,7 @@ var get = (repoPath, key) => {
833
897
  };
834
898
  var set = async (repoPath, key, data) => {
835
899
  const fullPath = getPath(repoPath, key);
836
- await mkdir(path3.dirname(fullPath), { recursive: true });
900
+ await mkdir(path4.dirname(fullPath), { recursive: true });
837
901
  await writeFile4(fullPath, JSON.stringify(data));
838
902
  };
839
903
  var cache_default = { get, set, generateKey, getPath, sortKeys };
@@ -917,7 +981,7 @@ var metadataHandler = async (options, logger) => {
917
981
  var handler_default6 = metadataHandler;
918
982
 
919
983
  // src/util/ensure-opts.ts
920
- import path4 from "node:path";
984
+ import path5 from "node:path";
921
985
  var defaultLoggerOptions = {
922
986
  default: "default",
923
987
  job: "debug"
@@ -995,7 +1059,7 @@ function ensureOpts(basePath = ".", opts) {
995
1059
  }
996
1060
  let baseDir = basePath;
997
1061
  if (basePath.endsWith(".js")) {
998
- baseDir = path4.dirname(basePath);
1062
+ baseDir = path5.dirname(basePath);
999
1063
  set2("jobPath", basePath);
1000
1064
  } else {
1001
1065
  set2("jobPath", `${baseDir}/job.js`);
@@ -1011,47 +1075,6 @@ function ensureOpts(basePath = ".", opts) {
1011
1075
  return newOpts;
1012
1076
  }
1013
1077
 
1014
- // src/util/use-adaptors-repo.ts
1015
- import { readFile as readFile2 } from "node:fs/promises";
1016
- import path5 from "node:path";
1017
- import assert from "node:assert";
1018
- import { getNameAndVersion as getNameAndVersion5 } from "@openfn/runtime";
1019
- var validateMonoRepo = async (repoPath, log) => {
1020
- try {
1021
- const raw = await readFile2(`${repoPath}/package.json`, "utf8");
1022
- const pkg = JSON.parse(raw);
1023
- assert(pkg.name === "adaptors");
1024
- } catch (e) {
1025
- log.error(`ERROR: Adaptors Monorepo not found at ${repoPath}`);
1026
- process.exit(9);
1027
- }
1028
- };
1029
- var updatePath = (adaptor, repoPath, log) => {
1030
- if (adaptor.match("=")) {
1031
- return adaptor;
1032
- }
1033
- const { name, version } = getNameAndVersion5(adaptor);
1034
- if (version) {
1035
- log.warn(
1036
- `Warning: Ignoring version specifier on ${adaptor} as loading from the adaptors monorepo`
1037
- );
1038
- }
1039
- const shortName = name.replace("@openfn/language-", "");
1040
- const abspath = path5.resolve(repoPath, "packages", shortName);
1041
- return `${name}=${abspath}`;
1042
- };
1043
- var useAdaptorsRepo = async (adaptors, repoPath, log) => {
1044
- await validateMonoRepo(repoPath, log);
1045
- log.success(`Loading adaptors from monorepo at ${repoPath}`);
1046
- const updatedAdaptors = adaptors.map((a) => {
1047
- const p = updatePath(a, repoPath, log);
1048
- log.info(`Mapped adaptor ${a} to monorepo: ${p.split("=")[1]}`);
1049
- return p;
1050
- });
1051
- return updatedAdaptors;
1052
- };
1053
- var use_adaptors_repo_default = useAdaptorsRepo;
1054
-
1055
1078
  // src/util/print-versions.ts
1056
1079
  import { readFileSync as readFileSync3 } from "node:fs";
1057
1080
  import path6 from "node:path";
@@ -1156,11 +1179,7 @@ var parse = async (basePath, options, log) => {
1156
1179
  logger.error("Set OPENFN_ADAPTORS_REPO to a path pointing to the repo");
1157
1180
  process.exit(9);
1158
1181
  }
1159
- opts.adaptors = await use_adaptors_repo_default(
1160
- opts.adaptors,
1161
- opts.monorepoPath,
1162
- logger
1163
- );
1182
+ await map_adaptors_to_monorepo_default(opts, logger);
1164
1183
  } else if (opts.adaptors && opts.expandAdaptors) {
1165
1184
  expand_adaptors_default(opts);
1166
1185
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openfn/cli",
3
- "version": "0.0.40",
3
+ "version": "0.0.41",
4
4
  "description": "CLI devtools for the openfn toolchain.",
5
5
  "engines": {
6
6
  "node": ">=18",