forest-cli
Version:
The Lumberjacks' toolbelt is the Forest CLI which makes easy to manage your back office application directly from the terminal.
49 lines • 2.56 kB
TypeScript
import type { Config } from '@oclif/core';
import AbstractAuthenticatedCommand from '../../abstract-authenticated-command';
/**
* `forest layout apply` — compute the JSON-Patch plan between forest-layout.json
* and the live rendering, then PATCH it to the environment. Idempotent: an
* unchanged file produces no operation and sends nothing.
*/
export default class LayoutApplyCommand extends AbstractAuthenticatedCommand {
private readonly env;
private readonly inquirer;
static args: {
file: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
};
static description: string;
static flags: {
env: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
team: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
projectId: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
force: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
'with-workflows': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
};
constructor(argv: string[], config: Config, plan?: any);
protected runAuthenticated(): Promise<void>;
/**
* Applying a file pulled from ANOTHER environment without `--with-workflows`
* would patch its `bpmnAwsS3Identifier` pointers into the target, where the
* S3 objects do not exist (the pointer is env-local). The ops are kept — a
* same-env restore legitimately rewrites its own pointers, and the header may
* be wrong or hand-edited — but the user is warned loudly beforehand.
*/
private warnOnCrossEnvBpmnRefs;
/**
* Push the plan: one atomic PATCH per domain (stable order), then the step and
* sidecar BPMN uploads. Returns false (and exits 2) on a recoverable API error;
* re-running converges since each domain patch is atomic.
*/
private pushChanges;
/**
* Resolve the sidecars whose target workflow did not exist before the domain
* patches (they were `add`ed by this very apply): re-fetch the workflows
* document once and match id-then-name. Still-unmatched sidecars are skipped
* with a warning — never uploaded under a nonexistent id.
*/
private resolveSidecarTargets;
/** Print the human-readable plan preview (diff + workflow uploads + sidecar warnings). */
private logPlan;
private confirm;
}
//# sourceMappingURL=apply.d.ts.map