@codedrifters/configulator 0.0.310 → 0.0.311

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.
package/lib/index.d.mts CHANGED
@@ -8695,6 +8695,95 @@ interface PnpmWorkspaceOptions {
8695
8695
  [dependencyName: string]: string;
8696
8696
  };
8697
8697
  };
8698
+ /**
8699
+ * Whether pnpm prompts before removing a sub-project's `node_modules`
8700
+ * directory during install. Set to `false` to skip the interactive prompt
8701
+ * so headless / non-TTY consumers (Claude Code agents, CI scripts,
8702
+ * scheduled tasks) don't abort with
8703
+ * `ERR_PNPM_ABORTED_REMOVE_MODULES_DIR_NO_TTY` mid-synth.
8704
+ *
8705
+ * Introduced in pnpm 11.0.
8706
+ *
8707
+ * @default undefined (key omitted; pnpm uses its built-in default)
8708
+ *
8709
+ * @see https://pnpm.io/settings#confirmmodulespurge
8710
+ */
8711
+ readonly confirmModulesPurge?: boolean;
8712
+ /**
8713
+ * Whether pnpm fails the install when a dependency's build script has not
8714
+ * been explicitly approved via `allowBuilds`. Set to `false` so unreviewed
8715
+ * build-script entries don't fail mid-synth in CI when configulator is
8716
+ * regenerating `allowBuilds` placeholders.
8717
+ *
8718
+ * Introduced in pnpm 10.3 (default `true` in pnpm 11).
8719
+ *
8720
+ * @default undefined (key omitted; pnpm uses its built-in default)
8721
+ *
8722
+ * @see https://pnpm.io/settings#strictdepbuilds
8723
+ */
8724
+ readonly strictDepBuilds?: boolean;
8725
+ /**
8726
+ * Whether `pnpm run` / `pnpm exec` verifies the lockfile matches
8727
+ * `node_modules` before executing the requested script. Set to `"install"`
8728
+ * (or `false`) so non-TTY consumers don't hang on the `"prompt"` default.
8729
+ *
8730
+ * Introduced in pnpm 10.x.
8731
+ *
8732
+ * @default undefined (key omitted; pnpm uses its built-in default of "prompt")
8733
+ *
8734
+ * @see https://pnpm.io/settings#verifydepsbeforerun
8735
+ */
8736
+ readonly verifyDepsBeforeRun?: "install" | "warn" | "error" | "prompt" | false;
8737
+ /**
8738
+ * How catalog entries are enforced when a sub-project's `package.json`
8739
+ * specifies a dependency that exists in a catalog. `"manual"` keeps the
8740
+ * existing opt-in `catalog:` protocol behavior, `"prefer"` substitutes
8741
+ * catalog versions automatically, and `"strict"` rejects any version
8742
+ * that diverges from the catalog.
8743
+ *
8744
+ * Introduced in pnpm 10.12.1.
8745
+ *
8746
+ * @default undefined (key omitted; pnpm uses its built-in default of "manual")
8747
+ *
8748
+ * @see https://pnpm.io/settings#catalogmode
8749
+ */
8750
+ readonly catalogMode?: "manual" | "prefer" | "strict";
8751
+ /**
8752
+ * Whether pnpm removes unused catalog entries from `pnpm-workspace.yaml`
8753
+ * during install. Helps keep the catalog honest when sub-projects stop
8754
+ * referencing a catalog entry.
8755
+ *
8756
+ * Introduced in pnpm 10.15.
8757
+ *
8758
+ * @default undefined (key omitted; pnpm uses its built-in default)
8759
+ *
8760
+ * @see https://pnpm.io/settings#cleanupunusedcatalogs
8761
+ */
8762
+ readonly cleanupUnusedCatalogs?: boolean;
8763
+ /**
8764
+ * Whether `minimumReleaseAge` resolution fails when no published version
8765
+ * satisfies the age constraint. `true` fails the install; `false` falls
8766
+ * back to an older version that does satisfy the age constraint.
8767
+ *
8768
+ * Introduced in pnpm 11.0.
8769
+ *
8770
+ * @default undefined (key omitted; pnpm uses its built-in default)
8771
+ *
8772
+ * @see https://pnpm.io/settings#minimumreleaseagestrict
8773
+ */
8774
+ readonly minimumReleaseAgeStrict?: boolean;
8775
+ /**
8776
+ * Whether `minimumReleaseAge` resolution skips the age check for packages
8777
+ * whose registry response lacks timestamp metadata. Default is `true`
8778
+ * (skip the check rather than fail), which mirrors pnpm's behavior.
8779
+ *
8780
+ * Introduced in pnpm 11.0.
8781
+ *
8782
+ * @default undefined (key omitted; pnpm uses its built-in default of true)
8783
+ *
8784
+ * @see https://pnpm.io/settings#minimumreleaseageignoremissingtime
8785
+ */
8786
+ readonly minimumReleaseAgeIgnoreMissingTime?: boolean;
8698
8787
  }
