better-lock 1.0.0 → 2.0.1-beta

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 (54) hide show
  1. package/.eslintrc.js +24 -0
  2. package/.idea/better-lock.iml +1 -7
  3. package/.idea/codeStyles/Project.xml +336 -5
  4. package/.idea/compiler.xml +7 -0
  5. package/.idea/inspectionProfiles/Project_Default.xml +6 -2
  6. package/.idea/jsLibraryMappings.xml +0 -1
  7. package/.idea/modules.xml +1 -1
  8. package/.idea/prettier.xml +8 -0
  9. package/.prettierrc.yaml +1 -3
  10. package/.travis.yml +2 -2
  11. package/README.md +102 -53
  12. package/dist/better_lock.d.ts +50 -0
  13. package/dist/better_lock.js +317 -0
  14. package/dist/better_lock.js.map +1 -0
  15. package/dist/errors.d.ts +44 -0
  16. package/dist/errors.js +131 -0
  17. package/dist/errors.js.map +1 -0
  18. package/dist/index.d.ts +16 -0
  19. package/dist/index.js +28 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/internals.d.ts +75 -0
  22. package/dist/internals.js +75 -0
  23. package/dist/internals.js.map +1 -0
  24. package/dist/options.d.ts +54 -0
  25. package/dist/options.js +3 -0
  26. package/dist/options.js.map +1 -0
  27. package/dist/tools.d.ts +19 -0
  28. package/dist/tools.js +109 -0
  29. package/dist/tools.js.map +1 -0
  30. package/dist/types.d.ts +23 -0
  31. package/dist/types.js +3 -0
  32. package/dist/types.js.map +1 -0
  33. package/jest.config.js +4 -0
  34. package/package.json +30 -8
  35. package/spec/better_lock.spec.ts +614 -0
  36. package/src/better_lock.ts +430 -0
  37. package/src/errors.ts +124 -0
  38. package/src/index.ts +54 -0
  39. package/src/internals.ts +118 -0
  40. package/src/options.ts +63 -0
  41. package/src/tools.ts +111 -0
  42. package/src/types.ts +29 -0
  43. package/tsconfig.json +13 -0
  44. package/.idea/markdown-navigator/profiles_settings.xml +0 -3
  45. package/.idea/markdown-navigator.xml +0 -78
  46. package/.idea/misc.xml +0 -6
  47. package/.idea/watcherTasks.xml +0 -8
  48. package/index.js +0 -19
  49. package/spec/better_lock.spec.js +0 -583
  50. package/src/better_lock.js +0 -400
  51. package/src/errors.js +0 -81
  52. package/src/options.js +0 -104
  53. package/src/tools.js +0 -125
  54. package/src/types.js +0 -110
package/.eslintrc.js ADDED
@@ -0,0 +1,24 @@
1
+ module.exports = {
2
+ parser: '@typescript-eslint/parser',
3
+ parserOptions: {
4
+ ecmaVersion: 2020,
5
+ sourceType: 'module',
6
+ },
7
+ extends: ['plugin:@typescript-eslint/recommended', 'prettier'],
8
+ rules: {
9
+ '@typescript-eslint/no-explicit-any': 'off',
10
+ '@typescript-eslint/explicit-module-boundary-types': 'off',
11
+ '@typescript-eslint/no-empty-function': 'off',
12
+ '@typescript-eslint/naming-convention': [
13
+ 'error',
14
+ {
15
+ selector: 'interface',
16
+ format: ['PascalCase'],
17
+ custom: {
18
+ regex: '^I[A-Z]',
19
+ match: true,
20
+ },
21
+ },
22
+ ],
23
+ },
24
+ };
@@ -3,15 +3,9 @@
3
3
  <component name="NewModuleRootManager">
4
4
  <content url="file://$MODULE_DIR$">
5
5
  <sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
6
- <excludeFolder url="file://$MODULE_DIR$/.tmp" />
7
- <excludeFolder url="file://$MODULE_DIR$/temp" />
8
- <excludeFolder url="file://$MODULE_DIR$/tmp" />
6
+ <excludeFolder url="file://$MODULE_DIR$/dist" />
9
7
  </content>
10
8
  <orderEntry type="inheritedJdk" />
11
9
  <orderEntry type="sourceFolder" forTests="false" />
