projen 0.98.4__py3-none-any.whl → 0.98.5__py3-none-any.whl

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.

Potentially problematic release.


This version of projen might be problematic. Click here for more details.

projen/__init__.py CHANGED
@@ -607,6 +607,158 @@ from ._jsii import *
607
607
  import constructs as _constructs_77d1e7e8
608
608
 
609
609
 
610
+ @jsii.enum(jsii_type="projen.AiAgent")
611
+ class AiAgent(enum.Enum):
612
+ '''(experimental) Supported AI coding assistants and their instruction file locations.
613
+
614
+ :stability: experimental
615
+ '''
616
+
617
+ GITHUB_COPILOT = "GITHUB_COPILOT"
618
+ '''(experimental) GitHub Copilot - .github/copilot-instructions.md.
619
+
620
+ :stability: experimental
621
+ '''
622
+ CURSOR = "CURSOR"
623
+ '''(experimental) Cursor IDE - .cursor/rules/project.md.
624
+
625
+ :stability: experimental
626
+ '''
627
+ CLAUDE = "CLAUDE"
628
+ '''(experimental) Claude Code - CLAUDE.md.
629
+
630
+ :stability: experimental
631
+ '''
632
+ AMAZON_Q = "AMAZON_Q"
633
+ '''(experimental) Amazon Q - .amazonq/rules/project.md.
634
+
635
+ :stability: experimental
636
+ '''
637
+ KIRO = "KIRO"
638
+ '''(experimental) Kiro - .kiro/steering/project.md.
639
+
640
+ :stability: experimental
641
+ '''
642
+
643
+
644
+ @jsii.data_type(
645
+ jsii_type="projen.AiInstructionsOptions",
646
+ jsii_struct_bases=[],
647
+ name_mapping={
648
+ "agents": "agents",
649
+ "agent_specific_instructions": "agentSpecificInstructions",
650
+ "include_default_instructions": "includeDefaultInstructions",
651
+ "instructions": "instructions",
652
+ },
653
+ )
654
+ class AiInstructionsOptions:
655
+ def __init__(
656
+ self,
657
+ *,
658
+ agents: typing.Optional[typing.Sequence[AiAgent]] = None,
659
+ agent_specific_instructions: typing.Optional[typing.Mapping[builtins.str, typing.Sequence[builtins.str]]] = None,
660
+ include_default_instructions: typing.Optional[builtins.bool] = None,
661
+ instructions: typing.Optional[typing.Sequence[builtins.str]] = None,
662
+ ) -> None:
663
+ '''(experimental) Options for configuring AI tool instruction files.
664
+
665
+ :param agents: (experimental) Which AI agents to generate instruction files for. Default: - All agents: [AiAgent.GITHUB_COPILOT, AiAgent.CURSOR, AiAgent.CLAUDE, AiAgent.AMAZON_Q]
666
+ :param agent_specific_instructions: (experimental) Per-agent custom instructions. Allows different instructions for different AI tools. Default: - no agent specific instructions
667
+ :param include_default_instructions: (experimental) Include default instructions for projen and general best practices. Default instructions will only be included for agents provided in the ``agents`` option. If ``agents`` is not provided, default instructions will be included for all agents. Default: true
668
+ :param instructions: (experimental) General instructions applicable to all agents. Default: - no agent specific instructions
669
+
670
+ :stability: experimental
671
+ '''
672
+ if __debug__:
673
+ type_hints = typing.get_type_hints(_typecheckingstub__5bf7714efdf83cf2031e4ef3aa1d0cb9511cb921777751c76a0f501c0c56e247)
674
+ check_type(argname="argument agents", value=agents, expected_type=type_hints["agents"])
675
+ check_type(argname="argument agent_specific_instructions", value=agent_specific_instructions, expected_type=type_hints["agent_specific_instructions"])
676
+ check_type(argname="argument include_default_instructions", value=include_default_instructions, expected_type=type_hints["include_default_instructions"])
677
+ check_type(argname="argument instructions", value=instructions, expected_type=type_hints["instructions"])
678
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
679
+ if agents is not None:
680
+ self._values["agents"] = agents
681
+ if agent_specific_instructions is not None:
682
+ self._values["agent_specific_instructions"] = agent_specific_instructions
683
+ if include_default_instructions is not None:
684
+ self._values["include_default_instructions"] = include_default_instructions
685
+ if instructions is not None:
686
+ self._values["instructions"] = instructions
687
+
688
+ @builtins.property
689
+ def agents(self) -> typing.Optional[typing.List[AiAgent]]:
690
+ '''(experimental) Which AI agents to generate instruction files for.
691
+
692
+ :default: - All agents: [AiAgent.GITHUB_COPILOT, AiAgent.CURSOR, AiAgent.CLAUDE, AiAgent.AMAZON_Q]
693
+
694
+ :stability: experimental
695
+ '''
696
+ result = self._values.get("agents")
697
+ return typing.cast(typing.Optional[typing.List[AiAgent]], result)
698
+
699
+ @builtins.property
700
+ def agent_specific_instructions(
701
+ self,
702
+ ) -> typing.Optional[typing.Mapping[builtins.str, typing.List[builtins.str]]]:
703
+ '''(experimental) Per-agent custom instructions.
704
+
705
+ Allows different instructions for different AI tools.
706
+
707
+ :default: - no agent specific instructions
708
+
709
+ :stability: experimental
710
+
711
+ Example::
712
+
713
+ {
714
+ [AiAgent.GITHUB_COPILOT]: {
715
+ instructions: ["Use descriptive commit messages."]
716
+ },
717
+ [AiAgent.CURSOR]: {
718
+ instructions: ["Prefer functional patterns.", "Always add tests."]
719
+ }
720
+ }
721
+ '''
722
+ result = self._values.get("agent_specific_instructions")
723
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.List[builtins.str]]], result)
724
+
725
+ @builtins.property
726
+ def include_default_instructions(self) -> typing.Optional[builtins.bool]:
727
+ '''(experimental) Include default instructions for projen and general best practices.
728
+
729
+ Default instructions will only be included for agents provided in the ``agents`` option.
730
+ If ``agents`` is not provided, default instructions will be included for all agents.
731
+
732
+ :default: true
733
+
734
+ :stability: experimental
735
+ '''
736
+ result = self._values.get("include_default_instructions")
737
+ return typing.cast(typing.Optional[builtins.bool], result)
738
+
739
+ @builtins.property
740
+ def instructions(self) -> typing.Optional[typing.List[builtins.str]]:
741
+ '''(experimental) General instructions applicable to all agents.
742
+
743
+ :default: - no agent specific instructions
744
+
745
+ :stability: experimental
746
+ '''
747
+ result = self._values.get("instructions")
748
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
749
+
750
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
751
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
752
+
753
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
754
+ return not (rhs == self)
755
+
756
+ def __repr__(self) -> str:
757
+ return "AiInstructionsOptions(%s)" % ", ".join(
758
+ k + "=" + repr(v) for k, v in self._values.items()
759
+ )
760
+
761
+
610
762
  class Component(
611
763
  _constructs_77d1e7e8.Construct,
612
764
  metaclass=jsii.JSIIMeta,
@@ -11236,6 +11388,217 @@ class YamlFileOptions(ObjectFileOptions):
11236
11388
  )
11237
11389
 
11238
11390
 
