@codedrifters/configulator 0.0.315 → 0.0.316

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.js CHANGED
@@ -286,6 +286,7 @@ __export(index_exports, {
286
286
  TIER_AWARE_BUNDLE_NAMES: () => TIER_AWARE_BUNDLE_NAMES,
287
287
  TestRunner: () => TestRunner,
288
288
  TsDocCoverageKind: () => TsDocCoverageKind,
289
+ TsdocConfig: () => TsdocConfig,
289
290
  TurboRepo: () => TurboRepo,
290
291
  TurboRepoTask: () => TurboRepoTask,
291
292
  TypeScriptConfig: () => TypeScriptConfig,
@@ -27927,7 +27928,6 @@ var _TurboRepo = class _TurboRepo extends import_lib2.Component {
27927
27928
  ui: this.isRootProject ? this.ui : void 0,
27928
27929
  dangerouslyDisablePackageManagerCheck: this.isRootProject ? this.dangerouslyDisablePackageManagerCheck : void 0,
27929
27930
  cacheDir: this.isRootProject ? this.cacheDir : void 0,
27930
- daemon: this.isRootProject ? this.daemon : void 0,
27931
27931
  envMode: this.isRootProject ? this.envMode : void 0,
27932
27932
  /**
27933
27933
  * All tasks
@@ -33170,7 +33170,7 @@ export default preview;
33170
33170
  }
33171
33171
 
33172
33172
  // src/projects/astro-project.ts
33173
- var import_projen21 = require("projen");
33173
+ var import_projen23 = require("projen");
33174
33174
  var import_ts_deepmerge3 = require("ts-deepmerge");
33175
33175
 
33176
33176
  // src/projects/monorepo-layout.ts
@@ -33318,7 +33318,7 @@ function resolveReactViteSiteProjectOutdir(packageName) {
33318
33318
  }
33319
33319
 
33320
33320
  // src/projects/typescript-project.ts
33321
- var import_projen20 = require("projen");
33321
+ var import_projen22 = require("projen");
33322
33322
  var import_javascript4 = require("projen/lib/javascript");
33323
33323
  var import_release = require("projen/lib/release");
33324
33324
  var import_ts_deepmerge2 = require("ts-deepmerge");
@@ -34307,12 +34307,98 @@ var MonorepoProject = class extends import_typescript3.TypeScriptAppProject {
34307
34307
  }
34308
34308
  };
34309
34309
 
34310
+ // src/typescript/tsdoc-config.ts
34311
+ var import_projen20 = require("projen");
34312
+ var STANDARD_MODIFIER_TAGS = [
34313
+ "@default",
34314
+ "@defaultValue",
34315
+ "@experimental",
34316
+ "@internal"
34317
+ ];
34318
+ var ALWAYS_ON_SCOPES = ["@codedrifters"];
34319
+ var TsdocConfig = class _TsdocConfig extends import_projen20.Component {
34320
+ /**
34321
+ * Derive a workspace scope from a scoped package name (`@scope/name`).
34322
+ * Returns `undefined` when the name is unscoped.
34323
+ *
34324
+ * @internal
34325
+ */
34326
+ static scopeFromPackageName(packageName) {
34327
+ if (!packageName || !packageName.startsWith("@")) {
34328
+ return void 0;
34329
+ }
34330
+ const slash = packageName.indexOf("/");
34331
+ if (slash <= 1) {
34332
+ return void 0;
34333
+ }
34334
+ return packageName.slice(0, slash);
34335
+ }
34336
+ constructor(project, options = {}) {
34337
+ super(project);
34338
+ const scopeFromName = _TsdocConfig.scopeFromPackageName(
34339
+ project.package.packageName
34340
+ );
34341
+ const scopeSet = /* @__PURE__ */ new Set([
34342
+ ...ALWAYS_ON_SCOPES,
34343
+ ...scopeFromName ? [scopeFromName] : [],
34344
+ ...options.workspaceScopes ?? []
34345
+ ]);
34346
+ const tagSet = /* @__PURE__ */ new Set([
34347
+ ...STANDARD_MODIFIER_TAGS,
34348
+ ...Array.from(scopeSet),
34349
+ ...options.additionalModifierTags ?? []
34350
+ ]);
34351
+ const tagDefinitions = Array.from(tagSet).sort((a, b) => a.localeCompare(b)).map((tagName) => ({
34352
+ tagName,
34353
+ syntaxKind: "modifier",
34354
+ allowMultiple: true
34355
+ }));
34356
+ new import_projen20.JsonFile(project, "tsdoc.json", {
34357
+ obj: {
34358
+ $schema: "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
34359
+ tagDefinitions
34360
+ }
34361
+ });
34362
+ project.addPackageIgnore("tsdoc.json");
34363
+ }
34364
+ };
34365
+
34366
+ // src/typescript/typescript-config.ts
34367
+ var import_node_path2 = require("path");
34368
+ var import_projen21 = require("projen");
34369
+ var import_path2 = require("projen/lib/util/path");
34370
+ var TypeScriptConfig = class extends import_projen21.Component {
34371
+ constructor(project) {
34372
+ super(project);
34373
+ let tsPaths = {};
34374
+ const workspaceDeps = project.deps.all.filter(
34375
+ (d) => d.version === "workspace:*"
34376
+ );
34377
+ workspaceDeps.forEach((dep) => {
34378
+ const subproject = project.root.subprojects.find((p) => p.package.packageName === dep.name);
34379
+ if (!subproject) {
34380
+ throw new Error(`Could not find subproject ${dep.name} in monorepo.`);
34381
+ }
34382
+ tsPaths = {
34383
+ ...tsPaths,
34384
+ [dep.name]: [
34385
+ (0, import_path2.ensureRelativePathStartsWithDot)(
34386
+ (0, import_node_path2.relative)(project.outdir, subproject.outdir)
34387
+ )
34388
+ ]
34389
+ };
34390
+ });
34391
+ project.tsconfig?.file.addOverride("compilerOptions.paths", tsPaths);
34392
+ project.tsconfigDev?.file.addOverride("compilerOptions.paths", tsPaths);
34393
+ }
34394
+ };
34395
+
34310
34396
  // src/projects/typescript-project.ts
34311
34397
  var TestRunner = {
34312
34398
  JEST: "jest",
34313
34399
  VITEST: "vitest"
34314
34400
  };
34315
- var TypeScriptProject = class extends import_projen20.typescript.TypeScriptProject {
34401
+ var TypeScriptProject = class extends import_projen22.typescript.TypeScriptProject {
34316
34402
  constructor(userOptions) {
34317
34403
  if (!(userOptions.parent instanceof MonorepoProject)) {
34318
34404
  throw new Error(
@@ -34442,34 +34528,46 @@ var TypeScriptProject = class extends import_projen20.typescript.TypeScriptProje
34442
34528
  this.eslint?.addRules({
34443
34529
  "tsdoc/syntax": "warn"
34444
34530
  });
34445
- this.eslint?.addOverride({
34446
- files: ["src/**/*.ts"],
34447
- excludedFiles: ["**/*.test.*", "**/*.spec.*", "**/*.generated.ts"],
34448
- rules: {
34449
- "jsdoc/require-jsdoc": [
34450
- "warn",
34451
- {
34452
- publicOnly: true,
34453
- require: {
34454
- FunctionDeclaration: true,
34455
- ClassDeclaration: true
34456
- },
34457
- contexts: [
34458
- "ExportNamedDeclaration > FunctionDeclaration",
34459
- "ExportNamedDeclaration > ClassDeclaration",
34460
- "ExportNamedDeclaration > VariableDeclaration",
34461
- "ExportNamedDeclaration > TSInterfaceDeclaration",
34462
- "ExportNamedDeclaration > TSTypeAliasDeclaration",
34463
- "ExportNamedDeclaration > TSEnumDeclaration"
34464
- ],
34465
- checkConstructors: false,
34466
- checkGetters: false,
34467
- checkSetters: false,
34468
- enableFixer: false
34469
- }
34470
- ]
34471
- }
34472
- });
34531
+ const requireJsdoc = options.requireJsdoc ?? "off";
34532
+ if (requireJsdoc !== "off") {
34533
+ const publicOnly = requireJsdoc === "public";
34534
+ this.eslint?.addOverride({
34535
+ files: ["src/**/*.ts"],
34536
+ excludedFiles: ["**/*.test.*", "**/*.spec.*", "**/*.generated.ts"],
34537
+ rules: {
34538
+ "jsdoc/require-jsdoc": [
34539
+ "warn",
34540
+ {
34541
+ publicOnly,
34542
+ require: {
34543
+ FunctionDeclaration: true,
34544
+ ClassDeclaration: true
34545
+ },
34546
+ ...publicOnly ? {
34547
+ contexts: [
34548
+ "ExportNamedDeclaration > FunctionDeclaration",
34549
+ "ExportNamedDeclaration > ClassDeclaration",
34550
+ "ExportNamedDeclaration > VariableDeclaration",
34551
+ "ExportNamedDeclaration > TSInterfaceDeclaration",
34552
+ "ExportNamedDeclaration > TSTypeAliasDeclaration",
34553
+ "ExportNamedDeclaration > TSEnumDeclaration"
34554
+ ]
34555
+ } : {},
34556
+ checkConstructors: false,
34557
+ checkGetters: false,
34558
+ checkSetters: false,
34559
+ enableFixer: false
34560
+ }
34561
+ ]
34562
+ }
34563
+ });
34564
+ }
34565
+ if (options.tsdocConfig !== false) {
34566
+ new TsdocConfig(
34567
+ this,
34568
+ typeof options.tsdocConfig === "object" ? options.tsdocConfig : {}
34569
+ );
34570
+ }
34473
34571
  if (options.apiExtractor !== false) {
34474
34572
  new ApiExtractor(
34475
34573
  this,
@@ -34622,10 +34720,10 @@ var AstroProject = class extends TypeScriptProject {
34622
34720
  adapter: options.adapter
34623
34721
  });
34624
34722
  if (options.sampleCode === true) {
34625
- new import_projen21.SampleFile(this, "src/pages/index.astro", {
34723
+ new import_projen23.SampleFile(this, "src/pages/index.astro", {
34626
34724
  contents: DEFAULT_INDEX_ASTRO
34627
34725
  });
34628
- new import_projen21.SampleFile(this, "public/favicon.svg", {
34726
+ new import_projen23.SampleFile(this, "public/favicon.svg", {
34629
34727
  contents: DEFAULT_FAVICON_SVG
34630
34728
  });
34631
34729
  }
@@ -34650,19 +34748,19 @@ var DEFAULT_FAVICON_SVG = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0
34650
34748
  `;
34651
34749
 
34652
34750
  // src/projects/aws-cdk-project.ts
34653
- var import_projen24 = require("projen");
34751
+ var import_projen26 = require("projen");
34654
34752
  var import_javascript5 = require("projen/lib/javascript");
34655
34753
  var import_release2 = require("projen/lib/release");
34656
34754
  var import_ts_deepmerge4 = require("ts-deepmerge");
34657
34755
 
34658
34756
  // src/workflows/aws-deploy-workflow.ts
34659
34757
  var import_utils11 = __toESM(require_lib());
34660
- var import_projen22 = require("projen");
34758
+ var import_projen24 = require("projen");
34661
34759
  var import_build = require("projen/lib/build");
34662
34760
  var import_github5 = require("projen/lib/github");
34663
34761
  var import_workflows_model5 = require("projen/lib/github/workflows-model");
34664
34762
  var PROD_DEPLOY_NAME = "prod-deploy";
34665
- var AwsDeployWorkflow = class _AwsDeployWorkflow extends import_projen22.Component {
34763
+ var AwsDeployWorkflow = class _AwsDeployWorkflow extends import_projen24.Component {
34666
34764
  constructor(project, options = {}) {
34667
34765
  super(project);
34668
34766
  this.project = project;
@@ -34926,7 +35024,7 @@ var AwsDeployWorkflow = class _AwsDeployWorkflow extends import_projen22.Compone
34926
35024
  };
34927
35025
 
34928
35026
  // src/workflows/aws-teardown-workflow.ts
34929
- var import_projen23 = require("projen");
35027
+ var import_projen25 = require("projen");
34930
35028
  var import_github6 = require("projen/lib/github");
34931
35029
  var import_workflows_model6 = require("projen/lib/github/workflows-model");
34932
35030
  var DEFAULT_TEARDOWN_BRANCH_PATTERNS = [
@@ -34948,7 +35046,7 @@ var resolveBranchPatterns = (explicit, targets) => {
34948
35046
  }
34949
35047
  return [...DEFAULT_TEARDOWN_BRANCH_PATTERNS];
34950
35048
  };
34951
- var AwsTeardownWorkflow = class extends import_projen23.Component {
35049
+ var AwsTeardownWorkflow = class extends import_projen25.Component {
34952
35050
  constructor(rootProject, options) {
34953
35051
  super(rootProject);
34954
35052
  this.rootProject = rootProject;
@@ -35130,7 +35228,7 @@ var AwsTeardownWorkflow = class extends import_projen23.Component {
35130
35228
  };
35131
35229
 
35132
35230
  // src/projects/aws-cdk-project.ts
35133
- var AwsCdkProject = class extends import_projen24.awscdk.AwsCdkTypeScriptApp {
35231
+ var AwsCdkProject = class extends import_projen26.awscdk.AwsCdkTypeScriptApp {
35134
35232
  constructor(userOptions) {
35135
35233
  if (!(userOptions.parent instanceof MonorepoProject)) {
35136
35234
  throw new Error(
@@ -35327,7 +35425,7 @@ var AwsCdkProject = class extends import_projen24.awscdk.AwsCdkTypeScriptApp {
35327
35425
  };
35328
35426
 
35329
35427
  // src/projects/react-vite-site-project.ts
35330
- var import_projen25 = require("projen");
35428
+ var import_projen27 = require("projen");
35331
35429
  var import_ts_deepmerge5 = require("ts-deepmerge");
35332
35430
  var ReactViteSiteProject = class extends TypeScriptProject {
35333
35431
  constructor(userOptions) {
@@ -35366,7 +35464,7 @@ var ReactViteSiteProject = class extends TypeScriptProject {
35366
35464
  };
35367
35465
  super(options);
35368
35466
  this.package.addField("type", "module");
35369
- new import_projen25.TextFile(this, ".nvmrc", { lines: ["v24.11.0"] });
35467
+ new import_projen27.TextFile(this, ".nvmrc", { lines: ["v24.11.0"] });
35370
35468
  this.tsconfig?.file.addOverride("compilerOptions.target", "ES2020");
35371
35469
  this.tsconfig?.file.addOverride("compilerOptions.lib", [
35372
35470
  "ES2020",
@@ -35416,7 +35514,7 @@ var ReactViteSiteProject = class extends TypeScriptProject {
35416
35514
  "build",
35417
35515
  ".turbo"
35418
35516
  ]);
35419
- new import_projen25.SampleFile(this, "vite.config.ts", {
35517
+ new import_projen27.SampleFile(this, "vite.config.ts", {
35420
35518
  contents: `import { defineConfig } from 'vite';
35421
35519
  import react from '@vitejs/plugin-react';
35422
35520
  import tailwindcss from '@tailwindcss/vite';
@@ -35428,7 +35526,7 @@ export default defineConfig({
35428
35526
  });
35429
35527
  `
35430
35528
  });
35431
- new import_projen25.SampleFile(this, "src/vite-env.d.ts", {
35529
+ new import_projen27.SampleFile(this, "src/vite-env.d.ts", {
35432
35530
  contents: `/// <reference types="vite/client" />
35433
35531
 
35434
35532
  interface ImportMetaEnv {
@@ -35443,7 +35541,7 @@ interface ImportMeta {
35443
35541
  });
35444
35542
  if (options.testRunner !== TestRunner.JEST) {
35445
35543
  this.tryRemoveFile("vitest.config.ts");
35446
- new import_projen25.SampleFile(this, "vitest.config.ts", {
35544
+ new import_projen27.SampleFile(this, "vitest.config.ts", {
35447
35545
  contents: `import { defineConfig, mergeConfig } from 'vitest/config';
35448
35546
  import react from '@vitejs/plugin-react';
35449
35547
  import viteConfig from './vite.config';
@@ -35587,7 +35685,7 @@ export default mergeConfig(
35587
35685
  }
35588
35686
  if (userOptions.sampleCode === true) {
35589
35687
  const siteName = options.name;
35590
- new import_projen25.SampleFile(this, "index.html", {
35688
+ new import_projen27.SampleFile(this, "index.html", {
35591
35689
  contents: `<!doctype html>
35592
35690
  <html>
35593
35691
  <head>
@@ -35602,7 +35700,7 @@ export default mergeConfig(
35602
35700
  </html>
35603
35701
  `
35604
35702
  });
35605
- new import_projen25.SampleFile(this, "src/routes.tsx", {
35703
+ new import_projen27.SampleFile(this, "src/routes.tsx", {
35606
35704
  contents: `import { createBrowserRouter } from 'react-router-dom';
35607
35705
  import App from './App';
35608
35706
 
@@ -35611,7 +35709,7 @@ export const router = createBrowserRouter([
35611
35709
  ]);
35612
35710
  `
35613
35711
  });
35614
- new import_projen25.SampleFile(this, "src/main.tsx", {
35712
+ new import_projen27.SampleFile(this, "src/main.tsx", {
35615
35713
  contents: `import React from 'react';
35616
35714
  import ReactDOM from 'react-dom/client';
35617
35715
  import { RouterProvider } from 'react-router-dom';
@@ -35625,7 +35723,7 @@ ReactDOM.createRoot(document.getElementById('root')!).render(
35625
35723
  );
35626
35724
  `
35627
35725
  });
35628
- new import_projen25.SampleFile(this, "src/App.tsx", {
35726
+ new import_projen27.SampleFile(this, "src/App.tsx", {
35629
35727
  contents: `export default function App() {
35630
35728
  return (
35631
35729
  <main className="p-4">
@@ -35635,11 +35733,11 @@ ReactDOM.createRoot(document.getElementById('root')!).render(
35635
35733
  }
35636
35734
  `
35637
35735
  });
35638
- new import_projen25.SampleFile(this, "src/index.css", {
35736
+ new import_projen27.SampleFile(this, "src/index.css", {
35639
35737
  contents: `@import "tailwindcss";
35640
35738
  `
35641
35739
  });
35642
- new import_projen25.SampleFile(this, "src/setupTests.ts", {
35740
+ new import_projen27.SampleFile(this, "src/setupTests.ts", {
35643
35741
  contents: `import '@testing-library/jest-dom';
35644
35742
  `
35645
35743
  });
@@ -35648,7 +35746,7 @@ ReactDOM.createRoot(document.getElementById('root')!).render(
35648
35746
  };
35649
35747
 
35650
35748
  // src/projects/starlight-project.ts
35651
- var import_projen26 = require("projen");
35749
+ var import_projen28 = require("projen");
35652
35750
  var STARLIGHT_ROLE = {
35653
35751
  DOCS: "docs",
35654
35752
  SITE: "site"
@@ -35690,10 +35788,10 @@ var StarlightProject = class extends AstroProject {
35690
35788
  turbo.compileTask.inputs.push("src/content/**");
35691
35789
  }
35692
35790
  if (userOptions.sampleContent === true) {
35693
- new import_projen26.SampleFile(this, "src/content/docs/index.mdx", {
35791
+ new import_projen28.SampleFile(this, "src/content/docs/index.mdx", {
35694
35792
  contents: DEFAULT_INDEX_MDX
35695
35793
  });
35696
- new import_projen26.SampleFile(this, "src/content.config.ts", {
35794
+ new import_projen28.SampleFile(this, "src/content.config.ts", {
35697
35795
  contents: DEFAULT_CONTENT_CONFIG_TS
35698
35796
  });
35699
35797
  }
@@ -35765,36 +35863,6 @@ export const collections = {
35765
35863
  docs: defineCollection({ loader: docsLoader(), schema: docsSchema() }),
35766
35864
  };
35767
35865
  `;
35768
-
35769
- // src/typescript/typescript-config.ts
35770
- var import_node_path2 = require("path");
35771
- var import_projen27 = require("projen");
35772
- var import_path2 = require("projen/lib/util/path");
35773
- var TypeScriptConfig = class extends import_projen27.Component {
35774
- constructor(project) {
35775
- super(project);
35776
- let tsPaths = {};
35777
- const workspaceDeps = project.deps.all.filter(
35778
- (d) => d.version === "workspace:*"
35779
- );
35780
- workspaceDeps.forEach((dep) => {
35781
- const subproject = project.root.subprojects.find((p) => p.package.packageName === dep.name);
35782
- if (!subproject) {
35783
- throw new Error(`Could not find subproject ${dep.name} in monorepo.`);
35784
- }
35785
- tsPaths = {
35786
- ...tsPaths,
35787
- [dep.name]: [
35788
- (0, import_path2.ensureRelativePathStartsWithDot)(
35789
- (0, import_node_path2.relative)(project.outdir, subproject.outdir)
35790
- )
35791
- ]
35792
- };
35793
- });
35794
- project.tsconfig?.file.addOverride("compilerOptions.paths", tsPaths);
35795
- project.tsconfigDev?.file.addOverride("compilerOptions.paths", tsPaths);
35796
- }
35797
- };
35798
35866
  // Annotate the CommonJS export names for ESM import in node:
35799
35867
  0 && (module.exports = {
35800
35868
  AGENT_MODEL,
@@ -35908,6 +35976,7 @@ var TypeScriptConfig = class extends import_projen27.Component {
35908
35976
  TIER_AWARE_BUNDLE_NAMES,
35909
35977
  TestRunner,
35910
35978
  TsDocCoverageKind,
35979
+ TsdocConfig,
35911
35980
  TurboRepo,
35912
35981
  TurboRepoTask,
35913
35982
  TypeScriptConfig,