@codex-data/sdk 0.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/README.md +104 -0
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +32 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/resources/graphql.d.ts +7438 -0
  7. package/dist/resources/graphql.d.ts.map +1 -0
  8. package/dist/resources/graphql.js +1314 -0
  9. package/dist/resources/graphql.js.map +1 -0
  10. package/dist/resources/graphql.schema.json +50830 -0
  11. package/dist/resources/graphql.ts +7976 -0
  12. package/dist/resources/schema.graphql +10393 -0
  13. package/dist/sdk/Mutation.d.ts +14 -0
  14. package/dist/sdk/Mutation.d.ts.map +1 -0
  15. package/dist/sdk/Mutation.js +22 -0
  16. package/dist/sdk/Mutation.js.map +1 -0
  17. package/dist/sdk/Query.d.ts +22 -0
  18. package/dist/sdk/Query.d.ts.map +1 -0
  19. package/dist/sdk/Query.js +35 -0
  20. package/dist/sdk/Query.js.map +1 -0
  21. package/dist/sdk/Query.test.d.ts +2 -0
  22. package/dist/sdk/Query.test.d.ts.map +1 -0
  23. package/dist/sdk/Query.test.js +50 -0
  24. package/dist/sdk/Query.test.js.map +1 -0
  25. package/dist/sdk/Subscribe.d.ts +17 -0
  26. package/dist/sdk/Subscribe.d.ts.map +1 -0
  27. package/dist/sdk/Subscribe.js +28 -0
  28. package/dist/sdk/Subscribe.js.map +1 -0
  29. package/dist/sdk/generated/fragment-masking.d.ts +16 -0
  30. package/dist/sdk/generated/fragment-masking.d.ts.map +1 -0
  31. package/dist/sdk/generated/fragment-masking.js +23 -0
  32. package/dist/sdk/generated/fragment-masking.js.map +1 -0
  33. package/dist/sdk/generated/gql.d.ts +243 -0
  34. package/dist/sdk/generated/gql.d.ts.map +1 -0
  35. package/dist/sdk/generated/gql.js +70 -0
  36. package/dist/sdk/generated/gql.js.map +1 -0
  37. package/dist/sdk/generated/graphql.d.ts +11765 -0
  38. package/dist/sdk/generated/graphql.d.ts.map +1 -0
  39. package/dist/sdk/generated/graphql.js +1338 -0
  40. package/dist/sdk/generated/graphql.js.map +1 -0
  41. package/dist/sdk/generated/index.d.ts +3 -0
  42. package/dist/sdk/generated/index.d.ts.map +1 -0
  43. package/dist/sdk/generated/index.js +19 -0
  44. package/dist/sdk/generated/index.js.map +1 -0
  45. package/dist/sdk/index.d.ts +23 -0
  46. package/dist/sdk/index.d.ts.map +1 -0
  47. package/dist/sdk/index.js +76 -0
  48. package/dist/sdk/index.js.map +1 -0
  49. package/dist/sdk/index.test.d.ts +2 -0
  50. package/dist/sdk/index.test.d.ts.map +1 -0
  51. package/dist/sdk/index.test.js +78 -0
  52. package/dist/sdk/index.test.js.map +1 -0
  53. package/dist/sdk/invariant.d.ts +2 -0
  54. package/dist/sdk/invariant.d.ts.map +1 -0
  55. package/dist/sdk/invariant.js +31 -0
  56. package/dist/sdk/invariant.js.map +1 -0
  57. package/package.json +60 -0
  58. package/src/index.ts +2 -0
  59. package/src/resources/.keep +0 -0
  60. package/src/resources/graphql.schema.json +50830 -0
  61. package/src/resources/graphql.ts +7976 -0
  62. package/src/resources/schema.graphql +10393 -0
  63. package/src/sdk/Mutation.ts +15 -0
  64. package/src/sdk/Query.test.ts +40 -0
  65. package/src/sdk/Query.ts +65 -0
  66. package/src/sdk/Subscribe.ts +61 -0
  67. package/src/sdk/generated/fragment-masking.ts +66 -0
  68. package/src/sdk/generated/gql.ts +157 -0
  69. package/src/sdk/generated/graphql.ts +8215 -0
  70. package/src/sdk/generated/index.ts +2 -0
  71. package/src/sdk/graphql/CreateWebhooks.graphql +1145 -0
  72. package/src/sdk/graphql/DeleteWebhooks.graphql +5 -0
  73. package/src/sdk/graphql/FilterExchanges.graphql +23 -0
  74. package/src/sdk/graphql/FilterPairs.graphql +124 -0
  75. package/src/sdk/graphql/FilterTokens.graphql +129 -0
  76. package/src/sdk/graphql/GetBars.graphql +32 -0
  77. package/src/sdk/graphql/GetDetailedPairStats.graphql +941 -0
  78. package/src/sdk/graphql/GetNetworkStatus.graphql +7 -0
  79. package/src/sdk/graphql/GetNetworks.graphql +6 -0
  80. package/src/sdk/graphql/GetPairEvents.graphql +28 -0
  81. package/src/sdk/graphql/GetPrice.graphql +9 -0
  82. package/src/sdk/graphql/GetSparklines.graphql +10 -0
  83. package/src/sdk/graphql/GetSymbol.graphql +11 -0
  84. package/src/sdk/graphql/GetTokens.graphql +14 -0
  85. package/src/sdk/graphql/GetWebhooks.graphql +168 -0
  86. package/src/sdk/graphql/ListPairsForToken.graphql +105 -0
  87. package/src/sdk/graphql/ListTopTokens.graphql +48 -0
  88. package/src/sdk/graphql/OnBarsUpdated.graphql +183 -0
  89. package/src/sdk/graphql/OnDetailedStatsUpdated.graphql +324 -0
  90. package/src/sdk/graphql/OnEventsCreated.graphql +62 -0
  91. package/src/sdk/graphql/OnNftAssetsCreated.graphql +29 -0
  92. package/src/sdk/graphql/OnNftEventsCreated.graphql +83 -0
  93. package/src/sdk/graphql/OnPairMetadataUpdated.graphql +55 -0
  94. package/src/sdk/graphql/OnPriceUpdated.graphql +9 -0
  95. package/src/sdk/index.test.ts +78 -0
  96. package/src/sdk/index.ts +100 -0
  97. package/src/sdk/invariant.ts +34 -0
