diff --git a/.changeset/bitter-dancers-lead.md b/.changeset/bitter-dancers-lead.md
new file mode 100644
index 00000000..215e7785
--- /dev/null
+++ b/.changeset/bitter-dancers-lead.md
@@ -0,0 +1,7 @@
+---
+"@graphprotocol/hypergraph-react": minor
+"@graphprotocol/hypergraph": minor
+---
+
+rename Type.Text to Type.String
+
\ No newline at end of file
diff --git a/apps/create-hypergraph/template-nextjs/app/schema.ts b/apps/create-hypergraph/template-nextjs/app/schema.ts
index ed50614a..d3805876 100644
--- a/apps/create-hypergraph/template-nextjs/app/schema.ts
+++ b/apps/create-hypergraph/template-nextjs/app/schema.ts
@@ -1,10 +1,10 @@
import { Entity, Type } from '@graphprotocol/hypergraph';
export class Address extends Entity.Class
('Address')({
- name: Type.Text,
- description: Type.Text,
+ name: Type.String,
+ description: Type.String,
}) {}
export class Project extends Entity.Class('Project')({
- name: Type.Text,
+ name: Type.String,
}) {}
diff --git a/apps/create-hypergraph/template-vite-react/src/schema.ts b/apps/create-hypergraph/template-vite-react/src/schema.ts
index ed50614a..d3805876 100644
--- a/apps/create-hypergraph/template-vite-react/src/schema.ts
+++ b/apps/create-hypergraph/template-vite-react/src/schema.ts
@@ -1,10 +1,10 @@
import { Entity, Type } from '@graphprotocol/hypergraph';
export class Address extends Entity.Class('Address')({
- name: Type.Text,
- description: Type.Text,
+ name: Type.String,
+ description: Type.String,
}) {}
export class Project extends Entity.Class('Project')({
- name: Type.Text,
+ name: Type.String,
}) {}
diff --git a/apps/events/src/schema.ts b/apps/events/src/schema.ts
index 8c0d13af..c60a3909 100644
--- a/apps/events/src/schema.ts
+++ b/apps/events/src/schema.ts
@@ -1,38 +1,38 @@
import { Entity, Type } from '@graphprotocol/hypergraph';
export class User extends Entity.Class('User')({
- name: Type.Text,
+ name: Type.String,
}) {}
export class Todo extends Entity.Class('Todo')({
- name: Type.Text,
+ name: Type.String,
completed: Type.Boolean,
assignees: Type.Relation(User),
}) {}
export class Todo2 extends Entity.Class('Todo2')({
- name: Type.Text,
+ name: Type.String,
checked: Type.Boolean,
assignees: Type.Relation(User),
due: Type.Date,
amount: Type.Number,
point: Type.Point,
- website: Type.Text,
+ website: Type.String,
}) {}
export class JobOffer extends Entity.Class('JobOffer')({
- name: Type.Text,
+ name: Type.String,
salary: Type.Number,
}) {}
export class Company extends Entity.Class('Company')({
- name: Type.Text,
- // address: Type.Text,
+ name: Type.String,
+ // address: Type.String,
jobOffers: Type.Relation(JobOffer),
}) {}
export class Event extends Entity.Class('Event')({
- name: Type.Text,
- description: Type.optional(Type.Text),
+ name: Type.String,
+ description: Type.optional(Type.String),
sponsors: Type.Relation(Company),
}) {}
diff --git a/docs/docs/filtering-query-results.md b/docs/docs/filtering-query-results.md
index dd9f8e55..d47ef8be 100644
--- a/docs/docs/filtering-query-results.md
+++ b/docs/docs/filtering-query-results.md
@@ -8,7 +8,7 @@ Note: Filtering is not yet supported for public data.
```tsx
export class Event extends Entity.Class("Event")({
- name: Type.Text,
+ name: Type.String,
cancelled: Type.Boolean,
}) {}
@@ -29,7 +29,7 @@ The filter API supports different filters for different property types and offer
exists: true/false, // filter by existence of the property
}
-// text filter
+// string filter
{
is: "text", // exact match
contains: "text",
@@ -131,7 +131,7 @@ const { data } = useQuery(Person, {
```tsx
// schema
export class Todo extends Entity.Class('Todo')({
- name: Type.Text,
+ name: Type.String,
checked: Type.Boolean,
assignees: Type.Relation(User),
})
@@ -174,7 +174,7 @@ const { data } = useQuery(Person, {
```tsx
// schema
export class Todo extends Entity.Class('Todo')({
- name: Type.Text,
+ name: Type.String,
checked: Type.Boolean,
assignees: Type.Relation(User, {
entity: {
diff --git a/docs/docs/schema.md b/docs/docs/schema.md
index a3971d7c..81154c9e 100644
--- a/docs/docs/schema.md
+++ b/docs/docs/schema.md
@@ -10,8 +10,8 @@ Here is an example of a schema for an Event app with the properties `name` and `
import { Entity, Type } from '@graphprotocol/hypergraph';
export class Event extends Entity.Class('Event')({
- name: Type.Text,
- description: Type.Text,
+ name: Type.String,
+ description: Type.String,
}) {}
```
@@ -23,19 +23,19 @@ In order to define relations between Types, you can use the `Type.Relation` type
import { Entity, Type } from '@graphprotocol/hypergraph';
export class Company extends Entity.Class('Company')({
- name: Type.Text,
+ name: Type.String,
}) {}
export class Event extends Entity.Class('Event')({
- name: Type.Text,
- description: Type.Text,
+ name: Type.String,
+ description: Type.String,
sponsors: Type.Relation(Company),
}) {}
```
## Available Types
-- `Type.Text` (string)
+- `Type.String` (string)
- `Type.Number` (number)
- `Type.Date` (date)
- `Type.Boolean` (boolean)
@@ -48,7 +48,7 @@ Example:
import { Entity, Type } from '@graphprotocol/hypergraph';
export class Company extends Entity.Class('Company')({
- name: Type.Text,
+ name: Type.String,
employees: Type.Number,
founded: Type.Date,
active: Type.Boolean,
@@ -64,8 +64,8 @@ You can make a field optional by wrapping it in `Type.optional`.
import { Entity, Type } from '@graphprotocol/hypergraph';
export class Company extends Entity.Class('Company')({
- name: Type.Text,
- description: Type.optional(Type.Text),
+ name: Type.String,
+ description: Type.optional(Type.String),
founded: Type.optional(Type.Date),
}) {}
```
diff --git a/packages/hypergraph-react/test/HypergraphSpaceContext.test.tsx b/packages/hypergraph-react/test/HypergraphSpaceContext.test.tsx
index ce242c39..565ff4bd 100644
--- a/packages/hypergraph-react/test/HypergraphSpaceContext.test.tsx
+++ b/packages/hypergraph-react/test/HypergraphSpaceContext.test.tsx
@@ -20,17 +20,17 @@ afterEach(() => {
describe('HypergraphSpaceContext', () => {
class Person extends Entity.Class('Person')({
- name: Type.Text,
+ name: Type.String,
age: Type.Number,
}) {}
class User extends Entity.Class('User')({
- name: Type.Text,
- email: Type.Text,
+ name: Type.String,
+ email: Type.String,
}) {}
class Event extends Entity.Class('Event')({
- name: Type.Text,
+ name: Type.String,
}) {}
const spaceId = '1e5e39da-a00d-4fd8-b53b-98095337112f';
diff --git a/packages/hypergraph-react/test/prepare-publish.test.ts b/packages/hypergraph-react/test/prepare-publish.test.ts
index a0dccf1b..f1a31b83 100644
--- a/packages/hypergraph-react/test/prepare-publish.test.ts
+++ b/packages/hypergraph-react/test/prepare-publish.test.ts
@@ -21,22 +21,22 @@ afterEach(() => {
describe('preparePublish', () => {
// Test entity classes
class Person extends Entity.Class('Person')({
- name: Type.Text,
+ name: Type.String,
age: Type.Number,
- email: Type.optional(Type.Text),
+ email: Type.optional(Type.String),
isActive: Type.Boolean,
birthDate: Type.Date,
location: Type.Point,
}) {}
class Company extends Entity.Class('Company')({
- name: Type.Text,
+ name: Type.String,
employees: Type.Relation(Person),
}) {}
// Entity class for testing optional types
class OptionalFieldsEntity extends Entity.Class('OptionalFieldsEntity')({
- name: Type.Text, // required field
+ name: Type.String, // required field
optionalNumber: Type.optional(Type.Number),
optionalBoolean: Type.optional(Type.Boolean),
optionalDate: Type.optional(Type.Date),
@@ -323,7 +323,7 @@ describe('preparePublish', () => {
it('should throw error when mapping entry is not found', async () => {
class UnmappedEntity extends Entity.Class('UnmappedEntity')({
- name: Type.Text,
+ name: Type.String,
}) {}
const entity = {
diff --git a/packages/hypergraph/src/entity/findMany.ts b/packages/hypergraph/src/entity/findMany.ts
index 3509dc1c..85195d7c 100644
--- a/packages/hypergraph/src/entity/findMany.ts
+++ b/packages/hypergraph/src/entity/findMany.ts
@@ -15,7 +15,7 @@ import type {
EntityFieldFilter,
EntityFilter,
EntityNumberFilter,
- EntityTextFilter,
+ EntityStringFilter,
} from './types.js';
const documentChangeListener: {
@@ -298,19 +298,19 @@ export function findMany(
if (typeof fieldValue === 'string') {
if ('startsWith' in fieldFilter) {
- const textFilter = fieldFilter as EntityTextFilter;
+ const textFilter = fieldFilter as EntityStringFilter;
if (textFilter.startsWith !== undefined && !fieldValue.startsWith(textFilter.startsWith)) {
return false;
}
}
if ('endsWith' in fieldFilter) {
- const textFilter = fieldFilter as EntityTextFilter;
+ const textFilter = fieldFilter as EntityStringFilter;
if (textFilter.endsWith !== undefined && !fieldValue.endsWith(textFilter.endsWith)) {
return false;
}
}
if ('contains' in fieldFilter) {
- const textFilter = fieldFilter as EntityTextFilter;
+ const textFilter = fieldFilter as EntityStringFilter;
if (textFilter.contains !== undefined && !fieldValue.includes(textFilter.contains)) {
return false;
}
diff --git a/packages/hypergraph/src/entity/types.ts b/packages/hypergraph/src/entity/types.ts
index ee662e56..2ba4ab01 100644
--- a/packages/hypergraph/src/entity/types.ts
+++ b/packages/hypergraph/src/entity/types.ts
@@ -59,14 +59,14 @@ export type EntityNumberFilter = {
or?: EntityNumberFilter[];
};
-export type EntityTextFilter = {
+export type EntityStringFilter = {
is?: string;
startsWith?: string;
endsWith?: string;
contains?: string;
equals?: string;
- not?: EntityTextFilter;
- or?: EntityTextFilter[];
+ not?: EntityStringFilter;
+ or?: EntityStringFilter[];
};
export type CrossFieldFilter = {
diff --git a/packages/hypergraph/src/mapping/Mapping.ts b/packages/hypergraph/src/mapping/Mapping.ts
index f769505e..2b090704 100644
--- a/packages/hypergraph/src/mapping/Mapping.ts
+++ b/packages/hypergraph/src/mapping/Mapping.ts
@@ -94,7 +94,7 @@ export type SchemaDataTypeRelation = typeof SchemaDataTypeRelation.Type;
/**
* @since 0.2.0
*/
-export const SchemaDataTypePrimitive = EffectSchema.Literal('Text', 'Number', 'Boolean', 'Date', 'Point');
+export const SchemaDataTypePrimitive = EffectSchema.Literal('String', 'Number', 'Boolean', 'Date', 'Point');
/**
* @since 0.2.0
*/
@@ -195,7 +195,7 @@ export const Schema = EffectSchema.Struct({
{
name: 'Account',
knowledgeGraphId: null,
- properties: [{ name: 'username', knowledgeGraphId: null, dataType: 'Text' }],
+ properties: [{ name: 'username', knowledgeGraphId: null, dataType: 'String' }],
},
],
},
@@ -204,7 +204,7 @@ export const Schema = EffectSchema.Struct({
{
name: 'Account',
knowledgeGraphId: 'a5fd07b1-120f-46c6-b46f-387ef98396a6',
- properties: [{ name: 'name', knowledgeGraphId: 'a126ca53-0c8e-48d5-b888-82c734c38935', dataType: 'Text' }],
+ properties: [{ name: 'name', knowledgeGraphId: 'a126ca53-0c8e-48d5-b888-82c734c38935', dataType: 'String' }],
},
],
},
diff --git a/packages/hypergraph/src/type-utils/type-utils.ts b/packages/hypergraph/src/type-utils/type-utils.ts
index c61cb20a..6b590b99 100644
--- a/packages/hypergraph/src/type-utils/type-utils.ts
+++ b/packages/hypergraph/src/type-utils/type-utils.ts
@@ -3,9 +3,9 @@ import * as Type from '../type/type.js';
// biome-ignore lint/suspicious/noExplicitAny: TODO
export const isStringOrOptionalStringType = (type: any) => {
if (type.ast && type.ast._tag === 'PropertySignatureDeclaration' && type.ast.isOptional) {
- return type.from === Type.Text;
+ return type.from === Type.String;
}
- return type === Type.Text;
+ return type === Type.String;
};
// biome-ignore lint/suspicious/noExplicitAny: TODO
diff --git a/packages/hypergraph/src/type/type.ts b/packages/hypergraph/src/type/type.ts
index 56b7b63d..0e9dcd1e 100644
--- a/packages/hypergraph/src/type/type.ts
+++ b/packages/hypergraph/src/type/type.ts
@@ -2,7 +2,8 @@ import * as Schema from 'effect/Schema';
import { Field } from '../entity/entity.js';
import type { AnyNoContext, EntityWithRelation } from '../entity/types.js';
-export const Text = Schema.String;
+// biome-ignore lint/suspicious/noShadowRestrictedNames: is part of a namespaces module and therefor ok
+export const String = Schema.String;
// biome-ignore lint/suspicious/noShadowRestrictedNames: is part of a namespaces module and therefor ok
export const Number = Schema.Number;
// biome-ignore lint/suspicious/noShadowRestrictedNames: is part of a namespaces module and therefor ok
diff --git a/packages/hypergraph/test/entity/entity.test.ts b/packages/hypergraph/test/entity/entity.test.ts
index 7008d364..45b8affd 100644
--- a/packages/hypergraph/test/entity/entity.test.ts
+++ b/packages/hypergraph/test/entity/entity.test.ts
@@ -8,21 +8,21 @@ import { idToAutomergeId } from '../../src/utils/automergeId.js';
describe('Entity', () => {
class Person extends Entity.Class('Person')({
- name: Type.Text,
+ name: Type.String,
age: Type.Number,
}) {}
class User extends Entity.Class('User')({
- name: Type.Text,
- email: Type.Text,
+ name: Type.String,
+ email: Type.String,
}) {}
class Badge extends Entity.Class('Badge')({
- name: Type.Text,
+ name: Type.String,
}) {}
class Event extends Entity.Class('Event')({
- name: Type.Text,
+ name: Type.String,
}) {}
const spaceId = '1e5e39da-a00d-4fd8-b53b-98095337112f';
diff --git a/packages/hypergraph/test/entity/findMany.test.ts b/packages/hypergraph/test/entity/findMany.test.ts
index cb90e5d2..7e90962a 100644
--- a/packages/hypergraph/test/entity/findMany.test.ts
+++ b/packages/hypergraph/test/entity/findMany.test.ts
@@ -9,15 +9,15 @@ import { idToAutomergeId } from '../../src/utils/automergeId.js';
describe('findMany with filters', () => {
// Define entity classes for testing
class Person extends Entity.Class('Person')({
- name: Type.Text,
+ name: Type.String,
age: Type.Number,
isActive: Type.Boolean,
}) {}
class Product extends Entity.Class('Product')({
- name: Type.Text,
+ name: Type.String,
price: Type.Number,
- category: Type.Text,
+ category: Type.String,
}) {}
const spaceId = '1e5e39da-a00d-4fd8-b53b-98095337112f';
@@ -34,7 +34,7 @@ describe('findMany with filters', () => {
handle.doneLoading();
});
- describe('Text filters', () => {
+ describe('String filters', () => {
it('should filter entities by exact text match', () => {
// Create test entities
Entity.create(handle, Person)({ name: 'John', age: 30, isActive: true });
diff --git a/packages/hypergraph/test/mapping/Mapping.test.ts b/packages/hypergraph/test/mapping/Mapping.test.ts
index 28ec6885..effab26f 100644
--- a/packages/hypergraph/test/mapping/Mapping.test.ts
+++ b/packages/hypergraph/test/mapping/Mapping.test.ts
@@ -16,7 +16,7 @@ describe('Mapping', () => {
expect(mapSchemaDataTypeToGRC20PropDataType('Number')).toEqual('NUMBER');
expect(mapSchemaDataTypeToGRC20PropDataType('Date')).toEqual('TIME');
expect(mapSchemaDataTypeToGRC20PropDataType('Point')).toEqual('POINT');
- expect(mapSchemaDataTypeToGRC20PropDataType('Text')).toEqual('TEXT');
+ expect(mapSchemaDataTypeToGRC20PropDataType('String')).toEqual('TEXT');
expect(mapSchemaDataTypeToGRC20PropDataType('Relation(Event)')).toEqual('RELATION');
});
});
@@ -27,7 +27,7 @@ describe('Mapping', () => {
{
name: 'Account',
knowledgeGraphId: null,
- properties: [{ name: 'username', dataType: 'Text', knowledgeGraphId: null }],
+ properties: [{ name: 'username', dataType: 'String', knowledgeGraphId: null }],
},
{
name: 'Event',
@@ -65,7 +65,7 @@ describe('Mapping', () => {
properties: [
{
name: 'username',
- dataType: 'Text',
+ dataType: 'String',
knowledgeGraphId: null,
},
{
@@ -81,12 +81,12 @@ describe('Mapping', () => {
properties: [
{
name: 'name',
- dataType: 'Text',
+ dataType: 'String',
knowledgeGraphId: null,
},
{
name: 'description',
- dataType: 'Text',
+ dataType: 'String',
knowledgeGraphId: null,
},
{
@@ -130,7 +130,7 @@ describe('Mapping', () => {
properties: [
{
name: 'username',
- dataType: 'Text',
+ dataType: 'String',
knowledgeGraphId: '994edcff-6996-4a77-9797-a13e5e3efad8',
},
{
@@ -146,12 +146,12 @@ describe('Mapping', () => {
properties: [
{
name: 'name',
- dataType: 'Text',
+ dataType: 'String',
knowledgeGraphId: '3808e060-fb4a-4d08-8069-35b8c8a1902b',
},
{
name: 'description',
- dataType: 'Text',
+ dataType: 'String',
knowledgeGraphId: null,
},
{
@@ -195,7 +195,7 @@ describe('Mapping', () => {
properties: [
{
name: 'username',
- dataType: 'Text',
+ dataType: 'String',
knowledgeGraphId: null,
},
],
@@ -206,7 +206,7 @@ describe('Mapping', () => {
properties: [
{
name: 'name',
- dataType: 'Text',
+ dataType: 'String',
knowledgeGraphId: null,
},
{
@@ -248,7 +248,7 @@ describe('Mapping', () => {
properties: [
{
name: 'username',
- dataType: 'Text',
+ dataType: 'String',
knowledgeGraphId: null,
},
],
@@ -259,7 +259,7 @@ describe('Mapping', () => {
properties: [
{
name: 'name',
- dataType: 'Text',
+ dataType: 'String',
knowledgeGraphId: null,
},
{
@@ -301,7 +301,7 @@ describe('Mapping', () => {
properties: [
{
name: 'username',
- dataType: 'Text',
+ dataType: 'String',
knowledgeGraphId: '994edcff-6996-4a77-9797-a13e5e3efad8',
},
],
@@ -312,7 +312,7 @@ describe('Mapping', () => {
properties: [
{
name: 'name',
- dataType: 'Text',
+ dataType: 'String',
knowledgeGraphId: null,
},
{
@@ -328,7 +328,7 @@ describe('Mapping', () => {
properties: [
{
name: 'title',
- dataType: 'Text',
+ dataType: 'String',
knowledgeGraphId: null,
},
{
@@ -383,12 +383,12 @@ describe('Mapping', () => {
{
name: 'Account',
knowledgeGraphId: null,
- properties: [{ name: 'username', dataType: 'Text', knowledgeGraphId: null }],
+ properties: [{ name: 'username', dataType: 'String', knowledgeGraphId: null }],
},
{
name: 'Account',
knowledgeGraphId: null,
- properties: [{ name: 'image', dataType: 'Text', knowledgeGraphId: null }],
+ properties: [{ name: 'image', dataType: 'String', knowledgeGraphId: null }],
},
],
}),
@@ -402,8 +402,8 @@ describe('Mapping', () => {
name: 'Account',
knowledgeGraphId: null,
properties: [
- { name: 'username', dataType: 'Text', knowledgeGraphId: null },
- { name: 'username', dataType: 'Text', knowledgeGraphId: null },
+ { name: 'username', dataType: 'String', knowledgeGraphId: null },
+ { name: 'username', dataType: 'String', knowledgeGraphId: null },
],
},
],