iry 0.1.1 → 0.3.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.
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