@dxos/echo-generator 0.8.4-main.f9ba587 → 0.8.4-main.fcc0d83b33
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/{browser → neutral}/index.mjs +74 -83
- package/dist/lib/neutral/index.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- 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 +13 -13
- package/dist/types/src/generator.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +5 -8
- package/dist/types/src/types.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 +21 -21
- package/src/data.ts +32 -31
- package/src/generator.test.ts +25 -20
- package/src/generator.ts +34 -34
- package/src/index.ts +1 -1
- package/src/types.ts +5 -9
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/node-esm/index.mjs +0 -300
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
|
@@ -2,20 +2,24 @@ import "@dxos/node-std/globals";
|
|
|
2
2
|
|
|
3
3
|
// src/data.ts
|
|
4
4
|
import { next as A } from "@automerge/automerge";
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
5
|
+
import * as Schema from "effect/Schema";
|
|
6
|
+
import { Ref, Type } from "@dxos/echo";
|
|
7
|
+
import { createDocAccessor } from "@dxos/echo-db";
|
|
8
|
+
import { random as random2 } from "@dxos/random";
|
|
9
9
|
|
|
10
10
|
// src/generator.ts
|
|
11
11
|
import { Filter } from "@dxos/client/echo";
|
|
12
|
-
import {
|
|
12
|
+
import { Obj } from "@dxos/echo";
|
|
13
|
+
import { EchoSchema, getTypeAnnotation } from "@dxos/echo/internal";
|
|
14
|
+
import { isProxy } from "@dxos/echo/internal";
|
|
13
15
|
import { invariant } from "@dxos/invariant";
|
|
14
|
-
import {
|
|
15
|
-
import { faker } from "@dxos/random";
|
|
16
|
+
import { random } from "@dxos/random";
|
|
16
17
|
import { entries, range } from "@dxos/util";
|
|
17
18
|
var __dxlog_file = "/__w/dxos/dxos/packages/core/echo/echo-generator/src/generator.ts";
|
|
18
19
|
var TestObjectGenerator = class {
|
|
20
|
+
_schemas;
|
|
21
|
+
_generators;
|
|
22
|
+
_provider;
|
|
19
23
|
// prettier-ignore
|
|
20
24
|
constructor(_schemas, _generators, _provider) {
|
|
21
25
|
this._schemas = _schemas;
|
|
@@ -32,13 +36,14 @@ var TestObjectGenerator = class {
|
|
|
32
36
|
this._schemas[type] = schema;
|
|
33
37
|
}
|
|
34
38
|
async createObject({ types } = {}) {
|
|
35
|
-
const type =
|
|
39
|
+
const type = random.helpers.arrayElement(types ?? Object.keys(this._schemas));
|
|
36
40
|
const data = await this._generators[type](this._provider);
|
|
37
|
-
if (
|
|
41
|
+
if (isProxy(data)) {
|
|
38
42
|
return data;
|
|
39
43
|
}
|
|
40
44
|
const schema = this.getSchema(type);
|
|
41
|
-
|
|
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.`"] });
|
|
46
|
+
return Obj.make(schema, data);
|
|
42
47
|
}
|
|
43
48
|
// TODO(burdon): Based on dependencies (e.g., organization before contact).
|
|
44
49
|
async createObjects(map) {
|
|
@@ -61,10 +66,12 @@ var TestObjectGenerator = class {
|
|
|
61
66
|
}
|
|
62
67
|
};
|
|
63
68
|
var SpaceObjectGenerator = class extends TestObjectGenerator {
|
|
69
|
+
_space;
|
|
70
|
+
_mutations;
|
|
64
71
|
constructor(_space, schemaMap, generators, _mutations) {
|
|
65
72
|
super(schemaMap, generators, async (type) => {
|
|
66
73
|
const schema = this.getSchema(type);
|
|
67
|
-
const
|
|
74
|
+
const objects = await this._space.db.query(schema ? Filter.type(schema) : Filter.nothing()).run();
|
|
68
75
|
return objects;
|
|
69
76
|
}), this._space = _space, this._mutations = _mutations;
|
|
70
77
|
}
|
|
@@ -84,45 +91,29 @@ var SpaceObjectGenerator = class extends TestObjectGenerator {
|
|
|
84
91
|
}
|
|
85
92
|
async _maybeRegisterSchema(typename, schema) {
|
|
86
93
|
if (schema instanceof EchoSchema) {
|
|
87
|
-
const existingSchema = this._space.db.schemaRegistry.getSchema(typename);
|
|
94
|
+
const existingSchema = this._space.internal.db.schemaRegistry.getSchema(typename);
|
|
88
95
|
if (existingSchema != null) {
|
|
89
96
|
return existingSchema;
|
|
90
97
|
}
|
|
91
|
-
const [registeredSchema] = await this._space.db.schemaRegistry.register([
|
|
98
|
+
const [registeredSchema] = await this._space.internal.db.schemaRegistry.register([
|
|
92
99
|
schema
|
|
93
100
|
]);
|
|
94
101
|
return registeredSchema;
|
|
95
102
|
} else {
|
|
96
|
-
const existingSchema = this._space.db.graph.schemaRegistry.getSchema(typename);
|
|
103
|
+
const existingSchema = this._space.internal.db.graph.schemaRegistry.getSchema(typename);
|
|
97
104
|
if (existingSchema != null) {
|
|
98
105
|
return existingSchema;
|
|
99
106
|
}
|
|
100
|
-
this._space.db.graph.schemaRegistry.
|
|
107
|
+
await this._space.internal.db.graph.schemaRegistry.register([
|
|
101
108
|
schema
|
|
102
109
|
]);
|
|
103
110
|
return schema;
|
|
104
111
|
}
|
|
105
112
|
}
|
|
106
113
|
async mutateObject(object, params) {
|
|
107
|
-
invariant(this._mutations, "Mutations not defined.", {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
S: this,
|
|
111
|
-
A: [
|
|
112
|
-
"this._mutations",
|
|
113
|
-
"'Mutations not defined.'"
|
|
114
|
-
]
|
|
115
|
-
});
|
|
116
|
-
const type = getTypeAnnotation(getSchema(object)).typename;
|
|
117
|
-
invariant(type && this._mutations?.[type], "Invalid object type.", {
|
|
118
|
-
F: __dxlog_file,
|
|
119
|
-
L: 132,
|
|
120
|
-
S: this,
|
|
121
|
-
A: [
|
|
122
|
-
"type && this._mutations?.[type]",
|
|
123
|
-
"'Invalid object type.'"
|
|
124
|
-
]
|
|
125
|
-
});
|
|
114
|
+
invariant(this._mutations, "Mutations not defined.", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 111, S: this, A: ["this._mutations", "'Mutations not defined.'"] });
|
|
115
|
+
const type = getTypeAnnotation(Obj.getSchema(object)).typename;
|
|
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.'"] });
|
|
126
117
|
await this._mutations[type](object, params);
|
|
127
118
|
}
|
|
128
119
|
async mutateObjects(objects, params) {
|
|
@@ -156,21 +147,21 @@ var Priority = [
|
|
|
156
147
|
4,
|
|
157
148
|
5
|
|
158
149
|
];
|
|
159
|
-
var TestSchemaType = /* @__PURE__ */ function(TestSchemaType2) {
|
|
160
|
-
TestSchemaType2["document"] = "example.
|
|
161
|
-
TestSchemaType2["organization"] = "example.
|
|
162
|
-
TestSchemaType2["contact"] = "example.
|
|
163
|
-
TestSchemaType2["project"] = "example.
|
|
150
|
+
var TestSchemaType = /* @__PURE__ */ (function(TestSchemaType2) {
|
|
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";
|
|
164
155
|
return TestSchemaType2;
|
|
165
|
-
}({});
|
|
156
|
+
})({});
|
|
166
157
|
var testSchemas = () => {
|
|
167
158
|
const document = Schema.Struct({
|
|
168
159
|
title: Schema.String.annotations({
|
|
169
160
|
description: "title of the document"
|
|
170
161
|
}),
|
|
171
162
|
content: Schema.String
|
|
172
|
-
}).pipe(
|
|
173
|
-
typename: "example.
|
|
163
|
+
}).pipe(Type.object({
|
|
164
|
+
typename: "com.example.type.document",
|
|
174
165
|
version: "0.1.0"
|
|
175
166
|
}));
|
|
176
167
|
const organization = Schema.Struct({
|
|
@@ -183,8 +174,8 @@ var testSchemas = () => {
|
|
|
183
174
|
description: Schema.String.annotations({
|
|
184
175
|
description: "short summary of the company"
|
|
185
176
|
})
|
|
186
|
-
}).pipe(
|
|
187
|
-
typename: "example.
|
|
177
|
+
}).pipe(Type.object({
|
|
178
|
+
typename: "com.example.type.organization",
|
|
188
179
|
version: "0.1.0"
|
|
189
180
|
}));
|
|
190
181
|
const contact = Schema.Struct({
|
|
@@ -192,11 +183,11 @@ var testSchemas = () => {
|
|
|
192
183
|
description: "name of the person"
|
|
193
184
|
}),
|
|
194
185
|
email: Schema.optional(Schema.String),
|
|
195
|
-
org: Schema.optional(Ref(organization)),
|
|
186
|
+
org: Schema.optional(Ref.Ref(organization)),
|
|
196
187
|
lat: Schema.optional(Schema.Number),
|
|
197
188
|
lng: Schema.optional(Schema.Number)
|
|
198
|
-
}).pipe(
|
|
199
|
-
typename: "example.
|
|
189
|
+
}).pipe(Type.object({
|
|
190
|
+
typename: "com.example.type.person",
|
|
200
191
|
version: "0.1.0"
|
|
201
192
|
}));
|
|
202
193
|
const project = Schema.Struct({
|
|
@@ -209,62 +200,62 @@ var testSchemas = () => {
|
|
|
209
200
|
status: Schema.String,
|
|
210
201
|
priority: Schema.Number,
|
|
211
202
|
active: Schema.Boolean,
|
|
212
|
-
org: Schema.optional(Ref(organization))
|
|
213
|
-
}).pipe(
|
|
214
|
-
typename: "example.
|
|
203
|
+
org: Schema.optional(Ref.Ref(organization))
|
|
204
|
+
}).pipe(Type.object({
|
|
205
|
+
typename: "com.example.type.project",
|
|
215
206
|
version: "0.1.0"
|
|
216
207
|
}));
|
|
217
208
|
return {
|
|
218
|
-
["example.
|
|
219
|
-
["example.
|
|
220
|
-
["example.
|
|
221
|
-
["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
|
|
222
213
|
};
|
|
223
214
|
};
|
|
224
215
|
var testObjectGenerators = {
|
|
225
|
-
["example.
|
|
226
|
-
title:
|
|
227
|
-
content:
|
|
216
|
+
["com.example.type.document"]: async () => ({
|
|
217
|
+
title: random2.lorem.sentence(3),
|
|
218
|
+
content: random2.lorem.sentences({
|
|
228
219
|
min: 1,
|
|
229
|
-
max:
|
|
220
|
+
max: random2.number.int({
|
|
230
221
|
min: 1,
|
|
231
222
|
max: 3
|
|
232
223
|
})
|
|
233
224
|
})
|
|
234
225
|
}),
|
|
235
|
-
["example.
|
|
236
|
-
name:
|
|
237
|
-
website:
|
|
226
|
+
["com.example.type.organization"]: async () => ({
|
|
227
|
+
name: random2.company.name(),
|
|
228
|
+
website: random2.datatype.boolean({
|
|
238
229
|
probability: 0.3
|
|
239
|
-
}) ?
|
|
240
|
-
description:
|
|
230
|
+
}) ? random2.internet.url() : void 0,
|
|
231
|
+
description: random2.lorem.sentences()
|
|
241
232
|
}),
|
|
242
|
-
["example.
|
|
243
|
-
const organizations = await provider?.("example.
|
|
244
|
-
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() : {};
|
|
245
236
|
return {
|
|
246
|
-
name:
|
|
247
|
-
email:
|
|
237
|
+
name: random2.person.fullName(),
|
|
238
|
+
email: random2.datatype.boolean({
|
|
248
239
|
probability: 0.5
|
|
249
|
-
}) ?
|
|
250
|
-
org: organizations?.length &&
|
|
240
|
+
}) ? random2.internet.email() : void 0,
|
|
241
|
+
org: organizations?.length && random2.datatype.boolean({
|
|
251
242
|
probability: 0.8
|
|
252
|
-
}) ? Ref.make(
|
|
243
|
+
}) ? Ref.make(random2.helpers.arrayElement(organizations)) : void 0,
|
|
253
244
|
...location
|
|
254
245
|
};
|
|
255
246
|
},
|
|
256
|
-
["example.
|
|
257
|
-
name:
|
|
258
|
-
repo:
|
|
259
|
-
status:
|
|
260
|
-
description:
|
|
261
|
-
website:
|
|
262
|
-
priority:
|
|
263
|
-
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()
|
|
264
255
|
})
|
|
265
256
|
};
|
|
266
257
|
var testObjectMutators = {
|
|
267
|
-
["example.
|
|
258
|
+
["com.example.type.document"]: async (object, params) => {
|
|
268
259
|
const accessor = createDocAccessor(object, [
|
|
269
260
|
"content"
|
|
270
261
|
]);
|
|
@@ -275,13 +266,13 @@ var testObjectMutators = {
|
|
|
275
266
|
});
|
|
276
267
|
}
|
|
277
268
|
},
|
|
278
|
-
["example.
|
|
269
|
+
["com.example.type.organization"]: async () => {
|
|
279
270
|
throw new Error("Method not implemented.");
|
|
280
271
|
},
|
|
281
|
-
["example.
|
|
272
|
+
["com.example.type.person"]: async () => {
|
|
282
273
|
throw new Error("Method not implemented.");
|
|
283
274
|
},
|
|
284
|
-
["example.
|
|
275
|
+
["com.example.type.project"]: async () => {
|
|
285
276
|
throw new Error("Method not implemented.");
|
|
286
277
|
}
|
|
287
278
|
};
|
|
@@ -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\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
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
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,
|
|
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"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import { type Schema } from 'effect';
|
|
2
1
|
import { type Space } from '@dxos/client/echo';
|
|
3
|
-
import { type
|
|
4
|
-
import { EchoSchema } from '@dxos/echo-schema';
|
|
5
|
-
import { type Live } from '@dxos/live-object';
|
|
2
|
+
import { Obj, type Type } from '@dxos/echo';
|
|
6
3
|
import { type TestSchemaType } from './data';
|
|
7
|
-
import { type
|
|
4
|
+
import { type MutationsProviderProps, type TestGeneratorMap, type TestMutationsMap, type TestObjectProvider, type TestSchemaMap } from './types';
|
|
8
5
|
/**
|
|
9
6
|
* Typed object generator.
|
|
10
7
|
* @deprecated
|
|
@@ -14,12 +11,12 @@ export declare class TestObjectGenerator<T extends string = TestSchemaType> {
|
|
|
14
11
|
private readonly _generators;
|
|
15
12
|
private readonly _provider?;
|
|
16
13
|
constructor(_schemas: TestSchemaMap<T>, _generators: TestGeneratorMap<T>, _provider?: TestObjectProvider<T> | undefined);
|
|
17
|
-
get schemas():
|
|
18
|
-
getSchema(type: T):
|
|
19
|
-
protected setSchema(type: T, schema:
|
|
14
|
+
get schemas(): Type.AnyObj[];
|
|
15
|
+
getSchema(type: T): Type.AnyObj | undefined;
|
|
16
|
+
protected setSchema(type: T, schema: Type.AnyObj): void;
|
|
20
17
|
createObject({ types }?: {
|
|
21
18
|
types?: T[];
|
|
22
|
-
}): Promise<
|
|
19
|
+
}): Promise<any>;
|
|
23
20
|
createObjects(map: Partial<Record<T, number>>): Promise<any[]>;
|
|
24
21
|
}
|
|
25
22
|
/**
|
|
@@ -29,12 +26,15 @@ export declare class SpaceObjectGenerator<T extends string> extends TestObjectGe
|
|
|
29
26
|
private readonly _space;
|
|
30
27
|
private readonly _mutations?;
|
|
31
28
|
constructor(_space: Space, schemaMap: TestSchemaMap<T>, generators: TestGeneratorMap<T>, _mutations?: TestMutationsMap<T> | undefined);
|
|
32
|
-
addSchemas(): Promise<(Schema.Schema.AnyNoContext
|
|
29
|
+
addSchemas(): Promise<(import("effect/Schema").Schema.AnyNoContext & {
|
|
30
|
+
readonly typename: string;
|
|
31
|
+
readonly version: string;
|
|
32
|
+
})[]>;
|
|
33
33
|
createObject({ types }?: {
|
|
34
34
|
types?: T[];
|
|
35
|
-
}): Promise<
|
|
35
|
+
}): Promise<Obj.Any>;
|
|
36
36
|
private _maybeRegisterSchema;
|
|
37
|
-
mutateObject(object:
|
|
38
|
-
mutateObjects(objects:
|
|
37
|
+
mutateObject(object: Obj.Any, params: MutationsProviderProps): Promise<void>;
|
|
38
|
+
mutateObjects(objects: Obj.Any[], params: MutationsProviderProps): Promise<void>;
|
|
39
39
|
}
|
|
40
40
|
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/generator.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
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":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,mBAAmB,SAAS,CAAC;AAC7B,cAAc,QAAQ,CAAC"}
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import { type AnyLiveObject } from '@dxos/echo-db';
|
|
3
|
-
import { type EchoSchema } from '@dxos/echo-schema';
|
|
4
|
-
import { type Live } from '@dxos/live-object';
|
|
1
|
+
import { type Obj, type Type } from '@dxos/echo';
|
|
5
2
|
export type TestObject = {
|
|
6
3
|
id: string;
|
|
7
4
|
} & Record<string, any>;
|
|
8
|
-
export type TestSchemaMap<T extends string = string> = Record<T,
|
|
9
|
-
export type TestObjectProvider<T extends string = string> = (type: T) => Promise<
|
|
5
|
+
export type TestSchemaMap<T extends string = string> = Record<T, Type.AnyObj>;
|
|
6
|
+
export type TestObjectProvider<T extends string = string> = (type: T) => Promise<any[]>;
|
|
10
7
|
export type TestGeneratorMap<T extends string = string> = Record<T, (provider: TestObjectProvider<T> | undefined) => any>;
|
|
11
8
|
export type TestMutationsMap<T extends string = string> = Record<T, TestObjectMutators>;
|
|
12
|
-
export type
|
|
9
|
+
export type MutationsProviderProps = {
|
|
13
10
|
count: number;
|
|
14
11
|
mutationSize: number;
|
|
15
12
|
maxContentLength: number;
|
|
16
13
|
};
|
|
17
|
-
export type TestObjectMutators = (object:
|
|
14
|
+
export type TestObjectMutators = (object: Obj.Any, params: MutationsProviderProps) => Promise<void>;
|
|
18
15
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAGjD,MAAM,MAAM,UAAU,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE9D,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAE9E,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAExF,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,MAAM,CAC9D,CAAC,EACD,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,GAAG,CACrD,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAExF,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -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"}
|