@@ -0,0 +1,15 @@
1
+ import { DeleteWebhooksInput } from "../resources/graphql";
2
+ import {
3
+ CreateWebhooksDocument,
4
+ CreateWebhooksInput,
5
+ DeleteWebhooksDocument,
6
+ } from "./generated/graphql";
7
+ import { Codex } from "./index";
8
+
9
+ export class Mutation {
10
+ constructor(private sdk: Codex) {}
11
+ createWebhooks = async (vars: { input: CreateWebhooksInput }) =>
12
+ this.sdk.mutation(CreateWebhooksDocument, vars);
13
+ deleteWebhooks = async (vars: { input: DeleteWebhooksInput }) =>
14
+ this.sdk.mutation(DeleteWebhooksDocument, vars);
15
+ }
@@ -0,0 +1,40 @@
1
+ import { Event } from "../resources/graphql";
2
+ import { Codex } from "./index";
3
+
4
+ describe("Query", () => {
5
+ const sdk = new Codex("dummy-key");
6
+
7
+ it("should set up queries", async () => {
8
+ jest.spyOn(sdk, "query").mockResolvedValue({
9
+ pairEvents: {
10
+ items: [
11
+ {
12
+ address: "0x1234",
13
+ },
14
+ ] as Event[],
15
+ },
16
+ });
17
+ const res = await sdk.queries.pairEvents({
18
+ query: { address: "0x1234", networkId: 1 },
19
+ });
20
+ expect(res.pairEvents?.items?.[0]?.address).toEqual("0x1234");
21
+ expect(sdk.queries).toBeDefined();
22
+ });
23
+
24
+ it("should have a pairEvents query", async () => {
25
+ jest.spyOn(sdk, "query").mockResolvedValue({
26
+ pairEvents: {
27
+ items: [
28
+ {
29
+ address: "0x1234",
30
+ },
31
+ ] as Event[],
32
+ },
33
+ });
34
+ const res = await sdk.queries.pairEvents({
35
+ query: { address: "0x1234", networkId: 1 },
36
+ });
37
+ expect(res.pairEvents?.items?.[0]?.address).toEqual("0x1234");
38
+ expect(sdk.queries).toBeDefined();
39
+ });
40
+ });
@@ -0,0 +1,65 @@
1
+ import {
2
+ FilterExchangesDocument,
3
+ FilterExchangesQueryVariables,
4
+ FilterPairsDocument,
5
+ FilterPairsQueryVariables,
6
+ FilterTokensDocument,
7
+ FilterTokensQueryVariables,
8
+ GetBarsDocument,
9
+ GetDetailedPairStatsDocument,
10
+ GetNetworksDocument,
11
+ GetNetworkStatusDocument,
12
+ GetSparklinesDocument,
13
+ GetSparklinesQueryVariables,
14
+ GetSymbolDocument,
15
+ GetSymbolQueryVariables,
16
+ GetTokenPriceDocument,
17
+ GetTokensDocument,
18
+ GetWebhooksDocument,
19
+ ListPairsForTokenDocument,
20
+ ListPairsForTokenQueryVariables,
21
+ ListTopTokensDocument,
22
+ PairEventsDocument,
23
+ PairEventsQueryVariables,
24
+ QueryGetBarsArgs,
25
+ QueryGetDetailedPairStatsArgs,
26
+ QueryGetNetworkStatusArgs,
27
+ QueryGetTokenPricesArgs,
28
+ QueryGetWebhooksArgs,
29
+ QueryListTopTokensArgs,
30
+ QueryTokenArgs,
31
+ } from "./generated/graphql";
32
+ import { Codex } from "./index";
33
+
34
+ export class Query {
35
+ constructor(private sdk: Codex) {}
36
+ pairEvents = async (vars: PairEventsQueryVariables) =>
37
+ this.sdk.query(PairEventsDocument, vars);
38
+ sparklines = async (vars: GetSparklinesQueryVariables) =>
39
+ this.sdk.query(GetSparklinesDocument, vars);
40
+ token = async (vars: QueryTokenArgs) =>
41
+ this.sdk.query(GetTokensDocument, vars);
42
+ price = async (vars: QueryGetTokenPricesArgs) =>
43
+ this.sdk.query(GetTokenPriceDocument, vars);
44
+ detailedPairStats = async (vars: QueryGetDetailedPairStatsArgs) =>
45
+ this.sdk.query(GetDetailedPairStatsDocument, vars);
46
+ bars = async (vars: QueryGetBarsArgs) =>
47
+ this.sdk.query(GetBarsDocument, vars);
48
+ topTokens = async (vars: QueryListTopTokensArgs) =>
49
+ this.sdk.query(ListTopTokensDocument, vars);
50
+ filterTokens = async (vars: FilterTokensQueryVariables) =>
51
+ this.sdk.query(FilterTokensDocument, vars);
52
+ filterPairs = async (vars: FilterPairsQueryVariables) =>
53
+ this.sdk.query(FilterPairsDocument, vars);
54
+ listPairsForToken = async (vars: ListPairsForTokenQueryVariables) =>
55
+ this.sdk.query(ListPairsForTokenDocument, vars);
56
+ filterExchanges = async (vars: FilterExchangesQueryVariables) =>
57
+ this.sdk.query(FilterExchangesDocument, vars);
58
+ symbol = async (vars: GetSymbolQueryVariables) =>
59
+ this.sdk.query(GetSymbolDocument, vars);
60
+ networks = async () => this.sdk.query(GetNetworksDocument);
61
+ networkStatus = async (vars: QueryGetNetworkStatusArgs) =>
62
+ this.sdk.query(GetNetworkStatusDocument, vars);
63
+ getWebhooks = async (vars: QueryGetWebhooksArgs) =>
64
+ this.sdk.query(GetWebhooksDocument, vars);
65
+ }
@@ -0,0 +1,61 @@
1
+ import { ExecutionResult, print } from "graphql";
2
+ import { Sink } from "graphql-ws";
3
+
4
+ import {
5
+ SubscriptionOnDetailedStatsUpdatedArgs,
6
+ SubscriptionOnNftAssetsCreatedArgs,
7
+ SubscriptionOnNftEventsCreatedArgs,
8
+ } from "../resources/graphql";
9
+ import {
10
+ OnBarsUpdatedDocument,
11
+ OnBarsUpdatedSubscription,
12
+ OnDetailedStatsUpdatedDocument,
13
+ OnDetailedStatsUpdatedSubscription,
14
+ OnEventsCreatedDocument,
15
+ OnEventsCreatedSubscription,
16
+ OnNftAssetsCreatedDocument,
17
+ OnNftAssetsCreatedSubscription,
18
+ OnNftEventsCreatedDocument,
19
+ OnNftEventsCreatedSubscription,
20
+ OnPairMetadataUpdatedDocument,
21
+ OnPairMetadataUpdatedSubscription,
22
+ OnPriceUpdatedDocument,
23
+ OnPriceUpdatedSubscription,
24
+ SubscriptionOnBarsUpdatedArgs,
25
+ SubscriptionOnEventsCreatedArgs,
26
+ SubscriptionOnPairMetadataUpdatedArgs,
27
+ SubscriptionOnPriceUpdatedArgs,
28
+ } from "./generated/graphql";
29
+ import { Codex } from "./index";
30
+
31
+ export class Subscribe {
32
+ constructor(private sdk: Codex) {}
33
+ tokenPrices = async (
34
+ vars: SubscriptionOnPriceUpdatedArgs,
35
+ sink: Sink<ExecutionResult<OnPriceUpdatedSubscription>>,
36
+ ) => this.sdk.subscribe(print(OnPriceUpdatedDocument), vars, sink);
37
+ tokenEvents = async (
38
+ vars: SubscriptionOnEventsCreatedArgs,
39
+ sink: Sink<ExecutionResult<OnEventsCreatedSubscription>>,
40
+ ) => this.sdk.subscribe(print(OnEventsCreatedDocument), vars, sink);
41
+ bars = async (
42
+ vars: SubscriptionOnBarsUpdatedArgs,
43
+ sink: Sink<ExecutionResult<OnBarsUpdatedSubscription>>,
44
+ ) => this.sdk.subscribe(print(OnBarsUpdatedDocument), vars, sink);
45
+ detailedPairStats = async (
46
+ vars: SubscriptionOnDetailedStatsUpdatedArgs,
47
+ sink: Sink<ExecutionResult<OnDetailedStatsUpdatedSubscription>>,
48
+ ) => this.sdk.subscribe(print(OnDetailedStatsUpdatedDocument), vars, sink);
49
+ pairMetadata = async (
50
+ vars: SubscriptionOnPairMetadataUpdatedArgs,
51
+ sink: Sink<ExecutionResult<OnPairMetadataUpdatedSubscription>>,
52
+ ) => this.sdk.subscribe(print(OnPairMetadataUpdatedDocument), vars, sink);
53
+ nftAssets = async (
54
+ vars: SubscriptionOnNftAssetsCreatedArgs,
55
+ sink: Sink<ExecutionResult<OnNftAssetsCreatedSubscription>>,
56
+ ) => this.sdk.subscribe(print(OnNftAssetsCreatedDocument), vars, sink);
57
+ nftEvents = async (
58
+ vars: SubscriptionOnNftEventsCreatedArgs,
59
+ sink: Sink<ExecutionResult<OnNftEventsCreatedSubscription>>,
60
+ ) => this.sdk.subscribe(print(OnNftEventsCreatedDocument), vars, sink);
61
+ }
@@ -0,0 +1,66 @@
1
+ import { ResultOf, DocumentTypeDecoration, TypedDocumentNode } from '@graphql-typed-document-node/core';
2
+ import { FragmentDefinitionNode } from 'graphql';
3
+ import { Incremental } from './graphql';
4
+
5
+
6
+ export type FragmentType<TDocumentType extends DocumentTypeDecoration<any, any>> = TDocumentType extends DocumentTypeDecoration<
7
+ infer TType,
8
+ any
9
+ >
10
+ ? [TType] extends [{ ' $fragmentName'?: infer TKey }]
11
+ ? TKey extends string
12
+ ? { ' $fragmentRefs'?: { [key in TKey]: TType } }
13
+ : never
14
+ : never
15
+ : never;
16
+
17
+ // return non-nullable if `fragmentType` is non-nullable
18
+ export function useFragment<TType>(
19
+ _documentNode: DocumentTypeDecoration<TType, any>,
20
+ fragmentType: FragmentType<DocumentTypeDecoration<TType, any>>
21
+ ): TType;
22
+ // return nullable if `fragmentType` is nullable
23
+ export function useFragment<TType>(
24
+ _documentNode: DocumentTypeDecoration<TType, any>,
25
+ fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | null | undefined
26
+ ): TType | null | undefined;
27
+ // return array of non-nullable if `fragmentType` is array of non-nullable
28
+ export function useFragment<TType>(
29
+ _documentNode: DocumentTypeDecoration<TType, any>,
30
+ fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>
31
+ ): ReadonlyArray<TType>;
32
+ // return array of nullable if `fragmentType` is array of nullable
33
+ export function useFragment<TType>(
34
+ _documentNode: DocumentTypeDecoration<TType, any>,
35
+ fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>> | null | undefined
36
+ ): ReadonlyArray<TType> | null | undefined;
37
+ export function useFragment<TType>(
38
+ _documentNode: DocumentTypeDecoration<TType, any>,
39
+ fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>> | null | undefined
40
+ ): TType | ReadonlyArray<TType> | null | undefined {
41
+ return fragmentType as any;
42
+ }
43
+
44
+
45
+ export function makeFragmentData<
46
+ F extends DocumentTypeDecoration<any, any>,
47
+ FT extends ResultOf<F>
48
+ >(data: FT, _fragment: F): FragmentType<F> {
49
+ return data as FragmentType<F>;
50
+ }
51
+ export function isFragmentReady<TQuery, TFrag>(
52
+ queryNode: DocumentTypeDecoration<TQuery, any>,
53
+ fragmentNode: TypedDocumentNode<TFrag>,
54
+ data: FragmentType<TypedDocumentNode<Incremental<TFrag>, any>> | null | undefined
55
+ ): data is FragmentType<typeof fragmentNode> {
56
+ const deferredFields = (queryNode as { __meta__?: { deferredFields: Record<string, (keyof TFrag)[]> } }).__meta__
57
+ ?.deferredFields;
58
+
59
+ if (!deferredFields) return true;
60
+
61
+ const fragDef = fragmentNode.definitions[0] as FragmentDefinitionNode | undefined;
62
+ const fragName = fragDef?.name?.value;
63
+
64
+ const fields = (fragName && deferredFields[fragName]) || [];
65
+ return fields.length > 0 && fields.every(field => data && field in data);
66
+ }