@dxos/echo-generator 0.6.13-main.ed424a1 → 0.6.13-staging.1e988a3
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/index.mjs +15 -26
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +14 -25
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/types/src/data.d.ts.map +1 -1
- package/dist/types/src/generator.d.ts +6 -7
- package/dist/types/src/generator.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +2 -3
- package/dist/types/src/types.d.ts.map +1 -1
- package/package.json +11 -15
- package/src/data.ts +17 -17
- package/src/generator.test.ts +3 -2
- package/src/generator.ts +17 -17
- package/src/types.ts +2 -3
- package/dist/lib/node-esm/index.mjs +0 -704
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
|
@@ -10,12 +10,13 @@ import {
|
|
|
10
10
|
// packages/core/echo/echo-generator/src/data.ts
|
|
11
11
|
import { next as A } from "@dxos/automerge/automerge";
|
|
12
12
|
import { createDocAccessor } from "@dxos/client/echo";
|
|
13
|
-
import { create as create2,
|
|
13
|
+
import { create as create2, DynamicSchema as DynamicSchema2, EchoObject, EchoObjectAnnotationId, effectToJsonSchema, getEchoObjectAnnotation as getEchoObjectAnnotation2, ref, S, StoredSchema } from "@dxos/echo-schema";
|
|
14
14
|
import { faker as faker2 } from "@dxos/random";
|
|
15
15
|
|
|
16
16
|
// packages/core/echo/echo-generator/src/generator.ts
|
|
17
17
|
import { Filter } from "@dxos/client/echo";
|
|
18
|
-
import {
|
|
18
|
+
import { DynamicSchema, getEchoObjectAnnotation, getSchema, isReactiveObject } from "@dxos/echo-schema";
|
|
19
|
+
import { create } from "@dxos/echo-schema";
|
|
19
20
|
import { invariant } from "@dxos/invariant";
|
|
20
21
|
import { faker } from "@dxos/random";
|
|
21
22
|
|
|
@@ -46,7 +47,7 @@ var TestObjectGenerator = class {
|
|
|
46
47
|
return Object.values(this._schemas);
|
|
47
48
|
}
|
|
48
49
|
getSchema(type) {
|
|
49
|
-
return this.schemas.find((schema) =>
|
|
50
|
+
return this.schemas.find((schema) => getEchoObjectAnnotation(schema).typename === type);
|
|
50
51
|
}
|
|
51
52
|
setSchema(type, schema) {
|
|
52
53
|
this._schemas[type] = schema;
|
|
@@ -99,7 +100,7 @@ var SpaceObjectGenerator = class extends TestObjectGenerator {
|
|
|
99
100
|
}));
|
|
100
101
|
}
|
|
101
102
|
_maybeRegisterSchema(typename, schema) {
|
|
102
|
-
if (schema instanceof
|
|
103
|
+
if (schema instanceof DynamicSchema) {
|
|
103
104
|
const existingSchema = this._space.db.schema.getSchemaByTypename(typename);
|
|
104
105
|
if (existingSchema != null) {
|
|
105
106
|
return existingSchema;
|
|
@@ -127,7 +128,7 @@ var SpaceObjectGenerator = class extends TestObjectGenerator {
|
|
|
127
128
|
"'Mutations not defined.'"
|
|
128
129
|
]
|
|
129
130
|
});
|
|
130
|
-
const type =
|
|
131
|
+
const type = getEchoObjectAnnotation(getSchema(object)).typename;
|
|
131
132
|
invariant(type && this._mutations?.[type], "Invalid object type.", {
|
|
132
133
|
F: __dxlog_file,
|
|
133
134
|
L: 134,
|
|
@@ -168,52 +169,40 @@ var TestSchemaType;
|
|
|
168
169
|
})(TestSchemaType || (TestSchemaType = {}));
|
|
169
170
|
var createDynamicSchema = (typename, fields) => {
|
|
170
171
|
const typeSchema = S.partial(S.Struct(fields)).pipe(EchoObject(typename, "1.0.0"));
|
|
171
|
-
const typeAnnotation =
|
|
172
|
+
const typeAnnotation = getEchoObjectAnnotation2(typeSchema);
|
|
172
173
|
const schemaToStore = create2(StoredSchema, {
|
|
173
174
|
typename,
|
|
174
175
|
version: "1.0.0",
|
|
175
176
|
jsonSchema: {}
|
|
176
177
|
});
|
|
177
178
|
const updatedSchema = typeSchema.annotations({
|
|
178
|
-
[
|
|
179
|
+
[EchoObjectAnnotationId]: {
|
|
179
180
|
...typeAnnotation,
|
|
180
181
|
schemaId: schemaToStore.id
|
|
181
182
|
}
|
|
182
183
|
});
|
|
183
184
|
schemaToStore.jsonSchema = effectToJsonSchema(updatedSchema);
|
|
184
|
-
return new
|
|
185
|
+
return new DynamicSchema2(schemaToStore);
|
|
185
186
|
};
|
|
186
187
|
var testSchemas = () => {
|
|
187
188
|
const document = createDynamicSchema("example.com/type/document", {
|
|
188
|
-
title: S.String.
|
|
189
|
-
description: "title of the document"
|
|
190
|
-
}),
|
|
189
|
+
title: S.String.pipe(S.description("title of the document")),
|
|
191
190
|
content: S.String
|
|
192
191
|
});
|
|
193
192
|
const organization = createDynamicSchema("example.com/type/organization", {
|
|
194
|
-
name: S.String.
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
website: S.String.annotations({
|
|
198
|
-
description: "public website URL"
|
|
199
|
-
}),
|
|
200
|
-
description: S.String.annotations({
|
|
201
|
-
description: "short summary of the company"
|
|
202
|
-
})
|
|
193
|
+
name: S.String.pipe(S.description("name of the company or organization")),
|
|
194
|
+
website: S.String.pipe(S.description("public website URL")),
|
|
195
|
+
description: S.String.pipe(S.description("short summary of the company"))
|
|
203
196
|
});
|
|
204
197
|
const contact = createDynamicSchema("example.com/type/contact", {
|
|
205
|
-
name: S.String.
|
|
206
|
-
description: "name of the person"
|
|
207
|
-
}),
|
|
198
|
+
name: S.String.pipe(S.description("name of the person")),
|
|
208
199
|
email: S.String,
|
|
209
200
|
org: ref(organization),
|
|
210
201
|
lat: S.Number,
|
|
211
202
|
lng: S.Number
|
|
212
203
|
});
|
|
213
204
|
const project = createDynamicSchema("example.com/type/project", {
|
|
214
|
-
name: S.String.
|
|
215
|
-
description: "name of the project"
|
|
216
|
-
}),
|
|
205
|
+
name: S.String.pipe(S.description("name of the project")),
|
|
217
206
|
description: S.String,
|
|
218
207
|
website: S.String,
|
|
219
208
|
repo: S.String,
|
|
@@ -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 '@dxos/automerge/automerge';\nimport { createDocAccessor, type Space } from '@dxos/client/echo';\nimport {\n create,\n MutableSchema,\n EchoObject,\n ObjectAnnotationId,\n effectToJsonSchema,\n getObjectAnnotation,\n ref,\n StoredSchema,\n S,\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): 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\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): MutableSchema => {\n const typeSchema = S.partial(S.Struct(fields)).pipe(EchoObject(typename, '1.0.0'));\n const typeAnnotation = getObjectAnnotation(typeSchema);\n const schemaToStore = create(StoredSchema, {\n typename,\n version: '1.0.0',\n jsonSchema: {},\n });\n const updatedSchema = typeSchema.annotations({\n [ObjectAnnotationId]: { ...typeAnnotation, schemaId: schemaToStore.id },\n });\n schemaToStore.jsonSchema = effectToJsonSchema(updatedSchema);\n return new MutableSchema(schemaToStore);\n};\n\nconst testSchemas = (): TestSchemaMap<TestSchemaType> => {\n const document = createDynamicSchema(TestSchemaType.document, {\n title: S.String.annotations({ description: 'title of the document' }),\n content: S.String,\n });\n\n const organization = createDynamicSchema(TestSchemaType.organization, {\n name: S.String.annotations({ description: 'name of the company or organization' }),\n website: S.String.annotations({ description: 'public website URL' }),\n description: S.String.annotations({ description: 'short summary of the company' }),\n });\n\n const contact = createDynamicSchema(TestSchemaType.contact, {\n name: S.String.annotations({ 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.annotations({ 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 { type EchoReactiveObject } from '@dxos/echo-db';\nimport {\n create,\n MutableSchema,\n type ReactiveObject,\n getObjectAnnotation,\n getSchema,\n isReactiveObject,\n type S,\n} from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { faker } from '@dxos/random';\n\nimport { type TestSchemaType } from './data';\nimport {\n type MutationsProviderParams,\n type TestGeneratorMap,\n type TestMutationsMap,\n type TestObjectProvider,\n type TestSchemaMap,\n} from './types';\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(): (MutableSchema | S.Schema<any>)[] {\n return Object.values(this._schemas);\n }\n\n getSchema(type: T): MutableSchema | S.Schema<any> | undefined {\n return this.schemas.find((schema) => getObjectAnnotation(schema)!.typename === type);\n }\n\n protected setSchema(type: T, schema: MutableSchema | 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<MutableSchema | 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: (MutableSchema | S.Schema<any>)[] = [];\n for (const [typename, schema] of Object.entries(this._schemas)) {\n result.push(this._maybeRegisterSchema(typename, schema as MutableSchema | 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: MutableSchema | S.Schema<any>): MutableSchema | S.Schema<any> {\n if (schema instanceof MutableSchema) {\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 = getObjectAnnotation(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": ";;;;;;;;;;
|
|
6
|
-
"names": ["next", "A", "createDocAccessor", "create", "
|
|
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
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"inject-globals:@inject-globals":{"bytes":
|
|
1
|
+
{"inputs":{"inject-globals:@inject-globals":{"bytes":384,"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}}}
|
package/dist/lib/node/index.cjs
CHANGED
|
@@ -35,6 +35,7 @@ var import_echo_schema = require("@dxos/echo-schema");
|
|
|
35
35
|
var import_random = require("@dxos/random");
|
|
36
36
|
var import_echo2 = require("@dxos/client/echo");
|
|
37
37
|
var import_echo_schema2 = require("@dxos/echo-schema");
|
|
38
|
+
var import_echo_schema3 = require("@dxos/echo-schema");
|
|
38
39
|
var import_invariant = require("@dxos/invariant");
|
|
39
40
|
var import_random2 = require("@dxos/random");
|
|
40
41
|
var range = (fn, length) => Array.from({
|
|
@@ -61,7 +62,7 @@ var TestObjectGenerator = class {
|
|
|
61
62
|
return Object.values(this._schemas);
|
|
62
63
|
}
|
|
63
64
|
getSchema(type) {
|
|
64
|
-
return this.schemas.find((schema) => (0, import_echo_schema2.
|
|
65
|
+
return this.schemas.find((schema) => (0, import_echo_schema2.getEchoObjectAnnotation)(schema).typename === type);
|
|
65
66
|
}
|
|
66
67
|
setSchema(type, schema) {
|
|
67
68
|
this._schemas[type] = schema;
|
|
@@ -73,7 +74,7 @@ var TestObjectGenerator = class {
|
|
|
73
74
|
return data;
|
|
74
75
|
}
|
|
75
76
|
const schema = this.getSchema(type);
|
|
76
|
-
return schema ? (0,
|
|
77
|
+
return schema ? (0, import_echo_schema3.create)(schema, data) : (0, import_echo_schema3.create)(data);
|
|
77
78
|
}
|
|
78
79
|
// TODO(burdon): Create batch.
|
|
79
80
|
// TODO(burdon): Based on dependencies (e.g., organization before contact).
|
|
@@ -114,7 +115,7 @@ var SpaceObjectGenerator = class extends TestObjectGenerator {
|
|
|
114
115
|
}));
|
|
115
116
|
}
|
|
116
117
|
_maybeRegisterSchema(typename, schema) {
|
|
117
|
-
if (schema instanceof import_echo_schema2.
|
|
118
|
+
if (schema instanceof import_echo_schema2.DynamicSchema) {
|
|
118
119
|
const existingSchema = this._space.db.schema.getSchemaByTypename(typename);
|
|
119
120
|
if (existingSchema != null) {
|
|
120
121
|
return existingSchema;
|
|
@@ -142,7 +143,7 @@ var SpaceObjectGenerator = class extends TestObjectGenerator {
|
|
|
142
143
|
"'Mutations not defined.'"
|
|
143
144
|
]
|
|
144
145
|
});
|
|
145
|
-
const type = (0, import_echo_schema2.
|
|
146
|
+
const type = (0, import_echo_schema2.getEchoObjectAnnotation)((0, import_echo_schema2.getSchema)(object)).typename;
|
|
146
147
|
(0, import_invariant.invariant)(type && this._mutations?.[type], "Invalid object type.", {
|
|
147
148
|
F: __dxlog_file,
|
|
148
149
|
L: 134,
|
|
@@ -181,52 +182,40 @@ var TestSchemaType;
|
|
|
181
182
|
})(TestSchemaType || (TestSchemaType = {}));
|
|
182
183
|
var createDynamicSchema = (typename, fields) => {
|
|
183
184
|
const typeSchema = import_echo_schema.S.partial(import_echo_schema.S.Struct(fields)).pipe((0, import_echo_schema.EchoObject)(typename, "1.0.0"));
|
|
184
|
-
const typeAnnotation = (0, import_echo_schema.
|
|
185
|
+
const typeAnnotation = (0, import_echo_schema.getEchoObjectAnnotation)(typeSchema);
|
|
185
186
|
const schemaToStore = (0, import_echo_schema.create)(import_echo_schema.StoredSchema, {
|
|
186
187
|
typename,
|
|
187
188
|
version: "1.0.0",
|
|
188
189
|
jsonSchema: {}
|
|
189
190
|
});
|
|
190
191
|
const updatedSchema = typeSchema.annotations({
|
|
191
|
-
[import_echo_schema.
|
|
192
|
+
[import_echo_schema.EchoObjectAnnotationId]: {
|
|
192
193
|
...typeAnnotation,
|
|
193
194
|
schemaId: schemaToStore.id
|
|
194
195
|
}
|
|
195
196
|
});
|
|
196
197
|
schemaToStore.jsonSchema = (0, import_echo_schema.effectToJsonSchema)(updatedSchema);
|
|
197
|
-
return new import_echo_schema.
|
|
198
|
+
return new import_echo_schema.DynamicSchema(schemaToStore);
|
|
198
199
|
};
|
|
199
200
|
var testSchemas = () => {
|
|
200
201
|
const document = createDynamicSchema("example.com/type/document", {
|
|
201
|
-
title: import_echo_schema.S.String.
|
|
202
|
-
description: "title of the document"
|
|
203
|
-
}),
|
|
202
|
+
title: import_echo_schema.S.String.pipe(import_echo_schema.S.description("title of the document")),
|
|
204
203
|
content: import_echo_schema.S.String
|
|
205
204
|
});
|
|
206
205
|
const organization = createDynamicSchema("example.com/type/organization", {
|
|
207
|
-
name: import_echo_schema.S.String.
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
website: import_echo_schema.S.String.annotations({
|
|
211
|
-
description: "public website URL"
|
|
212
|
-
}),
|
|
213
|
-
description: import_echo_schema.S.String.annotations({
|
|
214
|
-
description: "short summary of the company"
|
|
215
|
-
})
|
|
206
|
+
name: import_echo_schema.S.String.pipe(import_echo_schema.S.description("name of the company or organization")),
|
|
207
|
+
website: import_echo_schema.S.String.pipe(import_echo_schema.S.description("public website URL")),
|
|
208
|
+
description: import_echo_schema.S.String.pipe(import_echo_schema.S.description("short summary of the company"))
|
|
216
209
|
});
|
|
217
210
|
const contact = createDynamicSchema("example.com/type/contact", {
|
|
218
|
-
name: import_echo_schema.S.String.
|
|
219
|
-
description: "name of the person"
|
|
220
|
-
}),
|
|
211
|
+
name: import_echo_schema.S.String.pipe(import_echo_schema.S.description("name of the person")),
|
|
221
212
|
email: import_echo_schema.S.String,
|
|
222
213
|
org: (0, import_echo_schema.ref)(organization),
|
|
223
214
|
lat: import_echo_schema.S.Number,
|
|
224
215
|
lng: import_echo_schema.S.Number
|
|
225
216
|
});
|
|
226
217
|
const project = createDynamicSchema("example.com/type/project", {
|
|
227
|
-
name: import_echo_schema.S.String.
|
|
228
|
-
description: "name of the project"
|
|
229
|
-
}),
|
|
218
|
+
name: import_echo_schema.S.String.pipe(import_echo_schema.S.description("name of the project")),
|
|
230
219
|
description: import_echo_schema.S.String,
|
|
231
220
|
website: import_echo_schema.S.String,
|
|
232
221
|
repo: import_echo_schema.S.String,
|
|
@@ -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 '@dxos/automerge/automerge';\nimport { createDocAccessor, type Space } from '@dxos/client/echo';\nimport {\n create,\n MutableSchema,\n EchoObject,\n ObjectAnnotationId,\n effectToJsonSchema,\n getObjectAnnotation,\n ref,\n StoredSchema,\n S,\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): 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\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): MutableSchema => {\n const typeSchema = S.partial(S.Struct(fields)).pipe(EchoObject(typename, '1.0.0'));\n const typeAnnotation = getObjectAnnotation(typeSchema);\n const schemaToStore = create(StoredSchema, {\n typename,\n version: '1.0.0',\n jsonSchema: {},\n });\n const updatedSchema = typeSchema.annotations({\n [ObjectAnnotationId]: { ...typeAnnotation, schemaId: schemaToStore.id },\n });\n schemaToStore.jsonSchema = effectToJsonSchema(updatedSchema);\n return new MutableSchema(schemaToStore);\n};\n\nconst testSchemas = (): TestSchemaMap<TestSchemaType> => {\n const document = createDynamicSchema(TestSchemaType.document, {\n title: S.String.annotations({ description: 'title of the document' }),\n content: S.String,\n });\n\n const organization = createDynamicSchema(TestSchemaType.organization, {\n name: S.String.annotations({ description: 'name of the company or organization' }),\n website: S.String.annotations({ description: 'public website URL' }),\n description: S.String.annotations({ description: 'short summary of the company' }),\n });\n\n const contact = createDynamicSchema(TestSchemaType.contact, {\n name: S.String.annotations({ 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.annotations({ 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 { type EchoReactiveObject } from '@dxos/echo-db';\nimport {\n create,\n MutableSchema,\n type ReactiveObject,\n getObjectAnnotation,\n getSchema,\n isReactiveObject,\n type S,\n} from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { faker } from '@dxos/random';\n\nimport { type TestSchemaType } from './data';\nimport {\n type MutationsProviderParams,\n type TestGeneratorMap,\n type TestMutationsMap,\n type TestObjectProvider,\n type TestSchemaMap,\n} from './types';\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(): (MutableSchema | S.Schema<any>)[] {\n return Object.values(this._schemas);\n }\n\n getSchema(type: T): MutableSchema | S.Schema<any> | undefined {\n return this.schemas.find((schema) => getObjectAnnotation(schema)!.typename === type);\n }\n\n protected setSchema(type: T, schema: MutableSchema | 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<MutableSchema | 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: (MutableSchema | S.Schema<any>)[] = [];\n for (const [typename, schema] of Object.entries(this._schemas)) {\n result.push(this._maybeRegisterSchema(typename, schema as MutableSchema | 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: MutableSchema | S.Schema<any>): MutableSchema | S.Schema<any> {\n if (schema instanceof MutableSchema) {\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 = getObjectAnnotation(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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
6
|
-
"names": ["import_echo", "import_echo_schema", "import_random", "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", "
|
|
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": ["import_echo", "import_echo_schema", "import_random", "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", "tasks", "entries", "count", "flatMap", "t", "Promise", "all", "SpaceObjectGenerator", "_space", "schemaMap", "generators", "_mutations", "db", "query", "Filter", "run", "objects", "forEach", "dynamicSchema", "_maybeRegisterSchema", "addSchemas", "push", "add", "DynamicSchema", "existingSchema", "getSchemaByTypename", "serializedSchema", "registerSchema", "graph", "schemaRegistry", "addSchema", "mutateObject", "object", "params", "invariant", "mutateObjects", "Status", "Priority", "TestSchemaType", "createDynamicSchema", "fields", "typeSchema", "S", "partial", "Struct", "pipe", "EchoObject", "typeAnnotation", "schemaToStore", "StoredSchema", "version", "jsonSchema", "updatedSchema", "annotations", "EchoObjectAnnotationId", "schemaId", "id", "effectToJsonSchema", "testSchemas", "document", "title", "String", "description", "content", "organization", "name", "website", "contact", "email", "org", "ref", "lat", "Number", "lng", "project", "repo", "status", "priority", "active", "testObjectGenerators", "lorem", "sentence", "sentences", "min", "max", "number", "int", "company", "datatype", "boolean", "probability", "internet", "url", "undefined", "provider", "organizations", "location", "locations", "person", "fullName", "commerce", "productName", "testObjectMutators", "accessor", "createDocAccessor", "handle", "change", "doc", "A", "splice", "path", "slice", "maxContentLength", "mutationSize", "Error", "createTestObjectGenerator", "createSpaceObjectGenerator", "space"]
|
|
7
7
|
}
|
package/dist/lib/node/meta.json
CHANGED
|
@@ -1 +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":
|
|
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/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":29107},"packages/core/echo/echo-generator/dist/lib/node/index.cjs":{"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}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/data.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/data.ts"],"names":[],"mappings":"AAQA,OAAO,EAAqB,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAclE,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAKxE,eAAO,MAAM,MAAM,UAAgC,CAAC;AACpD,eAAO,MAAM,QAAQ,UAAkB,CAAC;AAExC,oBAAY,cAAc;IACxB,QAAQ,8BAA8B;IACtC,YAAY,kCAAkC;IAC9C,OAAO,6BAA6B;IACpC,OAAO,6BAA6B;CACrC;AAsHD,eAAO,MAAM,yBAAyB,2CAAqE,CAAC;AAE5G,eAAO,MAAM,0BAA0B,UAAW,KAAK,yCACmC,CAAC"}
|