@dxos/echo-generator 0.8.4-main.dedc0f3 → 0.8.4-main.e8ec1fe

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.
@@ -2,33 +2,30 @@ import "@dxos/node-std/globals";
2
2
 
3
3
  // src/data.ts
4
4
  import { next as A } from "@automerge/automerge";
5
- import { Schema } from "effect";
5
+ import * as Schema from "effect/Schema";
6
6
  import { createDocAccessor } from "@dxos/client/echo";
7
- import { EchoObject, Ref } from "@dxos/echo-schema";
7
+ import { EchoObject, Ref } from "@dxos/echo/internal";
8
8
  import { faker as faker2 } from "@dxos/random";
9
9
 
10
10
  // src/generator.ts
11
11
  import { Filter } from "@dxos/client/echo";
12
- import { EchoSchema, getSchema, getTypeAnnotation } from "@dxos/echo-schema";
12
+ import { Obj } from "@dxos/echo";
13
+ import { EchoSchema, getSchema, getTypeAnnotation } from "@dxos/echo/internal";
13
14
  import { invariant } from "@dxos/invariant";
14
15
  import { isLiveObject, live } from "@dxos/live-object";
15
16
  import { faker } from "@dxos/random";
16
17
  import { entries, range } from "@dxos/util";
17
- function _define_property(obj, key, value) {
18
- if (key in obj) {
19
- Object.defineProperty(obj, key, {
20
- value,
21
- enumerable: true,
22
- configurable: true,
23
- writable: true
24
- });
25
- } else {
26
- obj[key] = value;
27
- }
28
- return obj;
29
- }
30
18
  var __dxlog_file = "/__w/dxos/dxos/packages/core/echo/echo-generator/src/generator.ts";
31
19
  var TestObjectGenerator = class {
20
+ _schemas;
21
+ _generators;
22
+ _provider;
23
+ // prettier-ignore
24
+ constructor(_schemas, _generators, _provider) {
25
+ this._schemas = _schemas;
26
+ this._generators = _generators;
27
+ this._provider = _provider;
28
+ }
32
29
  get schemas() {
33
30
  return Object.values(this._schemas);
34
31
  }
@@ -45,7 +42,7 @@ var TestObjectGenerator = class {
45
42
  return data;
46
43
  }
47
44
  const schema = this.getSchema(type);
48
- return schema ? live(schema, data) : live(data);
45
+ return schema ? Obj.make(schema, data) : live(data);
49
46
  }
50
47
  // TODO(burdon): Based on dependencies (e.g., organization before contact).
51
48
  async createObjects(map) {
@@ -66,17 +63,17 @@ var TestObjectGenerator = class {
66
63
  }).flatMap((t) => t);
67
64
  return Promise.all(tasks);
68
65
  }
69
- // prettier-ignore
70
- constructor(_schemas, _generators, _provider) {
71
- _define_property(this, "_schemas", void 0);
72
- _define_property(this, "_generators", void 0);
73
- _define_property(this, "_provider", void 0);
74
- this._schemas = _schemas;
75
- this._generators = _generators;
76
- this._provider = _provider;
77
- }
78
66
  };