11391
+ class AiInstructions(
11392
+ Component,
11393
+ metaclass=jsii.JSIIMeta,
11394
+ jsii_type="projen.AiInstructions",
11395
+ ):
11396
+ '''(experimental) Generates instruction files for AI coding assistants with projen-specific guidance.
11397
+
11398
+ This component creates configuration files that help AI tools like GitHub Copilot,
11399
+ Cursor IDE, Claude Code, and Amazon Q understand that the project is managed by projen
11400
+ and should follow projen conventions.
11401
+
11402
+ :stability: experimental
11403
+
11404
+ Example::
11405
+
11406
+ const project = new TypeScriptProject({
11407
+ name: "my-project",
11408
+ defaultReleaseBranch: "main",
11409
+ });
11410
+
11411
+ // Basic usage - generates files for all supported AI agents
11412
+ new AiInstructions(project);
11413
+
11414
+ // Custom usage - specify which agents and add custom instructions
11415
+ new AiInstructions(project, {
11416
+ agents: [AiAgent.GITHUB_COPILOT, AiAgent.CURSOR],
11417
+ agentSpecificInstructions: {
11418
+ [AiAgent.GITHUB_COPILOT]: ["Always use descriptive commit messages."],
11419
+ },
11420
+ });
11421
+
11422
+ // Add more instructions after instantiation
11423
+ const ai = new AiInstructions(project);
11424
+ ai.addInstructions("Use functional programming patterns.");
11425
+ ai.addInstructions("Always write comprehensive tests.");
11426
+ '''
11427
+
11428
+ def __init__(
11429
+ self,
11430
+ project: Project,
11431
+ *,
11432
+ agents: typing.Optional[typing.Sequence[AiAgent]] = None,
11433
+ agent_specific_instructions: typing.Optional[typing.Mapping[builtins.str, typing.Sequence[builtins.str]]] = None,
11434
+ include_default_instructions: typing.Optional[builtins.bool] = None,
11435
+ instructions: typing.Optional[typing.Sequence[builtins.str]] = None,
11436
+ ) -> None:
11437
+ '''
11438
+ :param project: -
11439
+ :param agents: (experimental) Which AI agents to generate instruction files for. Default: - All agents: [AiAgent.GITHUB_COPILOT, AiAgent.CURSOR, AiAgent.CLAUDE, AiAgent.AMAZON_Q]
11440
+ :param agent_specific_instructions: (experimental) Per-agent custom instructions. Allows different instructions for different AI tools. Default: - no agent specific instructions
11441
+ :param include_default_instructions: (experimental) Include default instructions for projen and general best practices. Default instructions will only be included for agents provided in the ``agents`` option. If ``agents`` is not provided, default instructions will be included for all agents. Default: true
11442
+ :param instructions: (experimental) General instructions applicable to all agents. Default: - no agent specific instructions
11443
+
11444
+ :stability: experimental
11445
+ '''
11446
+ if __debug__:
11447
+ type_hints = typing.get_type_hints(_typecheckingstub__6ade3e0209730c28511c6c65af7db0ef1d8f6d736618b1a95064af6bf4e829b8)
11448
+ check_type(argname="argument project", value=project, expected_type=type_hints["project"])
11449
+ options = AiInstructionsOptions(
11450
+ agents=agents,
11451
+ agent_specific_instructions=agent_specific_instructions,
11452
+ include_default_instructions=include_default_instructions,
11453
+ instructions=instructions,
11454
+ )
11455
+
11456
+ jsii.create(self.__class__, self, [project, options])
11457
+
11458
+ @jsii.member(jsii_name="bestPractices")
11459
+ @builtins.classmethod
11460
+ def best_practices(cls, project: Project) -> builtins.str:
11461
+ '''(experimental) Returns development best practices instructions for AI agents.
11462
+
11463
+ :param project: -
11464
+
11465
+ :stability: experimental
11466
+ '''
11467
+ if __debug__:
11468
+ type_hints = typing.get_type_hints(_typecheckingstub__9b3a19a4e1f7d40bf00205a6394247af85d2428c672a0ecb7904470daaabda2f)
11469
+ check_type(argname="argument project", value=project, expected_type=type_hints["project"])
11470
+ return typing.cast(builtins.str, jsii.sinvoke(cls, "bestPractices", [project]))
11471
+
11472
+ @jsii.member(jsii_name="projen")
11473
+ @builtins.classmethod
11474
+ def projen(cls, project: Project) -> builtins.str:
11475
+ '''(experimental) Returns projen-specific instructions for AI agents.
11476
+
11477
+ :param project: -
11478
+
11479
+ :stability: experimental
11480
+ '''
11481
+ if __debug__:
11482
+ type_hints = typing.get_type_hints(_typecheckingstub__065453e2727d00b362bd1cf1f58d194d6c355b2a9c2f575e92c43eb627f6eb89)
11483
+ check_type(argname="argument project", value=project, expected_type=type_hints["project"])
11484
+ return typing.cast(builtins.str, jsii.sinvoke(cls, "projen", [project]))
11485
+
11486
+ @jsii.member(jsii_name="addAgentSpecificInstructions")
11487
+ def add_agent_specific_instructions(
11488
+ self,
11489
+ agent: AiAgent,
11490
+ *instructions: builtins.str,
11491
+ ) -> None:
11492
+ '''(experimental) Add instructions for a specific AI agent.
11493
+
11494
+ This can also be used to add instructions for an AI agent that was previously not enabled.
11495
+
11496
+ :param agent: The AI agent to add instructions for.
11497
+ :param instructions: The instruction(s) to add.
11498
+
11499
+ :stability: experimental
11500
+
11501
+ Example::
11502
+
11503
+ aiInstructions.addAgentSpecificInstructions(AiAgent.GITHUB_COPILOT, "Use descriptive commit messages.");
11504
+ '''
11505
+ if __debug__:
11506
+ type_hints = typing.get_type_hints(_typecheckingstub__9ff14bf0a463b0f887b122f5949af2eedda259c6426a05e006686653e81b8fc8)
11507
+ check_type(argname="argument agent", value=agent, expected_type=type_hints["agent"])
11508
+ check_type(argname="argument instructions", value=instructions, expected_type=typing.Tuple[type_hints["instructions"], ...]) # pyright: ignore [reportGeneralTypeIssues]
11509
+ return typing.cast(None, jsii.invoke(self, "addAgentSpecificInstructions", [agent, *instructions]))
11510
+
11511
+ @jsii.member(jsii_name="addInstructions")
11512
+ def add_instructions(self, *instructions: builtins.str) -> None:
11513
+ '''(experimental) Adds instructions that will be included for all selected AI agents.
11514
+
11515
+ :param instructions: The instructions to add.
11516
+
11517
+ :stability: experimental
11518
+
11519
+ Example::
11520
+
11521
+ aiInstructions.addInstructions("Always use TypeScript strict mode.");
11522
+ aiInstructions.addInstructions("Prefer functional programming.", "Avoid mutations.");
11523
+ '''
11524
+ if __debug__:
11525
+ type_hints = typing.get_type_hints(_typecheckingstub__da44882109eef43fd7d698b3f301b9241d695eb97a717ffa73265862f39698ba)
11526
+ check_type(argname="argument instructions", value=instructions, expected_type=typing.Tuple[type_hints["instructions"], ...]) # pyright: ignore [reportGeneralTypeIssues]
11527
+ return typing.cast(None, jsii.invoke(self, "addInstructions", [*instructions]))
11528
+
11529
+
11530
+ class AiInstructionsFile(
11531
+ FileBase,
11532
+ metaclass=jsii.JSIIMeta,
11533
+ jsii_type="projen.AiInstructionsFile",
11534
+ ):
11535
+ '''
11536
+ :stability: experimental
11537
+ '''
11538
+
11539
+ def __init__(
11540
+ self,
11541
+ scope: _constructs_77d1e7e8.IConstruct,
11542
+ file_path: builtins.str,
11543
+ *,
11544
+ committed: typing.Optional[builtins.bool] = None,
11545
+ edit_gitignore: typing.Optional[builtins.bool] = None,
11546
+ executable: typing.Optional[builtins.bool] = None,
11547
+ marker: typing.Optional[builtins.bool] = None,
11548
+ readonly: typing.Optional[builtins.bool] = None,
11549
+ ) -> None:
11550
+ '''
11551
+ :param scope: -
11552
+ :param file_path: -
11553
+ :param committed: (experimental) Indicates whether this file should be committed to git or ignored. By default, all generated files are committed and anti-tamper is used to protect against manual modifications. Default: true
11554
+ :param edit_gitignore: (experimental) Update the project's .gitignore file. Default: true
11555
+ :param executable: (experimental) Whether the generated file should be marked as executable. Default: false
11556
+ :param marker: (experimental) Adds the projen marker to the file. Default: - marker will be included as long as the project is not ejected
11557
+ :param readonly: (experimental) Whether the generated file should be readonly. Default: true
11558
+
11559
+ :stability: experimental
11560
+ '''
11561
+ if __debug__:
11562
+ type_hints = typing.get_type_hints(_typecheckingstub__4b11da88a3895fa642ead3d82823bc49f77ad84be5d7816af5a52334434c5c79)
11563
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
11564
+ check_type(argname="argument file_path", value=file_path, expected_type=type_hints["file_path"])
11565
+ options = FileBaseOptions(
11566
+ committed=committed,
11567
+ edit_gitignore=edit_gitignore,
11568
+ executable=executable,
11569
+ marker=marker,
11570
+ readonly=readonly,
11571
+ )
11572
+
11573
+ jsii.create(self.__class__, self, [scope, file_path, options])
11574
+
11575
+ @jsii.member(jsii_name="addInstructions")
11576
+ def add_instructions(self, *instructions: builtins.str) -> None:
11577
+ '''(experimental) Adds instructions to the instruction file.
11578
+
11579
+ :param instructions: -
11580
+
11581
+ :stability: experimental
11582
+ '''
11583
+ if __debug__:
11584
+ type_hints = typing.get_type_hints(_typecheckingstub__da3f715a19bd0c18e2cc2d3bda06afae637174acbe15ef75ef39bb7c26f0ff90)
11585
+ check_type(argname="argument instructions", value=instructions, expected_type=typing.Tuple[type_hints["instructions"], ...]) # pyright: ignore [reportGeneralTypeIssues]
11586
+ return typing.cast(None, jsii.invoke(self, "addInstructions", [*instructions]))
11587
+
11588
+ @jsii.member(jsii_name="synthesizeContent")
11589
+ def _synthesize_content(self, resolver: IResolver) -> typing.Optional[builtins.str]:
11590
+ '''(experimental) Implemented by derived classes and returns the contents of the file to emit.
11591
+
11592
+ :param resolver: -
11593
+
11594
+ :stability: experimental
11595
+ '''
11596
+ if __debug__:
11597
+ type_hints = typing.get_type_hints(_typecheckingstub__af1c3edb2730dd42712c19d9f2ebd48921303c4efd980f8910326afc111d82cc)
11598
+ check_type(argname="argument resolver", value=resolver, expected_type=type_hints["resolver"])
11599
+ return typing.cast(typing.Optional[builtins.str], jsii.invoke(self, "synthesizeContent", [resolver]))
11600
+
11601
+
11239
11602
  @jsii.data_type(
11240
11603
  jsii_type="projen.Dependency",
11241
11604
  jsii_struct_bases=[DependencyCoordinates],
@@ -12575,6 +12938,10 @@ class TaskStep(TaskStepOptions):
12575
12938
 
12576
12939
 
12577
12940
  __all__ = [
12941
+ "AiAgent",
12942
+ "AiInstructions",
12943
+ "AiInstructionsFile",
12944
+ "AiInstructionsOptions",
12578
12945
  "Component",
12579
12946
  "CreateProjectOptions",
12580
12947
  "Dependencies",
@@ -12725,6 +13092,16 @@ from . import typescript
12725
13092
  from . import vscode
12726
13093
  from . import web
12727
13094
 
13095
+ def _typecheckingstub__5bf7714efdf83cf2031e4ef3aa1d0cb9511cb921777751c76a0f501c0c56e247(
13096
+ *,
13097
+ agents: typing.Optional[typing.Sequence[AiAgent]] = None,
13098
+ agent_specific_instructions: typing.Optional[typing.Mapping[builtins.str, typing.Sequence[builtins.str]]] = None,
13099
+ include_default_instructions: typing.Optional[builtins.bool] = None,
13100
+ instructions: typing.Optional[typing.Sequence[builtins.str]] = None,
13101
+ ) -> None:
13102
+ """Type checking stubs"""
13103
+ pass
13104
+
12728
13105
  def _typecheckingstub__e4ee40327ed6d04e3e377e300d915d402c50029248a86452fd19fd6372386d4b(
12729
13106
  scope: _constructs_77d1e7e8.IConstruct,
12730
13107
  id: typing.Optional[builtins.str] = None,
@@ -14406,6 +14783,67 @@ def _typecheckingstub__ca9e5a70f67f8e3db454227249c58dd5464be1446a55fcf3be780621f
14406
14783
  """Type checking stubs"""
14407
14784
  pass
14408
14785
 
14786
+ def _typecheckingstub__6ade3e0209730c28511c6c65af7db0ef1d8f6d736618b1a95064af6bf4e829b8(
14787
+ project: Project,
14788
+ *,
14789
+ agents: typing.Optional[typing.Sequence[AiAgent]] = None,
14790
+ agent_specific_instructions: typing.Optional[typing.Mapping[builtins.str, typing.Sequence[builtins.str]]] = None,
14791
+ include_default_instructions: typing.Optional[builtins.bool] = None,
14792
+ instructions: typing.Optional[typing.Sequence[builtins.str]] = None,
14793
+ ) -> None:
14794
+ """Type checking stubs"""
14795
+ pass
14796
+
14797
+ def _typecheckingstub__9b3a19a4e1f7d40bf00205a6394247af85d2428c672a0ecb7904470daaabda2f(
14798
+ project: Project,
14799
+ ) -> None:
14800
+ """Type checking stubs"""
14801
+ pass
14802
+
14803
+ def _typecheckingstub__065453e2727d00b362bd1cf1f58d194d6c355b2a9c2f575e92c43eb627f6eb89(
14804
+ project: Project,
14805
+ ) -> None:
14806
+ """Type checking stubs"""
14807
+ pass
14808
+
14809
+ def _typecheckingstub__9ff14bf0a463b0f887b122f5949af2eedda259c6426a05e006686653e81b8fc8(
14810
+ agent: AiAgent,
14811
+ *instructions: builtins.str,
14812
+ ) -> None:
14813
+ """Type checking stubs"""
14814
+ pass
14815
+
14816
+ def _typecheckingstub__da44882109eef43fd7d698b3f301b9241d695eb97a717ffa73265862f39698ba(
14817
+ *instructions: builtins.str,
14818
+ ) -> None:
14819
+ """Type checking stubs"""
14820
+ pass
14821
+
14822
+ def _typecheckingstub__4b11da88a3895fa642ead3d82823bc49f77ad84be5d7816af5a52334434c5c79(
14823
+ scope: _constructs_77d1e7e8.IConstruct,
14824
+ file_path: builtins.str,
14825
+ *,
14826
+ committed: typing.Optional[builtins.bool] = None,
14827
+ edit_gitignore: typing.Optional[builtins.bool] = None,
14828
+ executable: typing.Optional[builtins.bool] = None,
14829
+ marker: typing.Optional[builtins.bool] = None,
14830
+ readonly: typing.Optional[builtins.bool] = None,
14831
+ ) -> None:
14832
+ """Type checking stubs"""
14833
+ pass
14834
+
14835
+ def _typecheckingstub__da3f715a19bd0c18e2cc2d3bda06afae637174acbe15ef75ef39bb7c26f0ff90(
14836
+ *instructions: builtins.str,
14837
+ ) -> None:
14838
+ """Type checking stubs"""
14839
+ pass
14840
+
14841
+ def _typecheckingstub__af1c3edb2730dd42712c19d9f2ebd48921303c4efd980f8910326afc111d82cc(
14842
+ resolver: IResolver,
14843
+ ) -> None:
14844
+ """Type checking stubs"""
14845
+ pass
14846
+
14409
14847
  def _typecheckingstub__d3a39137d5e4f9c51c84e6a659a0e0d16c23ba1927ed8fe7f3f96ecd5d0110dc(
14410
14848
  *,
14411
14849
  name: builtins.str,
projen/_jsii/__init__.py CHANGED
@@ -31,7 +31,7 @@ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing
31
31
  import constructs._jsii
32
32
 
33
33
  __jsii_assembly__ = jsii.JSIIAssembly.load(
34
- "projen", "0.98.4", __name__[0:-6], "projen@0.98.4.jsii.tgz"
34
+ "projen", "0.98.5", __name__[0:-6], "projen@0.98.5.jsii.tgz"
35
35
  )
36
36
 
37
37
  __all__ = [
Binary file
@@ -718,7 +718,7 @@ class CssFormatterConfiguration:
718
718
  :param enabled: (experimental) Control the formatter for CSS (and its super languages) files.
719
719
  :param indent_style: (experimental) The indent style applied to CSS (and its super languages) files.
720
720
  :param indent_width: (experimental) The size of the indentation applied to CSS (and its super languages) files. Default to 2. Default: 2.
721
- :param line_ending: (experimental) The type of line ending applied to CSS (and its super languages) files.
721
+ :param line_ending: (experimental) The type of line ending applied to CSS (and its super languages) files. ``auto`` uses CRLF on Windows and LF on other platforms.
722
722
  :param line_width: (experimental) What's the max width of a line applied to CSS (and its super languages) files. Defaults to 80. Default: 80.
723
723
  :param quote_style: (experimental) The type of quotes used in CSS code. Defaults to double. Default: double.
724
724
 
@@ -785,6 +785,8 @@ class CssFormatterConfiguration:
785
785
  def line_ending(self) -> typing.Optional["LineEnding"]:
786
786
  '''(experimental) The type of line ending applied to CSS (and its super languages) files.
787
787
 
788
+ ``auto`` uses CRLF on Windows and LF on other platforms.
789
+
788
790
  :stability: experimental
789
791
  :schema: CssFormatterConfiguration#lineEnding
790
792
  '''
@@ -880,6 +882,7 @@ class CssLinterConfiguration:
880
882
  name_mapping={
881
883
  "allow_wrong_line_comments": "allowWrongLineComments",
882
884
  "css_modules": "cssModules",
885
+ "tailwind_directives": "tailwindDirectives",
883
886
  },
884
887
  )
885
888
  class CssParserConfiguration:
@@ -888,11 +891,13 @@ class CssParserConfiguration:
888
891
  *,
889
892
  allow_wrong_line_comments: typing.Optional[builtins.bool] = None,
890
893
  css_modules: typing.Optional[builtins.bool] = None,
894
+ tailwind_directives: typing.Optional[builtins.bool] = None,
891
895
  ) -> None:
892
896
  '''(experimental) Options that changes how the CSS parser behaves.
893
897
 
894
898
  :param allow_wrong_line_comments: (experimental) Allow comments to appear on incorrect lines in ``.css`` files.
895
899
  :param css_modules: (experimental) Enables parsing of CSS Modules specific features.
900
+ :param tailwind_directives: (experimental) Enables parsing of Tailwind CSS 4.0 directives and functions.
896
901
 
897
902
  :stability: experimental
898
903
  :schema: CssParserConfiguration
@@ -901,11 +906,14 @@ class CssParserConfiguration:
901
906
  type_hints = typing.get_type_hints(_typecheckingstub__8529582f37794a4d2a6c31671f27c3add8085e862adbf314c4f633b00295f518)
902
907
  check_type(argname="argument allow_wrong_line_comments", value=allow_wrong_line_comments, expected_type=type_hints["allow_wrong_line_comments"])
903
908
  check_type(argname="argument css_modules", value=css_modules, expected_type=type_hints["css_modules"])
909
+ check_type(argname="argument tailwind_directives", value=tailwind_directives, expected_type=type_hints["tailwind_directives"])
904
910
  self._values: typing.Dict[builtins.str, typing.Any] = {}
905
911
  if allow_wrong_line_comments is not None:
906
912
  self._values["allow_wrong_line_comments"] = allow_wrong_line_comments
907
913
  if css_modules is not None:
908
914
  self._values["css_modules"] = css_modules
915
+ if tailwind_directives is not None:
916
+ self._values["tailwind_directives"] = tailwind_directives
909
917
 
910
918
  @builtins.property
911
919
  def allow_wrong_line_comments(self) -> typing.Optional[builtins.bool]:
@@ -927,6 +935,16 @@ class CssParserConfiguration:
927
935
  result = self._values.get("css_modules")
928
936
  return typing.cast(typing.Optional[builtins.bool], result)
929
937
 
938
+ @builtins.property
939
+ def tailwind_directives(self) -> typing.Optional[builtins.bool]:
940
+ '''(experimental) Enables parsing of Tailwind CSS 4.0 directives and functions.
941
+
942
+ :stability: experimental
943
+ :schema: CssParserConfiguration#tailwindDirectives
944
+ '''
945
+ result = self._values.get("tailwind_directives")
946
+ return typing.cast(typing.Optional[builtins.bool], result)
947
+
930
948
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
931
949
  return isinstance(rhs, self.__class__) and rhs._values == self._values
932
950
 
@@ -984,8 +1002,8 @@ class FilesConfiguration:
984
1002
  ) -> None:
985
1003
  '''(experimental) The configuration of the filesystem.
986
1004
 
987
- :param experimental_scanner_ignores: (experimental) Set of file and folder names that should be unconditionally ignored by Biome's scanner. Biome maintains an internal list of default ignore entries, which is based on user feedback and which may change in any release. This setting allows overriding this internal list completely. This is considered an advanced feature that users *should* not need to tweak themselves, but they can as a last resort. This setting can only be configured in root configurations, and is ignored in nested configs. Entries must be file or folder *names*. Specific paths and globs are not supported. Examples where this may be useful: ```jsonc { "files": { "experimentalScannerIgnores": [ // You almost certainly don't want to scan your ``.git`` // folder, which is why it's already ignored by default: ".git", // But the scanner does scan ``node_modules`` by default. If // you *really* don't want this, you can ignore it like // this: "node_modules", // But it's probably better to ignore a specific dependency. // For instance, one that happens to be particularly slow to // scan: "RedisCommander.d.ts", ], } } ``` Please be aware that rules relying on the module graph or type inference information may be negatively affected if dependencies of your project aren't (fully) scanned.
988
- :param ignore_unknown: (experimental) Tells Biome to not emit diagnostics when handling files that doesn't know.
1005
+ :param experimental_scanner_ignores: (experimental) **Deprecated:** Please use *force-ignore syntax* in ``files.includes`` instead: https://biomejs.dev/reference/configuration/#filesincludes. Set of file and folder names that should be unconditionally ignored by Biome's scanner.
1006
+ :param ignore_unknown: (experimental) Tells Biome to not emit diagnostics when handling files that it doesn't know.
989
1007
  :param includes: (experimental) A list of glob patterns. Biome will handle only those files/folders that will match these patterns.
990
1008
  :param max_size: (experimental) The maximum allowed size for source code files in bytes. Files above this limit will be ignored for performance reasons. Defaults to 1 MiB Default: 1 MiB
991
1009
 
@@ -1012,23 +1030,9 @@ class FilesConfiguration:
1012
1030
  def experimental_scanner_ignores(
1013
1031
  self,
1014
1032
  ) -> typing.Optional[typing.List[builtins.str]]:
1015
- '''(experimental) Set of file and folder names that should be unconditionally ignored by Biome's scanner.
1016
-
1017
- Biome maintains an internal list of default ignore entries, which is based on user feedback and which may change in any release. This setting allows overriding this internal list completely.
1018
-
1019
- This is considered an advanced feature that users *should* not need to tweak themselves, but they can as a last resort. This setting can only be configured in root configurations, and is ignored in nested configs.
1033
+ '''(experimental) **Deprecated:** Please use *force-ignore syntax* in ``files.includes`` instead: https://biomejs.dev/reference/configuration/#filesincludes.
1020
1034
 
1021
- Entries must be file or folder *names*. Specific paths and globs are not supported.
1022
-
1023
- Examples where this may be useful:
1024
-
1025
- ```jsonc { "files": { "experimentalScannerIgnores": [ // You almost certainly don't want to scan your ``.git`` // folder, which is why it's already ignored by default: ".git",
1026
-
1027
- // But the scanner does scan ``node_modules`` by default. If // you *really* don't want this, you can ignore it like // this: "node_modules",
1028
-
1029
- // But it's probably better to ignore a specific dependency. // For instance, one that happens to be particularly slow to // scan: "RedisCommander.d.ts", ], } } ```
1030
-
1031
- Please be aware that rules relying on the module graph or type inference information may be negatively affected if dependencies of your project aren't (fully) scanned.
1035
+ Set of file and folder names that should be unconditionally ignored by Biome's scanner.
1032
1036
 
1033
1037
  :stability: experimental
1034
1038
  :schema: FilesConfiguration#experimentalScannerIgnores
@@ -1038,7 +1042,7 @@ class FilesConfiguration:
1038
1042
 
1039
1043
  @builtins.property
1040
1044
  def ignore_unknown(self) -> typing.Optional[builtins.bool]:
1041
- '''(experimental) Tells Biome to not emit diagnostics when handling files that doesn't know.
1045
+ '''(experimental) Tells Biome to not emit diagnostics when handling files that it doesn't know.
1042
1046
 
1043
1047
  :stability: experimental
1044
1048
  :schema: FilesConfiguration#ignoreUnknown
@@ -1126,7 +1130,7 @@ class FormatterConfiguration:
1126
1130
  :param bracket_spacing: (experimental) Whether to insert spaces around brackets in object literals. Defaults to true. Default: true.
1127
1131
  :param enabled:
1128
1132
  :param expand: (experimental) Whether to expand arrays and objects on multiple lines. When set to ``auto``, object literals are formatted on multiple lines if the first property has a newline, and array literals are formatted on a single line if it fits in the line. When set to ``always``, these literals are formatted on multiple lines, regardless of length of the list. When set to ``never``, these literals are formatted on a single line if it fits in the line. When formatting ``package.json``, Biome will use ``always`` unless configured otherwise. Defaults to "auto". Default: auto".
1129
- :param format_with_errors: (experimental) Stores whether formatting should be allowed to proceed if a given file has syntax errors.
1133
+ :param format_with_errors: (experimental) Whether formatting should be allowed to proceed if a given file has syntax errors.
1130
1134
  :param includes: (experimental) A list of glob patterns. The formatter will include files/folders that will match these patterns.
1131
1135
  :param indent_style: (experimental) The indent style.
1132
1136
  :param indent_width: (experimental) The size of the indentation, 2 by default.
@@ -1240,7 +1244,7 @@ class FormatterConfiguration:
1240
1244
 
1241
1245
  @builtins.property
1242
1246
  def format_with_errors(self) -> typing.Optional[builtins.bool]:
1243
- '''(experimental) Stores whether formatting should be allowed to proceed if a given file has syntax errors.
1247
+ '''(experimental) Whether formatting should be allowed to proceed if a given file has syntax errors.
1244
1248
 
1245
1249
  :stability: experimental
1246
1250
  :schema: FormatterConfiguration#formatWithErrors
@@ -1484,7 +1488,7 @@ class GraphqlFormatterConfiguration:
1484
1488
  :param enabled: (experimental) Control the formatter for GraphQL files.
1485
1489
  :param indent_style: (experimental) The indent style applied to GraphQL files.
1486
1490
  :param indent_width: (experimental) The size of the indentation applied to GraphQL files. Default to 2. Default: 2.
1487
- :param line_ending: (experimental) The type of line ending applied to GraphQL files.
1491
+ :param line_ending: (experimental) The type of line ending applied to GraphQL files. ``auto`` uses CRLF on Windows and LF on other platforms.
1488
1492
  :param line_width: (experimental) What's the max width of a line applied to GraphQL files. Defaults to 80. Default: 80.
1489
1493
  :param quote_style: (experimental) The type of quotes used in GraphQL code. Defaults to double. Default: double.
1490
1494
 
@@ -1568,6 +1572,8 @@ class GraphqlFormatterConfiguration:
1568
1572
  def line_ending(self) -> typing.Optional["LineEnding"]:
1569
1573
  '''(experimental) The type of line ending applied to GraphQL files.
1570
1574
 
1575
+ ``auto`` uses CRLF on Windows and LF on other platforms.
1576
+
1571
1577
  :stability: experimental
1572
1578
  :schema: GraphqlFormatterConfiguration#lineEnding
1573
1579
  '''
@@ -1944,40 +1950,127 @@ class GritLinterConfiguration:
1944
1950
  )
1945
1951
 
1946
1952
 
1953
+ @jsii.data_type(
1954
+ jsii_type="projen.javascript.biome_config.HtmlAssistConfiguration",
1955
+ jsii_struct_bases=[],
1956
+ name_mapping={"enabled": "enabled"},
1957
+ )
1958
+ class HtmlAssistConfiguration:
1959
+ def __init__(self, *, enabled: typing.Optional[builtins.bool] = None) -> None:
1960
+ '''(experimental) Options that changes how the HTML assist behaves.
1961
+
1962
+ :param enabled: (experimental) Control the assist for HTML (and its super languages) files.
1963
+
1964
+ :stability: experimental
1965
+ :schema: HtmlAssistConfiguration
1966
+ '''
1967
+ if __debug__:
1968
+ type_hints = typing.get_type_hints(_typecheckingstub__4f12d37d14edd5b34740aa842931963f60cd55f179c839350e2c9eb8d0ce519a)
1969
+ check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
1970
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
1971
+ if enabled is not None:
1972
+ self._values["enabled"] = enabled
1973
+
1974
+ @builtins.property
1975
+ def enabled(self) -> typing.Optional[builtins.bool]:
1976
+ '''(experimental) Control the assist for HTML (and its super languages) files.
1977
+
1978
+ :stability: experimental
1979
+ :schema: HtmlAssistConfiguration#enabled
1980
+ '''
1981
+ result = self._values.get("enabled")
1982
+ return typing.cast(typing.Optional[builtins.bool], result)
1983
+
1984
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1985
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1986
+
1987
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1988
+ return not (rhs == self)
1989
+
1990
+ def __repr__(self) -> str:
1991
+ return "HtmlAssistConfiguration(%s)" % ", ".join(
1992
+ k + "=" + repr(v) for k, v in self._values.items()
1993
+ )
1994
+
1995
+
1947
1996
  @jsii.data_type(
1948
1997
  jsii_type="projen.javascript.biome_config.HtmlConfiguration",
1949
1998
  jsii_struct_bases=[],
1950
- name_mapping={"formatter": "formatter", "parser": "parser"},
1999
+ name_mapping={
2000
+ "assist": "assist",
2001
+ "experimental_full_support_enabled": "experimentalFullSupportEnabled",
2002
+ "formatter": "formatter",
2003
+ "linter": "linter",
2004
+ "parser": "parser",
2005
+ },
1951
2006
  )
1952
2007
  class HtmlConfiguration:
1953
2008
  def __init__(
1954
2009
  self,
1955
2010
  *,
2011
+ assist: typing.Optional[typing.Union[HtmlAssistConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
2012
+ experimental_full_support_enabled: typing.Optional[builtins.bool] = None,
1956
2013
  formatter: typing.Optional[typing.Union["HtmlFormatterConfiguration", typing.Dict[builtins.str, typing.Any]]] = None,
2014
+ linter: typing.Optional[typing.Union["HtmlLinterConfiguration", typing.Dict[builtins.str, typing.Any]]] = None,
1957
2015
  parser: typing.Optional[typing.Union["HtmlParserConfiguration", typing.Dict[builtins.str, typing.Any]]] = None,
1958
2016
  ) -> None:
1959
2017
  '''(experimental) Options applied to HTML files.
1960
2018
 
2019
+ :param assist:
2020
+ :param experimental_full_support_enabled: (experimental) Enables full support for HTML, Vue, Svelte and Astro files.
1961
2021
  :param formatter: (experimental) HTML formatter options.
2022
+ :param linter: (experimental) HTML linter options.
1962
2023
  :param parser: (experimental) HTML parsing options.
1963
2024
 
1964
2025
  :stability: experimental
1965
2026
  :schema: HtmlConfiguration
1966
2027
  '''
2028
+ if isinstance(assist, dict):
2029
+ assist = HtmlAssistConfiguration(**assist)
1967
2030
  if isinstance(formatter, dict):
1968
2031
  formatter = HtmlFormatterConfiguration(**formatter)
2032
+ if isinstance(linter, dict):
2033
+ linter = HtmlLinterConfiguration(**linter)
1969
2034
  if isinstance(parser, dict):
1970
2035
  parser = HtmlParserConfiguration(**parser)
1971
2036
  if __debug__:
1972
2037
  type_hints = typing.get_type_hints(_typecheckingstub__048266f3b4e4769e6485570d4954197f51204fc6e607e2ffe5267f80089b5ded)
2038
+ check_type(argname="argument assist", value=assist, expected_type=type_hints["assist"])
2039
+ check_type(argname="argument experimental_full_support_enabled", value=experimental_full_support_enabled, expected_type=type_hints["experimental_full_support_enabled"])
1973
2040
  check_type(argname="argument formatter", value=formatter, expected_type=type_hints["formatter"])
2041
+ check_type(argname="argument linter", value=linter, expected_type=type_hints["linter"])
1974
2042
  check_type(argname="argument parser", value=parser, expected_type=type_hints["parser"])
1975
2043
  self._values: typing.Dict[builtins.str, typing.Any] = {}
2044
+ if assist is not None:
2045
+ self._values["assist"] = assist
2046
+ if experimental_full_support_enabled is not None:
2047
+ self._values["experimental_full_support_enabled"] = experimental_full_support_enabled
1976
2048
  if formatter is not None:
1977
2049
  self._values["formatter"] = formatter
2050
+ if linter is not None:
2051
+ self._values["linter"] = linter
1978
2052
  if parser is not None:
1979
2053
  self._values["parser"] = parser
1980
2054
 
2055
+ @builtins.property
2056
+ def assist(self) -> typing.Optional[HtmlAssistConfiguration]:
2057
+ '''
2058
+ :stability: experimental
2059
+ :schema: HtmlConfiguration#assist
2060
+ '''
2061
+ result = self._values.get("assist")
2062
+ return typing.cast(typing.Optional[HtmlAssistConfiguration], result)
2063
+
2064
+ @builtins.property
2065
+ def experimental_full_support_enabled(self) -> typing.Optional[builtins.bool]:
2066
+ '''(experimental) Enables full support for HTML, Vue, Svelte and Astro files.
2067
+
2068
+ :stability: experimental
2069
+ :schema: HtmlConfiguration#experimentalFullSupportEnabled
2070
+ '''
2071
+ result = self._values.get("experimental_full_support_enabled")
2072
+ return typing.cast(typing.Optional[builtins.bool], result)
2073
+
1981
2074
  @builtins.property
1982
2075
  def formatter(self) -> typing.Optional["HtmlFormatterConfiguration"]:
1983
2076
  '''(experimental) HTML formatter options.
@@ -1988,6 +2081,16 @@ class HtmlConfiguration:
1988
2081
  result = self._values.get("formatter")
1989
2082
  return typing.cast(typing.Optional["HtmlFormatterConfiguration"], result)
1990
2083
 
2084
+ @builtins.property
2085
+ def linter(self) -> typing.Optional["HtmlLinterConfiguration"]:
2086
+ '''(experimental) HTML linter options.
2087
+
2088
+ :stability: experimental
2089
+ :schema: HtmlConfiguration#linter
2090
+ '''
2091
+ result = self._values.get("linter")
2092
+ return typing.cast(typing.Optional["HtmlLinterConfiguration"], result)
2093
+
1991
2094
  @builtins.property
1992
2095
  def parser(self) -> typing.Optional["HtmlParserConfiguration"]:
1993
2096
  '''(experimental) HTML parsing options.
@@ -2049,7 +2152,7 @@ class HtmlFormatterConfiguration:
2049
2152
  :param indent_script_and_style: (experimental) Whether to indent the ``<script>`` and ``<style>`` tags for HTML (and its super languages). Defaults to false. Default: false.
2050
2153
  :param indent_style: (experimental) The indent style applied to HTML (and its super languages) files.
2051
2154
  :param indent_width: (experimental) The size of the indentation applied to HTML (and its super languages) files. Default to 2. Default: 2.
2052
- :param line_ending: (experimental) The type of line ending applied to HTML (and its super languages) files.
2155
+ :param line_ending: (experimental) The type of line ending applied to HTML (and its super languages) files. ``auto`` uses CRLF on Windows and LF on other platforms.
2053
2156
  :param line_width: (experimental) What's the max width of a line applied to HTML (and its super languages) files. Defaults to 80. Default: 80.
2054
2157
  :param self_close_void_elements: (experimental) Whether void elements should be self-closed. Defaults to never. Default: never.
2055
2158
  :param whitespace_sensitivity: (experimental) Whether to account for whitespace sensitivity when formatting HTML (and its super languages). Defaults to "css". Default: css".
@@ -2171,6 +2274,8 @@ class HtmlFormatterConfiguration:
2171
2274
  def line_ending(self) -> typing.Optional["LineEnding"]:
2172
2275
  '''(experimental) The type of line ending applied to HTML (and its super languages) files.
2173
2276
 
2277
+ ``auto`` uses CRLF on Windows and LF on other platforms.
2278
+
2174
2279
  :stability: experimental
2175
2280
  :schema: HtmlFormatterConfiguration#lineEnding
2176
2281
  '''
@@ -2231,6 +2336,49 @@ class HtmlFormatterConfiguration:
2231
2336
  )
2232
2337
 
2233
2338
 
2339
+ @jsii.data_type(
2340
+ jsii_type="projen.javascript.biome_config.HtmlLinterConfiguration",
2341
+ jsii_struct_bases=[],
2342
+ name_mapping={"enabled": "enabled"},
2343
+ )
2344
+ class HtmlLinterConfiguration:
2345
+ def __init__(self, *, enabled: typing.Optional[builtins.bool] = None) -> None:
2346
+ '''(experimental) Options that changes how the HTML linter behaves.
2347
+
2348
+ :param enabled: (experimental) Control the linter for HTML (and its super languages) files.
2349
+
2350
+ :stability: experimental
2351
+ :schema: HtmlLinterConfiguration
2352
+ '''
2353
+ if __debug__:
2354
+ type_hints = typing.get_type_hints(_typecheckingstub__271da6fb8e26ef7e9c2ec0ea9fc3487d2975824399c15a87994edbcfcdd37131)
2355
+ check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
2356
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
2357
+ if enabled is not None:
2358
+ self._values["enabled"] = enabled
2359
+
2360
+ @builtins.property
2361
+ def enabled(self) -> typing.Optional[builtins.bool]:
2362
+ '''(experimental) Control the linter for HTML (and its super languages) files.
2363
+
2364
+ :stability: experimental
2365
+ :schema: HtmlLinterConfiguration#enabled
2366
+ '''
2367
+ result = self._values.get("enabled")
2368
+ return typing.cast(typing.Optional[builtins.bool], result)
2369
+
2370
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2371
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2372
+
2373
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2374
+ return not (rhs == self)
2375
+
2376
+ def __repr__(self) -> str:
2377
+ return "HtmlLinterConfiguration(%s)" % ", ".join(
2378
+ k + "=" + repr(v) for k, v in self._values.items()
2379
+ )
2380
+
2381
+
2234
2382
  @jsii.data_type(
2235
2383
  jsii_type="projen.javascript.biome_config.HtmlParserConfiguration",
2236
2384
  jsii_struct_bases=[],
@@ -2529,7 +2677,7 @@ class JsFormatterConfiguration:
2529
2677
  :param indent_style: (experimental) The indent style applied to JavaScript (and its super languages) files.
2530
2678
  :param indent_width: (experimental) The size of the indentation applied to JavaScript (and its super languages) files. Default to 2. Default: 2.
2531
2679
  :param jsx_quote_style: (experimental) The type of quotes used in JSX. Defaults to double. Default: double.
2532
- :param line_ending: (experimental) The type of line ending applied to JavaScript (and its super languages) files.
2680
+ :param line_ending: (experimental) The type of line ending applied to JavaScript (and its super languages) files. ``auto`` uses CRLF on Windows and LF on other platforms.
2533
2681
  :param line_width: (experimental) What's the max width of a line applied to JavaScript (and its super languages) files. Defaults to 80. Default: 80.
2534
2682
  :param operator_linebreak: (experimental) When breaking binary expressions into multiple lines, whether to break them before or after the binary operator. Defaults to "after". Default: after".
2535
2683
  :param quote_properties: (experimental) When properties in objects are quoted. Defaults to asNeeded. Default: asNeeded.
@@ -2714,6 +2862,8 @@ class JsFormatterConfiguration:
2714
2862
  def line_ending(self) -> typing.Optional["LineEnding"]:
2715
2863
  '''(experimental) The type of line ending applied to JavaScript (and its super languages) files.
2716
2864
 
2865
+ ``auto`` uses CRLF on Windows and LF on other platforms.
2866
+
2717
2867
  :stability: experimental
2718
2868
  :schema: JsFormatterConfiguration#lineEnding
2719
2869
  '''
@@ -2953,7 +3103,7 @@ class JsParserConfiguration:
2953
3103
  )
2954
3104
  class JsonAssistConfiguration:
2955
3105
  def __init__(self, *, enabled: typing.Optional[builtins.bool] = None) -> None:
2956
- '''(experimental) Linter options specific to the JSON linter.
3106
+ '''(experimental) Assist options specific to the JSON linter.
2957
3107
 
2958
3108
  :param enabled: (experimental) Control the assist for JSON (and its super languages) files.
2959
3109
 
@@ -3127,7 +3277,7 @@ class JsonFormatterConfiguration:
3127
3277
  :param expand: (experimental) Whether to expand arrays and objects on multiple lines. When set to ``auto``, object literals are formatted on multiple lines if the first property has a newline, and array literals are formatted on a single line if it fits in the line. When set to ``always``, these literals are formatted on multiple lines, regardless of length of the list. When set to ``never``, these literals are formatted on a single line if it fits in the line. When formatting ``package.json``, Biome will use ``always`` unless configured otherwise. Defaults to "auto". Default: auto".
3128
3278
  :param indent_style: (experimental) The indent style applied to JSON (and its super languages) files.
3129
3279
  :param indent_width: (experimental) The size of the indentation applied to JSON (and its super languages) files. Default to 2. Default: 2.
3130
- :param line_ending: (experimental) The type of line ending applied to JSON (and its super languages) files.
3280
+ :param line_ending: (experimental) The type of line ending applied to JSON (and its super languages) files. ``auto`` uses CRLF on Windows and LF on other platforms.
3131
3281
  :param line_width: (experimental) What's the max width of a line applied to JSON (and its super languages) files. Defaults to 80. Default: 80.
3132
3282
  :param trailing_commas: (experimental) Print trailing commas wherever possible in multi-line comma-separated syntactic structures. Defaults to "none". Default: none".
3133
3283
 
@@ -3228,6 +3378,8 @@ class JsonFormatterConfiguration:
3228
3378
  def line_ending(self) -> typing.Optional["LineEnding"]:
3229
3379
  '''(experimental) The type of line ending applied to JSON (and its super languages) files.
3230
3380
 
3381
+ ``auto`` uses CRLF on Windows and LF on other platforms.
3382
+
3231
3383
  :stability: experimental
3232
3384
  :schema: JsonFormatterConfiguration#lineEnding
3233
3385
  '''
@@ -3424,6 +3576,11 @@ class LineEnding(enum.Enum):
3424
3576
 
3425
3577
  :stability: experimental
3426
3578
  '''
3579
+ AUTO = "AUTO"
3580
+ '''(experimental) auto.
3581
+
3582
+ :stability: experimental
3583
+ '''
3427
3584
 
3428
3585
 
3429
3586
  @jsii.data_type(
@@ -4822,8 +4979,10 @@ __all__ = [
4822
4979
  "GritConfiguration",
4823
4980
  "GritFormatterConfiguration",
4824
4981
  "GritLinterConfiguration",
4982
+ "HtmlAssistConfiguration",
4825
4983
  "HtmlConfiguration",
4826
4984
  "HtmlFormatterConfiguration",
4985
+ "HtmlLinterConfiguration",
4827
4986
  "HtmlParserConfiguration",
4828
4987
  "IndentStyle",
4829
4988
  "JsAssistConfiguration",
@@ -4941,6 +5100,7 @@ def _typecheckingstub__8529582f37794a4d2a6c31671f27c3add8085e862adbf314c4f633b00
4941
5100
  *,
4942
5101
  allow_wrong_line_comments: typing.Optional[builtins.bool] = None,
4943
5102
  css_modules: typing.Optional[builtins.bool] = None,
5103
+ tailwind_directives: typing.Optional[builtins.bool] = None,
4944
5104
  ) -> None:
4945
5105
  """Type checking stubs"""
4946
5106
  pass
@@ -5043,9 +5203,19 @@ def _typecheckingstub__4f328d623f0baa93f52695005ba45f28881c95ae610fde354116a44bc
5043
5203
  """Type checking stubs"""
5044
5204
  pass
5045
5205
 
5206
+ def _typecheckingstub__4f12d37d14edd5b34740aa842931963f60cd55f179c839350e2c9eb8d0ce519a(
5207
+ *,
5208
+ enabled: typing.Optional[builtins.bool] = None,
5209
+ ) -> None:
5210
+ """Type checking stubs"""
5211
+ pass
5212
+
5046
5213
  def _typecheckingstub__048266f3b4e4769e6485570d4954197f51204fc6e607e2ffe5267f80089b5ded(
5047
5214
  *,
5215
+ assist: typing.Optional[typing.Union[HtmlAssistConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
5216
+ experimental_full_support_enabled: typing.Optional[builtins.bool] = None,
5048
5217
  formatter: typing.Optional[typing.Union[HtmlFormatterConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
5218
+ linter: typing.Optional[typing.Union[HtmlLinterConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
5049
5219
  parser: typing.Optional[typing.Union[HtmlParserConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
5050
5220
  ) -> None:
5051
5221
  """Type checking stubs"""
@@ -5067,6 +5237,13 @@ def _typecheckingstub__bcbf243ebdc0f288a10a4e6b68dc5a1ff88f4d8abe5566f57f212bf10
5067
5237
  """Type checking stubs"""
5068
5238
  pass
5069
5239
 
5240
+ def _typecheckingstub__271da6fb8e26ef7e9c2ec0ea9fc3487d2975824399c15a87994edbcfcdd37131(
5241
+ *,
5242
+ enabled: typing.Optional[builtins.bool] = None,
5243
+ ) -> None:
5244
+ """Type checking stubs"""
5245
+ pass
5246
+
5070
5247
  def _typecheckingstub__1b3cfca5c3ad8f608b86ade05d476530f16da0ba23410a7613236950da38ff37(
5071
5248
  *,
5072
5249
  interpolation: typing.Optional[builtins.bool] = None,
@@ -8,7 +8,7 @@ if "JSII_RUNTIME_PACKAGE_CACHE" not in os.environ:
8
8
  os.environ["JSII_RUNTIME_PACKAGE_CACHE"] = "disabled"
9
9
 
10
10
  __jsii_assembly__ = jsii.JSIIAssembly.load(
11
- "projen", "0.98.4", "projen", "projen@0.98.4.jsii.tgz"
11
+ "projen", "0.98.5", "projen", "projen@0.98.5.jsii.tgz"
12
12
  )
13
13
 
14
14
  exit_code = __jsii_assembly__.invokeBinScript("projen", "projen", sys.argv[1:])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: projen
3
- Version: 0.98.4
3
+ Version: 0.98.5
4
4
  Summary: CDK for software projects
5
5
  Home-page: https://github.com/projen/projen.git
6
6
  Author: Amazon Web Services
@@ -1,7 +1,7 @@
1
- projen/__init__.py,sha256=-5-G0j3kUS_DA0HGLbfGUmpDPPAjHhbe3HeAfpAP_qE,684443
1
+ projen/__init__.py,sha256=7d5Q78dZSFdo0MPHwc0EZ5n1ykM78LqYgGBlXvFueuU,703429
2
2
  projen/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
3
- projen/_jsii/__init__.py,sha256=7RqZ2e_L8ydEiG1nExzo0iM7cRS_YYvV6feSaF-RV1Q,1404
4
- projen/_jsii/projen@0.98.4.jsii.tgz,sha256=9JVVOG5vrJhizUuxRN8ukmd1N2bEvKoTdr9MCO6ATkI,2954636
3
+ projen/_jsii/__init__.py,sha256=UqlkGI_eDEEy9AvO2c9xQlEZx2_jvmALLeVXFhPbaQI,1404
4
+ projen/_jsii/projen@0.98.5.jsii.tgz,sha256=FextoSpjhfwhmAztcp5QT7GPefUJZ5PUE3ilLr6v8pQ,2967311
5
5
  projen/awscdk/__init__.py,sha256=Y9PBCcy4WP1EFw243U6jnGHx3O4SIozJ50BJ1WBVldU,1157607
6
6
  projen/build/__init__.py,sha256=RZllpmDOwZ2McAIifVv2zr9oIrTEHhq-vXJEjzX2VkE,54258
7
7
  projen/cdk/__init__.py,sha256=-rKj5LNE96XVbKLV1OwO_jxjAeem6DAHjJLDdslmx9U,557823
@@ -13,15 +13,15 @@ projen/github/workflows/__init__.py,sha256=FvVHeCQ1lGQaMoXNsAQSOomS80eM5KO53JzEM
13
13
  projen/gitlab/__init__.py,sha256=NjkGjzgCYY3AZ1KnOTuwC8gfDfNjzYpeLICSvrU9EHs,208000
14
14
  projen/java/__init__.py,sha256=Y8yfXiL4RNXtxIc0LB7O3K0CKyw9TkQKkVXgJ57A9Fw,195299
15
15
  projen/javascript/__init__.py,sha256=E7UMkHJDO1u_-UlOkKz7f_Zx_I3HxpxgtO8JAunfVMk,902445
16
- projen/javascript/biome_config/__init__.py,sha256=_y9HJNQPgAYipQqK5UCNeS26bFvWS0nN3fWp6wTD9mo,224176
16
+ projen/javascript/biome_config/__init__.py,sha256=cphNQ0EnQLrjXvQ-4b1s3yhJbkFCmpfuHupamcVARsI,230525
17
17
  projen/python/__init__.py,sha256=0VlKC2Qb-wiIW-Gi76uHJ-Uqb18c3GlIOtPsSmqe7EI,220713
18
18
  projen/release/__init__.py,sha256=-kYImxRw-uQRzzYwwxIrzUKcymPI4SPR2ui56VIBWow,339135
19
19
  projen/typescript/__init__.py,sha256=feogxGz8d-OTBl9O2PWJOkC5jkItBW8FLSoDp8Q2hpY,533562
20
20
  projen/vscode/__init__.py,sha256=gDvpsybrGDRr6b5owXoQ6-fS9sJlKiGr-jH6y8D985k,70199
21
21
  projen/web/__init__.py,sha256=fK7vIMzaHNYTpnrNo9piYjzp_HuEbYIzxXc_lgbLSSU,866566
22
- projen-0.98.4.data/scripts/projen,sha256=rvVKdDNZ0N6m4XBQ0l5oyn3MbsMj8cK4X6rktOxiGOo,356
23
- projen-0.98.4.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
24
- projen-0.98.4.dist-info/METADATA,sha256=YYf-Ed8iI-fxKqRO_XqY2Ese9mF8K_l4MDTf5ZLsLZw,79609
25
- projen-0.98.4.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
26
- projen-0.98.4.dist-info/top_level.txt,sha256=Ul8VGUArFqejE5BMSked3l6NMBO6gjQEWywhM5gw1zw,7
27
- projen-0.98.4.dist-info/RECORD,,
22
+ projen-0.98.5.data/scripts/projen,sha256=jFxHdniojvL-BvSzxCg3BNfgSQ8RlNt1xZ98ZCk8RCg,356
23
+ projen-0.98.5.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
24
+ projen-0.98.5.dist-info/METADATA,sha256=S3oTDhBsiIwl2obf6JVoyQn_M2DtZVZ2R62FqY1DEJc,79609
25
+ projen-0.98.5.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
26
+ projen-0.98.5.dist-info/top_level.txt,sha256=Ul8VGUArFqejE5BMSked3l6NMBO6gjQEWywhM5gw1zw,7
27
+ projen-0.98.5.dist-info/RECORD,,
Binary file