@seedprotocol/eas 0.6.10 → 0.7.1

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/dist/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","names":[],"sources":["../src/node/EasClient.ts","../src/node/QueryClient.ts","../src/node/index.ts"],"sourcesContent":["import { BaseEasClient } from '../EasClient/BaseEasClient.js'\nimport type { IEasClient } from '../EasClient/IEasClient.js'\nimport { getEasEndpoint } from '../easEndpoint.js'\nimport { GraphQLClient } from 'graphql-request'\n\nexport class NodeEasClient implements IEasClient {\n private easClient: { url: string; client: GraphQLClient } | undefined\n\n /** Reads the endpoint per call so SDK / publish chain config applied after import takes effect. */\n getEasClient(): GraphQLClient {\n const url = getEasEndpoint()\n if (this.easClient?.url !== url) {\n this.easClient = { url, client: new GraphQLClient(url) }\n }\n return this.easClient.client\n }\n}\n\n/** @deprecated Prefer NodeEasClient */\nexport const EasClient = NodeEasClient\n\nBaseEasClient.configure(new NodeEasClient())\n\nconst _check: IEasClient = new NodeEasClient()\nvoid _check\n","import { BaseQueryClient } from '../QueryClient/BaseQueryClient.js'\nimport type { FetchQueryOptions, IQueryClient } from '../QueryClient/IQueryClient.js'\nimport type { IQueryClientFactory } from '../QueryClient/IQueryClientFactory.js'\n\nexport class NodeQueryClient implements IQueryClientFactory {\n getQueryClient(): IQueryClient {\n return {\n fetchQuery: async <T>({ queryFn }: FetchQueryOptions<T>): Promise<T> => queryFn(),\n getQueryData: () => undefined,\n removeQueries: async () => {},\n }\n }\n}\n\n/** @deprecated Prefer NodeQueryClient */\nexport const QueryClient = NodeQueryClient\n\nBaseQueryClient.configure(new NodeQueryClient())\n\nconst _check: IQueryClientFactory = new NodeQueryClient()\nvoid _check\n","import { NodeEasClient } from './EasClient.js'\nimport { NodeQueryClient } from './QueryClient.js'\nimport { BaseEasClient } from '../EasClient/BaseEasClient.js'\nimport { BaseQueryClient } from '../QueryClient/BaseQueryClient.js'\n\nexport { EasClient, NodeEasClient } from './EasClient.js'\nexport { QueryClient, NodeQueryClient } from './QueryClient.js'\n\n/** Register Node.js EAS + query client implementations. */\nexport function registerNodeEasPlatform(): void {\n BaseEasClient.configure(new NodeEasClient())\n BaseQueryClient.configure(new NodeQueryClient())\n}\n"],"mappings":";;;AAKA,IAAa,IAAb,MAAiD;CAC/C;CAGA,eAA8B;EAC5B,IAAM,IAAM,EAAe;EAI3B,OAHI,KAAK,WAAW,QAAQ,MAC1B,KAAK,YAAY;GAAE;GAAK,QAAQ,IAAI,EAAc,CAAG;EAAE,IAElD,KAAK,UAAU;CACxB;AACF,GAGa,IAAY;AAEzB,EAAc,UAAU,IAAI,EAAc,CAAC,GAEhB,IAAI,EAAc;;;ACnB7C,IAAa,IAAb,MAA4D;CAC1D,iBAA+B;EAC7B,OAAO;GACL,YAAY,OAAU,EAAE,iBAAgD,EAAQ;GAChF,oBAAoB,KAAA;GACpB,eAAe,YAAY,CAAC;EAC9B;CACF;AACF,GAGa,IAAc;AAE3B,EAAgB,UAAU,IAAI,EAAgB,CAAC,GAEX,IAAI,EAAgB;;;ACVxD,SAAgB,IAAgC;CAE9C,AADA,EAAc,UAAU,IAAI,EAAc,CAAC,GAC3C,EAAgB,UAAU,IAAI,EAAgB,CAAC;AACjD"}
1
+ {"version":3,"file":"node.js","names":["BaseEasClient","BaseQueryClient","getEasEndpoint","NodeEasClient","url","GraphQLClient","EasClient","NodeQueryClient","queryFn","QueryClient","registerNodeEasPlatform"],"sources":["../src/node/EasClient.ts","../src/node/QueryClient.ts","../src/node/index.ts"],"sourcesContent":["import { BaseEasClient } from '../EasClient/BaseEasClient.js'\nimport type { IEasClient } from '../EasClient/IEasClient.js'\nimport { getEasEndpoint } from '../easEndpoint.js'\nimport { GraphQLClient } from 'graphql-request'\n\nexport class NodeEasClient implements IEasClient {\n private easClient: { url: string; client: GraphQLClient } | undefined\n\n /** Reads the endpoint per call so SDK / publish chain config applied after import takes effect. */\n getEasClient(): GraphQLClient {\n const url = getEasEndpoint()\n if (this.easClient?.url !== url) {\n this.easClient = { url, client: new GraphQLClient(url) }\n }\n return this.easClient.client\n }\n}\n\n/** @deprecated Prefer NodeEasClient */\nexport const EasClient = NodeEasClient\n\nBaseEasClient.configure(new NodeEasClient())\n\nconst _check: IEasClient = new NodeEasClient()\nvoid _check\n","import { BaseQueryClient } from '../QueryClient/BaseQueryClient.js'\nimport type { FetchQueryOptions, IQueryClient } from '../QueryClient/IQueryClient.js'\nimport type { IQueryClientFactory } from '../QueryClient/IQueryClientFactory.js'\n\nexport class NodeQueryClient implements IQueryClientFactory {\n getQueryClient(): IQueryClient {\n return {\n fetchQuery: async <T>({ queryFn }: FetchQueryOptions<T>): Promise<T> => queryFn(),\n getQueryData: () => undefined,\n removeQueries: async () => {},\n }\n }\n}\n\n/** @deprecated Prefer NodeQueryClient */\nexport const QueryClient = NodeQueryClient\n\nBaseQueryClient.configure(new NodeQueryClient())\n\nconst _check: IQueryClientFactory = new NodeQueryClient()\nvoid _check\n","import { NodeEasClient } from './EasClient.js'\nimport { NodeQueryClient } from './QueryClient.js'\nimport { BaseEasClient } from '../EasClient/BaseEasClient.js'\nimport { BaseQueryClient } from '../QueryClient/BaseQueryClient.js'\n\nexport { EasClient, NodeEasClient } from './EasClient.js'\nexport { QueryClient, NodeQueryClient } from './QueryClient.js'\n\n/** Register Node.js EAS + query client implementations. */\nexport function registerNodeEasPlatform(): void {\n BaseEasClient.configure(new NodeEasClient())\n BaseQueryClient.configure(new NodeQueryClient())\n}\n"],"mappings":";;;AAKA,IAAaG,IAAb,MAAiD;CAC/C;CAGA,eAA8B;EAC5B,IAAMC,IAAMF,EAAe;EAI3B,OAHI,KAAK,WAAW,QAAQE,MAC1B,KAAK,YAAY;GAAE;GAAK,QAAQ,IAAIC,EAAcD,CAAG;EAAE,IAElD,KAAK,UAAU;CACxB;AACF,GAGaE,IAAYH;AAEzBH,EAAc,UAAU,IAAIG,EAAc,CAAC,GAEhB,IAAIA,EAAc;;;ACnB7C,IAAaI,IAAb,MAA4D;CAC1D,iBAA+B;EAC7B,OAAO;GACL,YAAY,OAAU,EAAE,iBAAgDC,EAAQ;GAChF,oBAAoB,KAAA;GACpB,eAAe,YAAY,CAAC;EAC9B;CACF;AACF,GAGaC,IAAcF;AAE3BN,EAAgB,UAAU,IAAIM,EAAgB,CAAC,GAEX,IAAIA,EAAgB;;;ACVxD,SAAgBG,IAAgC;CAE9C,AADAV,EAAc,UAAU,IAAIG,EAAc,CAAC,GAC3CF,EAAgB,UAAU,IAAIM,EAAgB,CAAC;AACjD"}
package/dist/queries.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { TypedDocumentNode } from '@graphql-typed-document-node/core';
1
+ import type { TypedDocumentNode } from '@graphql-typed-document-node/core';
2
2
  import type { Attestation, Schema as EASSchema } from './graphql/gql/graphql.js';
