@yahoo/uds-create-cli 5.73.1 → 5.74.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yahoo/uds-create-cli",
3
- "version": "5.73.1",
3
+ "version": "5.74.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -32,10 +32,10 @@
32
32
  "@modelcontextprotocol/sdk": "^1.32.2",
33
33
  "@orpc/client": "^1.13.9",
34
34
  "@orpc/contract": "^1.13.9",
35
- "@yahoo/uds-create-config": "5.73.1",
36
- "@yahoo/uds-create-loader": "5.73.1",
37
- "@yahoo/uds-create-types": "5.73.1",
38
- "@yahoo/uds-create-utils": "5.73.1",
35
+ "@yahoo/uds-create-config": "5.74.0",
36
+ "@yahoo/uds-create-loader": "5.74.0",
37
+ "@yahoo/uds-create-types": "5.74.0",
38
+ "@yahoo/uds-create-utils": "5.74.0",
39
39
  "esbuild": "^0.27.4",
40
40
  "ts-morph": "^27.0.2",
41
41
  "get-tsconfig": "^4.10.0",
@@ -52,13 +52,13 @@
52
52
  "lodash": "^4.17.23",
53
53
  "prettier": "^3.8.1"
54
54
  },
55
- "udsSchemaVersion": 20261102193912,
55
+ "udsSchemaVersion": 20261103115059,
56
56
  "optionalDependencies": {
57
- "@yahoo/uds-create-cli-darwin-arm64": "5.73.1",
58
- "@yahoo/uds-create-cli-darwin-x64": "5.73.1",
59
- "@yahoo/uds-create-cli-linux-arm64": "5.73.1",
60
- "@yahoo/uds-create-cli-linux-x64": "5.73.1",
61
- "@yahoo/uds-create-cli-linux-arm64-musl": "5.73.1",
62
- "@yahoo/uds-create-cli-linux-x64-musl": "5.73.1"
57
+ "@yahoo/uds-create-cli-darwin-arm64": "5.74.0",
58
+ "@yahoo/uds-create-cli-darwin-x64": "5.74.0",
59
+ "@yahoo/uds-create-cli-linux-arm64": "5.74.0",
60
+ "@yahoo/uds-create-cli-linux-x64": "5.74.0",
61
+ "@yahoo/uds-create-cli-linux-arm64-musl": "5.74.0",
62
+ "@yahoo/uds-create-cli-linux-x64-musl": "5.74.0"
63
63
  }
64
64
  }
@@ -65160,7 +65160,7 @@ function titleCase(kind) {
65160
65160
  return kind.split(/[-_]/).filter(Boolean).map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
65161
65161
  }