12
- <orderEntry type="library" name="chai-DefinitelyTyped" level="application" />
13
- <orderEntry type="library" name="mocha-DefinitelyTyped" level="application" />
14
- <orderEntry type="library" name="@types/chai" level="application" />
15
- <orderEntry type="library" name="@types/mocha" level="application" />
16
10
  </component>
17
11
  </module>
@@ -1,5 +1,17 @@
1
1
  <component name="ProjectCodeStyleConfiguration">
2
2
  <code_scheme name="Project" version="173">
3
+ <option name="OTHER_INDENT_OPTIONS">
4
+ <value>
5
+ <option name="INDENT_SIZE" value="2" />
6
+ <option name="TAB_SIZE" value="2" />
7
+ </value>
8
+ </option>
9
+ <HTMLCodeStyleSettings>
10
+ <option name="HTML_ALIGN_ATTRIBUTES" value="false" />
11
+ <option name="HTML_SPACE_INSIDE_EMPTY_TAG" value="true" />
12
+ <option name="HTML_QUOTE_STYLE" value="Single" />
13
+ <option name="HTML_ENFORCE_QUOTES" value="true" />
14
+ </HTMLCodeStyleSettings>
3
15
  <JSCodeStyleSettings version="0">
4
16
  <option name="FORCE_SEMICOLON_STYLE" value="true" />
5
17
  <option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
@@ -9,9 +21,10 @@
9
21
  <option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
10
22
  <option name="SPACES_WITHIN_IMPORTS" value="true" />
11
23
  </JSCodeStyleSettings>
12
- <MarkdownNavigatorCodeStyleSettings>
13
- <option name="RIGHT_MARGIN" value="72" />
14
- </MarkdownNavigatorCodeStyleSettings>
24
+ <PHPCodeStyleSettings>
25
+ <option name="LOWER_CASE_BOOLEAN_CONST" value="true" />
26
+ <option name="LOWER_CASE_NULL_CONST" value="true" />
27
+ </PHPCodeStyleSettings>
15
28
  <TypeScriptCodeStyleSettings version="0">
16
29
  <option name="FORCE_SEMICOLON_STYLE" value="true" />
17
30
  <option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
@@ -20,26 +33,344 @@
20
33
  <option name="ENFORCE_TRAILING_COMMA" value="WhenMultiline" />
21
34
  <option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
22
35
  <option name="SPACES_WITHIN_IMPORTS" value="true" />
36
+ <option name="USE_CHAINED_CALLS_GROUP_INDENTS" value="true" />
23
37
  </TypeScriptCodeStyleSettings>
38
+ <VueCodeStyleSettings>
39
+ <option name="INTERPOLATION_NEW_LINE_AFTER_START_DELIMITER" value="false" />
40
+ <option name="INTERPOLATION_NEW_LINE_BEFORE_END_DELIMITER" value="false" />
41
+ </VueCodeStyleSettings>
24
42
  <XML>
25
- <option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
43
+ <option name="XML_ALIGN_ATTRIBUTES" value="false" />
26
44
  </XML>
45
+ <codeStyleSettings language="CSS">
46
+ <indentOptions>
47
+ <option name="INDENT_SIZE" value="2" />
48
+ <option name="CONTINUATION_INDENT_SIZE" value="4" />
49
+ <option name="TAB_SIZE" value="2" />
50
+ </indentOptions>
51
+ </codeStyleSettings>
52
+ <codeStyleSettings language="DB2">
53
+ <indentOptions>
54
+ <option name="USE_TAB_CHARACTER" value="true" />
55
+ </indentOptions>
56
+ </codeStyleSettings>
57
+ <codeStyleSettings language="Derby">
58
+ <indentOptions>
59
+ <option name="USE_TAB_CHARACTER" value="true" />
60
+ </indentOptions>
61
+ </codeStyleSettings>
62
+ <codeStyleSettings language="Gherkin">
63
+ <indentOptions>
64
+ <option name="CONTINUATION_INDENT_SIZE" value="4" />
65
+ <option name="TAB_SIZE" value="2" />
66
+ </indentOptions>
67
+ </codeStyleSettings>
68
+ <codeStyleSettings language="H2">
69
+ <indentOptions>
70
+ <option name="USE_TAB_CHARACTER" value="true" />
71
+ </indentOptions>
72
+ </codeStyleSettings>
73
+ <codeStyleSettings language="HSQLDB">
74
+ <indentOptions>
75
+ <option name="USE_TAB_CHARACTER" value="true" />
76
+ </indentOptions>
77
+ </codeStyleSettings>
78
+ <codeStyleSettings language="HTML">
79
+ <option name="SOFT_MARGINS" value="100" />
80
+ <indentOptions>
81
+ <option name="INDENT_SIZE" value="2" />
82
+ <option name="CONTINUATION_INDENT_SIZE" value="2" />
83
+ <option name="TAB_SIZE" value="2" />
84
+ </indentOptions>
85
+ </codeStyleSettings>
86
+ <codeStyleSettings language="Haml">
87
+ <indentOptions>
88
+ <option name="CONTINUATION_INDENT_SIZE" value="4" />
89
+ <option name="TAB_SIZE" value="2" />
90
+ </indentOptions>
91
+ </codeStyleSettings>
92
+ <codeStyleSettings language="JSON">
93
+ <indentOptions>
94
+ <option name="CONTINUATION_INDENT_SIZE" value="4" />
95
+ <option name="TAB_SIZE" value="2" />
96
+ </indentOptions>
97
+ </codeStyleSettings>
27
98
  <codeStyleSettings language="JavaScript">
