@graphprotocol/grc-20 0.6.4 → 0.8.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.
Files changed (92) hide show
  1. package/README.md +38 -6
  2. package/dist/src/core/blocks/data.d.ts +3 -3
  3. package/dist/src/core/blocks/data.d.ts.map +1 -1
  4. package/dist/src/core/blocks/data.js +1 -1
  5. package/dist/src/core/blocks/data.js.map +1 -1
  6. package/dist/src/core/blocks/text.d.ts +3 -3
  7. package/dist/src/core/blocks/text.d.ts.map +1 -1
  8. package/dist/src/core/blocks/text.js +1 -1
  9. package/dist/src/core/blocks/text.js.map +1 -1
  10. package/dist/src/core/ids/content.d.ts +91 -90
  11. package/dist/src/core/ids/content.d.ts.map +1 -1
  12. package/dist/src/core/ids/content.js +91 -90
  13. package/dist/src/core/ids/content.js.map +1 -1
  14. package/dist/src/core/ids/network.d.ts +4 -3
  15. package/dist/src/core/ids/network.d.ts.map +1 -1
  16. package/dist/src/core/ids/network.js +4 -3
  17. package/dist/src/core/ids/network.js.map +1 -1
  18. package/dist/src/core/ids/system.d.ts +176 -175
  19. package/dist/src/core/ids/system.d.ts.map +1 -1
  20. package/dist/src/core/ids/system.js +176 -175
  21. package/dist/src/core/ids/system.js.map +1 -1
  22. package/dist/src/core/image.d.ts +15 -7
  23. package/dist/src/core/image.d.ts.map +1 -1
  24. package/dist/src/core/image.js +47 -22
  25. package/dist/src/core/image.js.map +1 -1
  26. package/dist/src/core/image.test.js +44 -18
  27. package/dist/src/core/image.test.js.map +1 -1
  28. package/dist/src/core/relation.d.ts +6 -6
  29. package/dist/src/core/relation.d.ts.map +1 -1
  30. package/dist/src/core/relation.js +2 -2
  31. package/dist/src/core/relation.js.map +1 -1
  32. package/dist/src/core/triple.d.ts +6 -6
  33. package/dist/src/core/triple.d.ts.map +1 -1
  34. package/dist/src/core/triple.js +2 -2
  35. package/dist/src/core/triple.js.map +1 -1
  36. package/dist/src/encodings/get-calldata-for-space-governance-type.d.ts +2 -2
  37. package/dist/src/encodings/get-calldata-for-space-governance-type.d.ts.map +1 -1
  38. package/dist/src/encodings/get-calldata-for-space-governance-type.js.map +1 -1
  39. package/dist/src/graph/create-entity.d.ts +40 -6
  40. package/dist/src/graph/create-entity.d.ts.map +1 -1
  41. package/dist/src/graph/create-entity.js +39 -1
  42. package/dist/src/graph/create-entity.js.map +1 -1
  43. package/dist/src/graph/create-entity.test.js +23 -19
  44. package/dist/src/graph/create-entity.test.js.map +1 -1
  45. package/dist/src/graph/create-image.d.ts +36 -0
  46. package/dist/src/graph/create-image.d.ts.map +1 -0
  47. package/dist/src/graph/create-image.js +38 -0
  48. package/dist/src/graph/create-image.js.map +1 -0
  49. package/dist/src/graph/create-image.test.d.ts +2 -0
  50. package/dist/src/graph/create-image.test.d.ts.map +1 -0
  51. package/dist/src/graph/create-image.test.js +138 -0
  52. package/dist/src/graph/create-image.test.js.map +1 -0
  53. package/dist/src/graph/create-property.d.ts +18 -6
  54. package/dist/src/graph/create-property.d.ts.map +1 -1
  55. package/dist/src/graph/create-property.js +18 -1
  56. package/dist/src/graph/create-property.js.map +1 -1
  57. package/dist/src/graph/create-space.d.ts +1 -0
  58. package/dist/src/graph/create-space.d.ts.map +1 -1
  59. package/dist/src/graph/create-space.js +1 -0
  60. package/dist/src/graph/create-space.js.map +1 -1
  61. package/dist/src/graph/create-type.d.ts +20 -7
  62. package/dist/src/graph/create-type.d.ts.map +1 -1
  63. package/dist/src/graph/create-type.js +18 -1
  64. package/dist/src/graph/create-type.js.map +1 -1
  65. package/dist/src/graph/helpers/create-default-properties.d.ts.map +1 -1
  66. package/dist/src/graph/helpers/create-default-properties.js +2 -0
  67. package/dist/src/graph/helpers/create-default-properties.js.map +1 -1
  68. package/dist/src/graph/helpers/create-properties.d.ts +1 -2
  69. package/dist/src/graph/helpers/create-properties.d.ts.map +1 -1
  70. package/dist/src/graph/helpers/create-properties.js +6 -1
  71. package/dist/src/graph/helpers/create-properties.js.map +1 -1
  72. package/dist/src/graph/index.d.ts +1 -0
  73. package/dist/src/graph/index.d.ts.map +1 -1
  74. package/dist/src/graph/index.js +1 -0
  75. package/dist/src/graph/index.js.map +1 -1
  76. package/dist/src/id.d.ts +6 -7
  77. package/dist/src/id.d.ts.map +1 -1
  78. package/dist/src/id.js +24 -5
  79. package/dist/src/id.js.map +1 -1
  80. package/dist/src/id.test.js +13 -1
  81. package/dist/src/id.test.js.map +1 -1
  82. package/dist/src/ipfs.d.ts +18 -3
  83. package/dist/src/ipfs.d.ts.map +1 -1
  84. package/dist/src/ipfs.js +50 -1
  85. package/dist/src/ipfs.js.map +1 -1
  86. package/dist/src/proto/edit.d.ts +2 -2
  87. package/dist/src/proto/edit.d.ts.map +1 -1
  88. package/dist/src/proto/edit.js.map +1 -1
  89. package/dist/src/types.d.ts +8 -3
  90. package/dist/src/types.d.ts.map +1 -1
  91. package/dist/src/types.js.map +1 -1
  92. package/package.json +4 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/graph/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/graph/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
