graphiti 2.0.0.beta.8 → 2.0.0.beta.10

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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +1 -1
  3. data/.github/workflows/docs.yml +9 -6
  4. data/.github/workflows/release.yml +1 -1
  5. data/CHANGELOG.md +43 -0
  6. data/Rakefile +28 -0
  7. data/UPGRADING.md +1 -1
  8. data/lib/generators/graphiti/generator_mixin.rb +24 -0
  9. data/lib/generators/graphiti/templates/application_resource.rb.erb +9 -16
  10. data/lib/graphiti/configuration.rb +66 -28
  11. data/lib/graphiti/debugger.rb +18 -6
  12. data/lib/graphiti/delegates/pagination.rb +2 -2
  13. data/lib/graphiti/error_serializers/deprecated_constants.rb +23 -0
  14. data/lib/graphiti/error_serializers/invalid_request.rb +6 -0
  15. data/lib/graphiti/errors.rb +51 -3
  16. data/lib/graphiti/query.rb +36 -14
  17. data/lib/graphiti/rails/controller.rb +26 -6
  18. data/lib/graphiti/rails/rake_helpers.rb +17 -0
  19. data/lib/graphiti/rails.rb +14 -0
  20. data/lib/graphiti/railtie.rb +8 -0
  21. data/lib/graphiti/request_validators/update_validator.rb +1 -1
  22. data/lib/graphiti/request_validators/validator.rb +9 -0
  23. data/lib/graphiti/resource/configuration.rb +138 -40
  24. data/lib/graphiti/resource/dsl.rb +21 -2
  25. data/lib/graphiti/resource/interface.rb +1 -1
  26. data/lib/graphiti/resource/links.rb +36 -5
  27. data/lib/graphiti/resource/remote.rb +2 -1
  28. data/lib/graphiti/resource/sideloading.rb +2 -2
  29. data/lib/graphiti/schema.rb +2 -2
  30. data/lib/graphiti/scope.rb +115 -23
  31. data/lib/graphiti/scoping/filter.rb +4 -4
  32. data/lib/graphiti/scoping/paginate.rb +3 -3
  33. data/lib/graphiti/serializer.rb +12 -6
  34. data/lib/graphiti/sideload/polymorphic_belongs_to.rb +11 -4
  35. data/lib/graphiti/sideload.rb +22 -14
  36. data/lib/graphiti/spec_helpers/matchers.rb +2 -2
  37. data/lib/graphiti/spec_helpers/rspec.rb +6 -3
  38. data/lib/graphiti/util/link.rb +1 -1
  39. data/lib/graphiti/util/serializer_attributes.rb +5 -3
  40. data/lib/graphiti/util/serializer_relationships.rb +26 -16
  41. data/lib/graphiti/version.rb +1 -1
  42. data/lib/graphiti.rb +6 -1
  43. data/lib/tasks/graphiti.rake +4 -0
  44. data/package-lock.json +114 -0
  45. data/package.json +16 -3
  46. metadata +3 -2
data/package-lock.json CHANGED
@@ -10,6 +10,7 @@
10
10
  "license": "MIT",
11
11
  "devDependencies": {
12
12
  "@semantic-release/changelog": "^7.0.0",
13
+ "@semantic-release/exec": "^7.1.0",
13
14
  "@semantic-release/git": "^11.0.1",
14
15
  "semantic-release": "^25.0.8",
15
16
  "semantic-release-rubygem": "^1.2.0"
@@ -394,6 +395,119 @@
394
395
  "node": ">=18"
395
396
  }
396
397
  },
398
+ "node_modules/@semantic-release/exec": {
399
+ "version": "7.1.0",
400
+ "resolved": "https://registry.npmjs.org/@semantic-release/exec/-/exec-7.1.0.tgz",
401
+ "integrity": "sha512-4ycZ2atgEUutspPZ2hxO6z8JoQt4+y/kkHvfZ1cZxgl9WKJId1xPj+UadwInj+gMn2Gsv+fLnbrZ4s+6tK2TFQ==",
402
+ "dev": true,
403
+ "license": "MIT",
404
+ "dependencies": {
405
+ "@semantic-release/error": "^4.0.0",
406
+ "aggregate-error": "^3.0.0",
407
+ "debug": "^4.0.0",
408
+ "execa": "^9.0.0",
409
+ "lodash-es": "^4.17.21",
410
+ "parse-json": "^8.0.0"
411
+ },
412
+ "engines": {
413
+ "node": ">=20.8.1"
414
+ },
415
+ "peerDependencies": {
416
+ "semantic-release": ">=24.1.0"
417
+ }
418
+ },
419
+ "node_modules/@semantic-release/exec/node_modules/aggregate-error": {
420
+ "version": "3.1.0",
421
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
422
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
423
+ "dev": true,
424
+ "license": "MIT",
425
+ "dependencies": {
426
+ "clean-stack": "^2.0.0",
427
+ "indent-string": "^4.0.0"
428
+ },
429
+ "engines": {
430
+ "node": ">=8"
431
+ }
432
+ },
433
+ "node_modules/@semantic-release/exec/node_modules/clean-stack": {
434
+ "version": "2.2.0",
435
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
436
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
437
+ "dev": true,
438
+ "license": "MIT",
439
+ "engines": {
440
+ "node": ">=6"
441
+ }
442
+ },
443
+ "node_modules/@semantic-release/exec/node_modules/execa": {
444
+ "version": "9.6.1",
445
+ "resolved": "https://registry.npmjs.org/execa/-/execa-9.6.1.tgz",
446
+ "integrity": "sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==",
447
+ "dev": true,
448
+ "license": "MIT",
449
+ "dependencies": {
450
+ "@sindresorhus/merge-streams": "^4.0.0",
451
+ "cross-spawn": "^7.0.6",
452
+ "figures": "^6.1.0",
453
+ "get-stream": "^9.0.0",
454
+ "human-signals": "^8.0.1",
455
+ "is-plain-obj": "^4.1.0",
456
+ "is-stream": "^4.0.1",
457
+ "npm-run-path": "^6.0.0",
458
+ "pretty-ms": "^9.2.0",
459
+ "signal-exit": "^4.1.0",
460
+ "strip-final-newline": "^4.0.0",
461
+ "yoctocolors": "^2.1.1"
462
+ },
463
+ "engines": {
464
+ "node": "^18.19.0 || >=20.5.0"
465
+ },
466
+ "funding": {
467
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
468
+ }
469
+ },
470
+ "node_modules/@semantic-release/exec/node_modules/indent-string": {
471
+ "version": "4.0.0",
472
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
473
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
474
+ "dev": true,
475
+ "license": "MIT",
476
+ "engines": {
477
+ "node": ">=8"
478
+ }
479
+ },
480
+ "node_modules/@semantic-release/exec/node_modules/parse-json": {
481
+ "version": "8.3.0",
482
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz",
483
+ "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==",
484
+ "dev": true,
485
+ "license": "MIT",
486
+ "dependencies": {
487
+ "@babel/code-frame": "^7.26.2",
488
+ "index-to-position": "^1.1.0",
489
+ "type-fest": "^4.39.1"
490
+ },
491
+ "engines": {
492
+ "node": ">=18"
493
+ },
494
+ "funding": {
495
+ "url": "https://github.com/sponsors/sindresorhus"
496
+ }
497
+ },
498
+ "node_modules/@semantic-release/exec/node_modules/type-fest": {
499
+ "version": "4.41.0",
500
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
501
+ "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==",
502
+ "dev": true,
503
+ "license": "(MIT OR CC0-1.0)",
504
+ "engines": {
505
+ "node": ">=16"
506
+ },
507
+ "funding": {
508
+ "url": "https://github.com/sponsors/sindresorhus"
509
+ }
510
+ },
397
511
  "node_modules/@semantic-release/git": {
398
512
  "version": "11.0.1",
399
513
  "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-11.0.1.tgz",
data/package.json CHANGED
@@ -18,7 +18,8 @@
18
18
  "semantic-release-rubygem": "^1.2.0",
19
19
  "semantic-release": "^25.0.8",
20
20
  "@semantic-release/changelog": "^7.0.0",
21
- "@semantic-release/git": "^11.0.1"
21
+ "@semantic-release/git": "^11.0.1",
22
+ "@semantic-release/exec": "^7.1.0"
22
23
  },
23
24
  "release": {
24
25
  "branches": [
@@ -132,13 +133,25 @@
132
133
  }
133
134
  ],
134
135
  "semantic-release-rubygem",
135
- "@semantic-release/github",
136
+ [
137
+ "@semantic-release/github",
138
+ {
139
+ "successCommentCondition": "<% return !branch.prerelease; %>"
140
+ }
141
+ ],
142
+ [
143
+ "@semantic-release/exec",
144
+ {
145
+ "prepareCmd": "bundle exec ruby spec/performance/measure_releases.rb --pending v${nextRelease.version}"
146
+ }
147
+ ],
136
148
  [
137
149
  "@semantic-release/git",
138
150
  {
139
151
  "assets": [
140
152
  "CHANGELOG.md",
141
- "lib/graphiti/version.rb"
153
+ "lib/graphiti/version.rb",
154
+ "spec/performance/performance_history.tsv"
142
155
  ],
143
156
  "message": "${nextRelease.version} CHANGELOG [skip ci]\n\n${nextRelease.notes}"
144
157
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphiti
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta.8
4
+ version: 2.0.0.beta.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lee Richmond
@@ -340,6 +340,7 @@ files:
340
340
  - lib/graphiti/rails/rake_helpers.rb
341
341
  - lib/graphiti/rails/responders.rb
342
342
  - lib/graphiti/rails/test_helpers.rb
343
+ - lib/graphiti/railtie.rb
343
344
  - lib/graphiti/renderer.rb
344
345
  - lib/graphiti/request_validator.rb
345
346
  - lib/graphiti/request_validators/update_validator.rb
@@ -428,7 +429,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
428
429
  - !ruby/object:Gem::Version
429
430
  version: '0'
430
431
  requirements: []
431
- rubygems_version: 3.6.9
432
+ rubygems_version: 4.0.16
432
433
  specification_version: 4
433
434
  summary: Easily build jsonapi.org-compatible APIs
434
435
  test_files: []