@dxos/echo-generator 0.8.4-main.c85a9c8dae → 0.8.4-main.cb12b3f963
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/neutral/index.mjs +47 -71
- package/dist/lib/neutral/index.mjs.map +3 -3
- package/dist/lib/neutral/meta.json +1 -1
- package/dist/types/src/data.d.ts +4 -4
- package/dist/types/src/data.d.ts.map +1 -1
- package/dist/types/src/generator.d.ts +1 -1
- package/dist/types/src/generator.d.ts.map +1 -1
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +14 -16
- package/src/data.ts +22 -22
- package/src/generator.test.ts +7 -6
- package/src/generator.ts +2 -2
|
@@ -5,7 +5,7 @@ import { next as A } from "@automerge/automerge";
|
|
|
5
5
|
import * as Schema from "effect/Schema";
|
|
6
6
|
import { Ref, Type } from "@dxos/echo";
|
|
7
7
|
import { createDocAccessor } from "@dxos/echo-db";
|
|
8
|
-
import {
|
|
8
|
+
import { random as random2 } from "@dxos/random";
|
|
9
9
|
|
|
10
10
|
// src/generator.ts
|
|
11
11
|
import { Filter } from "@dxos/client/echo";
|
|
@@ -13,7 +13,7 @@ import { Obj } from "@dxos/echo";
|
|
|
13
13
|
import { EchoSchema, getTypeAnnotation } from "@dxos/echo/internal";
|
|
14
14
|
import { isProxy } from "@dxos/echo/internal";
|
|
15
15
|
import { invariant } from "@dxos/invariant";
|
|
16
|
-
import {
|
|
16
|
+
import { random } from "@dxos/random";
|
|
17
17
|
import { entries, range } from "@dxos/util";
|
|
18
18
|
var __dxlog_file = "/__w/dxos/dxos/packages/core/echo/echo-generator/src/generator.ts";
|
|
19
19
|
var TestObjectGenerator = class {
|
|
@@ -36,21 +36,13 @@ var TestObjectGenerator = class {
|
|
|
36
36
|
this._schemas[type] = schema;
|
|
37
37
|
}
|
|
38
38
|
async createObject({ types } = {}) {
|
|
39
|
-
const type =
|
|
39
|
+
const type = random.helpers.arrayElement(types ?? Object.keys(this._schemas));
|
|
40
40
|
const data = await this._generators[type](this._provider);
|
|
41
41
|
if (isProxy(data)) {
|
|
42
42
|
return data;
|
|
43
43
|
}
|
|
44
44
|
const schema = this.getSchema(type);
|
|
45
|
-
invariant(schema, `Schema is required for type: ${type}. Register a schema for this type.`, {
|
|
46
|
-
F: __dxlog_file,
|
|
47
|
-
L: 54,
|
|
48
|
-
S: this,
|
|
49
|
-
A: [
|
|
50
|
-
"schema",
|
|
51
|
-
"`Schema is required for type: ${type}. Register a schema for this type.`"
|
|
52
|
-
]
|
|
53
|
-
});
|
|
45
|
+
invariant(schema, `Schema is required for type: ${type}. Register a schema for this type.`, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 40, S: this, A: ["schema", "`Schema is required for type: ${type}. Register a schema for this type.`"] });
|
|
54
46
|
return Obj.make(schema, data);
|
|
55
47
|
}
|
|
56
48
|
// TODO(burdon): Based on dependencies (e.g., organization before contact).
|
|
@@ -119,25 +111,9 @@ var SpaceObjectGenerator = class extends TestObjectGenerator {
|
|
|
119
111
|
}
|
|
120
112
|
}
|
|
121
113
|
async mutateObject(object, params) {
|
|
122
|
-
invariant(this._mutations, "Mutations not defined.", {
|
|
123
|
-
F: __dxlog_file,
|
|
124
|
-
L: 130,
|
|
125
|
-
S: this,
|
|
126
|
-
A: [
|
|
127
|
-
"this._mutations",
|
|
128
|
-
"'Mutations not defined.'"
|
|
129
|
-
]
|
|
130
|
-
});
|
|
114
|
+
invariant(this._mutations, "Mutations not defined.", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 111, S: this, A: ["this._mutations", "'Mutations not defined.'"] });
|
|
131
115
|
const type = getTypeAnnotation(Obj.getSchema(object)).typename;
|
|
132
|
-
invariant(type && this._mutations?.[type], "Invalid object type.", {
|
|
133
|
-
F: __dxlog_file,
|
|
134
|
-
L: 132,
|
|
135
|
-
S: this,
|
|
136
|
-
A: [
|
|
137
|
-
"type && this._mutations?.[type]",
|
|
138
|
-
"'Invalid object type.'"
|
|
139
|
-
]
|
|
140
|
-
});
|
|
116
|
+
invariant(type && this._mutations?.[type], "Invalid object type.", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 113, S: this, A: ["type && this._mutations?.[type]", "'Invalid object type.'"] });
|
|
141
117
|
await this._mutations[type](object, params);
|
|
142
118
|
}
|
|
143
119
|
async mutateObjects(objects, params) {
|
|
@@ -172,10 +148,10 @@ var Priority = [
|
|
|
172
148
|
5
|
|
173
149
|
];
|
|
174
150
|
var TestSchemaType = /* @__PURE__ */ (function(TestSchemaType2) {
|
|
175
|
-
TestSchemaType2["document"] = "example.
|
|
176
|
-
TestSchemaType2["organization"] = "example.
|
|
177
|
-
TestSchemaType2["contact"] = "example.
|
|
178
|
-
TestSchemaType2["project"] = "example.
|
|
151
|
+
TestSchemaType2["document"] = "com.example.type.document";
|
|
152
|
+
TestSchemaType2["organization"] = "com.example.type.organization";
|
|
153
|
+
TestSchemaType2["contact"] = "com.example.type.person";
|
|
154
|
+
TestSchemaType2["project"] = "com.example.type.project";
|
|
179
155
|
return TestSchemaType2;
|
|
180
156
|
})({});
|
|
181
157
|
var testSchemas = () => {
|
|
@@ -185,7 +161,7 @@ var testSchemas = () => {
|
|
|
185
161
|
}),
|
|
186
162
|
content: Schema.String
|
|
187
163
|
}).pipe(Type.object({
|
|
188
|
-
typename: "example.
|
|
164
|
+
typename: "com.example.type.document",
|
|
189
165
|
version: "0.1.0"
|
|
190
166
|
}));
|
|
191
167
|
const organization = Schema.Struct({
|
|
@@ -199,7 +175,7 @@ var testSchemas = () => {
|
|
|
199
175
|
description: "short summary of the company"
|
|
200
176
|
})
|
|
201
177
|
}).pipe(Type.object({
|
|
202
|
-
typename: "example.
|
|
178
|
+
typename: "com.example.type.organization",
|
|
203
179
|
version: "0.1.0"
|
|
204
180
|
}));
|
|
205
181
|
const contact = Schema.Struct({
|
|
@@ -211,7 +187,7 @@ var testSchemas = () => {
|
|
|
211
187
|
lat: Schema.optional(Schema.Number),
|
|
212
188
|
lng: Schema.optional(Schema.Number)
|
|
213
189
|
}).pipe(Type.object({
|
|
214
|
-
typename: "example.
|
|
190
|
+
typename: "com.example.type.person",
|
|
215
191
|
version: "0.1.0"
|
|
216
192
|
}));
|
|
217
193
|
const project = Schema.Struct({
|
|
@@ -226,60 +202,60 @@ var testSchemas = () => {
|
|
|
226
202
|
active: Schema.Boolean,
|
|
227
203
|
org: Schema.optional(Ref.Ref(organization))
|
|
228
204
|
}).pipe(Type.object({
|
|
229
|
-
typename: "example.
|
|
205
|
+
typename: "com.example.type.project",
|
|
230
206
|
version: "0.1.0"
|
|
231
207
|
}));
|
|
232
208
|
return {
|
|
233
|
-
["example.
|
|
234
|
-
["example.
|
|
235
|
-
["example.
|
|
236
|
-
["example.
|
|
209
|
+
["com.example.type.document"]: document,
|
|
210
|
+
["com.example.type.organization"]: organization,
|
|
211
|
+
["com.example.type.person"]: contact,
|
|
212
|
+
["com.example.type.project"]: project
|
|
237
213
|
};
|
|
238
214
|
};
|
|
239
215
|
var testObjectGenerators = {
|
|
240
|
-
["example.
|
|
241
|
-
title:
|
|
242
|
-
content:
|
|
216
|
+
["com.example.type.document"]: async () => ({
|
|
217
|
+
title: random2.lorem.sentence(3),
|
|
218
|
+
content: random2.lorem.sentences({
|
|
243
219
|
min: 1,
|
|
244
|
-
max:
|
|
220
|
+
max: random2.number.int({
|
|
245
221
|
min: 1,
|
|
246
222
|
max: 3
|
|
247
223
|
})
|
|
248
224
|
})
|
|
249
225
|
}),
|
|
250
|
-
["example.
|
|
251
|
-
name:
|
|
252
|
-
website:
|
|
226
|
+
["com.example.type.organization"]: async () => ({
|
|
227
|
+
name: random2.company.name(),
|
|
228
|
+
website: random2.datatype.boolean({
|
|
253
229
|
probability: 0.3
|
|
254
|
-
}) ?
|
|
255
|
-
description:
|
|
230
|
+
}) ? random2.internet.url() : void 0,
|
|
231
|
+
description: random2.lorem.sentences()
|
|
256
232
|
}),
|
|
257
|
-
["example.
|
|
258
|
-
const organizations = await provider?.("example.
|
|
259
|
-
const location =
|
|
233
|
+
["com.example.type.person"]: async (provider) => {
|
|
234
|
+
const organizations = await provider?.("com.example.type.organization");
|
|
235
|
+
const location = random2.datatype.boolean() ? random2.geo.airport() : {};
|
|
260
236
|
return {
|
|
261
|
-
name:
|
|
262
|
-
email:
|
|
237
|
+
name: random2.person.fullName(),
|
|
238
|
+
email: random2.datatype.boolean({
|
|
263
239
|
probability: 0.5
|
|
264
|
-
}) ?
|
|
265
|
-
org: organizations?.length &&
|
|
240
|
+
}) ? random2.internet.email() : void 0,
|
|
241
|
+
org: organizations?.length && random2.datatype.boolean({
|
|
266
242
|
probability: 0.8
|
|
267
|
-
}) ? Ref.make(
|
|
243
|
+
}) ? Ref.make(random2.helpers.arrayElement(organizations)) : void 0,
|
|
268
244
|
...location
|
|
269
245
|
};
|
|
270
246
|
},
|
|
271
|
-
["example.
|
|
272
|
-
name:
|
|
273
|
-
repo:
|
|
274
|
-
status:
|
|
275
|
-
description:
|
|
276
|
-
website:
|
|
277
|
-
priority:
|
|
278
|
-
active:
|
|
247
|
+
["com.example.type.project"]: async () => ({
|
|
248
|
+
name: random2.commerce.productName(),
|
|
249
|
+
repo: random2.internet.url(),
|
|
250
|
+
status: random2.helpers.arrayElement(Status),
|
|
251
|
+
description: random2.lorem.sentences(),
|
|
252
|
+
website: random2.internet.url(),
|
|
253
|
+
priority: random2.helpers.arrayElement(Priority),
|
|
254
|
+
active: random2.datatype.boolean()
|
|
279
255
|
})
|
|
280
256
|
};
|
|
281
257
|
var testObjectMutators = {
|
|
282
|
-
["example.
|
|
258
|
+
["com.example.type.document"]: async (object, params) => {
|
|
283
259
|
const accessor = createDocAccessor(object, [
|
|
284
260
|
"content"
|
|
285
261
|
]);
|
|
@@ -290,13 +266,13 @@ var testObjectMutators = {
|
|
|
290
266
|
});
|
|
291
267
|
}
|
|
292
268
|
},
|
|
293
|
-
["example.
|
|
269
|
+
["com.example.type.organization"]: async () => {
|
|
294
270
|
throw new Error("Method not implemented.");
|
|
295
271
|
},
|
|
296
|
-
["example.
|
|
272
|
+
["com.example.type.person"]: async () => {
|
|
297
273
|
throw new Error("Method not implemented.");
|
|
298
274
|
},
|
|
299
|
-
["example.
|
|
275
|
+
["com.example.type.project"]: async () => {
|
|
300
276
|
throw new Error("Method not implemented.");
|
|
301
277
|
}
|
|
302
278
|
};
|
|
@@ -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 * as Schema from 'effect/Schema';\n\nimport { type Space } from '@dxos/client/echo';\nimport { Ref, Type } from '@dxos/echo';\nimport { createDocAccessor } from '@dxos/echo-db';\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(Type.object({ 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(Type.object({ 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.Ref(organization)),\n lat: Schema.optional(Schema.Number),\n lng: Schema.optional(Schema.Number),\n }).pipe(Type.object({ 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.Ref(organization)),\n }).pipe(Type.object({ 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 { Filter, type Space } from '@dxos/client/echo';\nimport { Obj, type Type } from '@dxos/echo';\nimport { EchoSchema, getTypeAnnotation } from '@dxos/echo/internal';\nimport { isProxy } from '@dxos/echo/internal';\nimport { invariant } from '@dxos/invariant';\nimport { faker } from '@dxos/random';\nimport { entries, range } from '@dxos/util';\n\nimport { type TestSchemaType } from './data';\nimport {\n type MutationsProviderProps,\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\t\tprotected readonly _schemas: TestSchemaMap<T>,\n\t\tprivate readonly _generators: TestGeneratorMap<T>,\n\t\tprivate readonly _provider?: TestObjectProvider<T>,\n\t) {}\n\n get schemas(): Type.AnyObj[] {\n return Object.values(this._schemas);\n }\n\n getSchema(type: T): Type.AnyObj | undefined {\n return this.schemas.find((schema) => getTypeAnnotation(schema)!.typename === type);\n }\n\n protected setSchema(type: T, schema: Type.AnyObj): void {\n this._schemas[type] = schema;\n }\n\n async createObject({ types }: { types?: T[] } = {}): Promise<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 (isProxy(data)) {\n return data;\n }\n\n const schema = this.getSchema(type);\n invariant(schema, `Schema is required for type: ${type}. Register a schema for this type.`);\n return Obj.make(schema, 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: 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: Type.AnyObj[] = [];\n for (const [typename, schema] of Object.entries(this._schemas)) {\n const echoSchema = await this._maybeRegisterSchema(typename, schema as Type.AnyObj);\n this.setSchema(typename as T, echoSchema);\n result.push(echoSchema);\n }\n\n return result;\n }\n\n override async createObject({\n types,\n }: {\n types?: T[];\n } = {}): Promise<Obj.Any> {\n return this._space.db.add(await super.createObject({ types }));\n }\n\n private async _maybeRegisterSchema(typename: string, schema: Type.AnyObj): Promise<Type.AnyObj> {\n if (schema instanceof EchoSchema) {\n const existingSchema = this._space.internal.db.schemaRegistry.getSchema(typename);\n if (existingSchema != null) {\n return existingSchema;\n }\n const [registeredSchema] = await this._space.internal.db.schemaRegistry.register([schema]);\n return registeredSchema;\n } else {\n const existingSchema = this._space.internal.db.graph.schemaRegistry.getSchema(typename);\n if (existingSchema != null) {\n return existingSchema;\n }\n await this._space.internal.db.graph.schemaRegistry.register([schema]);\n return schema;\n }\n }\n\n async mutateObject(object: Obj.Any, params: MutationsProviderProps): Promise<void> {\n invariant(this._mutations, 'Mutations not defined.');\n const type = getTypeAnnotation(Obj.getSchema(object)!)!.typename as T;\n invariant(type && this._mutations?.[type], 'Invalid object type.');\n\n await this._mutations;\n }\n\n async mutateObjects(objects: Obj.Any[], params: MutationsProviderProps): 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": ";;;AAIA,SAASA,QAAQC,SAAS;AAC1B,YAAYC,YAAY;AAGxB,SAASC,KAAKC,YAAY;AAC1B,SAASC,yBAAyB;AAClC,SAASC,
|
|
6
|
-
"names": ["next", "A", "Schema", "Ref", "Type", "createDocAccessor", "
|
|
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 } from '@dxos/client/echo';\nimport { Ref, Type } from '@dxos/echo';\nimport { createDocAccessor } from '@dxos/echo-db';\nimport { random } 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 = 'com.example.type.document',\n organization = 'com.example.type.organization',\n contact = 'com.example.type.person',\n project = 'com.example.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(Type.object({ 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(Type.object({ 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.Ref(organization)),\n lat: Schema.optional(Schema.Number),\n lng: Schema.optional(Schema.Number),\n }).pipe(Type.object({ 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.Ref(organization)),\n }).pipe(Type.object({ 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: random.lorem.sentence(3),\n content: random.lorem.sentences({ min: 1, max: random.number.int({ min: 1, max: 3 }) }),\n }),\n\n [TestSchemaType.organization]: async () => ({\n name: random.company.name(),\n website: random.datatype.boolean({ probability: 0.3 }) ? random.internet.url() : undefined,\n description: random.lorem.sentences(),\n }),\n\n [TestSchemaType.contact]: async (provider) => {\n const organizations = await provider?.(TestSchemaType.organization);\n const location = random.datatype.boolean() ? random.geo.airport() : {};\n\n return {\n name: random.person.fullName(),\n email: random.datatype.boolean({ probability: 0.5 }) ? random.internet.email() : undefined,\n org:\n organizations?.length && random.datatype.boolean({ probability: 0.8 })\n ? Ref.make(random.helpers.arrayElement(organizations))\n : undefined,\n ...location,\n };\n },\n\n [TestSchemaType.project]: async () => ({\n name: random.commerce.productName(),\n repo: random.internet.url(),\n status: random.helpers.arrayElement(Status),\n description: random.lorem.sentences(),\n website: random.internet.url(),\n priority: random.helpers.arrayElement(Priority),\n active: random.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 { Filter, type Space } from '@dxos/client/echo';\nimport { Obj, type Type } from '@dxos/echo';\nimport { EchoSchema, getTypeAnnotation } from '@dxos/echo/internal';\nimport { isProxy } from '@dxos/echo/internal';\nimport { invariant } from '@dxos/invariant';\nimport { random } from '@dxos/random';\nimport { entries, range } from '@dxos/util';\n\nimport { type TestSchemaType } from './data';\nimport {\n type MutationsProviderProps,\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\t\tprotected readonly _schemas: TestSchemaMap<T>,\n\t\tprivate readonly _generators: TestGeneratorMap<T>,\n\t\tprivate readonly _provider?: TestObjectProvider<T>,\n\t) {}\n\n get schemas(): Type.AnyObj[] {\n return Object.values(this._schemas);\n }\n\n getSchema(type: T): Type.AnyObj | undefined {\n return this.schemas.find((schema) => getTypeAnnotation(schema)!.typename === type);\n }\n\n protected setSchema(type: T, schema: Type.AnyObj): void {\n this._schemas[type] = schema;\n }\n\n async createObject({ types }: { types?: T[] } = {}): Promise<any> {\n const type = random.helpers.arrayElement(types ?? (Object.keys(this._schemas) as T[]));\n const data = await this._generators[type](this._provider);\n if (isProxy(data)) {\n return data;\n }\n\n const schema = this.getSchema(type);\n invariant(schema, `Schema is required for type: ${type}. Register a schema for this type.`);\n return Obj.make(schema, 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: 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: Type.AnyObj[] = [];\n for (const [typename, schema] of Object.entries(this._schemas)) {\n const echoSchema = await this._maybeRegisterSchema(typename, schema as Type.AnyObj);\n this.setSchema(typename as T, echoSchema);\n result.push(echoSchema);\n }\n\n return result;\n }\n\n override async createObject({\n types,\n }: {\n types?: T[];\n } = {}): Promise<Obj.Any> {\n return this._space.db.add(await super.createObject({ types }));\n }\n\n private async _maybeRegisterSchema(typename: string, schema: Type.AnyObj): Promise<Type.AnyObj> {\n if (schema instanceof EchoSchema) {\n const existingSchema = this._space.internal.db.schemaRegistry.getSchema(typename);\n if (existingSchema != null) {\n return existingSchema;\n }\n const [registeredSchema] = await this._space.internal.db.schemaRegistry.register([schema]);\n return registeredSchema;\n } else {\n const existingSchema = this._space.internal.db.graph.schemaRegistry.getSchema(typename);\n if (existingSchema != null) {\n return existingSchema;\n }\n await this._space.internal.db.graph.schemaRegistry.register([schema]);\n return schema;\n }\n }\n\n async mutateObject(object: Obj.Any, params: MutationsProviderProps): Promise<void> {\n invariant(this._mutations, 'Mutations not defined.');\n const type = getTypeAnnotation(Obj.getSchema(object)!)!.typename as T;\n invariant(type && this._mutations?.[type], 'Invalid object type.');\n\n await this._mutations;\n }\n\n async mutateObjects(objects: Obj.Any[], params: MutationsProviderProps): 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", "Ref", "Type", "createDocAccessor", "random", "Filter", "Obj", "EchoSchema", "getTypeAnnotation", "isProxy", "invariant", "random", "entries", "range", "_generators", "_provider", "schemas", "getSchema", "type", "setSchema", "schema", "createObject", "types", "data", "count", "results", "tasks", "t", "Promise", "objects", "_space", "query", "_mutations", "addSchemas", "typename", "echoSchema", "result", "_maybeRegisterSchema", "existingSchema", "internal", "registeredSchema", "object", "params", "mutateObjects", "mutateObject", "randomText", "length", "result", "characters", "charactersLength", "index", "charAt", "Math", "floor", "random", "Status", "Priority", "TestSchemaType", "testSchemas", "document", "Struct", "title", "String", "annotations", "description", "content", "pipe", "Type", "object", "typename", "version", "organization", "name", "website", "optional", "contact", "email", "org", "Ref", "lat", "Number", "lng", "project", "repo", "status", "priority", "active", "Boolean", "testObjectGenerators", "random", "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", "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":
|
|
1
|
+
{"inputs":{"src/generator.ts":{"bytes":16516,"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/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/invariant","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":1484,"imports":[],"format":"esm"},"src/data.ts":{"bytes":19564,"imports":[{"path":"@automerge/automerge","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","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":577,"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/neutral/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18270},"dist/lib/neutral/index.mjs":{"imports":[{"path":"@automerge/automerge","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","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/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/invariant","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":4834},"src/generator.ts":{"bytesInOutput":4240},"src/util.ts":{"bytesInOutput":299},"src/index.ts":{"bytesInOutput":0}},"bytes":9681}}}
|
package/dist/types/src/data.d.ts
CHANGED
|
@@ -6,10 +6,10 @@ export declare const Priority: number[];
|
|
|
6
6
|
* @deprecated
|
|
7
7
|
*/
|
|
8
8
|
export declare enum TestSchemaType {
|
|
9
|
-
document = "example.
|
|
10
|
-
organization = "example.
|
|
11
|
-
contact = "example.
|
|
12
|
-
project = "example.
|
|
9
|
+
document = "com.example.type.document",
|
|
10
|
+
organization = "com.example.type.organization",
|
|
11
|
+
contact = "com.example.type.person",
|
|
12
|
+
project = "com.example.type.project"
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
15
|
* @deprecated Use generators in schema package.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/data.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAK/C,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAQxE,eAAO,MAAM,MAAM,UAAgC,CAAC;AACpD,eAAO,MAAM,QAAQ,UAAkB,CAAC;AAExC;;GAEG;AACH,oBAAY,cAAc;IACxB,QAAQ,8BAA8B;IACtC,YAAY,kCAAkC;IAC9C,OAAO,4BAA4B;IACnC,OAAO,6BAA6B;CACrC;AA6GD;;GAEG;AACH,eAAO,MAAM,yBAAyB,2CAAqE,CAAC;AAE5G;;GAEG;AACH,eAAO,MAAM,0BAA0B,
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/data.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAK/C,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAQxE,eAAO,MAAM,MAAM,UAAgC,CAAC;AACpD,eAAO,MAAM,QAAQ,UAAkB,CAAC;AAExC;;GAEG;AACH,oBAAY,cAAc;IACxB,QAAQ,8BAA8B;IACtC,YAAY,kCAAkC;IAC9C,OAAO,4BAA4B;IACnC,OAAO,6BAA6B;CACrC;AA6GD;;GAEG;AACH,eAAO,MAAM,yBAAyB,2CAAqE,CAAC;AAE5G;;GAEG;AACH,eAAO,MAAM,0BAA0B,UAAW,KAAK,yCACmC,CAAC"}
|
|
@@ -30,7 +30,7 @@ export declare class SpaceObjectGenerator<T extends string> extends TestObjectGe
|
|
|
30
30
|
readonly typename: string;
|
|
31
31
|
readonly version: string;
|
|
32
32
|
})[]>;
|
|
33
|
-
createObject({ types
|
|
33
|
+
createObject({ types }?: {
|
|
34
34
|
types?: T[];
|
|
35
35
|
}): Promise<Obj.Any>;
|
|
36
36
|
private _maybeRegisterSchema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/generator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAU,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAO5C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,qBAAa,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,cAAc;IAGhE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/generator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAU,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAO5C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,qBAAa,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,cAAc;IAGhE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAH3B,YACmB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC5B,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAChC,SAAS,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,YAAA,EAC/C;IAEH,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAE3B;IAED,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,CAE1C;IAED,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAEtD;IAEK,YAAY,CAAC,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAA;KAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAUhE;IAGK,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,kBAalD;CACF;AAED;;GAEG;AACH,qBAAa,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,mBAAmB,CAAC,CAAC,CAAC;IAE9E,OAAO,CAAC,QAAQ,CAAC,MAAM;IAGvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAJ9B,YACmB,MAAM,EAAE,KAAK,EAC9B,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,EAC3B,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACd,UAAU,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,YAAA,EAOlD;IAEK,UAAU;;;UASf;IAEc,YAAY,CAAC,EAC1B,KAAK,EACN,GAAE;QACD,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;KACR,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAExB;YAEa,oBAAoB;IAkB5B,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAMjF;IAEK,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAIrF;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/util.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/util.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,WAAY,MAAM,WASxC,CAAC"}
|