@dxos/echo-generator 0.6.11 → 0.6.12-main.5cc132e
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"inject-globals:@inject-globals":{"bytes":
|
|
1
|
+
{"inputs":{"inject-globals:@inject-globals":{"bytes":324,"imports":[{"path":"@dxos/node-std/inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-generator/src/util.ts":{"bytes":2289,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-generator/src/generator.ts":{"bytes":16683,"imports":[{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-generator/src/util.ts","kind":"import-statement","original":"./util"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-generator/src/data.ts":{"bytes":41064,"imports":[{"path":"@dxos/automerge/automerge","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":"packages/core/echo/echo-generator/src/generator.ts","kind":"import-statement","original":"./generator"},{"path":"packages/core/echo/echo-generator/src/util.ts","kind":"import-statement","original":"./util"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-generator/src/types.ts":{"bytes":1521,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-generator/src/index.ts":{"bytes":751,"imports":[{"path":"packages/core/echo/echo-generator/src/data.ts","kind":"import-statement","original":"./data"},{"path":"packages/core/echo/echo-generator/src/generator.ts","kind":"import-statement","original":"./generator"},{"path":"packages/core/echo/echo-generator/src/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/core/echo/echo-generator/src/util.ts","kind":"import-statement","original":"./util"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"packages/core/echo/echo-generator/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":29116},"packages/core/echo/echo-generator/dist/lib/browser/index.mjs":{"imports":[{"path":"@dxos/node-std/inject-globals","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge","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/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true}],"exports":["Priority","SpaceObjectGenerator","Status","TestObjectGenerator","TestSchemaType","createSpaceObjectGenerator","createTestObjectGenerator","randomText","range"],"entryPoint":"packages/core/echo/echo-generator/src/index.ts","inputs":{"inject-globals:@inject-globals":{"bytesInOutput":79},"packages/core/echo/echo-generator/src/data.ts":{"bytesInOutput":11548},"packages/core/echo/echo-generator/src/generator.ts":{"bytesInOutput":3818},"packages/core/echo/echo-generator/src/util.ts":{"bytesInOutput":390},"packages/core/echo/echo-generator/src/index.ts":{"bytesInOutput":0}},"bytes":16378}}}
|
|
@@ -0,0 +1,691 @@
|
|
|
1
|
+
// packages/core/echo/echo-generator/src/data.ts
|
|
2
|
+
import { next as A } from "@dxos/automerge/automerge";
|
|
3
|
+
import { createDocAccessor } from "@dxos/client/echo";
|
|
4
|
+
import { create as create2, DynamicSchema as DynamicSchema2, EchoObject, EchoObjectAnnotationId, effectToJsonSchema, getEchoObjectAnnotation as getEchoObjectAnnotation2, ref, S, StoredSchema } from "@dxos/echo-schema";
|
|
5
|
+
import { faker as faker2 } from "@dxos/random";
|
|
6
|
+
|
|
7
|
+
// packages/core/echo/echo-generator/src/generator.ts
|
|
8
|
+
import { Filter } from "@dxos/client/echo";
|
|
9
|
+
import { DynamicSchema, getEchoObjectAnnotation, getSchema, isReactiveObject } from "@dxos/echo-schema";
|
|
10
|
+
import { create } from "@dxos/echo-schema";
|
|
11
|
+
import { invariant } from "@dxos/invariant";
|
|
12
|
+
import { faker } from "@dxos/random";
|
|
13
|
+
|
|
14
|
+
// packages/core/echo/echo-generator/src/util.ts
|
|
15
|
+
var range = (fn, length) => Array.from({
|
|
16
|
+
length
|
|
17
|
+
}).map((_, i) => fn(i)).filter(Boolean);
|
|
18
|
+
var randomText = (length) => {
|
|
19
|
+
let result = "";
|
|
20
|
+
const characters = "abcdefghijklmnopqrstuvwxyz";
|
|
21
|
+
const charactersLength = characters.length;
|
|
22
|
+
for (let index = 0; index < length; index++) {
|
|
23
|
+
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
|
24
|
+
}
|
|
25
|
+
return result;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
// packages/core/echo/echo-generator/src/generator.ts
|
|
29
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/core/echo/echo-generator/src/generator.ts";
|
|
30
|
+
var TestObjectGenerator = class {
|
|
31
|
+
// prettier-ignore
|
|
32
|
+
constructor(_schemas, _generators, _provider) {
|
|
33
|
+
this._schemas = _schemas;
|
|
34
|
+
this._generators = _generators;
|
|
35
|
+
this._provider = _provider;
|
|
36
|
+
}
|
|
37
|
+
get schemas() {
|
|
38
|
+
return Object.values(this._schemas);
|
|
39
|
+
}
|
|
40
|
+
getSchema(type) {
|
|
41
|
+
return this.schemas.find((schema) => getEchoObjectAnnotation(schema).typename === type);
|
|
42
|
+
}
|
|
43
|
+
setSchema(type, schema) {
|
|
44
|
+
this._schemas[type] = schema;
|
|
45
|
+
}
|
|
46
|
+
async createObject({ types } = {}) {
|
|
47
|
+
const type = faker.helpers.arrayElement(types ?? Object.keys(this._schemas));
|
|
48
|
+
const data = await this._generators[type](this._provider);
|
|
49
|
+
if (isReactiveObject(data)) {
|
|
50
|
+
return data;
|
|
51
|
+
}
|
|
52
|
+
const schema = this.getSchema(type);
|
|
53
|
+
return schema ? create(schema, data) : create(data);
|
|
54
|
+
}
|
|
55
|
+
// TODO(burdon): Create batch.
|
|
56
|
+
// TODO(burdon): Based on dependencies (e.g., organization before contact).
|
|
57
|
+
async createObjects(map) {
|
|
58
|
+
const tasks = Object.entries(map).map(([type, count]) => {
|
|
59
|
+
return range(() => this.createObject({
|
|
60
|
+
types: [
|
|
61
|
+
type
|
|
62
|
+
]
|
|
63
|
+
}), count);
|
|
64
|
+
}).flatMap((t) => t);
|
|
65
|
+
return Promise.all(tasks);
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
var SpaceObjectGenerator = class extends TestObjectGenerator {
|
|
69
|
+
constructor(_space, schemaMap, generators, _mutations) {
|
|
70
|
+
super(schemaMap, generators, async (type) => {
|
|
71
|
+
const schema = this.getSchema(type);
|
|
72
|
+
return (schema && (await this._space.db.query(Filter.schema(schema)).run()).objects) ?? [];
|
|
73
|
+
});
|
|
74
|
+
this._space = _space;
|
|
75
|
+
this._mutations = _mutations;
|
|
76
|
+
Object.entries(schemaMap).forEach(([type, dynamicSchema]) => {
|
|
77
|
+
const schema = this._maybeRegisterSchema(type, dynamicSchema);
|
|
78
|
+
this.setSchema(type, schema);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
addSchemas() {
|
|
82
|
+
const result = [];
|
|
83
|
+
for (const [typename, schema] of Object.entries(this._schemas)) {
|
|
84
|
+
result.push(this._maybeRegisterSchema(typename, schema));
|
|
85
|
+
}
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
88
|
+
async createObject({ types } = {}) {
|
|
89
|
+
return this._space.db.add(await super.createObject({
|
|
90
|
+
types
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
93
|
+
_maybeRegisterSchema(typename, schema) {
|
|
94
|
+
if (schema instanceof DynamicSchema) {
|
|
95
|
+
const existingSchema = this._space.db.schema.getSchemaByTypename(typename);
|
|
96
|
+
if (existingSchema != null) {
|
|
97
|
+
return existingSchema;
|
|
98
|
+
}
|
|
99
|
+
this._space.db.add(schema.serializedSchema);
|
|
100
|
+
return this._space.db.schema.registerSchema(schema.serializedSchema);
|
|
101
|
+
} else {
|
|
102
|
+
const existingSchema = this._space.db.graph.schemaRegistry.getSchema(typename);
|
|
103
|
+
if (existingSchema != null) {
|
|
104
|
+
return existingSchema;
|
|
105
|
+
}
|
|
106
|
+
this._space.db.graph.schemaRegistry.addSchema([
|
|
107
|
+
schema
|
|
108
|
+
]);
|
|
109
|
+
return schema;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
async mutateObject(object, params) {
|
|
113
|
+
invariant(this._mutations, "Mutations not defined.", {
|
|
114
|
+
F: __dxlog_file,
|
|
115
|
+
L: 132,
|
|
116
|
+
S: this,
|
|
117
|
+
A: [
|
|
118
|
+
"this._mutations",
|
|
119
|
+
"'Mutations not defined.'"
|
|
120
|
+
]
|
|
121
|
+
});
|
|
122
|
+
const type = getEchoObjectAnnotation(getSchema(object)).typename;
|
|
123
|
+
invariant(type && this._mutations?.[type], "Invalid object type.", {
|
|
124
|
+
F: __dxlog_file,
|
|
125
|
+
L: 134,
|
|
126
|
+
S: this,
|
|
127
|
+
A: [
|
|
128
|
+
"type && this._mutations?.[type]",
|
|
129
|
+
"'Invalid object type.'"
|
|
130
|
+
]
|
|
131
|
+
});
|
|
132
|
+
await this._mutations[type](object, params);
|
|
133
|
+
}
|
|
134
|
+
async mutateObjects(objects, params) {
|
|
135
|
+
for (const object of objects) {
|
|
136
|
+
await this.mutateObject(object, params);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
// packages/core/echo/echo-generator/src/data.ts
|
|
142
|
+
var Status = [
|
|
143
|
+
"pending",
|
|
144
|
+
"active",
|
|
145
|
+
"done"
|
|
146
|
+
];
|
|
147
|
+
var Priority = [
|
|
148
|
+
1,
|
|
149
|
+
2,
|
|
150
|
+
3,
|
|
151
|
+
4,
|
|
152
|
+
5
|
|
153
|
+
];
|
|
154
|
+
var TestSchemaType;
|
|
155
|
+
(function(TestSchemaType2) {
|
|
156
|
+
TestSchemaType2["document"] = "example.com/type/document";
|
|
157
|
+
TestSchemaType2["organization"] = "example.com/type/organization";
|
|
158
|
+
TestSchemaType2["contact"] = "example.com/type/contact";
|
|
159
|
+
TestSchemaType2["project"] = "example.com/type/project";
|
|
160
|
+
})(TestSchemaType || (TestSchemaType = {}));
|
|
161
|
+
var createDynamicSchema = (typename, fields) => {
|
|
162
|
+
const typeSchema = S.partial(S.Struct(fields)).pipe(EchoObject(typename, "1.0.0"));
|
|
163
|
+
const typeAnnotation = getEchoObjectAnnotation2(typeSchema);
|
|
164
|
+
const schemaToStore = create2(StoredSchema, {
|
|
165
|
+
typename,
|
|
166
|
+
version: "1.0.0",
|
|
167
|
+
jsonSchema: {}
|
|
168
|
+
});
|
|
169
|
+
const updatedSchema = typeSchema.annotations({
|
|
170
|
+
[EchoObjectAnnotationId]: {
|
|
171
|
+
...typeAnnotation,
|
|
172
|
+
schemaId: schemaToStore.id
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
schemaToStore.jsonSchema = effectToJsonSchema(updatedSchema);
|
|
176
|
+
return new DynamicSchema2(schemaToStore);
|
|
177
|
+
};
|
|
178
|
+
var testSchemas = () => {
|
|
179
|
+
const document = createDynamicSchema("example.com/type/document", {
|
|
180
|
+
title: S.String.pipe(S.description("title of the document")),
|
|
181
|
+
content: S.String
|
|
182
|
+
});
|
|
183
|
+
const organization = createDynamicSchema("example.com/type/organization", {
|
|
184
|
+
name: S.String.pipe(S.description("name of the company or organization")),
|
|
185
|
+
website: S.String.pipe(S.description("public website URL")),
|
|
186
|
+
description: S.String.pipe(S.description("short summary of the company"))
|
|
187
|
+
});
|
|
188
|
+
const contact = createDynamicSchema("example.com/type/contact", {
|
|
189
|
+
name: S.String.pipe(S.description("name of the person")),
|
|
190
|
+
email: S.String,
|
|
191
|
+
org: ref(organization),
|
|
192
|
+
lat: S.Number,
|
|
193
|
+
lng: S.Number
|
|
194
|
+
});
|
|
195
|
+
const project = createDynamicSchema("example.com/type/project", {
|
|
196
|
+
name: S.String.pipe(S.description("name of the project")),
|
|
197
|
+
description: S.String,
|
|
198
|
+
website: S.String,
|
|
199
|
+
repo: S.String,
|
|
200
|
+
status: S.String,
|
|
201
|
+
priority: S.Number,
|
|
202
|
+
active: S.Boolean,
|
|
203
|
+
org: ref(organization)
|
|
204
|
+
});
|
|
205
|
+
return {
|
|
206
|
+
["example.com/type/document"]: document,
|
|
207
|
+
["example.com/type/organization"]: organization,
|
|
208
|
+
["example.com/type/contact"]: contact,
|
|
209
|
+
["example.com/type/project"]: project
|
|
210
|
+
};
|
|
211
|
+
};
|
|
212
|
+
var testObjectGenerators = {
|
|
213
|
+
["example.com/type/document"]: async () => ({
|
|
214
|
+
title: faker2.lorem.sentence(3),
|
|
215
|
+
content: faker2.lorem.sentences({
|
|
216
|
+
min: 1,
|
|
217
|
+
max: faker2.number.int({
|
|
218
|
+
min: 1,
|
|
219
|
+
max: 3
|
|
220
|
+
})
|
|
221
|
+
})
|
|
222
|
+
}),
|
|
223
|
+
["example.com/type/organization"]: async () => ({
|
|
224
|
+
name: faker2.company.name(),
|
|
225
|
+
website: faker2.datatype.boolean({
|
|
226
|
+
probability: 0.3
|
|
227
|
+
}) ? faker2.internet.url() : void 0,
|
|
228
|
+
description: faker2.lorem.sentences()
|
|
229
|
+
}),
|
|
230
|
+
["example.com/type/contact"]: async (provider) => {
|
|
231
|
+
const organizations = await provider?.("example.com/type/organization");
|
|
232
|
+
const location = faker2.datatype.boolean() ? faker2.helpers.arrayElement(locations) : void 0;
|
|
233
|
+
return {
|
|
234
|
+
name: faker2.person.fullName(),
|
|
235
|
+
email: faker2.datatype.boolean({
|
|
236
|
+
probability: 0.5
|
|
237
|
+
}) ? faker2.internet.email() : void 0,
|
|
238
|
+
org: organizations?.length && faker2.datatype.boolean({
|
|
239
|
+
probability: 0.3
|
|
240
|
+
}) ? faker2.helpers.arrayElement(organizations) : void 0,
|
|
241
|
+
...location
|
|
242
|
+
};
|
|
243
|
+
},
|
|
244
|
+
["example.com/type/project"]: async () => ({
|
|
245
|
+
name: faker2.commerce.productName(),
|
|
246
|
+
repo: faker2.datatype.boolean({
|
|
247
|
+
probability: 0.3
|
|
248
|
+
}) ? faker2.internet.url() : void 0,
|
|
249
|
+
status: faker2.helpers.arrayElement(Status),
|
|
250
|
+
priority: faker2.helpers.arrayElement(Priority),
|
|
251
|
+
active: faker2.datatype.boolean()
|
|
252
|
+
})
|
|
253
|
+
};
|
|
254
|
+
var testObjectMutators = {
|
|
255
|
+
["example.com/type/document"]: async (object, params) => {
|
|
256
|
+
const accessor = createDocAccessor(object, [
|
|
257
|
+
"content"
|
|
258
|
+
]);
|
|
259
|
+
for (let i = 0; i < params.count; i++) {
|
|
260
|
+
const length = object.content?.content?.length ?? 0;
|
|
261
|
+
accessor.handle.change((doc) => {
|
|
262
|
+
A.splice(doc, accessor.path.slice(), 0, params.maxContentLength >= length ? 0 : params.mutationSize, randomText(params.mutationSize));
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
["example.com/type/organization"]: async () => {
|
|
267
|
+
throw new Error("Method not implemented.");
|
|
268
|
+
},
|
|
269
|
+
["example.com/type/contact"]: async () => {
|
|
270
|
+
throw new Error("Method not implemented.");
|
|
271
|
+
},
|
|
272
|
+
["example.com/type/project"]: async () => {
|
|
273
|
+
throw new Error("Method not implemented.");
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
var createTestObjectGenerator = () => new TestObjectGenerator(testSchemas(), testObjectGenerators);
|
|
277
|
+
var createSpaceObjectGenerator = (space) => new SpaceObjectGenerator(space, testSchemas(), testObjectGenerators, testObjectMutators);
|
|
278
|
+
var locations = [
|
|
279
|
+
{
|
|
280
|
+
lat: 139.74946157054467,
|
|
281
|
+
lng: 35.686962764371174
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
lat: -73.98196278740681,
|
|
285
|
+
lng: 40.75192492259464
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
lat: -99.1329340602939,
|
|
289
|
+
lng: 19.444388301415472
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
lat: 72.85504343876647,
|
|
293
|
+
lng: 19.0189362343566
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
lat: -46.62696583905523,
|
|
297
|
+
lng: -23.55673372837896
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
lat: 77.22805816860182,
|
|
301
|
+
lng: 28.671938757181522
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
lat: 121.43455881982015,
|
|
305
|
+
lng: 31.218398311228327
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
lat: 88.32272979950551,
|
|
309
|
+
lng: 22.49691515689642
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
lat: 90.40663360810754,
|
|
313
|
+
lng: 23.725005570312817
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
lat: -58.399477232331435,
|
|
317
|
+
lng: -34.600555749907414
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
lat: -118.18192636994041,
|
|
321
|
+
lng: 33.99192410876543
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
lat: 66.98806305137339,
|
|
325
|
+
lng: 24.87193814681484
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
lat: 31.248022361126118,
|
|
329
|
+
lng: 30.051906205103705
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
lat: -43.22696665284366,
|
|
333
|
+
lng: -22.923077315615956
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
lat: 135.4581989565952,
|
|
337
|
+
lng: 34.75198107491417
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
lat: 116.38633982565943,
|
|
341
|
+
lng: 39.93083808990906
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
lat: 120.9802713035424,
|
|
345
|
+
lng: 14.606104813440538
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
lat: 37.6135769672714,
|
|
349
|
+
lng: 55.75410998124818
|
|
350
|
+
},
|
|
351
|
+
{
|
|
352
|
+
lat: 29.008055727002613,
|
|
353
|
+
lng: 41.10694201243979
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
lat: 2.33138946713035,
|
|
357
|
+
lng: 48.86863878981461
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
lat: 126.99778513820195,
|
|
361
|
+
lng: 37.56829495838895
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
lat: 3.3895852125984334,
|
|
365
|
+
lng: 6.445207512093191
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
lat: 106.82749176247012,
|
|
369
|
+
lng: -6.172471846798885
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
lat: -87.75200083270931,
|
|
373
|
+
lng: 41.83193651927843
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
lat: 113.32306427226172,
|
|
377
|
+
lng: 23.14692716047989
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
lat: -0.11866770247593195,
|
|
381
|
+
lng: 51.5019405883275
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
lat: -77.05200795343472,
|
|
385
|
+
lng: -12.04606681752557
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
lat: 51.42239817500899,
|
|
389
|
+
lng: 35.673888627001304
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
lat: 15.313026023171744,
|
|
393
|
+
lng: -4.327778243275986
|
|
394
|
+
},
|
|
395
|
+
{
|
|
396
|
+
lat: -74.08528981377441,
|
|
397
|
+
lng: 4.598369421147822
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
lat: 114.1201772298325,
|
|
401
|
+
lng: 22.554316369677963
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
lat: 114.26807118958311,
|
|
405
|
+
lng: 30.581977209337822
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
lat: 114.18306345846304,
|
|
409
|
+
lng: 22.30692675357551
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
lat: 117.19807322410043,
|
|
413
|
+
lng: 39.13197212310894
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
lat: 80.27805287890033,
|
|
417
|
+
lng: 13.091933670856292
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
lat: 121.568333333333,
|
|
421
|
+
lng: 25.0358333333333
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
lat: 77.55806386521755,
|
|
425
|
+
lng: 12.97194099507442
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
lat: 100.51469879369489,
|
|
429
|
+
lng: 13.751945064087977
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
lat: 74.34807892054346,
|
|
433
|
+
lng: 31.56191739488844
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
lat: 106.59303578916195,
|
|
437
|
+
lng: 29.566922888044644
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
lat: 78.47800771287751,
|
|
441
|
+
lng: 17.401928991511454
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
lat: -70.66898671317483,
|
|
445
|
+
lng: -33.448067956934096
|
|
446
|
+
},
|
|
447
|
+
{
|
|
448
|
+
lat: -80.22605193945003,
|
|
449
|
+
lng: 25.789556555021534
|
|
450
|
+
},
|
|
451
|
+
{
|
|
452
|
+
lat: -43.916950376804834,
|
|
453
|
+
lng: -19.91308016391116
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
lat: -3.6852975446125242,
|
|
457
|
+
lng: 40.40197212311381
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
lat: -75.17194183200792,
|
|
461
|
+
lng: 40.001919022526465
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
lat: 72.57805776168215,
|
|
465
|
+
lng: 23.031998775062675
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
lat: 106.69308136207889,
|
|
469
|
+
lng: 10.781971309193409
|
|
470
|
+
},
|
|
471
|
+
{
|
|
472
|
+
lat: -79.42196665298843,
|
|
473
|
+
lng: 43.70192573640844
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
lat: 103.85387481909902,
|
|
477
|
+
lng: 1.2949793251059418
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
lat: 13.23248118266855,
|
|
481
|
+
lng: -8.836340255012658
|
|
482
|
+
},
|
|
483
|
+
{
|
|
484
|
+
lat: 44.391922914564134,
|
|
485
|
+
lng: 33.34059435615865
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
lat: 2.181424460619155,
|
|
489
|
+
lng: 41.385245438547486
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
lat: 88.32994665421205,
|
|
493
|
+
lng: 22.580390440861947
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
lat: -96.84196278749818,
|
|
497
|
+
lng: 32.82196968167733
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
lat: 123.44802765120869,
|
|
501
|
+
lng: 41.80692512604918
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
lat: 32.532233380011576,
|
|
505
|
+
lng: 15.590024084277673
|
|
506
|
+
},
|
|
507
|
+
{
|
|
508
|
+
lat: 73.84805776168719,
|
|
509
|
+
lng: 18.531963374654026
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
lat: 151.1832339501475,
|
|
513
|
+
lng: -33.91806510862875
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
lat: 30.314074200315076,
|
|
517
|
+
lng: 59.94096036375191
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
lat: 91.79802154756635,
|
|
521
|
+
lng: 22.33193814680459
|
|
522
|
+
},
|
|
523
|
+
{
|
|
524
|
+
lat: 113.74277634138707,
|
|
525
|
+
lng: 23.050834758613007
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
lat: -84.40189524187565,
|
|
529
|
+
lng: 33.83195971260585
|
|
530
|
+
},
|
|
531
|
+
{
|
|
532
|
+
lat: -71.07195953218684,
|
|
533
|
+
lng: 42.33190600170229
|
|
534
|
+
},
|
|
535
|
+
{
|
|
536
|
+
lat: 46.770795798688255,
|
|
537
|
+
lng: 24.642779007816443
|
|
538
|
+
},
|
|
539
|
+
{
|
|
540
|
+
lat: -95.341925149146,
|
|
541
|
+
lng: 29.821920243188856
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
lat: 105.8480683412422,
|
|
545
|
+
lng: 21.035273107737055
|
|
546
|
+
},
|
|
547
|
+
{
|
|
548
|
+
lat: -77.01136443943716,
|
|
549
|
+
lng: 38.901495235087054
|
|
550
|
+
},
|
|
551
|
+
{
|
|
552
|
+
lat: -103.33198008081848,
|
|
553
|
+
lng: 20.671961950508944
|
|
554
|
+
},
|
|
555
|
+
{
|
|
556
|
+
lat: 144.97307037590406,
|
|
557
|
+
lng: -37.81808545369631
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
lat: 29.948050030391755,
|
|
561
|
+
lng: 31.201965205759393
|
|
562
|
+
},
|
|
563
|
+
{
|
|
564
|
+
lat: 104.06807363094873,
|
|
565
|
+
lng: 30.671945877957796
|
|
566
|
+
},
|
|
567
|
+
{
|
|
568
|
+
lat: -83.0820016464927,
|
|
569
|
+
lng: 42.33190600170229
|
|
570
|
+
},
|
|
571
|
+
{
|
|
572
|
+
lat: 96.16473175266185,
|
|
573
|
+
lng: 16.785299963188777
|
|
574
|
+
},
|
|
575
|
+
{
|
|
576
|
+
lat: 108.89305043760862,
|
|
577
|
+
lng: 34.27697130928732
|
|
578
|
+
},
|
|
579
|
+
{
|
|
580
|
+
lat: -51.20195790450316,
|
|
581
|
+
lng: -30.048068770722466
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
lat: 121.465,
|
|
585
|
+
lng: 25.0127777777778
|
|
586
|
+
},
|
|
587
|
+
{
|
|
588
|
+
lat: 72.83809356897484,
|
|
589
|
+
lng: 21.20192960187819
|
|
590
|
+
},
|
|
591
|
+
{
|
|
592
|
+
lat: 109.60911291406296,
|
|
593
|
+
lng: 23.09653464659317
|
|
594
|
+
},
|
|
595
|
+
{
|
|
596
|
+
lat: -4.041994118507091,
|
|
597
|
+
lng: 5.321942826098564
|
|
598
|
+
},
|
|
599
|
+
{
|
|
600
|
+
lat: -47.91799814700306,
|
|
601
|
+
lng: -15.781394372878992
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
lat: 32.862445782356644,
|
|
605
|
+
lng: 39.929184444075474
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
lat: -100.33193064232995,
|
|
609
|
+
lng: 25.671940995125283
|
|
610
|
+
},
|
|
611
|
+
{
|
|
612
|
+
lat: 139.60202098994017,
|
|
613
|
+
lng: 35.43065615270891
|
|
614
|
+
},
|
|
615
|
+
{
|
|
616
|
+
lat: 118.77802846499208,
|
|
617
|
+
lng: 32.05196500231233
|
|
618
|
+
},
|
|
619
|
+
{
|
|
620
|
+
lat: -73.58524281670213,
|
|
621
|
+
lng: 45.50194506421502
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
lat: 106.7180927553083,
|
|
625
|
+
lng: 26.581988806001448
|
|
626
|
+
},
|
|
627
|
+
{
|
|
628
|
+
lat: -34.91755136960728,
|
|
629
|
+
lng: -8.073699467249241
|
|
630
|
+
},
|
|
631
|
+
{
|
|
632
|
+
lat: 126.64803904445057,
|
|
633
|
+
lng: 45.75192980542715
|
|
634
|
+
},
|
|
635
|
+
{
|
|
636
|
+
lat: -38.58192718342411,
|
|
637
|
+
lng: -3.7480720258257634
|
|
638
|
+
},
|
|
639
|
+
{
|
|
640
|
+
lat: -112.07193755969467,
|
|
641
|
+
lng: 33.5419257363676
|
|
642
|
+
},
|
|
643
|
+
{
|
|
644
|
+
lat: 117.67001623440774,
|
|
645
|
+
lng: 24.520375385531167
|
|
646
|
+
},
|
|
647
|
+
{
|
|
648
|
+
lat: -38.48193328693924,
|
|
649
|
+
lng: -12.968026046044827
|
|
650
|
+
},
|
|
651
|
+
{
|
|
652
|
+
lat: 129.00810170722048,
|
|
653
|
+
lng: 35.09699877511093
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
lat: -122.41716877355225,
|
|
657
|
+
lng: 37.76919562968743
|
|
658
|
+
},
|
|
659
|
+
{
|
|
660
|
+
lat: 28.028063865019476,
|
|
661
|
+
lng: -26.16809888138414
|
|
662
|
+
},
|
|
663
|
+
{
|
|
664
|
+
lat: 13.399602764700546,
|
|
665
|
+
lng: 52.523764522251156
|
|
666
|
+
},
|
|
667
|
+
{
|
|
668
|
+
lat: 3.048606670909237,
|
|
669
|
+
lng: 36.765010656628135
|
|
670
|
+
},
|
|
671
|
+
{
|
|
672
|
+
lat: 125.75274485499392,
|
|
673
|
+
lng: 39.02138455800434
|
|
674
|
+
},
|
|
675
|
+
{
|
|
676
|
+
lat: 12.481312562873995,
|
|
677
|
+
lng: 41.89790148509894
|
|
678
|
+
}
|
|
679
|
+
];
|
|
680
|
+
export {
|
|
681
|
+
Priority,
|
|
682
|
+
SpaceObjectGenerator,
|
|
683
|
+
Status,
|
|
684
|
+
TestObjectGenerator,
|
|
685
|
+
TestSchemaType,
|
|
686
|
+
createSpaceObjectGenerator,
|
|
687
|
+
createTestObjectGenerator,
|
|
688
|
+
randomText,
|
|
689
|
+
range
|
|
690
|
+
};
|
|
691
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/data.ts", "../../../src/generator.ts", "../../../src/util.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\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\nimport { next as A } from '@dxos/automerge/automerge';\nimport { createDocAccessor, type Space } from '@dxos/client/echo';\nimport {\n create,\n DynamicSchema,\n EchoObject,\n EchoObjectAnnotationId,\n effectToJsonSchema,\n getEchoObjectAnnotation,\n ref,\n S,\n StoredSchema,\n} from '@dxos/echo-schema';\nimport { faker } from '@dxos/random';\n\nimport { SpaceObjectGenerator, TestObjectGenerator } from './generator';\nimport { type TestMutationsMap, type TestGeneratorMap, type TestSchemaMap } from './types';\nimport { randomText } from './util';\n\n// TODO(burdon): Handle restricted values.\nexport const Status = ['pending', 'active', 'done'];\nexport const Priority = [1, 2, 3, 4, 5];\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\nconst createDynamicSchema = (typename: string, fields: S.Struct.Fields): DynamicSchema => {\n const typeSchema = S.partial(S.Struct(fields)).pipe(EchoObject(typename, '1.0.0'));\n const typeAnnotation = getEchoObjectAnnotation(typeSchema);\n const schemaToStore = create(StoredSchema, {\n typename,\n version: '1.0.0',\n jsonSchema: {},\n });\n const updatedSchema = typeSchema.annotations({\n [EchoObjectAnnotationId]: { ...typeAnnotation, schemaId: schemaToStore.id },\n });\n schemaToStore.jsonSchema = effectToJsonSchema(updatedSchema);\n return new DynamicSchema(schemaToStore);\n};\n\nconst testSchemas = (): TestSchemaMap<TestSchemaType> => {\n const document = createDynamicSchema(TestSchemaType.document, {\n title: S.String.pipe(S.description('title of the document')),\n content: S.String,\n });\n\n const organization = createDynamicSchema(TestSchemaType.organization, {\n name: S.String.pipe(S.description('name of the company or organization')),\n website: S.String.pipe(S.description('public website URL')),\n description: S.String.pipe(S.description('short summary of the company')),\n });\n\n const contact = createDynamicSchema(TestSchemaType.contact, {\n name: S.String.pipe(S.description('name of the person')),\n email: S.String,\n org: ref(organization),\n lat: S.Number,\n lng: S.Number,\n });\n\n const project = createDynamicSchema(TestSchemaType.project, {\n name: S.String.pipe(S.description('name of the project')),\n description: S.String,\n website: S.String,\n repo: S.String,\n status: S.String,\n priority: S.Number,\n active: S.Boolean,\n org: ref(organization),\n });\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.helpers.arrayElement(locations) : undefined;\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.3 })\n ? faker.helpers.arrayElement(organizations)\n : undefined,\n ...location,\n };\n },\n\n [TestSchemaType.project]: async () => ({\n name: faker.commerce.productName(),\n repo: faker.datatype.boolean({ probability: 0.3 }) ? faker.internet.url() : undefined,\n status: faker.helpers.arrayElement(Status),\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\nexport const createTestObjectGenerator = () => new TestObjectGenerator(testSchemas(), testObjectGenerators);\n\nexport const createSpaceObjectGenerator = (space: Space) =>\n new SpaceObjectGenerator(space, testSchemas(), testObjectGenerators, testObjectMutators);\n\n// TODO(burdon): Move to @dxos/random.\nconst locations = [\n { lat: 139.74946157054467, lng: 35.686962764371174 },\n { lat: -73.98196278740681, lng: 40.75192492259464 },\n { lat: -99.1329340602939, lng: 19.444388301415472 },\n { lat: 72.85504343876647, lng: 19.0189362343566 },\n { lat: -46.62696583905523, lng: -23.55673372837896 },\n { lat: 77.22805816860182, lng: 28.671938757181522 },\n { lat: 121.43455881982015, lng: 31.218398311228327 },\n { lat: 88.32272979950551, lng: 22.49691515689642 },\n { lat: 90.40663360810754, lng: 23.725005570312817 },\n { lat: -58.399477232331435, lng: -34.600555749907414 },\n { lat: -118.18192636994041, lng: 33.99192410876543 },\n { lat: 66.98806305137339, lng: 24.87193814681484 },\n { lat: 31.248022361126118, lng: 30.051906205103705 },\n { lat: -43.22696665284366, lng: -22.923077315615956 },\n { lat: 135.4581989565952, lng: 34.75198107491417 },\n { lat: 116.38633982565943, lng: 39.93083808990906 },\n { lat: 120.9802713035424, lng: 14.606104813440538 },\n { lat: 37.6135769672714, lng: 55.75410998124818 },\n { lat: 29.008055727002613, lng: 41.10694201243979 },\n { lat: 2.33138946713035, lng: 48.86863878981461 },\n { lat: 126.99778513820195, lng: 37.56829495838895 },\n { lat: 3.3895852125984334, lng: 6.445207512093191 },\n { lat: 106.82749176247012, lng: -6.172471846798885 },\n { lat: -87.75200083270931, lng: 41.83193651927843 },\n { lat: 113.32306427226172, lng: 23.14692716047989 },\n { lat: -0.11866770247593195, lng: 51.5019405883275 },\n { lat: -77.05200795343472, lng: -12.04606681752557 },\n { lat: 51.42239817500899, lng: 35.673888627001304 },\n { lat: 15.313026023171744, lng: -4.327778243275986 },\n { lat: -74.08528981377441, lng: 4.598369421147822 },\n { lat: 114.1201772298325, lng: 22.554316369677963 },\n { lat: 114.26807118958311, lng: 30.581977209337822 },\n { lat: 114.18306345846304, lng: 22.30692675357551 },\n { lat: 117.19807322410043, lng: 39.13197212310894 },\n { lat: 80.27805287890033, lng: 13.091933670856292 },\n { lat: 121.568333333333, lng: 25.0358333333333 },\n { lat: 77.55806386521755, lng: 12.97194099507442 },\n { lat: 100.51469879369489, lng: 13.751945064087977 },\n { lat: 74.34807892054346, lng: 31.56191739488844 },\n { lat: 106.59303578916195, lng: 29.566922888044644 },\n { lat: 78.47800771287751, lng: 17.401928991511454 },\n { lat: -70.66898671317483, lng: -33.448067956934096 },\n { lat: -80.22605193945003, lng: 25.789556555021534 },\n { lat: -43.916950376804834, lng: -19.91308016391116 },\n { lat: -3.6852975446125242, lng: 40.40197212311381 },\n { lat: -75.17194183200792, lng: 40.001919022526465 },\n { lat: 72.57805776168215, lng: 23.031998775062675 },\n { lat: 106.69308136207889, lng: 10.781971309193409 },\n { lat: -79.42196665298843, lng: 43.70192573640844 },\n { lat: 103.85387481909902, lng: 1.2949793251059418 },\n { lat: 13.23248118266855, lng: -8.836340255012658 },\n { lat: 44.391922914564134, lng: 33.34059435615865 },\n { lat: 2.181424460619155, lng: 41.385245438547486 },\n { lat: 88.32994665421205, lng: 22.580390440861947 },\n { lat: -96.84196278749818, lng: 32.82196968167733 },\n { lat: 123.44802765120869, lng: 41.80692512604918 },\n { lat: 32.532233380011576, lng: 15.590024084277673 },\n { lat: 73.84805776168719, lng: 18.531963374654026 },\n { lat: 151.1832339501475, lng: -33.91806510862875 },\n { lat: 30.314074200315076, lng: 59.94096036375191 },\n { lat: 91.79802154756635, lng: 22.33193814680459 },\n { lat: 113.74277634138707, lng: 23.050834758613007 },\n { lat: -84.40189524187565, lng: 33.83195971260585 },\n { lat: -71.07195953218684, lng: 42.33190600170229 },\n { lat: 46.770795798688255, lng: 24.642779007816443 },\n { lat: -95.341925149146, lng: 29.821920243188856 },\n { lat: 105.8480683412422, lng: 21.035273107737055 },\n { lat: -77.01136443943716, lng: 38.901495235087054 },\n { lat: -103.33198008081848, lng: 20.671961950508944 },\n { lat: 144.97307037590406, lng: -37.81808545369631 },\n { lat: 29.948050030391755, lng: 31.201965205759393 },\n { lat: 104.06807363094873, lng: 30.671945877957796 },\n { lat: -83.0820016464927, lng: 42.33190600170229 },\n { lat: 96.16473175266185, lng: 16.785299963188777 },\n { lat: 108.89305043760862, lng: 34.27697130928732 },\n { lat: -51.20195790450316, lng: -30.048068770722466 },\n { lat: 121.465, lng: 25.0127777777778 },\n { lat: 72.83809356897484, lng: 21.20192960187819 },\n { lat: 109.60911291406296, lng: 23.09653464659317 },\n { lat: -4.041994118507091, lng: 5.321942826098564 },\n { lat: -47.91799814700306, lng: -15.781394372878992 },\n { lat: 32.862445782356644, lng: 39.929184444075474 },\n { lat: -100.33193064232995, lng: 25.671940995125283 },\n { lat: 139.60202098994017, lng: 35.43065615270891 },\n { lat: 118.77802846499208, lng: 32.05196500231233 },\n { lat: -73.58524281670213, lng: 45.50194506421502 },\n { lat: 106.7180927553083, lng: 26.581988806001448 },\n { lat: -34.91755136960728, lng: -8.073699467249241 },\n { lat: 126.64803904445057, lng: 45.75192980542715 },\n { lat: -38.58192718342411, lng: -3.7480720258257634 },\n { lat: -112.07193755969467, lng: 33.5419257363676 },\n { lat: 117.67001623440774, lng: 24.520375385531167 },\n { lat: -38.48193328693924, lng: -12.968026046044827 },\n { lat: 129.00810170722048, lng: 35.09699877511093 },\n { lat: -122.41716877355225, lng: 37.76919562968743 },\n { lat: 28.028063865019476, lng: -26.16809888138414 },\n { lat: 13.399602764700546, lng: 52.523764522251156 },\n { lat: 3.048606670909237, lng: 36.765010656628135 },\n { lat: 125.75274485499392, lng: 39.02138455800434 },\n { lat: 12.481312562873995, lng: 41.89790148509894 },\n];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Space, Filter } from '@dxos/client/echo';\nimport {\n type EchoReactiveObject,\n type ReactiveObject,\n DynamicSchema,\n getEchoObjectAnnotation,\n getSchema,\n type S,\n isReactiveObject,\n} from '@dxos/echo-schema';\nimport { create } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { faker } from '@dxos/random';\n\nimport { type TestSchemaType } from './data';\nimport {\n type TestMutationsMap,\n type TestGeneratorMap,\n type TestObjectProvider,\n type TestSchemaMap,\n type MutationsProviderParams,\n} from './types';\nimport { range } from './util';\n\n/**\n * Typed object generator.\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(): (DynamicSchema | S.Schema<any>)[] {\n return Object.values(this._schemas);\n }\n\n getSchema(type: T): DynamicSchema | S.Schema<any> | undefined {\n return this.schemas.find((schema) => getEchoObjectAnnotation(schema)!.typename === type);\n }\n\n protected setSchema(type: T, schema: DynamicSchema | S.Schema<any>) {\n this._schemas[type] = schema;\n }\n\n async createObject({ types }: { types?: T[] } = {}): Promise<ReactiveObject<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 (isReactiveObject(data)) {\n return data;\n }\n\n const schema = this.getSchema(type);\n return schema ? create(schema, data) : create(data);\n }\n\n // TODO(burdon): Create batch.\n // TODO(burdon): Based on dependencies (e.g., organization before contact).\n async createObjects(map: Partial<Record<T, number>>) {\n const tasks = Object.entries<number>(map as any)\n .map(([type, count]) => {\n return range(() => this.createObject({ types: [type as T] }), count);\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 return (schema && (await this._space.db.query(Filter.schema(schema)).run()).objects) ?? [];\n });\n\n // TODO(burdon): Map initially are objects that have not been added to the space.\n // Merge existing schema in space with defaults.\n Object.entries<DynamicSchema | S.Schema<any>>(schemaMap).forEach(([type, dynamicSchema]) => {\n const schema = this._maybeRegisterSchema(type, dynamicSchema);\n\n this.setSchema(type as T, schema);\n });\n }\n\n addSchemas() {\n const result: (DynamicSchema | S.Schema<any>)[] = [];\n for (const [typename, schema] of Object.entries(this._schemas)) {\n result.push(this._maybeRegisterSchema(typename, schema as DynamicSchema | S.Schema<any>));\n }\n\n return result;\n }\n\n override async createObject({ types }: { types?: T[] } = {}): Promise<EchoReactiveObject<any>> {\n return this._space.db.add(await super.createObject({ types }));\n }\n\n private _maybeRegisterSchema(typename: string, schema: DynamicSchema | S.Schema<any>): DynamicSchema | S.Schema<any> {\n if (schema instanceof DynamicSchema) {\n const existingSchema = this._space.db.schema.getSchemaByTypename(typename);\n if (existingSchema != null) {\n return existingSchema;\n }\n this._space.db.add(schema.serializedSchema);\n return this._space.db.schema.registerSchema(schema.serializedSchema);\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: EchoReactiveObject<any>, params: MutationsProviderParams) {\n invariant(this._mutations, 'Mutations not defined.');\n const type = getEchoObjectAnnotation(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: EchoReactiveObject<any>[], params: MutationsProviderParams) {\n for (const object of objects) {\n await this.mutateObject(object, params);\n }\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// TODO(burdon): Util.\nexport const range = <T>(fn: (i: number) => T | undefined, length: number): T[] =>\n Array.from({ length })\n .map((_, i) => fn(i))\n .filter(Boolean) as T[];\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 return result;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["next", "A", "createDocAccessor", "create", "DynamicSchema", "EchoObject", "EchoObjectAnnotationId", "effectToJsonSchema", "getEchoObjectAnnotation", "ref", "S", "StoredSchema", "faker", "Filter", "DynamicSchema", "getEchoObjectAnnotation", "getSchema", "isReactiveObject", "create", "invariant", "faker", "range", "fn", "length", "Array", "from", "map", "_", "i", "filter", "Boolean", "randomText", "result", "characters", "charactersLength", "index", "charAt", "Math", "floor", "random", "TestObjectGenerator", "constructor", "_schemas", "_generators", "_provider", "schemas", "Object", "values", "getSchema", "type", "find", "schema", "getEchoObjectAnnotation", "typename", "setSchema", "createObject", "types", "faker", "helpers", "arrayElement", "keys", "data", "isReactiveObject", "create", "createObjects", "map", "tasks", "entries", "count", "range", "flatMap", "t", "Promise", "all", "SpaceObjectGenerator", "_space", "schemaMap", "generators", "_mutations", "db", "query", "Filter", "run", "objects", "forEach", "dynamicSchema", "_maybeRegisterSchema", "addSchemas", "result", "push", "add", "DynamicSchema", "existingSchema", "getSchemaByTypename", "serializedSchema", "registerSchema", "graph", "schemaRegistry", "addSchema", "mutateObject", "object", "params", "invariant", "mutateObjects", "Status", "Priority", "TestSchemaType", "createDynamicSchema", "typename", "fields", "typeSchema", "S", "partial", "Struct", "pipe", "EchoObject", "typeAnnotation", "getEchoObjectAnnotation", "schemaToStore", "create", "StoredSchema", "version", "jsonSchema", "updatedSchema", "annotations", "EchoObjectAnnotationId", "schemaId", "id", "effectToJsonSchema", "DynamicSchema", "testSchemas", "document", "title", "String", "description", "content", "organization", "name", "website", "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", "helpers", "arrayElement", "locations", "person", "fullName", "length", "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
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"inputs":{"packages/core/echo/echo-generator/src/util.ts":{"bytes":2289,"imports":[],"format":"esm"},"packages/core/echo/echo-generator/src/generator.ts":{"bytes":16683,"imports":[{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-generator/src/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/core/echo/echo-generator/src/data.ts":{"bytes":41064,"imports":[{"path":"@dxos/automerge/automerge","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":"packages/core/echo/echo-generator/src/generator.ts","kind":"import-statement","original":"./generator"},{"path":"packages/core/echo/echo-generator/src/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/core/echo/echo-generator/src/types.ts":{"bytes":1521,"imports":[],"format":"esm"},"packages/core/echo/echo-generator/src/index.ts":{"bytes":751,"imports":[{"path":"packages/core/echo/echo-generator/src/data.ts","kind":"import-statement","original":"./data"},{"path":"packages/core/echo/echo-generator/src/generator.ts","kind":"import-statement","original":"./generator"},{"path":"packages/core/echo/echo-generator/src/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/core/echo/echo-generator/src/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"}},"outputs":{"packages/core/echo/echo-generator/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":29107},"packages/core/echo/echo-generator/dist/lib/node-esm/index.mjs":{"imports":[{"path":"@dxos/automerge/automerge","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/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true}],"exports":["Priority","SpaceObjectGenerator","Status","TestObjectGenerator","TestSchemaType","createSpaceObjectGenerator","createTestObjectGenerator","randomText","range"],"entryPoint":"packages/core/echo/echo-generator/src/index.ts","inputs":{"packages/core/echo/echo-generator/src/data.ts":{"bytesInOutput":11548},"packages/core/echo/echo-generator/src/generator.ts":{"bytesInOutput":3818},"packages/core/echo/echo-generator/src/util.ts":{"bytesInOutput":390},"packages/core/echo/echo-generator/src/index.ts":{"bytesInOutput":0}},"bytes":16230}}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/echo-generator",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.12-main.5cc132e",
|
|
4
4
|
"description": "ECHO data generator for testing.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
".": {
|
|
11
11
|
"browser": "./dist/lib/browser/index.mjs",
|
|
12
12
|
"node": {
|
|
13
|
-
"
|
|
13
|
+
"require": "./dist/lib/node/index.cjs",
|
|
14
|
+
"default": "./dist/lib/node-esm/index.mjs"
|
|
14
15
|
},
|
|
15
16
|
"types": "./dist/types/src/index.d.ts"
|
|
16
17
|
}
|
|
@@ -24,14 +25,13 @@
|
|
|
24
25
|
"src"
|
|
25
26
|
],
|
|
26
27
|
"dependencies": {
|
|
27
|
-
"@dxos/automerge": "0.6.
|
|
28
|
-
"@dxos/client": "0.6.
|
|
29
|
-
"@dxos/echo-
|
|
30
|
-
"@dxos/
|
|
31
|
-
"@dxos/
|
|
32
|
-
"@dxos/
|
|
33
|
-
"@dxos/
|
|
34
|
-
"@dxos/util": "0.6.11"
|
|
28
|
+
"@dxos/automerge": "0.6.12-main.5cc132e",
|
|
29
|
+
"@dxos/client": "0.6.12-main.5cc132e",
|
|
30
|
+
"@dxos/echo-schema": "0.6.12-main.5cc132e",
|
|
31
|
+
"@dxos/echo-db": "0.6.12-main.5cc132e",
|
|
32
|
+
"@dxos/invariant": "0.6.12-main.5cc132e",
|
|
33
|
+
"@dxos/random": "0.6.12-main.5cc132e",
|
|
34
|
+
"@dxos/node-std": "0.6.12-main.5cc132e"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {},
|
|
37
37
|
"publishConfig": {
|
package/src/generator.test.ts
CHANGED
|
@@ -2,14 +2,13 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { expect } from '
|
|
5
|
+
import { onTestFinished, describe, expect, test } from 'vitest';
|
|
6
6
|
|
|
7
7
|
import { next as A } from '@dxos/automerge/automerge';
|
|
8
8
|
import { Client } from '@dxos/client';
|
|
9
9
|
import { getObjectCore } from '@dxos/echo-db';
|
|
10
10
|
import { getType, S, TypedObject } from '@dxos/echo-schema';
|
|
11
11
|
import { faker } from '@dxos/random';
|
|
12
|
-
import { afterTest, describe, test } from '@dxos/test';
|
|
13
12
|
|
|
14
13
|
import { createSpaceObjectGenerator, createTestObjectGenerator, TestSchemaType } from './data';
|
|
15
14
|
import { SpaceObjectGenerator } from './generator';
|
|
@@ -117,7 +116,7 @@ describe('TestObjectGenerator', () => {
|
|
|
117
116
|
const setupTest = async () => {
|
|
118
117
|
const client = new Client();
|
|
119
118
|
await client.initialize();
|
|
120
|
-
|
|
119
|
+
onTestFinished(async () => await client.destroy());
|
|
121
120
|
await client.halo.createIdentity();
|
|
122
121
|
const space = await client.spaces.create();
|
|
123
122
|
return { client, space };
|