99
+ <option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
100
+ <option name="ALIGN_MULTILINE_FOR" value="false" />
28
101
  <option name="SOFT_MARGINS" value="100" />
29
102
  <indentOptions>
30
103
  <option name="INDENT_SIZE" value="2" />
31
104
  <option name="CONTINUATION_INDENT_SIZE" value="2" />
32
105
  <option name="TAB_SIZE" value="2" />
106
+ </indentOptions>
107
+ </codeStyleSettings>
108
+ <codeStyleSettings language="LESS">
109
+ <indentOptions>
110
+ <option name="CONTINUATION_INDENT_SIZE" value="4" />
111
+ <option name="TAB_SIZE" value="2" />
112
+ </indentOptions>
113
+ </codeStyleSettings>
114
+ <codeStyleSettings language="Markdown">
115
+ <indentOptions>
116
+ <option name="INDENT_SIZE" value="2" />
117
+ <option name="CONTINUATION_INDENT_SIZE" value="4" />
118
+ <option name="TAB_SIZE" value="2" />
119
+ </indentOptions>
120
+ </codeStyleSettings>
121
+ <codeStyleSettings language="MySQL">
122
+ <indentOptions>
123
+ <option name="USE_TAB_CHARACTER" value="true" />
124
+ </indentOptions>
125
+ </codeStyleSettings>
126
+ <codeStyleSettings language="Oracle">
127
+ <indentOptions>
128
+ <option name="USE_TAB_CHARACTER" value="true" />
129
+ </indentOptions>
130
+ </codeStyleSettings>
131
+ <codeStyleSettings language="PHP">
132
+ <option name="CLASS_BRACE_STYLE" value="1" />
133
+ <option name="METHOD_BRACE_STYLE" value="1" />
134
+ <option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
135
+ <option name="ALIGN_MULTILINE_FOR" value="false" />
136
+ <indentOptions>
137
+ <option name="SMART_TABS" value="true" />
138
+ </indentOptions>
139
+ <arrangement>
140
+ <rules>
141
+ <section>
142
+ <rule>
143
+ <match>
144
+ <CONST />
145
+ </match>
146
+ </rule>
147
+ </section>
148
+ <section>
149
+ <rule>
150
+ <match>
151
+ <AND>
152
+ <FIELD />
153
+ <PUBLIC />
154
+ <STATIC />
155
+ </AND>
156
+ </match>
157
+ </rule>
158
+ </section>
159
+ <section>
160
+ <rule>
161
+ <match>
162
+ <AND>
163
+ <FIELD />
164
+ <PROTECTED />
165
+ <STATIC />
166
+ </AND>
167
+ </match>
168
+ </rule>
169
+ </section>
170
+ <section>
171
+ <rule>
172
+ <match>
173
+ <AND>
174
+ <FIELD />
175
+ <PRIVATE />
176
+ <STATIC />
177
+ </AND>
178
+ </match>
179
+ </rule>
180
+ </section>
181
+ <section>
182
+ <rule>
183
+ <match>
184
+ <AND>
185
+ <FIELD />
186
+ <PUBLIC />
187
+ </AND>
188
+ </match>
189
+ </rule>
190
+ </section>
191
+ <section>
192
+ <rule>
193
+ <match>
194
+ <AND>
195
+ <FIELD />
196
+ <PROTECTED />
197
+ </AND>
198
+ </match>
199
+ </rule>
200
+ </section>
201
+ <section>
202
+ <rule>
203
+ <match>
204
+ <AND>
205
+ <FIELD />
206
+ <PRIVATE />
207
+ </AND>
208
+ </match>
209
+ </rule>
210
+ </section>
211
+ <section>
212
+ <rule>
213
+ <match>
214
+ <CONSTRUCTOR />
215
+ </match>
216
+ </rule>
217
+ </section>
218
+ <section>
219
+ <rule>
220
+ <match>
221
+ <AND>
222
+ <METHOD />
223
+ <PUBLIC />
224
+ <STATIC />
225
+ </AND>
226
+ </match>
227
+ </rule>
228
+ </section>
229
+ <section>
230
+ <rule>
231
+ <match>
232
+ <AND>
233
+ <METHOD />
234
+ <PROTECTED />
235
+ <STATIC />
236
+ </AND>
237
+ </match>
238
+ </rule>
239
+ </section>
240
+ <section>
241
+ <rule>
242
+ <match>
243
+ <AND>
244
+ <METHOD />
245
+ <PRIVATE />
246
+ <STATIC />
247
+ </AND>
248
+ </match>
249
+ </rule>
250
+ </section>
251
+ <section>
252
+ <rule>
253
+ <match>
254
+ <AND>
255
+ <METHOD />
256
+ <PUBLIC />
257
+ </AND>
258
+ </match>
259
+ </rule>
260
+ </section>
261
+ <section>
262
+ <rule>
263
+ <match>
264
+ <AND>
265
+ <METHOD />
266
+ <PROTECTED />
267
+ </AND>
268
+ </match>
269
+ </rule>
270
+ </section>
271
+ <section>
272
+ <rule>
273
+ <match>
274
+ <AND>
275
+ <METHOD />
276
+ <PRIVATE />
277
+ </AND>
278
+ </match>
279
+ </rule>
280
+ </section>
281
+ <section>
282
+ <rule>
283
+ <match>
284
+ <TRAIT />
285
+ </match>
286
+ </rule>
287
+ </section>
288
+ <section>
289
+ <rule>
290
+ <match>
291
+ <INTERFACE />
292
+ </match>
293
+ </rule>
294
+ </section>
295
+ <section>
296
+ <rule>
297
+ <match>
298
+ <CLASS />
299
+ </match>
300
+ </rule>
301
+ </section>
302
+ </rules>
303
+ </arrangement>
304
+ </codeStyleSettings>
305
+ <codeStyleSettings language="PostgreSQL">
306
+ <indentOptions>
307
+ <option name="USE_TAB_CHARACTER" value="true" />
308
+ </indentOptions>
309
+ </codeStyleSettings>
310
+ <codeStyleSettings language="SASS">
311
+ <indentOptions>
312
+ <option name="CONTINUATION_INDENT_SIZE" value="4" />
313
+ <option name="TAB_SIZE" value="2" />
314
+ </indentOptions>
315
+ </codeStyleSettings>
316
+ <codeStyleSettings language="SCSS">
317
+ <indentOptions>
318
+ <option name="CONTINUATION_INDENT_SIZE" value="4" />
319
+ <option name="TAB_SIZE" value="2" />
320
+ </indentOptions>
321
+ </codeStyleSettings>
322
+ <codeStyleSettings language="SQL">
323
+ <indentOptions>
324
+ <option name="USE_TAB_CHARACTER" value="true" />
325
+ </indentOptions>
326
+ </codeStyleSettings>
327
+ <codeStyleSettings language="SQLite">
328
+ <indentOptions>
329
+ <option name="USE_TAB_CHARACTER" value="true" />
330
+ </indentOptions>
331
+ </codeStyleSettings>
332
+ <codeStyleSettings language="Stylus">
333
+ <indentOptions>
334
+ <option name="CONTINUATION_INDENT_SIZE" value="4" />
335
+ <option name="TAB_SIZE" value="2" />
336
+ </indentOptions>
337
+ </codeStyleSettings>
338
+ <codeStyleSettings language="Sybase">
339
+ <indentOptions>
340
+ <option name="USE_TAB_CHARACTER" value="true" />
341
+ </indentOptions>
342
+ </codeStyleSettings>
343
+ <codeStyleSettings language="TSQL">
344
+ <indentOptions>
345
+ <option name="USE_TAB_CHARACTER" value="true" />
346
+ </indentOptions>
347
+ </codeStyleSettings>
348
+ <codeStyleSettings language="Twig">
349
+ <indentOptions>
33
350
  <option name="USE_TAB_CHARACTER" value="true" />
