@zimbra/eslint-config 0.0.1
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/.editorconfig +15 -0
- package/.github/CODEOWNERS +2 -0
- package/.github/dependabot.yml +11 -0
- package/LICENSE +167 -0
- package/README.md +205 -0
- package/RULES.md +387 -0
- package/eslint.config.mjs +5 -0
- package/package.json +45 -0
- package/scripts/intl/lint-custom-sort.cjs +8 -0
- package/src/configs/automation-config.js +16 -0
- package/src/configs/core-js-config.js +79 -0
- package/src/configs/custom-config.js +19 -0
- package/src/configs/locale-json-config.js +20 -0
- package/src/configs/ts-eslint-config.js +33 -0
- package/src/index.js +6 -0
- package/src/rules/automation.js +16 -0
- package/src/rules/custom-rules/custom-rules.js +3 -0
- package/src/rules/custom-rules/no-direct-memoize.js +47 -0
- package/src/rules/i18n.js +200 -0
- package/src/rules/import.js +8 -0
- package/src/rules/parser.js +11 -0
- package/src/rules/prettier.js +11 -0
- package/src/rules/react-hooks.js +5 -0
- package/src/rules/react.js +24 -0
- package/src/rules/style.js +12 -0
- package/src/rules/typescript.js +7 -0
- package/src/typescript.js +3 -0
package/.editorconfig
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
root = true
|
|
2
|
+
|
|
3
|
+
[*]
|
|
4
|
+
indent_style = tab
|
|
5
|
+
end_of_line = lf
|
|
6
|
+
charset = utf-8
|
|
7
|
+
trim_trailing_whitespace = true
|
|
8
|
+
insert_final_newline = true
|
|
9
|
+
|
|
10
|
+
[{*.json,.*rc,*.yml,*.conf,*.pl}]
|
|
11
|
+
indent_style = space
|
|
12
|
+
indent_size = 2
|
|
13
|
+
|
|
14
|
+
[*.md,*.graphql]
|
|
15
|
+
trim_trailing_whitespace = false
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# To get started with Dependabot version updates, you'll need to specify which
|
|
2
|
+
# package ecosystems to update and where the package manifests are located.
|
|
3
|
+
# Please see the documentation for all configuration options:
|
|
4
|
+
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
|
|
5
|
+
|
|
6
|
+
version: 2
|
|
7
|
+
updates:
|
|
8
|
+
- package-ecosystem: "npm" # See documentation for possible values
|
|
9
|
+
directory: "/" # Location of package manifests
|
|
10
|
+
schedule:
|
|
11
|
+
interval: "weekly"
|
package/LICENSE
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
IMPORTANT-READ CAREFULLY: THE TERMS OF THIS END USER LICENSE AGREEMENT ("EULA") WILL GOVERN YOUR USE OF THE SOFTWARE. BY DOWNLOADING, INSTALLING, OR USING THE SOFTWARE, YOU (THE INDIVIDUAL OR LEGAL ENTITY) ARE (1) REPRESENTING THAT YOU ARE OVER THE AGE OF 18 AND HAVE THE CAPACITY AND AUTHORITY TO BIND YOURSELF OR THE LEGAL ENTITY, AS APPLICABLE, TO THE TERMS OF THIS EULA AND (2) AGREEING ON BEHALF OF YOURSELF AND/OR AS AN AUTHORIZED REPRESENTATIVE OF THE LEGAL ENTITY, AS APPLICABLE, TO BE BOUND BY THIS EULA. IF YOU DO NOT AGREE TO THE TERMS OF THIS EULA, YOU MUST NOT DOWNLOAD, INSTALL, OR USE THE SOFTWARE.
|
|
2
|
+
|
|
3
|
+
EVALUATION LICENSE. If You are licensing the Software for evaluation purposes, Your use of the Software is only permitted in a non-production environment and for the period limited by the License Key. Notwithstanding any other provision in this EULA, an Evaluation License of the Software is provided "AS-IS" without indemnification, support, or warranty of any kind, expressed or implied.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
1. DEFINITIONS
|
|
7
|
+
|
|
8
|
+
1.1 "Affiliate" means, with respect to a party, an entity that is directly or indirectly controlled by or is under common control with such party, where ?control? means an ownership, voting, or similar interest representing fifty percent (50%) or more of the total interests then outstanding of the relevant entity (but only as long as such person or entity meets these requirements).
|
|
9
|
+
|
|
10
|
+
1.2 "Documentation" means the documentation that is generally provided to You by Synacor with the Software, as revised by Synacor or its licensors from time to time, and which may include end-user manuals, operation instructions, installation guides, release notes, and on-line help files regarding the use of the Software.
|
|
11
|
+
|
|
12
|
+
1.3 "Guest Operating Systems" means instances of third-party operating systems licensed by You, installed in a Virtual Machine and run using the Software.
|
|
13
|
+
|
|
14
|
+
1.4 "Intellectual Property Rights" means any patent rights, copyrights, trade secrets, trade names, service marks, moral rights, know-how, and any other similar rights or intangible assets recognized under any laws or international conventions, and in any country or jurisdiction in the world, as intellectual creations to which rights of ownership accrue, and all registrations, applications, disclosures, renewals, extensions, divisions, continuations or reissues of the foregoing now or hereafter in force.
|
|
15
|
+
|
|
16
|
+
1.5 "License" means a license granted under Section 2.1 of this EULA.
|
|
17
|
+
|
|
18
|
+
1.6 "License Key" means a serial number or file that enables You to activate and use the Software.
|
|
19
|
+
|
|
20
|
+
1.7 "License Term" means the duration of a License as specified in the Order.
|
|
21
|
+
|
|
22
|
+
1.8 "License Type" means the type of License applicable to the Software, as more fully described in the Order.
|
|
23
|
+
|
|
24
|
+
1.9 "Open Source Software" or "OSS" means software components and documentation that are licensed under a license approved by the Open Source Initiative ("OSI") or similar open source or freeware license and are delivered with the Software.
|
|
25
|
+
|
|
26
|
+
1.10 "Order" means a purchase order, quote, order acknowledgment, or other ordering document that references and incorporates this EULA and is accepted by Synacor as set forth in Section 4.
|
|
27
|
+
|
|
28
|
+
1.11 "Service Terms" means Synacor’s then-current Support Terms and Conditions, which currently can be found at http://www.zimbra.com/support.
|
|
29
|
+
|
|
30
|
+
1.12 "Software" means the Synacor computer programs listed on Synacor’s commercial price list to which You acquire a license under an Order, together with any updates or upgrades relating to the foregoing (other than Open Source Software) that is provided to You pursuant to a support contract. Software may include computer programs licensed by Synacor from third parties. Software includes applicable Documentation related to the Synacor owned computer programs.
|
|
31
|
+
|
|
32
|
+
1.13 "Synacor" means Synacor, Inc., a Delaware corporation.
|
|
33
|
+
|
|
34
|
+
1.14 "Territory" means the country or countries in which You have been invoiced; provided, however, that if You have been invoiced within any of the European Economic Area member states, You may deploy the corresponding Software throughout the European Economic Area.
|
|
35
|
+
|
|
36
|
+
1.15 "Third Party Agent" means a third party delivering information technology services to You pursuant to a written contract with You.
|
|
37
|
+
|
|
38
|
+
1.16 "Virtual Machine" means a software container that can run its own operating system and execute applications like a physical machine.
|
|
39
|
+
|
|
40
|
+
2. LICENSE GRANT
|
|
41
|
+
|
|
42
|
+
2.1 Scope of License. Subject to the terms and conditions of this EULA, Synacor grants You, during the License Term, a non-exclusive, non-transferable License to use the Software, in executable code form only, within the Territory, only for Your internal operations and only in accordance with: (a) the Documentation; (b) the License Type for which You have paid the applicable fees; and (c) any other applicable limitations set forth in the Order. The License to the Software is limited to the quantities specified in each applicable Order.
|
|
43
|
+
|
|
44
|
+
2.2 Updates. Synacor may modify or update the Software at any time, for any reason, and without providing notice of such modification or update to You. This License will apply to any such modifications or updates which are rightfully obtained by You unless expressly stated otherwise. Synacor may, from time to time, require You to update the Software in order to continue to use the Software. New versions of the Software, as determined by Synacor in its sole discretion, are not considered modifications or updates to which you are entitled under this License.
|
|
45
|
+
|
|
46
|
+
2.3 Third Party Use. Under the License granted to You in Section 2.1 above, You may permit Your Third Party Agents to access, use, and operate the Software on Your behalf for the sole purpose of delivering services to You, provided that You will be fully responsible for Your Third Party Agents? compliance with the terms and conditions of this EULA and any breach of this EULA by a Third Party Agent will be deemed to be a breach by You.
|
|
47
|
+
|
|
48
|
+
2.4 Benchmarking. You may use the Software to conduct internal performance testing and benchmarking studies. You may only publish or otherwise distribute the results of the studies to third parties upon Synacor’s prior written approval.
|
|
49
|
+
|
|
50
|
+
2.5 Open Source Software. Notwithstanding anything in this EULA to the contrary, Open Source Software is licensed to You under such OSS?s own applicable license terms and not under this License. The OSS license terms can be found at https://www.zimbra.com/downloads/zimbra-collaboration/. These OSS license terms are consistent with the license granted in Section 2, and may contain additional rights benefiting You. The OSS license terms will take precedence over this EULA with respect to the Open Source Software to the extent that this EULA imposes greater restrictions on You than the applicable OSS license terms. If any OSS is provided from third parties, such OSS may be licensed under non-copyleft open source licenses as may be indicated in the Documentation accompanying such OSS.
|
|
51
|
+
|
|
52
|
+
3. RESTRICTIONS; OWNERSHIP
|
|
53
|
+
|
|
54
|
+
3.1 Restrictions. You acknowledge that the Software, including the structure, organization, and source code of the Software, constitute Synacor’s and its licensors? valuable trade secrets and property. Accordingly, except as expressly permitted in Section 2, You will not and will not permit any third party: (a) to sell, lease, license, distribute, sublicense, or otherwise transfer in whole or in part the Software or Documentation to any third party; (b) to decompile, disassemble, reverse engineer, or otherwise attempt to derive source code from the Software, in whole or in part; (c) to copy the Software, except for reasonable disaster recovery purposes; (d) to create, develop, license, install, use, or deploy any software or services to circumvent, enable, modify, or provide access, permissions, or rights which violate any technical restrictions or any restrictions on the Software described in this EULA; (e) to translate, modify, or create derivative works based upon the Software; (f) to permit any use of or access to the Software by any third party; (g) to remove any product identification, proprietary, copyright, or other notices contained in the Software; or (h) to operate the Software on a timesharing basis, to operate a service bureau facility, or otherwise on behalf of or for the benefit of any third party, including the operation of any service that is accessed by a third party, except that, for the purposes of this Section 3.1(h), You may use the Software to deliver hosted services to Your Affiliates.
|
|
55
|
+
|
|
56
|
+
3.2 Decompilation. Notwithstanding the foregoing, decompiling the Software is permitted to the extent the laws of the Territory give You the express right to do so to obtain information necessary to render the Software interoperable with other software; provided, however, You must first request such information from Synacor, provide all reasonably requested information to allow Synacor to assess Your claim, and Synacor may, in its discretion, either provide interoperability information to You, impose reasonable conditions, including a reasonable fee, on the use of the Software, or offer to provide alternatives to ensure that Synacor’s and its licensors? proprietary rights in the Software are protected and to reduce any adverse impact on Synacor’s or its licensors? proprietary rights.
|
|
57
|
+
|
|
58
|
+
3.3 Ownership. This EULA does not convey to You an interest in or to the Software and Documentation, but only a limited right of use revocable in accordance with the terms of this EULA. The Software is NOT sold to You. Synacor and its licensors own all right, title and interest in and to the Software and Documentation. No license or other right in or to the Software or Documentation is granted to You and You are not authorized to use (and will not permit any third party to use) the Software, Documentation, or any portion thereof except as expressly authorized by this EULA or the applicable Order. No other rights with respect to the Software or any related Intellectual Property Rights are implied. You hereby agree to abide by United States copyright law, all other applicable laws of the United States and other nations, and any applicable international treaties.
|
|
59
|
+
|
|
60
|
+
3.4 Guest Operating Systems. Certain Software allows Guest Operating Systems and application programs to run on a computer system. You acknowledge that You are responsible for obtaining and complying with any licenses necessary to operate any third-party software.
|
|
61
|
+
|
|
62
|
+
4. ORDER
|
|
63
|
+
Your Order is subject to this EULA. No Orders are binding on Synacor until accepted by Synacor and any and all purchase order terms, ordering paperwork, or other pre-printed terms on Your ordering documents are hereby rejected. Orders for Software are deemed to be accepted upon Synacor’s delivery of the Software.
|
|
64
|
+
|
|
65
|
+
5. AUDIT RIGHTS
|
|
66
|
+
|
|
67
|
+
5.1 Records. You will, during the License Term for any Software licenses acquired under this EULA (and for a period of two (2) years from the expiration of the applicable License Term), maintain accurate records of your use of the Software sufficient to demonstrate Your compliance with the terms of this EULA and all Orders.
|
|
68
|
+
|
|
69
|
+
5.2 Audit Rights. During the period in which You are obligated to maintain such records, Synacor, or its third-party auditor, may, upon reasonable notice to You, audit such records to verify that You: (a) have used the Software solely in the manner authorized by this EULA; (b) have paid all applicable license fees; and (c) otherwise have complied with the terms of this EULA and all Orders. Synacor may conduct no more than one (1) audit in any twelve (12) month period (unless a previous audit has found You not to be in compliance with the requirements of this EULA). Audits will be conducted during normal business hours and Synacor will use commercially reasonable efforts to minimize the disruption of Your normal business activities. You will reasonably cooperate with Synacor and/or its third-party auditor and will promptly pay directly to Synacor any underpayments revealed by such audit. You will promptly reimburse Synacor for all reasonable costs and expenses incurred by Synacor for such audit if: (i) such audit reveals an underpayment by You of more than five percent (5%) of the fees payable by You to Synacor for the period audited, or (ii) such audit reveals You have materially failed to maintain accurate records of Your use of the Software.
|
|
70
|
+
|
|
71
|
+
6. SUPPORT SERVICES
|
|
72
|
+
This License does not grant You any right to any maintenance or services, including without limitation, any support, enhancement, modification, bug fix or update to the Software, and Synacor is under no obligation to provide or inform You of any such updates, modifications, maintenance or services. These may be licensed to You separately when You purchase Synacor support services.
|
|
73
|
+
|
|
74
|
+
7. WARRANTIES
|
|
75
|
+
|
|
76
|
+
7.1 Software Warranty. Synacor warrants to You that the Software will, for a period of thirty (30) days from the date of delivery ("Warranty Period"), substantially conform to the applicable Documentation, provided that the Software (a) has been properly installed and used at all times and in accordance with the applicable Documentation; and (b) has not been modified or added to by persons other than Synacor. Synacor will, at its own expense and as its sole obligation and Your exclusive remedy for any breach of the foregoing warranty, either replace the applicable Software or correct any reproducible error in the Software reported to Synacor by You in writing during the Warranty Period. If Synacor determines that it cannot correct the error or replace the Software, Synacor will refund to You all License fees actually paid by You, in which case the License for the applicable Software and Your right to use such Software will terminate.
|
|
77
|
+
|
|
78
|
+
7.2 Disclaimer of Warranties. THE EXPRESS WARRANTY IN SECTION 7.1 ABOVE IS IN LIEU OF AND, TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, SYNACOR AND ITS AFFILIATES DISCLAIM, ALL OTHER WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, AND ANY WARRANTIES ARISING FROM COURSE OF DEALING OR COURSE OF PERFORMANCE REGARDING OR RELATING TO THE SOFTWARE, THE DOCUMENTATION, OR ANY MATERIALS FURNISHED OR PROVIDED TO YOU UNDER THIS EULA. SYNACOR AND ITS AFFILIATES DO NOT WARRANT THAT THE SOFTWARE WILL OPERATE UNINTERRUPTED, WILL BE FREE FROM DEFECTS, OR THAT THE SOFTWARE WILL MEET (OR IS DESIGNED TO MEET) YOUR BUSINESS REQUIREMENTS.
|
|
79
|
+
|
|
80
|
+
8. INDEMNIFICATION
|
|
81
|
+
|
|
82
|
+
8.1 Indemnification. Synacor will defend You against any third party claim that Your use of the Software, as authorized under this EULA, infringes any patent, copyright, or trademark of a third party in the: (a) the United States and Canada; (b) the European Economic Area; (c) Australia; (d) New Zealand; or (e) Japan (“Infringement Claim”), and indemnify You from the resulting costs and damages awarded against You to the third party making the Infringement Claim; provided that, as conditions of Synacor’s obligation to defend and pay, You must: (a) notify Synacor in writing of any Infringement Claim within thirty (30) days of notice of the Infringement Claim; (b) give Synacor (or at Synacor’s option, its licensors?) sole control of the defense of any Infringement Claim and any related negotiations or settlement; and (c) give Synacor all information and assistance necessary to settle or defend the Infringement Claim. Should the Software become, or in Synacor’s opinion be likely to become, the subject of an Infringement Claim, Synacor will, at Synacor’s option either: (i) replace or modify the affected Software to make it non-infringing; (ii) procure for You the rights to continue using the Software; (iii) replace the Software with other comparable software; or (iv) terminate Your rights to the affected Software and discontinue any related support services, and, upon Your certified deletion of the affected Software, refund: (1) the fees paid by You for the License to the affected Software, less straight-line depreciation over a three (3) year useful life beginning on the date such Software was delivered; and (2) any pre-paid service fees attributable to related support services to be delivered after the date such service is stopped. Nothing in this Section 8.1 will limit Synacor’s obligation under Section 8.1 to defend and indemnify You, provided that You replace the allegedly infringing Software upon Synacor’s making alternate Software available to You and/or You discontinue using the allegedly infringing Software upon receiving Synacor’s notice terminating the affected License.
|
|
83
|
+
|
|
84
|
+
8.2 Exclusions. Synacor’s obligations under Section 8.1 do not apply to any Infringement Claim arising from: (a) modifications to the Software made by You or any party other than Synacor or Synacor’s authorized representative; (b) use of other than the current version of the Software, if the infringement would have been avoided by use of the current version; (c) Open Source Software; (d) combination, operation, or use of the Software with materials not furnished by Synacor or not in accordance with the Documentation; or (e) use of the Software outside the scope of this EULA.
|
|
85
|
+
|
|
86
|
+
8.3 Limitation. THIS SECTION 8 STATES THE SOLE LIABILITY OF SYNACOR WITH RESPECT TO ANY INFRINGEMENT BY THE SOFTWARE OF ANY PATENT, COPYRIGHT, TRADE SECRET, TRADEMARK, OR OTHER INTELLECTUAL PROPERTY RIGHT.
|
|
87
|
+
|
|
88
|
+
8.4 Indemnification by You. If Synacor should incur any liability to a third party caused by the performance or non-performance of You of any of Your obligations under this EULA, or resulting from any act or omission of You or Your representatives, or if Synacor incurs any liability to a third party by reason of Your acts in marketing, distribution, or use of the Software, You agree to indemnify and hold Synacor free and harmless from any such liability, and from all loss, claims, costs, demands, debts, and causes of action in connection therewith, including reasonable expenses and attorneys? fees.
|
|
89
|
+
|
|
90
|
+
9. LIMITATION OF LIABILITY
|
|
91
|
+
9.1 Limitation of Liability. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL SYNACOR AND/OR ITS AFFILIATES BE LIABLE FOR ANY LOST PROFITS OR BUSINESS OPPORTUNITIES, LOSS OF USE, LOSS OF REVENUE, LOSS OF GOODWILL, BUSINESS INTERRUPTION, LOSS OF DATA, OR ANY OTHER INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES UNDER ANY THEORY OF LIABILITY, WHETHER BASED IN CONTRACT, TORT, NEGLIGENCE, PRODUCT LIABILITY, OR OTHERWISE. BECAUSE SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE PRECEDING LIMITATION MAY NOT APPLY TO YOU. SYNACOR?S AND ITS AFFILIATES? LIABILITY UNDER THIS EULA WILL NOT, IN ANY EVENT, REGARDLESS OF WHETHER THE CLAIM IS BASED IN CONTRACT, TORT, STRICT LIABILITY, OR OTHERWISE, EXCEED THE LICENSE FEES PAID TO SYNACOR FOR THE APPLICABLE SOFTWARE, IF ANY. THE FOREGOING LIMITATIONS WILL APPLY REGARDLESS OF WHETHER YOU OR SYNACOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES AND REGARDLESS OF WHETHER ANY REMEDY FAILS OF ITS ESSENTIAL PURPOSE.
|
|
92
|
+
|
|
93
|
+
9.2 Further Limitations. Synacor’s affiliates, licensors, subsidiaries, shareholders, employees, officers, and representatives will have no liability of any kind under this EULA, and Synacor’s liability with respect to any third party software embedded in the Software, including any Open Source Software, will be subject to Section 9.1. YOU MAY NOT BRING A CLAIM UNDER THIS EULA MORE THAN TWELVE (12) MONTHS AFTER THE CAUSE OF ACTION ARISES.
|
|
94
|
+
|
|
95
|
+
10. TERMINATION
|
|
96
|
+
|
|
97
|
+
10.1 License Term. This EULA will terminate in its entirety upon the termination of the License Term, unless terminated earlier under this Section 10.
|
|
98
|
+
|
|
99
|
+
10.2 Termination for Breach. Synacor may terminate this EULA in its entirety effective immediately upon written notice to You if: (a) You breach any provision in Section 2 or 3; (b) You fail to pay any portion of the fees under an applicable Order within ten (10) days after receiving written notice from Synacor that payment is past due; (c) You breach any other provision of this EULA and do not cure the breach within thirty (30) days after receiving written notice thereof from Synacor; or (d) You commit a material breach that is not capable of being cured.
|
|
100
|
+
|
|
101
|
+
10.3 Termination for Insolvency. Synacor may terminate this EULA in its entirety effective immediately upon written notice to You if You: (a) terminate or suspend your business; (b) become insolvent, admit in writing Your inability to pay Your debts as they mature, make an assignment for the benefit of creditors; or become subject to control of a trustee, receiver or similar authority; or (c) become subject to any bankruptcy or insolvency proceeding.
|
|
102
|
+
|
|
103
|
+
10.4 Effect of Termination. If Synacor
|
|
104
|
+
terminates this EULA under this Section 10: (a) all Licensed rights to all Software granted to You under this EULA will immediately cease to exist; and (b) You must promptly discontinue all use of all Software, destroy all copies of the Software and all License Key(s), and return, or if requested by Synacor, destroy, any related Synacor Confidential Information in Your possession or control, and certify in writing to Synacor that You have fully complied with these requirements. Sections 1 (Definitions), 2.5 (Open Source Software), 3 (Restrictions; Ownership), 5.1 (Records), 5.2 (Audit Rights), 7.2 (Disclaimer of Warranties), 9 (Limitation of Liability), 10 (Termination), 11 (Confidential Information), and 12 (General), as well as any other provision that by its nature survives, will survive termination of this EULA.
|
|
105
|
+
|
|
106
|
+
10.5 Limitation of Liability upon Termination. WITHOUT PREJUDICE TO SECTION 9 (LIMITATION OF LIABILITY), SYNACOR WILL NOT BE LIABLE FOR DAMAGE OF ANY KIND, INCLUDING LOSS OF PROFITS, LOSS OF CUSTOMERS, LOSS OF BUSINESS OPPORTUNITIES, LOSS OF GOODWILL, AND INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES, ON ACCOUNT OF THE TERMINATION OR EXPIRATION OF THIS EULA IN ACCORDANCE WITH THIS SECTION 10. YOU WAIVE ANY RIGHT YOU MAY HAVE TO RECEIVE ANY COMPENSATION OR REPARATIONS ON TERMINATION OR EXPIRATION OF THIS EULA UNDER THE LAW OF THE TERRITORY OR OTHERWISE, OTHER THAN AS EXPRESSLY PROVIDED IN THIS EULA. SYNACOR WILL NOT BE LIABLE ON ACCOUNT OF TERMINATION OR EXPIRATION OF THIS EULA FOR REIMBURSEMENT OR DAMAGES FOR THE LOSS OF GOODWILL, PROSPECTIVE PROFITS, OR ANTICIPATED INCOME, OR ON ACCOUNT OF ANY EXPENDITURES, INVESTMENTS, OR COMMITMENTS MADE BY YOU OR FOR ANY OTHER REASON WHATSOEVER BASED UPON OR GROWING OUT OF THE TERMINATION OR EXPIRATION. YOU ACKNOWLEDGE THAT THIS SECTION HAS BEEN INCLUDED AS A MATERIAL INDUCEMENT FOR SYNACOR TO ALLOW YOUR USE AND THAT SYNACOR WOULD NOT HAVE ALLOWED USE BUT FOR THE LIMITATIONS OF LIABILITY AS SET FORTH IN THIS EULA.
|
|
107
|
+
|
|
108
|
+
11. CONFIDENTIAL INFORMATION
|
|
109
|
+
|
|
110
|
+
11.1 Definition. "Confidential Information" means information or materials provided by Synacor to You which are in tangible form and labeled "confidential" or the like, or, information which a reasonable person knew or should have known to be confidential. The following information will be considered Confidential Information whether or not marked or identified as such: (a) License Keys; (b) information regarding Synacor’s pricing, product roadmaps, or strategic marketing plans; and (c) non-public materials relating to the Software.
|
|
111
|
+
|
|
112
|
+
11.2 Protection. You may use Synacor’s Confidential Information: (a) to exercise Your rights and perform Your obligations under this EULA; or (b) in connection with the parties? ongoing business relationship. You will not use any Confidential Information of Synacor for any purpose not expressly permitted by this EULA, and will disclose the Confidential Information of Synacor only to Your employees or contractors who have a need to know such Confidential Information for purposes of this EULA and who are under a duty of confidentiality no less restrictive than Your duties under this EULA. You will protect Confidential Information from unauthorized use, access, or disclosure in the same manner as You protect Your own confidential or proprietary information of a similar nature but with no less than reasonable care.
|
|
113
|
+
|
|
114
|
+
11.3 Exceptions. Your obligations under Section 11.2 with respect to any Confidential Information will terminate if You can show by written records that such information: (a) was already known to You at the time of disclosure by Synacor; (b) was disclosed to You by a third party who had the right to make such disclosure without any confidentiality restrictions; (c) is, or through no fault of You has become, generally available to the public; or (d) was independently developed by You without access to, or use of, Confidential Information. In addition, You will be allowed to disclose Confidential Information to the extent that such disclosure is required by law or by the order of a court or similar judicial or administrative body, provided that You notify Synacor of such required disclosure promptly and in writing and cooperate with Synacor, at Synacor’s request and expense, in any lawful action to contest or limit the scope of such required disclosure. If Synacor is unable to obtain a protective order or other appropriate remedy with respect to the disclosure of Confidential Information, then You will disclose only that portion of the Confidential Information necessary to ensure compliance with the legal requirement.
|
|
115
|
+
|
|
116
|
+
11.4 Data Privacy. You agree that Synacor and its licensors may collect, use, store, transmit, and process technical and related information about Your use of the Software which may include internet protocol address, hardware identification, operating system, application software, peripheral hardware, and non-personally identifiable Software usage statistics, to facilitate the provisioning of updates, support, invoicing, or online services and may transfer such information to other companies in the Synacor worldwide group of companies and to Synacor’s contractors, advertisers and agents from time to time. To the extent that information processed by Synacor constitutes personal data, Synacor will be the processor of such personal data and will comply at all times with its obligations under the local legislation applicable in the Territory for the protection of individuals with regard to the processing of personal data. You further agree that You will comply with all applicable data privacy laws.
|
|
117
|
+
|
|
118
|
+
11.5 Irreparable Injury. You acknowledge that damages for improper disclosure of Confidential Information would be irreparable; therefore, upon breach, Synacor may seek equitable relief, including temporary restraining order(s) or preliminary or permanent injunction(s), without the necessity of posting a bond, in addition to all other remedies, for any violation or threatened violation of Sections 2, 3 or this Section 11.
|
|
119
|
+
|
|
120
|
+
11.6 Privacy Policy. Your privacy is very important to Synacor. Synacor maintains and follows a Privacy Policy, available at www.synacor.com/privacy-policy/ and incorporated herein by reference. As part of Your use of the Software, Synacor may collect certain information about You. Synacor generally does not share this information with third parties; however, Synacor may disclose or may be required to disclose this information in certain cases, discussed in detail in the Synacor Privacy Policy. Synacor may use the information to send marketing materials about Synacor’s products and services and to send You e-mails or notices regarding Synacor’s products and services. You expressly authorize Synacor to do so, but may choose to opt out of receiving such marketing materials at any time. In order to utilize certain Software features, You may need to provide Your user name, password, and/or other identifying information for Your third party e-mail, voice or other accounts. You expressly authorize Synacor to use this identifying information to access such accounts for use with the Software, and You represent that You have the authority to disclose such information and grant such access to Synacor. Synacor will use such identifying information in accordance with its Privacy Policy. Use of any information collected by Synacor’s licensors shall be governed by such licensor?s privacy policy, such as Synacor’s licensor.
|
|
121
|
+
|
|
122
|
+
12. GENERAL
|
|
123
|
+
|
|
124
|
+
12.1 Assignment. This EULA and any Orders, and any of Your rights or obligations under this EULA or any Order, may not be assigned, subcontracted or transferred by You, in whole or in part, whether voluntary, by operation of contract, law or otherwise, without the prior written consent of Synacor. Any attempted assignment or transfer in violation of the foregoing will be null and void. Subject to the foregoing, this EULA will be binding upon and will inure to the benefit of the parties and their respective successors and assigns.
|
|
125
|
+
|
|
126
|
+
12.2 Notices. Any notice delivered by Synacor to You under this EULA will be delivered via mail, email, or fax. Any notices to Synacor under this Agreement must be in writing and either delivered in person, sent by email, or first class mail (if within the United States), or sent by air courier to the address set forth in Section 12.14. Notices will be considered to have been given at the time of actual delivery in person, five (5)ÿbusiness days after deposit in the mail, or two businessÿ(2) days after delivery to an air courier service or confirmation of email receipt.
|
|
127
|
+
|
|
128
|
+
12.3 Waiver. The waiver of a breach of any provision of this EULA will not constitute a waiver of any other provision or any subsequent breach.
|
|
129
|
+
|
|
130
|
+
12.4 Severability. If any provision of this EULA is held to be illegal, invalid, or unenforceable, the provision will be enforced to the maximum extent permissible so as to affect the intent of the parties, and the remaining provisions of this EULA will remain in full force and effect.
|
|
131
|
+
|
|
132
|
+
12.5 Compliance with Laws; Export Control; Government Regulations. Each party will comply with all laws applicable to the actions contemplated by this EULA. You acknowledge that the Software is of United States origin, is provided subject to the U.S. Export Administration Regulations, may be subject to the export control laws of the applicable territory, and that diversion contrary to applicable export control laws is prohibited. You represent that (a) you are not, and are not acting on behalf of (i) any person who is a citizen, national, or resident of, or who is controlled by the government of Cuba, Syria, Sudan, North Korea, Iran, Crimea or any other country or territory subject to comprehensive country-wide or territory-wide embargo; or (ii) any person or entity listed on the U.S. Treasury Department list of Specially Designated Nationals and Blocked Persons, or the U.S. Commerce Department Denied Persons List or Entity List; (b) you will not permit the Software to be used for any purposes prohibited by Part 744 of the Export Administration Regulations, 15 C.F.R. ?? 744.1-744.22, or other law, including, any prohibited development, design, manufacture or production of missiles or nuclear, chemical or biological weapons; and (c) you will not export the software in violation of any provision of the Export Administration Regulations, 15 C.F.R. ?730.1 et seq. Prior to the export of the software, you must request from Synacor the correct ECCN for each product to be exported and consult the Export Administration Regulations to determine that your export of the Software is fully compliant with such regulations. The Software and Documentation are deemed to be "commercial computer software" and "commercial computer software documentation," respectively, pursuant to DFAR Section 227.7202 and FAR Section 12.212(b), as applicable. Any use, modification, reproduction, release, performing, displaying, or disclosing of the Software and Documentation by the U.S. Government will be governed solely by the terms and conditions of this EULA.
|
|
133
|
+
|
|
134
|
+
12.6 Construction. The headings of sections of this EULA are for convenience and are not to be used in interpreting this EULA. As used in this EULA, the word "including" means "including but not limited to."
|
|
135
|
+
|
|
136
|
+
12.7 Choice of Law and Language. This EULA will be governed by the laws of the State of Delaware, USA, to the exclusion of the UN Convention on Contracts for the International Sale of Goods. You acknowledge that the headquarters of the Synacor family of companies is located in New York, and that the software licensed under this EULA and the related products marketed in connection with such software were in substantial part conceived, developed, or marketed by Synacor personnel in the United States. Further, you acknowledge, agree and stipulate that the laws of the United States bear a substantial relationship to this EULA and that the selection of Delaware law to govern this EULA and the license of the Software is reasonable and appropriate, and you consent to the selection of such law to govern this EULA and the relationship of the parties. This EULA has been agreed to only in the English language, which version of this EULA will be controlling regardless of whether any translations of this EULA have been prepared or exchanged. As an exception to the preceding sentence, if Synacor provides this EULA to you only in a non-English language version, then such non-English language version will control. Otherwise, you acknowledge and represent that you have carefully reviewed this EULA with the involvement and assistance of your employees, advisors, and/or legal counsel fluent in the English language, that you have consulted with local legal counsel and counsel competent to render advice with respect to transactions governed by the law applicable to this EULA, that you have no questions regarding the meaning or effect of any of this EULA?s terms, and that you have obtained high-quality translations of this EULA for use by you or any of your team who are not fluent in the English language, with the understanding that you alone will bear the risk of any misunderstandings that may arise as a result of such translation. All communications in connection with this EULA will be in the English language. Les parties ont demand‚ que cette convention ainsi que tous les documents qui s?y rattachent soient r‚dig‚s en anglais.
|
|
137
|
+
|
|
138
|
+
12.8 Jurisdiction; Venue; Jury Waiver. All disputes arising out of this EULA involving Synacor will be subject to the jurisdiction of the federal or state courts of New York, with venue lying in Erie County, New York. YOU WAVE, TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, ANY RIGHT YOU MAY HAVE TO TRIAL BY JURY IN ANY LEGAL PROCEEDING DIRECTLY OR INDIRECTLY ARISING OUT OF OR RELATING TO THIS EULA.
|
|
139
|
+
|
|
140
|
+
12.9 Third Party Rights. Other than as expressly set out in this EULA, this EULA does not create any rights for any person who is not a party to it, and no person who is not a party to this EULA may enforce any of its terms or rely on any exclusion or limitation contained in it.
|
|
141
|
+
|
|
142
|
+
12.10 Documentation. In addition to the above sections, Your use of the Software is subject to any additional terms and conditions set forth in the Documentation, which is incorporated into this EULA.
|
|
143
|
+
|
|
144
|
+
12.11 Order of Precedence. In the event of conflict or inconsistency among the Documentation, this EULA and the Order, the following order of precedence will apply: (a) the Documentation, (b) this EULA, and (c) the Order. With respect to any inconsistency between this EULA and an Order, the terms of this EULA will supersede and control over any conflicting or additional terms and conditions of any Order, acknowledgement or confirmation or other document issued by You.
|
|
145
|
+
|
|
146
|
+
12.12 Force Majeure. Synacor will not be liable for any nonperformance or delays in deliveries caused by strikes, differences with workmen, accidents, fires, floods, transportation delays, delays in procuring materials or supplies, government regulations, war, disaster, Acts of God, or other delays caused by events beyond the reasonable control of Synacor.
|
|
147
|
+
|
|
148
|
+
12.13 Entire Agreement. This EULA, including accepted Orders and any amendments to this EULA, and the Documentation contain the entire agreement of the parties with respect to the subject matter of this EULA and supersede all previous or contemporaneous communications, representations, proposals, commitments, understandings, and agreements, whether written or oral, between the parties regarding this license agreement. This EULA may only be amended by a writing signed by authorized parties of You and Synacor.
|
|
149
|
+
|
|
150
|
+
12.14 Contact Information. Please direct legal notices or other correspondence to Synacor, Inc., 40 La Riviere Drive, Suite 300, Buffalo, New York, United States, Attn: Legal Department, email address: legaldept@synacor.com. Any questions concerning this EULA should be sent to the foregoing email address: legaldept@synacor.com.
|
|
151
|
+
|
|
152
|
+
12.15 Trademarks. "Synacor" and "Zimbra" are registered trademarks of Synacor, Inc. and, along with other Synacor trademarks, services marks and product names, may not be used without the prior permission of Synacor, Inc. Any third party trademarks, service marks, and product names included in the Software or Documentation or otherwise provided hereunder may not be used without the prior permission of the owner thereof.
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
SYNACOR, INC.
|
|
163
|
+
END USER LICENSE AGREEMENT
|
|
164
|
+
FOR ZIMBRA NETWORK EDITION
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
(c) Copyright 2026 Synacor, Inc. All rights reserved.
|
package/README.md
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# @zimbra/eslint-config
|
|
2
|
+
|
|
3
|
+
**Comprehensive ESLint configuration used across Zimbra JavaScript and TypeScript projects.**
|
|
4
|
+
|
|
5
|
+
This package bundles a set of shareable ESLint configs and rule customizations so teams can apply a consistent linting standard across apps and libraries.
|
|
6
|
+
|
|
7
|
+
## **Table of contents**
|
|
8
|
+
|
|
9
|
+
- [Overview](#overview)
|
|
10
|
+
- [Quick start](#quick-start)
|
|
11
|
+
- [Installation](#installation)
|
|
12
|
+
- [Usage examples](#usage-examples)
|
|
13
|
+
- [ESLint Flat Config example (eslint.config.mjs)](#eslint-flat-config-example-eslintconfigmjs)
|
|
14
|
+
- [Exports & configs](#exports--configs)
|
|
15
|
+
- [Rule summary](#rule-summary)
|
|
16
|
+
- [Custom rules](#custom-rules)
|
|
17
|
+
- [Scripts](#scripts)
|
|
18
|
+
- [Publishing](#publishing)
|
|
19
|
+
- [Contributing](#contributing)
|
|
20
|
+
- [License](#license)
|
|
21
|
+
- [Support](#support)
|
|
22
|
+
|
|
23
|
+
## **Overview**
|
|
24
|
+
|
|
25
|
+
This package provides:
|
|
26
|
+
|
|
27
|
+
- **A base ESLint config** (default export) customized or adapted specifically for Zimbra projects.
|
|
28
|
+
- **A TypeScript-focused config** (exported at `./src/typescript.js`).
|
|
29
|
+
- **Curated configs** in `src/configs/` for special cases (automation, core-js, locale JSON, etc.).
|
|
30
|
+
- **Rule definitions and small custom plugins** under `src/rules/`, including `custom-rules` used internally.
|
|
31
|
+
|
|
32
|
+
## **Quick start**
|
|
33
|
+
|
|
34
|
+
1. Install the package as a dev dependency in your project.
|
|
35
|
+
2. Install `eslint` (peer dependency).
|
|
36
|
+
3. Extend `@zimbra/eslint-config` in your ESLint configuration.
|
|
37
|
+
|
|
38
|
+
## **Installation**
|
|
39
|
+
|
|
40
|
+
Install the config and core peer dependency:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm install --save-dev @zimbra/eslint-config eslint
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
If you're using TypeScript:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npm install --save-dev @zimbra/eslint-config eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### **Note about consumer installation**
|
|
53
|
+
|
|
54
|
+
This package ships many commonly-used ESLint plugins and configs as regular dependencies, so in most cases a consumer project does **not** need to manually install every plugin listed below. However, the package lists core items such as `eslint` and `@typescript-eslint/eslint-plugin` as **peer dependencies** — you must install those in your project. If you rely on the TypeScript export, also install `@typescript-eslint/parser` and `typescript`.
|
|
55
|
+
|
|
56
|
+
Typical plugins/configs that are included or commonly required by the configs in this package:
|
|
57
|
+
|
|
58
|
+
- `eslint-plugin-react`
|
|
59
|
+
- `eslint-plugin-react-hooks`
|
|
60
|
+
- `eslint-plugin-import`
|
|
61
|
+
- `eslint-config-prettier` and `eslint-plugin-prettier`
|
|
62
|
+
- `eslint-plugin-i18n-json`
|
|
63
|
+
|
|
64
|
+
If you publish or use a custom registry where dependency resolution differs, you may need to install additional plugins in the consumer project. The safest minimal installs for a consumer are shown in the Installation section above (eslint + TypeScript plugin when relevant).
|
|
65
|
+
|
|
66
|
+
## **Prettier integration (important)**
|
|
67
|
+
|
|
68
|
+
This config integrates Prettier via `eslint-config-prettier` and `eslint-plugin-prettier` to avoid conflicting rules and to report formatting issues through ESLint. **Prettier rules will therefore be applicable to a consumer's code when they run ESLint with this config.**
|
|
69
|
+
|
|
70
|
+
Recommendation: install `prettier` in consumer projects if you want code formatted or want `eslint --fix` to apply Prettier-based changes. Example:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
npm install --save-dev prettier
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
If a consumer prefers to keep Prettier separate from ESLint (for example, running Prettier via editor integration only), the config will still disable conflicting ESLint rules thanks to `eslint-config-prettier` so you won't get duplicate or contradictory diagnostics.
|
|
77
|
+
|
|
78
|
+
## **When should I integrate this?**
|
|
79
|
+
|
|
80
|
+
Integrate `@zimbra/eslint-config` into a project when:
|
|
81
|
+
|
|
82
|
+
- You want **consistent linting rules** across multiple Zimbra repositories or teams.
|
|
83
|
+
- You are starting a **new JavaScript/TypeScript project** and want a tested baseline of rules (React/Prettier/i18n/import rules already wired).
|
|
84
|
+
- You want to **centralize and reuse custom rules** implemented by Zimbra (for patterns like `no-direct-memoize`).
|
|
85
|
+
- You want a config that is compatible with **ESLint v9+ and the Flat Config** approach used by modern tooling.
|
|
86
|
+
|
|
87
|
+
Integration is low-risk: drop-in extend the base or TypeScript export in your ESLint config and run `eslint` to see the issues the rules detect.
|
|
88
|
+
|
|
89
|
+
## **What problem will it resolve?**
|
|
90
|
+
|
|
91
|
+
Using a centralized, shared ESLint config resolves several common problems:
|
|
92
|
+
|
|
93
|
+
- Inconsistent code style and rule application across teams and projects.
|
|
94
|
+
- Diverging local rule sets that make code reviews harder and increase cognitive load when switching repos.
|
|
95
|
+
- Missing project-specific checks for important areas like i18n, import ordering, React best practices, and automation/test patterns.
|
|
96
|
+
- Redundant or conflicting rule configurations — this package integrates Prettier properly and disables conflicting ESLint rules to avoid duplicate diagnostics.
|
|
97
|
+
|
|
98
|
+
Adopting this config helps maintain code quality, reduces time spent configuring tooling in each repository, and provides a shared place to evolve rules and custom checks.
|
|
99
|
+
|
|
100
|
+
## **Usage examples**
|
|
101
|
+
|
|
102
|
+
## **ESLint Flat Config example (eslint.config.mjs)**
|
|
103
|
+
|
|
104
|
+
If your project uses ESLint v9+ with the Flat Config (`eslint.config.mjs` / `eslint.config.cjs`), import the named config blocks exported by this package and spread them into your exported array. Example JS project:
|
|
105
|
+
|
|
106
|
+
```js
|
|
107
|
+
// eslint.config.mjs
|
|
108
|
+
import { coreJsConfig, customConfig } from "@zimbra/eslint-config";
|
|
109
|
+
|
|
110
|
+
export default [
|
|
111
|
+
...coreJsConfig,
|
|
112
|
+
...customConfig,
|
|
113
|
+
// Add local overrides or additional blocks here
|
|
114
|
+
{
|
|
115
|
+
files: ["**/*.js", "**/*.jsx"],
|
|
116
|
+
rules: {
|
|
117
|
+
// local rule overrides
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
];
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
TypeScript project using the package TypeScript export:
|
|
124
|
+
|
|
125
|
+
```js
|
|
126
|
+
// eslint.config.mjs
|
|
127
|
+
import { coreJsConfig } from "@zimbra/eslint-config";
|
|
128
|
+
import typescriptConfig from "@zimbra/eslint-config/typescript";
|
|
129
|
+
|
|
130
|
+
export default [
|
|
131
|
+
...coreJsConfig,
|
|
132
|
+
...typescriptConfig,
|
|
133
|
+
{
|
|
134
|
+
files: ["**/*.ts", "**/*.tsx"],
|
|
135
|
+
// local TypeScript overrides (if needed)
|
|
136
|
+
}
|
|
137
|
+
];
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Notes:
|
|
141
|
+
|
|
142
|
+
- Ensure your project has `type: "module"` in `package.json` or use the `.mjs` extension for the config file so Node treats it as ESM.
|
|
143
|
+
- Install peer dependencies (`eslint`, `@typescript-eslint/*`, `prettier`) in the consumer project as described in the Installation section.
|
|
144
|
+
- The exported config blocks (`coreJsConfig`, `customConfig`, etc.) are arrays of config blocks — spreading them preserves ordering and allows local blocks to appear before/after as desired.
|
|
145
|
+
|
|
146
|
+
## **Exports & configs**
|
|
147
|
+
|
|
148
|
+
- `.` -> `src/index.js` (base config)
|
|
149
|
+
- `./typescript` -> `src/typescript.js` (TypeScript-focused config)
|
|
150
|
+
- Additional configs are in `src/configs/` (automation, core-js, custom, locale-json, ts-eslint-config)
|
|
151
|
+
|
|
152
|
+
## **Rules and custom rules**
|
|
153
|
+
|
|
154
|
+
Rule details and descriptions have moved to `RULES.md`. That file contains a complete list of rule modules and plain-language explanations of what each rule enforces or why a rule is disabled. See `RULES.md` in the repo root for the authoritative list and examples.
|
|
155
|
+
|
|
156
|
+
## **Scripts**
|
|
157
|
+
|
|
158
|
+
This repository provides convenience scripts in `package.json` that are useful for developing the config itself:
|
|
159
|
+
|
|
160
|
+
- `npm run lint` — runs `eslint src`
|
|
161
|
+
- `npm run lint:fix` — runs `eslint src --fix`
|
|
162
|
+
|
|
163
|
+
## **Publishing**
|
|
164
|
+
|
|
165
|
+
If you plan to publish this package to the npm registry, follow these recommended steps. This package is scoped to `@zimbra` in `package.json`, so scoped publishing requires publishing as public (unless your registry config differs).
|
|
166
|
+
|
|
167
|
+
1. Ensure `version` in `package.json` is updated (semantic versioning).
|
|
168
|
+
2. Run a local pack check:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
npm pack --dry-run
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
3. Login to npm (if necessary):
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
npm login
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
4. Publish the package (scoped packages often require `--access public`):
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
npm publish --access public
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
5. After publishing, update any downstream repos to use the new version.
|
|
187
|
+
|
|
188
|
+
### Notes
|
|
189
|
+
|
|
190
|
+
- If you use a private registry (Artifactory/Nexus), adapt the publish commands and access settings to your registry's requirements.
|
|
191
|
+
- Consider automating the publish workflow via CI with a release job that runs tests, bump version, and publishes on tags.
|
|
192
|
+
|
|
193
|
+
## **Contributing**
|
|
194
|
+
|
|
195
|
+
- When adding or changing rules, update `src/rules` and corresponding configs in `src/configs/`.
|
|
196
|
+
- Run `npm run lint` before submitting changes.
|
|
197
|
+
- Provide unit tests for custom rules and document breaking changes clearly.
|
|
198
|
+
|
|
199
|
+
## **License**
|
|
200
|
+
|
|
201
|
+
This repository includes a `LICENSE` file at the project root. See `LICENSE` for the full terms.
|
|
202
|
+
|
|
203
|
+
## **Support**
|
|
204
|
+
|
|
205
|
+
Open an issue in this repository for questions, or contact the maintainers for onboarding help.
|