@dxos/echo-generator 0.4.10-main.fa5a270 → 0.4.10-main.fd8ea31

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.
@@ -25,14 +25,13 @@ __export(node_exports, {
25
25
  TestSchemaType: () => TestSchemaType,
26
26
  createSpaceObjectGenerator: () => createSpaceObjectGenerator,
27
27
  createTestObjectGenerator: () => createTestObjectGenerator,
28
- range: () => range,
29
- testObjectGenerators: () => testObjectGenerators,
30
- testSchemas: () => testSchemas
28
+ range: () => range
31
29
  });
32
30
  module.exports = __toCommonJS(node_exports);
33
- var import_echo = require("@dxos/client/echo");
31
+ var import_echo_schema = require("@dxos/echo-schema");
34
32
  var import_random = require("@dxos/random");
35
- var import_echo2 = require("@dxos/client/echo");
33
+ var import_echo = require("@dxos/client/echo");
34
+ var import_echo_schema2 = require("@dxos/echo-schema");
36
35
  var import_random2 = require("@dxos/random");
37
36
  var range = (fn, length) => Array.from({
38
37
  length
@@ -54,56 +53,54 @@ var TestObjectGenerator = class {
54
53
  this._schemas[type] = schema;
55
54
  }
56
55
  // TODO(burdon): Runtime type check via: https://github.com/Effect-TS/schema (or zod).
57
- createObject({ types } = {}) {
56
+ async createObject({ types } = {}) {
58
57
  const type = import_random2.faker.helpers.arrayElement(types ?? Object.keys(this._schemas));
59
- const data = this._generators[type](this._provider);
58
+ const data = await this._generators[type](this._provider);
60
59
  const schema = this.getSchema(type);
61
- return new import_echo2.Expando(data, {
62
- schema
63
- });
60
+ return schema ? (0, import_echo_schema2.create)(schema, data) : (0, import_echo_schema2.create)(data);
64
61
  }
65
62
  // TODO(burdon): Create batch.
66
63
  // TODO(burdon): Based on dependencies (e.g., organization before contact).
67
- createObjects(map) {
68
- const objects = [];
69
- Object.entries(map).forEach(([type, count]) => {
70
- range(() => objects.push(this.createObject({
64
+ async createObjects(map) {
65
+ const tasks = Object.entries(map).map(([type, count]) => {
66
+ return range(() => this.createObject({
71
67
  types: [
72
68
  type
73
69
  ]
74
- })), count);
75
- });
76
- return objects;
70
+ }), count);
71
+ }).flatMap((t) => t);
72
+ return Promise.all(tasks);
77
73
  }
78
74
  };
79
75
  var SpaceObjectGenerator = class extends TestObjectGenerator {
80
76
  constructor(_space, schemaMap, generators) {
81
- super(schemaMap, generators, (type) => {
82
- const { objects: objects2 } = this._space.db.query((object) => {
83
- return object.__schema?.id === this.getSchema(type)?.id;
84
- });
85
- return objects2;
77
+ super(schemaMap, generators, async (type) => {
78
+ const schema = this.getSchema(type);
79
+ return (schema && (await this._space.db.query(import_echo.Filter.schema(schema)).run()).objects) ?? [];
86
80
  });
87
81
  this._space = _space;
88
- const { objects } = this._space.db.query(import_echo2.Schema.filter());
89
- Object.keys(schemaMap).forEach((type) => {
90
- const schema = objects.find((object) => object.typename === type);
91
- if (schema) {
92
- this.setSchema(type, schema);
82
+ Object.entries(schemaMap).forEach(([type, dynamicSchema]) => {
83
+ let schema = this._space.db.schemaRegistry.getRegisteredByTypename(type);
84
+ if (schema == null) {
85
+ schema = this._space.db.schemaRegistry.add(dynamicSchema.schema);
93
86
  }
87
+ this.setSchema(type, schema);
94
88
  });
95
89
  }
96
90
  addSchemas() {
97
- const { objects } = this._space.db.query(import_echo2.Schema.filter());
91
+ const result = [];
98
92
  this.schemas.forEach((schema) => {
99
- if (!objects.find((object) => object.typename === schema.typename)) {
100
- this._space.db.add(schema);
93
+ const existing = this._space.db.schemaRegistry.getRegisteredByTypename(schema.typename);
94
+ if (existing == null) {
95
+ result.push(this._space.db.schemaRegistry.add(schema.schema));
96
+ } else {
97
+ result.push(existing);
101
98
  }
102
99
  });
103
- return this.schemas;
100
+ return result;
104
101
  }
105
- createObject({ types } = {}) {
106
- return this._space.db.add(super.createObject({
102
+ async createObject({ types } = {}) {
103
+ return this._space.db.add(await super.createObject({
107
104
  types
108
105
  }));
109
106
  }
@@ -127,108 +124,40 @@ var TestSchemaType;
127
124
  TestSchemaType2["contact"] = "example.com/schema/contact";
128
125
  TestSchemaType2["project"] = "example.com/schema/project";
129
126
  })(TestSchemaType || (TestSchemaType = {}));
127
+ var createDynamicSchema = (typename, fields) => {
128
+ const typeSchema = import_echo_schema.S.partial(import_echo_schema.S.struct(fields)).pipe((0, import_echo_schema.echoObject)(typename, "1.0.0"));
129
+ return new import_echo_schema.DynamicEchoSchema((0, import_echo_schema.create)(import_echo_schema.StoredEchoSchema, {
130
+ typename,
131
+ version: "1.0.0",
132
+ jsonSchema: (0, import_echo_schema.effectToJsonSchema)(typeSchema)
133
+ }));
134
+ };
130
135
  var testSchemas = () => {
131
- const document = new import_echo.Schema({
132
- typename: "example.com/schema/document",
133
- props: [
134
- {
135
- id: "title",
136
- type: import_echo.Schema.PropType.STRING,
137
- description: "title of the document"
138
- },
139
- {
140
- id: "content",
141
- type: import_echo.Schema.PropType.STRING
142
- }
143
- ]
136
+ const document = createDynamicSchema("example.com/schema/document", {
137
+ title: import_echo_schema.S.string.pipe(import_echo_schema.S.description("title of the document")),
138
+ content: import_echo_schema.S.string
144
139
  });
145
- const organization = new import_echo.Schema({
146
- typename: "example.com/schema/organization",
147
- props: [
148
- {
149
- id: "name",
150
- type: import_echo.Schema.PropType.STRING,
151
- description: "name of the company or organization"
152
- },
153
- {
154
- id: "website",
155
- type: import_echo.Schema.PropType.STRING,
156
- description: "public website URL"
157
- },
158
- {
159
- id: "description",
160
- type: import_echo.Schema.PropType.STRING,
161
- description: "short summary of the company"
162
- }
163
- ]
140
+ const organization = createDynamicSchema("example.com/schema/organization", {
141
+ name: import_echo_schema.S.string.pipe(import_echo_schema.S.description("name of the company or organization")),
142
+ website: import_echo_schema.S.string.pipe(import_echo_schema.S.description("public website URL")),
143
+ description: import_echo_schema.S.string.pipe(import_echo_schema.S.description("short summary of the company"))
164
144
  });
165
- const contact = new import_echo.Schema({
166
- typename: "example.com/schema/contact",
167
- props: [
168
- {
169
- id: "name",
170
- type: import_echo.Schema.PropType.STRING,
171
- description: "name of the person"
172
- },
173
- // TODO(burdon): Support multiple tagged properties.
174
- {
175
- id: "email",
176
- type: import_echo.Schema.PropType.STRING
177
- },
178
- {
179
- id: "org",
180
- type: import_echo.Schema.PropType.REF,
181
- ref: organization
182
- },
183
- // TODO(burdon): Convert to object with nested props.
184
- {
185
- id: "lat",
186
- type: import_echo.Schema.PropType.NUMBER
187
- },
188
- {
189
- id: "lng",
190
- type: import_echo.Schema.PropType.NUMBER
191
- }
192
- ]
145
+ const contact = createDynamicSchema("example.com/schema/contact", {
146
+ name: import_echo_schema.S.string.pipe(import_echo_schema.S.description("name of the person")),
147
+ email: import_echo_schema.S.string,
148
+ org: (0, import_echo_schema.ref)(organization),
149
+ lat: import_echo_schema.S.number,
150
+ lng: import_echo_schema.S.number
193
151
  });
194
- const project = new import_echo.Schema({
195
- typename: "example.com/schema/project",
196
- props: [
197
- {
198
- id: "name",
199
- type: import_echo.Schema.PropType.STRING,
200
- description: "name of the project"
201
- },
202
- {
203
- id: "description",
204
- type: import_echo.Schema.PropType.STRING
205
- },
206
- {
207
- id: "website",
208
- type: import_echo.Schema.PropType.STRING
209
- },
210
- {
211
- id: "repo",
212
- type: import_echo.Schema.PropType.STRING
213
- },
214
- {
215
- id: "status",
216
- type: import_echo.Schema.PropType.STRING
217
- },
218
- {
219
- id: "priority",
220
- type: import_echo.Schema.PropType.NUMBER
221
- },
222
- {
223
- id: "active",
224
- type: import_echo.Schema.PropType.BOOLEAN
225
- },
226
- {
227
- id: "org",
228
- type: import_echo.Schema.PropType.REF,
229
- ref: organization
230
- }
231
- ]
152
+ const project = createDynamicSchema("example.com/schema/project", {
153
+ name: import_echo_schema.S.string.pipe(import_echo_schema.S.description("name of the project")),
154
+ description: import_echo_schema.S.string,
155
+ website: import_echo_schema.S.string,
156
+ repo: import_echo_schema.S.string,
157
+ status: import_echo_schema.S.string,
158
+ priority: import_echo_schema.S.number,
159
+ active: import_echo_schema.S.boolean,
160
+ org: (0, import_echo_schema.ref)(organization)
232
161
  });
233
162
  return {
234
163
  ["example.com/schema/document"]: document,
@@ -238,7 +167,7 @@ var testSchemas = () => {
238
167
  };
239
168
  };
240
169
  var testObjectGenerators = {
241
- ["example.com/schema/document"]: () => ({
170
+ ["example.com/schema/document"]: async () => ({
242
171
  title: import_random.faker.lorem.sentence(3),
243
172
  content: import_random.faker.lorem.sentences({
244
173
  min: 1,
@@ -248,15 +177,15 @@ var testObjectGenerators = {
248
177
  })
249
178
  })
250
179
  }),
251
- ["example.com/schema/organization"]: () => ({
180
+ ["example.com/schema/organization"]: async () => ({
252
181
  name: import_random.faker.company.name(),
253
182
  website: import_random.faker.datatype.boolean({
254
183
  probability: 0.3
255
184
  }) ? import_random.faker.internet.url() : void 0,
256
- description: new import_echo.TextObject(import_random.faker.lorem.sentences())
185
+ description: import_random.faker.lorem.sentences()
257
186
  }),
258
- ["example.com/schema/contact"]: (provider) => {
259
- const organizations = provider?.("example.com/schema/organization");
187
+ ["example.com/schema/contact"]: async (provider) => {
188
+ const organizations = await provider?.("example.com/schema/organization");
260
189
  const location = import_random.faker.datatype.boolean() ? import_random.faker.helpers.arrayElement(locations) : void 0;
261
190
  return {
262
191
  name: import_random.faker.person.fullName(),
@@ -269,7 +198,7 @@ var testObjectGenerators = {
269
198
  ...location
270
199
  };
271
200
  },
272
- ["example.com/schema/project"]: () => ({
201
+ ["example.com/schema/project"]: async () => ({
273
202
  name: import_random.faker.commerce.productName(),
274
203
  repo: import_random.faker.datatype.boolean({
275
204
  probability: 0.3
@@ -692,8 +621,6 @@ var locations = [
692
621
  TestSchemaType,
693
622
  createSpaceObjectGenerator,
694
623
  createTestObjectGenerator,
695
- range,
696
- testObjectGenerators,
697
- testSchemas
624
+ range
698
625
  });
699
626
  //# sourceMappingURL=index.cjs.map
@@ -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\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 { Schema, type Space, TextObject } from '@dxos/client/echo';\nimport { faker } from '@dxos/random';\n\nimport { SpaceObjectGenerator, TestObjectGenerator } from './generator';\nimport { type TestGeneratorMap, type TestSchemaMap } from './types';\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/schema/document',\n organization = 'example.com/schema/organization',\n contact = 'example.com/schema/contact',\n project = 'example.com/schema/project',\n}\n\nexport const testSchemas = (): TestSchemaMap<TestSchemaType> => {\n const document = new Schema({\n typename: TestSchemaType.document,\n props: [\n {\n id: 'title',\n type: Schema.PropType.STRING,\n description: 'title of the document',\n },\n {\n id: 'content',\n type: Schema.PropType.STRING, // TODO(burdon): Rich text.\n },\n ],\n });\n\n const organization = new Schema({\n typename: TestSchemaType.organization,\n props: [\n {\n id: 'name',\n type: Schema.PropType.STRING,\n description: 'name of the company or organization',\n },\n {\n id: 'website',\n type: Schema.PropType.STRING,\n description: 'public website URL',\n },\n {\n id: 'description',\n type: Schema.PropType.STRING,\n description: 'short summary of the company',\n },\n ],\n });\n\n const contact = new Schema({\n typename: TestSchemaType.contact,\n props: [\n {\n id: 'name',\n type: Schema.PropType.STRING,\n description: 'name of the person',\n },\n // TODO(burdon): Support multiple tagged properties.\n {\n id: 'email',\n type: Schema.PropType.STRING,\n },\n {\n id: 'org',\n type: Schema.PropType.REF,\n ref: organization,\n },\n // TODO(burdon): Convert to object with nested props.\n {\n id: 'lat',\n type: Schema.PropType.NUMBER,\n },\n {\n id: 'lng',\n type: Schema.PropType.NUMBER,\n },\n ],\n });\n\n const project = new Schema({\n typename: TestSchemaType.project,\n props: [\n {\n id: 'name',\n type: Schema.PropType.STRING,\n description: 'name of the project',\n },\n {\n id: 'description',\n type: Schema.PropType.STRING, // TODO(burdon): Text.\n },\n {\n id: 'website',\n type: Schema.PropType.STRING,\n },\n {\n id: 'repo',\n type: Schema.PropType.STRING,\n },\n {\n id: 'status',\n type: Schema.PropType.STRING,\n },\n {\n id: 'priority',\n type: Schema.PropType.NUMBER,\n },\n {\n id: 'active',\n type: Schema.PropType.BOOLEAN,\n },\n {\n id: 'org',\n type: Schema.PropType.REF,\n ref: organization,\n },\n ],\n });\n\n return {\n [TestSchemaType.document]: document,\n [TestSchemaType.organization]: organization,\n [TestSchemaType.contact]: contact,\n [TestSchemaType.project]: project,\n };\n};\n\nexport const testObjectGenerators: TestGeneratorMap<TestSchemaType> = {\n [TestSchemaType.document]: () => ({\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]: () => ({\n name: faker.company.name(),\n website: faker.datatype.boolean({ probability: 0.3 }) ? faker.internet.url() : undefined,\n description: new TextObject(faker.lorem.sentences()),\n }),\n\n [TestSchemaType.contact]: (provider) => {\n const organizations = 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]: () => ({\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\nexport const createTestObjectGenerator = () => new TestObjectGenerator(testSchemas(), testObjectGenerators);\n\nexport const createSpaceObjectGenerator = (space: Space) =>\n new SpaceObjectGenerator(space, testSchemas(), testObjectGenerators);\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 { Expando, type TypedObject, Schema, type Space } from '@dxos/client/echo';\nimport { faker } from '@dxos/random';\n\nimport { type TestSchemaType } from './data';\nimport { type TestGeneratorMap, type TestObjectProvider, type TestSchemaMap } 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 private readonly _schemas: TestSchemaMap<T>,\n private readonly _generators: TestGeneratorMap<T>,\n private readonly _provider?: TestObjectProvider<T>\n ) {}\n\n get schemas(): Schema[] {\n return Object.values(this._schemas);\n }\n\n getSchema(type: T) {\n return this.schemas.find((schema) => schema.typename === type);\n }\n\n protected setSchema(type: T, schema: Schema) {\n this._schemas[type] = schema;\n }\n\n // TODO(burdon): Runtime type check via: https://github.com/Effect-TS/schema (or zod).\n createObject({ types }: { types?: T[] } = {}): TypedObject {\n const type = faker.helpers.arrayElement(types ?? (Object.keys(this._schemas) as T[]));\n const data = this._generators[type](this._provider);\n const schema = this.getSchema(type);\n return new Expando(data, { schema });\n }\n\n // TODO(burdon): Create batch.\n // TODO(burdon): Based on dependencies (e.g., organization before contact).\n createObjects(map: Partial<Record<T, number>>): Expando[] {\n const objects: Expando[] = [];\n Object.entries<number>(map as any).forEach(([type, count]) => {\n range(() => objects.push(this.createObject({ types: [type as T] })), count);\n });\n\n return objects;\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 ) {\n super(schemaMap, generators, (type: T) => {\n const { objects } = this._space.db.query((object: TypedObject) => {\n return object.__schema?.id === this.getSchema(type)?.id;\n });\n\n return 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 const { objects } = this._space.db.query(Schema.filter());\n Object.keys(schemaMap).forEach((type) => {\n const schema = objects.find((object) => object.typename === type);\n if (schema) {\n this.setSchema(type as T, schema);\n }\n });\n }\n\n addSchemas() {\n const { objects } = this._space.db.query(Schema.filter());\n this.schemas.forEach((schema) => {\n if (!objects.find((object) => object.typename === schema.typename)) {\n this._space.db.add(schema);\n }\n });\n\n return this.schemas;\n }\n\n override createObject({ types }: { types?: T[] } = {}): Expando {\n return this._space.db.add(super.createObject({ types }));\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"],
5
- "mappings": "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",
6
- "names": ["import_echo", "import_random", "range", "fn", "length", "Array", "from", "map", "_", "i", "filter", "Boolean", "TestObjectGenerator", "constructor", "_schemas", "_generators", "_provider", "schemas", "Object", "values", "getSchema", "type", "find", "schema", "typename", "setSchema", "createObject", "types", "faker", "helpers", "arrayElement", "keys", "data", "Expando", "createObjects", "objects", "entries", "forEach", "count", "push", "SpaceObjectGenerator", "_space", "schemaMap", "generators", "db", "query", "object", "__schema", "id", "Schema", "addSchemas", "add", "Status", "Priority", "TestSchemaType", "testSchemas", "document", "props", "PropType", "STRING", "description", "organization", "contact", "REF", "ref", "NUMBER", "project", "BOOLEAN", "testObjectGenerators", "title", "lorem", "sentence", "content", "sentences", "min", "max", "number", "int", "name", "company", "website", "datatype", "boolean", "probability", "internet", "url", "undefined", "TextObject", "provider", "organizations", "location", "locations", "person", "fullName", "email", "org", "commerce", "productName", "repo", "status", "priority", "active", "createTestObjectGenerator", "createSpaceObjectGenerator", "space", "lat", "lng"]
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 { type Space } from '@dxos/client/echo';\nimport { S, DynamicEchoSchema, effectToJsonSchema, StoredEchoSchema, create, ref, echoObject } from '@dxos/echo-schema';\nimport { faker } from '@dxos/random';\n\nimport { SpaceObjectGenerator, TestObjectGenerator } from './generator';\nimport { type TestGeneratorMap, type TestSchemaMap } from './types';\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/schema/document',\n organization = 'example.com/schema/organization',\n contact = 'example.com/schema/contact',\n project = 'example.com/schema/project',\n}\n\nconst createDynamicSchema = (typename: string, fields: S.Struct.Fields): DynamicEchoSchema => {\n const typeSchema = S.partial(S.struct(fields)).pipe(echoObject(typename, '1.0.0'));\n return new DynamicEchoSchema(\n create(StoredEchoSchema, {\n typename,\n version: '1.0.0',\n jsonSchema: effectToJsonSchema(typeSchema),\n }),\n );\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\nexport const createTestObjectGenerator = () => new TestObjectGenerator(testSchemas(), testObjectGenerators);\n\nexport const createSpaceObjectGenerator = (space: Space) =>\n new SpaceObjectGenerator(space, testSchemas(), testObjectGenerators);\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 DynamicEchoSchema, type ReactiveObject } from '@dxos/echo-schema';\nimport { create } from '@dxos/echo-schema';\nimport { faker } from '@dxos/random';\n\nimport { type TestSchemaType } from './data';\nimport { type TestGeneratorMap, type TestObjectProvider, type TestSchemaMap } 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 private readonly _schemas: TestSchemaMap<T>,\n private readonly _generators: TestGeneratorMap<T>,\n private readonly _provider?: TestObjectProvider<T>\n ) {}\n\n get schemas(): DynamicEchoSchema[] {\n return Object.values(this._schemas);\n }\n\n getSchema(type: T): DynamicEchoSchema | undefined {\n return this.schemas.find((schema) => schema.typename === type);\n }\n\n protected setSchema(type: T, schema: DynamicEchoSchema) {\n this._schemas[type] = schema;\n }\n\n // TODO(burdon): Runtime type check via: https://github.com/Effect-TS/schema (or zod).\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 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>>): Promise<ReactiveObject<any>[]> {\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 ) {\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<DynamicEchoSchema>(schemaMap).forEach(([type, dynamicSchema]) => {\n let schema = this._space.db.schemaRegistry.getRegisteredByTypename(type);\n if (schema == null) {\n schema = this._space.db.schemaRegistry.add(dynamicSchema.schema);\n }\n this.setSchema(type as T, schema);\n });\n }\n\n addSchemas() {\n const result: DynamicEchoSchema[] = [];\n this.schemas.forEach((schema) => {\n const existing = this._space.db.schemaRegistry.getRegisteredByTypename(schema.typename);\n if (existing == null) {\n result.push(this._space.db.schemaRegistry.add(schema.schema));\n } else {\n result.push(existing);\n }\n });\n\n return result;\n }\n\n override async createObject({ types }: { types?: T[] } = {}): Promise<ReactiveObject<any>> {\n return this._space.db.add(await super.createObject({ types }));\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"],
5
+ "mappings": "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",
6
+ "names": ["import_echo_schema", "import_random", "range", "fn", "length", "Array", "from", "map", "_", "i", "filter", "Boolean", "TestObjectGenerator", "constructor", "_schemas", "_generators", "_provider", "schemas", "Object", "values", "getSchema", "type", "find", "schema", "typename", "setSchema", "createObject", "types", "faker", "helpers", "arrayElement", "keys", "data", "create", "createObjects", "tasks", "entries", "count", "flatMap", "t", "Promise", "all", "SpaceObjectGenerator", "_space", "schemaMap", "generators", "db", "query", "Filter", "run", "objects", "forEach", "dynamicSchema", "schemaRegistry", "getRegisteredByTypename", "add", "addSchemas", "result", "existing", "push", "Status", "Priority", "TestSchemaType", "createDynamicSchema", "fields", "typeSchema", "S", "partial", "struct", "pipe", "echoObject", "DynamicEchoSchema", "StoredEchoSchema", "version", "jsonSchema", "effectToJsonSchema", "testSchemas", "document", "title", "string", "description", "content", "organization", "name", "website", "contact", "email", "org", "ref", "lat", "number", "lng", "project", "repo", "status", "priority", "active", "boolean", "testObjectGenerators", "lorem", "sentence", "sentences", "min", "max", "int", "company", "datatype", "probability", "internet", "url", "undefined", "provider", "organizations", "location", "locations", "person", "fullName", "commerce", "productName", "createTestObjectGenerator", "createSpaceObjectGenerator", "space"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/core/echo/echo-generator/src/util.ts":{"bytes":1057,"imports":[],"format":"esm"},"packages/core/echo/echo-generator/src/generator.ts":{"bytes":10697,"imports":[{"path":"@dxos/client/echo","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":38614,"imports":[{"path":"@dxos/client/echo","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"}],"format":"esm"},"packages/core/echo/echo-generator/src/types.ts":{"bytes":937,"imports":[],"format":"esm"},"packages/core/echo/echo-generator/src/index.ts":{"bytes":715,"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":23745},"packages/core/echo/echo-generator/dist/lib/node/index.cjs":{"imports":[{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true}],"exports":["Priority","SpaceObjectGenerator","Status","TestObjectGenerator","TestSchemaType","createSpaceObjectGenerator","createTestObjectGenerator","range","testObjectGenerators","testSchemas"],"entryPoint":"packages/core/echo/echo-generator/src/index.ts","inputs":{"packages/core/echo/echo-generator/src/data.ts":{"bytesInOutput":11188},"packages/core/echo/echo-generator/src/generator.ts":{"bytesInOutput":2242},"packages/core/echo/echo-generator/src/util.ts":{"bytesInOutput":91},"packages/core/echo/echo-generator/src/index.ts":{"bytesInOutput":0}},"bytes":14020}}}
1
+ {"inputs":{"packages/core/echo/echo-generator/src/util.ts":{"bytes":1057,"imports":[],"format":"esm"},"packages/core/echo/echo-generator/src/generator.ts":{"bytes":11762,"imports":[{"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/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/core/echo/echo-generator/src/data.ts":{"bytes":35633,"imports":[{"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"}],"format":"esm"},"packages/core/echo/echo-generator/src/types.ts":{"bytes":1005,"imports":[],"format":"esm"},"packages/core/echo/echo-generator/src/index.ts":{"bytes":715,"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":23469},"packages/core/echo/echo-generator/dist/lib/node/index.cjs":{"imports":[{"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/random","kind":"import-statement","external":true}],"exports":["Priority","SpaceObjectGenerator","Status","TestObjectGenerator","TestSchemaType","createSpaceObjectGenerator","createTestObjectGenerator","range"],"entryPoint":"packages/core/echo/echo-generator/src/index.ts","inputs":{"packages/core/echo/echo-generator/src/data.ts":{"bytesInOutput":10310},"packages/core/echo/echo-generator/src/generator.ts":{"bytesInOutput":2426},"packages/core/echo/echo-generator/src/util.ts":{"bytesInOutput":91},"packages/core/echo/echo-generator/src/index.ts":{"bytesInOutput":0}},"bytes":13287}}}
@@ -1,6 +1,5 @@
1
1
  import { type Space } from '@dxos/client/echo';
2
2
  import { SpaceObjectGenerator, TestObjectGenerator } from './generator';
3
- import { type TestGeneratorMap, type TestSchemaMap } from './types';
4
3
  export declare const Status: string[];
5
4
  export declare const Priority: number[];
6
5
  export declare enum TestSchemaType {
@@ -9,8 +8,6 @@ export declare enum TestSchemaType {
9
8
  contact = "example.com/schema/contact",
10
9
  project = "example.com/schema/project"
11
10
  }
12
- export declare const testSchemas: () => TestSchemaMap<TestSchemaType>;
13
- export declare const testObjectGenerators: TestGeneratorMap<TestSchemaType>;
14
11
  export declare const createTestObjectGenerator: () => TestObjectGenerator<TestSchemaType>;
15
12
  export declare const createSpaceObjectGenerator: (space: Space) => SpaceObjectGenerator<TestSchemaType>;
16
13
  //# sourceMappingURL=data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/data.ts"],"names":[],"mappings":"AAOA,OAAO,EAAU,KAAK,KAAK,EAAc,MAAM,mBAAmB,CAAC;AAGnE,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAGpE,eAAO,MAAM,MAAM,UAAgC,CAAC;AACpD,eAAO,MAAM,QAAQ,UAAkB,CAAC;AAExC,oBAAY,cAAc;IACxB,QAAQ,gCAAgC;IACxC,YAAY,oCAAoC;IAChD,OAAO,+BAA+B;IACtC,OAAO,+BAA+B;CACvC;AAED,eAAO,MAAM,WAAW,QAAO,cAAc,cAAc,CAiH1D,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,gBAAgB,CAAC,cAAc,CAiCjE,CAAC;AAEF,eAAO,MAAM,yBAAyB,2CAAqE,CAAC;AAE5G,eAAO,MAAM,0BAA0B,UAAW,KAAK,yCACe,CAAC"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/data.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI/C,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIxE,eAAO,MAAM,MAAM,UAAgC,CAAC;AACpD,eAAO,MAAM,QAAQ,UAAkB,CAAC;AAExC,oBAAY,cAAc;IACxB,QAAQ,gCAAgC;IACxC,YAAY,oCAAoC;IAChD,OAAO,+BAA+B;IACtC,OAAO,+BAA+B;CACvC;AAuFD,eAAO,MAAM,yBAAyB,2CAAqE,CAAC;AAE5G,eAAO,MAAM,0BAA0B,UAAW,KAAK,yCACe,CAAC"}
@@ -1,4 +1,5 @@
1
- import { Expando, type TypedObject, Schema, type Space } from '@dxos/client/echo';
1
+ import { type Space } from '@dxos/client/echo';
2
+ import { type DynamicEchoSchema, type ReactiveObject } from '@dxos/echo-schema';
2
3
  import { type TestSchemaType } from './data';
3
4
  import { type TestGeneratorMap, type TestObjectProvider, type TestSchemaMap } from './types';
4
5
  /**
@@ -9,13 +10,13 @@ export declare class TestObjectGenerator<T extends string = TestSchemaType> {
9
10
  private readonly _generators;
10
11
  private readonly _provider?;
11
12
  constructor(_schemas: TestSchemaMap<T>, _generators: TestGeneratorMap<T>, _provider?: TestObjectProvider<T> | undefined);
12
- get schemas(): Schema[];
13
- getSchema(type: T): Schema | undefined;
14
- protected setSchema(type: T, schema: Schema): void;
13
+ get schemas(): DynamicEchoSchema[];
14
+ getSchema(type: T): DynamicEchoSchema | undefined;
15
+ protected setSchema(type: T, schema: DynamicEchoSchema): void;
15
16
  createObject({ types }?: {
16
17
  types?: T[];
17
- }): TypedObject;
18
- createObjects(map: Partial<Record<T, number>>): Expando[];
18
+ }): Promise<ReactiveObject<any>>;
19
+ createObjects(map: Partial<Record<T, number>>): Promise<ReactiveObject<any>[]>;
19
20
  }
20
21
  /**
21
22
  * Typed object generator for a space.
@@ -23,9 +24,9 @@ export declare class TestObjectGenerator<T extends string = TestSchemaType> {
23
24
  export declare class SpaceObjectGenerator<T extends string> extends TestObjectGenerator<T> {
24
25
  private readonly _space;
25
26
  constructor(_space: Space, schemaMap: TestSchemaMap<T>, generators: TestGeneratorMap<T>);
26
- addSchemas(): Schema[];
27
+ addSchemas(): DynamicEchoSchema[];
27
28
  createObject({ types }?: {
28
29
  types?: T[];
29
- }): Expando;
30
+ }): Promise<ReactiveObject<any>>;
30
31
  }
31
32
  //# sourceMappingURL=generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/generator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAGlF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7F;;GAEG;AACH,qBAAa,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,cAAc;IAG9D,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAFV,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAChC,SAAS,CAAC,mCAAuB;IAGpD,IAAI,OAAO,IAAI,MAAM,EAAE,CAEtB;IAED,SAAS,CAAC,IAAI,EAAE,CAAC;IAIjB,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM;IAK3C,YAAY,CAAC,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAA;KAAO,GAAG,WAAW;IAS1D,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE;CAQ1D;AAED;;GAEG;AACH,qBAAa,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,mBAAmB,CAAC,CAAC,CAAC;IAE9E,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,KAAK,EAC9B,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,EAC3B,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAqBjC,UAAU;IAWD,YAAY,CAAC,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAA;KAAO,GAAG,OAAO;CAGhE"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/generator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAU,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIhF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7F;;GAEG;AACH,qBAAa,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,cAAc;IAG9D,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAFV,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAChC,SAAS,CAAC,mCAAuB;IAGpD,IAAI,OAAO,IAAI,iBAAiB,EAAE,CAEjC;IAED,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,iBAAiB,GAAG,SAAS;IAIjD,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,iBAAiB;IAKhD,YAAY,CAAC,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAA;KAAO,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAS3E,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;CASrF;AAED;;GAEG;AACH,qBAAa,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,mBAAmB,CAAC,CAAC,CAAC;IAE9E,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,KAAK,EAC9B,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,EAC3B,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAkBjC,UAAU;IAcK,YAAY,CAAC,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAA;KAAO,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;CAG3F"}
@@ -1,8 +1,8 @@
1
- import { type Schema, type Expando } from '@dxos/client/echo';
1
+ import { type DynamicEchoSchema, type ReactiveObject } from '@dxos/echo-schema';
2
2
  export type TestObject = {
3
3
  id: string;
4
4
  } & Record<string, any>;
5
- export type TestSchemaMap<T extends string> = Record<T, Schema>;
5
+ export type TestSchemaMap<T extends string> = Record<T, DynamicEchoSchema>;
6
6
  export type TestGeneratorMap<T extends string> = Record<T, (provider: TestObjectProvider<T> | undefined) => any>;
7
- export type TestObjectProvider<T extends string> = (type: T) => Expando[];
7
+ export type TestObjectProvider<T extends string> = (type: T) => Promise<ReactiveObject<any>[]>;
8
8
  //# 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,MAAM,EAAE,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE9D,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,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAEhE,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,GAAG,CAAC,CAAC;AAEjH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEhF,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,IAAI,MAAM,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAE3E,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,GAAG,CAAC,CAAC;AAEjH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/echo-generator",
3
- "version": "0.4.10-main.fa5a270",
3
+ "version": "0.4.10-main.fd8ea31",
4
4
  "description": "ECHO data generator for testing.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -16,9 +16,10 @@
16
16
  "src"
17
17
  ],
18
18
  "dependencies": {
19
- "@dxos/client": "0.4.10-main.fa5a270",
20
- "@dxos/random": "0.4.10-main.fa5a270",
21
- "@dxos/node-std": "0.4.10-main.fa5a270"
19
+ "@dxos/random": "0.4.10-main.fd8ea31",
20
+ "@dxos/node-std": "0.4.10-main.fd8ea31",
21
+ "@dxos/echo-schema": "0.4.10-main.fd8ea31",
22
+ "@dxos/client": "0.4.10-main.fd8ea31"
22
23
  },
23
24
  "devDependencies": {},
24
25
  "publishConfig": {