34
351
  </indentOptions>
35
352
  </codeStyleSettings>
36
353
  <codeStyleSettings language="TypeScript">
354
+ <option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
355
+ <option name="ALIGN_MULTILINE_FOR" value="false" />
37
356
  <option name="SOFT_MARGINS" value="100" />
38
357
  <indentOptions>
39
358
  <option name="INDENT_SIZE" value="2" />
40
359
  <option name="CONTINUATION_INDENT_SIZE" value="2" />
41
360
  <option name="TAB_SIZE" value="2" />
42
- <option name="USE_TAB_CHARACTER" value="true" />
361
+ </indentOptions>
362
+ </codeStyleSettings>
363
+ <codeStyleSettings language="Vue">
364
+ <option name="SOFT_MARGINS" value="100" />
365
+ <indentOptions>
366
+ <option name="CONTINUATION_INDENT_SIZE" value="2" />
367
+ </indentOptions>
368
+ </codeStyleSettings>
369
+ <codeStyleSettings language="XML">
370
+ <indentOptions>
371
+ <option name="INDENT_SIZE" value="2" />
372
+ <option name="CONTINUATION_INDENT_SIZE" value="4" />
373
+ <option name="TAB_SIZE" value="2" />
43
374
  </indentOptions>
44
375
  </codeStyleSettings>