8699
8788
  declare class PnpmWorkspace extends Component {
8700
8789
  /**
@@ -8813,6 +8902,54 @@ declare class PnpmWorkspace extends Component {
8813
8902
  [dependencyName: string]: string;
8814
8903
  };
8815
8904
  };
8905
+ /**
8906
+ * Skip the interactive `node_modules` purge prompt so headless consumers
8907
+ * don't abort mid-synth. Introduced in pnpm 11.0.
8908
+ *
8909
+ * @see https://pnpm.io/settings#confirmmodulespurge
8910
+ */
8911
+ confirmModulesPurge?: boolean;
8912
+ /**
8913
+ * Fail (`true`) or warn (`false`) when a dependency's build script has
8914
+ * not been explicitly approved via `allowBuilds`. Introduced in pnpm 10.3.
8915
+ *
8916
+ * @see https://pnpm.io/settings#strictdepbuilds
8917
+ */
8918
+ strictDepBuilds?: boolean;
8919
+ /**
8920
+ * Behavior of `pnpm run` / `pnpm exec` when the lockfile drifts from
8921
+ * `node_modules`. Use `"install"` (or `false`) for non-TTY callers.
8922
+ *
8923
+ * @see https://pnpm.io/settings#verifydepsbeforerun
8924
+ */
8925
+ verifyDepsBeforeRun?: "install" | "warn" | "error" | "prompt" | false;
8926
+ /**
8927
+ * Catalog enforcement mode. Introduced in pnpm 10.12.1.
8928
+ *
8929
+ * @see https://pnpm.io/settings#catalogmode
8930
+ */
8931
+ catalogMode?: "manual" | "prefer" | "strict";
8932
+ /**
8933
+ * Whether unused catalog entries are pruned on install.
8934
+ * Introduced in pnpm 10.15.
8935
+ *
8936
+ * @see https://pnpm.io/settings#cleanupunusedcatalogs
8937
+ */
8938
+ cleanupUnusedCatalogs?: boolean;
8939
+ /**
8940
+ * Whether `minimumReleaseAge` resolution fails when no version satisfies
8941
+ * the age constraint. Introduced in pnpm 11.0.
8942
+ *
8943
+ * @see https://pnpm.io/settings#minimumreleaseagestrict
8944
+ */
8945
+ minimumReleaseAgeStrict?: boolean;
8946
+ /**
8947
+ * Whether `minimumReleaseAge` skips the age check for registries lacking
8948
+ * timestamp metadata. Introduced in pnpm 11.0.
8949
+ *
8950
+ * @see https://pnpm.io/settings#minimumreleaseageignoremissingtime
8951
+ */
8952
+ minimumReleaseAgeIgnoreMissingTime?: boolean;
8816
8953
  constructor(project: Project$1, options?: PnpmWorkspaceOptions);
8817
8954
  }