79
67
  var SpaceObjectGenerator = class extends TestObjectGenerator {
68
+ _space;
69
+ _mutations;
70
+ constructor(_space, schemaMap, generators, _mutations) {
71
+ super(schemaMap, generators, async (type) => {
72
+ const schema = this.getSchema(type);
73
+ const { objects } = await this._space.db.query(schema ? Filter.type(schema) : Filter.nothing()).run();
74
+ return objects;
75
+ }), this._space = _space, this._mutations = _mutations;
76
+ }
80
77
  async addSchemas() {
81
78
  const result = [];
82
79
  for (const [typename, schema] of Object.entries(this._schemas)) {
@@ -115,7 +112,7 @@ var SpaceObjectGenerator = class extends TestObjectGenerator {
115
112
  async mutateObject(object, params) {
116
113
  invariant(this._mutations, "Mutations not defined.", {
117
114
  F: __dxlog_file,
118
- L: 130,
115
+ L: 131,
119
116
  S: this,
120
117
  A: [
121
118
  "this._mutations",
@@ -125,7 +122,7 @@ var SpaceObjectGenerator = class extends TestObjectGenerator {
125
122
  const type = getTypeAnnotation(getSchema(object)).typename;
126
123
  invariant(type && this._mutations?.[type], "Invalid object type.", {
127
124
  F: __dxlog_file,
128
- L: 132,
125
+ L: 133,
129
126
  S: this,
130
127
  A: [
131
128
  "type && this._mutations?.[type]",
@@ -139,13 +136,6 @@ var SpaceObjectGenerator = class extends TestObjectGenerator {
139
136
  await this.mutateObject(object, params);
140
137
  }
141
138
  }
142
- constructor(_space, schemaMap, generators, _mutations) {
143
- super(schemaMap, generators, async (type) => {
144
- const schema = this.getSchema(type);
145
- const { objects } = await this._space.db.query(schema ? Filter.type(schema) : Filter.nothing()).run();
146
- return objects;
147
- }), _define_property(this, "_space", void 0), _define_property(this, "_mutations", void 0), this._space = _space, this._mutations = _mutations;
148
- }
149
139
  };
150
140
 
151
141
  // src/util.ts
@@ -172,13 +162,13 @@ var Priority = [
172
162
  4,
173
163
  5
174
164
  ];
175
- var TestSchemaType = /* @__PURE__ */ function(TestSchemaType2) {
165
+ var TestSchemaType = /* @__PURE__ */ (function(TestSchemaType2) {
176
166
  TestSchemaType2["document"] = "example.com/type/Document";
177
167
  TestSchemaType2["organization"] = "example.com/type/Organization";
178
- TestSchemaType2["contact"] = "example.com/type/Contact";
168
+ TestSchemaType2["contact"] = "example.com/type/Person";
179
169
  TestSchemaType2["project"] = "example.com/type/Project";
180
170
  return TestSchemaType2;
181
- }({});
171
+ })({});
182
172
  var testSchemas = () => {
183
173
  const document = Schema.Struct({
184
174
  title: Schema.String.annotations({
@@ -212,7 +202,7 @@ var testSchemas = () => {
212
202
  lat: Schema.optional(Schema.Number),
213
203
  lng: Schema.optional(Schema.Number)
214
204
  }).pipe(EchoObject({
215
- typename: "example.com/type/Contact",
205
+ typename: "example.com/type/Person",
216
206
  version: "0.1.0"
217
207
  }));
218
208
  const project = Schema.Struct({
@@ -233,7 +223,7 @@ var testSchemas = () => {
233
223
  return {
234
224
  ["example.com/type/Document"]: document,
235
225
  ["example.com/type/Organization"]: organization,
236
- ["example.com/type/Contact"]: contact,
226
+ ["example.com/type/Person"]: contact,
237
227
  ["example.com/type/Project"]: project
238
228
  };
239
229
  };
@@ -255,7 +245,7 @@ var testObjectGenerators = {
255
245
  }) ? faker2.internet.url() : void 0,
256
246
  description: faker2.lorem.sentences()
257
247
  }),
258
- ["example.com/type/Contact"]: async (provider) => {
248
+ ["example.com/type/Person"]: async (provider) => {
259
249
  const organizations = await provider?.("example.com/type/Organization");
260
250
  const location = faker2.datatype.boolean() ? faker2.geo.airport() : {};
261
251
  return {
@@ -294,7 +284,7 @@ var testObjectMutators = {
294
284
  ["example.com/type/Organization"]: async () => {
295
285
  throw new Error("Method not implemented.");
296
286
  },
297
- ["example.com/type/Contact"]: async () => {
287
+ ["example.com/type/Person"]: async () => {
298
288
  throw new Error("Method not implemented.");
299
289
  },
300
290
  ["example.com/type/Project"]: async () => {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/data.ts", "../../../src/generator.ts", "../../../src/util.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { next as A } from '@automerge/automerge';\nimport { Schema } from 'effect';\n\nimport { type Space, createDocAccessor } from '@dxos/client/echo';\nimport { EchoObject, Ref } from '@dxos/echo-schema';\nimport { faker } from '@dxos/random';\n\nimport { SpaceObjectGenerator, TestObjectGenerator } from './generator';\nimport { type TestGeneratorMap, type TestMutationsMap, type TestSchemaMap } from './types';\nimport { randomText } from './util';\n\n// TODO(burdon): Reconcile with @dxos/plugin-debug, @dxos/aurora/testing.\n// TODO(burdon): Bug when adding stale objects to space (e.g., static objects already added in previous story invocation).\n\n// TODO(burdon): Handle restricted values.\nexport const Status = ['pending', 'active', 'done'];\nexport const Priority = [1, 2, 3, 4, 5];\n\n/**\n * @deprecated\n */\nexport enum TestSchemaType {\n document = 'example.com/type/Document',\n organization = 'example.com/type/Organization',\n contact = 'example.com/type/Contact',\n project = 'example.com/type/Project',\n}\n\n/**\n * @deprecated\n */\nconst testSchemas = (): TestSchemaMap<TestSchemaType> => {\n const document = Schema.Struct({\n title: Schema.String.annotations({ description: 'title of the document' }),\n content: Schema.String,\n }).pipe(EchoObject({ typename: TestSchemaType.document, version: '0.1.0' }));\n\n const organization = Schema.Struct({\n name: Schema.String.annotations({ description: 'name of the company or organization' }),\n website: Schema.optional(Schema.String.annotations({ description: 'public website URL' })),\n description: Schema.String.annotations({ description: 'short summary of the company' }),\n }).pipe(EchoObject({ typename: TestSchemaType.organization, version: '0.1.0' }));\n\n const contact = Schema.Struct({\n name: Schema.String.annotations({ description: 'name of the person' }),\n email: Schema.optional(Schema.String),\n org: Schema.optional(Ref(organization)),\n lat: Schema.optional(Schema.Number),\n lng: Schema.optional(Schema.Number),\n }).pipe(EchoObject({ typename: TestSchemaType.contact, version: '0.1.0' }));\n\n const project = Schema.Struct({\n name: Schema.String.annotations({ description: 'name of the project' }),\n description: Schema.String,\n website: Schema.String,\n repo: Schema.String,\n status: Schema.String,\n priority: Schema.Number,\n active: Schema.Boolean,\n org: Schema.optional(Ref(organization)),\n }).pipe(EchoObject({ typename: TestSchemaType.project, version: '0.1.0' }));\n\n return {\n [TestSchemaType.document]: document,\n [TestSchemaType.organization]: organization,\n [TestSchemaType.contact]: contact,\n [TestSchemaType.project]: project,\n };\n};\n\nconst testObjectGenerators: TestGeneratorMap<TestSchemaType> = {\n [TestSchemaType.document]: async () => ({\n title: faker.lorem.sentence(3),\n content: faker.lorem.sentences({ min: 1, max: faker.number.int({ min: 1, max: 3 }) }),\n }),\n\n [TestSchemaType.organization]: async () => ({\n name: faker.company.name(),\n website: faker.datatype.boolean({ probability: 0.3 }) ? faker.internet.url() : undefined,\n description: faker.lorem.sentences(),\n }),\n\n [TestSchemaType.contact]: async (provider) => {\n const organizations = await provider?.(TestSchemaType.organization);\n const location = faker.datatype.boolean() ? faker.geo.airport() : {};\n\n return {\n name: faker.person.fullName(),\n email: faker.datatype.boolean({ probability: 0.5 }) ? faker.internet.email() : undefined,\n org:\n organizations?.length && faker.datatype.boolean({ probability: 0.8 })\n ? Ref.make(faker.helpers.arrayElement(organizations))\n : undefined,\n ...location,\n };\n },\n\n [TestSchemaType.project]: async () => ({\n name: faker.commerce.productName(),\n repo: faker.internet.url(),\n status: faker.helpers.arrayElement(Status),\n description: faker.lorem.sentences(),\n website: faker.internet.url(),\n priority: faker.helpers.arrayElement(Priority),\n active: faker.datatype.boolean(),\n }),\n};\n\nconst testObjectMutators: TestMutationsMap<TestSchemaType> = {\n [TestSchemaType.document]: async (object, params) => {\n const accessor = createDocAccessor(object, ['content']);\n for (let i = 0; i < params.count; i++) {\n const length = object.content?.content?.length ?? 0;\n accessor.handle.change((doc) => {\n A.splice(\n doc,\n accessor.path.slice(),\n 0,\n params.maxContentLength >= length ? 0 : params.mutationSize,\n randomText(params.mutationSize),\n );\n });\n }\n },\n [TestSchemaType.organization]: async () => {\n throw new Error('Method not implemented.');\n },\n [TestSchemaType.contact]: async () => {\n throw new Error('Method not implemented.');\n },\n [TestSchemaType.project]: async () => {\n throw new Error('Method not implemented.');\n },\n};\n\n/**\n * @deprecated Use generators in schema package.\n */\nexport const createTestObjectGenerator = () => new TestObjectGenerator(testSchemas(), testObjectGenerators);\n\n/**\n * @deprecated Use generators in schema package.\n */\nexport const createSpaceObjectGenerator = (space: Space) =>\n new SpaceObjectGenerator(space, testSchemas(), testObjectGenerators, testObjectMutators);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Schema } from 'effect';\n\nimport { Filter, type Space } from '@dxos/client/echo';\nimport { type AnyLiveObject } from '@dxos/echo-db';\nimport { EchoSchema, getSchema, getTypeAnnotation } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { type Live, isLiveObject, live } from '@dxos/live-object';\nimport { faker } from '@dxos/random';\nimport { entries, range } from '@dxos/util';\n\nimport { type TestSchemaType } from './data';\nimport {\n type MutationsProviderParams,\n type TestGeneratorMap,\n type TestMutationsMap,\n type TestObjectProvider,\n type TestSchemaMap,\n} from './types';\n\n/**\n * Typed object generator.\n * @deprecated\n */\nexport class TestObjectGenerator<T extends string = TestSchemaType> {\n // prettier-ignore\n constructor(\n protected readonly _schemas: TestSchemaMap<T>,\n private readonly _generators: TestGeneratorMap<T>,\n private readonly _provider?: TestObjectProvider<T>,\n ) {}\n\n get schemas(): (EchoSchema | Schema.Schema.AnyNoContext)[] {\n return Object.values(this._schemas);\n }\n\n getSchema(type: T): EchoSchema | Schema.Schema.AnyNoContext | undefined {\n return this.schemas.find((schema) => getTypeAnnotation(schema)!.typename === type);\n }\n\n protected setSchema(type: T, schema: EchoSchema | Schema.Schema.AnyNoContext): void {\n this._schemas[type] = schema;\n }\n\n async createObject({ types }: { types?: T[] } = {}): Promise<Live<any>> {\n const type = faker.helpers.arrayElement(types ?? (Object.keys(this._schemas) as T[]));\n const data = await this._generators[type](this._provider);\n if (isLiveObject(data)) {\n return data;\n }\n\n const schema = this.getSchema(type);\n return schema ? live(schema, data) : live(data);\n }\n\n // TODO(burdon): Based on dependencies (e.g., organization before contact).\n async createObjects(map: Partial<Record<T, number>>) {\n const results: Live<any>[] = [];\n for (const [type, count] of entries(map)) {\n results.push(...(await Promise.all(range(count ?? 0, () => this.createObject({ types: [type as T] })))));\n }\n\n const tasks = Object.entries<number>(map as any)\n .map(([type, count]) => {\n return range(count, () => this.createObject({ types: [type as T] }));\n })\n .flatMap((t) => t);\n\n return Promise.all(tasks);\n }\n}\n\n/**\n * Typed object generator for a space.\n */\nexport class SpaceObjectGenerator<T extends string> extends TestObjectGenerator<T> {\n constructor(\n private readonly _space: Space,\n schemaMap: TestSchemaMap<T>,\n generators: TestGeneratorMap<T>,\n private readonly _mutations?: TestMutationsMap<T>,\n ) {\n super(schemaMap, generators, async (type: T) => {\n const schema = this.getSchema(type);\n const { objects } = await this._space.db.query(schema ? Filter.type(schema) : Filter.nothing()).run();\n return objects;\n });\n }\n\n async addSchemas() {\n const result: (EchoSchema | Schema.Schema.AnyNoContext)[] = [];\n for (const [typename, schema] of Object.entries(this._schemas)) {\n const echoSchema = await this._maybeRegisterSchema(typename, schema as EchoSchema | Schema.Schema.AnyNoContext);\n this.setSchema(typename as T, echoSchema);\n result.push(echoSchema);\n }\n\n return result;\n }\n\n override async createObject({ types }: { types?: T[] } = {}): Promise<AnyLiveObject<any>> {\n return this._space.db.add(await super.createObject({ types }));\n }\n\n private async _maybeRegisterSchema(\n typename: string,\n schema: EchoSchema | Schema.Schema.AnyNoContext,\n ): Promise<EchoSchema | Schema.Schema.AnyNoContext> {\n if (schema instanceof EchoSchema) {\n const existingSchema = this._space.db.schemaRegistry.getSchema(typename);\n if (existingSchema != null) {\n return existingSchema;\n }\n const [registeredSchema] = await this._space.db.schemaRegistry.register([schema]);\n return registeredSchema;\n } else {\n const existingSchema = this._space.db.graph.schemaRegistry.getSchema(typename);\n if (existingSchema != null) {\n return existingSchema;\n }\n this._space.db.graph.schemaRegistry.addSchema([schema]);\n return schema;\n }\n }\n\n async mutateObject(object: AnyLiveObject<any>, params: MutationsProviderParams): Promise<void> {\n invariant(this._mutations, 'Mutations not defined.');\n const type = getTypeAnnotation(getSchema(object)!)!.typename as T;\n invariant(type && this._mutations?.[type], 'Invalid object type.');\n\n await this._mutations![type](object, params);\n }\n\n async mutateObjects(objects: AnyLiveObject<any>[], params: MutationsProviderParams): Promise<void> {\n for (const object of objects) {\n await this.mutateObject(object, params);\n }\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const randomText = (length: number) => {\n let result = '';\n const characters = 'abcdefghijklmnopqrstuvwxyz';\n const charactersLength = characters.length;\n for (let index = 0; index < length; index++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n\n return result;\n};\n"],
5
- "mappings": "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",
6
- "names": ["next", "A", "Schema", "createDocAccessor", "EchoObject", "Ref", "faker", "Filter", "EchoSchema", "getSchema", "getTypeAnnotation", "invariant", "isLiveObject", "live", "faker", "entries", "range", "TestObjectGenerator", "schemas", "Object", "values", "_schemas", "type", "find", "schema", "typename", "setSchema", "createObject", "types", "helpers", "arrayElement", "keys", "data", "_generators", "_provider", "createObjects", "map", "results", "count", "push", "Promise", "all", "tasks", "flatMap", "t", "SpaceObjectGenerator", "addSchemas", "result", "echoSchema", "_maybeRegisterSchema", "_space", "db", "add", "existingSchema", "schemaRegistry", "registeredSchema", "register", "graph", "addSchema", "mutateObject", "object", "params", "_mutations", "mutateObjects", "objects", "schemaMap", "generators", "query", "nothing", "run", "randomText", "length", "result", "characters", "charactersLength", "index", "charAt", "Math", "floor", "random", "Status", "Priority", "TestSchemaType", "testSchemas", "document", "Schema", "Struct", "title", "String", "annotations", "description", "content", "pipe", "EchoObject", "typename", "version", "organization", "name", "website", "optional", "contact", "email", "org", "Ref", "lat", "Number", "lng", "project", "repo", "status", "priority", "active", "Boolean", "testObjectGenerators", "faker", "lorem", "sentence", "sentences", "min", "max", "number", "int", "company", "datatype", "boolean", "probability", "internet", "url", "undefined", "provider", "organizations", "location", "geo", "airport", "person", "fullName", "length", "make", "helpers", "arrayElement", "commerce", "productName", "testObjectMutators", "object", "params", "accessor", "createDocAccessor", "i", "count", "handle", "change", "doc", "A", "splice", "path", "slice", "maxContentLength", "mutationSize", "randomText", "Error", "createTestObjectGenerator", "TestObjectGenerator", "createSpaceObjectGenerator", "space", "SpaceObjectGenerator"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { next as A } from '@automerge/automerge';\nimport * as Schema from 'effect/Schema';\n\nimport { type Space, createDocAccessor } from '@dxos/client/echo';\nimport { EchoObject, Ref } from '@dxos/echo/internal';\nimport { faker } from '@dxos/random';\n\nimport { SpaceObjectGenerator, TestObjectGenerator } from './generator';\nimport { type TestGeneratorMap, type TestMutationsMap, type TestSchemaMap } from './types';\nimport { randomText } from './util';\n\n// TODO(burdon): Reconcile with @dxos/plugin-debug, @dxos/aurora/testing.\n// TODO(burdon): Bug when adding stale objects to space (e.g., static objects already added in previous story invocation).\n\n// TODO(burdon): Handle restricted values.\nexport const Status = ['pending', 'active', 'done'];\nexport const Priority = [1, 2, 3, 4, 5];\n\n/**\n * @deprecated\n */\nexport enum TestSchemaType {\n document = 'example.com/type/Document',\n organization = 'example.com/type/Organization',\n contact = 'example.com/type/Person',\n project = 'example.com/type/Project',\n}\n\n/**\n * @deprecated\n */\nconst testSchemas = (): TestSchemaMap<TestSchemaType> => {\n const document = Schema.Struct({\n title: Schema.String.annotations({ description: 'title of the document' }),\n content: Schema.String,\n }).pipe(EchoObject({ typename: TestSchemaType.document, version: '0.1.0' }));\n\n const organization = Schema.Struct({\n name: Schema.String.annotations({ description: 'name of the company or organization' }),\n website: Schema.optional(Schema.String.annotations({ description: 'public website URL' })),\n description: Schema.String.annotations({ description: 'short summary of the company' }),\n }).pipe(EchoObject({ typename: TestSchemaType.organization, version: '0.1.0' }));\n\n const contact = Schema.Struct({\n name: Schema.String.annotations({ description: 'name of the person' }),\n email: Schema.optional(Schema.String),\n org: Schema.optional(Ref(organization)),\n lat: Schema.optional(Schema.Number),\n lng: Schema.optional(Schema.Number),\n }).pipe(EchoObject({ typename: TestSchemaType.contact, version: '0.1.0' }));\n\n const project = Schema.Struct({\n name: Schema.String.annotations({ description: 'name of the project' }),\n description: Schema.String,\n website: Schema.String,\n repo: Schema.String,\n status: Schema.String,\n priority: Schema.Number,\n active: Schema.Boolean,\n org: Schema.optional(Ref(organization)),\n }).pipe(EchoObject({ typename: TestSchemaType.project, version: '0.1.0' }));\n\n return {\n [TestSchemaType.document]: document,\n [TestSchemaType.organization]: organization,\n [TestSchemaType.contact]: contact,\n [TestSchemaType.project]: project,\n };\n};\n\nconst testObjectGenerators: TestGeneratorMap<TestSchemaType> = {\n [TestSchemaType.document]: async () => ({\n title: faker.lorem.sentence(3),\n content: faker.lorem.sentences({ min: 1, max: faker.number.int({ min: 1, max: 3 }) }),\n }),\n\n [TestSchemaType.organization]: async () => ({\n name: faker.company.name(),\n website: faker.datatype.boolean({ probability: 0.3 }) ? faker.internet.url() : undefined,\n description: faker.lorem.sentences(),\n }),\n\n [TestSchemaType.contact]: async (provider) => {\n const organizations = await provider?.(TestSchemaType.organization);\n const location = faker.datatype.boolean() ? faker.geo.airport() : {};\n\n return {\n name: faker.person.fullName(),\n email: faker.datatype.boolean({ probability: 0.5 }) ? faker.internet.email() : undefined,\n org:\n organizations?.length && faker.datatype.boolean({ probability: 0.8 })\n ? Ref.make(faker.helpers.arrayElement(organizations))\n : undefined,\n ...location,\n };\n },\n\n [TestSchemaType.project]: async () => ({\n name: faker.commerce.productName(),\n repo: faker.internet.url(),\n status: faker.helpers.arrayElement(Status),\n description: faker.lorem.sentences(),\n website: faker.internet.url(),\n priority: faker.helpers.arrayElement(Priority),\n active: faker.datatype.boolean(),\n }),\n};\n\nconst testObjectMutators: TestMutationsMap<TestSchemaType> = {\n [TestSchemaType.document]: async (object, params) => {\n const accessor = createDocAccessor(object, ['content']);\n for (let i = 0; i < params.count; i++) {\n const length = object.content?.content?.length ?? 0;\n accessor.handle.change((doc) => {\n A.splice(\n doc,\n accessor.path.slice(),\n 0,\n params.maxContentLength >= length ? 0 : params.mutationSize,\n randomText(params.mutationSize),\n );\n });\n }\n },\n [TestSchemaType.organization]: async () => {\n throw new Error('Method not implemented.');\n },\n [TestSchemaType.contact]: async () => {\n throw new Error('Method not implemented.');\n },\n [TestSchemaType.project]: async () => {\n throw new Error('Method not implemented.');\n },\n};\n\n/**\n * @deprecated Use generators in schema package.\n */\nexport const createTestObjectGenerator = () => new TestObjectGenerator(testSchemas(), testObjectGenerators);\n\n/**\n * @deprecated Use generators in schema package.\n */\nexport const createSpaceObjectGenerator = (space: Space) =>\n new SpaceObjectGenerator(space, testSchemas(), testObjectGenerators, testObjectMutators);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport type * as Schema from 'effect/Schema';\n\nimport { Filter, type Space } from '@dxos/client/echo';\nimport { Obj } from '@dxos/echo';\nimport { EchoSchema, getSchema, getTypeAnnotation } from '@dxos/echo/internal';\nimport { type AnyLiveObject } from '@dxos/echo-db';\nimport { invariant } from '@dxos/invariant';\nimport { type Live, isLiveObject, live } from '@dxos/live-object';\nimport { faker } from '@dxos/random';\nimport { entries, range } from '@dxos/util';\n\nimport { type TestSchemaType } from './data';\nimport {\n type MutationsProviderParams,\n type TestGeneratorMap,\n type TestMutationsMap,\n type TestObjectProvider,\n type TestSchemaMap,\n} from './types';\n\n/**\n * Typed object generator.\n * @deprecated\n */\nexport class TestObjectGenerator<T extends string = TestSchemaType> {\n // prettier-ignore\n constructor(\n protected readonly _schemas: TestSchemaMap<T>,\n private readonly _generators: TestGeneratorMap<T>,\n private readonly _provider?: TestObjectProvider<T>,\n ) {}\n\n get schemas(): (EchoSchema | Schema.Schema.AnyNoContext)[] {\n return Object.values(this._schemas);\n }\n\n getSchema(type: T): EchoSchema | Schema.Schema.AnyNoContext | undefined {\n return this.schemas.find((schema) => getTypeAnnotation(schema)!.typename === type);\n }\n\n protected setSchema(type: T, schema: EchoSchema | Schema.Schema.AnyNoContext): void {\n this._schemas[type] = schema;\n }\n\n async createObject({ types }: { types?: T[] } = {}): Promise<Live<any>> {\n const type = faker.helpers.arrayElement(types ?? (Object.keys(this._schemas) as T[]));\n const data = await this._generators[type](this._provider);\n if (isLiveObject(data)) {\n return data;\n }\n\n const schema = this.getSchema(type);\n return schema ? Obj.make(schema, data) : live(data);\n }\n\n // TODO(burdon): Based on dependencies (e.g., organization before contact).\n async createObjects(map: Partial<Record<T, number>>) {\n const results: Live<any>[] = [];\n for (const [type, count] of entries(map)) {\n results.push(...(await Promise.all(range(count ?? 0, () => this.createObject({ types: [type as T] })))));\n }\n\n const tasks = Object.entries<number>(map as any)\n .map(([type, count]) => {\n return range(count, () => this.createObject({ types: [type as T] }));\n })\n .flatMap((t) => t);\n\n return Promise.all(tasks);\n }\n}\n\n/**\n * Typed object generator for a space.\n */\nexport class SpaceObjectGenerator<T extends string> extends TestObjectGenerator<T> {\n constructor(\n private readonly _space: Space,\n schemaMap: TestSchemaMap<T>,\n generators: TestGeneratorMap<T>,\n private readonly _mutations?: TestMutationsMap<T>,\n ) {\n super(schemaMap, generators, async (type: T) => {\n const schema = this.getSchema(type);\n const { objects } = await this._space.db.query(schema ? Filter.type(schema) : Filter.nothing()).run();\n return objects;\n });\n }\n\n async addSchemas() {\n const result: (EchoSchema | Schema.Schema.AnyNoContext)[] = [];\n for (const [typename, schema] of Object.entries(this._schemas)) {\n const echoSchema = await this._maybeRegisterSchema(typename, schema as EchoSchema | Schema.Schema.AnyNoContext);\n this.setSchema(typename as T, echoSchema);\n result.push(echoSchema);\n }\n\n return result;\n }\n\n override async createObject({ types }: { types?: T[] } = {}): Promise<AnyLiveObject<any>> {\n return this._space.db.add(await super.createObject({ types }));\n }\n\n private async _maybeRegisterSchema(\n typename: string,\n schema: EchoSchema | Schema.Schema.AnyNoContext,\n ): Promise<EchoSchema | Schema.Schema.AnyNoContext> {\n if (schema instanceof EchoSchema) {\n const existingSchema = this._space.db.schemaRegistry.getSchema(typename);\n if (existingSchema != null) {\n return existingSchema;\n }\n const [registeredSchema] = await this._space.db.schemaRegistry.register([schema]);\n return registeredSchema;\n } else {\n const existingSchema = this._space.db.graph.schemaRegistry.getSchema(typename);\n if (existingSchema != null) {\n return existingSchema;\n }\n this._space.db.graph.schemaRegistry.addSchema([schema]);\n return schema;\n }\n }\n\n async mutateObject(object: AnyLiveObject<any>, params: MutationsProviderParams): Promise<void> {\n invariant(this._mutations, 'Mutations not defined.');\n const type = getTypeAnnotation(getSchema(object)!)!.typename as T;\n invariant(type && this._mutations?.[type], 'Invalid object type.');\n\n await this._mutations![type](object, params);\n }\n\n async mutateObjects(objects: AnyLiveObject<any>[], params: MutationsProviderParams): Promise<void> {\n for (const object of objects) {\n await this.mutateObject(object, params);\n }\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const randomText = (length: number) => {\n let result = '';\n const characters = 'abcdefghijklmnopqrstuvwxyz';\n const charactersLength = characters.length;\n for (let index = 0; index < length; index++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n\n return result;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["next", "A", "Schema", "createDocAccessor", "EchoObject", "Ref", "faker", "Filter", "Obj", "EchoSchema", "getSchema", "getTypeAnnotation", "invariant", "isLiveObject", "live", "faker", "entries", "range", "TestObjectGenerator", "_schemas", "_generators", "_provider", "schemas", "Object", "values", "type", "find", "schema", "typename", "setSchema", "createObject", "types", "helpers", "arrayElement", "keys", "data", "make", "createObjects", "map", "results", "count", "push", "Promise", "all", "tasks", "flatMap", "t", "SpaceObjectGenerator", "_space", "schemaMap", "generators", "_mutations", "objects", "db", "query", "nothing", "run", "addSchemas", "result", "echoSchema", "_maybeRegisterSchema", "add", "existingSchema", "schemaRegistry", "registeredSchema", "register", "graph", "addSchema", "mutateObject", "object", "params", "mutateObjects", "randomText", "length", "result", "characters", "charactersLength", "index", "charAt", "Math", "floor", "random", "Status", "Priority", "TestSchemaType", "testSchemas", "document", "Struct", "title", "String", "annotations", "description", "content", "pipe", "EchoObject", "typename", "version", "organization", "name", "website", "optional", "contact", "email", "org", "Ref", "lat", "Number", "lng", "project", "repo", "status", "priority", "active", "Boolean", "testObjectGenerators", "faker", "lorem", "sentence", "sentences", "min", "max", "number", "int", "company", "datatype", "boolean", "probability", "internet", "url", "undefined", "provider", "organizations", "location", "geo", "airport", "person", "fullName", "length", "make", "helpers", "arrayElement", "commerce", "productName", "testObjectMutators", "object", "params", "accessor", "createDocAccessor", "i", "count", "handle", "change", "doc", "A", "splice", "path", "slice", "maxContentLength", "mutationSize", "randomText", "Error", "createTestObjectGenerator", "TestObjectGenerator", "createSpaceObjectGenerator", "space", "SpaceObjectGenerator"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"src/generator.ts":{"bytes":17076,"imports":[{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/util.ts":{"bytes":1567,"imports":[],"format":"esm"},"src/data.ts":{"bytes":19471,"imports":[{"path":"@automerge/automerge","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"src/generator.ts","kind":"import-statement","original":"./generator"},{"path":"src/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"src/index.ts":{"bytes":661,"imports":[{"path":"src/data.ts","kind":"import-statement","original":"./data"},{"path":"src/generator.ts","kind":"import-statement","original":"./generator"},{"path":"src/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18999},"dist/lib/browser/index.mjs":{"imports":[{"path":"@automerge/automerge","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["Priority","SpaceObjectGenerator","Status","TestObjectGenerator","TestSchemaType","createSpaceObjectGenerator","createTestObjectGenerator","randomText"],"entryPoint":"src/index.ts","inputs":{"src/data.ts":{"bytesInOutput":4811},"src/generator.ts":{"bytesInOutput":4431},"src/util.ts":{"bytesInOutput":299},"src/index.ts":{"bytesInOutput":0}},"bytes":9849}}}
1
+ {"inputs":{"src/generator.ts":{"bytes":16771,"imports":[{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/util.ts":{"bytes":1567,"imports":[],"format":"esm"},"src/data.ts":{"bytes":19484,"imports":[{"path":"@automerge/automerge","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"src/generator.ts","kind":"import-statement","original":"./generator"},{"path":"src/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"src/index.ts":{"bytes":661,"imports":[{"path":"src/data.ts","kind":"import-statement","original":"./data"},{"path":"src/generator.ts","kind":"import-statement","original":"./generator"},{"path":"src/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18883},"dist/lib/browser/index.mjs":{"imports":[{"path":"@automerge/automerge","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["Priority","SpaceObjectGenerator","Status","TestObjectGenerator","TestSchemaType","createSpaceObjectGenerator","createTestObjectGenerator","randomText"],"entryPoint":"src/index.ts","inputs":{"src/data.ts":{"bytesInOutput":4818},"src/generator.ts":{"bytesInOutput":4051},"src/util.ts":{"bytesInOutput":299},"src/index.ts":{"bytesInOutput":0}},"bytes":9476}}}
@@ -2,33 +2,30 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
 
3
3
  // src/data.ts
4
4
  import { next as A } from "@automerge/automerge";
5
- import { Schema } from "effect";
5
+ import * as Schema from "effect/Schema";
6
6
  import { createDocAccessor } from "@dxos/client/echo";
7
- import { EchoObject, Ref } from "@dxos/echo-schema";
7
+ import { EchoObject, Ref } from "@dxos/echo/internal";
8
8
  import { faker as faker2 } from "@dxos/random";
9
9
 
10
10
  // src/generator.ts
11
11
  import { Filter } from "@dxos/client/echo";
12
- import { EchoSchema, getSchema, getTypeAnnotation } from "@dxos/echo-schema";
12
+ import { Obj } from "@dxos/echo";
13
+ import { EchoSchema, getSchema, getTypeAnnotation } from "@dxos/echo/internal";
13
14
  import { invariant } from "@dxos/invariant";
14
15
  import { isLiveObject, live } from "@dxos/live-object";
15
16
  import { faker } from "@dxos/random";
16
17
  import { entries, range } from "@dxos/util";
17
- function _define_property(obj, key, value) {
18
- if (key in obj) {
19
- Object.defineProperty(obj, key, {
20
- value,
21
- enumerable: true,
22
- configurable: true,
23
- writable: true
24
- });
25
- } else {
26
- obj[key] = value;
27
- }
28
- return obj;
29
- }
30
18
  var __dxlog_file = "/__w/dxos/dxos/packages/core/echo/echo-generator/src/generator.ts";
31
19
  var TestObjectGenerator = class {
20
+ _schemas;
21
+ _generators;
22
+ _provider;
23
+ // prettier-ignore
24
+ constructor(_schemas, _generators, _provider) {
25
+ this._schemas = _schemas;
26
+ this._generators = _generators;
27
+ this._provider = _provider;
28
+ }
32
29
  get schemas() {
33
30
  return Object.values(this._schemas);
34
31
  }
@@ -45,7 +42,7 @@ var TestObjectGenerator = class {
45
42
  return data;
46
43
  }
47
44
  const schema = this.getSchema(type);
48
- return schema ? live(schema, data) : live(data);
45
+ return schema ? Obj.make(schema, data) : live(data);
49
46
  }
50
47
  // TODO(burdon): Based on dependencies (e.g., organization before contact).
51
48
  async createObjects(map) {
@@ -66,17 +63,17 @@ var TestObjectGenerator = class {
66
63
  }).flatMap((t) => t);
67
64
  return Promise.all(tasks);
68
65
  }
69
- // prettier-ignore
70
- constructor(_schemas, _generators, _provider) {
71
- _define_property(this, "_schemas", void 0);
72
- _define_property(this, "_generators", void 0);
73
- _define_property(this, "_provider", void 0);
74
- this._schemas = _schemas;
75
- this._generators = _generators;
76
- this._provider = _provider;
77
- }
78
66
  };
79
67
  var SpaceObjectGenerator = class extends TestObjectGenerator {
68
+ _space;
69
+ _mutations;
70
+ constructor(_space, schemaMap, generators, _mutations) {
71
+ super(schemaMap, generators, async (type) => {
72
+ const schema = this.getSchema(type);
73
+ const { objects } = await this._space.db.query(schema ? Filter.type(schema) : Filter.nothing()).run();
74
+ return objects;
75
+ }), this._space = _space, this._mutations = _mutations;
76
+ }
80
77
  async addSchemas() {
81
78
  const result = [];
82
79
  for (const [typename, schema] of Object.entries(this._schemas)) {
@@ -115,7 +112,7 @@ var SpaceObjectGenerator = class extends TestObjectGenerator {
115
112
  async mutateObject(object, params) {
116
113
  invariant(this._mutations, "Mutations not defined.", {
117
114
  F: __dxlog_file,
118
- L: 130,
115
+ L: 131,
119
116
  S: this,
120
117
  A: [
121
118
  "this._mutations",
@@ -125,7 +122,7 @@ var SpaceObjectGenerator = class extends TestObjectGenerator {
125
122
  const type = getTypeAnnotation(getSchema(object)).typename;
126
123
  invariant(type && this._mutations?.[type], "Invalid object type.", {
127
124
  F: __dxlog_file,
128
- L: 132,
125
+ L: 133,
129
126
  S: this,
130
127
  A: [
131
128
  "type && this._mutations?.[type]",
@@ -139,13 +136,6 @@ var SpaceObjectGenerator = class extends TestObjectGenerator {
139
136
  await this.mutateObject(object, params);
140
137
  }
141
138
  }
142
- constructor(_space, schemaMap, generators, _mutations) {
143
- super(schemaMap, generators, async (type) => {
144
- const schema = this.getSchema(type);
145
- const { objects } = await this._space.db.query(schema ? Filter.type(schema) : Filter.nothing()).run();
146
- return objects;
147
- }), _define_property(this, "_space", void 0), _define_property(this, "_mutations", void 0), this._space = _space, this._mutations = _mutations;
148
- }
149
139
  };
150
140
 
151
141
  // src/util.ts
@@ -172,13 +162,13 @@ var Priority = [
172
162
  4,
173
163
  5
174
164
  ];
175
- var TestSchemaType = /* @__PURE__ */ function(TestSchemaType2) {
165
+ var TestSchemaType = /* @__PURE__ */ (function(TestSchemaType2) {
176
166
  TestSchemaType2["document"] = "example.com/type/Document";
177
167
  TestSchemaType2["organization"] = "example.com/type/Organization";
178
- TestSchemaType2["contact"] = "example.com/type/Contact";
168
+ TestSchemaType2["contact"] = "example.com/type/Person";
179
169
  TestSchemaType2["project"] = "example.com/type/Project";
180
170
  return TestSchemaType2;
181
- }({});
171
+ })({});
182
172
  var testSchemas = () => {
183
173
  const document = Schema.Struct({
184
174
  title: Schema.String.annotations({
@@ -212,7 +202,7 @@ var testSchemas = () => {
212
202
  lat: Schema.optional(Schema.Number),
213
203
  lng: Schema.optional(Schema.Number)
214
204
  }).pipe(EchoObject({
215
- typename: "example.com/type/Contact",
205
+ typename: "example.com/type/Person",
216
206
  version: "0.1.0"
217
207
  }));
218
208
  const project = Schema.Struct({
@@ -233,7 +223,7 @@ var testSchemas = () => {
233
223
  return {
234
224
  ["example.com/type/Document"]: document,
235
225
  ["example.com/type/Organization"]: organization,
236
- ["example.com/type/Contact"]: contact,
226
+ ["example.com/type/Person"]: contact,
237
227
  ["example.com/type/Project"]: project
238
228
  };
239
229
  };
@@ -255,7 +245,7 @@ var testObjectGenerators = {
255
245
  }) ? faker2.internet.url() : void 0,
256
246
  description: faker2.lorem.sentences()
257
247
  }),
258
- ["example.com/type/Contact"]: async (provider) => {
248
+ ["example.com/type/Person"]: async (provider) => {
259
249
  const organizations = await provider?.("example.com/type/Organization");
260
250
  const location = faker2.datatype.boolean() ? faker2.geo.airport() : {};
261
251
  return {
@@ -294,7 +284,7 @@ var testObjectMutators = {
294
284
  ["example.com/type/Organization"]: async () => {
295
285
  throw new Error("Method not implemented.");
296
286
  },
297
- ["example.com/type/Contact"]: async () => {
287
+ ["example.com/type/Person"]: async () => {
298
288
  throw new Error("Method not implemented.");
299
289
  },
300
290
  ["example.com/type/Project"]: async () => {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/data.ts", "../../../src/generator.ts", "../../../src/util.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { next as A } from '@automerge/automerge';\nimport { Schema } from 'effect';\n\nimport { type Space, createDocAccessor } from '@dxos/client/echo';\nimport { EchoObject, Ref } from '@dxos/echo-schema';\nimport { faker } from '@dxos/random';\n\nimport { SpaceObjectGenerator, TestObjectGenerator } from './generator';\nimport { type TestGeneratorMap, type TestMutationsMap, type TestSchemaMap } from './types';\nimport { randomText } from './util';\n\n// TODO(burdon): Reconcile with @dxos/plugin-debug, @dxos/aurora/testing.\n// TODO(burdon): Bug when adding stale objects to space (e.g., static objects already added in previous story invocation).\n\n// TODO(burdon): Handle restricted values.\nexport const Status = ['pending', 'active', 'done'];\nexport const Priority = [1, 2, 3, 4, 5];\n\n/**\n * @deprecated\n */\nexport enum TestSchemaType {\n document = 'example.com/type/Document',\n organization = 'example.com/type/Organization',\n contact = 'example.com/type/Contact',\n project = 'example.com/type/Project',\n}\n\n/**\n * @deprecated\n */\nconst testSchemas = (): TestSchemaMap<TestSchemaType> => {\n const document = Schema.Struct({\n title: Schema.String.annotations({ description: 'title of the document' }),\n content: Schema.String,\n }).pipe(EchoObject({ typename: TestSchemaType.document, version: '0.1.0' }));\n\n const organization = Schema.Struct({\n name: Schema.String.annotations({ description: 'name of the company or organization' }),\n website: Schema.optional(Schema.String.annotations({ description: 'public website URL' })),\n description: Schema.String.annotations({ description: 'short summary of the company' }),\n }).pipe(EchoObject({ typename: TestSchemaType.organization, version: '0.1.0' }));\n\n const contact = Schema.Struct({\n name: Schema.String.annotations({ description: 'name of the person' }),\n email: Schema.optional(Schema.String),\n org: Schema.optional(Ref(organization)),\n lat: Schema.optional(Schema.Number),\n lng: Schema.optional(Schema.Number),\n }).pipe(EchoObject({ typename: TestSchemaType.contact, version: '0.1.0' }));\n\n const project = Schema.Struct({\n name: Schema.String.annotations({ description: 'name of the project' }),\n description: Schema.String,\n website: Schema.String,\n repo: Schema.String,\n status: Schema.String,\n priority: Schema.Number,\n active: Schema.Boolean,\n org: Schema.optional(Ref(organization)),\n }).pipe(EchoObject({ typename: TestSchemaType.project, version: '0.1.0' }));\n\n return {\n [TestSchemaType.document]: document,\n [TestSchemaType.organization]: organization,\n [TestSchemaType.contact]: contact,\n [TestSchemaType.project]: project,\n };\n};\n\nconst testObjectGenerators: TestGeneratorMap<TestSchemaType> = {\n [TestSchemaType.document]: async () => ({\n title: faker.lorem.sentence(3),\n content: faker.lorem.sentences({ min: 1, max: faker.number.int({ min: 1, max: 3 }) }),\n }),\n\n [TestSchemaType.organization]: async () => ({\n name: faker.company.name(),\n website: faker.datatype.boolean({ probability: 0.3 }) ? faker.internet.url() : undefined,\n description: faker.lorem.sentences(),\n }),\n\n [TestSchemaType.contact]: async (provider) => {\n const organizations = await provider?.(TestSchemaType.organization);\n const location = faker.datatype.boolean() ? faker.geo.airport() : {};\n\n return {\n name: faker.person.fullName(),\n email: faker.datatype.boolean({ probability: 0.5 }) ? faker.internet.email() : undefined,\n org:\n organizations?.length && faker.datatype.boolean({ probability: 0.8 })\n ? Ref.make(faker.helpers.arrayElement(organizations))\n : undefined,\n ...location,\n };\n },\n\n [TestSchemaType.project]: async () => ({\n name: faker.commerce.productName(),\n repo: faker.internet.url(),\n status: faker.helpers.arrayElement(Status),\n description: faker.lorem.sentences(),\n website: faker.internet.url(),\n priority: faker.helpers.arrayElement(Priority),\n active: faker.datatype.boolean(),\n }),\n};\n\nconst testObjectMutators: TestMutationsMap<TestSchemaType> = {\n [TestSchemaType.document]: async (object, params) => {\n const accessor = createDocAccessor(object, ['content']);\n for (let i = 0; i < params.count; i++) {\n const length = object.content?.content?.length ?? 0;\n accessor.handle.change((doc) => {\n A.splice(\n doc,\n accessor.path.slice(),\n 0,\n params.maxContentLength >= length ? 0 : params.mutationSize,\n randomText(params.mutationSize),\n );\n });\n }\n },\n [TestSchemaType.organization]: async () => {\n throw new Error('Method not implemented.');\n },\n [TestSchemaType.contact]: async () => {\n throw new Error('Method not implemented.');\n },\n [TestSchemaType.project]: async () => {\n throw new Error('Method not implemented.');\n },\n};\n\n/**\n * @deprecated Use generators in schema package.\n */\nexport const createTestObjectGenerator = () => new TestObjectGenerator(testSchemas(), testObjectGenerators);\n\n/**\n * @deprecated Use generators in schema package.\n */\nexport const createSpaceObjectGenerator = (space: Space) =>\n new SpaceObjectGenerator(space, testSchemas(), testObjectGenerators, testObjectMutators);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Schema } from 'effect';\n\nimport { Filter, type Space } from '@dxos/client/echo';\nimport { type AnyLiveObject } from '@dxos/echo-db';\nimport { EchoSchema, getSchema, getTypeAnnotation } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { type Live, isLiveObject, live } from '@dxos/live-object';\nimport { faker } from '@dxos/random';\nimport { entries, range } from '@dxos/util';\n\nimport { type TestSchemaType } from './data';\nimport {\n type MutationsProviderParams,\n type TestGeneratorMap,\n type TestMutationsMap,\n type TestObjectProvider,\n type TestSchemaMap,\n} from './types';\n\n/**\n * Typed object generator.\n * @deprecated\n */\nexport class TestObjectGenerator<T extends string = TestSchemaType> {\n // prettier-ignore\n constructor(\n protected readonly _schemas: TestSchemaMap<T>,\n private readonly _generators: TestGeneratorMap<T>,\n private readonly _provider?: TestObjectProvider<T>,\n ) {}\n\n get schemas(): (EchoSchema | Schema.Schema.AnyNoContext)[] {\n return Object.values(this._schemas);\n }\n\n getSchema(type: T): EchoSchema | Schema.Schema.AnyNoContext | undefined {\n return this.schemas.find((schema) => getTypeAnnotation(schema)!.typename === type);\n }\n\n protected setSchema(type: T, schema: EchoSchema | Schema.Schema.AnyNoContext): void {\n this._schemas[type] = schema;\n }\n\n async createObject({ types }: { types?: T[] } = {}): Promise<Live<any>> {\n const type = faker.helpers.arrayElement(types ?? (Object.keys(this._schemas) as T[]));\n const data = await this._generators[type](this._provider);\n if (isLiveObject(data)) {\n return data;\n }\n\n const schema = this.getSchema(type);\n return schema ? live(schema, data) : live(data);\n }\n\n // TODO(burdon): Based on dependencies (e.g., organization before contact).\n async createObjects(map: Partial<Record<T, number>>) {\n const results: Live<any>[] = [];\n for (const [type, count] of entries(map)) {\n results.push(...(await Promise.all(range(count ?? 0, () => this.createObject({ types: [type as T] })))));\n }\n\n const tasks = Object.entries<number>(map as any)\n .map(([type, count]) => {\n return range(count, () => this.createObject({ types: [type as T] }));\n })\n .flatMap((t) => t);\n\n return Promise.all(tasks);\n }\n}\n\n/**\n * Typed object generator for a space.\n */\nexport class SpaceObjectGenerator<T extends string> extends TestObjectGenerator<T> {\n constructor(\n private readonly _space: Space,\n schemaMap: TestSchemaMap<T>,\n generators: TestGeneratorMap<T>,\n private readonly _mutations?: TestMutationsMap<T>,\n ) {\n super(schemaMap, generators, async (type: T) => {\n const schema = this.getSchema(type);\n const { objects } = await this._space.db.query(schema ? Filter.type(schema) : Filter.nothing()).run();\n return objects;\n });\n }\n\n async addSchemas() {\n const result: (EchoSchema | Schema.Schema.AnyNoContext)[] = [];\n for (const [typename, schema] of Object.entries(this._schemas)) {\n const echoSchema = await this._maybeRegisterSchema(typename, schema as EchoSchema | Schema.Schema.AnyNoContext);\n this.setSchema(typename as T, echoSchema);\n result.push(echoSchema);\n }\n\n return result;\n }\n\n override async createObject({ types }: { types?: T[] } = {}): Promise<AnyLiveObject<any>> {\n return this._space.db.add(await super.createObject({ types }));\n }\n\n private async _maybeRegisterSchema(\n typename: string,\n schema: EchoSchema | Schema.Schema.AnyNoContext,\n ): Promise<EchoSchema | Schema.Schema.AnyNoContext> {\n if (schema instanceof EchoSchema) {\n const existingSchema = this._space.db.schemaRegistry.getSchema(typename);\n if (existingSchema != null) {\n return existingSchema;\n }\n const [registeredSchema] = await this._space.db.schemaRegistry.register([schema]);\n return registeredSchema;\n } else {\n const existingSchema = this._space.db.graph.schemaRegistry.getSchema(typename);\n if (existingSchema != null) {\n return existingSchema;\n }\n this._space.db.graph.schemaRegistry.addSchema([schema]);\n return schema;\n }\n }\n\n async mutateObject(object: AnyLiveObject<any>, params: MutationsProviderParams): Promise<void> {\n invariant(this._mutations, 'Mutations not defined.');\n const type = getTypeAnnotation(getSchema(object)!)!.typename as T;\n invariant(type && this._mutations?.[type], 'Invalid object type.');\n\n await this._mutations![type](object, params);\n }\n\n async mutateObjects(objects: AnyLiveObject<any>[], params: MutationsProviderParams): Promise<void> {\n for (const object of objects) {\n await this.mutateObject(object, params);\n }\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const randomText = (length: number) => {\n let result = '';\n const characters = 'abcdefghijklmnopqrstuvwxyz';\n const charactersLength = characters.length;\n for (let index = 0; index < length; index++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n\n return result;\n};\n"],
5
- "mappings": "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",
6
- "names": ["next", "A", "Schema", "createDocAccessor", "EchoObject", "Ref", "faker", "Filter", "EchoSchema", "getSchema", "getTypeAnnotation", "invariant", "isLiveObject", "live", "faker", "entries", "range", "TestObjectGenerator", "schemas", "Object", "values", "_schemas", "type", "find", "schema", "typename", "setSchema", "createObject", "types", "helpers", "arrayElement", "keys", "data", "_generators", "_provider", "createObjects", "map", "results", "count", "push", "Promise", "all", "tasks", "flatMap", "t", "SpaceObjectGenerator", "addSchemas", "result", "echoSchema", "_maybeRegisterSchema", "_space", "db", "add", "existingSchema", "schemaRegistry", "registeredSchema", "register", "graph", "addSchema", "mutateObject", "object", "params", "_mutations", "mutateObjects", "objects", "schemaMap", "generators", "query", "nothing", "run", "randomText", "length", "result", "characters", "charactersLength", "index", "charAt", "Math", "floor", "random", "Status", "Priority", "TestSchemaType", "testSchemas", "document", "Schema", "Struct", "title", "String", "annotations", "description", "content", "pipe", "EchoObject", "typename", "version", "organization", "name", "website", "optional", "contact", "email", "org", "Ref", "lat", "Number", "lng", "project", "repo", "status", "priority", "active", "Boolean", "testObjectGenerators", "faker", "lorem", "sentence", "sentences", "min", "max", "number", "int", "company", "datatype", "boolean", "probability", "internet", "url", "undefined", "provider", "organizations", "location", "geo", "airport", "person", "fullName", "length", "make", "helpers", "arrayElement", "commerce", "productName", "testObjectMutators", "object", "params", "accessor", "createDocAccessor", "i", "count", "handle", "change", "doc", "A", "splice", "path", "slice", "maxContentLength", "mutationSize", "randomText", "Error", "createTestObjectGenerator", "TestObjectGenerator", "createSpaceObjectGenerator", "space", "SpaceObjectGenerator"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { next as A } from '@automerge/automerge';\nimport * as Schema from 'effect/Schema';\n\nimport { type Space, createDocAccessor } from '@dxos/client/echo';\nimport { EchoObject, Ref } from '@dxos/echo/internal';\nimport { faker } from '@dxos/random';\n\nimport { SpaceObjectGenerator, TestObjectGenerator } from './generator';\nimport { type TestGeneratorMap, type TestMutationsMap, type TestSchemaMap } from './types';\nimport { randomText } from './util';\n\n// TODO(burdon): Reconcile with @dxos/plugin-debug, @dxos/aurora/testing.\n// TODO(burdon): Bug when adding stale objects to space (e.g., static objects already added in previous story invocation).\n\n// TODO(burdon): Handle restricted values.\nexport const Status = ['pending', 'active', 'done'];\nexport const Priority = [1, 2, 3, 4, 5];\n\n/**\n * @deprecated\n */\nexport enum TestSchemaType {\n document = 'example.com/type/Document',\n organization = 'example.com/type/Organization',\n contact = 'example.com/type/Person',\n project = 'example.com/type/Project',\n}\n\n/**\n * @deprecated\n */\nconst testSchemas = (): TestSchemaMap<TestSchemaType> => {\n const document = Schema.Struct({\n title: Schema.String.annotations({ description: 'title of the document' }),\n content: Schema.String,\n }).pipe(EchoObject({ typename: TestSchemaType.document, version: '0.1.0' }));\n\n const organization = Schema.Struct({\n name: Schema.String.annotations({ description: 'name of the company or organization' }),\n website: Schema.optional(Schema.String.annotations({ description: 'public website URL' })),\n description: Schema.String.annotations({ description: 'short summary of the company' }),\n }).pipe(EchoObject({ typename: TestSchemaType.organization, version: '0.1.0' }));\n\n const contact = Schema.Struct({\n name: Schema.String.annotations({ description: 'name of the person' }),\n email: Schema.optional(Schema.String),\n org: Schema.optional(Ref(organization)),\n lat: Schema.optional(Schema.Number),\n lng: Schema.optional(Schema.Number),\n }).pipe(EchoObject({ typename: TestSchemaType.contact, version: '0.1.0' }));\n\n const project = Schema.Struct({\n name: Schema.String.annotations({ description: 'name of the project' }),\n description: Schema.String,\n website: Schema.String,\n repo: Schema.String,\n status: Schema.String,\n priority: Schema.Number,\n active: Schema.Boolean,\n org: Schema.optional(Ref(organization)),\n }).pipe(EchoObject({ typename: TestSchemaType.project, version: '0.1.0' }));\n\n return {\n [TestSchemaType.document]: document,\n [TestSchemaType.organization]: organization,\n [TestSchemaType.contact]: contact,\n [TestSchemaType.project]: project,\n };\n};\n\nconst testObjectGenerators: TestGeneratorMap<TestSchemaType> = {\n [TestSchemaType.document]: async () => ({\n title: faker.lorem.sentence(3),\n content: faker.lorem.sentences({ min: 1, max: faker.number.int({ min: 1, max: 3 }) }),\n }),\n\n [TestSchemaType.organization]: async () => ({\n name: faker.company.name(),\n website: faker.datatype.boolean({ probability: 0.3 }) ? faker.internet.url() : undefined,\n description: faker.lorem.sentences(),\n }),\n\n [TestSchemaType.contact]: async (provider) => {\n const organizations = await provider?.(TestSchemaType.organization);\n const location = faker.datatype.boolean() ? faker.geo.airport() : {};\n\n return {\n name: faker.person.fullName(),\n email: faker.datatype.boolean({ probability: 0.5 }) ? faker.internet.email() : undefined,\n org:\n organizations?.length && faker.datatype.boolean({ probability: 0.8 })\n ? Ref.make(faker.helpers.arrayElement(organizations))\n : undefined,\n ...location,\n };\n },\n\n [TestSchemaType.project]: async () => ({\n name: faker.commerce.productName(),\n repo: faker.internet.url(),\n status: faker.helpers.arrayElement(Status),\n description: faker.lorem.sentences(),\n website: faker.internet.url(),\n priority: faker.helpers.arrayElement(Priority),\n active: faker.datatype.boolean(),\n }),\n};\n\nconst testObjectMutators: TestMutationsMap<TestSchemaType> = {\n [TestSchemaType.document]: async (object, params) => {\n const accessor = createDocAccessor(object, ['content']);\n for (let i = 0; i < params.count; i++) {\n const length = object.content?.content?.length ?? 0;\n accessor.handle.change((doc) => {\n A.splice(\n doc,\n accessor.path.slice(),\n 0,\n params.maxContentLength >= length ? 0 : params.mutationSize,\n randomText(params.mutationSize),\n );\n });\n }\n },\n [TestSchemaType.organization]: async () => {\n throw new Error('Method not implemented.');\n },\n [TestSchemaType.contact]: async () => {\n throw new Error('Method not implemented.');\n },\n [TestSchemaType.project]: async () => {\n throw new Error('Method not implemented.');\n },\n};\n\n/**\n * @deprecated Use generators in schema package.\n */\nexport const createTestObjectGenerator = () => new TestObjectGenerator(testSchemas(), testObjectGenerators);\n\n/**\n * @deprecated Use generators in schema package.\n */\nexport const createSpaceObjectGenerator = (space: Space) =>\n new SpaceObjectGenerator(space, testSchemas(), testObjectGenerators, testObjectMutators);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport type * as Schema from 'effect/Schema';\n\nimport { Filter, type Space } from '@dxos/client/echo';\nimport { Obj } from '@dxos/echo';\nimport { EchoSchema, getSchema, getTypeAnnotation } from '@dxos/echo/internal';\nimport { type AnyLiveObject } from '@dxos/echo-db';\nimport { invariant } from '@dxos/invariant';\nimport { type Live, isLiveObject, live } from '@dxos/live-object';\nimport { faker } from '@dxos/random';\nimport { entries, range } from '@dxos/util';\n\nimport { type TestSchemaType } from './data';\nimport {\n type MutationsProviderParams,\n type TestGeneratorMap,\n type TestMutationsMap,\n type TestObjectProvider,\n type TestSchemaMap,\n} from './types';\n\n/**\n * Typed object generator.\n * @deprecated\n */\nexport class TestObjectGenerator<T extends string = TestSchemaType> {\n // prettier-ignore\n constructor(\n protected readonly _schemas: TestSchemaMap<T>,\n private readonly _generators: TestGeneratorMap<T>,\n private readonly _provider?: TestObjectProvider<T>,\n ) {}\n\n get schemas(): (EchoSchema | Schema.Schema.AnyNoContext)[] {\n return Object.values(this._schemas);\n }\n\n getSchema(type: T): EchoSchema | Schema.Schema.AnyNoContext | undefined {\n return this.schemas.find((schema) => getTypeAnnotation(schema)!.typename === type);\n }\n\n protected setSchema(type: T, schema: EchoSchema | Schema.Schema.AnyNoContext): void {\n this._schemas[type] = schema;\n }\n\n async createObject({ types }: { types?: T[] } = {}): Promise<Live<any>> {\n const type = faker.helpers.arrayElement(types ?? (Object.keys(this._schemas) as T[]));\n const data = await this._generators[type](this._provider);\n if (isLiveObject(data)) {\n return data;\n }\n\n const schema = this.getSchema(type);\n return schema ? Obj.make(schema, data) : live(data);\n }\n\n // TODO(burdon): Based on dependencies (e.g., organization before contact).\n async createObjects(map: Partial<Record<T, number>>) {\n const results: Live<any>[] = [];\n for (const [type, count] of entries(map)) {\n results.push(...(await Promise.all(range(count ?? 0, () => this.createObject({ types: [type as T] })))));\n }\n\n const tasks = Object.entries<number>(map as any)\n .map(([type, count]) => {\n return range(count, () => this.createObject({ types: [type as T] }));\n })\n .flatMap((t) => t);\n\n return Promise.all(tasks);\n }\n}\n\n/**\n * Typed object generator for a space.\n */\nexport class SpaceObjectGenerator<T extends string> extends TestObjectGenerator<T> {\n constructor(\n private readonly _space: Space,\n schemaMap: TestSchemaMap<T>,\n generators: TestGeneratorMap<T>,\n private readonly _mutations?: TestMutationsMap<T>,\n ) {\n super(schemaMap, generators, async (type: T) => {\n const schema = this.getSchema(type);\n const { objects } = await this._space.db.query(schema ? Filter.type(schema) : Filter.nothing()).run();\n return objects;\n });\n }\n\n async addSchemas() {\n const result: (EchoSchema | Schema.Schema.AnyNoContext)[] = [];\n for (const [typename, schema] of Object.entries(this._schemas)) {\n const echoSchema = await this._maybeRegisterSchema(typename, schema as EchoSchema | Schema.Schema.AnyNoContext);\n this.setSchema(typename as T, echoSchema);\n result.push(echoSchema);\n }\n\n return result;\n }\n\n override async createObject({ types }: { types?: T[] } = {}): Promise<AnyLiveObject<any>> {\n return this._space.db.add(await super.createObject({ types }));\n }\n\n private async _maybeRegisterSchema(\n typename: string,\n schema: EchoSchema | Schema.Schema.AnyNoContext,\n ): Promise<EchoSchema | Schema.Schema.AnyNoContext> {\n if (schema instanceof EchoSchema) {\n const existingSchema = this._space.db.schemaRegistry.getSchema(typename);\n if (existingSchema != null) {\n return existingSchema;\n }\n const [registeredSchema] = await this._space.db.schemaRegistry.register([schema]);\n return registeredSchema;\n } else {\n const existingSchema = this._space.db.graph.schemaRegistry.getSchema(typename);\n if (existingSchema != null) {\n return existingSchema;\n }\n this._space.db.graph.schemaRegistry.addSchema([schema]);\n return schema;\n }\n }\n\n async mutateObject(object: AnyLiveObject<any>, params: MutationsProviderParams): Promise<void> {\n invariant(this._mutations, 'Mutations not defined.');\n const type = getTypeAnnotation(getSchema(object)!)!.typename as T;\n invariant(type && this._mutations?.[type], 'Invalid object type.');\n\n await this._mutations![type](object, params);\n }\n\n async mutateObjects(objects: AnyLiveObject<any>[], params: MutationsProviderParams): Promise<void> {\n for (const object of objects) {\n await this.mutateObject(object, params);\n }\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const randomText = (length: number) => {\n let result = '';\n const characters = 'abcdefghijklmnopqrstuvwxyz';\n const charactersLength = characters.length;\n for (let index = 0; index < length; index++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n\n return result;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["next", "A", "Schema", "createDocAccessor", "EchoObject", "Ref", "faker", "Filter", "Obj", "EchoSchema", "getSchema", "getTypeAnnotation", "invariant", "isLiveObject", "live", "faker", "entries", "range", "TestObjectGenerator", "_schemas", "_generators", "_provider", "schemas", "Object", "values", "type", "find", "schema", "typename", "setSchema", "createObject", "types", "helpers", "arrayElement", "keys", "data", "make", "createObjects", "map", "results", "count", "push", "Promise", "all", "tasks", "flatMap", "t", "SpaceObjectGenerator", "_space", "schemaMap", "generators", "_mutations", "objects", "db", "query", "nothing", "run", "addSchemas", "result", "echoSchema", "_maybeRegisterSchema", "add", "existingSchema", "schemaRegistry", "registeredSchema", "register", "graph", "addSchema", "mutateObject", "object", "params", "mutateObjects", "randomText", "length", "result", "characters", "charactersLength", "index", "charAt", "Math", "floor", "random", "Status", "Priority", "TestSchemaType", "testSchemas", "document", "Struct", "title", "String", "annotations", "description", "content", "pipe", "EchoObject", "typename", "version", "organization", "name", "website", "optional", "contact", "email", "org", "Ref", "lat", "Number", "lng", "project", "repo", "status", "priority", "active", "Boolean", "testObjectGenerators", "faker", "lorem", "sentence", "sentences", "min", "max", "number", "int", "company", "datatype", "boolean", "probability", "internet", "url", "undefined", "provider", "organizations", "location", "geo", "airport", "person", "fullName", "length", "make", "helpers", "arrayElement", "commerce", "productName", "testObjectMutators", "object", "params", "accessor", "createDocAccessor", "i", "count", "handle", "change", "doc", "A", "splice", "path", "slice", "maxContentLength", "mutationSize", "randomText", "Error", "createTestObjectGenerator", "TestObjectGenerator", "createSpaceObjectGenerator", "space", "SpaceObjectGenerator"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"src/generator.ts":{"bytes":17076,"imports":[{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/util.ts":{"bytes":1567,"imports":[],"format":"esm"},"src/data.ts":{"bytes":19471,"imports":[{"path":"@automerge/automerge","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"src/generator.ts","kind":"import-statement","original":"./generator"},{"path":"src/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"src/index.ts":{"bytes":661,"imports":[{"path":"src/data.ts","kind":"import-statement","original":"./data"},{"path":"src/generator.ts","kind":"import-statement","original":"./generator"},{"path":"src/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"}},"outputs":{"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18999},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"@automerge/automerge","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["Priority","SpaceObjectGenerator","Status","TestObjectGenerator","TestSchemaType","createSpaceObjectGenerator","createTestObjectGenerator","randomText"],"entryPoint":"src/index.ts","inputs":{"src/data.ts":{"bytesInOutput":4811},"src/generator.ts":{"bytesInOutput":4431},"src/util.ts":{"bytesInOutput":299},"src/index.ts":{"bytesInOutput":0}},"bytes":9908}}}
1
+ {"inputs":{"src/generator.ts":{"bytes":16771,"imports":[{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/util.ts":{"bytes":1567,"imports":[],"format":"esm"},"src/data.ts":{"bytes":19484,"imports":[{"path":"@automerge/automerge","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"src/generator.ts","kind":"import-statement","original":"./generator"},{"path":"src/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"src/index.ts":{"bytes":661,"imports":[{"path":"src/data.ts","kind":"import-statement","original":"./data"},{"path":"src/generator.ts","kind":"import-statement","original":"./generator"},{"path":"src/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"}},"outputs":{"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18883},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"@automerge/automerge","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["Priority","SpaceObjectGenerator","Status","TestObjectGenerator","TestSchemaType","createSpaceObjectGenerator","createTestObjectGenerator","randomText"],"entryPoint":"src/index.ts","inputs":{"src/data.ts":{"bytesInOutput":4818},"src/generator.ts":{"bytesInOutput":4051},"src/util.ts":{"bytesInOutput":299},"src/index.ts":{"bytesInOutput":0}},"bytes":9535}}}
@@ -8,7 +8,7 @@ export declare const Priority: number[];
8
8
  export declare enum TestSchemaType {
9
9
  document = "example.com/type/Document",
10
10
  organization = "example.com/type/Organization",
11
- contact = "example.com/type/Contact",
11
+ contact = "example.com/type/Person",
12
12
  project = "example.com/type/Project"
13
13
  }
14
14
  /**