iry 0.1.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c8ae02334a5f3e0b1089e4089f04008854e944e26a375160631c67ec182addab
4
- data.tar.gz: ad323f4e0bc0e11f0ff75ad291f00ef9460eda43ce220c19ad3d24d9cd18d0ee
3
+ metadata.gz: 1cabc0965e3b746552dee09d6fcf0356bb0f166114e3cb9d696c00c033742016
4
+ data.tar.gz: 0171d5388f8a7ee89d942e1ea959e2e309f3ef15fc869dba804dba8e6de0877f
5
5
  SHA512:
6
- metadata.gz: ea80cdf04ec0c0322209a9eef78447d27f8833e47540faf60ca37ed9e27b78e8b8a8557d6b7111f1673bf05b6f14994e223dae49b99fa26c955520c0938386dd
7
- data.tar.gz: 9d7d43d363d802124ca72b0b7714b67aa192a2adb6a2c93bbcc98f5644d43ef81be49d662ccc93eb591ecc631d0ddecaec28aec1951659053734276663d1363c
6
+ metadata.gz: ef0954dca71dbdeacd8588256939faa6a18b16ff85d1b913980c23e5058c54ceaf946959de3bbb0b9f421b5b5b3f57dea5d4d001295d6e2ad17fbfeda688771d
7
+ data.tar.gz: cd3117ad1717f98fbe96d823920a25742aca1a3f10948f60ae47f9567a31c7e55633d7b2dc3ee8d151cb60e7416bd9cdb840211e8e81cd44d63ced15b199bdc1
data/CHANGELOG.md CHANGED
@@ -1,18 +1,14 @@
1
- ## [0.1.1](https://github.com/Fire-Dragon-DoL/iry/compare/v0.1.0...v0.1.1) (2023-07-07)
2
-
3
-
4
-
5
- # [0.1.0](https://github.com/Fire-Dragon-DoL/iry/compare/8a133c2c19b99881619a9e1c7c11076030755f66...v0.1.0) (2023-07-07)
1
+ # [0.2.0](https://github.com/Fire-Dragon-DoL/iry/compare/8a133c2c19b99881619a9e1c7c11076030755f66...v0.2.0) (2023-07-08)
6
2
 
7
3
 
8
4
  ### Features
9
5
 