package/dist/src/id.d.ts CHANGED
@@ -1,9 +1,6 @@
1
- /**
2
- * This module provides utility functions for working knowledge graph
3
- * identifiers in TypeScript.
4
- *
5
- * @since 0.0.6
6
- */
1
+ import { Brand } from 'effect';
2
+ export type Id = string & Brand.Brand<'Id'>;
3
+ export declare const Id: Brand.Brand.Constructor<Id>;
7
4
  /**
8
5
  * Generates a globally unique knowledge graph identifier.
9
6
  *
@@ -17,5 +14,7 @@
17
14
  *
18
15
  * @returns base58 encoded v4 UUID
19
16
  */
20
- export declare function generate(): string;
17
+ export declare function generate(): Id;
18
+ export declare function isValid(id: string): boolean;
19
+ export declare function assertValid(id: string): void;
21
20
  //# sourceMappingURL=id.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/id.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,IAAI,MAAM,CAejC"}
1
+ {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAa/B,MAAM,MAAM,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAE5C,eAAO,MAAM,EAAE,6BAGd,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,IAAI,EAAE,CAe7B;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAW3C;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,QAIrC"}
package/dist/src/id.js CHANGED
@@ -1,11 +1,13 @@
1
+ import { Brand } from 'effect';
1
2
  /**
2
3
  * This module provides utility functions for working knowledge graph
3
4
  * identifiers in TypeScript.
4
5
  *
5
6
  * @since 0.0.6
6
7
  */
7
- import { v4 as uuidv4 } from 'uuid';
8
- import { encodeBase58 } from './core/base58.js';
8
+ import { validate as uuidValidate, v4 as uuidv4 } from 'uuid';
9
+ import { decodeBase58ToUUID, encodeBase58 } from './core/base58.js';
10
+ export const Id = Brand.refined(id => isValid(id), id => Brand.error(`Expected ${id} to be a valid Id`));
9
11
  /**
10
12
  * Generates a globally unique knowledge graph identifier.
11
13
  *
@@ -22,15 +24,32 @@ import { encodeBase58 } from './core/base58.js';
22
24
  export function generate() {
23
25
  const uuid = uuidv4();
24
26
  const stripped = uuid.replaceAll(/-/g, '');
25
- const id = encodeBase58(stripped);
27
+ const rawId = encodeBase58(stripped);
26
28
  // In extremely rare occasions the id generator may result in ids that are
27
29
  // 21 characters instead of 22. Theoretically the smallest length the id can
28
30
  // generate is 16 characters, but only in specifically engineered cases.
29
31
  //
30
32
  // If this occurs we can generate again until we get a valid id.
31
- if (id.length === 22) {
32
- return id;
33
+ if (rawId.length === 22) {
34
+ return Id(rawId);
33
35
  }
34
36
  return generate();
35
37
  }
38
+ export function isValid(id) {
39
+ if (id.length !== 22 && id.length !== 21) {
40
+ return false;
41
+ }
42
+ try {
43
+ const decoded = decodeBase58ToUUID(id);
44
+ return uuidValidate(decoded);
45
+ }
46
+ catch (error) {
47
+ return false;
48
+ }
49
+ }
50
+ export function assertValid(id) {
51
+ if (!isValid(id)) {
52
+ throw new Error(`Invalid id: ${id}`);
53
+ }
54
+ }
36
55
  //# sourceMappingURL=id.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/id.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,QAAQ;IACtB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;IACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAElC,0EAA0E;IAC1E,4EAA4E;IAC5E,wEAAwE;IACxE,EAAE;IACF,gEAAgE;IAChE,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,QAAQ,EAAE,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIpE,MAAM,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAC7B,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EACjB,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,mBAAmB,CAAC,CACrD,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,QAAQ;IACtB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;IACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAErC,0EAA0E;IAC1E,4EAA4E;IAC5E,wEAAwE;IACxE,EAAE;IACF,gEAAgE;IAChE,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,QAAQ,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,EAAU;IAChC,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACvC,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;AACH,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { expect, it } from 'vitest';
2
2
  import { BASE58_ALLOWED_CHARS } from './core/base58.js';
3
- import { generate } from './id.js';
3
+ import { generate, isValid } from './id.js';
4
4
  // @NOTE this would be a good candidate for DST-style tests
5
5
  it('should generate valid base58 encoded id with length of 22', () => {
6
6
  const id = generate();
@@ -8,4 +8,16 @@ it('should generate valid base58 encoded id with length of 22', () => {
8
8
  expect(id.length).toBe(22);
9
9
  expect(id.split('').every(char => BASE58_ALLOWED_CHARS.includes(char))).toBe(true);
10
10
  });
11
+ it('should validate base58 encoded id', () => {
12
+ expect(isValid(generate())).toBe(true);
13
+ expect(isValid(generate())).toBe(true);
14
+ expect(isValid(generate())).toBe(true);
15
+ expect(isValid('M5uDP7nCw3nvfQPUryn9gx')).toBe(true);
16
+ // length is 21
17
+ expect(isValid('D6Wy4bdtdoUrG3PDZceHr')).toBe(true);
18
+ });
19
+ it('should not validate invalid id', () => {
20
+ expect(isValid('invalid-id')).toBe(false);
21
+ expect(isValid('0123456789012345678901')).toBe(false);
22
+ });
11
23
  //# sourceMappingURL=id.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"id.test.js","sourceRoot":"","sources":["../../src/id.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,2DAA2D;AAC3D,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;IACnE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3B,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrF,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"id.test.js","sourceRoot":"","sources":["../../src/id.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAE5C,2DAA2D;AAC3D,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;IACnE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3B,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrF,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;IAC3C,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,eAAe;IACf,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;IACxC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * @since 0.1.1
6
6
  */
7
7
  import type { Op } from './types.js';
8
- type PublishEditProposalArgs = {
8
+ type PublishEditProposalParams = {
9
9
  name: string;
10
10
  ops: Op[];
11
11
  author: string;
@@ -24,9 +24,24 @@ type PublishEditProposalArgs = {
24
24
  * });
25
25
  * ```
26
26
  *
27
- * @param args arguments for publishing an edit to IPFS {@link PublishEditProposalArgs}
27
+ * @param args arguments for publishing an edit to IPFS {@link PublishEditProposalParams}
28
28
  * @returns IPFS CID representing the edit prefixed with `ipfs://`
29
29
  */
30
- export declare function publishEdit(args: PublishEditProposalArgs): Promise<string>;
30
+ export declare function publishEdit(args: PublishEditProposalParams): Promise<string>;
31
+ type PublishImageParams = {
32
+ blob: Blob;
33
+ } | {
34
+ url: string;
35
+ };
36
+ export declare function uploadImage(params: PublishImageParams): Promise<{
37
+ cid: `ipfs://${string}`;
38
+ dimensions: {
39
+ width: number;
40
+ height: number;
41
+ };
42
+ } | {
43
+ cid: `ipfs://${string}`;
44
+ dimensions?: undefined;
45
+ }>;
31
46
  export {};
32
47
  //# sourceMappingURL=ipfs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ipfs.d.ts","sourceRoot":"","sources":["../../src/ipfs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAMrC,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,EAAE,EAAE,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CA+BhF"}
1
+ {"version":3,"file":"ipfs.d.ts","sourceRoot":"","sources":["../../src/ipfs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAMrC,KAAK,yBAAyB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,EAAE,EAAE,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC,CA+BlF;AAED,KAAK,kBAAkB,GACnB;IACE,IAAI,EAAE,IAAI,CAAC;CACZ,GACD;IACE,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEN,wBAAsB,WAAW,CAAC,MAAM,EAAE,kBAAkB;SAuCnC,UAAU,MAAM,EAAE;;;;;;SASpB,UAAU,MAAM,EAAE;;GAKxC"}
package/dist/src/ipfs.js CHANGED
@@ -5,6 +5,7 @@
5
5
  * @since 0.1.1
6
6
  */
7
7
  import { Micro } from 'effect';
8
+ import { imageSize } from 'image-size';
8
9
  import { EditProposal } from '../proto.js';
9
10
  class IpfsUploadError extends Error {
10
11
  _tag = 'IpfsUploadError';
@@ -23,7 +24,7 @@ class IpfsUploadError extends Error {
23
24
  * });
24
25
  * ```
25
26
  *
26
- * @param args arguments for publishing an edit to IPFS {@link PublishEditProposalArgs}
27
+ * @param args arguments for publishing an edit to IPFS {@link PublishEditProposalParams}
27
28
  * @returns IPFS CID representing the edit prefixed with `ipfs://`
28
29
  */
29
30
  export async function publishEdit(args) {
@@ -51,4 +52,52 @@ export async function publishEdit(args) {
51
52
  });
52
53
  return await Micro.runPromise(upload);
53
54
  }
55
+ export async function uploadImage(params) {
56
+ const formData = new FormData();
57
+ let blob;
58
+ if ('blob' in params) {
59
+ blob = params.blob;
60
+ }
61
+ else {
62
+ // fetch the image and upload it to IPFS
63
+ const response = await fetch(params.url);
64
+ blob = await response.blob();
65
+ }
66
+ formData.append('file', blob);
67
+ const buffer = Buffer.from(await blob.arrayBuffer());
68
+ let dimensions;
69
+ try {
70
+ dimensions = imageSize(buffer);
71
+ }
72
+ catch (error) { }
73
+ const upload = Micro.gen(function* () {
74
+ const result = yield* Micro.tryPromise({
75
+ try: () => fetch('https://api-testnet.grc-20.thegraph.com/ipfs/upload-file', {
76
+ method: 'POST',
77
+ body: formData,
78
+ }),
79
+ catch: error => new IpfsUploadError(`Could not upload edit to IPFS: ${error}`),
80
+ });
81
+ const maybeCid = yield* Micro.tryPromise({
82
+ try: async () => {
83
+ const { cid } = await result.json();
84
+ return cid;
85
+ },
86
+ catch: error => new IpfsUploadError(`Could not parse response from IPFS: ${error}`),
87
+ });
88
+ if (dimensions) {
89
+ return {
90
+ cid: maybeCid,
91
+ dimensions: {
92
+ width: dimensions.width,
93
+ height: dimensions.height,
94
+ },
95
+ };
96
+ }
97
+ return {
98
+ cid: maybeCid,
99
+ };
100
+ });
101
+ return await Micro.runPromise(upload);
102
+ }
54
103
  //# sourceMappingURL=ipfs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ipfs.js","sourceRoot":"","sources":["../../src/ipfs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,eAAgB,SAAQ,KAAK;IACxB,IAAI,GAAG,iBAAiB,CAAC;CACnC;AAQD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAA6B;IAC7D,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAEnC,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAExD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE9B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;YACrC,GAAG,EAAE,GAAG,EAAE,CACR,KAAK,CAAC,0DAA0D,EAAE;gBAChE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,QAAQ;aACf,CAAC;YACJ,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,eAAe,CAAC,kCAAkC,KAAK,EAAE,CAAC;SAC/E,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;YACvC,GAAG,EAAE,KAAK,IAAI,EAAE;gBACd,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpC,OAAO,GAAG,CAAC;YACb,CAAC;YACD,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,eAAe,CAAC,uCAAuC,KAAK,EAAE,CAAC;SACpF,CAAC,CAAC;QAEH,OAAO,QAA8B,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"ipfs.js","sourceRoot":"","sources":["../../src/ipfs.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import type { Op } from '../types.js';
2
- type MakeEditProposalArgs = {
2
+ type MakeEditProposalParams = {
3
3
  name: string;
4
4
  ops: Op[];
5
5
  author: string;
6
6
  };
7
- export declare function encode({ name, ops, author }: MakeEditProposalArgs): Uint8Array;
7
+ export declare function encode({ name, ops, author }: MakeEditProposalParams): Uint8Array;
8
8
  export {};
9
9
  //# sourceMappingURL=edit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../src/proto/edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAGtC,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,EAAE,EAAE,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,oBAAoB,GAAG,UAAU,CAS9E"}
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../src/proto/edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAGtC,KAAK,sBAAsB,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,EAAE,EAAE,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,sBAAsB,GAAG,UAAU,CAShF"}
@@ -1 +1 @@
1
- {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/proto/edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAQhH,MAAM,UAAU,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAwB;IAChE,OAAO,IAAI,IAAI,CAAC;QACd,IAAI,EAAE,UAAU,CAAC,QAAQ;QACzB,OAAO,EAAE,OAAO;QAChB,EAAE,EAAE,QAAQ,EAAE;QACd,IAAI;QACJ,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC;QACrB,OAAO,EAAE,CAAC,MAAM,CAAC;KAClB,CAAC,CAAC,QAAQ,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,GAAS;IAC5B,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACjB,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,iBAAiB;gBACpB,OAAO,IAAI,QAAQ,CAAC;oBAClB,IAAI,EAAE,MAAM,CAAC,eAAe;oBAC5B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;iBACxC,CAAC,CAAC;YACL,KAAK,iBAAiB;gBACpB,OAAO,IAAI,QAAQ,CAAC;oBAClB,IAAI,EAAE,MAAM,CAAC,eAAe;oBAC5B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC;wBAC1B,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE;qBAClB,CAAC;iBACH,CAAC,CAAC;YACL,KAAK,kBAAkB;gBACrB,OAAO,IAAI,QAAQ,CAAC;oBAClB,IAAI,EAAE,MAAM,CAAC,gBAAgB;oBAC7B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;oBACjC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAChD,CAAC,CAAC;YACL,KAAK,eAAe;gBAClB,OAAO,IAAI,QAAQ,CAAC;oBAClB,IAAI,EAAE,MAAM,CAAC,aAAa;oBAC1B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;wBACtB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE;qBAChB,CAAC;iBACH,CAAC,CAAC;YACL,KAAK,YAAY;gBACf,OAAO,IAAI,QAAQ,CAAC;oBAClB,IAAI,EAAE,MAAM,CAAC,UAAU;oBACvB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,kBAAkB;iBACtD,CAAC,CAAC;YACL,KAAK,eAAe;gBAClB,OAAO,IAAI,QAAQ,CAAC;oBAClB,IAAI,EAAE,MAAM,CAAC,aAAa;oBAC1B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,kBAAkB;iBACtD,CAAC,CAAC;QACP,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/proto/edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAQhH,MAAM,UAAU,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAA0B;IAClE,OAAO,IAAI,IAAI,CAAC;QACd,IAAI,EAAE,UAAU,CAAC,QAAQ;QACzB,OAAO,EAAE,OAAO;QAChB,EAAE,EAAE,QAAQ,EAAE;QACd,IAAI;QACJ,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC;QACrB,OAAO,EAAE,CAAC,MAAM,CAAC;KAClB,CAAC,CAAC,QAAQ,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,GAAS;IAC5B,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACjB,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,iBAAiB;gBACpB,OAAO,IAAI,QAAQ,CAAC;oBAClB,IAAI,EAAE,MAAM,CAAC,eAAe;oBAC5B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;iBACxC,CAAC,CAAC;YACL,KAAK,iBAAiB;gBACpB,OAAO,IAAI,QAAQ,CAAC;oBAClB,IAAI,EAAE,MAAM,CAAC,eAAe;oBAC5B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC;wBAC1B,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE;qBAClB,CAAC;iBACH,CAAC,CAAC;YACL,KAAK,kBAAkB;gBACrB,OAAO,IAAI,QAAQ,CAAC;oBAClB,IAAI,EAAE,MAAM,CAAC,gBAAgB;oBAC7B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;oBACjC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAChD,CAAC,CAAC;YACL,KAAK,eAAe;gBAClB,OAAO,IAAI,QAAQ,CAAC;oBAClB,IAAI,EAAE,MAAM,CAAC,aAAa;oBAC1B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;wBACtB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE;qBAChB,CAAC;iBACH,CAAC,CAAC;YACL,KAAK,YAAY;gBACf,OAAO,IAAI,QAAQ,CAAC;oBAClB,IAAI,EAAE,MAAM,CAAC,UAAU;oBACvB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,kBAAkB;iBACtD,CAAC,CAAC;YACL,KAAK,eAAe;gBAClB,OAAO,IAAI,QAAQ,CAAC;oBAClB,IAAI,EAAE,MAAM,CAAC,aAAa;oBAC1B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,kBAAkB;iBACtD,CAAC,CAAC;QACP,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { Id } from './id.js';
1
2
  type OmitStrict<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
2
3
  export type ValueType = 'TEXT' | 'NUMBER' | 'CHECKBOX' | 'URL' | 'TIME' | 'POINT';
3
4
  export type Value = {
@@ -91,18 +92,22 @@ export type GraphUri = `graph://${string}`;
91
92
  export type DefaultProperties = {
92
93
  name?: string;
93
94
  description?: string;
94
- cover?: string;
95
+ cover?: Id;
95
96
  };
96
97
  type ValueParams = {
97
98
  value: string;
98
99
  type: ValueType;
99
100
  };
100
101
  type RelationParams = {
101
- to: string;
102
- relationId?: string;
102
+ to: Id;
103
+ relationId?: Id;
103
104
  position?: string;
104
105
  properties?: Record<string, ValueParams | RelationParams | Array<RelationParams>>;
105
106
  };
106
107
  export type PropertiesParam = Record<string, ValueParams | RelationParams | Array<RelationParams>>;
108
+ export type CreateResult = {
109
+ id: Id;
110
+ ops: Op[];
111
+ };
107
112
  export {};
108
113
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAuGA,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,2CAAQ,CAAA;IACR,iDAAW,CAAA;IACX,yCAAO,CAAA;IACP,uCAAM,CAAA;AACR,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAED,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,mDAAY,CAAA;IACZ,+DAAkB,CAAA;AACpB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAyGA,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,2CAAQ,CAAA;IACR,iDAAW,CAAA;IACX,yCAAO,CAAA;IACP,uCAAM,CAAA;AACR,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAED,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,mDAAY,CAAA;IACZ,+DAAkB,CAAA;AACpB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphprotocol/grc-20",
3
- "version": "0.6.4",
3
+ "version": "0.8.0",
4
4
  "license": "MIT",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -24,11 +24,11 @@
24
24
  "@changesets/cli": "^2.27.12",
25
25
  "@ethersproject/abi": "^5.6.4",
26
26
  "@ethersproject/providers": "^5.6.8",
27
- "@types/uuid": "^9.0.8",
28
27
  "effect": "^3.12.11",
29
28
  "ethers": "^5.7.2",
29
+ "image-size": "^2.0.0",
30
30
  "position-strings": "^2.0.1",
31
- "uuid": "^9.0.0",
31
+ "uuid": "^11.1.0",
32
32
  "viem": "^1.16.0",
33
33
  "vite": "^5.2.11",
34
34
  "vitest": "^1.6.0"
@@ -36,6 +36,7 @@
36
36
  "devDependencies": {
37
37
  "@bufbuild/buf": "^1.31.0",
38
38
  "@bufbuild/protoc-gen-es": "^1.9.0",
39
+ "@types/uuid": "^10.0.0",
39
40
  "typescript": "^5.4.5"
40
41
  },
41
42
  "scripts": {