8818
8955
  /**
package/lib/index.d.ts CHANGED
@@ -8744,6 +8744,95 @@ interface PnpmWorkspaceOptions {
8744
8744
  [dependencyName: string]: string;
8745
8745
  };
8746
8746
  };
8747
+ /**
8748
+ * Whether pnpm prompts before removing a sub-project's `node_modules`
8749
+ * directory during install. Set to `false` to skip the interactive prompt
8750
+ * so headless / non-TTY consumers (Claude Code agents, CI scripts,
8751
+ * scheduled tasks) don't abort with
8752
+ * `ERR_PNPM_ABORTED_REMOVE_MODULES_DIR_NO_TTY` mid-synth.
8753
+ *
8754
+ * Introduced in pnpm 11.0.
8755
+ *
8756
+ * @default undefined (key omitted; pnpm uses its built-in default)
8757
+ *
8758
+ * @see https://pnpm.io/settings#confirmmodulespurge
8759
+ */
8760
+ readonly confirmModulesPurge?: boolean;
8761
+ /**
8762
+ * Whether pnpm fails the install when a dependency's build script has not
8763
+ * been explicitly approved via `allowBuilds`. Set to `false` so unreviewed
8764
+ * build-script entries don't fail mid-synth in CI when configulator is
8765
+ * regenerating `allowBuilds` placeholders.
8766
+ *
8767
+ * Introduced in pnpm 10.3 (default `true` in pnpm 11).
8768
+ *
8769
+ * @default undefined (key omitted; pnpm uses its built-in default)
8770
+ *
8771
+ * @see https://pnpm.io/settings#strictdepbuilds
8772
+ */
8773
+ readonly strictDepBuilds?: boolean;
8774
+ /**
8775
+ * Whether `pnpm run` / `pnpm exec` verifies the lockfile matches
8776
+ * `node_modules` before executing the requested script. Set to `"install"`
8777
+ * (or `false`) so non-TTY consumers don't hang on the `"prompt"` default.
8778
+ *
8779
+ * Introduced in pnpm 10.x.
8780
+ *
8781
+ * @default undefined (key omitted; pnpm uses its built-in default of "prompt")
8782
+ *
8783
+ * @see https://pnpm.io/settings#verifydepsbeforerun
8784
+ */
8785
+ readonly verifyDepsBeforeRun?: "install" | "warn" | "error" | "prompt" | false;
8786
+ /**
8787
+ * How catalog entries are enforced when a sub-project's `package.json`
8788
+ * specifies a dependency that exists in a catalog. `"manual"` keeps the
8789
+ * existing opt-in `catalog:` protocol behavior, `"prefer"` substitutes
8790
+ * catalog versions automatically, and `"strict"` rejects any version
8791
+ * that diverges from the catalog.
8792
+ *
8793
+ * Introduced in pnpm 10.12.1.
8794
+ *
8795
+ * @default undefined (key omitted; pnpm uses its built-in default of "manual")
8796
+ *
8797
+ * @see https://pnpm.io/settings#catalogmode
8798
+ */
8799
+ readonly catalogMode?: "manual" | "prefer" | "strict";
8800
+ /**
8801
+ * Whether pnpm removes unused catalog entries from `pnpm-workspace.yaml`
8802
+ * during install. Helps keep the catalog honest when sub-projects stop
8803
+ * referencing a catalog entry.
8804
+ *
8805
+ * Introduced in pnpm 10.15.
8806
+ *
8807
+ * @default undefined (key omitted; pnpm uses its built-in default)
8808
+ *
8809
+ * @see https://pnpm.io/settings#cleanupunusedcatalogs
8810
+ */
8811
+ readonly cleanupUnusedCatalogs?: boolean;
8812
+ /**
8813
+ * Whether `minimumReleaseAge` resolution fails when no published version
8814
+ * satisfies the age constraint. `true` fails the install; `false` falls
8815
+ * back to an older version that does satisfy the age constraint.
8816
+ *
8817
+ * Introduced in pnpm 11.0.
8818
+ *
8819
+ * @default undefined (key omitted; pnpm uses its built-in default)
8820
+ *
8821
+ * @see https://pnpm.io/settings#minimumreleaseagestrict
8822
+ */
8823
+ readonly minimumReleaseAgeStrict?: boolean;
8824
+ /**
8825
+ * Whether `minimumReleaseAge` resolution skips the age check for packages
8826
+ * whose registry response lacks timestamp metadata. Default is `true`
8827
+ * (skip the check rather than fail), which mirrors pnpm's behavior.
8828
+ *
8829
+ * Introduced in pnpm 11.0.
8830
+ *
8831
+ * @default undefined (key omitted; pnpm uses its built-in default of true)
8832
+ *
8833
+ * @see https://pnpm.io/settings#minimumreleaseageignoremissingtime
8834
+ */
8835
+ readonly minimumReleaseAgeIgnoreMissingTime?: boolean;
8747
8836
  }