3
3
  export declare const GET_SCHEMAS: TypedDocumentNode<import("./graphql/gql/graphql.js").GetSchemasQuery, import("./graphql/gql/graphql.js").Exact<{
4
4
  where: import("./index.js").SchemaWhereInput;
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../src/queries.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEhF,eAAO,MAAM,WAAW;;GAUtB,CAAA;AAEF,eAAO,MAAM,kBAAkB,EAUzB,iBAAiB,CAAC;IAAE,OAAO,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC,CAAA;AAEjD,eAAO,MAAM,SAAS,EAmBhB,iBAAiB,CAAC;IAAE,SAAS,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAAA;AAErD,eAAO,MAAM,YAAY,EAMnB,iBAAiB,CAAC;IAAE,WAAW,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAAA;AAEvD,eAAO,MAAM,0BAA0B,EAUjC,iBAAiB,CAAC;IAAE,oBAAoB,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAAA;AAEhE,eAAO,MAAM,YAAY,EASnB,iBAAiB,CAAC;IAAE,YAAY,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAAA;AAExD,eAAO,MAAM,cAAc,EASrB,iBAAiB,CAAC;IAAE,cAAc,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAAA;AAE1D,eAAO,MAAM,mCAAmC,EAS1C,iBAAiB,CAAC;IAAE,aAAa,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAAA;AAEzD,eAAO,MAAM,kBAAkB,EASzB,iBAAiB,CAAC;IAAE,aAAa,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAAA;AAEzD,eAAO,MAAM,eAAe,EAoBtB,iBAAiB,CAAC;IAAE,UAAU,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAAA;AAEtD,eAAO,MAAM,kBAAkB,EASzB,iBAAiB,CAAC;IAAE,aAAa,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../src/queries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEhF,eAAO,MAAM,WAAW;;GAUtB,CAAA;AAEF,eAAO,MAAM,kBAAkB,EAUzB,iBAAiB,CAAC;IAAE,OAAO,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC,CAAA;AAEjD,eAAO,MAAM,SAAS,EAmBhB,iBAAiB,CAAC;IAAE,SAAS,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAAA;AAErD,eAAO,MAAM,YAAY,EAMnB,iBAAiB,CAAC;IAAE,WAAW,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAAA;AAEvD,eAAO,MAAM,0BAA0B,EAUjC,iBAAiB,CAAC;IAAE,oBAAoB,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAAA;AAEhE,eAAO,MAAM,YAAY,EASnB,iBAAiB,CAAC;IAAE,YAAY,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAAA;AAExD,eAAO,MAAM,cAAc,EASrB,iBAAiB,CAAC;IAAE,cAAc,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAAA;AAE1D,eAAO,MAAM,mCAAmC,EAS1C,iBAAiB,CAAC;IAAE,aAAa,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAAA;AAEzD,eAAO,MAAM,kBAAkB,EASzB,iBAAiB,CAAC;IAAE,aAAa,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAAA;AAEzD,eAAO,MAAM,eAAe,EAoBtB,iBAAiB,CAAC;IAAE,UAAU,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAAA;AAEtD,eAAO,MAAM,kBAAkB,EASzB,iBAAiB,CAAC;IAAE,aAAa,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAAA"}
@@ -1,3 +1,20 @@
1
+ /**
2
+ * How long a schema lookup that found nothing is remembered. Item creation looks up the same
3
+ * property and model schemas for every item, and most local models have none on EAS, so misses are
4
+ * cached too. After this, the next lookup asks EAS again, so a schema registered by another client
5
+ * is eventually found. Registering a schema in this client clears cached misses immediately.
6
+ */
7
+ export declare const SCHEMA_LOOKUP_MISS_TTL_MS: number;
8
+ /**
9
+ * Runs an EAS schema lookup unless the same lookup found nothing within the last
10
+ * SCHEMA_LOOKUP_MISS_TTL_MS. Concurrent lookups for one key share a request. Only misses are cached
11
+ * here (callers keep their found UIDs); a lookup that throws is not cached.
12
+ */
13
+ export declare const cachedSchemaLookup: (key: string, lookup: () => Promise<string | undefined>) => Promise<string | undefined>;
14
+ /** Forgets every cached miss, so the next lookups ask EAS again. Called when a schema is registered. */
15
+ export declare const clearSchemaLookupMisses: () => void;
16
+ /** Clears every schema UID cache in this module (found UIDs and misses). For tests. */
17
+ export declare const resetSchemaUidCaches: () => void;
1
18
  export declare const setSchemaUidForSchemaDefinition: ({ text, schemaUid, }: {
2
19
  text: string;
3
20
  schemaUid: string;
@@ -10,4 +27,10 @@ export declare const getSchemaUidForModelFromCache: (modelName: string) => strin
10
27
  export declare const getEasSchemaUidForSchemaDefinition: ({ schemaText, }: {
11
28
  schemaText: string;
12
29
  }) => Promise<string | undefined>;
30
+ /**
31
+ * UID of the EAS schema whose definition is exactly `schemaDefinition` (e.g. `string title`), or
32
+ * undefined when EAS has none or the EAS clients aren't configured. Found UIDs and misses are
33
+ * cached (see SCHEMA_LOOKUP_MISS_TTL_MS). Throws when the request fails.
34
+ */
35
+ export declare const getEasSchemaUidForExactDefinition: (schemaDefinition: string) => Promise<string | undefined>;
13
36
  //# sourceMappingURL=schemaUidCache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemaUidCache.d.ts","sourceRoot":"","sources":["../../src/stores/schemaUidCache.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,+BAA+B,GAAI,sBAG7C;IACD,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB,KAAG,IAEH,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,2BAGlC;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB,KAAG,IAEH,CAAA;AAED,eAAO,MAAM,6BAA6B,GAAI,WAAW,MAAM,KAAG,MAAM,GAAG,SAC3B,CAAA;AAEhD,eAAO,MAAM,kCAAkC,GAAU,iBAEtD;IACD,UAAU,EAAE,MAAM,CAAA;CACnB,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAU7B,CAAA"}
1
+ {"version":3,"file":"schemaUidCache.d.ts","sourceRoot":"","sources":["../../src/stores/schemaUidCache.ts"],"names":[],"mappings":"AAUA;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,QAAgB,CAAA;AAqBtD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,KAAK,MAAM,EACX,QAAQ,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,KACxC,OAAO,CAAC,MAAM,GAAG,SAAS,CAwB5B,CAAA;AAED,wGAAwG;AACxG,eAAO,MAAM,uBAAuB,QAAO,IAI1C,CAAA;AAED,uFAAuF;AACvF,eAAO,MAAM,oBAAoB,QAAO,IAKvC,CAAA;AAED,eAAO,MAAM,+BAA+B,GAAI,sBAG7C;IACD,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB,KAAG,IAIH,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,2BAGlC;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB,KAAG,IAGH,CAAA;AAED,eAAO,MAAM,6BAA6B,GAAI,WAAW,MAAM,KAAG,MAAM,GAAG,SAC3B,CAAA;AAEhD,eAAO,MAAM,kCAAkC,GAAU,iBAEtD;IACD,UAAU,EAAE,MAAM,CAAA;CACnB,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAmB7B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,GAC5C,kBAAkB,MAAM,KACvB,OAAO,CAAC,MAAM,GAAG,SAAS,CAyB5B,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seedprotocol/eas",
3
- "version": "0.6.10",
3
+ "version": "0.7.1",
4
4
  "description": "EAS GraphQL read client and helpers for Seed Protocol",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -47,7 +47,7 @@
47
47
  "rimraf": "^6.0.1",
48
48
  "typescript": "~5.9.3",
49
49
  "vite": "^8.0.0",
50
- "vitest": "^3.0.0"
50
+ "vitest": "^4.1.11"
51
51
  },
52
52
  "author": "Keith Axline <keith@journodao.xyz>",
53
53
  "license": "MIT",