@codelaw/rules-js 0.0.0-stage → 0.1.0

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.
Files changed (162) hide show
  1. package/LICENSE +23 -0
  2. package/NOTICE +19 -0
  3. package/README.md +90 -2
  4. package/codelaw-pack.toml +6 -0
  5. package/data/globals/browser.json +1209 -0
  6. package/data/globals/commonjs.json +6 -0
  7. package/data/globals/jest.json +15 -0
  8. package/data/globals/mocha.json +22 -0
  9. package/data/globals/node.json +83 -0
  10. package/data/globals/serviceworker.json +328 -0
  11. package/data/globals/shared-node-browser.json +73 -0
  12. package/data/globals/vitest.json +19 -0
  13. package/data/globals/worker.json +349 -0
  14. package/data/node/deprecated-api.json +83 -0
  15. package/data/react/dom-property-aliases.json +131 -0
  16. package/package.json +14 -4
  17. package/presets/js/conventions.toml +10 -0
  18. package/presets/js/recommended.toml +67 -0
  19. package/presets/node/recommended.toml +13 -0
  20. package/presets/react/recommended.toml +22 -0
  21. package/presets/stencil/recommended.toml +18 -0
  22. package/presets/ts/recommended.toml +27 -0
  23. package/rules/graph/no-unused-exports.md +135 -0
  24. package/rules/js/constructor-super.md +77 -0
  25. package/rules/js/exports-at-end.md +134 -0
  26. package/rules/js/for-direction.md +106 -0
  27. package/rules/js/getter-return.md +74 -0
  28. package/rules/js/import-groups.md +117 -0
  29. package/rules/js/no-async-promise-executor.md +95 -0
  30. package/rules/js/no-case-declarations.md +134 -0
  31. package/rules/js/no-class-assign.md +61 -0
  32. package/rules/js/no-compare-neg-zero.md +105 -0
  33. package/rules/js/no-cond-assign.md +135 -0
  34. package/rules/js/no-const-assign.md +61 -0
  35. package/rules/js/no-constant-binary-expression.md +83 -0
  36. package/rules/js/no-constant-condition.md +150 -0
  37. package/rules/js/no-control-regex.md +84 -0
  38. package/rules/js/no-debugger.md +99 -0
  39. package/rules/js/no-default-export.md +88 -0
  40. package/rules/js/no-delete-var.md +93 -0
  41. package/rules/js/no-dupe-args.md +61 -0
  42. package/rules/js/no-dupe-class-members.md +82 -0
  43. package/rules/js/no-dupe-else-if.md +113 -0
  44. package/rules/js/no-dupe-keys.md +66 -0
  45. package/rules/js/no-duplicate-case.md +137 -0
  46. package/rules/js/no-empty-character-class.md +98 -0
  47. package/rules/js/no-empty-pattern.md +86 -0
  48. package/rules/js/no-empty-static-block.md +99 -0
  49. package/rules/js/no-empty.md +116 -0
  50. package/rules/js/no-ex-assign.md +121 -0
  51. package/rules/js/no-extra-boolean-cast.md +107 -0
  52. package/rules/js/no-fallthrough.md +178 -0
  53. package/rules/js/no-func-assign.md +62 -0
  54. package/rules/js/no-global-assign.md +85 -0
  55. package/rules/js/no-import-assign.md +60 -0
  56. package/rules/js/no-invalid-regexp.md +86 -0
  57. package/rules/js/no-irregular-whitespace.md +87 -0
  58. package/rules/js/no-loss-of-precision.md +82 -0
  59. package/rules/js/no-misleading-character-class.md +83 -0
  60. package/rules/js/no-new-native-nonconstructor.md +55 -0
  61. package/rules/js/no-nonoctal-decimal-escape.md +84 -0
  62. package/rules/js/no-obj-calls.md +61 -0
  63. package/rules/js/no-octal.md +84 -0
  64. package/rules/js/no-prototype-builtins.md +99 -0
  65. package/rules/js/no-redeclare.md +61 -0
  66. package/rules/js/no-regex-spaces.md +75 -0
  67. package/rules/js/no-self-assign.md +91 -0
  68. package/rules/js/no-setter-return.md +69 -0
  69. package/rules/js/no-shadow-restricted-names.md +102 -0
  70. package/rules/js/no-sparse-arrays.md +82 -0
  71. package/rules/js/no-this-before-super.md +74 -0
  72. package/rules/js/no-unassigned-vars.md +102 -0
  73. package/rules/js/no-undef.md +76 -0
  74. package/rules/js/no-unexpected-multiline.md +91 -0
  75. package/rules/js/no-unreachable.md +59 -0
  76. package/rules/js/no-unsafe-finally.md +145 -0
  77. package/rules/js/no-unsafe-negation.md +71 -0
  78. package/rules/js/no-unsafe-optional-chaining.md +83 -0
  79. package/rules/js/no-unused-labels.md +102 -0
  80. package/rules/js/no-unused-private-class-members.md +126 -0
  81. package/rules/js/no-unused-vars.md +69 -0
  82. package/rules/js/no-useless-assignment.md +115 -0
  83. package/rules/js/no-useless-backreference.md +83 -0
  84. package/rules/js/no-useless-catch.md +105 -0
  85. package/rules/js/no-useless-escape.md +81 -0
  86. package/rules/js/no-var.md +76 -0
  87. package/rules/js/no-with.md +60 -0
  88. package/rules/js/prefer-const.md +83 -0
  89. package/rules/js/prefer-rest-params.md +103 -0
  90. package/rules/js/prefer-spread.md +95 -0
  91. package/rules/js/preserve-caught-error.md +122 -0
  92. package/rules/js/require-yield.md +107 -0
  93. package/rules/js/use-isnan.md +105 -0
  94. package/rules/js/valid-typeof.md +111 -0
  95. package/rules/node/hashbang.md +71 -0
  96. package/rules/node/no-deprecated-api.md +91 -0
  97. package/rules/node/no-exports-assign.md +92 -0
  98. package/rules/node/no-extraneous-import.md +118 -0
  99. package/rules/node/no-extraneous-require.md +117 -0
  100. package/rules/node/no-missing-import.md +118 -0
  101. package/rules/node/no-missing-require.md +117 -0
  102. package/rules/node/no-process-exit.md +99 -0
  103. package/rules/node/no-unpublished-import.md +134 -0
  104. package/rules/node/no-unpublished-require.md +133 -0
  105. package/rules/react/display-name.md +91 -0
  106. package/rules/react/exhaustive-deps.md +116 -0
  107. package/rules/react/hook-prefix.md +108 -0
  108. package/rules/react/jsx-key.md +99 -0
  109. package/rules/react/jsx-no-comment-textnodes.md +87 -0
  110. package/rules/react/jsx-no-duplicate-props.md +66 -0
  111. package/rules/react/jsx-no-target-blank.md +78 -0
  112. package/rules/react/jsx-no-undef.md +78 -0
  113. package/rules/react/no-children-prop.md +80 -0
  114. package/rules/react/no-danger-with-children.md +83 -0
  115. package/rules/react/no-deprecated.md +84 -0
  116. package/rules/react/no-direct-mutation-state.md +102 -0
  117. package/rules/react/no-find-dom-node.md +72 -0
  118. package/rules/react/no-is-mounted.md +109 -0
  119. package/rules/react/no-render-return-value.md +75 -0
  120. package/rules/react/no-string-refs.md +72 -0
  121. package/rules/react/no-unescaped-entities.md +69 -0
  122. package/rules/react/no-unknown-property.md +69 -0
  123. package/rules/react/props-type-name.md +43 -0
  124. package/rules/react/require-render-return.md +91 -0
  125. package/rules/react/rules-of-hooks.md +128 -0
  126. package/rules/stencil/ban-default-true.md +70 -0
  127. package/rules/stencil/ban-exported-const-enums.md +60 -0
  128. package/rules/stencil/ban-prefix.md +76 -0
  129. package/rules/stencil/decorators-context.md +61 -0
  130. package/rules/stencil/host-data-deprecated.md +73 -0
  131. package/rules/stencil/methods-must-be-public.md +69 -0
  132. package/rules/stencil/no-unused-watch.md +68 -0
  133. package/rules/stencil/own-methods-must-be-private.md +68 -0
  134. package/rules/stencil/own-props-must-be-private.md +60 -0
  135. package/rules/stencil/prefer-vdom-listener.md +67 -0
  136. package/rules/stencil/prop-readonly.md +63 -0
  137. package/rules/stencil/props-must-be-public.md +68 -0
  138. package/rules/stencil/required-jsdoc.md +66 -0
  139. package/rules/stencil/reserved-member-names.md +70 -0
  140. package/rules/stencil/strict-mutable.md +75 -0
  141. package/rules/stencil/tag-prefix.md +75 -0
  142. package/rules/ts/ban-ts-comment.md +64 -0
  143. package/rules/ts/no-array-constructor.md +58 -0
  144. package/rules/ts/no-duplicate-enum-values.md +65 -0
  145. package/rules/ts/no-empty-object-type.md +65 -0
  146. package/rules/ts/no-explicit-any.md +61 -0
  147. package/rules/ts/no-extra-non-null-assertion.md +50 -0
  148. package/rules/ts/no-misused-new.md +70 -0
  149. package/rules/ts/no-namespace.md +65 -0
  150. package/rules/ts/no-non-null-asserted-optional-chain.md +55 -0
  151. package/rules/ts/no-require-imports.md +54 -0
  152. package/rules/ts/no-this-alias.md +68 -0
  153. package/rules/ts/no-unnecessary-type-constraint.md +64 -0
  154. package/rules/ts/no-unsafe-declaration-merging.md +73 -0
  155. package/rules/ts/no-unsafe-function-type.md +57 -0
  156. package/rules/ts/no-unused-expressions.md +61 -0
  157. package/rules/ts/no-unused-vars.md +68 -0
  158. package/rules/ts/no-wrapper-object-types.md +49 -0
  159. package/rules/ts/prefer-as-const.md +47 -0
  160. package/rules/ts/prefer-namespace-keyword.md +63 -0
  161. package/rules/ts/triple-slash-reference.md +60 -0
  162. package/rules/ts/type-only-imports.md +57 -0
