@openfn/cli 1.16.0 → 1.16.2

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.
@@ -2295,7 +2295,7 @@ ${project.workflows.map((w) => " - " + w.name).join("\n")}`;
2295
2295
  var handler_default11 = projectsHandler;
2296
2296
 
2297
2297
  // src/checkout/handler.ts
2298
- import { Workspace as Workspace2 } from "@openfn/project";
2298
+ import Project5, { Workspace as Workspace2 } from "@openfn/project";
2299
2299
  import path12 from "path";
2300
2300
  import fs6 from "fs";
2301
2301
  import { rimraf as rimraf2 } from "rimraf";
@@ -2306,15 +2306,24 @@ var checkoutHandler = async (options, logger) => {
2306
2306
  logger.error("Command was run in an invalid openfn workspace");
2307
2307
  return;
2308
2308
  }
2309
- const switchProject = workspace.get(options.projectName);
2309
+ const { project: _, ...config } = workspace.getConfig() ?? {};
2310
+ let switchProject;
2311
+ if (/\.(yaml|json)$/.test(options.projectName)) {
2312
+ const filePath = path12.join(commandPath, options.projectName);
2313
+ logger.debug("Loading project from path ", filePath);
2314
+ switchProject = await Project5.from("path", filePath, {
2315
+ config
2316
+ });
2317
+ } else {
2318
+ switchProject = workspace.get(options.projectName);
2319
+ }
2310
2320
  if (!switchProject) {
2311
2321
  logger.error(
2312
2322
  `Project with id/name ${options.projectName} not found in the workspace`
2313
2323
  );
2314
2324
  return;
2315
2325
  }
2316
- const config = workspace.getConfig();
2317
- await rimraf2(path12.join(commandPath, config?.workflowRoot || "workflows"));
2326
+ await rimraf2(path12.join(commandPath, config.workflowRoot ?? "workflows"));
2318
2327
  const files = switchProject.serialize("fs");
2319
2328
  for (const f in files) {
2320
2329
  if (files[f]) {
@@ -2331,7 +2340,7 @@ var checkoutHandler = async (options, logger) => {
2331
2340
  var handler_default12 = checkoutHandler;
2332
2341
 
2333
2342
  // src/merge/handler.ts
2334
- import Project5, { Workspace as Workspace3 } from "@openfn/project";
2343
+ import Project6, { Workspace as Workspace3 } from "@openfn/project";
2335
2344
  import path13 from "path";
2336
2345
  import { promises as fs7 } from "fs";
2337
2346
  var mergeHandler = async (options, logger) => {
@@ -2341,32 +2350,37 @@ var mergeHandler = async (options, logger) => {
2341
2350
  logger.error("Command was run in an invalid openfn workspace");
2342
2351
  return;
2343
2352
  }
2344
- const checkedProject = workspace.getActiveProject();
2345
- if (!checkedProject) {
2353
+ const targetProject = workspace.getActiveProject();
2354
+ if (!targetProject) {
2346
2355
  logger.error(`No project currently checked out`);
2347
2356
  return;
2348
2357
  }
2349
- const mProject = workspace.get(options.projectName);
2350
- if (!mProject) {
2351
- logger.error(
2352
- `Project with id/name ${options.projectName} not found in the workspace`
2353
- );
2358
+ let sourceProject;
2359
+ if (/\.(yaml|json)$/.test(options.projectName)) {
2360
+ const filePath = path13.join(commandPath, options.projectName);
2361
+ logger.debug("Loading source project from path ", filePath);
2362
+ sourceProject = await Project6.from("path", filePath);
2363
+ } else {
2364
+ sourceProject = workspace.get(options.projectName);
2365
+ }
2366
+ if (!sourceProject) {
2367
+ logger.error(`Project "${options.projectName}" not found in the workspace`);
2354
2368
  return;
2355
2369
  }
2356
- if (checkedProject.name === mProject.name) {
2370
+ if (targetProject.name === sourceProject.name) {
2357
2371
  logger.error("Merging into the same project not allowed");
2358
2372
  return;
2359
2373
  }
2360
- if (!checkedProject.name) {
2374
+ if (!targetProject.name) {
2361
2375
  logger.error("The checked out project has no name/id");
2362
2376
  return;
2363
2377
  }
2364
- const finalPath = workspace.getProjectPath(checkedProject.name);
2378
+ const finalPath = workspace.getProjectPath(targetProject.name);
2365
2379
  if (!finalPath) {
2366
2380
  logger.error("Path to checked out project not found.");
2367
2381
  return;
2368
2382
  }
2369
- const final = Project5.merge(mProject, checkedProject, {
2383
+ const final = Project6.merge(sourceProject, targetProject, {
2370
2384
  removeUnmapped: options.removeUnmapped,
2371
2385
  workflowMappings: options.workflowMappings
2372
2386
  });
@@ -2381,7 +2395,7 @@ var mergeHandler = async (options, logger) => {
2381
2395
  logger
2382
2396
  );
2383
2397
  logger.success(
2384
- `Project ${mProject.name} has been merged into Project ${checkedProject.name} successfully`
2398
+ `Project ${sourceProject.name} has been merged into Project ${targetProject.name} successfully`
2385
2399
  );
2386
2400
  };
2387
2401
  var handler_default13 = mergeHandler;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openfn/cli",
3
- "version": "1.16.0",
3
+ "version": "1.16.2",
4
4
  "description": "CLI devtools for the OpenFn toolchain",
5
5
  "engines": {
6
6
  "node": ">=18",
@@ -47,13 +47,13 @@
47
47
  "undici": "7.12.0",
48
48
  "ws": "^8.18.3",
49
49
  "yargs": "^17.7.2",
50
- "@openfn/compiler": "1.1.4",
51
- "@openfn/deploy": "0.11.3",
50
+ "@openfn/compiler": "1.1.5",
52
51
  "@openfn/describe-package": "0.1.5",
53
- "@openfn/lexicon": "^1.2.3",
54
- "@openfn/logger": "1.0.6",
52
+ "@openfn/lexicon": "^1.2.4",
53
+ "@openfn/deploy": "0.11.3",
55
54
  "@openfn/runtime": "1.7.3",
56
- "@openfn/project": "^0.4.1"
55
+ "@openfn/project": "^0.5.1",
56
+ "@openfn/logger": "1.0.6"
57
57
  },
58
58
  "files": [
59
59
  "dist",