10
- * **constraints:** check constraint is present ([2723ad7](https://github.com/Fire-Dragon-DoL/iry/commit/2723ad70d7dbb4cea4b4c6e92ce59627fae64c27))
11
- * **constraints:** exclusion constraint is present ([bdb904a](https://github.com/Fire-Dragon-DoL/iry/commit/bdb904a80dd1f6b1960f2b8378490cc192deb83e))
12
- * **constraints:** foreign key constraint is present ([efed498](https://github.com/Fire-Dragon-DoL/iry/commit/efed4986a10b40c77dcd063d8801eb77d605d807))
13
- * **deps:** dependency surface is reduced ([ff4af7e](https://github.com/Fire-Dragon-DoL/iry/commit/ff4af7e365537e30a0d95bfdee84e681f54c155a))
6
+ * **constraints:** check constraint is present ([d0cc380](https://github.com/Fire-Dragon-DoL/iry/commit/d0cc3803fdcda45df964f6431890f8831d3641e5))
7
+ * **constraints:** exclusion constraint is present ([1894e85](https://github.com/Fire-Dragon-DoL/iry/commit/1894e85bfa11e272be9b5f0f8efc170f7ce57a48))
8
+ * **constraints:** foreign key constraint is present ([e637b06](https://github.com/Fire-Dragon-DoL/iry/commit/e637b0603bb6fd34e2732426544fc31904bb5409))
9
+ * **deps:** dependency surface is reduced ([2dfc595](https://github.com/Fire-Dragon-DoL/iry/commit/2dfc595ebd221aedb072398e1ace8460208d06ac))
14
10
  * **project:** setup ([8a133c2](https://github.com/Fire-Dragon-DoL/iry/commit/8a133c2c19b99881619a9e1c7c11076030755f66))
15
- * **ruby:** version is forced to >= 2.7 ([f386ce6](https://github.com/Fire-Dragon-DoL/iry/commit/f386ce6db3aab7399b71a15bfed8228884a82f16))
11
+ * **ruby:** version is forced to >= 2.7 ([9b20ed8](https://github.com/Fire-Dragon-DoL/iry/commit/9b20ed8ec0ae2a9906bdefe28cf674d4700f4d67))
16
12
  * **unique-constraint:** test is implemented ([c4266b9](https://github.com/Fire-Dragon-DoL/iry/commit/c4266b910757b6adef18db41dfa5dfd9353c1037))
17
13
 
18
14
 
data/README.md CHANGED
@@ -1,7 +1,13 @@
1
+ [![Iry](https://github.com/Fire-Dragon-DoL/iry/actions/workflows/main.yml/badge.svg)](https://github.com/Fire-Dragon-DoL/iry/actions/workflows/main.yml) [![Gem Version](https://badge.fury.io/rb/iry.svg)](https://badge.fury.io/rb/iry)
2
+
1
3
  # Iry
2
4
 
3
5
  Convert constraint errors into Rails model validation errors.
4
6
 
7
+ ## Documentation
8
+
9
+ https://rubydoc.info/gems/iry/frames
10
+
5
11
  ## Usage
6
12
 
7
13
  Given the following database schema:
@@ -44,6 +50,7 @@ fail_user.errors.details.fetch(:unique_text) #=> [{error: :taken}]
44
50
  Multiple constraints of the same or different types can be present on the model, as long as the `:name` is different.
45
51
 
46
52
  The following constraint types are available:
53
+
47
54
  - [`check_constraint`](#check_constraint)
48
55
  - [`exclusion_constraint`](#exclusion_constraint)
49
56
  - [`foreign_key_constraint`](#foreign_key_constraint)
@@ -53,7 +60,11 @@ The class method `.constraints` is also available, that returns all the constrai
53
60
 
54
61
  ## Constraints
55
62
 
56
- ### `check_constraint`
63
+ ### [`check_constraint`](https://rubydoc.info/gems/iry/Iry%2FMacros:check_constraint)
64
+
65
+ ```rbs
66
+ check_constraint(key, name: nil, message: :invalid) ⇒ void
67
+ ```
57
68
 
58
69
  Catches a specific check constraint violation.
59
70
 
@@ -61,7 +72,11 @@ Catches a specific check constraint violation.
61
72
  - **name** (optional `String`) constraint name in the database, to detect constraint errors. Infferred if omitted
62
73
  - **message** (optional `String` or `Symbol`) error message, defaults to `:invalid`
63
74
 
64
- ### `exclusion_constraint`
75
+ ### [`exclusion_constraint`](https://rubydoc.info/gems/iry/Iry%2FMacros:exclusion_constraint)
76
+
77
+ ```rbs
78
+ exclusion_constraint(key, name: nil, message: :taken) ⇒ void
79
+ ```
65
80
 
66
81
  Catches a specific exclusion constraint violation.
67
82
 
@@ -69,7 +84,11 @@ Catches a specific exclusion constraint violation.
69
84
  - **name** (optional `String`) constraint name in the database, to detect constraint errors. Infferred if omitted
70
85
  - **message** (optional `String` or `Symbol`) error message, defaults to `:taken`
71
86
 
72
- ### `foreign_key_constraint`
87
+ ### [`foreign_key_constraint`](https://rubydoc.info/gems/iry/Iry%2FMacros:foreign_key_constraint)
88
+
89
+ ```rbs
90
+ foreign_key_constraint(key_or_keys, name: nil, message: :required, error_key: nil) ⇒ void
91
+ ```
73
92
 
74
93
  Catches a specific foreign key constraint violation.
75
94
 
@@ -78,7 +97,11 @@ Catches a specific foreign key constraint violation.
78
97
  - **message** (optional `String` or `Symbol`) error message, defaults to `:required`
79
98
  - **error_key** (optional `Symbol`) which key will have validation errors added to
80
99
 
81
- ### `unique_constraint`
100
+ ### [`unique_constraint`](https://rubydoc.info/gems/iry/Iry%2FMacros:unique_constraint)
101
+
102
+ ```rbs
103
+ unique_constraint(key_or_keys, name: nil, message: :taken, error_key: nil) ⇒ void
104
+ ```
82
105
 
83
106
  Catches a specific foreign key constraint violation.
84
107
 
@@ -93,7 +116,7 @@ Catches a specific foreign key constraint violation.
93
116
  are cleared
94
117
  - `create!` and `update!` will raise `ActiveRecord::RecordNotSaved` for constraints that are caught by `iry`, instead
95
118
  of `ActiveModel::ValidationError`
96
- - Currently only PostgreSQL is supported, with the `pg` gem, but it's easy to add support for other databases.
119
+ - Currently only PostgreSQL is supported with the `pg` gem, but it should be simple to add support for other databases.
97
120
 
98
121
  ## Installation
99
122
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.3.0
data/db/schema.pgsql CHANGED
@@ -6,6 +6,7 @@ create table if not exists users (
6
6
  unique_text text unique not null default gen_random_uuid()::text check (unique_text != 'invalid'),
7
7
  exclude_text text not null default gen_random_uuid()::text,
8
8
  user_id uuid references users (id),
9
+ untracked_text text unique not null default gen_random_uuid()::text,
9
10
  friend_user_id uuid references users (id),
10
11
  created_at timestamp(6) not null,
11
12
  updated_at timestamp(6) not null,
data/lib/iry/callbacks.rb CHANGED
@@ -19,7 +19,11 @@ module Iry
19
19
 
20
20
  is_handled = handler.handle(err, model)
21
21
 
22
- if !is_handled
22
+ if is_handled
23
+ # Rolling back allows to keep using SQL in other callbacks, which
24
+ # otherwise would raise PG::InFailedSqlTransaction
25
+ raise ActiveRecord::Rollback
26
+ else
23
27
  raise
24
28
  end
25
29
  end
data/lib/iry/macros.rb CHANGED
@@ -1,11 +1,9 @@
1
1
  module Iry
2
2
  # Class-level methods available to classes executing `include Iry`
3
3
  module Macros
4
- # Constraints by name
5
- # @return [{String => Constraint}]
6
- def constraints
7
- @constraints ||= {}
8
- end
4
+ # @!method constraints
5
+ # Constraints by name
6
+ # @return [{String => Constraint}]
9
7
 
10
8
  # Tracks check constraint for the given key and convert constraint errors into validation errors
11
9
  # @param key [Symbol] key to apply validation errors to
data/lib/iry.rb CHANGED
@@ -32,13 +32,87 @@ require_relative "iry/constraint/unique"
32
32
  # fail_user = User.create(email: "user@example.com")
33
33
  # fail_user.errors.details.fetch(:email) #=> [{error: :taken}]
34
34
  module Iry
35
+ # Raised when constraint errors have been violated and have been converted to
36
+ # model errors
37
+ class RecordInvalid < ActiveRecord::RecordInvalid
38
+ end
39
+
35
40
  # @param klass [Module]
36
41
  # @return [void]
37
42
  # @private
38
43
  def self.included(klass)
39
44
  klass.class_eval do
45
+ # From activesupport
46
+ class_attribute(:constraints)
47
+ self.constraints = {}
40
48
  extend(Iry::Macros)
41
- around_save(Iry::Callbacks)
42
49
  end
43
50
  end
51
+
52
+ # Executes block and in case of constraints violations on `model`, block is
53
+ # halted and errors are appended to `model`
54
+ # @param model [Handlers::Model] model object for which constraints should be
55
+ # monitored and for which errors should be added to
56
+ # @yield block must perform the save operation, usually with `save`
57
+ # @return [nil, Handlers::Model] the `model` or `nil` if a a constraint is
58
+ # violated
59
+ def self.handle_constraints(model, &block)
60
+ raise ArgumentError, "Block required" if block.nil?
61
+
62
+ block.()
63
+
64
+ return model
65
+ rescue ActiveRecord::StatementInvalid => err
66
+ handler = Handlers::Null
67
+ case
68
+ when Handlers::PG.handle?(err)
69
+ handler = Handlers::PG
70
+ end
71
+
72
+ is_handled = handler.handle(err, model)
73
+
74
+ if !is_handled
75
+ raise
76
+ end
77
+
78
+ return nil
79
+ end
80
+
81
+ # Similar to {ActiveRecord::Base#save} but in case of constraint violations,
82
+ # `false` is returned and `errors` are populated.
83
+ # Aside from `model`, it takes the same arguments as
84
+ # {ActiveRecord::Base#save}
85
+ # @param model [Handlers::Model] model to save
86
+ # @return [Boolean] `true` if successful
87
+ def self.save(model, ...)
88
+ success = nil
89
+ constraint_model = handle_constraints(model) { success = model.save(...) }
90
+
91
+ if constraint_model
92
+ return success
93
+ end
94
+
95
+ return false
96
+ end
97
+
98
+ # Similar to {ActiveRecord::Base#save!} but in case of constraint violations,
99
+ # it raises {RecordInvalid} and `errors` are populated.
100
+ # Aside from `model`, it takes the same arguments as
101
+ # {ActiveRecord::Base#save!}
102
+ # @param model [Handlers::Model] model to save
103
+ # @return [true]
104
+ # @raise [RecordInvalid] {RecordInvalid} inherits from
105
+ # {ActiveRecord::RecordInvalid} but it's triggered only when a constraint
106
+ # violation happens
107
+ # @raise [ActiveRecord::RecordInvalid] triggered when a validation error is
108
+ # raised, but not a constraint violation
109
+ def self.save!(model, ...)
110
+ constraint_model = handle_constraints(model) { model.save!(...) }
111
+
112
+ if constraint_model
113
+ return true
114
+ end
115
+
116
+ raise RecordInvalid.new(model)
117
+ end
44
118
  end
data/package-lock.json CHANGED
@@ -1,15 +1,16 @@
1
1
  {
2
2
  "name": "iry",
3
- "version": "0.1.1",
3
+ "version": "0.3.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "iry",
9
- "version": "0.1.1",
9
+ "version": "0.3.0",
10
10
  "license": "MIT",
11
11
  "devDependencies": {
12
- "conventional-changelog-cli": ">= 3.0.0"
12
+ "conventional-changelog-cli": ">= 3.0.0",
13
+ "semver": ">= 7.5.2"
13
14
  }
14
15
  },
15
16
  "node_modules/@babel/code-frame": {
@@ -84,15 +85,18 @@
84
85
  }
85
86
  },
86
87
  "node_modules/ansi-styles": {
87
- "version": "3.2.1",
88
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
89
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
88
+ "version": "4.3.0",
89
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
90
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
90
91
  "dev": true,
91
92
  "dependencies": {
92
- "color-convert": "^1.9.0"
93
+ "color-convert": "^2.0.1"
93
94
  },
94
95
  "engines": {
95
- "node": ">=4"
96
+ "node": ">=8"
97
+ },
98
+ "funding": {
99
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
96
100
  }
97
101
  },
98
102
  "node_modules/array-ify": {
@@ -150,6 +154,33 @@
150
154
  "node": ">=4"
151
155
  }
152
156
  },
157
+ "node_modules/chalk/node_modules/ansi-styles": {
158
+ "version": "3.2.1",
159
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
160
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
161
+ "dev": true,
162
+ "dependencies": {
163
+ "color-convert": "^1.9.0"
164
+ },
165
+ "engines": {
166
+ "node": ">=4"
167
+ }
168
+ },
169
+ "node_modules/chalk/node_modules/color-convert": {
170
+ "version": "1.9.3",
171
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
172
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
173
+ "dev": true,
174
+ "dependencies": {
175
+ "color-name": "1.1.3"
176
+ }
177
+ },
178
+ "node_modules/chalk/node_modules/color-name": {
179
+ "version": "1.1.3",
180
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
181
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
182
+ "dev": true
183
+ },
153
184
  "node_modules/cliui": {
154
185
  "version": "7.0.4",
155
186
  "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
@@ -162,18 +193,21 @@
162
193
  }
163
194
  },
164
195
  "node_modules/color-convert": {
165
- "version": "1.9.3",
166
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
167
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
196
+ "version": "2.0.1",
197
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
198
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
168
199
  "dev": true,
169
200
  "dependencies": {
170
- "color-name": "1.1.3"
201
+ "color-name": "~1.1.4"
202
+ },
203
+ "engines": {
204
+ "node": ">=7.0.0"
171
205
  }
172
206
  },
173
207
  "node_modules/color-name": {
174
- "version": "1.1.3",
175
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
176
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
208
+ "version": "1.1.4",
209
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
210
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
177
211
  "dev": true
178
212
  },
179
213
  "node_modules/compare-func": {
@@ -186,25 +220,7 @@
186
220
  "dot-prop": "^5.1.0"
187
221
  }
188
222
  },
189
- "node_modules/conventional-changelog-cli": {
190
- "version": "3.0.0",
191
- "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-3.0.0.tgz",
192
- "integrity": "sha512-3zMYi0IrfNd6AAHdPMrcgCg5DbcffiqNaEBf8cYrlntXPbBIXaELTbnRmUy5TQAe0Hkgi0J6+/VmRCkkJQflcQ==",
193
- "dev": true,
194
- "dependencies": {
195
- "add-stream": "^1.0.0",
196
- "conventional-changelog": "^4.0.0",
197
- "meow": "^8.1.2",
198
- "tempfile": "^3.0.0"
199
- },
200
- "bin": {
201
- "conventional-changelog": "cli.js"
202
- },
203
- "engines": {
204
- "node": ">=14"
205
- }
206
- },
207
- "node_modules/conventional-changelog-cli/node_modules/conventional-changelog": {
223
+ "node_modules/conventional-changelog": {
208
224
  "version": "4.0.0",
209
225
  "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-4.0.0.tgz",
210
226
  "integrity": "sha512-JbZjwE1PzxQCvm+HUTIr+pbSekS8qdOZzMakdFyPtdkEWwFvwEJYONzjgMm0txCb2yBcIcfKDmg8xtCKTdecNQ==",
@@ -226,7 +242,7 @@
226
242
  "node": ">=14"
227
243
  }
228
244
  },
229
- "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-angular": {
245
+ "node_modules/conventional-changelog-angular": {
230
246
  "version": "6.0.0",
231
247
  "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz",
232
248
  "integrity": "sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==",
@@ -238,7 +254,7 @@
238
254
  "node": ">=14"
239
255
  }
240
256
  },
241
- "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-atom": {
257
+ "node_modules/conventional-changelog-atom": {
242
258
  "version": "3.0.0",
243
259
  "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-3.0.0.tgz",
244
260
  "integrity": "sha512-pnN5bWpH+iTUWU3FaYdw5lJmfWeqSyrUkG+wyHBI9tC1dLNnHkbAOg1SzTQ7zBqiFrfo55h40VsGXWMdopwc5g==",
@@ -247,7 +263,25 @@
247
263
  "node": ">=14"
248
264
  }
249
265
  },
250
- "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-codemirror": {
266
+ "node_modules/conventional-changelog-cli": {
267
+ "version": "3.0.0",
268
+ "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-3.0.0.tgz",
269
+ "integrity": "sha512-3zMYi0IrfNd6AAHdPMrcgCg5DbcffiqNaEBf8cYrlntXPbBIXaELTbnRmUy5TQAe0Hkgi0J6+/VmRCkkJQflcQ==",
270
+ "dev": true,
271
+ "dependencies": {
272
+ "add-stream": "^1.0.0",
273
+ "conventional-changelog": "^4.0.0",
274
+ "meow": "^8.1.2",
275
+ "tempfile": "^3.0.0"
276
+ },
277
+ "bin": {
278
+ "conventional-changelog": "cli.js"
279
+ },
280
+ "engines": {
281
+ "node": ">=14"
282
+ }
283
+ },
284
+ "node_modules/conventional-changelog-codemirror": {
251
285
  "version": "3.0.0",
252
286
  "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-3.0.0.tgz",
253
287
  "integrity": "sha512-wzchZt9HEaAZrenZAUUHMCFcuYzGoZ1wG/kTRMICxsnW5AXohYMRxnyecP9ob42Gvn5TilhC0q66AtTPRSNMfw==",
@@ -256,7 +290,7 @@
256
290
  "node": ">=14"
257
291
  }
258
292
  },
259
- "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-conventionalcommits": {
293
+ "node_modules/conventional-changelog-conventionalcommits": {
260
294
  "version": "6.1.0",
261
295
  "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-6.1.0.tgz",
262
296
  "integrity": "sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==",
@@ -268,7 +302,7 @@
268
302
  "node": ">=14"
269
303
  }
270
304
  },
271
- "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-core": {
305
+ "node_modules/conventional-changelog-core": {
272
306
  "version": "5.0.2",
273
307
  "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-5.0.2.tgz",
274
308
  "integrity": "sha512-RhQOcDweXNWvlRwUDCpaqXzbZemKPKncCWZG50Alth72WITVd6nhVk9MJ6w1k9PFNBcZ3YwkdkChE+8+ZwtUug==",
@@ -290,7 +324,7 @@
290
324
  "node": ">=14"
291
325
  }
292
326
  },
293
- "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-ember": {
327
+ "node_modules/conventional-changelog-ember": {
294
328
  "version": "3.0.0",
295
329
  "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-3.0.0.tgz",
296
330
  "integrity": "sha512-7PYthCoSxIS98vWhVcSphMYM322OxptpKAuHYdVspryI0ooLDehRXWeRWgN+zWSBXKl/pwdgAg8IpLNSM1/61A==",
@@ -299,7 +333,7 @@
299
333
  "node": ">=14"
300
334
  }
301
335
  },
302
- "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-eslint": {
336
+ "node_modules/conventional-changelog-eslint": {
303
337
  "version": "4.0.0",
304
338
  "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-4.0.0.tgz",
305
339
  "integrity": "sha512-nEZ9byP89hIU0dMx37JXQkE1IpMmqKtsaR24X7aM3L6Yy/uAtbb+ogqthuNYJkeO1HyvK7JsX84z8649hvp43Q==",
@@ -308,7 +342,7 @@
308
342
  "node": ">=14"
309
343
  }
310
344
  },
311
- "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-express": {
345
+ "node_modules/conventional-changelog-express": {
312
346
  "version": "3.0.0",
313
347
  "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-3.0.0.tgz",
314
348
  "integrity": "sha512-HqxihpUMfIuxvlPvC6HltA4ZktQEUan/v3XQ77+/zbu8No/fqK3rxSZaYeHYant7zRxQNIIli7S+qLS9tX9zQA==",
@@ -317,7 +351,7 @@
317
351
  "node": ">=14"
318
352
  }
319
353
  },
320
- "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-jquery": {
354
+ "node_modules/conventional-changelog-jquery": {
321
355
  "version": "4.0.0",
322
356
  "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-4.0.0.tgz",
323
357
  "integrity": "sha512-TTIN5CyzRMf8PUwyy4IOLmLV2DFmPtasKN+x7EQKzwSX8086XYwo+NeaeA3VUT8bvKaIy5z/JoWUvi7huUOgaw==",
@@ -326,7 +360,7 @@
326
360
  "node": ">=14"
327
361
  }
328
362
  },
329
- "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-jshint": {
363
+ "node_modules/conventional-changelog-jshint": {
330
364
  "version": "3.0.0",
331
365
  "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-3.0.0.tgz",
332
366
  "integrity": "sha512-bQof4byF4q+n+dwFRkJ/jGf9dCNUv4/kCDcjeCizBvfF81TeimPZBB6fT4HYbXgxxfxWXNl/i+J6T0nI4by6DA==",
@@ -338,7 +372,7 @@
338
372
  "node": ">=14"
339
373
  }
340
374
  },
341
- "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-preset-loader": {
375
+ "node_modules/conventional-changelog-preset-loader": {
342
376
  "version": "3.0.0",
343
377
  "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-3.0.0.tgz",
344
378
  "integrity": "sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==",
@@ -347,7 +381,7 @@
347
381
  "node": ">=14"
348
382
  }
349
383
  },
350
- "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-writer": {
384
+ "node_modules/conventional-changelog-writer": {
351
385
  "version": "6.0.0",
352
386
  "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-6.0.0.tgz",
353
387
  "integrity": "sha512-8PyWTnn7zBIt9l4hj4UusFs1TyG+9Ulu1zlOAc72L7Sdv9Hsc8E86ot7htY3HXCVhXHB/NO0pVGvZpwsyJvFfw==",
@@ -368,7 +402,16 @@
368
402
  "node": ">=14"
369
403
  }
370
404
  },
371
- "node_modules/conventional-changelog-cli/node_modules/conventional-commits-filter": {
405
+ "node_modules/conventional-changelog-writer/node_modules/semver": {
406
+ "version": "6.3.0",
407
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
408
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
409
+ "dev": true,
410
+ "bin": {
411
+ "semver": "bin/semver.js"
412
+ }
413
+ },
414
+ "node_modules/conventional-commits-filter": {
372
415
  "version": "3.0.0",
373
416
  "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz",
374
417
  "integrity": "sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==",
@@ -381,7 +424,7 @@
381
424
  "node": ">=14"
382
425
  }
383
426
  },
384
- "node_modules/conventional-changelog-cli/node_modules/conventional-commits-parser": {
427
+ "node_modules/conventional-commits-parser": {
385
428
  "version": "4.0.0",
386
429
  "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz",
387
430
  "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==",
@@ -399,48 +442,6 @@
399
442
  "node": ">=14"
400
443
  }
401
444
  },
402
- "node_modules/conventional-changelog-cli/node_modules/git-raw-commits": {
403
- "version": "3.0.0",
404
- "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-3.0.0.tgz",
405
- "integrity": "sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==",
406
- "dev": true,
407
- "dependencies": {
408
- "dargs": "^7.0.0",
409
- "meow": "^8.1.2",
410
- "split2": "^3.2.2"
411
- },
412
- "bin": {
413
- "git-raw-commits": "cli.js"
414
- },
415
- "engines": {
416
- "node": ">=14"
417
- }
418
- },
419
- "node_modules/conventional-changelog-cli/node_modules/git-semver-tags": {
420
- "version": "5.0.0",
421
- "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-5.0.0.tgz",
422
- "integrity": "sha512-fZ+tmZ1O5aXW/T5nLzZLbxWAHdQTLLXalOECMNAmhoEQSfqZjtaeMjpsXH4C5qVhrICTkVQeQFujB1lKzIHljA==",
423
- "dev": true,
424
- "dependencies": {
425
- "meow": "^8.1.2",
426
- "semver": "^6.3.0"
427
- },
428
- "bin": {
429
- "git-semver-tags": "cli.js"
430
- },
431
- "engines": {
432
- "node": ">=14"
433
- }
434
- },
435
- "node_modules/conventional-changelog-cli/node_modules/semver": {
436
- "version": "6.3.0",
437
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
438
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
439
- "dev": true,
440
- "bin": {
441
- "semver": "bin/semver.js"
442
- }
443
- },
444
445
  "node_modules/core-util-is": {
445
446
  "version": "1.0.3",
446
447
  "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
@@ -544,6 +545,18 @@
544
545
  "node": ">=0.8.0"
545
546
  }
546
547
  },
548
+ "node_modules/find-up": {
549
+ "version": "2.1.0",
550
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
551
+ "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==",
552
+ "dev": true,
553
+ "dependencies": {
554
+ "locate-path": "^2.0.0"
555
+ },
556
+ "engines": {
557
+ "node": ">=4"
558
+ }
559
+ },
547
560
  "node_modules/function-bind": {
548
561
  "version": "1.1.1",
549
562
  "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
@@ -577,44 +590,21 @@
577
590
  "node": ">=6.9.0"
578
591
  }
579
592
  },
580
- "node_modules/get-pkg-repo/node_modules/readable-stream": {
581
- "version": "2.3.8",
582
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
583
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
584
- "dev": true,
585
- "dependencies": {
586
- "core-util-is": "~1.0.0",
587
- "inherits": "~2.0.3",
588
- "isarray": "~1.0.0",
589
- "process-nextick-args": "~2.0.0",
590
- "safe-buffer": "~5.1.1",
591
- "string_decoder": "~1.1.1",
592
- "util-deprecate": "~1.0.1"
593
- }
594
- },
595
- "node_modules/get-pkg-repo/node_modules/safe-buffer": {
596
- "version": "5.1.2",
597
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
598
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
599
- "dev": true
600
- },
601
- "node_modules/get-pkg-repo/node_modules/string_decoder": {
602
- "version": "1.1.1",
603
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
604
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
605
- "dev": true,
606
- "dependencies": {
607
- "safe-buffer": "~5.1.0"
608
- }
609
- },
610
- "node_modules/get-pkg-repo/node_modules/through2": {
611
- "version": "2.0.5",
612
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
613
- "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
593
+ "node_modules/git-raw-commits": {
594
+ "version": "3.0.0",
595
+ "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-3.0.0.tgz",
596
+ "integrity": "sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==",
614
597
  "dev": true,
615
598
  "dependencies": {
616
- "readable-stream": "~2.3.6",
617
- "xtend": "~4.0.1"
599
+ "dargs": "^7.0.0",
600
+ "meow": "^8.1.2",
601
+ "split2": "^3.2.2"
602
+ },
603
+ "bin": {
604
+ "git-raw-commits": "cli.js"
605
+ },
606
+ "engines": {
607
+ "node": ">=14"
618
608
  }
619
609
  },
620
610
  "node_modules/git-remote-origin-url": {
@@ -630,6 +620,31 @@
630
620
  "node": ">=4"
631
621
  }
632
622
  },
623
+ "node_modules/git-semver-tags": {
624
+ "version": "5.0.0",
625
+ "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-5.0.0.tgz",
626
+ "integrity": "sha512-fZ+tmZ1O5aXW/T5nLzZLbxWAHdQTLLXalOECMNAmhoEQSfqZjtaeMjpsXH4C5qVhrICTkVQeQFujB1lKzIHljA==",
627
+ "dev": true,
628
+ "dependencies": {
629
+ "meow": "^8.1.2",
630
+ "semver": "^6.3.0"
631
+ },
632
+ "bin": {
633
+ "git-semver-tags": "cli.js"
634
+ },
635
+ "engines": {
636
+ "node": ">=14"
637
+ }
638
+ },
639
+ "node_modules/git-semver-tags/node_modules/semver": {
640
+ "version": "6.3.0",
641
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
642
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
643
+ "dev": true,
644
+ "bin": {
645
+ "semver": "bin/semver.js"
646
+ }
647
+ },
633
648
  "node_modules/gitconfiglocal": {
634
649
  "version": "1.0.0",
635
650
  "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz",
@@ -880,6 +895,19 @@
880
895
  "node": ">=4"
881
896
  }
882
897
  },
898
+ "node_modules/locate-path": {
899
+ "version": "2.0.0",
900
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
901
+ "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
902
+ "dev": true,
903
+ "dependencies": {
904
+ "p-locate": "^2.0.0",
905
+ "path-exists": "^3.0.0"
906
+ },
907
+ "engines": {
908
+ "node": ">=4"
909
+ }
910
+ },
883
911
  "node_modules/lodash.ismatch": {
884
912
  "version": "4.4.0",
885
913
  "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz",
@@ -993,6 +1021,15 @@
993
1021
  "node": ">=8"
994
1022
  }
995
1023
  },
1024
+ "node_modules/meow/node_modules/p-try": {
1025
+ "version": "2.2.0",
1026
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
1027
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
1028
+ "dev": true,
1029
+ "engines": {
1030
+ "node": ">=6"
1031
+ }
1032
+ },
996
1033
  "node_modules/meow/node_modules/parse-json": {
997
1034
  "version": "5.2.0",
998
1035
  "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
@@ -1011,6 +1048,15 @@
1011
1048
  "url": "https://github.com/sponsors/sindresorhus"
1012
1049
  }
1013
1050
  },
1051
+ "node_modules/meow/node_modules/path-exists": {
1052
+ "version": "4.0.0",
1053
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
1054
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
1055
+ "dev": true,
1056
+ "engines": {
1057
+ "node": ">=8"
1058
+ }
1059
+ },
1014
1060
  "node_modules/meow/node_modules/read-pkg": {
1015
1061
  "version": "5.2.0",
1016
1062
  "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
@@ -1144,13 +1190,37 @@
1144
1190
  "node": ">=10"
1145
1191
  }
1146
1192
  },
1193
+ "node_modules/p-limit": {
1194
+ "version": "1.3.0",
1195
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
1196
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
1197
+ "dev": true,
1198
+ "dependencies": {
1199
+ "p-try": "^1.0.0"
1200
+ },
1201
+ "engines": {
1202
+ "node": ">=4"
1203
+ }
1204
+ },
1205
+ "node_modules/p-locate": {
1206
+ "version": "2.0.0",
1207
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
1208
+ "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
1209
+ "dev": true,
1210
+ "dependencies": {
1211
+ "p-limit": "^1.1.0"
1212
+ },
1213
+ "engines": {
1214
+ "node": ">=4"
1215
+ }
1216
+ },
1147
1217
  "node_modules/p-try": {
1148
- "version": "2.2.0",
1149
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
1150
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
1218
+ "version": "1.0.0",
1219
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
1220
+ "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
1151
1221
  "dev": true,
1152
1222
  "engines": {
1153
- "node": ">=6"
1223
+ "node": ">=4"
1154
1224
  }
1155
1225
  },
1156
1226
  "node_modules/parse-json": {
@@ -1167,12 +1237,12 @@
1167
1237
  }
1168
1238
  },
1169
1239
  "node_modules/path-exists": {
1170
- "version": "4.0.0",
1171
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
1172
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
1240
+ "version": "3.0.0",
1241
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
1242
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
1173
1243
  "dev": true,
1174
1244
  "engines": {
1175
- "node": ">=8"
1245
+ "node": ">=4"
1176
1246
  }
1177
1247
  },
1178
1248
  "node_modules/path-parse": {
@@ -1253,73 +1323,6 @@
1253
1323
  "node": ">=4"
1254
1324
  }
1255
1325
  },
1256
- "node_modules/read-pkg-up/node_modules/find-up": {
1257
- "version": "2.1.0",
1258
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
1259
- "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==",
1260
- "dev": true,
1261
- "dependencies": {
1262
- "locate-path": "^2.0.0"
1263
- },
1264
- "engines": {
1265
- "node": ">=4"
1266
- }
1267
- },
1268
- "node_modules/read-pkg-up/node_modules/locate-path": {
1269
- "version": "2.0.0",
1270
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
1271
- "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
1272
- "dev": true,
1273
- "dependencies": {
1274
- "p-locate": "^2.0.0",
1275
- "path-exists": "^3.0.0"
1276
- },
1277
- "engines": {
1278
- "node": ">=4"
1279
- }
1280
- },
1281
- "node_modules/read-pkg-up/node_modules/p-limit": {
1282
- "version": "1.3.0",
1283
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
1284
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
1285
- "dev": true,
1286
- "dependencies": {
1287
- "p-try": "^1.0.0"
1288
- },
1289
- "engines": {
1290
- "node": ">=4"
1291
- }
1292
- },
1293
- "node_modules/read-pkg-up/node_modules/p-locate": {
1294
- "version": "2.0.0",
1295
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
1296
- "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
1297
- "dev": true,
1298
- "dependencies": {
1299
- "p-limit": "^1.1.0"
1300
- },
1301
- "engines": {
1302
- "node": ">=4"
1303
- }
1304
- },
1305
- "node_modules/read-pkg-up/node_modules/p-try": {
1306
- "version": "1.0.0",
1307
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
1308
- "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
1309
- "dev": true,
1310
- "engines": {
1311
- "node": ">=4"
1312
- }
1313
- },
1314
- "node_modules/read-pkg-up/node_modules/path-exists": {
1315
- "version": "3.0.0",
1316
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
1317
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
1318
- "dev": true,
1319
- "engines": {
1320
- "node": ">=4"
1321
- }
1322
- },
1323
1326
  "node_modules/read-pkg/node_modules/hosted-git-info": {
1324
1327
  "version": "2.8.9",
1325
1328
  "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
@@ -1421,9 +1424,9 @@
1421
1424
  ]
1422
1425
  },
1423
1426
  "node_modules/semver": {
1424
- "version": "7.5.3",
1425
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
1426
- "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
1427
+ "version": "7.5.4",
1428
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
1429
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
1427
1430
  "dev": true,
1428
1431
  "dependencies": {
1429
1432
  "lru-cache": "^6.0.0"
@@ -1614,6 +1617,46 @@
1614
1617
  "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
1615
1618
  "dev": true
1616
1619
  },
1620
+ "node_modules/through2": {
1621
+ "version": "2.0.5",
1622
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
1623
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
1624
+ "dev": true,
1625
+ "dependencies": {
1626
+ "readable-stream": "~2.3.6",
1627
+ "xtend": "~4.0.1"
1628
+ }
1629
+ },
1630
+ "node_modules/through2/node_modules/readable-stream": {
1631
+ "version": "2.3.8",
1632
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
1633
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
1634
+ "dev": true,
1635
+ "dependencies": {
1636
+ "core-util-is": "~1.0.0",
1637
+ "inherits": "~2.0.3",
1638
+ "isarray": "~1.0.0",
1639
+ "process-nextick-args": "~2.0.0",
1640
+ "safe-buffer": "~5.1.1",
1641
+ "string_decoder": "~1.1.1",
1642
+ "util-deprecate": "~1.0.1"
1643
+ }
1644
+ },
1645
+ "node_modules/through2/node_modules/safe-buffer": {
1646
+ "version": "5.1.2",
1647
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1648
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
1649
+ "dev": true
1650
+ },
1651
+ "node_modules/through2/node_modules/string_decoder": {
1652
+ "version": "1.1.1",
1653
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1654
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1655
+ "dev": true,
1656
+ "dependencies": {
1657
+ "safe-buffer": "~5.1.0"
1658
+ }
1659
+ },
1617
1660
  "node_modules/trim-newlines": {
1618
1661
  "version": "3.0.1",
1619
1662
  "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
@@ -1697,39 +1740,6 @@
1697
1740
  "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
1698
1741
  }
1699
1742
  },
1700
- "node_modules/wrap-ansi/node_modules/ansi-styles": {
1701
- "version": "4.3.0",
1702
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1703
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1704
- "dev": true,
1705
- "dependencies": {
1706
- "color-convert": "^2.0.1"
1707
- },
1708
- "engines": {
1709
- "node": ">=8"
1710
- },
1711
- "funding": {
1712
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
1713
- }
1714
- },
1715
- "node_modules/wrap-ansi/node_modules/color-convert": {
1716
- "version": "2.0.1",
1717
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1718
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1719
- "dev": true,
1720
- "dependencies": {
1721
- "color-name": "~1.1.4"
1722
- },
1723
- "engines": {
1724
- "node": ">=7.0.0"
1725
- }
1726
- },
1727
- "node_modules/wrap-ansi/node_modules/color-name": {
1728
- "version": "1.1.4",
1729
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1730
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1731
- "dev": true
1732
- },
1733
1743
  "node_modules/xtend": {
1734
1744
  "version": "4.0.2",
1735
1745
  "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
data/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "iry",
3
- "version": "0.1.1",
4
- "description": "Convert constraint errors into Rails model validation errors.",
3
+ "version": "0.3.0",
4
+ "description": "Transform database constraint errors into activerecord validation errors",
5
5
  "private": true,
6
6
  "main": "index.js",
7
7
  "directories": {
@@ -10,7 +10,8 @@
10
10
  "test": "test"
11
11
  },
12
12
  "scripts": {
13
- "test": "echo \"Error: no test specified\" && exit 1"
13
+ "test": "echo \"Error: no test specified\" && exit 1",
14
+ "version-get": "echo \"$npm_package_version\""
14
15
  },
15
16
  "repository": {
16
17
  "type": "git",
@@ -23,6 +24,7 @@
23
24
  },
24
25
  "homepage": "https://github.com/Fire-Dragon-DoL/iry#readme",
25
26
  "devDependencies": {
26
- "conventional-changelog-cli": ">= 3.0.0"
27
+ "conventional-changelog-cli": ">= 3.0.0",
28
+ "semver": ">= 7.5.2"
27
29
  }
28
30
  }
@@ -7,18 +7,23 @@ gem:
7
7
  # - activerecord
8
8
  # annotated
9
9
  # - activesupport
10
+ # - ansi
10
11
  - ast
12
+ - binding_of_caller
13
+ - builder
11
14
  - byebug
12
15
  - coderay
13
16
  - commander
14
17
  # - concurrent-ruby
15
18
  # - csv
19
+ - debug_inspector
16
20
  - diff-lcs
17
21
  - erubi
18
22
  # - fileutils
19
23
  - ffi
20
24
  - highline
21
25
  - i18n
26
+ - interception
22
27
  - language_server-protocol
23
28
  - listen
24
29
  - method_source
@@ -32,6 +37,8 @@ gem:
32
37
  # - power_assert
33
38
  - prettier_print
34
39
  - pry-byebug
40
+ - pry-rescue
41
+ - pry-stack_explorer
35
42
  - pry
36
43
  - racc
37
44
  - rainbow
@@ -40,6 +47,7 @@ gem:
40
47
  - rbs
41
48
  - rb-fsevent
42
49
  - rb-inotify
50
+ - ruby-progressbar
43
51
  - sord
44
52
  - spoom
45
53
  - steep
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iry
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francesco Belladonna
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-07-07 00:00:00.000000000 Z
11
+ date: 2023-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord