comic-vine-sdk 1.3.2 → 2.0.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.
- package/README.md +36 -732
- package/lib/index.cjs +1456 -0
- package/lib/index.cjs.map +7 -0
- package/lib/index.d.ts +2716 -0
- package/lib/index.js +845 -0
- package/lib/index.js.map +1 -0
- package/package.json +108 -54
- package/.gitattributes +0 -23
- package/.husky/pre-commit +0 -1
- package/.prettierignore +0 -1
- package/.prettierrc.json +0 -4
- package/.projen/tasks.json +0 -261
- package/.releaserc.json +0 -17
- package/CHANGELOG.md +0 -97
- package/CODE_OF_CONDUCT.md +0 -128
- package/CONTRIBUTING.md +0 -294
- package/eslint.config.js +0 -168
- package/lib/cjs/comic-vine.d.ts +0 -44
- package/lib/cjs/comic-vine.js +0 -105
- package/lib/cjs/errors/base-error.d.ts +0 -9
- package/lib/cjs/errors/base-error.js +0 -18
- package/lib/cjs/errors/custom-error.d.ts +0 -2
- package/lib/cjs/errors/custom-error.js +0 -12
- package/lib/cjs/errors/filter-error.d.ts +0 -4
- package/lib/cjs/errors/filter-error.js +0 -14
- package/lib/cjs/errors/generic-error.d.ts +0 -4
- package/lib/cjs/errors/generic-error.js +0 -14
- package/lib/cjs/errors/generic-request-error.d.ts +0 -10
- package/lib/cjs/errors/generic-request-error.js +0 -23
- package/lib/cjs/errors/index.d.ts +0 -10
- package/lib/cjs/errors/index.js +0 -27
- package/lib/cjs/errors/jsonp-callback-missing-error.d.ts +0 -4
- package/lib/cjs/errors/jsonp-callback-missing-error.js +0 -14
- package/lib/cjs/errors/object-not-found-error.d.ts +0 -4
- package/lib/cjs/errors/object-not-found-error.js +0 -14
- package/lib/cjs/errors/options-validation-error.d.ts +0 -4
- package/lib/cjs/errors/options-validation-error.js +0 -14
- package/lib/cjs/errors/subscriber-only-error.d.ts +0 -4
- package/lib/cjs/errors/subscriber-only-error.js +0 -14
- package/lib/cjs/errors/unauthorized-error.d.ts +0 -4
- package/lib/cjs/errors/unauthorized-error.js +0 -14
- package/lib/cjs/errors/url-format-error.d.ts +0 -4
- package/lib/cjs/errors/url-format-error.js +0 -14
- package/lib/cjs/http-client/http-client-factory.d.ts +0 -6
- package/lib/cjs/http-client/http-client-factory.js +0 -15
- package/lib/cjs/http-client/http-client.d.ts +0 -8
- package/lib/cjs/http-client/http-client.js +0 -71
- package/lib/cjs/http-client/index.d.ts +0 -1
- package/lib/cjs/http-client/index.js +0 -18
- package/lib/cjs/http-client/status-code.d.ts +0 -9
- package/lib/cjs/http-client/status-code.js +0 -14
- package/lib/cjs/http-client/url-builder.d.ts +0 -29
- package/lib/cjs/http-client/url-builder.js +0 -107
- package/lib/cjs/index.d.ts +0 -3
- package/lib/cjs/index.js +0 -5
- package/lib/cjs/options/index.d.ts +0 -20
- package/lib/cjs/options/index.js +0 -32
- package/lib/cjs/package.json +0 -3
- package/lib/cjs/resources/base-resource.d.ts +0 -19
- package/lib/cjs/resources/base-resource.js +0 -87
- package/lib/cjs/resources/character/character.d.ts +0 -6
- package/lib/cjs/resources/character/character.js +0 -13
- package/lib/cjs/resources/character/index.d.ts +0 -1
- package/lib/cjs/resources/character/index.js +0 -18
- package/lib/cjs/resources/character/types/character-details.d.ts +0 -110
- package/lib/cjs/resources/character/types/character-details.js +0 -3
- package/lib/cjs/resources/character/types/character-list-item.d.ts +0 -71
- package/lib/cjs/resources/character/types/character-list-item.js +0 -3
- package/lib/cjs/resources/character/types/index.d.ts +0 -2
- package/lib/cjs/resources/character/types/index.js +0 -19
- package/lib/cjs/resources/common-types.d.ts +0 -58
- package/lib/cjs/resources/common-types.js +0 -3
- package/lib/cjs/resources/concept/concept.d.ts +0 -6
- package/lib/cjs/resources/concept/concept.js +0 -13
- package/lib/cjs/resources/concept/index.d.ts +0 -1
- package/lib/cjs/resources/concept/index.js +0 -18
- package/lib/cjs/resources/concept/types/concept-details.d.ts +0 -58
- package/lib/cjs/resources/concept/types/concept-details.js +0 -3
- package/lib/cjs/resources/concept/types/concept-list-item.d.ts +0 -52
- package/lib/cjs/resources/concept/types/concept-list-item.js +0 -3
- package/lib/cjs/resources/concept/types/index.d.ts +0 -2
- package/lib/cjs/resources/concept/types/index.js +0 -19
- package/lib/cjs/resources/episode/episode.d.ts +0 -6
- package/lib/cjs/resources/episode/episode.js +0 -13
- package/lib/cjs/resources/episode/index.d.ts +0 -1
- package/lib/cjs/resources/episode/index.js +0 -18
- package/lib/cjs/resources/episode/types/episode-details.d.ts +0 -87
- package/lib/cjs/resources/episode/types/episode-details.js +0 -3
- package/lib/cjs/resources/episode/types/episode-list-item.d.ts +0 -53
- package/lib/cjs/resources/episode/types/episode-list-item.js +0 -3
- package/lib/cjs/resources/episode/types/index.d.ts +0 -2
- package/lib/cjs/resources/episode/types/index.js +0 -19
- package/lib/cjs/resources/index.d.ts +0 -3
- package/lib/cjs/resources/index.js +0 -20
- package/lib/cjs/resources/issue/index.d.ts +0 -1
- package/lib/cjs/resources/issue/index.js +0 -18
- package/lib/cjs/resources/issue/issue.d.ts +0 -6
- package/lib/cjs/resources/issue/issue.js +0 -13
- package/lib/cjs/resources/issue/types/index.d.ts +0 -2
- package/lib/cjs/resources/issue/types/index.js +0 -19
- package/lib/cjs/resources/issue/types/issue-details.d.ts +0 -94
- package/lib/cjs/resources/issue/types/issue-details.js +0 -3
- package/lib/cjs/resources/issue/types/issue-list-item.d.ts +0 -61
- package/lib/cjs/resources/issue/types/issue-list-item.js +0 -3
- package/lib/cjs/resources/location/index.d.ts +0 -1
- package/lib/cjs/resources/location/index.js +0 -18
- package/lib/cjs/resources/location/location.d.ts +0 -6
- package/lib/cjs/resources/location/location.js +0 -13
- package/lib/cjs/resources/location/types/index.d.ts +0 -2
- package/lib/cjs/resources/location/types/index.js +0 -19
- package/lib/cjs/resources/location/types/location-details.d.ts +0 -62
- package/lib/cjs/resources/location/types/location-details.js +0 -3
- package/lib/cjs/resources/location/types/location-list-item.d.ts +0 -55
- package/lib/cjs/resources/location/types/location-list-item.js +0 -3
- package/lib/cjs/resources/movie/index.d.ts +0 -1
- package/lib/cjs/resources/movie/index.js +0 -18
- package/lib/cjs/resources/movie/movie.d.ts +0 -6
- package/lib/cjs/resources/movie/movie.js +0 -13
- package/lib/cjs/resources/movie/types/index.d.ts +0 -2
- package/lib/cjs/resources/movie/types/index.js +0 -19
- package/lib/cjs/resources/movie/types/movie-details.d.ts +0 -91
- package/lib/cjs/resources/movie/types/movie-details.js +0 -3
- package/lib/cjs/resources/movie/types/movie-list-item.d.ts +0 -74
- package/lib/cjs/resources/movie/types/movie-list-item.js +0 -3
- package/lib/cjs/resources/origin/index.d.ts +0 -1
- package/lib/cjs/resources/origin/index.js +0 -18
- package/lib/cjs/resources/origin/origin.d.ts +0 -6
- package/lib/cjs/resources/origin/origin.js +0 -13
- package/lib/cjs/resources/origin/types/index.d.ts +0 -2
- package/lib/cjs/resources/origin/types/index.js +0 -19
- package/lib/cjs/resources/origin/types/origin-details.d.ts +0 -22
- package/lib/cjs/resources/origin/types/origin-details.js +0 -3
- package/lib/cjs/resources/origin/types/origin-list-item.d.ts +0 -18
- package/lib/cjs/resources/origin/types/origin-list-item.js +0 -3
- package/lib/cjs/resources/person/index.d.ts +0 -1
- package/lib/cjs/resources/person/index.js +0 -18
- package/lib/cjs/resources/person/person.d.ts +0 -6
- package/lib/cjs/resources/person/person.js +0 -13
- package/lib/cjs/resources/person/types/index.d.ts +0 -2
- package/lib/cjs/resources/person/types/index.js +0 -19
- package/lib/cjs/resources/person/types/person-details.d.ts +0 -82
- package/lib/cjs/resources/person/types/person-details.js +0 -3
- package/lib/cjs/resources/person/types/person-list-item.d.ts +0 -77
- package/lib/cjs/resources/person/types/person-list-item.js +0 -8
- package/lib/cjs/resources/power/index.d.ts +0 -1
- package/lib/cjs/resources/power/index.js +0 -18
- package/lib/cjs/resources/power/power.d.ts +0 -6
- package/lib/cjs/resources/power/power.js +0 -13
- package/lib/cjs/resources/power/types/index.d.ts +0 -2
- package/lib/cjs/resources/power/types/index.js +0 -19
- package/lib/cjs/resources/power/types/power-details.d.ts +0 -39
- package/lib/cjs/resources/power/types/power-details.js +0 -3
- package/lib/cjs/resources/power/types/power-list-item.d.ts +0 -34
- package/lib/cjs/resources/power/types/power-list-item.js +0 -3
- package/lib/cjs/resources/promo/index.d.ts +0 -1
- package/lib/cjs/resources/promo/index.js +0 -18
- package/lib/cjs/resources/promo/promo.d.ts +0 -6
- package/lib/cjs/resources/promo/promo.js +0 -13
- package/lib/cjs/resources/promo/types/index.d.ts +0 -2
- package/lib/cjs/resources/promo/types/index.js +0 -19
- package/lib/cjs/resources/promo/types/promo-details.d.ts +0 -40
- package/lib/cjs/resources/promo/types/promo-details.js +0 -3
- package/lib/cjs/resources/promo/types/promo-list-item.d.ts +0 -40
- package/lib/cjs/resources/promo/types/promo-list-item.js +0 -3
- package/lib/cjs/resources/publisher/index.d.ts +0 -1
- package/lib/cjs/resources/publisher/index.js +0 -18
- package/lib/cjs/resources/publisher/publisher.d.ts +0 -6
- package/lib/cjs/resources/publisher/publisher.js +0 -13
- package/lib/cjs/resources/publisher/types/index.d.ts +0 -2
- package/lib/cjs/resources/publisher/types/index.js +0 -19
- package/lib/cjs/resources/publisher/types/publisher-details.d.ts +0 -71
- package/lib/cjs/resources/publisher/types/publisher-details.js +0 -3
- package/lib/cjs/resources/publisher/types/publisher-list-item.d.ts +0 -61
- package/lib/cjs/resources/publisher/types/publisher-list-item.js +0 -11
- package/lib/cjs/resources/resource-factory.d.ts +0 -8
- package/lib/cjs/resources/resource-factory.js +0 -53
- package/lib/cjs/resources/resource-list.d.ts +0 -19
- package/lib/cjs/resources/resource-list.js +0 -36
- package/lib/cjs/resources/resource-map.d.ts +0 -7
- package/lib/cjs/resources/resource-map.js +0 -40
- package/lib/cjs/resources/resource-type.d.ts +0 -21
- package/lib/cjs/resources/resource-type.js +0 -27
- package/lib/cjs/resources/series/index.d.ts +0 -1
- package/lib/cjs/resources/series/index.js +0 -18
- package/lib/cjs/resources/series/series.d.ts +0 -6
- package/lib/cjs/resources/series/series.js +0 -13
- package/lib/cjs/resources/series/types/index.d.ts +0 -2
- package/lib/cjs/resources/series/types/index.js +0 -19
- package/lib/cjs/resources/series/types/series-details.d.ts +0 -68
- package/lib/cjs/resources/series/types/series-details.js +0 -3
- package/lib/cjs/resources/series/types/series-list-item.d.ts +0 -18
- package/lib/cjs/resources/series/types/series-list-item.js +0 -3
- package/lib/cjs/resources/story-arc/index.d.ts +0 -1
- package/lib/cjs/resources/story-arc/index.js +0 -18
- package/lib/cjs/resources/story-arc/story-arc.d.ts +0 -6
- package/lib/cjs/resources/story-arc/story-arc.js +0 -13
- package/lib/cjs/resources/story-arc/types/index.d.ts +0 -2
- package/lib/cjs/resources/story-arc/types/index.js +0 -19
- package/lib/cjs/resources/story-arc/types/story-arc-details.d.ts +0 -62
- package/lib/cjs/resources/story-arc/types/story-arc-details.js +0 -3
- package/lib/cjs/resources/story-arc/types/story-arc-list-item.d.ts +0 -53
- package/lib/cjs/resources/story-arc/types/story-arc-list-item.js +0 -3
- package/lib/cjs/resources/team/index.d.ts +0 -1
- package/lib/cjs/resources/team/index.js +0 -18
- package/lib/cjs/resources/team/team.d.ts +0 -6
- package/lib/cjs/resources/team/team.js +0 -13
- package/lib/cjs/resources/team/types/index.d.ts +0 -2
- package/lib/cjs/resources/team/types/index.js +0 -19
- package/lib/cjs/resources/team/types/team-details.d.ts +0 -80
- package/lib/cjs/resources/team/types/team-details.js +0 -3
- package/lib/cjs/resources/team/types/team-list-item.d.ts +0 -56
- package/lib/cjs/resources/team/types/team-list-item.js +0 -3
- package/lib/cjs/resources/thing/index.d.ts +0 -1
- package/lib/cjs/resources/thing/index.js +0 -18
- package/lib/cjs/resources/thing/thing.d.ts +0 -6
- package/lib/cjs/resources/thing/thing.js +0 -13
- package/lib/cjs/resources/thing/types/index.d.ts +0 -2
- package/lib/cjs/resources/thing/types/index.js +0 -19
- package/lib/cjs/resources/thing/types/thing-details.d.ts +0 -62
- package/lib/cjs/resources/thing/types/thing-details.js +0 -3
- package/lib/cjs/resources/thing/types/thing-list-item.d.ts +0 -55
- package/lib/cjs/resources/thing/types/thing-list-item.js +0 -3
- package/lib/cjs/resources/video/index.d.ts +0 -1
- package/lib/cjs/resources/video/index.js +0 -18
- package/lib/cjs/resources/video/types/index.d.ts +0 -2
- package/lib/cjs/resources/video/types/index.js +0 -19
- package/lib/cjs/resources/video/types/video-details.d.ts +0 -63
- package/lib/cjs/resources/video/types/video-details.js +0 -3
- package/lib/cjs/resources/video/types/video-list-item.d.ts +0 -85
- package/lib/cjs/resources/video/types/video-list-item.js +0 -28
- package/lib/cjs/resources/video/video.d.ts +0 -6
- package/lib/cjs/resources/video/video.js +0 -13
- package/lib/cjs/resources/video-category/index.d.ts +0 -1
- package/lib/cjs/resources/video-category/index.js +0 -18
- package/lib/cjs/resources/video-category/types/index.d.ts +0 -2
- package/lib/cjs/resources/video-category/types/index.js +0 -19
- package/lib/cjs/resources/video-category/types/video-category-details.d.ts +0 -24
- package/lib/cjs/resources/video-category/types/video-category-details.js +0 -3
- package/lib/cjs/resources/video-category/types/video-category-list-item.d.ts +0 -24
- package/lib/cjs/resources/video-category/types/video-category-list-item.js +0 -3
- package/lib/cjs/resources/video-category/video-category.d.ts +0 -6
- package/lib/cjs/resources/video-category/video-category.js +0 -13
- package/lib/cjs/resources/video-type/index.d.ts +0 -1
- package/lib/cjs/resources/video-type/index.js +0 -18
- package/lib/cjs/resources/video-type/types/index.d.ts +0 -2
- package/lib/cjs/resources/video-type/types/index.js +0 -19
- package/lib/cjs/resources/video-type/types/video-type-details.d.ts +0 -22
- package/lib/cjs/resources/video-type/types/video-type-details.js +0 -3
- package/lib/cjs/resources/video-type/types/video-type-list-item.d.ts +0 -22
- package/lib/cjs/resources/video-type/types/video-type-list-item.js +0 -3
- package/lib/cjs/resources/video-type/video-type.d.ts +0 -6
- package/lib/cjs/resources/video-type/video-type.js +0 -13
- package/lib/cjs/resources/volume/index.d.ts +0 -1
- package/lib/cjs/resources/volume/index.js +0 -18
- package/lib/cjs/resources/volume/types/index.d.ts +0 -2
- package/lib/cjs/resources/volume/types/index.js +0 -19
- package/lib/cjs/resources/volume/types/volume-details.d.ts +0 -77
- package/lib/cjs/resources/volume/types/volume-details.js +0 -3
- package/lib/cjs/resources/volume/types/volume-list-item.d.ts +0 -63
- package/lib/cjs/resources/volume/types/volume-list-item.js +0 -3
- package/lib/cjs/resources/volume/volume.d.ts +0 -6
- package/lib/cjs/resources/volume/volume.js +0 -13
- package/lib/cjs/types/apply-override.d.ts +0 -1
- package/lib/cjs/types/apply-override.js +0 -3
- package/lib/cjs/types/http-client.d.ts +0 -4
- package/lib/cjs/types/http-client.js +0 -3
- package/lib/cjs/types/index.d.ts +0 -7
- package/lib/cjs/types/index.js +0 -24
- package/lib/cjs/types/iso-date.d.ts +0 -7
- package/lib/cjs/types/iso-date.js +0 -3
- package/lib/cjs/types/pick-filters.d.ts +0 -6
- package/lib/cjs/types/pick-filters.js +0 -3
- package/lib/cjs/types/request.d.ts +0 -31
- package/lib/cjs/types/request.js +0 -3
- package/lib/cjs/types/response.d.ts +0 -10
- package/lib/cjs/types/response.js +0 -3
- package/lib/cjs/types/url-builder.d.ts +0 -6
- package/lib/cjs/types/url-builder.js +0 -3
- package/lib/cjs/types/valueof.d.ts +0 -1
- package/lib/cjs/types/valueof.js +0 -3
- package/lib/cjs/utils/case-converter.d.ts +0 -4
- package/lib/cjs/utils/case-converter.js +0 -34
- package/lib/cjs/utils/index.d.ts +0 -2
- package/lib/cjs/utils/index.js +0 -19
- package/lib/cjs/utils/is-object.d.ts +0 -1
- package/lib/cjs/utils/is-object.js +0 -8
- package/lib/esm/comic-vine.d.ts +0 -44
- package/lib/esm/comic-vine.js +0 -68
- package/lib/esm/errors/base-error.d.ts +0 -9
- package/lib/esm/errors/base-error.js +0 -14
- package/lib/esm/errors/custom-error.d.ts +0 -2
- package/lib/esm/errors/custom-error.js +0 -8
- package/lib/esm/errors/filter-error.d.ts +0 -4
- package/lib/esm/errors/filter-error.js +0 -10
- package/lib/esm/errors/generic-error.d.ts +0 -4
- package/lib/esm/errors/generic-error.js +0 -10
- package/lib/esm/errors/generic-request-error.d.ts +0 -10
- package/lib/esm/errors/generic-request-error.js +0 -18
- package/lib/esm/errors/index.d.ts +0 -10
- package/lib/esm/errors/index.js +0 -11
- package/lib/esm/errors/jsonp-callback-missing-error.d.ts +0 -4
- package/lib/esm/errors/jsonp-callback-missing-error.js +0 -10
- package/lib/esm/errors/object-not-found-error.d.ts +0 -4
- package/lib/esm/errors/object-not-found-error.js +0 -10
- package/lib/esm/errors/options-validation-error.d.ts +0 -4
- package/lib/esm/errors/options-validation-error.js +0 -10
- package/lib/esm/errors/subscriber-only-error.d.ts +0 -4
- package/lib/esm/errors/subscriber-only-error.js +0 -10
- package/lib/esm/errors/unauthorized-error.d.ts +0 -4
- package/lib/esm/errors/unauthorized-error.js +0 -10
- package/lib/esm/errors/url-format-error.d.ts +0 -4
- package/lib/esm/errors/url-format-error.js +0 -10
- package/lib/esm/http-client/http-client-factory.d.ts +0 -6
- package/lib/esm/http-client/http-client-factory.js +0 -11
- package/lib/esm/http-client/http-client.d.ts +0 -8
- package/lib/esm/http-client/http-client.js +0 -52
- package/lib/esm/http-client/index.d.ts +0 -1
- package/lib/esm/http-client/index.js +0 -2
- package/lib/esm/http-client/status-code.d.ts +0 -9
- package/lib/esm/http-client/status-code.js +0 -11
- package/lib/esm/http-client/url-builder.d.ts +0 -29
- package/lib/esm/http-client/url-builder.js +0 -103
- package/lib/esm/index.d.ts +0 -3
- package/lib/esm/index.js +0 -3
- package/lib/esm/options/index.d.ts +0 -20
- package/lib/esm/options/index.js +0 -28
- package/lib/esm/package.json +0 -3
- package/lib/esm/resources/base-resource.d.ts +0 -19
- package/lib/esm/resources/base-resource.js +0 -54
- package/lib/esm/resources/character/character.d.ts +0 -6
- package/lib/esm/resources/character/character.js +0 -9
- package/lib/esm/resources/character/index.d.ts +0 -1
- package/lib/esm/resources/character/index.js +0 -2
- package/lib/esm/resources/character/types/character-details.d.ts +0 -110
- package/lib/esm/resources/character/types/character-details.js +0 -2
- package/lib/esm/resources/character/types/character-list-item.d.ts +0 -71
- package/lib/esm/resources/character/types/character-list-item.js +0 -2
- package/lib/esm/resources/character/types/index.d.ts +0 -2
- package/lib/esm/resources/character/types/index.js +0 -3
- package/lib/esm/resources/common-types.d.ts +0 -58
- package/lib/esm/resources/common-types.js +0 -2
- package/lib/esm/resources/concept/concept.d.ts +0 -6
- package/lib/esm/resources/concept/concept.js +0 -9
- package/lib/esm/resources/concept/index.d.ts +0 -1
- package/lib/esm/resources/concept/index.js +0 -2
- package/lib/esm/resources/concept/types/concept-details.d.ts +0 -58
- package/lib/esm/resources/concept/types/concept-details.js +0 -2
- package/lib/esm/resources/concept/types/concept-list-item.d.ts +0 -52
- package/lib/esm/resources/concept/types/concept-list-item.js +0 -2
- package/lib/esm/resources/concept/types/index.d.ts +0 -2
- package/lib/esm/resources/concept/types/index.js +0 -3
- package/lib/esm/resources/episode/episode.d.ts +0 -6
- package/lib/esm/resources/episode/episode.js +0 -9
- package/lib/esm/resources/episode/index.d.ts +0 -1
- package/lib/esm/resources/episode/index.js +0 -2
- package/lib/esm/resources/episode/types/episode-details.d.ts +0 -87
- package/lib/esm/resources/episode/types/episode-details.js +0 -2
- package/lib/esm/resources/episode/types/episode-list-item.d.ts +0 -53
- package/lib/esm/resources/episode/types/episode-list-item.js +0 -2
- package/lib/esm/resources/episode/types/index.d.ts +0 -2
- package/lib/esm/resources/episode/types/index.js +0 -3
- package/lib/esm/resources/index.d.ts +0 -3
- package/lib/esm/resources/index.js +0 -4
- package/lib/esm/resources/issue/index.d.ts +0 -1
- package/lib/esm/resources/issue/index.js +0 -2
- package/lib/esm/resources/issue/issue.d.ts +0 -6
- package/lib/esm/resources/issue/issue.js +0 -9
- package/lib/esm/resources/issue/types/index.d.ts +0 -2
- package/lib/esm/resources/issue/types/index.js +0 -3
- package/lib/esm/resources/issue/types/issue-details.d.ts +0 -94
- package/lib/esm/resources/issue/types/issue-details.js +0 -2
- package/lib/esm/resources/issue/types/issue-list-item.d.ts +0 -61
- package/lib/esm/resources/issue/types/issue-list-item.js +0 -2
- package/lib/esm/resources/location/index.d.ts +0 -1
- package/lib/esm/resources/location/index.js +0 -2
- package/lib/esm/resources/location/location.d.ts +0 -6
- package/lib/esm/resources/location/location.js +0 -9
- package/lib/esm/resources/location/types/index.d.ts +0 -2
- package/lib/esm/resources/location/types/index.js +0 -3
- package/lib/esm/resources/location/types/location-details.d.ts +0 -62
- package/lib/esm/resources/location/types/location-details.js +0 -2
- package/lib/esm/resources/location/types/location-list-item.d.ts +0 -55
- package/lib/esm/resources/location/types/location-list-item.js +0 -2
- package/lib/esm/resources/movie/index.d.ts +0 -1
- package/lib/esm/resources/movie/index.js +0 -2
- package/lib/esm/resources/movie/movie.d.ts +0 -6
- package/lib/esm/resources/movie/movie.js +0 -9
- package/lib/esm/resources/movie/types/index.d.ts +0 -2
- package/lib/esm/resources/movie/types/index.js +0 -3
- package/lib/esm/resources/movie/types/movie-details.d.ts +0 -91
- package/lib/esm/resources/movie/types/movie-details.js +0 -2
- package/lib/esm/resources/movie/types/movie-list-item.d.ts +0 -74
- package/lib/esm/resources/movie/types/movie-list-item.js +0 -2
- package/lib/esm/resources/origin/index.d.ts +0 -1
- package/lib/esm/resources/origin/index.js +0 -2
- package/lib/esm/resources/origin/origin.d.ts +0 -6
- package/lib/esm/resources/origin/origin.js +0 -9
- package/lib/esm/resources/origin/types/index.d.ts +0 -2
- package/lib/esm/resources/origin/types/index.js +0 -3
- package/lib/esm/resources/origin/types/origin-details.d.ts +0 -22
- package/lib/esm/resources/origin/types/origin-details.js +0 -2
- package/lib/esm/resources/origin/types/origin-list-item.d.ts +0 -18
- package/lib/esm/resources/origin/types/origin-list-item.js +0 -2
- package/lib/esm/resources/person/index.d.ts +0 -1
- package/lib/esm/resources/person/index.js +0 -2
- package/lib/esm/resources/person/person.d.ts +0 -6
- package/lib/esm/resources/person/person.js +0 -9
- package/lib/esm/resources/person/types/index.d.ts +0 -2
- package/lib/esm/resources/person/types/index.js +0 -3
- package/lib/esm/resources/person/types/person-details.d.ts +0 -82
- package/lib/esm/resources/person/types/person-details.js +0 -2
- package/lib/esm/resources/person/types/person-list-item.d.ts +0 -77
- package/lib/esm/resources/person/types/person-list-item.js +0 -5
- package/lib/esm/resources/power/index.d.ts +0 -1
- package/lib/esm/resources/power/index.js +0 -2
- package/lib/esm/resources/power/power.d.ts +0 -6
- package/lib/esm/resources/power/power.js +0 -9
- package/lib/esm/resources/power/types/index.d.ts +0 -2
- package/lib/esm/resources/power/types/index.js +0 -3
- package/lib/esm/resources/power/types/power-details.d.ts +0 -39
- package/lib/esm/resources/power/types/power-details.js +0 -2
- package/lib/esm/resources/power/types/power-list-item.d.ts +0 -34
- package/lib/esm/resources/power/types/power-list-item.js +0 -2
- package/lib/esm/resources/promo/index.d.ts +0 -1
- package/lib/esm/resources/promo/index.js +0 -2
- package/lib/esm/resources/promo/promo.d.ts +0 -6
- package/lib/esm/resources/promo/promo.js +0 -9
- package/lib/esm/resources/promo/types/index.d.ts +0 -2
- package/lib/esm/resources/promo/types/index.js +0 -3
- package/lib/esm/resources/promo/types/promo-details.d.ts +0 -40
- package/lib/esm/resources/promo/types/promo-details.js +0 -2
- package/lib/esm/resources/promo/types/promo-list-item.d.ts +0 -40
- package/lib/esm/resources/promo/types/promo-list-item.js +0 -2
- package/lib/esm/resources/publisher/index.d.ts +0 -1
- package/lib/esm/resources/publisher/index.js +0 -2
- package/lib/esm/resources/publisher/publisher.d.ts +0 -6
- package/lib/esm/resources/publisher/publisher.js +0 -9
- package/lib/esm/resources/publisher/types/index.d.ts +0 -2
- package/lib/esm/resources/publisher/types/index.js +0 -3
- package/lib/esm/resources/publisher/types/publisher-details.d.ts +0 -71
- package/lib/esm/resources/publisher/types/publisher-details.js +0 -2
- package/lib/esm/resources/publisher/types/publisher-list-item.d.ts +0 -61
- package/lib/esm/resources/publisher/types/publisher-list-item.js +0 -8
- package/lib/esm/resources/resource-factory.d.ts +0 -8
- package/lib/esm/resources/resource-factory.js +0 -16
- package/lib/esm/resources/resource-list.d.ts +0 -19
- package/lib/esm/resources/resource-list.js +0 -20
- package/lib/esm/resources/resource-map.d.ts +0 -7
- package/lib/esm/resources/resource-map.js +0 -36
- package/lib/esm/resources/resource-type.d.ts +0 -21
- package/lib/esm/resources/resource-type.js +0 -24
- package/lib/esm/resources/series/index.d.ts +0 -1
- package/lib/esm/resources/series/index.js +0 -2
- package/lib/esm/resources/series/series.d.ts +0 -6
- package/lib/esm/resources/series/series.js +0 -9
- package/lib/esm/resources/series/types/index.d.ts +0 -2
- package/lib/esm/resources/series/types/index.js +0 -3
- package/lib/esm/resources/series/types/series-details.d.ts +0 -68
- package/lib/esm/resources/series/types/series-details.js +0 -2
- package/lib/esm/resources/series/types/series-list-item.d.ts +0 -18
- package/lib/esm/resources/series/types/series-list-item.js +0 -2
- package/lib/esm/resources/story-arc/index.d.ts +0 -1
- package/lib/esm/resources/story-arc/index.js +0 -2
- package/lib/esm/resources/story-arc/story-arc.d.ts +0 -6
- package/lib/esm/resources/story-arc/story-arc.js +0 -9
- package/lib/esm/resources/story-arc/types/index.d.ts +0 -2
- package/lib/esm/resources/story-arc/types/index.js +0 -3
- package/lib/esm/resources/story-arc/types/story-arc-details.d.ts +0 -62
- package/lib/esm/resources/story-arc/types/story-arc-details.js +0 -2
- package/lib/esm/resources/story-arc/types/story-arc-list-item.d.ts +0 -53
- package/lib/esm/resources/story-arc/types/story-arc-list-item.js +0 -2
- package/lib/esm/resources/team/index.d.ts +0 -1
- package/lib/esm/resources/team/index.js +0 -2
- package/lib/esm/resources/team/team.d.ts +0 -6
- package/lib/esm/resources/team/team.js +0 -9
- package/lib/esm/resources/team/types/index.d.ts +0 -2
- package/lib/esm/resources/team/types/index.js +0 -3
- package/lib/esm/resources/team/types/team-details.d.ts +0 -80
- package/lib/esm/resources/team/types/team-details.js +0 -2
- package/lib/esm/resources/team/types/team-list-item.d.ts +0 -56
- package/lib/esm/resources/team/types/team-list-item.js +0 -2
- package/lib/esm/resources/thing/index.d.ts +0 -1
- package/lib/esm/resources/thing/index.js +0 -2
- package/lib/esm/resources/thing/thing.d.ts +0 -6
- package/lib/esm/resources/thing/thing.js +0 -9
- package/lib/esm/resources/thing/types/index.d.ts +0 -2
- package/lib/esm/resources/thing/types/index.js +0 -3
- package/lib/esm/resources/thing/types/thing-details.d.ts +0 -62
- package/lib/esm/resources/thing/types/thing-details.js +0 -2
- package/lib/esm/resources/thing/types/thing-list-item.d.ts +0 -55
- package/lib/esm/resources/thing/types/thing-list-item.js +0 -2
- package/lib/esm/resources/video/index.d.ts +0 -1
- package/lib/esm/resources/video/index.js +0 -2
- package/lib/esm/resources/video/types/index.d.ts +0 -2
- package/lib/esm/resources/video/types/index.js +0 -3
- package/lib/esm/resources/video/types/video-details.d.ts +0 -63
- package/lib/esm/resources/video/types/video-details.js +0 -2
- package/lib/esm/resources/video/types/video-list-item.d.ts +0 -85
- package/lib/esm/resources/video/types/video-list-item.js +0 -25
- package/lib/esm/resources/video/video.d.ts +0 -6
- package/lib/esm/resources/video/video.js +0 -9
- package/lib/esm/resources/video-category/index.d.ts +0 -1
- package/lib/esm/resources/video-category/index.js +0 -2
- package/lib/esm/resources/video-category/types/index.d.ts +0 -2
- package/lib/esm/resources/video-category/types/index.js +0 -3
- package/lib/esm/resources/video-category/types/video-category-details.d.ts +0 -24
- package/lib/esm/resources/video-category/types/video-category-details.js +0 -2
- package/lib/esm/resources/video-category/types/video-category-list-item.d.ts +0 -24
- package/lib/esm/resources/video-category/types/video-category-list-item.js +0 -2
- package/lib/esm/resources/video-category/video-category.d.ts +0 -6
- package/lib/esm/resources/video-category/video-category.js +0 -9
- package/lib/esm/resources/video-type/index.d.ts +0 -1
- package/lib/esm/resources/video-type/index.js +0 -2
- package/lib/esm/resources/video-type/types/index.d.ts +0 -2
- package/lib/esm/resources/video-type/types/index.js +0 -3
- package/lib/esm/resources/video-type/types/video-type-details.d.ts +0 -22
- package/lib/esm/resources/video-type/types/video-type-details.js +0 -2
- package/lib/esm/resources/video-type/types/video-type-list-item.d.ts +0 -22
- package/lib/esm/resources/video-type/types/video-type-list-item.js +0 -2
- package/lib/esm/resources/video-type/video-type.d.ts +0 -6
- package/lib/esm/resources/video-type/video-type.js +0 -9
- package/lib/esm/resources/volume/index.d.ts +0 -1
- package/lib/esm/resources/volume/index.js +0 -2
- package/lib/esm/resources/volume/types/index.d.ts +0 -2
- package/lib/esm/resources/volume/types/index.js +0 -3
- package/lib/esm/resources/volume/types/volume-details.d.ts +0 -77
- package/lib/esm/resources/volume/types/volume-details.js +0 -2
- package/lib/esm/resources/volume/types/volume-list-item.d.ts +0 -63
- package/lib/esm/resources/volume/types/volume-list-item.js +0 -2
- package/lib/esm/resources/volume/volume.d.ts +0 -6
- package/lib/esm/resources/volume/volume.js +0 -9
- package/lib/esm/types/apply-override.d.ts +0 -1
- package/lib/esm/types/apply-override.js +0 -2
- package/lib/esm/types/http-client.d.ts +0 -4
- package/lib/esm/types/http-client.js +0 -2
- package/lib/esm/types/index.d.ts +0 -7
- package/lib/esm/types/index.js +0 -8
- package/lib/esm/types/iso-date.d.ts +0 -7
- package/lib/esm/types/iso-date.js +0 -2
- package/lib/esm/types/pick-filters.d.ts +0 -6
- package/lib/esm/types/pick-filters.js +0 -2
- package/lib/esm/types/request.d.ts +0 -31
- package/lib/esm/types/request.js +0 -2
- package/lib/esm/types/response.d.ts +0 -10
- package/lib/esm/types/response.js +0 -2
- package/lib/esm/types/url-builder.d.ts +0 -6
- package/lib/esm/types/url-builder.js +0 -2
- package/lib/esm/types/valueof.d.ts +0 -1
- package/lib/esm/types/valueof.js +0 -2
- package/lib/esm/utils/case-converter.d.ts +0 -4
- package/lib/esm/utils/case-converter.js +0 -27
- package/lib/esm/utils/index.d.ts +0 -2
- package/lib/esm/utils/index.js +0 -3
- package/lib/esm/utils/is-object.d.ts +0 -1
- package/lib/esm/utils/is-object.js +0 -4
- package/scripts/create-package-json.ts +0 -29
- package/vitest.config.ts +0 -8
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/http-client/status-code.ts","../src/errors/base-error.ts","../src/errors/generic-error.ts","../src/errors/custom-error.ts","../src/errors/filter-error.ts","../src/errors/generic-request-error.ts","../src/errors/jsonp-callback-missing-error.ts","../src/errors/object-not-found-error.ts","../src/errors/options-validation-error.ts","../src/errors/subscriber-only-error.ts","../src/errors/unauthorized-error.ts","../src/errors/url-format-error.ts","../src/utils/is-object.ts","../src/utils/case-converter.ts","../src/http-client/hooks.ts","../src/resources/resource-list.ts","../src/resources/base-resource.ts","../src/resources/resource-type.ts","../src/resources/character/character.ts","../src/resources/concept/concept.ts","../src/resources/episode/episode.ts","../src/resources/issue/issue.ts","../src/resources/location/location.ts","../src/resources/movie/movie.ts","../src/resources/origin/origin.ts","../src/resources/person/person.ts","../src/resources/power/power.ts","../src/resources/promo/promo.ts","../src/resources/publisher/publisher.ts","../src/resources/series/series.ts","../src/resources/story-arc/story-arc.ts","../src/resources/team/team.ts","../src/resources/thing/thing.ts","../src/resources/video/video.ts","../src/resources/video-category/video-category.ts","../src/resources/video-type/video-type.ts","../src/resources/volume/volume.ts","../src/resources/resource-factory.ts","../src/resources/resource-map.ts","../src/http-client/url-builder.ts","../src/options/index.ts","../src/comic-vine.ts","../src/index.ts"],"names":["StatusCode","options","_a","ResourceType"],"mappings":"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","file":"index.js","sourcesContent":["export enum StatusCode {\n OK = 1,\n InvalidApiKey = 100,\n ObjectNotFound = 101,\n UrlFormatError = 102,\n JsonpCallbackMissing = 103,\n FilterError = 104,\n SubscriberOnlyVideo = 105,\n}\n","import { HttpClientError } from '@http-client-toolkit/core';\n\ninterface ErrorDetails {\n message: string;\n help: string;\n}\n\nexport abstract class BaseError extends HttpClientError {\n public help: string;\n\n constructor(details: ErrorDetails) {\n // Pass remaining arguments (including vendor specific ones) to parent constructor\n super(details.message);\n this.name = this.constructor.name;\n\n // Remove constructor invocation from the stack trace. Only available in V8.\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n // Custom debugging information\n this.help = details.help;\n }\n}\n","import { BaseError } from './base-error.js';\n\nexport class GenericError extends BaseError {\n constructor(message?: string) {\n super({\n message: `An unexpected error occurred: ${message || 'Unknown Error'}`,\n help: 'Please open a Github issue with steps to reproduce: https://github.com/AllyMurray/comic-vine/issues',\n });\n }\n}\n","import { GenericError } from './generic-error.js';\n\nexport const customError = (error: unknown) => {\n if (error instanceof Error) {\n return new GenericError(error.message);\n }\n return new GenericError();\n};\n","import { BaseError } from './base-error.js';\n\nexport class ComicVineFilterError extends BaseError {\n constructor() {\n super({\n message: 'There was a problem trying to filter the API results',\n help: 'Please open a Github issue with steps to reproduce: https://github.com/AllyMurray/comic-vine/issues',\n });\n }\n}\n","import { BaseError } from './base-error.js';\n\n/**\n * @deprecated will be removed in the next major version, use ComicVineGenericRequestError instead!\n */\nexport class ComicVineGenericError extends BaseError {\n constructor(message?: string) {\n super({\n message: `Request to comic vine failed: ${message ?? 'Unknown Error'}`,\n help: 'Please open a Github issue with steps to reproduce: https://github.com/AllyMurray/comic-vine/issues',\n });\n }\n}\n\nexport class ComicVineGenericRequestError extends ComicVineGenericError {\n constructor(message?: string) {\n super(message);\n }\n}\n","import { BaseError } from './base-error.js';\n\nexport class ComicJsonpCallbackMissingError extends BaseError {\n constructor() {\n super({\n message: 'JSONP format requires a callback',\n help: 'This library does not use JSONP, please open a Github issue with steps to reproduce: https://github.com/AllyMurray/comic-vine/issues',\n });\n }\n}\n","import { BaseError } from './base-error.js';\n\nexport class ComicVineObjectNotFoundError extends BaseError {\n constructor() {\n super({\n message:\n 'The requested resource could not be found in the Comic Vine API',\n help: 'Ensure you have used a valid resource Id',\n });\n }\n}\n","import { BaseError } from './base-error.js';\n\nexport class OptionsValidationError extends BaseError {\n constructor(path: Array<string | number>, message: string) {\n super({\n message: `Property: ${path.join('.')}, Problem: ${message}`,\n help: 'If the error message does not provide enough information or you believe there is a bug, please open a Github issue with steps to reproduce: https://github.com/AllyMurray/comic-vine/issues',\n });\n }\n}\n","import { BaseError } from './base-error.js';\n\nexport class ComicVineSubscriberOnlyError extends BaseError {\n constructor() {\n super({\n message: 'The requested video is for subscribers only',\n help: 'Subscriber videos are part of a paid service, if you wish to upgrade you can do so here: https://comicvine.gamespot.com/upgrade/',\n });\n }\n}\n","import { BaseError } from './base-error.js';\n\nexport class ComicVineUnauthorizedError extends BaseError {\n constructor() {\n super({\n message: 'Unauthorized response received when calling the Comic Vine API',\n help: 'Ensure you have a valid API key, you can get one from: https://comicvine.gamespot.com/api/',\n });\n }\n}\n","import { BaseError } from './base-error.js';\n\nexport class ComicVineUrlFormatError extends BaseError {\n constructor() {\n super({\n message: 'The url for the request was not in the correct format',\n help: 'Please open a Github issue with steps to reproduce: https://github.com/AllyMurray/comic-vine/issues',\n });\n }\n}\n","export const isObject = (maybeObject: unknown) =>\n maybeObject === Object(maybeObject) &&\n !Array.isArray(maybeObject) &&\n typeof maybeObject !== 'function';\n","import { isObject } from './is-object.js';\n\nexport const toCamelCase = (str: string): string => {\n return str.replace(/([-_][a-z])/gi, ($1) => {\n return $1.toUpperCase().replace('-', '').replace('_', '');\n });\n};\n\nexport const toSnakeCase = (str: string) =>\n str.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);\n\ntype CaseConverter = (str: string) => string;\n\nconst convertCase = (\n caseConverter: CaseConverter,\n object: unknown,\n): unknown => {\n if (isObject(object)) {\n const newObject: Record<string, unknown> = {};\n\n Object.keys(object as Record<string, unknown>).forEach((key) => {\n newObject[caseConverter(key)] = convertCase(\n caseConverter,\n (object as Record<string, unknown>)[key],\n );\n });\n\n return newObject;\n } else if (Array.isArray(object)) {\n return object.map((arrayElement) =>\n convertCase(caseConverter, arrayElement),\n );\n }\n\n return object;\n};\n\nexport const convertSnakeCaseToCamelCase = <ReturnType>(\n object: unknown,\n): ReturnType => {\n return convertCase(toCamelCase, object) as ReturnType;\n};\n\nexport const convertCamelCaseToSnakeCase = <ReturnType>(\n object: unknown,\n): ReturnType => {\n return convertCase(toSnakeCase, object) as ReturnType;\n};\n","import type { HttpErrorContext } from '@http-client-toolkit/core';\nimport { StatusCode } from './status-code.js';\nimport {\n ComicVineFilterError,\n ComicJsonpCallbackMissingError,\n ComicVineObjectNotFoundError,\n ComicVineSubscriberOnlyError,\n ComicVineUrlFormatError,\n ComicVineUnauthorizedError,\n ComicVineGenericRequestError,\n} from '../errors/index.js';\nimport { convertSnakeCaseToCamelCase } from '../utils/case-converter.js';\n\n/**\n * Transforms snake_case API responses to camelCase.\n * Plugs into the toolkit's `responseTransformer` hook.\n */\nexport function comicVineResponseTransformer(data: unknown): unknown {\n return convertSnakeCaseToCamelCase(data);\n}\n\n/**\n * Checks Comic Vine application-level status codes and throws domain errors.\n * Plugs into the toolkit's `responseHandler` hook.\n *\n * Comic Vine returns 200 OK for application-level errors with a `statusCode`\n * field in the response body that indicates the actual result.\n */\nexport function comicVineResponseHandler(data: unknown): unknown {\n if (\n data !== null &&\n typeof data === 'object' &&\n 'statusCode' in data &&\n typeof (data as Record<string, unknown>).statusCode === 'number'\n ) {\n const statusCode = (data as Record<string, unknown>).statusCode as number;\n switch (statusCode) {\n case StatusCode.FilterError:\n throw new ComicVineFilterError();\n case StatusCode.JsonpCallbackMissing:\n throw new ComicJsonpCallbackMissingError();\n case StatusCode.ObjectNotFound:\n throw new ComicVineObjectNotFoundError();\n case StatusCode.SubscriberOnlyVideo:\n throw new ComicVineSubscriberOnlyError();\n case StatusCode.UrlFormatError:\n throw new ComicVineUrlFormatError();\n }\n }\n return data;\n}\n\n/**\n * Maps HTTP errors to Comic Vine domain-specific errors.\n * Plugs into the toolkit's `errorHandler` hook.\n */\nexport function comicVineErrorHandler(context: HttpErrorContext): Error {\n if (context.response.status === 401) {\n return new ComicVineUnauthorizedError();\n }\n\n const bodyMessage =\n typeof context.response.data === 'object' && context.response.data !== null\n ? (context.response.data as { message?: string }).message\n : undefined;\n const message = bodyMessage\n ? `${context.message}, ${bodyMessage}`\n : context.message;\n return new ComicVineGenericRequestError(message);\n}\n","export * from './character/index.js';\nexport * from './concept/index.js';\nexport * from './episode/index.js';\nexport * from './issue/index.js';\nexport * from './location/index.js';\nexport * from './movie/index.js';\nexport * from './origin/index.js';\nexport * from './person/index.js';\nexport * from './power/index.js';\nexport * from './promo/index.js';\nexport * from './publisher/index.js';\nexport * from './series/index.js';\nexport * from './story-arc/index.js';\nexport * from './team/index.js';\nexport * from './thing/index.js';\nexport * from './video/index.js';\nexport * from './video-category/index.js';\nexport * from './video-type/index.js';\nexport * from './volume/index.js';\n","import { ResourceType } from './resource-type.js';\nimport type {\n RetrieveOptions,\n ListOptions,\n HttpClient,\n UrlBuilder,\n PickFilters,\n} from '../types/index.js';\nimport type { Response } from '../types/response.js';\n\n// Common interface that all resources must implement\nexport interface ResourceInterface {\n retrieve(id: number, options?: Record<string, unknown>): Promise<unknown>;\n list(\n options?: Record<string, unknown>,\n ): Promise<unknown> & AsyncIterable<unknown>;\n}\n\nexport abstract class BaseResource<Resource, ResourceListItem>\n implements ResourceInterface\n{\n protected abstract resourceType: ResourceType;\n\n constructor(\n private httpClient: HttpClient,\n private urlBuilder: UrlBuilder,\n ) {}\n\n async retrieve<FieldKey extends keyof Resource>(\n id: number,\n options?: RetrieveOptions<FieldKey>,\n ) {\n type ReturnType<T> = T extends object ? Pick<Resource, FieldKey> : Resource;\n\n const url = this.urlBuilder.retrieve(this.resourceType, id, options);\n const _fieldList = options?.fieldList;\n type ResponseType = ReturnType<typeof _fieldList>;\n const response = await this.httpClient.get<Response<ResponseType>>(url, {\n priority: options?.priority,\n });\n\n return response.results;\n }\n\n private async fetchPage<FieldKey extends keyof ResourceListItem>(\n options?: ListOptions<FieldKey, PickFilters<ResourceListItem>>,\n ) {\n type ReturnType<T> = T extends object\n ? Pick<ResourceListItem, FieldKey>\n : ResourceListItem;\n\n const url = this.urlBuilder.list(this.resourceType, options);\n const _fieldList = options?.fieldList;\n type ResponseType = ReturnType<typeof _fieldList>;\n const response = await this.httpClient.get<Response<Array<ResponseType>>>(\n url,\n {\n priority: options?.priority,\n },\n );\n\n return {\n limit: response.limit,\n numberOfPageResults: response.numberOfPageResults,\n numberOfTotalResults: response.numberOfTotalResults,\n offset: response.offset,\n data: response.results,\n };\n }\n\n list<FieldKey extends keyof ResourceListItem>(\n options?: ListOptions<FieldKey, PickFilters<ResourceListItem>>,\n ) {\n // Proxy the call to this.fetchPage so that we can close over `this`, allowing access in the iterator\n const fetchPage = (opts?: Parameters<typeof this.fetchPage>[0]) =>\n this.fetchPage.call(this, opts);\n const fetchPagePromise = fetchPage(options);\n\n const asyncIterator = {\n async *[Symbol.asyncIterator]() {\n const defaultPageSize = 100;\n const limit = options?.limit ?? defaultPageSize;\n let page = options?.offset ? options.offset / limit + 1 : 1;\n let hasMoreResults = true;\n let response = await fetchPagePromise;\n\n do {\n for (const resource of response.data) {\n yield resource;\n }\n\n hasMoreResults =\n response.limit + response.offset < response.numberOfTotalResults;\n\n if (hasMoreResults) {\n response = await fetchPage({\n limit,\n offset: response.numberOfPageResults * page++,\n });\n }\n } while (hasMoreResults);\n },\n };\n\n const promiseWithAsyncIterator = Object.assign(\n fetchPagePromise,\n asyncIterator,\n );\n\n return promiseWithAsyncIterator;\n }\n}\n","/* eslint-disable @typescript-eslint/no-duplicate-enum-values */\nexport enum ResourceType {\n Character = 4005,\n Concept = 4015,\n Episode = 4070,\n Issue = 4000,\n Location = 4020,\n Movie = 4025,\n Origin = 4030,\n Person = 4040,\n Power = 4035,\n Promo = 1700,\n Publisher = 4010,\n Series = 4075,\n StoryArc = 4045,\n Team = 4060,\n Thing = 4055,\n Video = 2300,\n VideoCategory = 2320,\n VideoType = 2320,\n Volume = 4050,\n}\n","import { BaseResource } from '../base-resource.js';\nimport { ResourceType } from '../resource-type.js';\nimport { CharacterDetails, CharacterListItem } from './types/index.js';\n\nexport class Character extends BaseResource<\n CharacterDetails,\n CharacterListItem\n> {\n protected resourceType: ResourceType = ResourceType.Character;\n}\n","import { BaseResource } from '../base-resource.js';\nimport { ResourceType } from '../resource-type.js';\nimport { ConceptDetails, ConceptListItem } from './types/index.js';\n\nexport class Concept extends BaseResource<ConceptDetails, ConceptListItem> {\n protected resourceType: ResourceType = ResourceType.Concept;\n}\n","import { BaseResource } from '../base-resource.js';\nimport { ResourceType } from '../resource-type.js';\nimport { EpisodeDetails, EpisodeListItem } from './types/index.js';\n\nexport class Episode extends BaseResource<EpisodeDetails, EpisodeListItem> {\n protected resourceType: ResourceType = ResourceType.Episode;\n}\n","import { BaseResource } from '../base-resource.js';\nimport { ResourceType } from '../resource-type.js';\nimport { IssueDetails, IssueListItem } from './types/index.js';\n\nexport class Issue extends BaseResource<IssueDetails, IssueListItem> {\n protected resourceType: ResourceType = ResourceType.Issue;\n}\n","import { BaseResource } from '../base-resource.js';\nimport { ResourceType } from '../resource-type.js';\nimport { LocationDetails, LocationListItem } from './types/index.js';\n\nexport class Location extends BaseResource<LocationDetails, LocationListItem> {\n protected resourceType: ResourceType = ResourceType.Location;\n}\n","import { BaseResource } from '../base-resource.js';\nimport { ResourceType } from '../resource-type.js';\nimport { MovieDetails, MovieListItem } from './types/index.js';\n\nexport class Movie extends BaseResource<MovieDetails, MovieListItem> {\n protected resourceType: ResourceType = ResourceType.Movie;\n}\n","import { BaseResource } from '../base-resource.js';\nimport { ResourceType } from '../resource-type.js';\nimport { OriginDetails, OriginListItem } from './types/index.js';\n\nexport class Origin extends BaseResource<OriginDetails, OriginListItem> {\n protected resourceType: ResourceType = ResourceType.Origin;\n}\n","import { BaseResource } from '../base-resource.js';\nimport { ResourceType } from '../resource-type.js';\nimport { PersonDetails, PersonListItem } from './types/index.js';\n\nexport class Person extends BaseResource<PersonDetails, PersonListItem> {\n protected resourceType: ResourceType = ResourceType.Person;\n}\n","import { BaseResource } from '../base-resource.js';\nimport { ResourceType } from '../resource-type.js';\nimport { PowerDetails, PowerListItem } from './types/index.js';\n\nexport class Power extends BaseResource<PowerDetails, PowerListItem> {\n protected resourceType: ResourceType = ResourceType.Power;\n}\n","import { BaseResource } from '../base-resource.js';\nimport { ResourceType } from '../resource-type.js';\nimport { PromoDetails, PromoListItem } from './types/index.js';\n\nexport class Promo extends BaseResource<PromoDetails, PromoListItem> {\n protected resourceType: ResourceType = ResourceType.Promo;\n}\n","import { BaseResource } from '../base-resource.js';\nimport { ResourceType } from '../resource-type.js';\nimport { PublisherDetails, PublisherListItem } from './types/index.js';\n\nexport class Publisher extends BaseResource<\n PublisherDetails,\n PublisherListItem\n> {\n protected resourceType: ResourceType = ResourceType.Publisher;\n}\n","import { BaseResource } from '../base-resource.js';\nimport { ResourceType } from '../resource-type.js';\nimport { SeriesDetails, SeriesListItem } from './types/index.js';\n\nexport class Series extends BaseResource<SeriesDetails, SeriesListItem> {\n protected resourceType: ResourceType = ResourceType.Series;\n}\n","import { BaseResource } from '../base-resource.js';\nimport { ResourceType } from '../resource-type.js';\nimport { StoryArcDetails, StoryArcListItem } from './types/index.js';\n\nexport class StoryArc extends BaseResource<StoryArcDetails, StoryArcListItem> {\n protected resourceType: ResourceType = ResourceType.StoryArc;\n}\n","import { BaseResource } from '../base-resource.js';\nimport { ResourceType } from '../resource-type.js';\nimport { TeamDetails, TeamListItem } from './types/index.js';\n\nexport class Team extends BaseResource<TeamDetails, TeamListItem> {\n protected resourceType: ResourceType = ResourceType.Team;\n}\n","import { BaseResource } from '../base-resource.js';\nimport { ResourceType } from '../resource-type.js';\nimport { ThingDetails, ThingListItem } from './types/index.js';\n\nexport class Thing extends BaseResource<ThingDetails, ThingListItem> {\n protected resourceType: ResourceType = ResourceType.Thing;\n}\n","import { BaseResource } from '../base-resource.js';\nimport { ResourceType } from '../resource-type.js';\nimport { VideoDetails, VideoListItem } from './types/index.js';\n\nexport class Video extends BaseResource<VideoDetails, VideoListItem> {\n protected resourceType: ResourceType = ResourceType.Video;\n}\n","import { BaseResource } from '../base-resource.js';\nimport { ResourceType } from '../resource-type.js';\nimport { VideoCategoryDetails, VideoCategoryListItem } from './types/index.js';\n\nexport class VideoCategory extends BaseResource<\n VideoCategoryDetails,\n VideoCategoryListItem\n> {\n protected resourceType: ResourceType = ResourceType.VideoCategory;\n}\n","import { BaseResource } from '../base-resource.js';\nimport { ResourceType } from '../resource-type.js';\nimport { VideoTypeDetails, VideoTypeListItem } from './types/index.js';\n\nexport class VideoType extends BaseResource<\n VideoTypeDetails,\n VideoTypeListItem\n> {\n protected resourceType: ResourceType = ResourceType.VideoType;\n}\n","import { BaseResource } from '../base-resource.js';\nimport { ResourceType } from '../resource-type.js';\nimport { VolumeDetails, VolumeListItem } from './types/index.js';\n\nexport class Volume extends BaseResource<VolumeDetails, VolumeListItem> {\n protected resourceType: ResourceType = ResourceType.Volume;\n}\n","import * as resources from './resource-list.js';\nimport { HttpClient, UrlBuilder } from '../types/index.js';\n\nexport class ResourceFactory {\n private _resources = { ...resources };\n\n constructor(\n private httpClient: HttpClient,\n private urlBuilder: UrlBuilder,\n ) {}\n\n public create<T extends keyof typeof this._resources>(\n name: T,\n ): InstanceType<(typeof this._resources)[T]>;\n public create(\n name: keyof typeof this._resources,\n ): InstanceType<(typeof this._resources)[keyof typeof this._resources]> {\n if (!this._resources[name]) {\n throw new Error(`${name} resource not implemented`);\n }\n const ResourceClass = this._resources[name] as new (\n httpClient: HttpClient,\n urlBuilder: UrlBuilder,\n ) => InstanceType<(typeof this._resources)[keyof typeof this._resources]>;\n return new ResourceClass(this.httpClient, this.urlBuilder);\n }\n}\n","import { ResourceType } from './resource-type.js';\n\ninterface Resource {\n detailName: string;\n listName: string;\n}\n\nconst resourceMap = new Map<ResourceType, Resource>([\n [ResourceType.Character, { detailName: 'character', listName: 'characters' }],\n [ResourceType.Concept, { detailName: 'concept', listName: 'concepts' }],\n [ResourceType.Episode, { detailName: 'episode', listName: 'episodes' }],\n [ResourceType.Issue, { detailName: 'issue', listName: 'issues' }],\n [ResourceType.Location, { detailName: 'location', listName: 'locations' }],\n [ResourceType.Movie, { detailName: 'movie', listName: 'movies' }],\n [ResourceType.Origin, { detailName: 'origin', listName: 'origins' }],\n [ResourceType.Person, { detailName: 'person', listName: 'people' }],\n [ResourceType.Power, { detailName: 'power', listName: 'powers' }],\n [ResourceType.Promo, { detailName: 'promo', listName: 'promos' }],\n [ResourceType.Publisher, { detailName: 'publisher', listName: 'publishers' }],\n [ResourceType.Series, { detailName: 'series', listName: 'series_list' }],\n [ResourceType.StoryArc, { detailName: 'story_arc', listName: 'story_arcs' }],\n [ResourceType.Team, { detailName: 'team', listName: 'teams' }],\n [ResourceType.Thing, { detailName: 'object', listName: 'objects' }],\n [ResourceType.Video, { detailName: 'video', listName: 'videos' }],\n [\n ResourceType.VideoCategory,\n { detailName: 'video_category', listName: 'video_categories' },\n ],\n [\n ResourceType.VideoType,\n { detailName: 'video_type', listName: 'video_types' },\n ],\n [ResourceType.Volume, { detailName: 'volume', listName: 'volumes' }],\n]);\n\nexport const getResource = (resourceType: ResourceType) => {\n const resource = resourceMap.get(resourceType);\n if (!resource) {\n throw new Error(`Resource type (${resourceType}) not found`);\n }\n return resource;\n};\n","import { getResource, ResourceType } from '../resources/index.js';\nimport { RetrieveOptions, ListOptions, Sort } from '../types/index.js';\nimport { toSnakeCase, convertCamelCaseToSnakeCase } from '../utils/index.js';\n\nconst isDefined = <T>(value: T): value is NonNullable<T> => {\n return value != null;\n};\n\ninterface QueryParam {\n name: string;\n value: string | number;\n}\n\nexport class UrlBuilder {\n constructor(\n private apiKey: string,\n private baseUrl: string,\n ) {}\n\n private getParam(key: string, value: string | number | undefined) {\n if (value) {\n return { name: toSnakeCase(key), value };\n }\n\n return undefined;\n }\n\n private getFormatParm() {\n return { name: 'format', value: `json` };\n }\n\n private getApiKeyParm() {\n return { name: 'api_key', value: this.apiKey };\n }\n\n private getSortParam(sort?: Sort) {\n if (sort) {\n return { name: 'sort', value: `${sort.field}:${sort.direction}` };\n }\n\n return undefined;\n }\n\n private getLimitParam(limit?: number) {\n if (limit) {\n return this.getParam('limit', limit);\n }\n\n return undefined;\n }\n\n private getOffsetParam(offset?: number) {\n if (offset) {\n return this.getParam('offset', offset);\n }\n\n return undefined;\n }\n\n private getFieldListParams<Key>(fieldList: Array<Key> | undefined) {\n if (fieldList) {\n return {\n name: 'field_list',\n value: fieldList.map((field) => toSnakeCase(String(field))).join(','),\n };\n }\n\n return undefined;\n }\n\n private getFilterParams<FilterType>(filter: FilterType | undefined) {\n if (filter) {\n const snakeCaseFilter =\n convertCamelCaseToSnakeCase<Record<string, unknown>>(filter);\n const filterParams = Object.entries<unknown>(snakeCaseFilter).map(\n ([key, value]) => `${key}:${value}`,\n );\n\n return { name: 'filter', value: filterParams.join(',') };\n }\n\n return undefined;\n }\n\n private buildUrl(\n urlInput: string,\n queryParams: Array<QueryParam | undefined>,\n ) {\n const url = new URL(urlInput, this.baseUrl);\n const urlSearchParams = new URLSearchParams(\n queryParams\n .filter(isDefined)\n .map<[string, string]>((param) => [param.name, param.value.toString()]),\n );\n\n url.search = urlSearchParams.toString();\n\n return url.toString();\n }\n\n /**\n * @param resourceType A unique identifier for the resource type\n * @param id A unique identifier for the resource\n * @returns A url for requesting the resource\n * @example https://comicvine.gamespot.com/api/issue/4000-719442?format=json&api_key=123abc\n */\n retrieve<Key>(\n resourceType: ResourceType,\n id: number,\n options?: RetrieveOptions<Key>,\n ) {\n const resource = getResource(resourceType);\n const urlInput = `${resource.detailName}/${resourceType}-${id}`;\n const queryParams = [\n this.getFormatParm(),\n this.getApiKeyParm(),\n this.getFieldListParams(options?.fieldList),\n ];\n return this.buildUrl(urlInput, queryParams);\n }\n\n /**\n * @param resourceType A unique identifier for the resource type\n * @returns A url for requesting a list of resources\n * @example https://comicvine.gamespot.com/api/issues?format=json&api_key=123abc\n */\n list<Resource, FilterType>(\n resourceType: ResourceType,\n options?: ListOptions<Resource, FilterType>,\n ) {\n const urlInput = getResource(resourceType).listName;\n const queryParams = [\n this.getFormatParm(),\n this.getApiKeyParm(),\n this.getLimitParam(options?.limit),\n this.getOffsetParam(options?.offset),\n this.getSortParam(options?.sort),\n this.getFieldListParams(options?.fieldList),\n this.getFilterParams(options?.filter),\n ];\n return this.buildUrl(urlInput, queryParams);\n }\n}\n","import { z, ZodError } from 'zod';\nimport { customError, OptionsValidationError } from '../errors/index.js';\n\nconst options = z.object({\n /**\n * The base url for the Comic Vine API.\n * This could be used to set a proxy when using the library in a browser.\n * It also ensures that if the comic vine url was to change it wouldn't be a breaking change to the library.\n * @default https://comicvine.gamespot.com/api/\n */\n baseUrl: z\n .string()\n .url()\n .optional()\n .default('https://comicvine.gamespot.com/api/'),\n});\n\nexport type userOptions = z.input<typeof options>;\nexport type Options = z.output<typeof options>;\n\nexport const loadOptions = (userOptions?: userOptions) => {\n try {\n return options.parse(userOptions ?? {});\n } catch (error: unknown) {\n if (error instanceof ZodError) {\n const validationError = error.issues[0];\n if (validationError) {\n throw new OptionsValidationError(\n validationError.path,\n validationError.message,\n );\n }\n throw new OptionsValidationError([], 'Unknown validation error');\n }\n throw customError(error);\n }\n};\n","import {\n HttpClient,\n type CacheStore,\n type DedupeStore,\n type RateLimitStore,\n} from '@http-client-toolkit/core';\nimport {\n comicVineResponseTransformer,\n comicVineResponseHandler,\n comicVineErrorHandler,\n} from './http-client/hooks.js';\nimport { UrlBuilder } from './http-client/url-builder.js';\nimport { loadOptions } from './options/index.js';\nimport type { ResourceInterface } from './resources/base-resource.js';\nimport { ResourceFactory } from './resources/index.js';\nimport * as resources from './resources/resource-list.js';\nimport { getResource } from './resources/resource-map.js';\nimport { ResourceType } from './resources/resource-type.js';\nimport { toSnakeCase } from './utils/index.js';\n\nfunction classNameToPropertyName(className: string): string {\n if (!className) {\n return '';\n }\n return className.charAt(0).toLowerCase() + className.slice(1);\n}\n\ntype ResourceInstance = ReturnType<ResourceFactory['create']> &\n ResourceInterface;\n\n// Create resource property type mapping dynamically\ntype ResourcePropertyMap = {\n [K in keyof typeof resources as Uncapitalize<K>]: InstanceType<\n (typeof resources)[K]\n >;\n};\n\nconst resourceMappings = Object.values(ResourceType)\n .filter((value): value is ResourceType => typeof value === 'number')\n .map((resourceType) => getResource(resourceType));\n\nconst canonicalRateLimitResourceNames = new Map<string, string>();\nfor (const { detailName, listName } of resourceMappings) {\n canonicalRateLimitResourceNames.set(detailName, listName);\n canonicalRateLimitResourceNames.set(listName, listName);\n canonicalRateLimitResourceNames.set(toSnakeCase(detailName), listName);\n canonicalRateLimitResourceNames.set(toSnakeCase(listName), listName);\n}\n\nfunction normalizeRateLimitResourceName(resourceName: string): string {\n return (\n canonicalRateLimitResourceNames.get(toSnakeCase(resourceName)) ??\n resourceName\n );\n}\n\nfunction inferComicVineRateLimitResource(url: string): string {\n try {\n const pathname = new URL(url).pathname;\n const segments = pathname.split('/').filter(Boolean);\n const apiIndex = segments.indexOf('api');\n const endpoint = apiIndex >= 0 ? segments[apiIndex + 1] : segments[0];\n\n if (!endpoint) {\n return 'unknown';\n }\n\n return normalizeRateLimitResourceName(endpoint);\n } catch {\n return 'unknown';\n }\n}\n\n/**\n * Consolidated options interface for ComicVine client\n */\nexport interface ComicVineOptions {\n /** Comic Vine API key */\n apiKey: string;\n\n /** Base URL for the Comic Vine API */\n baseUrl?: string;\n\n /** Store implementations for caching, deduplication, and rate limiting */\n stores?: {\n cache?: CacheStore;\n dedupe?: DedupeStore;\n rateLimit?: RateLimitStore;\n };\n\n /** HTTP client configuration */\n client?: {\n /** Default cache TTL in seconds */\n defaultCacheTTL?: number;\n /** Whether to throw errors on rate limit violations */\n throwOnRateLimit?: boolean;\n /** Maximum time to wait for rate limit in milliseconds */\n maxWaitTime?: number;\n };\n}\n\nexport class ComicVine implements ResourcePropertyMap {\n private resourceFactory: ResourceFactory;\n private resourceCache = new Map<string, ResourceInstance>();\n private resourceNames: Array<string>;\n private stores: {\n cache?: CacheStore;\n dedupe?: DedupeStore;\n rateLimit?: RateLimitStore;\n };\n\n // TypeScript property declarations for static typing (will be provided by Proxy)\n declare readonly character: ResourcePropertyMap['character'];\n declare readonly concept: ResourcePropertyMap['concept'];\n declare readonly episode: ResourcePropertyMap['episode'];\n declare readonly issue: ResourcePropertyMap['issue'];\n declare readonly location: ResourcePropertyMap['location'];\n declare readonly movie: ResourcePropertyMap['movie'];\n declare readonly origin: ResourcePropertyMap['origin'];\n declare readonly person: ResourcePropertyMap['person'];\n declare readonly power: ResourcePropertyMap['power'];\n declare readonly promo: ResourcePropertyMap['promo'];\n declare readonly publisher: ResourcePropertyMap['publisher'];\n declare readonly series: ResourcePropertyMap['series'];\n declare readonly storyArc: ResourcePropertyMap['storyArc'];\n declare readonly team: ResourcePropertyMap['team'];\n declare readonly thing: ResourcePropertyMap['thing'];\n declare readonly video: ResourcePropertyMap['video'];\n declare readonly videoCategory: ResourcePropertyMap['videoCategory'];\n declare readonly videoType: ResourcePropertyMap['videoType'];\n declare readonly volume: ResourcePropertyMap['volume'];\n\n /**\n * Create a new ComicVine client\n * @param options - Configuration options for the client\n */\n constructor(options: ComicVineOptions) {\n const { apiKey, baseUrl, stores = {}, client = {} } = options;\n\n const _options = loadOptions({ baseUrl });\n\n const httpClient = new HttpClient({\n name: 'comic-vine-sdk',\n cache: stores.cache\n ? {\n store: stores.cache,\n ttl: client.defaultCacheTTL,\n }\n : undefined,\n dedupe: stores.dedupe,\n rateLimit: stores.rateLimit\n ? {\n store: stores.rateLimit,\n throw: client.throwOnRateLimit,\n maxWaitTime: client.maxWaitTime,\n }\n : undefined,\n responseTransformer: comicVineResponseTransformer,\n responseHandler: comicVineResponseHandler,\n errorHandler: comicVineErrorHandler,\n resourceKeyResolver: inferComicVineRateLimitResource,\n });\n const urlBuilder = new UrlBuilder(apiKey, _options.baseUrl);\n\n this.resourceFactory = new ResourceFactory(httpClient, urlBuilder);\n this.stores = stores;\n\n // Discover available resources dynamically\n this.resourceNames = Object.keys(resources);\n\n // Return a proxy that provides lazy loading with full type safety\n return new Proxy(this, {\n get(target, prop: string | symbol) {\n if (typeof prop === 'string' && target.isResourceProperty(prop)) {\n return target.getResource(prop);\n }\n return Reflect.get(target, prop);\n },\n }) as ComicVine;\n }\n\n private isResourceProperty(prop: string): boolean {\n // Check if this property corresponds to a known resource\n const className = prop.charAt(0).toUpperCase() + prop.slice(1);\n return this.resourceNames.includes(className);\n }\n\n private getResource(propertyName: string): ResourceInstance {\n // Lazy loading: create resource only when first accessed\n if (!this.resourceCache.has(propertyName)) {\n const className =\n propertyName.charAt(0).toUpperCase() + propertyName.slice(1);\n try {\n const resource = this.resourceFactory.create(\n className as keyof typeof resources,\n );\n\n this.resourceCache.set(propertyName, resource);\n } catch (error) {\n throw new Error(`Failed to create resource '${className}': ${error}`);\n }\n }\n return this.resourceCache.get(propertyName)!;\n }\n\n getAvailableResources(): Array<string> {\n return this.resourceNames.map((name) => classNameToPropertyName(name));\n }\n\n hasResource(resourceName: string): boolean {\n return this.isResourceProperty(resourceName);\n }\n\n getResourceByName(resourceName: string): ResourceInstance | undefined {\n if (!this.isResourceProperty(resourceName)) {\n return undefined;\n }\n return this.getResource(resourceName);\n }\n\n isResourceLoaded(resourceName: string): boolean {\n return this.resourceCache.has(resourceName);\n }\n\n getCacheStats(): {\n total: number;\n loaded: number;\n loadedResources: Array<string>;\n } {\n const total = this.resourceNames.length;\n const loaded = this.resourceCache.size;\n const loadedResources = Array.from(this.resourceCache.keys());\n return { total, loaded, loadedResources };\n }\n\n async clearCache(): Promise<void> {\n if (this.stores.cache) {\n await this.stores.cache.clear();\n }\n }\n\n async getRateLimitStatus(resourceName: string) {\n if (this.stores.rateLimit) {\n return this.stores.rateLimit.getStatus(\n normalizeRateLimitResourceName(resourceName),\n );\n }\n return null;\n }\n\n async resetRateLimit(resourceName: string): Promise<void> {\n if (this.stores.rateLimit) {\n await this.stores.rateLimit.reset(\n normalizeRateLimitResourceName(resourceName),\n );\n }\n }\n}\n","import { ComicVine } from './comic-vine.js';\nimport { StatusCode } from './http-client/status-code.js';\n\nexport default ComicVine;\n\n// Named exports for better tree-shaking\nexport { ComicVine };\n\n// Export all error types\nexport * from './errors/index.js';\n\n// Export all types\nexport * from './types/index.js';\n\n// Export Comic Vine specific HTTP utilities\nexport { StatusCode };\n\n// Re-export client options\nexport type { ComicVineOptions } from './comic-vine.js';\n"]}
|
package/package.json
CHANGED
|
@@ -1,58 +1,53 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "comic-vine-sdk",
|
|
3
3
|
"description": "A JS/TS client for the Comic Vine API",
|
|
4
|
+
"version": "2.0.0",
|
|
4
5
|
"repository": {
|
|
5
6
|
"type": "git",
|
|
6
|
-
"url": "https://github.com/AllyMurray/comic-vine.git"
|
|
7
|
-
},
|
|
8
|
-
"scripts": {
|
|
9
|
-
"build": "npm run compile && npm run test && npm run package",
|
|
10
|
-
"compile": "tsc --project tsconfig.build.esm.json && tsx ./scripts/create-package-json.ts --moduleType=\"esm\" --packageJsonType=module && tsc --project tsconfig.build.cjs.json && tsx ./scripts/create-package-json.ts --moduleType=\"cjs\" --packageJsonType=commonjs",
|
|
11
|
-
"lint": "eslint --fix src && prettier --write .",
|
|
12
|
-
"install:ci": "pnpm i --frozen-lockfile",
|
|
13
|
-
"package": "mkdir -p dist/js && mv $(npm pack --silent) dist/js/",
|
|
14
|
-
"prepare": "husky",
|
|
15
|
-
"release": "rm -fr dist && standard-version && npm run build",
|
|
16
|
-
"test": "vitest --dir=src && npm run lint",
|
|
17
|
-
"test:run": "vitest run --dir=src && npm run lint",
|
|
18
|
-
"watch": "tsc --build -w"
|
|
7
|
+
"url": "git+https://github.com/AllyMurray/comic-vine.git"
|
|
19
8
|
},
|
|
9
|
+
"type": "module",
|
|
20
10
|
"author": {
|
|
21
11
|
"name": "Ally Murray",
|
|
22
12
|
"email": "allymurray88@gmail.com",
|
|
23
13
|
"organization": false
|
|
24
14
|
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@http-client-toolkit/core": "4.0.0",
|
|
17
|
+
"zod": "3.25.71"
|
|
18
|
+
},
|
|
25
19
|
"devDependencies": {
|
|
20
|
+
"@changesets/cli": "^2.29.8",
|
|
21
|
+
"@size-limit/file": "^11.0.0",
|
|
22
|
+
"@eslint/js": "^9.0.0",
|
|
23
|
+
"@http-client-toolkit/store-memory": "4.0.0",
|
|
26
24
|
"@types/node": "20",
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"eslint
|
|
32
|
-
"eslint-
|
|
33
|
-
"eslint-
|
|
34
|
-
"eslint-
|
|
35
|
-
"
|
|
25
|
+
"@types/pluralize": "^0.0.33",
|
|
26
|
+
"change-case": "^5.0.0",
|
|
27
|
+
"cheerio": "^1.0.0",
|
|
28
|
+
"esbuild": "^0.25.0",
|
|
29
|
+
"eslint": "^9.0.0",
|
|
30
|
+
"eslint-config-prettier": "^10.1.5",
|
|
31
|
+
"eslint-import-resolver-node": "^0.3.9",
|
|
32
|
+
"eslint-import-resolver-typescript": "^4.4.4",
|
|
33
|
+
"eslint-plugin-import": "^2.32.0",
|
|
34
|
+
"eslint-plugin-prettier": "^5.5.1",
|
|
35
|
+
"globals": "^16.3.0",
|
|
36
36
|
"husky": "9.1.7",
|
|
37
|
-
"lint-staged": "16.1.2",
|
|
38
37
|
"nock": "14.0.5",
|
|
38
|
+
"pluralize": "^8.0.0",
|
|
39
39
|
"prettier": "3.6.2",
|
|
40
40
|
"rimraf": "6.0.1",
|
|
41
|
-
"
|
|
42
|
-
"
|
|
41
|
+
"size-limit": "^11.0.0",
|
|
42
|
+
"tsd": "^0.31.0",
|
|
43
|
+
"tsup": "8.5.0",
|
|
44
|
+
"tsx": "^4.0.0",
|
|
43
45
|
"typescript": "5.8.3",
|
|
44
|
-
"typescript-eslint": "8",
|
|
45
|
-
"vitest": "3.2.4"
|
|
46
|
-
},
|
|
47
|
-
"dependencies": {
|
|
48
|
-
"axios": "1.10.0",
|
|
49
|
-
"zod": "3.25.71"
|
|
46
|
+
"typescript-eslint": "^8.0.0",
|
|
47
|
+
"vitest": "^3.2.4"
|
|
50
48
|
},
|
|
51
|
-
"pnpm": {},
|
|
52
49
|
"keywords": [
|
|
53
|
-
"comic",
|
|
54
50
|
"comic-metadata",
|
|
55
|
-
"comic-vine",
|
|
56
51
|
"comic-vine-api",
|
|
57
52
|
"comic-vine-client",
|
|
58
53
|
"comic-vine-javascript",
|
|
@@ -62,37 +57,96 @@
|
|
|
62
57
|
"comic-vine-sdk",
|
|
63
58
|
"comic-vine-ts",
|
|
64
59
|
"comic-vine-typescript",
|
|
60
|
+
"comic-vine",
|
|
61
|
+
"comic",
|
|
62
|
+
"comicmetadata",
|
|
65
63
|
"comics",
|
|
64
|
+
"comicvine-api",
|
|
65
|
+
"comicvine-client",
|
|
66
|
+
"comicvine-javascript",
|
|
67
|
+
"comicvine-js",
|
|
68
|
+
"comicvine-node",
|
|
69
|
+
"comicvine-nodejs",
|
|
70
|
+
"comicvine-sdk",
|
|
71
|
+
"comicvine-ts",
|
|
72
|
+
"comicvine-typescript",
|
|
73
|
+
"comicvine",
|
|
66
74
|
"metadata"
|
|
67
75
|
],
|
|
68
76
|
"engines": {
|
|
69
|
-
"node": "
|
|
77
|
+
"node": "^20.0.0 || ^22.0.0 || ^24.0.0"
|
|
70
78
|
},
|
|
71
|
-
"main": "lib/
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"version": "1.3.2",
|
|
75
|
-
"bugs": {
|
|
76
|
-
"url": "https://github.com/AllyMurray/comic-vine/issues"
|
|
77
|
-
},
|
|
78
|
-
"types": "lib/cjs/index.d.ts",
|
|
79
|
-
"type": "module",
|
|
80
|
-
"module": "lib/esm/index.js",
|
|
79
|
+
"main": "./lib/index.cjs",
|
|
80
|
+
"module": "./lib/index.js",
|
|
81
|
+
"types": "./lib/index.d.ts",
|
|
81
82
|
"exports": {
|
|
82
83
|
".": {
|
|
83
84
|
"import": {
|
|
84
|
-
"types": "./lib/
|
|
85
|
-
"default": "./lib/
|
|
85
|
+
"types": "./lib/index.d.ts",
|
|
86
|
+
"default": "./lib/index.js"
|
|
86
87
|
},
|
|
87
88
|
"require": {
|
|
88
|
-
"types": "./lib/
|
|
89
|
-
"default": "./lib/
|
|
89
|
+
"types": "./lib/index.d.ts",
|
|
90
|
+
"default": "./lib/index.cjs"
|
|
90
91
|
}
|
|
91
92
|
}
|
|
92
93
|
},
|
|
93
|
-
"
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
94
|
+
"files": [
|
|
95
|
+
"lib/**"
|
|
96
|
+
],
|
|
97
|
+
"sideEffects": false,
|
|
98
|
+
"license": "MIT",
|
|
99
|
+
"homepage": "https://github.com/AllyMurray/comic-vine#readme",
|
|
100
|
+
"bugs": {
|
|
101
|
+
"url": "https://github.com/AllyMurray/comic-vine/issues"
|
|
102
|
+
},
|
|
103
|
+
"publishConfig": {
|
|
104
|
+
"access": "public"
|
|
105
|
+
},
|
|
106
|
+
"tsd": {
|
|
107
|
+
"directory": "build-tests",
|
|
108
|
+
"compilerOptions": {
|
|
109
|
+
"moduleResolution": "node16",
|
|
110
|
+
"module": "node16"
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"size-limit": [
|
|
114
|
+
{
|
|
115
|
+
"path": "lib/index.js",
|
|
116
|
+
"limit": "30 KB"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"path": "lib/index.cjs",
|
|
120
|
+
"limit": "30 KB"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"path": "lib/index.js",
|
|
124
|
+
"gzip": true,
|
|
125
|
+
"limit": "10 KB"
|
|
126
|
+
}
|
|
127
|
+
],
|
|
128
|
+
"scripts": {
|
|
129
|
+
"build": "tsup && esbuild src/index-wrapper.cjs --bundle --platform=node --format=cjs --target=es2015 --outfile=lib/index.cjs --sourcemap --packages=external",
|
|
130
|
+
"test": "vitest run --dir=src",
|
|
131
|
+
"test:watch": "vitest --dir=src",
|
|
132
|
+
"test:build": "npm run build && npm run test:build:esm && npm run test:build:cjs && npm run test:build:exports && npm run test:build:functionality && npm run test:build:browser && npm run test:build:types && npm run test:build:size",
|
|
133
|
+
"test:build:esm": "node build-tests/esm-import.test.js",
|
|
134
|
+
"test:build:cjs": "node build-tests/cjs-require.test.cjs",
|
|
135
|
+
"test:build:exports": "node build-tests/exports.test.cjs",
|
|
136
|
+
"test:build:functionality": "node build-tests/functionality.test.cjs",
|
|
137
|
+
"test:build:browser": "node build-tests/browser-bundle.test.js",
|
|
138
|
+
"test:build:types": "tsd",
|
|
139
|
+
"test:build:size": "size-limit",
|
|
140
|
+
"lint": "eslint src",
|
|
141
|
+
"lint:fix": "eslint --fix src",
|
|
142
|
+
"format": "prettier --write \"**/*.{ts,tsx,md}\"",
|
|
143
|
+
"pre-commit": "prettier --write . && eslint src && vitest run --dir=src",
|
|
144
|
+
"dev": "tsup --watch",
|
|
145
|
+
"clean": "rimraf lib dist node_modules",
|
|
146
|
+
"sdk:generate": "tsx scripts/generate-sdk.ts",
|
|
147
|
+
"samples:fetch": "tsx scripts/fetch-samples.ts",
|
|
148
|
+
"docs:dev": "pnpm --dir docs-site dev",
|
|
149
|
+
"docs:build": "pnpm --dir docs-site build",
|
|
150
|
+
"docs:preview": "pnpm --dir docs-site preview"
|
|
97
151
|
}
|
|
98
|
-
}
|
|
152
|
+
}
|
package/.gitattributes
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
/.eslintrc.json linguist-generated
|
|
3
|
-
/.gitattributes linguist-generated
|
|
4
|
-
/.github/pull_request_template.md linguist-generated
|
|
5
|
-
/.github/workflows/build.yml linguist-generated
|
|
6
|
-
/.github/workflows/pull-request-lint.yml linguist-generated
|
|
7
|
-
/.github/workflows/release.yml linguist-generated
|
|
8
|
-
/.github/workflows/upgrade-main.yml linguist-generated
|
|
9
|
-
/.gitignore linguist-generated
|
|
10
|
-
/.mergify.yml linguist-generated
|
|
11
|
-
/.npmignore linguist-generated
|
|
12
|
-
/.npmrc linguist-generated
|
|
13
|
-
/.prettierignore linguist-generated
|
|
14
|
-
/.prettierrc.json linguist-generated
|
|
15
|
-
/.projen/tasks.json linguist-generated
|
|
16
|
-
/LICENSE linguist-generated
|
|
17
|
-
/package.json linguist-generated
|
|
18
|
-
/pnpm-lock.yaml linguist-generated
|
|
19
|
-
/scripts/create-package-json.ts linguist-generated
|
|
20
|
-
/tsconfig.build.cjs.json linguist-generated
|
|
21
|
-
/tsconfig.build.esm.json linguist-generated
|
|
22
|
-
/tsconfig.dev.json linguist-generated
|
|
23
|
-
/tsconfig.json linguist-generated
|
package/.husky/pre-commit
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
npx lint-staged
|
package/.prettierignore
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
scripts/create-package-json.ts
|
package/.prettierrc.json
DELETED
package/.projen/tasks.json
DELETED
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"tasks": {
|
|
3
|
-
"build": {
|
|
4
|
-
"name": "build",
|
|
5
|
-
"description": "Full release build",
|
|
6
|
-
"steps": [
|
|
7
|
-
{
|
|
8
|
-
"spawn": "default"
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
"spawn": "pre-compile"
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
"spawn": "compile"
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"spawn": "post-compile"
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
"spawn": "test"
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
"spawn": "package"
|
|
24
|
-
}
|
|
25
|
-
]
|
|
26
|
-
},
|
|
27
|
-
"bump": {
|
|
28
|
-
"name": "bump",
|
|
29
|
-
"description": "Bumps version based on latest git tag and generates a changelog entry",
|
|
30
|
-
"env": {
|
|
31
|
-
"OUTFILE": "package.json",
|
|
32
|
-
"CHANGELOG": "dist/changelog.md",
|
|
33
|
-
"BUMPFILE": "dist/version.txt",
|
|
34
|
-
"RELEASETAG": "dist/releasetag.txt",
|
|
35
|
-
"RELEASE_TAG_PREFIX": ""
|
|
36
|
-
},
|
|
37
|
-
"steps": [
|
|
38
|
-
{
|
|
39
|
-
"builtin": "release/bump-version"
|
|
40
|
-
}
|
|
41
|
-
],
|
|
42
|
-
"condition": "! git log --oneline -1 | grep -q \"chore(release):\""
|
|
43
|
-
},
|
|
44
|
-
"clobber": {
|
|
45
|
-
"name": "clobber",
|
|
46
|
-
"description": "hard resets to HEAD of origin and cleans the local repo",
|
|
47
|
-
"env": {
|
|
48
|
-
"BRANCH": "$(git branch --show-current)"
|
|
49
|
-
},
|
|
50
|
-
"steps": [
|
|
51
|
-
{
|
|
52
|
-
"exec": "git checkout -b scratch",
|
|
53
|
-
"name": "save current HEAD in \"scratch\" branch"
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
"exec": "git checkout $BRANCH"
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
"exec": "git fetch origin",
|
|
60
|
-
"name": "fetch latest changes from origin"
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
"exec": "git reset --hard origin/$BRANCH",
|
|
64
|
-
"name": "hard reset to origin commit"
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
"exec": "git clean -fdx",
|
|
68
|
-
"name": "clean all untracked files"
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
"say": "ready to rock! (unpushed commits are under the \"scratch\" branch)"
|
|
72
|
-
}
|
|
73
|
-
],
|
|
74
|
-
"condition": "git diff --exit-code > /dev/null"
|
|
75
|
-
},
|
|
76
|
-
"compile": {
|
|
77
|
-
"name": "compile",
|
|
78
|
-
"description": "Only compile",
|
|
79
|
-
"steps": [
|
|
80
|
-
{
|
|
81
|
-
"exec": "tsc --project tsconfig.build.esm.json"
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
"exec": "ts-node ./scripts/create-package-json.ts --moduleType=\"esm\" --packageJsonType=module"
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
"exec": "tsc --project tsconfig.build.cjs.json"
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
"exec": "ts-node ./scripts/create-package-json.ts --moduleType=\"cjs\" --packageJsonType=commonjs"
|
|
91
|
-
}
|
|
92
|
-
]
|
|
93
|
-
},
|
|
94
|
-
"default": {
|
|
95
|
-
"name": "default",
|
|
96
|
-
"description": "Synthesize project files",
|
|
97
|
-
"steps": [
|
|
98
|
-
{
|
|
99
|
-
"exec": "ts-node --project tsconfig.dev.json .projenrc.ts"
|
|
100
|
-
}
|
|
101
|
-
]
|
|
102
|
-
},
|
|
103
|
-
"eject": {
|
|
104
|
-
"name": "eject",
|
|
105
|
-
"description": "Remove projen from the project",
|
|
106
|
-
"env": {
|
|
107
|
-
"PROJEN_EJECTING": "true"
|
|
108
|
-
},
|
|
109
|
-
"steps": [
|
|
110
|
-
{
|
|
111
|
-
"spawn": "default"
|
|
112
|
-
}
|
|
113
|
-
]
|
|
114
|
-
},
|
|
115
|
-
"eslint": {
|
|
116
|
-
"name": "eslint",
|
|
117
|
-
"description": "Runs eslint against the codebase",
|
|
118
|
-
"steps": [
|
|
119
|
-
{
|
|
120
|
-
"exec": "eslint --ext .ts,.tsx --fix --no-error-on-unmatched-pattern src test build-tools projenrc .projenrc.ts"
|
|
121
|
-
}
|
|
122
|
-
]
|
|
123
|
-
},
|
|
124
|
-
"install": {
|
|
125
|
-
"name": "install",
|
|
126
|
-
"description": "Install project dependencies and update lockfile (non-frozen)",
|
|
127
|
-
"steps": [
|
|
128
|
-
{
|
|
129
|
-
"exec": "pnpm i --no-frozen-lockfile"
|
|
130
|
-
}
|
|
131
|
-
]
|
|
132
|
-
},
|
|
133
|
-
"install:ci": {
|
|
134
|
-
"name": "install:ci",
|
|
135
|
-
"description": "Install project dependencies using frozen lockfile",
|
|
136
|
-
"steps": [
|
|
137
|
-
{
|
|
138
|
-
"exec": "pnpm i --frozen-lockfile"
|
|
139
|
-
}
|
|
140
|
-
]
|
|
141
|
-
},
|
|
142
|
-
"package": {
|
|
143
|
-
"name": "package",
|
|
144
|
-
"description": "Creates the distribution package",
|
|
145
|
-
"steps": [
|
|
146
|
-
{
|
|
147
|
-
"exec": "mkdir -p dist/js"
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
"exec": "mv $(npm pack) dist/js/"
|
|
151
|
-
}
|
|
152
|
-
]
|
|
153
|
-
},
|
|
154
|
-
"post-compile": {
|
|
155
|
-
"name": "post-compile",
|
|
156
|
-
"description": "Runs after successful compilation"
|
|
157
|
-
},
|
|
158
|
-
"post-upgrade": {
|
|
159
|
-
"name": "post-upgrade",
|
|
160
|
-
"description": "Runs after upgrading dependencies"
|
|
161
|
-
},
|
|
162
|
-
"pre-compile": {
|
|
163
|
-
"name": "pre-compile",
|
|
164
|
-
"description": "Prepare the project for compilation"
|
|
165
|
-
},
|
|
166
|
-
"release": {
|
|
167
|
-
"name": "release",
|
|
168
|
-
"description": "Prepare a release from \"main\" branch",
|
|
169
|
-
"env": {
|
|
170
|
-
"RELEASE": "true",
|
|
171
|
-
"MIN_MAJOR": "1"
|
|
172
|
-
},
|
|
173
|
-
"steps": [
|
|
174
|
-
{
|
|
175
|
-
"exec": "rm -fr dist"
|
|
176
|
-
},
|
|
177
|
-
{
|
|
178
|
-
"spawn": "bump"
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
"spawn": "build"
|
|
182
|
-
},
|
|
183
|
-
{
|
|
184
|
-
"spawn": "unbump"
|
|
185
|
-
},
|
|
186
|
-
{
|
|
187
|
-
"exec": "git diff --ignore-space-at-eol --exit-code"
|
|
188
|
-
}
|
|
189
|
-
]
|
|
190
|
-
},
|
|
191
|
-
"test": {
|
|
192
|
-
"name": "test",
|
|
193
|
-
"description": "Run tests",
|
|
194
|
-
"steps": [
|
|
195
|
-
{
|
|
196
|
-
"exec": "vitest --dir=src",
|
|
197
|
-
"receiveArgs": true
|
|
198
|
-
},
|
|
199
|
-
{
|
|
200
|
-
"spawn": "eslint"
|
|
201
|
-
}
|
|
202
|
-
]
|
|
203
|
-
},
|
|
204
|
-
"unbump": {
|
|
205
|
-
"name": "unbump",
|
|
206
|
-
"description": "Restores version to 0.0.0",
|
|
207
|
-
"env": {
|
|
208
|
-
"OUTFILE": "package.json",
|
|
209
|
-
"CHANGELOG": "dist/changelog.md",
|
|
210
|
-
"BUMPFILE": "dist/version.txt",
|
|
211
|
-
"RELEASETAG": "dist/releasetag.txt",
|
|
212
|
-
"RELEASE_TAG_PREFIX": ""
|
|
213
|
-
},
|
|
214
|
-
"steps": [
|
|
215
|
-
{
|
|
216
|
-
"builtin": "release/reset-version"
|
|
217
|
-
}
|
|
218
|
-
]
|
|
219
|
-
},
|
|
220
|
-
"upgrade": {
|
|
221
|
-
"name": "upgrade",
|
|
222
|
-
"description": "upgrade dependencies",
|
|
223
|
-
"env": {
|
|
224
|
-
"CI": "0"
|
|
225
|
-
},
|
|
226
|
-
"steps": [
|
|
227
|
-
{
|
|
228
|
-
"exec": "pnpm update npm-check-updates"
|
|
229
|
-
},
|
|
230
|
-
{
|
|
231
|
-
"exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=@ally-murray/projen-modules,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,commander,commitizen,eslint-config-prettier,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint-plugin-prettier,eslint,husky,lint-staged,nock,npm-check-updates,prettier,projen,rimraf,standard-version,ts-node,typescript,vitest,axios,zod"
|
|
232
|
-
},
|
|
233
|
-
{
|
|
234
|
-
"exec": "pnpm i --no-frozen-lockfile"
|
|
235
|
-
},
|
|
236
|
-
{
|
|
237
|
-
"exec": "pnpm update @ally-murray/projen-modules @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser commander commitizen eslint-config-prettier eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint-plugin-prettier eslint husky lint-staged nock npm-check-updates prettier projen rimraf standard-version ts-node typescript vitest axios zod"
|
|
238
|
-
},
|
|
239
|
-
{
|
|
240
|
-
"exec": "npx projen"
|
|
241
|
-
},
|
|
242
|
-
{
|
|
243
|
-
"spawn": "post-upgrade"
|
|
244
|
-
}
|
|
245
|
-
]
|
|
246
|
-
},
|
|
247
|
-
"watch": {
|
|
248
|
-
"name": "watch",
|
|
249
|
-
"description": "Watch & compile in the background",
|
|
250
|
-
"steps": [
|
|
251
|
-
{
|
|
252
|
-
"exec": "tsc --build -w"
|
|
253
|
-
}
|
|
254
|
-
]
|
|
255
|
-
}
|
|
256
|
-
},
|
|
257
|
-
"env": {
|
|
258
|
-
"PATH": "$(pnpm -c exec \"node --print process.env.PATH\")"
|
|
259
|
-
},
|
|
260
|
-
"//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\"."
|
|
261
|
-
}
|