8748
8837
  declare class PnpmWorkspace extends Component {
8749
8838
  /**
@@ -8862,6 +8951,54 @@ declare class PnpmWorkspace extends Component {
8862
8951
  [dependencyName: string]: string;
8863
8952
  };
8864
8953
  };
8954
+ /**
8955
+ * Skip the interactive `node_modules` purge prompt so headless consumers
8956
+ * don't abort mid-synth. Introduced in pnpm 11.0.
8957
+ *
8958
+ * @see https://pnpm.io/settings#confirmmodulespurge
8959
+ */
8960
+ confirmModulesPurge?: boolean;
8961
+ /**
8962
+ * Fail (`true`) or warn (`false`) when a dependency's build script has
8963
+ * not been explicitly approved via `allowBuilds`. Introduced in pnpm 10.3.
8964
+ *
8965
+ * @see https://pnpm.io/settings#strictdepbuilds
8966
+ */
8967
+ strictDepBuilds?: boolean;
8968
+ /**
8969
+ * Behavior of `pnpm run` / `pnpm exec` when the lockfile drifts from
8970
+ * `node_modules`. Use `"install"` (or `false`) for non-TTY callers.
8971
+ *
8972
+ * @see https://pnpm.io/settings#verifydepsbeforerun
8973
+ */
8974
+ verifyDepsBeforeRun?: "install" | "warn" | "error" | "prompt" | false;
8975
+ /**
8976
+ * Catalog enforcement mode. Introduced in pnpm 10.12.1.
8977
+ *
8978
+ * @see https://pnpm.io/settings#catalogmode
8979
+ */
8980
+ catalogMode?: "manual" | "prefer" | "strict";
8981
+ /**
8982
+ * Whether unused catalog entries are pruned on install.
8983
+ * Introduced in pnpm 10.15.
8984
+ *
8985
+ * @see https://pnpm.io/settings#cleanupunusedcatalogs
8986
+ */
8987
+ cleanupUnusedCatalogs?: boolean;
8988
+ /**
8989
+ * Whether `minimumReleaseAge` resolution fails when no version satisfies
8990
+ * the age constraint. Introduced in pnpm 11.0.
8991
+ *
8992
+ * @see https://pnpm.io/settings#minimumreleaseagestrict
8993
+ */
8994
+ minimumReleaseAgeStrict?: boolean;
8995
+ /**
8996
+ * Whether `minimumReleaseAge` skips the age check for registries lacking
8997
+ * timestamp metadata. Introduced in pnpm 11.0.
8998
+ *
8999
+ * @see https://pnpm.io/settings#minimumreleaseageignoremissingtime
9000
+ */
9001
+ minimumReleaseAgeIgnoreMissingTime?: boolean;
8865
9002
  constructor(project: Project, options?: PnpmWorkspaceOptions);
8866
9003
  }
8867
9004
  /**
package/lib/index.js CHANGED
@@ -16934,6 +16934,13 @@ var PnpmWorkspace = class _PnpmWorkspace extends import_projen.Component {
16934
16934
  this.subprojects = options.subprojects ?? [];
16935
16935
  this.defaultCatalog = options.defaultCatalog;
16936
16936
  this.namedCatalogs = options.namedCatalogs;
16937
+ this.confirmModulesPurge = options.confirmModulesPurge;
16938
+ this.strictDepBuilds = options.strictDepBuilds;
16939
+ this.verifyDepsBeforeRun = options.verifyDepsBeforeRun;
16940
+ this.catalogMode = options.catalogMode;
16941
+ this.cleanupUnusedCatalogs = options.cleanupUnusedCatalogs;
16942
+ this.minimumReleaseAgeStrict = options.minimumReleaseAgeStrict;
16943
+ this.minimumReleaseAgeIgnoreMissingTime = options.minimumReleaseAgeIgnoreMissingTime;
16937
16944
  project.addPackageIgnore(this.fileName);
16938
16945
  new import_projen.YamlFile(this.project, this.fileName, {
16939
16946
  obj: () => {
@@ -16990,6 +16997,27 @@ var PnpmWorkspace = class _PnpmWorkspace extends import_projen.Component {
16990
16997
  if (this.namedCatalogs && Object.keys(this.namedCatalogs).length > 0) {
16991
16998
  pnpmConfig.namedCatalogs = this.namedCatalogs;
16992
16999
  }
17000
+ if (this.confirmModulesPurge !== void 0) {
17001
+ pnpmConfig.confirmModulesPurge = this.confirmModulesPurge;
17002
+ }
17003
+ if (this.strictDepBuilds !== void 0) {
17004
+ pnpmConfig.strictDepBuilds = this.strictDepBuilds;
17005
+ }
17006
+ if (this.verifyDepsBeforeRun !== void 0) {
17007
+ pnpmConfig.verifyDepsBeforeRun = this.verifyDepsBeforeRun;
17008
+ }
17009
+ if (this.catalogMode !== void 0) {
17010
+ pnpmConfig.catalogMode = this.catalogMode;
17011
+ }
17012
+ if (this.cleanupUnusedCatalogs !== void 0) {
17013
+ pnpmConfig.cleanupUnusedCatalogs = this.cleanupUnusedCatalogs;
17014
+ }
17015
+ if (this.minimumReleaseAgeStrict !== void 0) {
17016
+ pnpmConfig.minimumReleaseAgeStrict = this.minimumReleaseAgeStrict;
17017
+ }
17018
+ if (this.minimumReleaseAgeIgnoreMissingTime !== void 0) {
17019
+ pnpmConfig.minimumReleaseAgeIgnoreMissingTime = this.minimumReleaseAgeIgnoreMissingTime;
17020
+ }
16993
17021
  return {
16994
17022
  ...packages.length > 0 ? { packages } : {},
16995
17023
  ...pnpmConfig ? { ...pnpmConfig } : {}