Skip to content

Commit 2292a33

Browse files
New Cache Storage: Upstash Redis (#634)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent b031b3d commit 2292a33

File tree

8 files changed

+100
-115
lines changed

8 files changed

+100
-115
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'@graphql-hive/gateway': patch
3+
---
4+
5+
dependencies updates:
6+
7+
- Added dependency [`@graphql-mesh/cache-upstash-redis@^0.0.1` ↗︎](https://www.npmjs.com/package/@graphql-mesh/cache-upstash-redis/v/0.0.1) (to `dependencies`)

.changeset/fifty-olives-explain.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'@graphql-hive/gateway': minor
3+
---
4+
5+
Redis Sentinel Support
6+
7+
See the relevant doc section; [Providing Cache Storage](https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance#providing-cache-storage)

.changeset/two-tools-look.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'@graphql-hive/gateway': minor
3+
---
4+
5+
New Upstash Redis Cache support;
6+
7+
See the relevant doc section; [Providing Cache Storage](https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance#providing-cache-storage)

packages/gateway/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
"@graphql-mesh/cache-cfw-kv": "^0.104.12",
6262
"@graphql-mesh/cache-localforage": "^0.103.13",
6363
"@graphql-mesh/cache-redis": "^0.103.13",
64+
"@graphql-mesh/cache-upstash-redis": "^0.0.1",
6465
"@graphql-mesh/cross-helpers": "^0.4.9",
6566
"@graphql-mesh/hmac-upstream-signature": "workspace:^",
6667
"@graphql-mesh/plugin-deduplicate-request": "^0.103.0",

packages/gateway/src/cli.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import type {
1515
GatewayGraphOSReportingOptions,
1616
GatewayHiveReportingOptions,
1717
} from '@graphql-hive/gateway-runtime';
18+
import type UpstashRedisCache from '@graphql-mesh/cache-upstash-redis';
1819
import type { JWTAuthPluginOptions } from '@graphql-mesh/plugin-jwt-auth';
1920
import type { OpenTelemetryMeshPluginOptions } from '@graphql-mesh/plugin-opentelemetry';
2021
import type { PrometheusPluginOptions } from '@graphql-mesh/plugin-prometheus';
@@ -143,14 +144,18 @@ export interface GatewayCLIBuiltinPluginConfig {
143144
| KeyValueCacheFactoryFn
144145
| GatewayCLILocalforageCacheConfig
145146
| GatewayCLIRedisCacheConfig
146-
| GatewayCLICloudflareKVCacheConfig;
147+
| GatewayCLICloudflareKVCacheConfig
148+
| GatewayCLIUpstashRedisCacheConfig;
147149
}
148150

149151
export type GatewayCLILocalforageCacheConfig = YamlConfig.LocalforageConfig & {
150152
type: 'localforage';
151153
};
152154

153-
export type GatewayCLIRedisCacheConfig = YamlConfig.RedisConfig & {
155+
export type GatewayCLIRedisCacheConfig = (
156+
| YamlConfig.RedisConfigSingle
157+
| YamlConfig.RedisConfigSentinel
158+
) & {
154159
type: 'redis';
155160
};
156161

@@ -159,6 +164,10 @@ export type GatewayCLICloudflareKVCacheConfig =
159164
type: 'cfw-kv';
160165
};
161166

167+
export type GatewayCLIUpstashRedisCacheConfig = {
168+
type: 'upstash-redis';
169+
} & ConstructorParameters<typeof UpstashRedisCache>[0];
170+
162171
/**
163172
* Type helper for defining the config.
164173
*/

packages/gateway/src/config.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,15 @@ export async function getCacheInstanceFromConfig(
176176
...config.cache,
177177
});
178178
}
179+
case 'upstash-redis': {
180+
const { default: UpstashRedisCache } = await import(
181+
'@graphql-mesh/cache-upstash-redis'
182+
);
183+
return new UpstashRedisCache({
184+
...ctx,
185+
...config.cache,
186+
});
187+
}
179188
}
180189
if (config.cache.type !== 'localforage') {
181190
ctx.logger.warn(

packages/gateway/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export { default as useSnapshot } from '@graphql-mesh/plugin-snapshot';
1212
export { default as CloudflareKVCacheStorage } from '@graphql-mesh/cache-cfw-kv';
1313
export { default as RedisCacheStorage } from '@graphql-mesh/cache-redis';
1414
export { default as LocalForageCacheStorage } from '@graphql-mesh/cache-localforage';
15+
export { default as UpstashRedisCache } from '@graphql-mesh/cache-upstash-redis';
1516
export { default as usePrometheus } from '@graphql-mesh/plugin-prometheus';
1617
export {
1718
type WSTransportOptions,

yarn.lock

Lines changed: 57 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -594,7 +594,7 @@ __metadata:
594594
languageName: node
595595
linkType: hard
596596

597-
"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.2":
597+
"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.26.2":
598598
version: 7.26.2
599599
resolution: "@babel/code-frame@npm:7.26.2"
600600
dependencies:
@@ -605,21 +605,14 @@ __metadata:
605605
languageName: node
606606
linkType: hard
607607

608-
"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.26.5":
609-
version: 7.26.5
610-
resolution: "@babel/compat-data@npm:7.26.5"
611-
checksum: 10c0/9d2b41f0948c3dfc5de44d9f789d2208c2ea1fd7eb896dfbb297fe955e696728d6f363c600cd211e7f58ccbc2d834fe516bb1e4cf883bbabed8a32b038afc1a0
612-
languageName: node
613-
linkType: hard
614-
615-
"@babel/compat-data@npm:^7.26.8":
608+
"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.26.5, @babel/compat-data@npm:^7.26.8":
616609
version: 7.26.8
617610
resolution: "@babel/compat-data@npm:7.26.8"
618611
checksum: 10c0/66408a0388c3457fff1c2f6c3a061278dd7b3d2f0455ea29bb7b187fa52c60ae8b4054b3c0a184e21e45f0eaac63cf390737bc7504d1f4a088a6e7f652c068ca
619612
languageName: node
620613
linkType: hard
621614

622-
"@babel/core@npm:7.26.8":
615+
"@babel/core@npm:7.26.8, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.22.9, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.7":
623616
version: 7.26.8
624617
resolution: "@babel/core@npm:7.26.8"
625618
dependencies:
@@ -643,43 +636,7 @@ __metadata:
643636
languageName: node
644637
linkType: hard
645638

646-
"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.22.9, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.7":
647-
version: 7.26.7
648-
resolution: "@babel/core@npm:7.26.7"
649-
dependencies:
650-
"@ampproject/remapping": "npm:^2.2.0"
651-
"@babel/code-frame": "npm:^7.26.2"
652-
"@babel/generator": "npm:^7.26.5"
653-
"@babel/helper-compilation-targets": "npm:^7.26.5"
654-
"@babel/helper-module-transforms": "npm:^7.26.0"
655-
"@babel/helpers": "npm:^7.26.7"
656-
"@babel/parser": "npm:^7.26.7"
657-
"@babel/template": "npm:^7.25.9"
658-
"@babel/traverse": "npm:^7.26.7"
659-
"@babel/types": "npm:^7.26.7"
660-
convert-source-map: "npm:^2.0.0"
661-
debug: "npm:^4.1.0"
662-
gensync: "npm:^1.0.0-beta.2"
663-
json5: "npm:^2.2.3"
664-
semver: "npm:^6.3.1"
665-
checksum: 10c0/fbd2cd9fc23280bdcaca556e558f715c0a42d940b9913c52582e8e3d24e391d269cb8a9cd6589172593983569021c379e28bba6b19ea2ee08674f6068c210a9d
666-
languageName: node
667-
linkType: hard
668-
669-
"@babel/generator@npm:^7.26.2, @babel/generator@npm:^7.26.5, @babel/generator@npm:^7.7.2":
670-
version: 7.26.5
671-
resolution: "@babel/generator@npm:7.26.5"
672-
dependencies:
673-
"@babel/parser": "npm:^7.26.5"
674-
"@babel/types": "npm:^7.26.5"
675-
"@jridgewell/gen-mapping": "npm:^0.3.5"
676-
"@jridgewell/trace-mapping": "npm:^0.3.25"
677-
jsesc: "npm:^3.0.2"
678-
checksum: 10c0/3be79e0aa03f38858a465d12ee2e468320b9122dc44fc85984713e32f16f4d77ce34a16a1a9505972782590e0b8d847b6f373621f9c6fafa1906d90f31416cb0
679-
languageName: node
680-
linkType: hard
681-
682-
"@babel/generator@npm:^7.26.8":
639+
"@babel/generator@npm:^7.26.2, @babel/generator@npm:^7.26.8, @babel/generator@npm:^7.7.2":
683640
version: 7.26.8
684641
resolution: "@babel/generator@npm:7.26.8"
685642
dependencies:
@@ -886,7 +843,7 @@ __metadata:
886843
languageName: node
887844
linkType: hard
888845

889-
"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.8, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.2, @babel/parser@npm:^7.26.3, @babel/parser@npm:^7.26.5, @babel/parser@npm:^7.26.7, @babel/parser@npm:^7.26.8":
846+
"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.8, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.26.2, @babel/parser@npm:^7.26.3, @babel/parser@npm:^7.26.8":
890847
version: 7.26.8
891848
resolution: "@babel/parser@npm:7.26.8"
892849
dependencies:
@@ -1955,18 +1912,7 @@ __metadata:
19551912
languageName: node
19561913
linkType: hard
19571914

1958-
"@babel/template@npm:^7.25.9, @babel/template@npm:^7.3.3":
1959-
version: 7.25.9
1960-
resolution: "@babel/template@npm:7.25.9"
1961-
dependencies:
1962-
"@babel/code-frame": "npm:^7.25.9"
1963-
"@babel/parser": "npm:^7.25.9"
1964-
"@babel/types": "npm:^7.25.9"
1965-
checksum: 10c0/ebe677273f96a36c92cc15b7aa7b11cc8bc8a3bb7a01d55b2125baca8f19cae94ff3ce15f1b1880fb8437f3a690d9f89d4e91f16fc1dc4d3eb66226d128983ab
1966-
languageName: node
1967-
linkType: hard
1968-
1969-
"@babel/template@npm:^7.26.8":
1915+
"@babel/template@npm:^7.25.9, @babel/template@npm:^7.26.8, @babel/template@npm:^7.3.3":
19701916
version: 7.26.8
19711917
resolution: "@babel/template@npm:7.26.8"
19721918
dependencies:
@@ -1977,22 +1923,7 @@ __metadata:
19771923
languageName: node
19781924
linkType: hard
19791925

1980-
"@babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.5, @babel/traverse@npm:^7.26.7":
1981-
version: 7.26.7
1982-
resolution: "@babel/traverse@npm:7.26.7"
1983-
dependencies:
1984-
"@babel/code-frame": "npm:^7.26.2"
1985-
"@babel/generator": "npm:^7.26.5"
1986-
"@babel/parser": "npm:^7.26.7"
1987-
"@babel/template": "npm:^7.25.9"
1988-
"@babel/types": "npm:^7.26.7"
1989-
debug: "npm:^4.3.1"
1990-
globals: "npm:^11.1.0"
1991-
checksum: 10c0/b23a36ce40d2e4970741431c45d4f92e3f4c2895c0a421456516b2729bd9e17278846e01ee3d9039b0adf5fc5a071768061c17fcad040e74a5c3e39517449d5b
1992-
languageName: node
1993-
linkType: hard
1994-
1995-
"@babel/traverse@npm:^7.26.8":
1926+
"@babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.5, @babel/traverse@npm:^7.26.8":
19961927
version: 7.26.8
19971928
resolution: "@babel/traverse@npm:7.26.8"
19981929
dependencies:
@@ -2007,27 +1938,7 @@ __metadata:
20071938
languageName: node
20081939
linkType: hard
20091940

2010-
"@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.8, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.26.5, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4":
2011-
version: 7.26.5
2012-
resolution: "@babel/types@npm:7.26.5"
2013-
dependencies:
2014-
"@babel/helper-string-parser": "npm:^7.25.9"
2015-
"@babel/helper-validator-identifier": "npm:^7.25.9"
2016-
checksum: 10c0/0278053b69d7c2b8573aa36dc5242cad95f0d965e1c0ed21ccacac6330092e59ba5949753448f6d6eccf6ad59baaef270295cc05218352e060ea8c68388638c4
2017-
languageName: node
2018-
linkType: hard
2019-
2020-
"@babel/types@npm:^7.26.7":
2021-
version: 7.26.7
2022-
resolution: "@babel/types@npm:7.26.7"
2023-
dependencies:
2024-
"@babel/helper-string-parser": "npm:^7.25.9"
2025-
"@babel/helper-validator-identifier": "npm:^7.25.9"
2026-
checksum: 10c0/7810a2bca97b13c253f07a0863a628d33dbe76ee3c163367f24be93bfaf4c8c0a325f73208abaaa050a6b36059efc2950c2e4b71fb109c0f07fa62221d8473d4
2027-
languageName: node
2028-
linkType: hard
2029-
2030-
"@babel/types@npm:^7.26.8":
1941+
"@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.8, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.26.7, @babel/types@npm:^7.26.8, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4":
20311942
version: 7.26.8
20321943
resolution: "@babel/types@npm:7.26.8"
20331944
dependencies:
@@ -3374,6 +3285,7 @@ __metadata:
33743285
"@graphql-mesh/cache-cfw-kv": "npm:^0.104.12"
33753286
"@graphql-mesh/cache-localforage": "npm:^0.103.13"
33763287
"@graphql-mesh/cache-redis": "npm:^0.103.13"
3288+
"@graphql-mesh/cache-upstash-redis": "npm:^0.0.1"
33773289
"@graphql-mesh/cross-helpers": "npm:^0.4.9"
33783290
"@graphql-mesh/hmac-upstream-signature": "workspace:^"
33793291
"@graphql-mesh/plugin-deduplicate-request": "npm:^0.103.0"
@@ -3532,6 +3444,22 @@ __metadata:
35323444
languageName: node
35333445
linkType: hard
35343446

3447+
"@graphql-mesh/cache-upstash-redis@npm:^0.0.1":
3448+
version: 0.0.1
3449+
resolution: "@graphql-mesh/cache-upstash-redis@npm:0.0.1"
3450+
dependencies:
3451+
"@graphql-mesh/cross-helpers": "npm:^0.4.9"
3452+
"@graphql-mesh/types": "npm:^0.103.14"
3453+
"@graphql-mesh/utils": "npm:^0.103.14"
3454+
"@upstash/redis": "npm:^1.34.3"
3455+
"@whatwg-node/disposablestack": "npm:^0.0.5"
3456+
tslib: "npm:^2.4.0"
3457+
peerDependencies:
3458+
graphql: "*"
3459+
checksum: 10c0/66b769c0c119bc3e1c519383610f89b6a2d1789f5a9d4ee3acf4ab46fd6a2e616c2a12c4ef1828f6344415aa18b0d1a863d481620c2971e6eebd8a67d8a836bb
3460+
languageName: node
3461+
linkType: hard
3462+
35353463
"@graphql-mesh/compose-cli@npm:^1.2.13, @graphql-mesh/compose-cli@npm:^1.2.7, @graphql-mesh/compose-cli@npm:^1.3.3, @graphql-mesh/compose-cli@npm:^1.3.5":
35363464
version: 1.3.7
35373465
resolution: "@graphql-mesh/compose-cli@npm:1.3.7"
@@ -3874,19 +3802,19 @@ __metadata:
38743802
languageName: node
38753803
linkType: hard
38763804

3877-
"@graphql-mesh/store@npm:^0.103.13":
3878-
version: 0.103.13
3879-
resolution: "@graphql-mesh/store@npm:0.103.13"
3805+
"@graphql-mesh/store@npm:^0.103.14":
3806+
version: 0.103.14
3807+
resolution: "@graphql-mesh/store@npm:0.103.14"
38803808
dependencies:
38813809
"@graphql-inspector/core": "npm:6.2.1"
38823810
"@graphql-mesh/cross-helpers": "npm:^0.4.10"
3883-
"@graphql-mesh/types": "npm:^0.103.13"
3884-
"@graphql-mesh/utils": "npm:^0.103.13"
3811+
"@graphql-mesh/types": "npm:^0.103.14"
3812+
"@graphql-mesh/utils": "npm:^0.103.14"
38853813
"@graphql-tools/utils": "npm:^10.8.0"
38863814
tslib: "npm:^2.4.0"
38873815
peerDependencies:
38883816
graphql: "*"
3889-
checksum: 10c0/1e74d3a960cc8c7d1c473272f07fb99288e877b83bf83ce9da98bf3935c23d718c26fcfb65f805e06a99b56a7bc895350db5547c862729556662c26aa824223c
3817+
checksum: 10c0/44ce3f4c0797bb1af1628134b31acd27415479b78d6494f4b7d0123a9396d47cdc79552d12937bdfd4ad823921e560718a5618bc563472bcffe9d3295253a899
38903818
languageName: node
38913819
linkType: hard
38923820

@@ -4028,29 +3956,29 @@ __metadata:
40283956
languageName: unknown
40293957
linkType: soft
40303958

4031-
"@graphql-mesh/types@npm:^0.103.13, @graphql-mesh/types@npm:^0.103.6":
4032-
version: 0.103.13
4033-
resolution: "@graphql-mesh/types@npm:0.103.13"
3959+
"@graphql-mesh/types@npm:^0.103.13, @graphql-mesh/types@npm:^0.103.14, @graphql-mesh/types@npm:^0.103.6":
3960+
version: 0.103.14
3961+
resolution: "@graphql-mesh/types@npm:0.103.14"
40343962
dependencies:
4035-
"@graphql-mesh/store": "npm:^0.103.13"
3963+
"@graphql-mesh/store": "npm:^0.103.14"
40363964
"@graphql-tools/batch-delegate": "npm:^9.0.10"
40373965
"@graphql-tools/delegate": "npm:^10.0.28"
40383966
"@graphql-tools/utils": "npm:^10.8.0"
40393967
"@graphql-typed-document-node/core": "npm:^3.2.0"
40403968
tslib: "npm:^2.4.0"
40413969
peerDependencies:
40423970
graphql: "*"
4043-
checksum: 10c0/3b286cd4fc219c178cd3deb0e1d71f66f8879719f4659118f068542965c997c78a727af2935953bcedc0c2934e9f5b7596336f5886939d0961a3f1f3935e1854
3971+
checksum: 10c0/6056b5d291e2b985ebac8faaf71125d1eb24f0443355ec836bb04a26c3cb1ed1f6e5a8c3b0caad2cfcba5f7750076140bbe35b01fed76c7a094b86f12c25bb4b
40443972
languageName: node
40453973
linkType: hard
40463974

4047-
"@graphql-mesh/utils@npm:^0.103.13, @graphql-mesh/utils@npm:^0.103.6":
4048-
version: 0.103.13
4049-
resolution: "@graphql-mesh/utils@npm:0.103.13"
3975+
"@graphql-mesh/utils@npm:^0.103.13, @graphql-mesh/utils@npm:^0.103.14, @graphql-mesh/utils@npm:^0.103.6":
3976+
version: 0.103.14
3977+
resolution: "@graphql-mesh/utils@npm:0.103.14"
40503978
dependencies:
40513979
"@graphql-mesh/cross-helpers": "npm:^0.4.10"
40523980
"@graphql-mesh/string-interpolation": "npm:^0.5.8"
4053-
"@graphql-mesh/types": "npm:^0.103.13"
3981+
"@graphql-mesh/types": "npm:^0.103.14"
40543982
"@graphql-tools/batch-delegate": "npm:^9.0.16"
40553983
"@graphql-tools/delegate": "npm:^10.0.28"
40563984
"@graphql-tools/utils": "npm:^10.8.0"
@@ -4065,7 +3993,7 @@ __metadata:
40653993
tslib: "npm:^2.4.0"
40663994
peerDependencies:
40673995
graphql: "*"
4068-
checksum: 10c0/be0831add1bf674dc6365b4275965f4f19c08276a235fc74613ac53c13dfe337009828885b821294c002a9f1e560d9c13d76fc2914392a3d75c1197404452830
3996+
checksum: 10c0/6ab645c34c2e4b7cfff4678adb43dfb460454a9b0ec3cd34cf79a506e3a2f6c2e9055b33c5d8063b2bef0b4e054d99ef202141bc58a2db8384a21d8e1d526dc1
40693997
languageName: node
40703998
linkType: hard
40713999

@@ -6993,6 +6921,15 @@ __metadata:
69936921
languageName: node
69946922
linkType: hard
69956923

6924+
"@upstash/redis@npm:^1.34.3":
6925+
version: 1.34.4
6926+
resolution: "@upstash/redis@npm:1.34.4"
6927+
dependencies:
6928+
crypto-js: "npm:^4.2.0"
6929+
checksum: 10c0/5253ad1646959ed284d0bf1f6fb9299111202f58eedce6cedb06b11022f484cba981df1a7e86359dfc3e047c20e5fc0a74ff17853260eee1cc738684dbcecd8a
6930+
languageName: node
6931+
linkType: hard
6932+
69966933
"@vitest/expect@npm:3.0.5":
69976934
version: 3.0.5
69986935
resolution: "@vitest/expect@npm:3.0.5"
@@ -9200,6 +9137,13 @@ __metadata:
92009137
languageName: node
92019138
linkType: hard
92029139

9140+
"crypto-js@npm:^4.2.0":
9141+
version: 4.2.0
9142+
resolution: "crypto-js@npm:4.2.0"
9143+
checksum: 10c0/8fbdf9d56f47aea0794ab87b0eb9833baf80b01a7c5c1b0edc7faf25f662fb69ab18dc2199e2afcac54670ff0cd9607a9045a3f7a80336cccd18d77a55b9fdf0
9144+
languageName: node
9145+
linkType: hard
9146+
92039147
"data-uri-to-buffer@npm:^2.0.0":
92049148
version: 2.0.2
92059149
resolution: "data-uri-to-buffer@npm:2.0.2"

0 commit comments

Comments
 (0)