45
376
  </code_scheme>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="TypeScriptCompiler">
4
+ <option name="typeScriptCompilerParams" value="--sourceMap true" />
5
+ <option name="useConfig" value="true" />
6
+ </component>
7
+ </project>
@@ -1,8 +1,12 @@
1
1
  <component name="InspectionProjectProfileManager">
2
2
  <profile version="1.0">
3
3
  <option name="myName" value="Project Default" />
4
- <inspection_tool class="BadExpressionStatementJS" enabled="false" level="WARNING" enabled_by_default="false" />
5
- <inspection_tool class="JSUnusedGlobalSymbols" enabled="false" level="WARNING" enabled_by_default="false" />
4
+ <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
5
+ <inspection_tool class="JSUnfilteredForInLoop" enabled="false" level="WARNING" enabled_by_default="false" />
6
6
  <inspection_tool class="TrivialIfJS" enabled="false" level="WARNING" enabled_by_default="false" />
7
+ <inspection_tool class="UnnecessaryLocalVariableJS" enabled="false" level="WARNING" enabled_by_default="false">
8
+ <option name="m_ignoreImmediatelyReturnedVariables" value="false" />
9
+ <option name="m_ignoreAnnotatedVariables" value="false" />
10
+ </inspection_tool>
7
11
  </profile>
8
12
  </component>
@@ -1,7 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <project version="4">
3
3
  <component name="JavaScriptLibraryMappings">
4
- <file url="PROJECT" libraries="{@types/chai, @types/mocha}" />
5
4
  <includedPredefinedLibrary name="Node.js Core" />
6
5
  </component>
7
6
  </project>
package/.idea/modules.xml CHANGED
@@ -5,4 +5,4 @@
5
5
  <module fileurl="file://$PROJECT_DIR$/.idea/better-lock.iml" filepath="$PROJECT_DIR$/.idea/better-lock.iml" />
6
6
  </modules>
7
7
  </component>
8
- </project>
8
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="PrettierConfiguration">
4
+ <option name="myRunOnSave" value="true" />
5
+ <option name="myRunOnReformat" value="true" />
6
+ <option name="myFilesPattern" value="{**/*,*}" />
7
+ </component>
8
+ </project>
package/.prettierrc.yaml CHANGED
@@ -1,6 +1,4 @@
1
1
  printWidth: 100
2
- parser: babylon
3
2
  singleQuote: true
4
- useTabs: true
5
3
  trailingComma: es5
6
- tabWidth: 2
4
+ arrowParens: avoid
package/.travis.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  language: node_js
2
2
  node_js:
3
- - "8"
4
- - "10"
3
+ - '12'
4
+ - '14'