65162
65162
  function buildKind(spec2) {
65163
- const { name, prepareLinkedBody, rebaseLinkedBody, layerKeys, fields, groupFields, subEntities = {}, computed, label, labelPlural, schemas: userSchemas, derived, sourceIdentity, sourceOrigin, authoredRefs, linkable, localGroupFields, emergentGroups, singleton = false, bareMember, sourceResolution, bulkAdopts, bulkExcludes, bulkOverlay, bulkDirectives, bulkOverlayWrite, nameEdges, rewriteName, styleBags, uniqueLeaves, parts, authoredValue: authoredValue2, mentionFields, invariants, structuralBody, authoredBody, sourceType, answeredHere } = spec2;
65163
+ const { name, prepareLinkedBody, rebaseLinkedBody, layerKeys, fields, groupFields, subEntities = {}, computed, label, labelPlural, schemas: userSchemas, derived, sourceIdentity, sourceOrigin, authoredRefs, linkable, localGroupFields, emergentGroups, singleton = false, bareMember, sourceResolution, bulkAdopts, bulkExcludes, bulkOverlay, bulkDirectives, bulkOverlayWrite, nameEdges, rewriteName, styleBags, uniqueLeaves, parts, authoredValue: authoredValue2, mentionFields, invariants, structuralBody, authoredBody, authoredAt, sourceType, answeredHere } = spec2;
65164
65164
  const allComputed = {
65165
65165
  sources: ({ member, config: config2 }) => sourceSlugs(member, config2),
65166
65166
  borrowedFrom: ({ config: config2, path: path2 }) => config2.borrowedFrom(name, path2),
@@ -65215,6 +65215,7 @@ function buildKind(spec2) {
65215
65215
  ...invariants ? { invariants } : {},
65216
65216
  ...structuralBody ? { structuralBody } : {},
65217
65217
  ...authoredBody ? { authoredBody } : {},
65218
+ ...authoredAt ? { authoredAt } : {},
65218
65219
  ...sourceType ? { sourceType } : {},
65219
65220
  ...answeredHere ? { answeredHere: true } : {}
65220
65221
  };
@@ -65354,6 +65355,7 @@ function defineEntity(spec2) {
65354
65355
  invariants: spec2.invariants,
65355
65356
  structuralBody: spec2.structuralBody,
65356
65357
  authoredBody: spec2.authoredBody,
65358
+ authoredAt: spec2.authoredAt,
65357
65359
  sourceType: spec2.sourceType,
65358
65360
  answeredHere: spec2.answeredHere
65359
65361
  });
@@ -82615,9 +82617,9 @@ var Slot = class {
82615
82617
  const list = previewContentList(this.stored(source));
82616
82618
  const element2 = elementIn(list, from);
82617
82619
  if (!element2) return [];
82618
- const without2 = removeIn(list, from);
82619
- if (!without2) return [];
82620
- const content = placeIn(without2, to, element2);
82620
+ const without3 = removeIn(list, from);
82621
+ if (!without3) return [];
82622
+ const content = placeIn(without3, to, element2);
82621
82623
  if (!content) return [];
82622
82624
  return this.writeSource({
82623
82625
  source,
@@ -89701,6 +89703,39 @@ function titleOf(config2, op) {
89701
89703
  return `${op.label} ${noun}`;
89702
89704
  }
89703
89705
 
89706
+ // ../config/dist/framework/authored-at.js
89707
+ function valueAt3(body, segments) {
89708
+ let at = body;
89709
+ for (const segment of segments) {
89710
+ if (!isPlainObject(at) || !Object.hasOwn(at, segment)) return void 0;
89711
+ at = at[segment];
89712
+ }
89713
+ return at;
89714
+ }
89715
+ function without(body, segments) {
89716
+ const [head, ...rest] = segments;
89717
+ if (head === void 0 || !Object.hasOwn(body, head)) return body;
89718
+ const { [head]: child, ...others } = body;
89719
+ if (rest.length === 0) return others;
89720
+ if (!isPlainObject(child)) return body;
89721
+ const remaining = without(child, rest);
89722
+ return Object.keys(remaining).length === 0 ? others : {
89723
+ ...others,
89724
+ [head]: remaining
89725
+ };
89726
+ }
89727
+ function storedFromAuthored({ body, authoredAt }) {
89728
+ let stored = body;
89729
+ for (const [field, at] of Object.entries(authoredAt)) {
89730
+ const segments = at.split(".");
89731
+ const value = valueAt3(stored, segments);
89732
+ if (value === void 0) continue;
89733
+ if (stored[field] !== void 0) rejectData(`\`${at}\` and \`${field}\` are one value, so a body sets only one of them. \`${field}\` is the deprecated spelling.`, segments);
89734
+ stored = setAtPath(without(stored, segments), [field], value);
89735
+ }
89736
+ return stored;
89737
+ }
89738
+
89704
89739
  // ../config/dist/framework/authoring.js
89705
89740
  function isAuthored(value) {
89706
89741
  if (typeof value !== "object" && typeof value !== "function") return false;
@@ -89827,7 +89862,7 @@ var Entity = class {
89827
89862
  };
89828
89863
 
89829
89864
  // ../config/dist/framework/schema-version.js
89830
- var CURRENT_SCHEMA_VERSION = 20261102193912;
89865
+ var CURRENT_SCHEMA_VERSION = 20261103115059;
89831
89866
  var SETTINGS_AS_KIND_VERSION = 20260908171448;
89832
89867
  var SchemaVersionTooNew = class extends ConfigFormatError {
89833
89868
  found;
@@ -89847,7 +89882,7 @@ function registerSchemaMigrations(...migrations) {
89847
89882
  for (const migration of migrations) {
89848
89883
  if (migration.version !== 1 && !isMintTimestamp(migration.version)) throw new Error(`Schema migration version ${migration.version} is not a mint timestamp \u2014 mint one with \`date +%Y%m%d%H%M%S\`, like a supabase migration.`);
89849
89884
  if (REGISTERED.has(migration.version)) throw new Error(`A schema migration at version ${migration.version} is already registered.`);
89850
- if (migration.version > 20261102193912) throw new Error(`Schema migration ${migration.version} is newer than CURRENT_SCHEMA_VERSION (${CURRENT_SCHEMA_VERSION}) \u2014 a stale branch merged, or the mint forgot to bump the constant. Re-mint: set CURRENT_SCHEMA_VERSION to the newest migration version.`);
89885
+ if (migration.version > 20261103115059) throw new Error(`Schema migration ${migration.version} is newer than CURRENT_SCHEMA_VERSION (${CURRENT_SCHEMA_VERSION}) \u2014 a stale branch merged, or the mint forgot to bump the constant. Re-mint: set CURRENT_SCHEMA_VERSION to the newest migration version.`);
89851
89886
  REGISTERED.set(migration.version, migration);
89852
89887
  }
89853
89888
  }
@@ -89878,7 +89913,7 @@ function pendingFor(version2, target2, options) {
89878
89913
  return [...(options?.migrations ?? REGISTERED).values()].filter((m) => m.version > version2 && m.version <= target2).sort((a, b) => a.version - b.version);
89879
89914
  }
89880
89915
  function upgradeSerializedConfig(json2, options) {
89881
- const target2 = options?.target ?? 20261102193912;
89916
+ const target2 = options?.target ?? 20261103115059;
89882
89917
  const version2 = detectedWireVersion(json2);
89883
89918
  if (version2 > target2) throw new SchemaVersionTooNew(version2, target2);
89884
89919
  const raw = json2;
@@ -94962,6 +94997,18 @@ var Config = class Config2 {
94962
94997
  accessors() {
94963
94998
  return this.constructor.entities ?? {};
94964
94999
  }
95000
+ /**
95001
+ * The accessor spellings this config type has retired, each mapped to the accessor it is now
95002
+ * (`{ linkedSystems: 'sources' }`). A writer locating an entity in authored source reads it, since a
95003
+ * file written before the rename still spells the old one.
95004
+ */
95005
+ deprecatedAccessors() {
95006
+ return this.constructor.deprecatedAccessors ?? {};
95007
+ }
95008
+ /** `name`, or the accessor it now is when it's a retired spelling. */
95009
+ currentAccessor(name) {
95010
+ return this.deprecatedAccessors()[name] ?? name;
95011
+ }
94965
95012
  /** The kinds registered into this config — what it owns, whether or not they hold items yet.
94966
95013
  * Tool derivation (reads + mutations) scopes to these so a config only exposes its own kinds
94967
95014
  * (a source's kinds are read through their own config, so they derive none). */
@@ -96628,12 +96675,13 @@ var Config = class Config2 {
96628
96675
  * ({@link sources}: nobody resolved this) into a verdict. So the incremental case gets its own door.
96629
96676
  */
96630
96677
  attachResolved({ source, slug: slug2, answer }) {
96631
- const kind = this.sourceAccessors().get(source);
96632
- if (!kind) throw new Error(`attachResolved: "${source}" is not a source this config declares. Its source accessors are ${[...this.sourceAccessors().keys()].map((name) => `"${name}"`).join(", ") || "(none)"}.`);
96678
+ const accessor = this.currentAccessor(source);
96679
+ const kind = this.sourceAccessors().get(accessor);
96680
+ if (!kind) throw new Error(`attachResolved: "${accessor}" is not a source this config declares. Its source accessors are ${[...this.sourceAccessors().keys()].map((name) => `"${name}"`).join(", ") || "(none)"}.`);
96633
96681
  const { config: resolved, ...state } = parseResolution({
96634
- source,
96682
+ source: accessor,
96635
96683
  slug: slug2,
96636
- schema: Config2.resolutionSchemaOf(this, kind, source),
96684
+ schema: Config2.resolutionSchemaOf(this, kind, accessor),
96637
96685
  answer
96638
96686
  });
96639
96687
  const sources = new Map(this.state.sources);
@@ -96717,12 +96765,13 @@ var Config = class Config2 {
96717
96765
  */
96718
96766
  static async resolveDeclared(config2, resolvers) {
96719
96767
  const kindOfAccessor = config2.sourceAccessors();
96720
- const missing = [...kindOfAccessor.keys()].filter((name) => !(name in resolvers));
96768
+ const byAccessor = Object.fromEntries(Object.entries(resolvers).map(([name, resolve]) => [config2.currentAccessor(name), resolve]));
96769
+ const missing = [...kindOfAccessor.keys()].filter((name) => !(name in byAccessor));
96721
96770
  if (missing.length > 0) throw new Error(`Config.load: no resolver for source ${missing.map((name) => `"${name}"`).join(", ")}. A source kind with no resolver answers nothing, which reads exactly like a config that borrows nothing \u2014 so it is refused here instead.`);
96722
96771
  const states = /* @__PURE__ */ new Map();
96723
96772
  const attached = {};
96724
96773
  for (const [name, kind] of kindOfAccessor) {
96725
- const resolve = resolvers[name];
96774
+ const resolve = byAccessor[name];
96726
96775
  const bySlug = {};
96727
96776
  const declared2 = Config2.resolutionSchemaOf(config2, kind, name);
96728
96777
  const answers = await Promise.all(config2.list(kind).map(async (entity) => {
@@ -96764,7 +96813,7 @@ var Config = class Config2 {
96764
96813
  * links from the provided sources. A declared `linkedKind` with no provided source throws. */
96765
96814
  hydrateFrom(stored, options) {
96766
96815
  const claimed = schemaVersionOf(stored);
96767
- if (claimed > 20261102193912) throw new SchemaVersionTooNew(claimed);
96816
+ if (claimed > 20261103115059) throw new SchemaVersionTooNew(claimed);
96768
96817
  const wire = upgradeSerializedConfig(stored);
96769
96818
  if (!Array.isArray(wire.ownedKinds) || typeof wire.items !== "object" || wire.items === null) throw new ConfigFormatError(`Config "${stored.name ?? "system-config"}" cannot be hydrated: this is not a serialized config-v2 config (no "ownedKinds"/"items"). A pre-cutover build artifact converts through the registered cutover migration \u2014 import the config type's module (e.g. \`configs/system\`) before hydrating.`);
96770
96819
  const leftover = wire.options;
@@ -97004,7 +97053,11 @@ function extensionChange(entry, kind, path2, raw, validate2 = false) {
97004
97053
  }
97005
97054
  function itemChange(entry, kind, path2, raw, validate2 = false) {
97006
97055
  const body = isRef2(raw) || isComposedValue(raw) || typeof raw !== "object" || raw === null ? { [entry.primaryField]: raw } : raw;
97007
- const def = validate2 === "author" && entry.authoredBody ? entry.authoredBody(body) : body;
97056
+ let def = validate2 === "author" && entry.authoredBody ? entry.authoredBody(body) : body;
97057
+ if (validate2 === "author" && entry.authoredAt) def = storedFromAuthored({
97058
+ body: def,
97059
+ authoredAt: entry.authoredAt
97060
+ });
97008
97061
  if (validate2) {
97009
97062
  const parsed = wholeBodySchema(entry)?.safeParse(def);
97010
97063
  if (parsed && !parsed.success) {
@@ -97056,6 +97109,8 @@ function loadGroupChange(meta3, kind, path2, raw, phase = "author") {
97056
97109
  function defineConfig(spec2) {
97057
97110
  const owned = spec2.entities;
97058
97111
  const sources = spec2.sources ?? {};
97112
+ const aliases = spec2.deprecatedAccessors ?? {};
97113
+ for (const [retired, current] of Object.entries(aliases)) if (retired in owned || !(current in owned)) throw new Error(`${spec2.name}: retired accessor "${retired}" has to name an owned accessor and not be one itself`);
97059
97114
  for (const name of Object.keys(sources)) {
97060
97115
  const cls = owned[name];
97061
97116
  if (!cls) throw new Error(`${spec2.name}: source "${name}" is not an owned entity of this config`);
@@ -97083,7 +97138,9 @@ function defineConfig(spec2) {
97083
97138
  * which is why the chained authoring form (`new System().register(…)`) is the idiom. */
97084
97139
  register(records) {
97085
97140
  let next = this;
97086
- for (const [name, record2] of Object.entries(records)) {
97141
+ for (const [written, record2] of Object.entries(records)) {
97142
+ const name = aliases[written] ?? written;
97143
+ if (name !== written && name in records) throw new Error(`"${written}" and "${name}" are one collection in config "${spec2.name}" ("${written}" is its retired spelling), so register takes only one of them`);
97087
97144
  const cls = owned[name];
97088
97145
  if (!cls) throw new Error(`"${name}" is not an owned entity of config "${spec2.name}"`);
97089
97146
  next = next.registerEntity(cls, record2);
@@ -97097,6 +97154,7 @@ function defineConfig(spec2) {
97097
97154
  static entities = owned;
97098
97155
  static derivedEntities = derived;
97099
97156
  static sources = sources;
97157
+ static deprecatedAccessors = aliases;
97100
97158
  /** Swap kinds by their accessor name, across owned / derived. */
97101
97159
  static extend(swaps) {
97102
97160
  const pick2 = (base) => {
@@ -97112,11 +97170,19 @@ function defineConfig(spec2) {
97112
97170
  entities: pick2(owned),
97113
97171
  derivedEntities: pick2(derived),
97114
97172
  sources,
97173
+ deprecatedAccessors: aliases,
97115
97174
  extendsBase: true
97116
97175
  });
97117
97176
  }
97118
97177
  }
97119
- for (const [name, cls] of [...Object.entries(owned), ...Object.entries(derived)]) {
97178
+ for (const [name, cls] of [
97179
+ ...Object.entries(owned),
97180
+ ...Object.entries(derived),
97181
+ ...Object.entries(aliases).flatMap(([retired, current]) => {
97182
+ const entity = owned[current];
97183
+ return entity ? [[retired, entity]] : [];
97184
+ })
97185
+ ]) {
97120
97186
  if (name in TypedConfig.prototype || name === "state") throw new Error(`${spec2.name}: entity accessor "${name}" collides with a Config member \u2014 rename the accessor (the KIND itself is unaffected)`);
97121
97187
  Object.defineProperty(TypedConfig.prototype, name, {
97122
97188
  get() {
@@ -99360,10 +99426,13 @@ var pinOptions = external_exports.record(external_exports.string(), external_exp
99360
99426
  extend: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
99361
99427
  hidden: external_exports.boolean().optional()
99362
99428
  }).refine((entry) => entry.override !== void 0 || entry.extend !== void 0 || entry.hidden !== void 0, { message: "An `options` entry needs `override`, `extend` or `hidden`." }))).optional().describe("Per-entity adjustments, keyed by accessor, then path, then verb.");
99429
+ var SOURCE_AUTHORED_AT = { link: "options.include" };
99363
99430
  var LinkedSystemDefinition = defineEntity({
99364
99431
  kind: "linked-system",
99365
99432
  label: "Linked system",
99366
99433
  labelPlural: "Linked systems",
99434
+ entityName: "Source",
99435
+ authoredAt: SOURCE_AUTHORED_AT,
99367
99436
  invariants: (config2) => [
99368
99437
  ...config2.list("linked-system").filter(({ path: path2 }) => !isLinkSlug(path2)).map(({ path: path2 }) => `Link "${path2}": ${LINK_SLUG_MESSAGE}`),
99369
99438
  ...linkRedirects(config2).filter((redirect) => redirect.problem !== void 0 && redirect.problem !== "missing").map(redirectSentence),
@@ -99964,15 +100033,19 @@ function storedPinOptions(options) {
99964
100033
  }
99965
100034
  return stored;
99966
100035
  }
99967
- function linkedSystemItem(def) {
100036
+ function sourceItem(def) {
99968
100037
  if (typeof def !== "object" || def === null || isRef2(def)) return def;
99969
- if (!isPlainObject(def.options)) return def;
100038
+ const body = storedFromAuthored({
100039
+ body: def,
100040
+ authoredAt: SOURCE_AUTHORED_AT
100041
+ });
100042
+ if (!isPlainObject(body.options)) return body;
99970
100043
  return {
99971
- ...def,
99972
- options: storedPinOptions(def.options)
100044
+ ...body,
100045
+ options: storedPinOptions(body.options)
99973
100046
  };
99974
100047
  }
99975
- var LinkedSystem = Object.assign(LinkedSystemDefinition, { item: linkedSystemItem });
100048
+ var Source = Object.assign(LinkedSystemDefinition, { item: sourceItem });
99976
100049
  function excludedDirectives(config2) {
99977
100050
  return config2.list("linked-system").flatMap(({ path: slug2 }) => {
99978
100051
  const body = config2.storedBody("linked-system", slug2);
@@ -100133,7 +100206,7 @@ var nativeStyleArraysAndAutoMigration = {
100133
100206
 
100134
100207
  // ../config/dist/migrations/20261019165323_build_exclude.js
100135
100208
  var BUILD_EXCLUDE_VERSION = 20261019165323;
100136
- function without(record2, key2) {
100209
+ function without2(record2, key2) {
100137
100210
  if (!(key2 in record2)) return record2;
100138
100211
  const { [key2]: _dropped, ...rest } = record2;
100139
100212
  return rest;
@@ -100142,7 +100215,7 @@ function settingsWithoutInclude(settings) {
100142
100215
  if (!isPlainObject(settings.build) || !("include" in settings.build)) return settings;
100143
100216
  return {
100144
100217
  ...settings,
100145
- build: without(settings.build, "include")
100218
+ build: without2(settings.build, "include")
100146
100219
  };
100147
100220
  }
100148
100221
  function dropBuildInclude(json2) {
@@ -100171,7 +100244,7 @@ var after = before.refine((json2) => {
100171
100244
  function patchWithoutInclude(patch) {
100172
100245
  if (patch.kind !== "settings" || !("data" in patch)) return patch;
100173
100246
  if (!isPlainObject(patch.data)) return patch;
100174
- const data = "field" in patch ? patch.field === "build" ? without(patch.data, "include") : patch.data : without(settingsWithoutInclude(patch.data), "build.include");
100247
+ const data = "field" in patch ? patch.field === "build" ? without2(patch.data, "include") : patch.data : without2(settingsWithoutInclude(patch.data), "build.include");
100175
100248
  if (data === patch.data) return patch;
100176
100249
  if ((Object.keys(data).length === 0 || Object.keys(data).length === 1 && isPlainObject(data.build) && Object.keys(data.build).length === 0) && patch.operation !== "create") return null;
100177
100250
  return {
@@ -100368,6 +100441,15 @@ var mapPropsFromMigration = {
100368
100441
  }
100369
100442
  };
100370
100443
 
100444
+ // ../config/dist/migrations/20261103115059_sources_authoring.js
100445
+ var SOURCES_AUTHORING_VERSION = 20261103115059;
100446
+ var sourcesAuthoringMigration = {
100447
+ version: SOURCES_AUTHORING_VERSION,
100448
+ up(json2) {
100449
+ return json2;
100450
+ }
100451
+ };
100452
+
100371
100453
  // ../../node_modules/css-tree/lib/generator/sourceMap.js
100372
100454
  var import_source_map_generator = __toESM(require_source_map_generator(), 1);
100373
100455
  var trackNodes = /* @__PURE__ */ new Set(["Atrule", "Selector", "Declaration"]);
@@ -103016,9 +103098,13 @@ var System = defineConfig({
103016
103098
  canvasRoles: CanvasRole,
103017
103099
  globalStyles: GlobalStyle,
103018
103100
  devices: Device,
103019
- linkedSystems: LinkedSystem
103101
+ sources: Source
103102
+ },
103103
+ sources: { sources: () => System },
103104
+ deprecatedAccessors: {
103105
+ /** @deprecated Use `sources`. */
103106
+ linkedSystems: "sources"
103020
103107
  },
103021
- sources: { linkedSystems: () => System },
103022
103108
  derivedEntities: {
103023
103109
  operations: Operation,
103024
103110
  tools: Tool
@@ -103107,6 +103193,7 @@ if (!registeredSchemaMigrations().has(20261030163028)) registerSchemaMigrations(
103107
103193
  if (!registeredSchemaMigrations().has(20261102143821)) registerSchemaMigrations(defaultColorsMigration);
103108
103194
  if (!registeredSchemaMigrations().has(20261102185610)) registerSchemaMigrations(linkReplaceMigration);
103109
103195
  if (!registeredSchemaMigrations().has(20261102193912)) registerSchemaMigrations(mapPropsFromMigration);
103196
+ if (!registeredSchemaMigrations().has(20261103115059)) registerSchemaMigrations(sourcesAuthoringMigration);
103110
103197
 
103111
103198
  // ../config/dist/capture/node-ops.js
103112
103199
  var DEFAULT_WIDTH = 1600;
@@ -104352,9 +104439,13 @@ var ReactNativeSystem = defineConfig({
104352
104439
  guidance: Guidance,
104353
104440
  canvasRoles: CanvasRole,
104354
104441
  devices: Device,
104355
- linkedSystems: LinkedSystem
104442
+ sources: Source
104443
+ },
104444
+ sources: { sources: () => ReactNativeSystem },
104445
+ deprecatedAccessors: {
104446
+ /** @deprecated Use `sources`. */
104447
+ linkedSystems: "sources"
104356
104448
  },
104357
- sources: { linkedSystems: () => ReactNativeSystem },
104358
104449
  derivedEntities: {
104359
104450
  operations: Operation,
104360
104451
  tools: Tool