@@ -0,0 +1,349 @@
1
+ {
2
+ "AI": false,
3
+ "AICreateMonitor": false,
4
+ "AbortController": false,
5
+ "AbortSignal": false,
6
+ "AudioData": false,
7
+ "AudioDecoder": false,
8
+ "AudioEncoder": false,
9
+ "BackgroundFetchManager": false,
10
+ "BackgroundFetchRecord": false,
11
+ "BackgroundFetchRegistration": false,
12
+ "BarcodeDetector": false,
13
+ "Blob": false,
14
+ "BroadcastChannel": false,
15
+ "ByteLengthQueuingStrategy": false,
16
+ "CSSImageValue": false,
17
+ "CSSKeywordValue": false,
18
+ "CSSMathClamp": false,
19
+ "CSSMathInvert": false,
20
+ "CSSMathMax": false,
21
+ "CSSMathMin": false,
22
+ "CSSMathNegate": false,
23
+ "CSSMathProduct": false,
24
+ "CSSMathSum": false,
25
+ "CSSMathValue": false,
26
+ "CSSMatrixComponent": false,
27
+ "CSSNumericArray": false,
28
+ "CSSNumericValue": false,
29
+ "CSSPerspective": false,
30
+ "CSSRotate": false,
31
+ "CSSScale": false,
32
+ "CSSSkew": false,
33
+ "CSSSkewX": false,
34
+ "CSSSkewY": false,
35
+ "CSSStyleValue": false,
36
+ "CSSTransformComponent": false,
37
+ "CSSTransformValue": false,
38
+ "CSSTranslate": false,
39
+ "CSSUnitValue": false,
40
+ "CSSUnparsedValue": false,
41
+ "CSSVariableReferenceValue": false,
42
+ "Cache": false,
43
+ "CacheStorage": false,
44
+ "CanvasGradient": false,
45
+ "CanvasPattern": false,
46
+ "CloseEvent": false,
47
+ "CompressionStream": false,
48
+ "CountQueuingStrategy": false,
49
+ "CreateMonitor": false,
50
+ "CropTarget": false,
51
+ "Crypto": false,
52
+ "CryptoKey": false,
53
+ "CustomEvent": false,
54
+ "DOMException": false,
55
+ "DOMMatrix": false,
56
+ "DOMMatrixReadOnly": false,
57
+ "DOMPoint": false,
58
+ "DOMPointReadOnly": false,
59
+ "DOMQuad": false,
60
+ "DOMRect": false,
61
+ "DOMRectReadOnly": false,
62
+ "DOMStringList": false,
63
+ "DecompressionStream": false,
64
+ "DedicatedWorkerGlobalScope": false,
65
+ "EncodedAudioChunk": false,
66
+ "EncodedVideoChunk": false,
67
+ "ErrorEvent": false,
68
+ "Event": false,
69
+ "EventSource": false,
70
+ "EventTarget": false,
71
+ "File": false,
72
+ "FileList": false,
73
+ "FileReader": false,
74
+ "FileReaderSync": false,
75
+ "FileSystemDirectoryHandle": false,
76
+ "FileSystemFileHandle": false,
77
+ "FileSystemHandle": false,
78
+ "FileSystemObserver": false,
79
+ "FileSystemSyncAccessHandle": false,
80
+ "FileSystemWritableFileStream": false,
81
+ "FontFace": false,
82
+ "FontFaceSet": false,
83
+ "FontFaceSetLoadEvent": false,
84
+ "FormData": false,
85
+ "GPU": false,
86
+ "GPUAdapter": false,
87
+ "GPUAdapterInfo": false,
88
+ "GPUBindGroup": false,
89
+ "GPUBindGroupLayout": false,
90
+ "GPUBuffer": false,
91
+ "GPUBufferUsage": false,
92
+ "GPUCanvasContext": false,
93
+ "GPUColorWrite": false,
94
+ "GPUCommandBuffer": false,
95
+ "GPUCommandEncoder": false,
96
+ "GPUCompilationInfo": false,
97
+ "GPUCompilationMessage": false,
98
+ "GPUComputePassEncoder": false,
99
+ "GPUComputePipeline": false,
100
+ "GPUDevice": false,
101
+ "GPUDeviceLostInfo": false,
102
+ "GPUError": false,
103
+ "GPUExternalTexture": false,
104
+ "GPUInternalError": false,
105
+ "GPUMapMode": false,
106
+ "GPUOutOfMemoryError": false,
107
+ "GPUPipelineError": false,
108
+ "GPUPipelineLayout": false,
109
+ "GPUQuerySet": false,
110
+ "GPUQueue": false,
111
+ "GPURenderBundle": false,
112
+ "GPURenderBundleEncoder": false,
113
+ "GPURenderPassEncoder": false,
114
+ "GPURenderPipeline": false,
115
+ "GPUSampler": false,
116
+ "GPUShaderModule": false,
117
+ "GPUShaderStage": false,
118
+ "GPUSupportedFeatures": false,
119
+ "GPUSupportedLimits": false,
120
+ "GPUTexture": false,
121
+ "GPUTextureUsage": false,
122
+ "GPUTextureView": false,
123
+ "GPUUncapturedErrorEvent": false,
124
+ "GPUValidationError": false,
125
+ "HID": false,
126
+ "HIDConnectionEvent": false,
127
+ "HIDDevice": false,
128
+ "HIDInputReportEvent": false,
129
+ "Headers": false,
130
+ "IDBCursor": false,
131
+ "IDBCursorWithValue": false,
132
+ "IDBDatabase": false,
133
+ "IDBFactory": false,
134
+ "IDBIndex": false,
135
+ "IDBKeyRange": false,
136
+ "IDBObjectStore": false,
137
+ "IDBOpenDBRequest": false,
138
+ "IDBRecord": false,
139
+ "IDBRequest": false,
140
+ "IDBTransaction": false,
141
+ "IDBVersionChangeEvent": false,
142
+ "IdleDetector": false,
143
+ "ImageBitmap": false,
144
+ "ImageBitmapRenderingContext": false,
145
+ "ImageData": false,
146
+ "ImageDecoder": false,
147
+ "ImageTrack": false,
148
+ "ImageTrackList": false,
149
+ "LanguageDetector": false,
150
+ "Lock": false,
151
+ "LockManager": false,
152
+ "MediaCapabilities": false,
153
+ "MediaSource": false,
154
+ "MediaSourceHandle": false,
155
+ "MessageChannel": false,
156
+ "MessageEvent": false,
157
+ "MessagePort": false,
158
+ "NavigationPreloadManager": false,
159
+ "NavigatorUAData": false,
160
+ "NetworkInformation": false,
161
+ "Notification": false,
162
+ "Observable": false,
163
+ "OffscreenCanvas": false,
164
+ "OffscreenCanvasRenderingContext2D": false,
165
+ "Origin": false,
166
+ "PERSISTENT": false,
167
+ "Path2D": false,
168
+ "Performance": false,
169
+ "PerformanceEntry": false,
170
+ "PerformanceMark": false,
171
+ "PerformanceMeasure": false,
172
+ "PerformanceObserver": false,
173
+ "PerformanceObserverEntryList": false,
174
+ "PerformanceResourceTiming": false,
175
+ "PerformanceServerTiming": false,
176
+ "PeriodicSyncManager": false,
177
+ "PermissionStatus": false,
178
+ "Permissions": false,
179
+ "PressureObserver": false,
180
+ "PressureRecord": false,
181
+ "ProgressEvent": false,
182
+ "PromiseRejectionEvent": false,
183
+ "PushManager": false,
184
+ "PushSubscription": false,
185
+ "PushSubscriptionOptions": false,
186
+ "QuotaExceededError": false,
187
+ "RTCDataChannel": false,
188
+ "RTCEncodedAudioFrame": false,
189
+ "RTCEncodedVideoFrame": false,
190
+ "RTCError": false,
191
+ "RTCErrorEvent": false,
192
+ "RTCRtpScriptTransformer": false,
193
+ "RTCTransformEvent": false,
194
+ "ReadableByteStreamController": false,
195
+ "ReadableStream": false,
196
+ "ReadableStreamBYOBReader": false,
197
+ "ReadableStreamBYOBRequest": false,
198
+ "ReadableStreamDefaultController": false,
199
+ "ReadableStreamDefaultReader": false,
200
+ "ReportBody": false,
201
+ "ReportingObserver": false,
202
+ "Request": false,
203
+ "Response": false,
204
+ "RestrictionTarget": false,
205
+ "Scheduler": false,
206
+ "SecurityPolicyViolationEvent": false,
207
+ "Serial": false,
208
+ "SerialPort": false,
209
+ "ServiceWorker": false,
210
+ "ServiceWorkerContainer": false,
211
+ "ServiceWorkerRegistration": false,
212
+ "SourceBuffer": false,
213
+ "SourceBufferList": false,
214
+ "StorageBucket": false,
215
+ "StorageBucketManager": false,
216
+ "StorageManager": false,
217
+ "StylePropertyMapReadOnly": false,
218
+ "Subscriber": false,
219
+ "SubtleCrypto": false,
220
+ "SyncManager": false,
221
+ "TEMPORARY": false,
222
+ "TaskController": false,
223
+ "TaskPriorityChangeEvent": false,
224
+ "TaskSignal": false,
225
+ "Temporal": false,
226
+ "TextDecoder": false,
227
+ "TextDecoderStream": false,
228
+ "TextEncoder": false,
229
+ "TextEncoderStream": false,
230
+ "TextMetrics": false,
231
+ "TransformStream": false,
232
+ "TransformStreamDefaultController": false,
233
+ "TrustedHTML": false,
234
+ "TrustedScript": false,
235
+ "TrustedScriptURL": false,
236
+ "TrustedTypePolicy": false,
237
+ "TrustedTypePolicyFactory": false,
238
+ "URL": false,
239
+ "URLPattern": false,
240
+ "URLSearchParams": false,
241
+ "USB": false,
242
+ "USBAlternateInterface": false,
243
+ "USBConfiguration": false,
244
+ "USBConnectionEvent": false,
245
+ "USBDevice": false,
246
+ "USBEndpoint": false,
247
+ "USBInTransferResult": false,
248
+ "USBInterface": false,
249
+ "USBIsochronousInTransferPacket": false,
250
+ "USBIsochronousInTransferResult": false,
251
+ "USBIsochronousOutTransferPacket": false,
252
+ "USBIsochronousOutTransferResult": false,
253
+ "USBOutTransferResult": false,
254
+ "UserActivation": false,
255
+ "VideoColorSpace": false,
256
+ "VideoDecoder": false,
257
+ "VideoEncoder": false,
258
+ "VideoFrame": false,
259
+ "WGSLLanguageFeatures": false,
260
+ "WebAssembly": false,
261
+ "WebGL2RenderingContext": false,
262
+ "WebGLActiveInfo": false,
263
+ "WebGLBuffer": false,
264
+ "WebGLContextEvent": false,
265
+ "WebGLFramebuffer": false,
266
+ "WebGLObject": false,
267
+ "WebGLProgram": false,
268
+ "WebGLQuery": false,
269
+ "WebGLRenderbuffer": false,
270
+ "WebGLRenderingContext": false,
271
+ "WebGLSampler": false,
272
+ "WebGLShader": false,
273
+ "WebGLShaderPrecisionFormat": false,
274
+ "WebGLSync": false,
275
+ "WebGLTexture": false,
276
+ "WebGLTransformFeedback": false,
277
+ "WebGLUniformLocation": false,
278
+ "WebGLVertexArrayObject": false,
279
+ "WebSocket": false,
280
+ "WebSocketError": false,
281
+ "WebSocketStream": false,
282
+ "WebTransport": false,
283
+ "WebTransportBidirectionalStream": false,
284
+ "WebTransportDatagramDuplexStream": false,
285
+ "WebTransportDatagramsWritable": false,
286
+ "WebTransportError": false,
287
+ "WebTransportReceiveStream": false,
288
+ "WebTransportSendGroup": false,
289
+ "WebTransportSendStream": false,
290
+ "Worker": false,
291
+ "WorkerGlobalScope": false,
292
+ "WorkerLocation": false,
293
+ "WorkerNavigator": false,
294
+ "WritableStream": false,
295
+ "WritableStreamDefaultController": false,
296
+ "WritableStreamDefaultWriter": false,
297
+ "XMLHttpRequest": false,
298
+ "XMLHttpRequestEventTarget": false,
299
+ "XMLHttpRequestUpload": false,
300
+ "addEventListener": false,
301
+ "ai": false,
302
+ "atob": false,
303
+ "btoa": false,
304
+ "caches": false,
305
+ "cancelAnimationFrame": false,
306
+ "clearInterval": false,
307
+ "clearTimeout": false,
308
+ "close": false,
309
+ "console": false,
310
+ "createImageBitmap": false,
311
+ "crossOriginIsolated": false,
312
+ "crypto": false,
313
+ "dispatchEvent": false,
314
+ "fetch": false,
315
+ "fonts": false,
316
+ "importScripts": false,
317
+ "indexedDB": false,
318
+ "isSecureContext": false,
319
+ "location": false,
320
+ "name": false,
321
+ "navigator": false,
322
+ "onerror": true,
323
+ "onlanguagechange": true,
324
+ "onmessage": true,
325
+ "onmessageerror": true,
326
+ "onoffline": true,
327
+ "ononline": true,
328
+ "onrejectionhandled": true,
329
+ "onrtctransform": true,
330
+ "onunhandledrejection": true,
331
+ "origin": false,
332
+ "performance": false,
333
+ "postMessage": false,
334
+ "queueMicrotask": false,
335
+ "removeEventListener": false,
336
+ "reportError": false,
337
+ "requestAnimationFrame": false,
338
+ "scheduler": false,
339
+ "self": false,
340
+ "setInterval": false,
341
+ "setTimeout": false,
342
+ "structuredClone": false,
343
+ "trustedTypes": false,
344
+ "webkitRequestFileSystem": false,
345
+ "webkitRequestFileSystemSync": false,
346
+ "webkitResolveLocalFileSystemSyncURL": false,
347
+ "webkitResolveLocalFileSystemURL": false,
348
+ "when": false
349
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "buffer": {
3
+ "Buffer": "the global `Buffer` with `Buffer.from()` or `Buffer.alloc()`",
4
+ "SlowBuffer": "`Buffer.allocUnsafeSlow()`"
5
+ },
6
+ "constants": {
7
+ "*": "`fs.constants` or `os.constants`"
8
+ },
9
+ "crypto": {
10
+ "Credentials": "`tls.SecureContext`",
11
+ "DEFAULT_ENCODING": "an explicit encoding argument",
12
+ "createCipher": "`crypto.createCipheriv()`",
13
+ "createDecipher": "`crypto.createDecipheriv()`",
14
+ "fips": "`crypto.getFips()` / `crypto.setFips()`",
15
+ "prng": "`crypto.randomBytes()`",
16
+ "pseudoRandomBytes": "`crypto.randomBytes()`",
17
+ "rng": "`crypto.randomBytes()`"
18
+ },
19
+ "domain": {
20
+ "*": "`async_hooks` (`AsyncLocalStorage`) or explicit error handling"
21
+ },
22
+ "events": {
23
+ "listenerCount": "`emitter.listenerCount()`"
24
+ },
25
+ "fs": {
26
+ "SyncWriteStream": "a `fs.WriteStream`",
27
+ "exists": "`fs.stat()` or `fs.access()`",
28
+ "lchmod": "`fs.chmod()`",
29
+ "lchmodSync": "`fs.chmodSync()`"
30
+ },
31
+ "globals": {
32
+ "Buffer": "`Buffer.from()`, `Buffer.alloc()` or `Buffer.allocUnsafe()`"
33
+ },
34
+ "module": {
35
+ "_debug": "`util.debuglog()`",
36
+ "createRequireFromPath": "`module.createRequire()`"
37
+ },
38
+ "os": {
39
+ "getNetworkInterfaces": "`os.networkInterfaces()`",
40
+ "tmpDir": "`os.tmpdir()`"
41
+ },
42
+ "path": {
43
+ "_makeLong": "`path.toNamespacedPath()`"
44
+ },
45
+ "punycode": {
46
+ "*": "the `punycode` package from npm, or `url.domainToASCII()`"
47
+ },
48
+ "sys": {
49
+ "*": "`util`"
50
+ },
51
+ "tls": {
52
+ "SecurePair": "`tls.TLSSocket`",
53
+ "createSecurePair": "`tls.TLSSocket`"
54
+ },
55
+ "url": {
56
+ "parse": "the WHATWG `new URL()`",
57
+ "resolve": "`new URL(input, base)`"
58
+ },
59
+ "util": {
60
+ "_extend": "`Object.assign()`",
61
+ "debug": "`util.debuglog()`",
62
+ "error": "`console.error()`",
63
+ "isArray": "`Array.isArray()`",
64
+ "isBoolean": "`typeof value === \"boolean\"`",
65
+ "isBuffer": "`Buffer.isBuffer()`",
66
+ "isDate": "`value instanceof Date`",
67
+ "isError": "`value instanceof Error`",
68
+ "isFunction": "`typeof value === \"function\"`",
69
+ "isNull": "`value === null`",
70
+ "isNullOrUndefined": "`value == null`",
71
+ "isNumber": "`typeof value === \"number\"`",
72
+ "isObject": "`value !== null && typeof value === \"object\"`",
73
+ "isPrimitive": "a `typeof` check",
74
+ "isRegExp": "`value instanceof RegExp`",
75
+ "isString": "`typeof value === \"string\"`",
76
+ "isSymbol": "`typeof value === \"symbol\"`",
77
+ "isUndefined": "`value === undefined`",
78
+ "log": "`console.log()`",
79
+ "print": "`console.log()`",
80
+ "pump": "`stream.pipeline()`",
81
+ "puts": "`console.log()`"
82
+ }
83
+ }
@@ -0,0 +1,131 @@
1
+ {
2
+ "accept-charset": "acceptCharset",
3
+ "accesskey": "accessKey",
4
+ "autocapitalize": "autoCapitalize",
5
+ "autocomplete": "autoComplete",
6
+ "autofocus": "autoFocus",
7
+ "autoplay": "autoPlay",
8
+ "cellpadding": "cellPadding",
9
+ "cellspacing": "cellSpacing",
10
+ "charset": "charSet",
11
+ "class": "className",
12
+ "colspan": "colSpan",
13
+ "contenteditable": "contentEditable",
14
+ "crossorigin": "crossOrigin",
15
+ "datetime": "dateTime",
16
+ "enctype": "encType",
17
+ "enterkeyhint": "enterKeyHint",
18
+ "fetchpriority": "fetchPriority",
19
+ "for": "htmlFor",
20
+ "formaction": "formAction",
21
+ "formenctype": "formEncType",
22
+ "formmethod": "formMethod",
23
+ "formnovalidate": "formNoValidate",
24
+ "formtarget": "formTarget",
25
+ "frameborder": "frameBorder",
26
+ "hreflang": "hrefLang",
27
+ "http-equiv": "httpEquiv",
28
+ "inputmode": "inputMode",
29
+ "itemprop": "itemProp",
30
+ "itemscope": "itemScope",
31
+ "itemtype": "itemType",
32
+ "marginheight": "marginHeight",
33
+ "marginwidth": "marginWidth",
34
+ "maxlength": "maxLength",
35
+ "minlength": "minLength",
36
+ "nomodule": "noModule",
37
+ "novalidate": "noValidate",
38
+ "onabort": "onAbort",
39
+ "onanimationend": "onAnimationEnd",
40
+ "onanimationiteration": "onAnimationIteration",
41
+ "onanimationstart": "onAnimationStart",
42
+ "onauxclick": "onAuxClick",
43
+ "onbeforeinput": "onBeforeInput",
44
+ "onblur": "onBlur",
45
+ "oncancel": "onCancel",
46
+ "oncanplay": "onCanPlay",
47
+ "oncanplaythrough": "onCanPlayThrough",
48
+ "onchange": "onChange",
49
+ "onclick": "onClick",
50
+ "onclose": "onClose",
51
+ "oncompositionend": "onCompositionEnd",
52
+ "oncompositionstart": "onCompositionStart",
53
+ "oncompositionupdate": "onCompositionUpdate",
54
+ "oncontextmenu": "onContextMenu",
55
+ "oncopy": "onCopy",
56
+ "oncut": "onCut",
57
+ "ondblclick": "onDoubleClick",
58
+ "ondrag": "onDrag",
59
+ "ondragend": "onDragEnd",
60
+ "ondragenter": "onDragEnter",
61
+ "ondragleave": "onDragLeave",
62
+ "ondragover": "onDragOver",
63
+ "ondragstart": "onDragStart",
64
+ "ondrop": "onDrop",
65
+ "ondurationchange": "onDurationChange",
66
+ "onemptied": "onEmptied",
67
+ "onended": "onEnded",
68
+ "onerror": "onError",
69
+ "onfocus": "onFocus",
70
+ "ongotpointercapture": "onGotPointerCapture",
71
+ "oninput": "onInput",
72
+ "oninvalid": "onInvalid",
73
+ "onkeydown": "onKeyDown",
74
+ "onkeypress": "onKeyPress",
75
+ "onkeyup": "onKeyUp",
76
+ "onload": "onLoad",
77
+ "onloadeddata": "onLoadedData",
78
+ "onloadedmetadata": "onLoadedMetadata",
79
+ "onloadstart": "onLoadStart",
80
+ "onlostpointercapture": "onLostPointerCapture",
81
+ "onmousedown": "onMouseDown",
82
+ "onmouseenter": "onMouseEnter",
83
+ "onmouseleave": "onMouseLeave",
84
+ "onmousemove": "onMouseMove",
85
+ "onmouseout": "onMouseOut",
86
+ "onmouseover": "onMouseOver",
87
+ "onmouseup": "onMouseUp",
88
+ "onpaste": "onPaste",
89
+ "onpause": "onPause",
90
+ "onplay": "onPlay",
91
+ "onplaying": "onPlaying",
92
+ "onpointercancel": "onPointerCancel",
93
+ "onpointerdown": "onPointerDown",
94
+ "onpointerenter": "onPointerEnter",
95
+ "onpointerleave": "onPointerLeave",
96
+ "onpointermove": "onPointerMove",
97
+ "onpointerout": "onPointerOut",
98
+ "onpointerover": "onPointerOver",
99
+ "onpointerup": "onPointerUp",
100
+ "onprogress": "onProgress",
101
+ "onratechange": "onRateChange",
102
+ "onreset": "onReset",
103
+ "onresize": "onResize",
104
+ "onscroll": "onScroll",
105
+ "onseeked": "onSeeked",
106
+ "onseeking": "onSeeking",
107
+ "onselect": "onSelect",
108
+ "onstalled": "onStalled",
109
+ "onsubmit": "onSubmit",
110
+ "onsuspend": "onSuspend",
111
+ "ontimeupdate": "onTimeUpdate",
112
+ "ontoggle": "onToggle",
113
+ "ontouchcancel": "onTouchCancel",
114
+ "ontouchend": "onTouchEnd",
115
+ "ontouchmove": "onTouchMove",
116
+ "ontouchstart": "onTouchStart",
117
+ "ontransitionend": "onTransitionEnd",
118
+ "onvolumechange": "onVolumeChange",
119
+ "onwaiting": "onWaiting",
120
+ "onwheel": "onWheel",
121
+ "playsinline": "playsInline",
122
+ "readonly": "readOnly",
123
+ "referrerpolicy": "referrerPolicy",
124
+ "rowspan": "rowSpan",
125
+ "spellcheck": "spellCheck",
126
+ "srcdoc": "srcDoc",
127
+ "srclang": "srcLang",
128
+ "srcset": "srcSet",
129
+ "tabindex": "tabIndex",
130
+ "usemap": "useMap"
131
+ }
package/package.json CHANGED
@@ -1,6 +1,16 @@
1
1
  {
2
2
  "name": "@codelaw/rules-js",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0",
4
+ "description": "codelaw's rules for JavaScript, TypeScript, JSX and TSX (SR-RULE-PACKS)",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/arpitarya/codelaw.git"
9
+ },
10
+ "homepage": "https://github.com/arpitarya/codelaw",
11
+ "keywords": [
12
+ "codelaw",
13
+ "codelaw-pack",
14
+ "lint-rules"
15
+ ]
16
+ }
@@ -0,0 +1,10 @@
1
+ description = "House conventions from codelaw's starter catalogue; opt in"
2
+
3
+ [rules]
4
+ "js/exports-at-end" = "error"
5
+ "js/import-groups" = "error"
6
+ "js/no-default-export" = "error"
7
+ "ts/type-only-imports" = "error"
8
+ "react/hook-prefix" = "error"
9
+ "react/props-type-name" = "error"
10
+ "stencil/tag-prefix" = "error"
@@ -0,0 +1,67 @@
1
+ description = "The correctness core of ESLint's recommended preset (@eslint/js 10.0.1), reimplemented"
2
+
3
+ [rules]
4
+ "js/constructor-super" = "error"
5
+ "js/for-direction" = "error"
6
+ "js/getter-return" = "error"
7
+ "js/no-async-promise-executor" = "error"
8
+ "js/no-case-declarations" = "error"
9
+ "js/no-class-assign" = "error"
10
+ "js/no-compare-neg-zero" = "error"
11
+ "js/no-cond-assign" = "error"
12
+ "js/no-const-assign" = "error"
13
+ "js/no-constant-binary-expression" = "error"
14
+ "js/no-constant-condition" = "error"
15
+ "js/no-control-regex" = "error"
16
+ "js/no-debugger" = "error"
17
+ "js/no-delete-var" = "error"
18
+ "js/no-dupe-args" = "error"
19
+ "js/no-dupe-class-members" = "error"
20
+ "js/no-dupe-else-if" = "error"
21
+ "js/no-dupe-keys" = "error"
22
+ "js/no-duplicate-case" = "error"
23
+ "js/no-empty" = "error"
24
+ "js/no-empty-character-class" = "error"
25
+ "js/no-empty-pattern" = "error"
26
+ "js/no-empty-static-block" = "error"
27
+ "js/no-ex-assign" = "error"
28
+ "js/no-extra-boolean-cast" = "error"
29
+ "js/no-fallthrough" = "error"
30
+ "js/no-func-assign" = "error"
31
+ "js/no-global-assign" = "error"
32
+ "js/no-import-assign" = "error"
33
+ "js/no-invalid-regexp" = "error"
34
+ "js/no-irregular-whitespace" = "error"
35
+ "js/no-loss-of-precision" = "error"
36
+ "js/no-misleading-character-class" = "error"
37
+ "js/no-new-native-nonconstructor" = "error"
38
+ "js/no-nonoctal-decimal-escape" = "error"
39
+ "js/no-obj-calls" = "error"
40
+ "js/no-octal" = "error"
41
+ "js/no-prototype-builtins" = "error"
42
+ "js/no-redeclare" = "error"
43
+ "js/no-regex-spaces" = "error"
44
+ "js/no-self-assign" = "error"
45
+ "js/no-setter-return" = "error"
46
+ "js/no-shadow-restricted-names" = "error"
47
+ "js/no-sparse-arrays" = "error"
48
+ "js/no-this-before-super" = "error"
49
+ "js/no-unassigned-vars" = "error"
50
+ "js/no-undef" = "error"
51
+ "js/no-unexpected-multiline" = "error"
52
+ "js/no-unreachable" = "error"
53
+ "js/no-unsafe-finally" = "error"
54
+ "js/no-unsafe-negation" = "error"
55
+ "js/no-unsafe-optional-chaining" = "error"
56
+ "js/no-unused-labels" = "error"
57
+ "js/no-unused-private-class-members" = "error"
58
+ "js/no-unused-vars" = "error"
59
+ "js/no-useless-assignment" = "error"
60
+ "js/no-useless-backreference" = "error"
61
+ "js/no-useless-catch" = "error"
62
+ "js/no-useless-escape" = "error"
63
+ "js/no-with" = "error"
64
+ "js/preserve-caught-error" = "error"
65
+ "js/require-yield" = "error"
66
+ "js/use-isnan" = "error"
67
+ "js/valid-typeof" = "error"
@@ -0,0 +1,13 @@
1
+ description = "eslint-plugin-n 18.5.0 recommended-module: the rules that need no package.json, hashbang on package.json's bin, and the import rules on the project graph, reimplemented"
2
+
3
+ [rules]
4
+ "node/hashbang" = "error"
5
+ "node/no-deprecated-api" = "error"
6
+ "node/no-exports-assign" = "error"
7
+ "node/no-process-exit" = "error"
8
+ "node/no-missing-import" = "error"
9
+ "node/no-missing-require" = "error"
10
+ "node/no-extraneous-import" = "error"
11
+ "node/no-extraneous-require" = "error"
12
+ "node/no-unpublished-import" = "error"
13
+ "node/no-unpublished-require" = "error"