@seedprotocol/sdk 0.7.4 → 0.7.5-next.871.g8788c94

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.
Files changed (135) hide show
  1. package/README.md +99 -0
  2. package/dist/{BasePathResolver-DrzGVH9L.js → BasePathResolver-B-fK7_N_.js} +142 -8
  3. package/dist/BasePathResolver-B-fK7_N_.js.map +1 -0
  4. package/dist/{ClientManager-Dfu4jcgm.js → ClientManager-C7VkO5Hg.js} +342 -206
  5. package/dist/ClientManager-C7VkO5Hg.js.map +1 -0
  6. package/dist/{Item-BUUFuywT.js → Item-BDmsdNTQ.js} +234 -163
  7. package/dist/Item-BDmsdNTQ.js.map +1 -0
  8. package/dist/{ModelProperty-B6cnRvIz.js → ModelProperty-Cqw6yn7y.js} +37 -37
  9. package/dist/{ModelProperty-B6cnRvIz.js.map → ModelProperty-Cqw6yn7y.js.map} +1 -1
  10. package/dist/{Schema-Bf-jOLq0.js → Schema-BJLYOUgp.js} +57 -37
  11. package/dist/Schema-BJLYOUgp.js.map +1 -0
  12. package/dist/{SchemaValidationService-BNYMacsx.js → SchemaValidationService-CzybXLiS.js} +6 -6
  13. package/dist/{SchemaValidationService-BNYMacsx.js.map → SchemaValidationService-CzybXLiS.js.map} +1 -1
  14. package/dist/{backfillMetadataPropertyIds-C2-s_jUa.js → backfillMetadataPropertyIds-DAsETfD_.js} +3 -3
  15. package/dist/{backfillMetadataPropertyIds-C2-s_jUa.js.map → backfillMetadataPropertyIds-DAsETfD_.js.map} +1 -1
  16. package/dist/{configurePlatform-BzfirKuM.js → configurePlatform-CFQF_i1T.js} +2 -2
  17. package/dist/{configurePlatform-BzfirKuM.js.map → configurePlatform-CFQF_i1T.js.map} +1 -1
  18. package/dist/{detachRowsBeforeDelete-B0Daoz9Z.js → detachRowsBeforeDelete-D4gxxk46.js} +2 -2
  19. package/dist/{detachRowsBeforeDelete-B0Daoz9Z.js.map → detachRowsBeforeDelete-D4gxxk46.js.map} +1 -1
  20. package/dist/discardNewDraft-g8w3uHFM.js +78 -0
  21. package/dist/discardNewDraft-g8w3uHFM.js.map +1 -0
  22. package/dist/{eas-Dq5Kx_Nd.js → eas-BcXZ2hIn.js} +25 -12
  23. package/dist/eas-BcXZ2hIn.js.map +1 -0
  24. package/dist/{errors-DdWbxb_n.js → errors-CCMxedOB.js} +43 -38
  25. package/dist/errors-CCMxedOB.js.map +1 -0
  26. package/dist/{getItem-9bYSErSj.js → getItem-BUs1Xa48.js} +4 -4
  27. package/dist/{getItem-9bYSErSj.js.map → getItem-BUs1Xa48.js.map} +1 -1
  28. package/dist/{getPublishPayload-DPy-uMrR.js → getPublishPayload-CwNOhnir.js} +25 -15
  29. package/dist/getPublishPayload-CwNOhnir.js.map +1 -0
  30. package/dist/{getPublishUploads-J-143iSV.js → getPublishUploads-pEOrXJbF.js} +506 -45
  31. package/dist/getPublishUploads-pEOrXJbF.js.map +1 -0
  32. package/dist/{index-7y2f_iQz.js → index-BQSK-r_A.js} +2 -2
  33. package/dist/index-BQSK-r_A.js.map +1 -0
  34. package/dist/{index-C61Rxy0F.js → index-zAs84LDi.js} +8 -8
  35. package/dist/index-zAs84LDi.js.map +1 -0
  36. package/dist/{index.browser-C1pisOEa.js → index.browser-irwaBIj0.js} +11 -11
  37. package/dist/{index.browser-C1pisOEa.js.map → index.browser-irwaBIj0.js.map} +1 -1
  38. package/dist/{index.node-BAlST8pD.js → index.node-BYkndQN7.js} +6 -6
  39. package/dist/{index.node-BAlST8pD.js.map → index.node-BYkndQN7.js.map} +1 -1
  40. package/dist/main.js +91 -504
  41. package/dist/main.js.map +1 -1
  42. package/dist/{mimeTypes-DHAHC4eZ.js → mimeTypes-C9r76DCH.js} +7 -2
  43. package/dist/{mimeTypes-DHAHC4eZ.js.map → mimeTypes-C9r76DCH.js.map} +1 -1
  44. package/dist/node.js +10 -10
  45. package/dist/platform.browser.js +6 -6
  46. package/dist/platform.node.js +4 -4
  47. package/dist/{property-zFPMtR3T.js → property-5AD2naVS.js} +7 -7
  48. package/dist/{property-zFPMtR3T.js.map → property-5AD2naVS.js.map} +1 -1
  49. package/dist/{propertyValidationRules-CeFVhdQg.js → propertyValidationRules-Bdgz0Nrr.js} +10 -10
  50. package/dist/{propertyValidationRules-CeFVhdQg.js.map → propertyValidationRules-Bdgz0Nrr.js.map} +1 -1
  51. package/dist/{publishDraftGraph-CuVq6iAR.js → publishDraftGraph-DGhC9ifI.js} +6 -6
  52. package/dist/{publishDraftGraph-CuVq6iAR.js.map → publishDraftGraph-DGhC9ifI.js.map} +1 -1
  53. package/dist/{resetAmbiguousLegacyItemData-DsFTnMBz.js → resetAmbiguousLegacyItemData-HSB77N9c.js} +2 -2
  54. package/dist/{resetAmbiguousLegacyItemData-DsFTnMBz.js.map → resetAmbiguousLegacyItemData-HSB77N9c.js.map} +1 -1
  55. package/dist/{resolveModelForSyncedSeed-RUsgAZXG.js → resolveModelForSyncedSeed-CAKAJgr6.js} +2 -2
  56. package/dist/{resolveModelForSyncedSeed-RUsgAZXG.js.map → resolveModelForSyncedSeed-CAKAJgr6.js.map} +1 -1
  57. package/dist/src/Item/Item.d.ts +4 -1
  58. package/dist/src/Item/Item.d.ts.map +1 -1
  59. package/dist/src/Item/errors.d.ts +3 -1
  60. package/dist/src/Item/errors.d.ts.map +1 -1
  61. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts.map +1 -1
  62. package/dist/src/Model/Model.d.ts +2 -1
  63. package/dist/src/Model/Model.d.ts.map +1 -1
  64. package/dist/src/Schema/Schema.d.ts.map +1 -1
  65. package/dist/src/Schema/service/schemaMachine.d.ts +3 -0
  66. package/dist/src/Schema/service/schemaMachine.d.ts.map +1 -1
  67. package/dist/src/client/clientManagerMachine.d.ts.map +1 -1
  68. package/dist/src/db/alignRowPublishers.d.ts +25 -0
  69. package/dist/src/db/alignRowPublishers.d.ts.map +1 -0
  70. package/dist/src/db/canonicalizeModelTypes.d.ts +2 -2
  71. package/dist/src/db/canonicalizeModelTypes.d.ts.map +1 -1
  72. package/dist/src/db/read/getModelSchemas.d.ts +3 -2
  73. package/dist/src/db/read/getModelSchemas.d.ts.map +1 -1
  74. package/dist/src/db/read/getPublishPayload.d.ts.map +1 -1
  75. package/dist/src/db/read/getPublishUploads.d.ts.map +1 -1
  76. package/dist/src/db/read/getSchemaUidForModel.d.ts.map +1 -1
  77. package/dist/src/db/read/getSeedPublisher.d.ts +7 -0
  78. package/dist/src/db/read/getSeedPublisher.d.ts.map +1 -0
  79. package/dist/src/db/read/nameMatchLevels.d.ts +64 -0
  80. package/dist/src/db/read/nameMatchLevels.d.ts.map +1 -0
  81. package/dist/src/db/read/resolveModelRecord.d.ts.map +1 -1
  82. package/dist/src/db/read/summarizePublishWork.d.ts +2 -0
  83. package/dist/src/db/read/summarizePublishWork.d.ts.map +1 -1
  84. package/dist/src/db/write/applyArweaveL1TransactionIdLocal.d.ts +5 -3
  85. package/dist/src/db/write/applyArweaveL1TransactionIdLocal.d.ts.map +1 -1
  86. package/dist/src/db/write/claimUnpublishedDrafts.d.ts +4 -2
  87. package/dist/src/db/write/claimUnpublishedDrafts.d.ts.map +1 -1
  88. package/dist/src/db/write/createMetadata.d.ts.map +1 -1
  89. package/dist/src/db/write/createNewItem.d.ts.map +1 -1
  90. package/dist/src/db/write/createSeed.d.ts.map +1 -1
  91. package/dist/src/db/write/createVersion.d.ts.map +1 -1
  92. package/dist/src/db/write/discardNewDraft.d.ts +8 -0
  93. package/dist/src/db/write/discardNewDraft.d.ts.map +1 -0
  94. package/dist/src/db/write/restoreDataItemIdsOverwrittenByL1.d.ts +18 -0
  95. package/dist/src/db/write/restoreDataItemIdsOverwrittenByL1.d.ts.map +1 -0
  96. package/dist/src/db/write/updateItemPropertyValue.d.ts.map +1 -1
  97. package/dist/src/eas.d.ts.map +1 -1
  98. package/dist/src/events/item/syncDbWithEas.d.ts.map +1 -1
  99. package/dist/src/helpers/constants.d.ts.map +1 -1
  100. package/dist/src/helpers/db.d.ts.map +1 -1
  101. package/dist/src/helpers/easValueTypes.d.ts +16 -0
  102. package/dist/src/helpers/easValueTypes.d.ts.map +1 -0
  103. package/dist/src/helpers/htmlEmbeddedDataUriPublish.d.ts +13 -2
  104. package/dist/src/helpers/htmlEmbeddedDataUriPublish.d.ts.map +1 -1
  105. package/dist/src/helpers/ownership.d.ts +9 -12
  106. package/dist/src/helpers/ownership.d.ts.map +1 -1
  107. package/dist/src/helpers/publishConfig.d.ts +9 -4
  108. package/dist/src/helpers/publishConfig.d.ts.map +1 -1
  109. package/dist/src/imports/index.d.ts +1 -1
  110. package/dist/src/imports/index.d.ts.map +1 -1
  111. package/dist/src/imports/json.d.ts.map +1 -1
  112. package/dist/src/index.d.ts +2 -1
  113. package/dist/src/index.d.ts.map +1 -1
  114. package/dist/src/types/import.d.ts +20 -0
  115. package/dist/src/types/import.d.ts.map +1 -1
  116. package/dist/{syncDbWithEas-CRpnkq00.js → syncDbWithEas-BmJXqfgN.js} +92 -22
  117. package/dist/syncDbWithEas-BmJXqfgN.js.map +1 -0
  118. package/dist/{tabEvents-nBUq_1u1.js → tabEvents-DXun7vdK.js} +4 -4
  119. package/dist/{tabEvents-nBUq_1u1.js.map → tabEvents-DXun7vdK.js.map} +1 -1
  120. package/dist/{tolerantWebAccess-DIt3R8_u.js → tolerantWebAccess-DXxgX2x7.js} +7 -7
  121. package/dist/{tolerantWebAccess-DIt3R8_u.js.map → tolerantWebAccess-DXxgX2x7.js.map} +1 -1
  122. package/dist/{updateSeedRevokedAt-DtTPSzpM.js → updateSeedRevokedAt-DkLSDwUX.js} +3 -3
  123. package/dist/{updateSeedRevokedAt-DtTPSzpM.js.map → updateSeedRevokedAt-DkLSDwUX.js.map} +1 -1
  124. package/package.json +9 -5
  125. package/dist/BasePathResolver-DrzGVH9L.js.map +0 -1
  126. package/dist/ClientManager-Dfu4jcgm.js.map +0 -1
  127. package/dist/Item-BUUFuywT.js.map +0 -1
  128. package/dist/Schema-Bf-jOLq0.js.map +0 -1
  129. package/dist/eas-Dq5Kx_Nd.js.map +0 -1
  130. package/dist/errors-DdWbxb_n.js.map +0 -1
  131. package/dist/getPublishPayload-DPy-uMrR.js.map +0 -1
  132. package/dist/getPublishUploads-J-143iSV.js.map +0 -1
  133. package/dist/index-7y2f_iQz.js.map +0 -1
  134. package/dist/index-C61Rxy0F.js.map +0 -1
  135. package/dist/syncDbWithEas-CRpnkq00.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"publishDraftGraph-CuVq6iAR.js","sources":["../../src/helpers/getSegmentedItemProperties.ts","../../src/db/read/isSeedRevoked.ts","../../src/db/read/resolveRelatedSeedRef.ts","../../src/db/read/publishDraftGraph.ts"],"sourcesContent":["import { UploadProperty } from '@/db/read/getPublishUploads'\nimport { IItem } from '@/interfaces'\nimport { ModelPropertyDataTypes, normalizeDataType } from '@/Schema'\nimport { getPropertySchema, TProperty } from '@/helpers/property'\nimport { getItemModelScope, resolveModelRecord, type ModelScope } from '@/db/read/resolveModelRecord'\nimport type { Static } from '@sinclair/typebox'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { models, properties } from '@/seedSchema'\nimport { eq, and } from 'drizzle-orm'\nimport { camelCase, upperFirst } from 'lodash-es'\n\nconst matchesDataType = (\n actual: string | undefined,\n expected: ModelPropertyDataTypes | string,\n): boolean => normalizeDataType(actual) === expected\nasync function resolvePropertyDef(\n modelName: string,\n propertyName: string,\n scope: ModelScope,\n): Promise<{ dataType?: string; ref?: string; refValueType?: string; storageType?: string; localStorageDir?: string; filenameSuffix?: string; required?: boolean } | undefined> {\n let schema = await getPropertySchema(modelName, propertyName, scope)\n if (schema) return schema\n const db = BaseDb.getAppDb()\n if (!db) return undefined\n try {\n const normalizedModelName = upperFirst(camelCase(modelName))\n const modelRecord = await resolveModelRecord(normalizedModelName, scope, db)\n const modelRecords = modelRecord ? [modelRecord] : []\n if (modelRecords.length === 0 || !modelRecords[0].id) return undefined\n const propertyRecords = await db\n .select()\n .from(properties)\n .where(\n and(\n eq(properties.modelId, modelRecords[0].id),\n eq(properties.name, propertyName),\n ),\n )\n .limit(1)\n if (propertyRecords.length === 0) return undefined\n const propRecord = propertyRecords[0]\n let refModelName: string | undefined\n if (propRecord.refModelId != null) {\n const refModelRows = await db\n .select({ name: models.name })\n .from(models)\n .where(eq(models.id, propRecord.refModelId))\n .limit(1)\n refModelName = refModelRows[0]?.name ?? undefined\n }\n return {\n dataType: propRecord.dataType,\n ref: refModelName ?? undefined,\n refValueType: propRecord.refValueType || undefined,\n storageType: propRecord.storageType || undefined,\n localStorageDir: propRecord.localStorageDir || undefined,\n filenameSuffix: propRecord.filenameSuffix || undefined,\n required: propRecord.required ?? undefined,\n }\n } catch {\n return undefined\n }\n}\n\nexport const getSegmentedItemProperties = async (item: IItem<any>) => {\n const itemBasicProperties = []\n const itemRelationProperties = []\n const itemListProperties = []\n const itemUploadProperties: UploadProperty[] = []\n const itemImageProperties = []\n const itemStorageProperties = []\n let itemStorageTransactionProperty: UploadProperty | undefined\n let itemScope: ModelScope | undefined\n\n for (const itemProperty of item.properties) {\n let propertyDef = itemProperty.propertyDef\n // When propertyDef is missing (e.g. external app, Model not registered), resolve inline\n // so properties are not skipped and metadata attestations can be created\n if (!propertyDef && item.modelName) {\n itemScope ??= await getItemModelScope(item as any)\n const resolved = await resolvePropertyDef(item.modelName, itemProperty.propertyName, itemScope)\n if (resolved) {\n itemProperty.getService().send({ type: 'updateContext', propertyRecordSchema: resolved })\n propertyDef = resolved as Static<typeof TProperty>\n } else {\n // Last resort: Model and DB don't have schema. Use Text so property routes to\n // itemBasicProperties and can be attested (covers title, description, etc.)\n const fallbackDef = { dataType: 'Text' as const }\n itemProperty.getService().send({ type: 'updateContext', propertyRecordSchema: fallbackDef })\n propertyDef = fallbackDef as Static<typeof TProperty>\n }\n }\n if (!propertyDef) {\n continue\n }\n\n const isItemStorage =\n propertyDef.storageType &&\n propertyDef.storageType === 'ItemStorage'\n\n\n const isStorageTransaction =\n itemProperty.propertyName === 'storageTransactionId' ||\n itemProperty.propertyName === 'storage_transaction_id'\n\n const isStorageSeedType =\n matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Image) ||\n matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.File) ||\n matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Html) ||\n matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Json) ||\n (matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Relation) &&\n (matchesDataType(propertyDef.refValueType, ModelPropertyDataTypes.Image) ||\n matchesDataType(propertyDef.refValueType, ModelPropertyDataTypes.File) ||\n matchesDataType(propertyDef.refValueType, ModelPropertyDataTypes.Html) ||\n matchesDataType(propertyDef.refValueType, ModelPropertyDataTypes.Json)))\n\n if (isStorageSeedType) {\n itemImageProperties.push(itemProperty)\n if (matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Relation)) {\n itemRelationProperties.push(itemProperty)\n }\n continue\n }\n\n if (matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Relation)) {\n itemRelationProperties.push(itemProperty)\n continue\n }\n\n if (matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.List)) {\n // List-of-relations: ref present, goes to processListProperty\n // List-of-primitives: ref absent, treat as basic property\n const listRef =\n propertyDef.ref || (propertyDef as { refModelName?: string }).refModelName\n if (listRef) {\n itemListProperties.push(itemProperty)\n } else {\n itemBasicProperties.push(itemProperty)\n }\n continue\n }\n\n if (isItemStorage) {\n itemStorageProperties.push(itemProperty)\n continue\n }\n\n if (isStorageTransaction) {\n itemStorageTransactionProperty = { itemProperty, childProperties: [] }\n continue\n }\n\n itemBasicProperties.push(itemProperty)\n }\n\n if (itemStorageTransactionProperty && itemStorageProperties.length > 0) {\n itemStorageTransactionProperty.childProperties = itemStorageProperties\n }\n\n if (itemStorageTransactionProperty) {\n itemUploadProperties.push(itemStorageTransactionProperty)\n }\n\n return {\n itemBasicProperties,\n itemRelationProperties,\n itemListProperties,\n itemUploadProperties,\n itemImageProperties,\n }\n}\n","import { BaseDb } from '@/db/Db/BaseDb'\nimport { seeds } from '@/seedSchema'\nimport { eq } from 'drizzle-orm'\nimport { isVersionRevoked } from './subqueries/liveVersion'\n\n/**\n * True when the item's seed attestation was revoked (`seeds.revoked_at` set, by unpublish or EAS\n * sync). Such a seed can't take new versions: publishing again creates a new seed attestation\n * (see \"Republishing\" in docs/ATTESTATION_REVOCATION.md).\n */\nexport const isSeedRevoked = async (seedLocalId: string | undefined): Promise<boolean> => {\n if (!seedLocalId) return false\n const appDb = BaseDb.getAppDb()\n if (!appDb) return false\n const [row] = await appDb\n .select({ revokedAt: seeds.revokedAt })\n .from(seeds)\n .where(eq(seeds.localId, seedLocalId))\n .limit(1)\n return isVersionRevoked(row?.revokedAt)\n}\n","import { BaseDb } from '@/db/Db/BaseDb'\nimport { seeds, versions } from '@/seedSchema'\nimport { and, eq, isNotNull } from 'drizzle-orm'\nimport { ZERO_BYTES32 } from '@/helpers/constants'\nimport { isVersionRevoked } from './subqueries/liveVersion'\nimport { ModelPropertyDataTypes, normalizeDataType } from '@/helpers/property'\nimport type { IItem } from '@/interfaces'\n\nexport type RelatedSeedRow = {\n seedLocalId: string\n /** The seed's current uid (null while it was never published). */\n seedUid: string | null\n revokedAt: number | null\n type: string | null\n}\n\nconst selectSeed = {\n seedLocalId: seeds.localId,\n seedUid: seeds.uid,\n revokedAt: seeds.revokedAt,\n type: seeds.type,\n}\n\n/**\n * The local seed row a relation/list/image ref points at, by local id or uid. A uid that is no\n * seed's current uid can be the old uid of a seed that was unpublished and published again (a new\n * seed attestation, same local seed): its old version rows still record it, so it resolves to that\n * seed. Null when nothing local matches (e.g. a published uid with no local copy).\n */\nexport const findRelatedSeedRow = async ({\n seedLocalId,\n seedUid,\n}: {\n seedLocalId?: string\n seedUid?: string\n}): Promise<RelatedSeedRow | null> => {\n const appDb = BaseDb.getAppDb()\n if (!appDb) return null\n if (seedLocalId) {\n const [row] = await appDb.select(selectSeed).from(seeds).where(eq(seeds.localId, seedLocalId)).limit(1)\n if (row?.seedLocalId) return row as RelatedSeedRow\n }\n if (!seedUid || seedUid === ZERO_BYTES32) return null\n const [byUid] = await appDb.select(selectSeed).from(seeds).where(eq(seeds.uid, seedUid)).limit(1)\n if (byUid?.seedLocalId) return byUid as RelatedSeedRow\n const [version] = await appDb\n .select({ seedLocalId: versions.seedLocalId })\n .from(versions)\n .where(and(eq(versions.seedUid, seedUid), isNotNull(versions.seedLocalId)))\n .limit(1)\n if (!version?.seedLocalId) return null\n const [republished] = await appDb\n .select(selectSeed)\n .from(seeds)\n .where(eq(seeds.localId, version.seedLocalId))\n .limit(1)\n return republished?.seedLocalId ? (republished as RelatedSeedRow) : null\n}\n\n/** The seed is attested and its attestation is live. */\nexport const isLivePublishedSeed = (row: RelatedSeedRow | null): row is RelatedSeedRow & { seedUid: string } =>\n !!row?.seedUid && row.seedUid !== ZERO_BYTES32 && !isVersionRevoked(row.revokedAt)\n\n/** The seed was attested and that attestation was revoked (unpublished). */\nexport const isUnpublishedSeed = (row: RelatedSeedRow | null): row is RelatedSeedRow & { seedUid: string } =>\n !!row?.seedUid && row.seedUid !== ZERO_BYTES32 && isVersionRevoked(row.revokedAt)\n\n/** Model a relation/list/image property points at, from its definition. */\nexport function relatedModelNameFromDef(propertyDef: unknown): string | undefined {\n const def = propertyDef as { dataType?: string; ref?: string; refModelName?: string } | undefined\n if (!def) return undefined\n const dataType = normalizeDataType(def.dataType)\n if (dataType === ModelPropertyDataTypes.Image) return 'Image'\n if (dataType === ModelPropertyDataTypes.File) return 'File'\n if (dataType === ModelPropertyDataTypes.Html) return 'Html'\n return def.ref ?? def.refModelName\n}\n\n/**\n * Name of the item's Html property whose value is the Html seed `htmlSeedLocalId`: the property\n * that refers to the images embedded in that Html (htmlEmbeddedImageCoPublish rows).\n */\nexport function htmlPropertyNameForHtmlSeed(item: IItem<any>, htmlSeedLocalId: string): string {\n const want = htmlSeedLocalId.trim()\n for (const p of item.properties ?? []) {\n if (normalizeDataType(p.propertyDef?.dataType) !== ModelPropertyDataTypes.Html) continue\n const snap = p.getService().getSnapshot()\n const value = 'context' in snap ? (snap.context as { propertyValue?: unknown }).propertyValue : undefined\n if (typeof value === 'string' && value.trim() === want) return p.propertyName\n }\n return 'html'\n}\n","import { ZERO_BYTES32 } from '@/helpers/constants'\nimport { parseListPropertyValueFromStorage } from '@/helpers/listPropertyValueFromStorage'\nimport { getSegmentedItemProperties } from '@/helpers/getSegmentedItemProperties'\nimport {\n isPublishedSeedRef,\n normalizeRelationPropertyValue,\n resolveSeedIdsFromRefString,\n} from '@/helpers/relationSeedRef'\nimport type { IItem, IItemProperty } from '@/interfaces'\nimport { findRelatedSeedRow } from '@/db/read/resolveRelatedSeedRef'\nimport { isSeedRevoked } from '@/db/read/isSeedRevoked'\n\n/**\n * The draft items a publish of an item carries along, and how it walks to them.\n *\n * A publish attests the item and every draft item (no seed uid yet) reachable from it through\n * relation and list-of-relation properties, each with its full property set. Already-published\n * targets are referenced by their current uid and not walked into; revoked ones stop the publish\n * (RelatedItemUnpublishedError). getPublishPayload, getPublishUploads, getPublishUploadData (publish\n * package), summarizePublishWork and the Html-embedded image co-publish all walk this graph in the\n * same order: depth first, properties in item order (relations, then lists), list members in order.\n *\n * Cycles: an item can only attest the uid of a seed published before it in the same publish, so a\n * ref back to an item still being walked (an ancestor that gets a new seed in this publish) can't be\n * attested. Such a property is deferred: left out of this publish (it keeps no uid, so the next\n * publish of its item attests it, with the target's uid). For A ↔ B reached from A, A attests B's\n * uid and B's relation to A is deferred.\n */\n\n/** Relation properties that point at model items (not Image/File/Html/Json storage seeds). */\nexport function draftWalkProperties(segmented: {\n itemRelationProperties: IItemProperty<any>[]\n itemImageProperties: IItemProperty<any>[]\n itemListProperties: IItemProperty<any>[]\n}): { relationProperties: IItemProperty<any>[]; listProperties: IItemProperty<any>[] } {\n const storage = new Set(segmented.itemImageProperties)\n return {\n relationProperties: segmented.itemRelationProperties.filter((p) => !storage.has(p)),\n listProperties: segmented.itemListProperties,\n }\n}\n\nconst propertyContext = (prop: IItemProperty<any>): Record<string, unknown> | null => {\n const snapshot = prop.getService().getSnapshot()\n return snapshot && 'context' in snapshot\n ? ((snapshot as { context?: Record<string, unknown> }).context ?? null)\n : null\n}\n\n/** Seed refs held by a relation property (one) or a list property (each member). */\nexport function propertySeedRefs(prop: IItemProperty<any>, isList: boolean): string[] {\n const context = propertyContext(prop)\n if (!context) return []\n let value = context.propertyValue\n if (isList) {\n if (typeof value === 'string') value = parseListPropertyValueFromStorage(value)\n const arr = Array.isArray(value) ? value : value != null ? [value] : []\n return arr\n .map((v) =>\n v && typeof v === 'object'\n ? normalizeRelationPropertyValue(\n (v as { seedLocalId?: string; localId?: string }).seedLocalId ??\n (v as { localId?: string }).localId ??\n (v as { seedUid?: string }).seedUid ??\n (v as { uid?: string }).uid,\n )\n : normalizeRelationPropertyValue(v),\n )\n .filter((v): v is string => !!v)\n }\n const ref = normalizeRelationPropertyValue(value)\n return ref ? [ref] : []\n}\n\nconst isZeroUid = (uid: string | undefined | null): boolean => !uid || uid === ZERO_BYTES32\n\n/** The item gets a new seed attestation in this publish: a draft, or a revoked seed published again. */\nexport async function getsNewSeed(item: IItem<any>): Promise<boolean> {\n return isZeroUid(item.seedUid) || (await isSeedRevoked(item.seedLocalId))\n}\n\n/** Local seed id a ref points at (also for a republished seed's old uid), or undefined. */\nexport async function resolveRefSeedLocalId(ref: string): Promise<string | undefined> {\n const { seedLocalId, seedUid } = resolveSeedIdsFromRefString(ref)\n if (!seedLocalId && !seedUid) return undefined\n const row = await findRelatedSeedRow({ seedLocalId, seedUid })\n return row?.seedLocalId ?? seedLocalId\n}\n\nexport type PublishDraftGraphNode = {\n item: IItem<any>\n /** The relation or list property the walk first reached the item through. */\n via: IItemProperty<any>\n viaList: boolean\n}\n\nexport type PublishDraftGraph = {\n /** Draft items reachable from the root (root excluded), in the order the walk finishes them. */\n drafts: PublishDraftGraphNode[]\n /** Properties pointing back at an item still being walked; left out of this publish. */\n deferredProperties: Set<IItemProperty<any>>\n /** For each deferred property, the seeds (local ids) of its back references. */\n backReferences: Map<IItemProperty<any>, Set<string>>\n}\n\nexport type GetPublishDraftGraphOptions = {\n /** `new_version` / republish: properties that already have a uid are attested (and walked) again. */\n forceFullSnapshot?: boolean\n /**\n * Throw like getPublishUploads always did when a relation holds an invalid value or a local id\n * with no local item. Otherwise such refs are skipped (getPublishPayload reports them).\n */\n strict?: boolean\n}\n\n/** Would the publish attest this property (so walk its refs)? Same rule as getPublishPayload. */\nfunction walksProperty(prop: IItemProperty<any>, forceFullSnapshot: boolean): boolean {\n if (prop.uid && !forceFullSnapshot) return false\n const ctx = propertyContext(prop)\n const value = ctx?.propertyValue\n return value != null && value !== '' && !(Array.isArray(value) && value.length === 0)\n}\n\nasync function loadItem(seedLocalId: string): Promise<IItem<any> | undefined> {\n const { getItem } = await import('./getItem')\n try {\n return (await getItem({ seedLocalId })) ?? undefined\n } catch {\n return undefined\n }\n}\n\nexport async function getPublishDraftGraph(\n root: IItem<any>,\n options?: GetPublishDraftGraphOptions,\n): Promise<PublishDraftGraph> {\n const forceFullSnapshot = options?.forceFullSnapshot === true\n const strict = options?.strict === true\n const drafts: PublishDraftGraphNode[] = []\n const deferredProperties = new Set<IItemProperty<any>>()\n const backReferences = new Map<IItemProperty<any>, Set<string>>()\n const visited = new Set<string>([root.seedLocalId])\n const inProgress = new Set<string>()\n if (await getsNewSeed(root)) inProgress.add(root.seedLocalId)\n\n /** Draft target of a ref, or undefined (published, revoked, unknown). */\n const draftTarget = async (\n prop: IItemProperty<any>,\n ref: string,\n isList: boolean,\n ): Promise<{ seedLocalId: string; item?: IItem<any> } | undefined> => {\n const { seedLocalId, seedUid } = resolveSeedIdsFromRefString(ref)\n if (!seedLocalId && !seedUid) {\n if (strict && !isList) {\n throw new Error(`Invalid relation value for ${prop.propertyName}: expected local seed id or 0x uid`)\n }\n return undefined\n }\n const row = await findRelatedSeedRow({ seedLocalId, seedUid })\n const targetLocalId = row?.seedLocalId ?? seedLocalId\n if (!targetLocalId) return undefined\n // An item getting a new seed in this publish, still being walked (also the root when it is a\n // revoked seed published again): a back edge, whatever its current uid.\n if (inProgress.has(targetLocalId)) return { seedLocalId: targetLocalId }\n // Published (live or revoked): referenced by uid / reported, never walked into.\n if (row && !isZeroUid(row.seedUid)) return undefined\n if (visited.has(targetLocalId)) return { seedLocalId: targetLocalId }\n const item = await loadItem(targetLocalId)\n if (!item) {\n if (strict && !isList && !isPublishedSeedRef(ref)) {\n throw new Error(`No relatedItem found for ${prop.propertyName}`)\n }\n return undefined\n }\n if (!isZeroUid(item.seedUid)) return undefined\n return { seedLocalId: targetLocalId, item }\n }\n\n const visit = async (item: IItem<any>): Promise<void> => {\n const segmented = await getSegmentedItemProperties(item)\n const { relationProperties, listProperties } = draftWalkProperties(segmented)\n const walk = async (prop: IItemProperty<any>, isList: boolean) => {\n if (!walksProperty(prop, forceFullSnapshot)) return\n const targets: { seedLocalId: string; item?: IItem<any> }[] = []\n for (const ref of propertySeedRefs(prop, isList)) {\n const t = await draftTarget(prop, ref, isList)\n if (t) targets.push(t)\n }\n const back = targets.filter((t) => inProgress.has(t.seedLocalId)).map((t) => t.seedLocalId)\n if (back.length > 0) {\n deferredProperties.add(prop)\n backReferences.set(prop, new Set(back))\n }\n for (const t of targets) {\n if (!t.item || visited.has(t.seedLocalId)) continue\n visited.add(t.seedLocalId)\n inProgress.add(t.seedLocalId)\n await visit(t.item)\n inProgress.delete(t.seedLocalId)\n drafts.push({ item: t.item, via: prop, viaList: isList })\n }\n }\n for (const prop of relationProperties) await walk(prop, false)\n for (const prop of listProperties) await walk(prop, true)\n }\n\n await visit(root)\n return { drafts, deferredProperties, backReferences }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publishDraftGraph-DGhC9ifI.js","sources":["../../src/helpers/getSegmentedItemProperties.ts","../../src/db/read/isSeedRevoked.ts","../../src/db/read/resolveRelatedSeedRef.ts","../../src/db/read/publishDraftGraph.ts"],"sourcesContent":["import { UploadProperty } from '@/db/read/getPublishUploads'\nimport { IItem } from '@/interfaces'\nimport { ModelPropertyDataTypes, normalizeDataType } from '@/Schema'\nimport { getPropertySchema, TProperty } from '@/helpers/property'\nimport { getItemModelScope, resolveModelRecord, type ModelScope } from '@/db/read/resolveModelRecord'\nimport type { Static } from '@sinclair/typebox'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { models, properties } from '@/seedSchema'\nimport { eq, and } from 'drizzle-orm'\nimport { camelCase, upperFirst } from 'lodash-es'\n\nconst matchesDataType = (\n actual: string | undefined,\n expected: ModelPropertyDataTypes | string,\n): boolean => normalizeDataType(actual) === expected\nasync function resolvePropertyDef(\n modelName: string,\n propertyName: string,\n scope: ModelScope,\n): Promise<{ dataType?: string; ref?: string; refValueType?: string; storageType?: string; localStorageDir?: string; filenameSuffix?: string; required?: boolean } | undefined> {\n let schema = await getPropertySchema(modelName, propertyName, scope)\n if (schema) return schema\n const db = BaseDb.getAppDb()\n if (!db) return undefined\n try {\n const normalizedModelName = upperFirst(camelCase(modelName))\n const modelRecord = await resolveModelRecord(normalizedModelName, scope, db)\n const modelRecords = modelRecord ? [modelRecord] : []\n if (modelRecords.length === 0 || !modelRecords[0].id) return undefined\n const propertyRecords = await db\n .select()\n .from(properties)\n .where(\n and(\n eq(properties.modelId, modelRecords[0].id),\n eq(properties.name, propertyName),\n ),\n )\n .limit(1)\n if (propertyRecords.length === 0) return undefined\n const propRecord = propertyRecords[0]\n let refModelName: string | undefined\n if (propRecord.refModelId != null) {\n const refModelRows = await db\n .select({ name: models.name })\n .from(models)\n .where(eq(models.id, propRecord.refModelId))\n .limit(1)\n refModelName = refModelRows[0]?.name ?? undefined\n }\n return {\n dataType: propRecord.dataType,\n ref: refModelName ?? undefined,\n refValueType: propRecord.refValueType || undefined,\n storageType: propRecord.storageType || undefined,\n localStorageDir: propRecord.localStorageDir || undefined,\n filenameSuffix: propRecord.filenameSuffix || undefined,\n required: propRecord.required ?? undefined,\n }\n } catch {\n return undefined\n }\n}\n\nexport const getSegmentedItemProperties = async (item: IItem<any>) => {\n const itemBasicProperties = []\n const itemRelationProperties = []\n const itemListProperties = []\n const itemUploadProperties: UploadProperty[] = []\n const itemImageProperties = []\n const itemStorageProperties = []\n let itemStorageTransactionProperty: UploadProperty | undefined\n let itemScope: ModelScope | undefined\n\n for (const itemProperty of item.properties) {\n let propertyDef = itemProperty.propertyDef\n // When propertyDef is missing (e.g. external app, Model not registered), resolve inline\n // so properties are not skipped and metadata attestations can be created\n if (!propertyDef && item.modelName) {\n itemScope ??= await getItemModelScope(item as any)\n const resolved = await resolvePropertyDef(item.modelName, itemProperty.propertyName, itemScope)\n if (resolved) {\n itemProperty.getService().send({ type: 'updateContext', propertyRecordSchema: resolved })\n propertyDef = resolved as Static<typeof TProperty>\n } else {\n // Last resort: Model and DB don't have schema. Use Text so property routes to\n // itemBasicProperties and can be attested (covers title, description, etc.)\n const fallbackDef = { dataType: 'Text' as const }\n itemProperty.getService().send({ type: 'updateContext', propertyRecordSchema: fallbackDef })\n propertyDef = fallbackDef as Static<typeof TProperty>\n }\n }\n if (!propertyDef) {\n continue\n }\n\n const isItemStorage =\n propertyDef.storageType &&\n propertyDef.storageType === 'ItemStorage'\n\n\n const isStorageTransaction =\n itemProperty.propertyName === 'storageTransactionId' ||\n itemProperty.propertyName === 'storage_transaction_id'\n\n const isStorageSeedType =\n matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Image) ||\n matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.File) ||\n matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Html) ||\n matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Json) ||\n (matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Relation) &&\n (matchesDataType(propertyDef.refValueType, ModelPropertyDataTypes.Image) ||\n matchesDataType(propertyDef.refValueType, ModelPropertyDataTypes.File) ||\n matchesDataType(propertyDef.refValueType, ModelPropertyDataTypes.Html) ||\n matchesDataType(propertyDef.refValueType, ModelPropertyDataTypes.Json)))\n\n if (isStorageSeedType) {\n itemImageProperties.push(itemProperty)\n if (matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Relation)) {\n itemRelationProperties.push(itemProperty)\n }\n continue\n }\n\n if (matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Relation)) {\n itemRelationProperties.push(itemProperty)\n continue\n }\n\n if (matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.List)) {\n // List-of-relations: ref present, goes to processListProperty\n // List-of-primitives: ref absent, treat as basic property\n const listRef =\n propertyDef.ref || (propertyDef as { refModelName?: string }).refModelName\n if (listRef) {\n itemListProperties.push(itemProperty)\n } else {\n itemBasicProperties.push(itemProperty)\n }\n continue\n }\n\n if (isItemStorage) {\n itemStorageProperties.push(itemProperty)\n continue\n }\n\n if (isStorageTransaction) {\n itemStorageTransactionProperty = { itemProperty, childProperties: [] }\n continue\n }\n\n itemBasicProperties.push(itemProperty)\n }\n\n if (itemStorageTransactionProperty && itemStorageProperties.length > 0) {\n itemStorageTransactionProperty.childProperties = itemStorageProperties\n }\n\n if (itemStorageTransactionProperty) {\n itemUploadProperties.push(itemStorageTransactionProperty)\n }\n\n return {\n itemBasicProperties,\n itemRelationProperties,\n itemListProperties,\n itemUploadProperties,\n itemImageProperties,\n }\n}\n","import { BaseDb } from '@/db/Db/BaseDb'\nimport { seeds } from '@/seedSchema'\nimport { eq } from 'drizzle-orm'\nimport { isVersionRevoked } from './subqueries/liveVersion'\n\n/**\n * True when the item's seed attestation was revoked (`seeds.revoked_at` set, by unpublish or EAS\n * sync). Such a seed can't take new versions: publishing again creates a new seed attestation\n * (see \"Republishing\" in docs/ATTESTATION_REVOCATION.md).\n */\nexport const isSeedRevoked = async (seedLocalId: string | undefined): Promise<boolean> => {\n if (!seedLocalId) return false\n const appDb = BaseDb.getAppDb()\n if (!appDb) return false\n const [row] = await appDb\n .select({ revokedAt: seeds.revokedAt })\n .from(seeds)\n .where(eq(seeds.localId, seedLocalId))\n .limit(1)\n return isVersionRevoked(row?.revokedAt)\n}\n","import { BaseDb } from '@/db/Db/BaseDb'\nimport { seeds, versions } from '@/seedSchema'\nimport { and, eq, isNotNull } from 'drizzle-orm'\nimport { ZERO_BYTES32 } from '@/helpers/constants'\nimport { isVersionRevoked } from './subqueries/liveVersion'\nimport { ModelPropertyDataTypes, normalizeDataType } from '@/helpers/property'\nimport type { IItem } from '@/interfaces'\n\nexport type RelatedSeedRow = {\n seedLocalId: string\n /** The seed's current uid (null while it was never published). */\n seedUid: string | null\n revokedAt: number | null\n type: string | null\n}\n\nconst selectSeed = {\n seedLocalId: seeds.localId,\n seedUid: seeds.uid,\n revokedAt: seeds.revokedAt,\n type: seeds.type,\n}\n\n/**\n * The local seed row a relation/list/image ref points at, by local id or uid. A uid that is no\n * seed's current uid can be the old uid of a seed that was unpublished and published again (a new\n * seed attestation, same local seed): its old version rows still record it, so it resolves to that\n * seed. Null when nothing local matches (e.g. a published uid with no local copy).\n */\nexport const findRelatedSeedRow = async ({\n seedLocalId,\n seedUid,\n}: {\n seedLocalId?: string\n seedUid?: string\n}): Promise<RelatedSeedRow | null> => {\n const appDb = BaseDb.getAppDb()\n if (!appDb) return null\n if (seedLocalId) {\n const [row] = await appDb.select(selectSeed).from(seeds).where(eq(seeds.localId, seedLocalId)).limit(1)\n if (row?.seedLocalId) return row as RelatedSeedRow\n }\n if (!seedUid || seedUid === ZERO_BYTES32) return null\n const [byUid] = await appDb.select(selectSeed).from(seeds).where(eq(seeds.uid, seedUid)).limit(1)\n if (byUid?.seedLocalId) return byUid as RelatedSeedRow\n const [version] = await appDb\n .select({ seedLocalId: versions.seedLocalId })\n .from(versions)\n .where(and(eq(versions.seedUid, seedUid), isNotNull(versions.seedLocalId)))\n .limit(1)\n if (!version?.seedLocalId) return null\n const [republished] = await appDb\n .select(selectSeed)\n .from(seeds)\n .where(eq(seeds.localId, version.seedLocalId))\n .limit(1)\n return republished?.seedLocalId ? (republished as RelatedSeedRow) : null\n}\n\n/** The seed is attested and its attestation is live. */\nexport const isLivePublishedSeed = (row: RelatedSeedRow | null): row is RelatedSeedRow & { seedUid: string } =>\n !!row?.seedUid && row.seedUid !== ZERO_BYTES32 && !isVersionRevoked(row.revokedAt)\n\n/** The seed was attested and that attestation was revoked (unpublished). */\nexport const isUnpublishedSeed = (row: RelatedSeedRow | null): row is RelatedSeedRow & { seedUid: string } =>\n !!row?.seedUid && row.seedUid !== ZERO_BYTES32 && isVersionRevoked(row.revokedAt)\n\n/** Model a relation/list/image property points at, from its definition. */\nexport function relatedModelNameFromDef(propertyDef: unknown): string | undefined {\n const def = propertyDef as { dataType?: string; ref?: string; refModelName?: string } | undefined\n if (!def) return undefined\n const dataType = normalizeDataType(def.dataType)\n if (dataType === ModelPropertyDataTypes.Image) return 'Image'\n if (dataType === ModelPropertyDataTypes.File) return 'File'\n if (dataType === ModelPropertyDataTypes.Html) return 'Html'\n return def.ref ?? def.refModelName\n}\n\n/**\n * Name of the item's Html property whose value is the Html seed `htmlSeedLocalId`: the property\n * that refers to the images embedded in that Html (htmlEmbeddedImageCoPublish rows).\n */\nexport function htmlPropertyNameForHtmlSeed(item: IItem<any>, htmlSeedLocalId: string): string {\n const want = htmlSeedLocalId.trim()\n for (const p of item.properties ?? []) {\n if (normalizeDataType(p.propertyDef?.dataType) !== ModelPropertyDataTypes.Html) continue\n const snap = p.getService().getSnapshot()\n const value = 'context' in snap ? (snap.context as { propertyValue?: unknown }).propertyValue : undefined\n if (typeof value === 'string' && value.trim() === want) return p.propertyName\n }\n return 'html'\n}\n","import { ZERO_BYTES32 } from '@/helpers/constants'\nimport { parseListPropertyValueFromStorage } from '@/helpers/listPropertyValueFromStorage'\nimport { getSegmentedItemProperties } from '@/helpers/getSegmentedItemProperties'\nimport {\n isPublishedSeedRef,\n normalizeRelationPropertyValue,\n resolveSeedIdsFromRefString,\n} from '@/helpers/relationSeedRef'\nimport type { IItem, IItemProperty } from '@/interfaces'\nimport { findRelatedSeedRow } from '@/db/read/resolveRelatedSeedRef'\nimport { isSeedRevoked } from '@/db/read/isSeedRevoked'\n\n/**\n * The draft items a publish of an item carries along, and how it walks to them.\n *\n * A publish attests the item and every draft item (no seed uid yet) reachable from it through\n * relation and list-of-relation properties, each with its full property set. Already-published\n * targets are referenced by their current uid and not walked into; revoked ones stop the publish\n * (RelatedItemUnpublishedError). getPublishPayload, getPublishUploads, getPublishUploadData (publish\n * package), summarizePublishWork and the Html-embedded image co-publish all walk this graph in the\n * same order: depth first, properties in item order (relations, then lists), list members in order.\n *\n * Cycles: an item can only attest the uid of a seed published before it in the same publish, so a\n * ref back to an item still being walked (an ancestor that gets a new seed in this publish) can't be\n * attested. Such a property is deferred: left out of this publish (it keeps no uid, so the next\n * publish of its item attests it, with the target's uid). For A ↔ B reached from A, A attests B's\n * uid and B's relation to A is deferred.\n */\n\n/** Relation properties that point at model items (not Image/File/Html/Json storage seeds). */\nexport function draftWalkProperties(segmented: {\n itemRelationProperties: IItemProperty<any>[]\n itemImageProperties: IItemProperty<any>[]\n itemListProperties: IItemProperty<any>[]\n}): { relationProperties: IItemProperty<any>[]; listProperties: IItemProperty<any>[] } {\n const storage = new Set(segmented.itemImageProperties)\n return {\n relationProperties: segmented.itemRelationProperties.filter((p) => !storage.has(p)),\n listProperties: segmented.itemListProperties,\n }\n}\n\nconst propertyContext = (prop: IItemProperty<any>): Record<string, unknown> | null => {\n const snapshot = prop.getService().getSnapshot()\n return snapshot && 'context' in snapshot\n ? ((snapshot as { context?: Record<string, unknown> }).context ?? null)\n : null\n}\n\n/** Seed refs held by a relation property (one) or a list property (each member). */\nexport function propertySeedRefs(prop: IItemProperty<any>, isList: boolean): string[] {\n const context = propertyContext(prop)\n if (!context) return []\n let value = context.propertyValue\n if (isList) {\n if (typeof value === 'string') value = parseListPropertyValueFromStorage(value)\n const arr = Array.isArray(value) ? value : value != null ? [value] : []\n return arr\n .map((v) =>\n v && typeof v === 'object'\n ? normalizeRelationPropertyValue(\n (v as { seedLocalId?: string; localId?: string }).seedLocalId ??\n (v as { localId?: string }).localId ??\n (v as { seedUid?: string }).seedUid ??\n (v as { uid?: string }).uid,\n )\n : normalizeRelationPropertyValue(v),\n )\n .filter((v): v is string => !!v)\n }\n const ref = normalizeRelationPropertyValue(value)\n return ref ? [ref] : []\n}\n\nconst isZeroUid = (uid: string | undefined | null): boolean => !uid || uid === ZERO_BYTES32\n\n/** The item gets a new seed attestation in this publish: a draft, or a revoked seed published again. */\nexport async function getsNewSeed(item: IItem<any>): Promise<boolean> {\n return isZeroUid(item.seedUid) || (await isSeedRevoked(item.seedLocalId))\n}\n\n/** Local seed id a ref points at (also for a republished seed's old uid), or undefined. */\nexport async function resolveRefSeedLocalId(ref: string): Promise<string | undefined> {\n const { seedLocalId, seedUid } = resolveSeedIdsFromRefString(ref)\n if (!seedLocalId && !seedUid) return undefined\n const row = await findRelatedSeedRow({ seedLocalId, seedUid })\n return row?.seedLocalId ?? seedLocalId\n}\n\nexport type PublishDraftGraphNode = {\n item: IItem<any>\n /** The relation or list property the walk first reached the item through. */\n via: IItemProperty<any>\n viaList: boolean\n}\n\nexport type PublishDraftGraph = {\n /** Draft items reachable from the root (root excluded), in the order the walk finishes them. */\n drafts: PublishDraftGraphNode[]\n /** Properties pointing back at an item still being walked; left out of this publish. */\n deferredProperties: Set<IItemProperty<any>>\n /** For each deferred property, the seeds (local ids) of its back references. */\n backReferences: Map<IItemProperty<any>, Set<string>>\n}\n\nexport type GetPublishDraftGraphOptions = {\n /** `new_version` / republish: properties that already have a uid are attested (and walked) again. */\n forceFullSnapshot?: boolean\n /**\n * Throw like getPublishUploads always did when a relation holds an invalid value or a local id\n * with no local item. Otherwise such refs are skipped (getPublishPayload reports them).\n */\n strict?: boolean\n}\n\n/** Would the publish attest this property (so walk its refs)? Same rule as getPublishPayload. */\nfunction walksProperty(prop: IItemProperty<any>, forceFullSnapshot: boolean): boolean {\n if (prop.uid && !forceFullSnapshot) return false\n const ctx = propertyContext(prop)\n const value = ctx?.propertyValue\n return value != null && value !== '' && !(Array.isArray(value) && value.length === 0)\n}\n\nasync function loadItem(seedLocalId: string): Promise<IItem<any> | undefined> {\n const { getItem } = await import('./getItem')\n try {\n return (await getItem({ seedLocalId })) ?? undefined\n } catch {\n return undefined\n }\n}\n\nexport async function getPublishDraftGraph(\n root: IItem<any>,\n options?: GetPublishDraftGraphOptions,\n): Promise<PublishDraftGraph> {\n const forceFullSnapshot = options?.forceFullSnapshot === true\n const strict = options?.strict === true\n const drafts: PublishDraftGraphNode[] = []\n const deferredProperties = new Set<IItemProperty<any>>()\n const backReferences = new Map<IItemProperty<any>, Set<string>>()\n const visited = new Set<string>([root.seedLocalId])\n const inProgress = new Set<string>()\n if (await getsNewSeed(root)) inProgress.add(root.seedLocalId)\n\n /** Draft target of a ref, or undefined (published, revoked, unknown). */\n const draftTarget = async (\n prop: IItemProperty<any>,\n ref: string,\n isList: boolean,\n ): Promise<{ seedLocalId: string; item?: IItem<any> } | undefined> => {\n const { seedLocalId, seedUid } = resolveSeedIdsFromRefString(ref)\n if (!seedLocalId && !seedUid) {\n if (strict && !isList) {\n throw new Error(`Invalid relation value for ${prop.propertyName}: expected local seed id or 0x uid`)\n }\n return undefined\n }\n const row = await findRelatedSeedRow({ seedLocalId, seedUid })\n const targetLocalId = row?.seedLocalId ?? seedLocalId\n if (!targetLocalId) return undefined\n // An item getting a new seed in this publish, still being walked (also the root when it is a\n // revoked seed published again): a back edge, whatever its current uid.\n if (inProgress.has(targetLocalId)) return { seedLocalId: targetLocalId }\n // Published (live or revoked): referenced by uid / reported, never walked into.\n if (row && !isZeroUid(row.seedUid)) return undefined\n if (visited.has(targetLocalId)) return { seedLocalId: targetLocalId }\n const item = await loadItem(targetLocalId)\n if (!item) {\n if (strict && !isList && !isPublishedSeedRef(ref)) {\n throw new Error(`No relatedItem found for ${prop.propertyName}`)\n }\n return undefined\n }\n if (!isZeroUid(item.seedUid)) return undefined\n return { seedLocalId: targetLocalId, item }\n }\n\n const visit = async (item: IItem<any>): Promise<void> => {\n const segmented = await getSegmentedItemProperties(item)\n const { relationProperties, listProperties } = draftWalkProperties(segmented)\n const walk = async (prop: IItemProperty<any>, isList: boolean) => {\n if (!walksProperty(prop, forceFullSnapshot)) return\n const targets: { seedLocalId: string; item?: IItem<any> }[] = []\n for (const ref of propertySeedRefs(prop, isList)) {\n const t = await draftTarget(prop, ref, isList)\n if (t) targets.push(t)\n }\n const back = targets.filter((t) => inProgress.has(t.seedLocalId)).map((t) => t.seedLocalId)\n if (back.length > 0) {\n deferredProperties.add(prop)\n backReferences.set(prop, new Set(back))\n }\n for (const t of targets) {\n if (!t.item || visited.has(t.seedLocalId)) continue\n visited.add(t.seedLocalId)\n inProgress.add(t.seedLocalId)\n await visit(t.item)\n inProgress.delete(t.seedLocalId)\n drafts.push({ item: t.item, via: prop, viaList: isList })\n }\n }\n for (const prop of relationProperties) await walk(prop, false)\n for (const prop of listProperties) await walk(prop, true)\n }\n\n await visit(root)\n return { drafts, deferredProperties, backReferences }\n}\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { eq, and, isNull, isNotNull } from 'drizzle-orm';
2
2
  import { easName } from '@seedprotocol/eas';
3
3
  import debug from 'debug';
4
- import { E as BaseDb, h as appState, A as seeds, z as schemas, s as models, q as modelSchemas, o as htmlEmbeddedImageCoPublish, j as arweaveL1FinalizeJobs, B as uploadProcesses, y as publishProcesses, l as easSyncProcesses, m as metadata, C as versions } from './BasePathResolver-DrzGVH9L.js';
4
+ import { B as BaseDb, j as appState, C as seeds, A as schemas, t as models, r as modelSchemas, p as htmlEmbeddedImageCoPublish, k as arweaveL1FinalizeJobs, E as uploadProcesses, z as publishProcesses, o as easSyncProcesses, m as metadata, F as versions } from './BasePathResolver-B-fK7_N_.js';
5
5
  import '@seedprotocol/arweave';
6
6
  import 'xstate';
7
7
  import 'pluralize';
@@ -95,4 +95,4 @@ const resetAmbiguousLegacyItemData = async () => {
95
95
  };
96
96
 
97
97
  export { LEGACY_ITEM_MODEL_CHECK_KEY, resetAmbiguousLegacyItemData };
98
- //# sourceMappingURL=resetAmbiguousLegacyItemData-DsFTnMBz.js.map
98
+ //# sourceMappingURL=resetAmbiguousLegacyItemData-HSB77N9c.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resetAmbiguousLegacyItemData-DsFTnMBz.js","sources":["../../src/db/resetAmbiguousLegacyItemData.ts"],"sourcesContent":["import { eq, isNotNull, isNull, and } from 'drizzle-orm'\nimport { easName } from '@seedprotocol/eas'\nimport debug from 'debug'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport {\n appState,\n arweaveL1FinalizeJobs,\n easSyncProcesses,\n htmlEmbeddedImageCoPublish,\n metadata,\n models,\n publishProcesses,\n schemas,\n seeds,\n uploadProcesses,\n modelSchemas,\n versions,\n} from '@/seedSchema'\n\nconst logger = debug('seedSdk:db:resetAmbiguousLegacyItemData')\n\n/** appState key recording that the one-time check after migration 0015 has run. */\nexport const LEGACY_ITEM_MODEL_CHECK_KEY = 'legacyItemModelCheck:v1'\n\n/**\n * One-time check after seeds.model_file_id was introduced (migration 0015). Seeds from before then\n * that couldn't be backfilled have no model; if their model name now exists in more than one schema\n * there is no way to tell which model they belong to. In that case the local item data (seeds,\n * versions, metadata and the jobs that reference them) is cleared, keeping schemas and models;\n * published items come back on the next EAS sync.\n *\n * Runs once (not on every start): EAS-synced seeds also lack model_file_id until\n * resolveModelForSyncedSeed exists, and re-checking would clear the DB after every sync.\n * TODO: replace the reset with a migration path once there is real user data at stake.\n *\n * @returns true if item data was cleared\n */\nexport const resetAmbiguousLegacyItemData = async (): Promise<boolean> => {\n const db = BaseDb.getAppDb()\n if (!db) return false\n\n const done = await db.select({ key: appState.key }).from(appState).where(eq(appState.key, LEGACY_ITEM_MODEL_CHECK_KEY)).limit(1)\n if (done.length > 0) return false\n\n const markDone = () =>\n db\n .insert(appState)\n .values({ key: LEGACY_ITEM_MODEL_CHECK_KEY, value: String(Date.now()), createdAt: Date.now(), updatedAt: Date.now() })\n .onConflictDoNothing()\n\n const legacyTypes = (await db\n .selectDistinct({ type: seeds.type })\n .from(seeds)\n .where(and(isNull(seeds.modelFileId), isNotNull(seeds.type)))) as { type: string }[]\n if (legacyTypes.length === 0) {\n await markDone()\n return false\n }\n\n // Which seed types (snake_case model names) map to models in more than one schema\n const linkedModels = (await db\n .select({ modelId: models.id, modelName: models.name, schemaName: schemas.name })\n .from(models)\n .innerJoin(modelSchemas, eq(models.id, modelSchemas.modelId))\n .innerJoin(schemas, eq(modelSchemas.schemaId, schemas.id))) as {\n modelId: number\n modelName: string\n schemaName: string\n }[]\n const byType = new Map<string, { modelIds: Set<number>; schemaNames: Set<string> }>()\n for (const row of linkedModels) {\n const type = easName(row.modelName)\n const entry = byType.get(type) ?? { modelIds: new Set(), schemaNames: new Set() }\n entry.modelIds.add(row.modelId)\n entry.schemaNames.add(row.schemaName)\n byType.set(type, entry)\n }\n const ambiguous = legacyTypes\n .map(({ type }) => ({ type, entry: byType.get(type) }))\n .filter(({ entry }) => entry && entry.modelIds.size > 1)\n\n if (ambiguous.length === 0) {\n await markDone()\n return false\n }\n\n const details = ambiguous\n .map(({ type, entry }) => `\"${type}\" (schemas: ${[...entry!.schemaNames].sort().join(', ')})`)\n .join('; ')\n console.warn(\n `[seed-protocol] Clearing local item data: items created before this SDK version don't record ` +\n `which model they belong to, and these model names now exist in more than one schema: ${details}. ` +\n `Schemas and models are kept; published items will be restored by the next EAS sync.`,\n )\n logger(`Clearing item data for ambiguous legacy seed types: ${details}`)\n\n for (const table of [\n htmlEmbeddedImageCoPublish,\n arweaveL1FinalizeJobs,\n uploadProcesses,\n publishProcesses,\n easSyncProcesses,\n metadata,\n versions,\n seeds,\n ]) {\n await db.delete(table)\n }\n await markDone()\n return true\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAmBA,MAAM,MAAM,GAAG,KAAK,CAAC,yCAAyC,CAAC;AAE/D;AACO,MAAM,2BAA2B,GAAG;AAE3C;;;;;;;;;;;;AAYG;AACI,MAAM,4BAA4B,GAAG,YAA6B;AACvE,IAAA,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE;AAC5B,IAAA,IAAI,CAAC,EAAE;AAAE,QAAA,OAAO,KAAK;AAErB,IAAA,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAChI,IAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;AAAE,QAAA,OAAO,KAAK;AAEjC,IAAA,MAAM,QAAQ,GAAG,MACf;SACG,MAAM,CAAC,QAAQ;AACf,SAAA,MAAM,CAAC,EAAE,GAAG,EAAE,2BAA2B,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;AACpH,SAAA,mBAAmB,EAAE;AAE1B,IAAA,MAAM,WAAW,IAAI,MAAM;SACxB,cAAc,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;SACnC,IAAI,CAAC,KAAK;AACV,SAAA,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAuB;AACtF,IAAA,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,MAAM,QAAQ,EAAE;AAChB,QAAA,OAAO,KAAK;IACd;;AAGA,IAAA,MAAM,YAAY,IAAI,MAAM;SACzB,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE;SAC/E,IAAI,CAAC,MAAM;AACX,SAAA,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,OAAO,CAAC;AAC3D,SAAA,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAIzD;AACH,IAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+D;AACrF,IAAA,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE;QAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE,EAAE;QACjF,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;QAC/B,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;AACrC,QAAA,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;IACzB;IACA,MAAM,SAAS,GAAG;SACf,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AACrD,SAAA,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;AAE1D,IAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,MAAM,QAAQ,EAAE;AAChB,QAAA,OAAO,KAAK;IACd;IAEA,MAAM,OAAO,GAAG;AACb,SAAA,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAA,CAAA,EAAI,IAAI,CAAA,YAAA,EAAe,CAAC,GAAG,KAAM,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG;SAC5F,IAAI,CAAC,IAAI,CAAC;IACb,OAAO,CAAC,IAAI,CACV,CAAA,6FAAA,CAA+F;AAC7F,QAAA,CAAA,qFAAA,EAAwF,OAAO,CAAA,EAAA,CAAI;AACnG,QAAA,CAAA,mFAAA,CAAqF,CACxF;AACD,IAAA,MAAM,CAAC,CAAA,oDAAA,EAAuD,OAAO,CAAA,CAAE,CAAC;IAExE,KAAK,MAAM,KAAK,IAAI;QAClB,0BAA0B;QAC1B,qBAAqB;QACrB,eAAe;QACf,gBAAgB;QAChB,gBAAgB;QAChB,QAAQ;QACR,QAAQ;QACR,KAAK;AACN,KAAA,EAAE;AACD,QAAA,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;IACxB;IACA,MAAM,QAAQ,EAAE;AAChB,IAAA,OAAO,IAAI;AACb;;"}
1
+ {"version":3,"file":"resetAmbiguousLegacyItemData-HSB77N9c.js","sources":["../../src/db/resetAmbiguousLegacyItemData.ts"],"sourcesContent":["import { eq, isNotNull, isNull, and } from 'drizzle-orm'\nimport { easName } from '@seedprotocol/eas'\nimport debug from 'debug'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport {\n appState,\n arweaveL1FinalizeJobs,\n easSyncProcesses,\n htmlEmbeddedImageCoPublish,\n metadata,\n models,\n publishProcesses,\n schemas,\n seeds,\n uploadProcesses,\n modelSchemas,\n versions,\n} from '@/seedSchema'\n\nconst logger = debug('seedSdk:db:resetAmbiguousLegacyItemData')\n\n/** appState key recording that the one-time check after migration 0015 has run. */\nexport const LEGACY_ITEM_MODEL_CHECK_KEY = 'legacyItemModelCheck:v1'\n\n/**\n * One-time check after seeds.model_file_id was introduced (migration 0015). Seeds from before then\n * that couldn't be backfilled have no model; if their model name now exists in more than one schema\n * there is no way to tell which model they belong to. In that case the local item data (seeds,\n * versions, metadata and the jobs that reference them) is cleared, keeping schemas and models;\n * published items come back on the next EAS sync.\n *\n * Runs once (not on every start): EAS-synced seeds also lack model_file_id until\n * resolveModelForSyncedSeed exists, and re-checking would clear the DB after every sync.\n * TODO: replace the reset with a migration path once there is real user data at stake.\n *\n * @returns true if item data was cleared\n */\nexport const resetAmbiguousLegacyItemData = async (): Promise<boolean> => {\n const db = BaseDb.getAppDb()\n if (!db) return false\n\n const done = await db.select({ key: appState.key }).from(appState).where(eq(appState.key, LEGACY_ITEM_MODEL_CHECK_KEY)).limit(1)\n if (done.length > 0) return false\n\n const markDone = () =>\n db\n .insert(appState)\n .values({ key: LEGACY_ITEM_MODEL_CHECK_KEY, value: String(Date.now()), createdAt: Date.now(), updatedAt: Date.now() })\n .onConflictDoNothing()\n\n const legacyTypes = (await db\n .selectDistinct({ type: seeds.type })\n .from(seeds)\n .where(and(isNull(seeds.modelFileId), isNotNull(seeds.type)))) as { type: string }[]\n if (legacyTypes.length === 0) {\n await markDone()\n return false\n }\n\n // Which seed types (snake_case model names) map to models in more than one schema\n const linkedModels = (await db\n .select({ modelId: models.id, modelName: models.name, schemaName: schemas.name })\n .from(models)\n .innerJoin(modelSchemas, eq(models.id, modelSchemas.modelId))\n .innerJoin(schemas, eq(modelSchemas.schemaId, schemas.id))) as {\n modelId: number\n modelName: string\n schemaName: string\n }[]\n const byType = new Map<string, { modelIds: Set<number>; schemaNames: Set<string> }>()\n for (const row of linkedModels) {\n const type = easName(row.modelName)\n const entry = byType.get(type) ?? { modelIds: new Set(), schemaNames: new Set() }\n entry.modelIds.add(row.modelId)\n entry.schemaNames.add(row.schemaName)\n byType.set(type, entry)\n }\n const ambiguous = legacyTypes\n .map(({ type }) => ({ type, entry: byType.get(type) }))\n .filter(({ entry }) => entry && entry.modelIds.size > 1)\n\n if (ambiguous.length === 0) {\n await markDone()\n return false\n }\n\n const details = ambiguous\n .map(({ type, entry }) => `\"${type}\" (schemas: ${[...entry!.schemaNames].sort().join(', ')})`)\n .join('; ')\n console.warn(\n `[seed-protocol] Clearing local item data: items created before this SDK version don't record ` +\n `which model they belong to, and these model names now exist in more than one schema: ${details}. ` +\n `Schemas and models are kept; published items will be restored by the next EAS sync.`,\n )\n logger(`Clearing item data for ambiguous legacy seed types: ${details}`)\n\n for (const table of [\n htmlEmbeddedImageCoPublish,\n arweaveL1FinalizeJobs,\n uploadProcesses,\n publishProcesses,\n easSyncProcesses,\n metadata,\n versions,\n seeds,\n ]) {\n await db.delete(table)\n }\n await markDone()\n return true\n}\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import debug from 'debug';
2
- import { G as AmbiguousModelError, H as eventEmitter } from './BasePathResolver-DrzGVH9L.js';
2
+ import { H as AmbiguousModelError, I as eventEmitter } from './BasePathResolver-B-fK7_N_.js';
3
3
 
4
4
  const logger = debug('seedSdk:db:read:resolveModelForSyncedSeed');
5
5
  /** Emitted when background work skips a seed whose model name exists in several schemas. */
@@ -43,4 +43,4 @@ const skipSeedOnAmbiguousModel = async (seed, context, work) => {
43
43
  };
44
44
 
45
45
  export { MODEL_AMBIGUOUS_EVENT as M, resolveModelForSyncedSeed as r, skipSeedOnAmbiguousModel as s };
46
- //# sourceMappingURL=resolveModelForSyncedSeed-RUsgAZXG.js.map
46
+ //# sourceMappingURL=resolveModelForSyncedSeed-CAKAJgr6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveModelForSyncedSeed-RUsgAZXG.js","sources":["../../src/db/read/resolveModelForSyncedSeed.ts"],"sourcesContent":["import debug from 'debug'\nimport { eventEmitter } from '@/eventBus'\nimport { AmbiguousModelError } from '@/Model/errors'\n\nconst logger = debug('seedSdk:db:read:resolveModelForSyncedSeed')\n\n/** Emitted when background work skips a seed whose model name exists in several schemas. */\nexport const MODEL_AMBIGUOUS_EVENT = 'model:ambiguous' as const\n\nexport type ModelAmbiguousEventPayload = {\n modelName: string\n schemaNames: string[]\n seedLocalId?: string\n seedUid?: string\n /** What was being done when the seed was skipped (e.g. 'easSync.metadata'). */\n context: string\n}\n\nexport type SyncedSeedInfo = {\n seedUid?: string | null\n seedLocalId?: string | null\n /** seeds.type as synced from EAS (the EAS schema name, i.e. snake_case model name). */\n modelType?: string | null\n /** EAS schema UID of the seed attestation. */\n schemaUid?: string | null\n}\n\n/**\n * Seam for matching an EAS-synced seed to a local model (its schemaFileId).\n *\n * EAS identifies a seed's model only by name (`bytes32 <model_name>`), so when several local schemas\n * define a model with that name the seed alone can't say which one it is. The plan is to match by\n * the seed's properties and metadata (see docs/EAS_SYNCED_SEED_MODEL_RESOLUTION.md).\n *\n * TODO(eas-synced-seed-model-resolution): not implemented yet. Returns undefined, so callers fall\n * back to the name, which throws AmbiguousModelError when the name is ambiguous.\n */\nexport const resolveModelForSyncedSeed = async (_seed: SyncedSeedInfo): Promise<string | undefined> => {\n return undefined\n}\n\n/**\n * Run background work for one seed; if it hits an ambiguous model name, log, emit\n * MODEL_AMBIGUOUS_EVENT and return undefined (skip) instead of failing the whole job. Loading the\n * item directly still throws, so the problem surfaces where the app touches it.\n */\nexport const skipSeedOnAmbiguousModel = async <T>(\n seed: { seedLocalId?: string | null; seedUid?: string | null },\n context: string,\n work: () => Promise<T>,\n): Promise<T | undefined> => {\n try {\n return await work()\n } catch (error) {\n if (!(error instanceof AmbiguousModelError)) throw error\n logger(`Skipping seed ${seed.seedLocalId ?? seed.seedUid} in ${context}: ${error.message}`)\n const payload: ModelAmbiguousEventPayload = {\n modelName: error.modelName,\n schemaNames: error.schemaNames,\n seedLocalId: seed.seedLocalId ?? undefined,\n seedUid: seed.seedUid ?? undefined,\n context,\n }\n eventEmitter.emit(MODEL_AMBIGUOUS_EVENT, payload)\n return undefined\n }\n}\n"],"names":[],"mappings":";;;AAIA,MAAM,MAAM,GAAG,KAAK,CAAC,2CAA2C,CAAC;AAEjE;AACO,MAAM,qBAAqB,GAAG;AAoBrC;;;;;;;;;AASG;MACU,yBAAyB,GAAG,OAAO,KAAqB,KAAiC;AACpG,IAAA,OAAO,SAAS;AAClB;AAEA;;;;AAIG;AACI,MAAM,wBAAwB,GAAG,OACtC,IAA8D,EAC9D,OAAe,EACf,IAAsB,KACI;AAC1B,IAAA,IAAI;QACF,OAAO,MAAM,IAAI,EAAE;IACrB;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,IAAI,EAAE,KAAK,YAAY,mBAAmB,CAAC;AAAE,YAAA,MAAM,KAAK;AACxD,QAAA,MAAM,CAAC,CAAA,cAAA,EAAiB,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAA,IAAA,EAAO,OAAO,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC;AAC3F,QAAA,MAAM,OAAO,GAA+B;YAC1C,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;AAC9B,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,SAAS;AAC1C,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS;YAClC,OAAO;SACR;AACD,QAAA,YAAY,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC;AACjD,QAAA,OAAO,SAAS;IAClB;AACF;;"}
1
+ {"version":3,"file":"resolveModelForSyncedSeed-CAKAJgr6.js","sources":["../../src/db/read/resolveModelForSyncedSeed.ts"],"sourcesContent":["import debug from 'debug'\nimport { eventEmitter } from '@/eventBus'\nimport { AmbiguousModelError } from '@/Model/errors'\n\nconst logger = debug('seedSdk:db:read:resolveModelForSyncedSeed')\n\n/** Emitted when background work skips a seed whose model name exists in several schemas. */\nexport const MODEL_AMBIGUOUS_EVENT = 'model:ambiguous' as const\n\nexport type ModelAmbiguousEventPayload = {\n modelName: string\n schemaNames: string[]\n seedLocalId?: string\n seedUid?: string\n /** What was being done when the seed was skipped (e.g. 'easSync.metadata'). */\n context: string\n}\n\nexport type SyncedSeedInfo = {\n seedUid?: string | null\n seedLocalId?: string | null\n /** seeds.type as synced from EAS (the EAS schema name, i.e. snake_case model name). */\n modelType?: string | null\n /** EAS schema UID of the seed attestation. */\n schemaUid?: string | null\n}\n\n/**\n * Seam for matching an EAS-synced seed to a local model (its schemaFileId).\n *\n * EAS identifies a seed's model only by name (`bytes32 <model_name>`), so when several local schemas\n * define a model with that name the seed alone can't say which one it is. The plan is to match by\n * the seed's properties and metadata (see docs/EAS_SYNCED_SEED_MODEL_RESOLUTION.md).\n *\n * TODO(eas-synced-seed-model-resolution): not implemented yet. Returns undefined, so callers fall\n * back to the name, which throws AmbiguousModelError when the name is ambiguous.\n */\nexport const resolveModelForSyncedSeed = async (_seed: SyncedSeedInfo): Promise<string | undefined> => {\n return undefined\n}\n\n/**\n * Run background work for one seed; if it hits an ambiguous model name, log, emit\n * MODEL_AMBIGUOUS_EVENT and return undefined (skip) instead of failing the whole job. Loading the\n * item directly still throws, so the problem surfaces where the app touches it.\n */\nexport const skipSeedOnAmbiguousModel = async <T>(\n seed: { seedLocalId?: string | null; seedUid?: string | null },\n context: string,\n work: () => Promise<T>,\n): Promise<T | undefined> => {\n try {\n return await work()\n } catch (error) {\n if (!(error instanceof AmbiguousModelError)) throw error\n logger(`Skipping seed ${seed.seedLocalId ?? seed.seedUid} in ${context}: ${error.message}`)\n const payload: ModelAmbiguousEventPayload = {\n modelName: error.modelName,\n schemaNames: error.schemaNames,\n seedLocalId: seed.seedLocalId ?? undefined,\n seedUid: seed.seedUid ?? undefined,\n context,\n }\n eventEmitter.emit(MODEL_AMBIGUOUS_EVENT, payload)\n return undefined\n }\n}\n"],"names":[],"mappings":";;;AAIA,MAAM,MAAM,GAAG,KAAK,CAAC,2CAA2C,CAAC;AAEjE;AACO,MAAM,qBAAqB,GAAG;AAoBrC;;;;;;;;;AASG;MACU,yBAAyB,GAAG,OAAO,KAAqB,KAAiC;AACpG,IAAA,OAAO,SAAS;AAClB;AAEA;;;;AAIG;AACI,MAAM,wBAAwB,GAAG,OACtC,IAA8D,EAC9D,OAAe,EACf,IAAsB,KACI;AAC1B,IAAA,IAAI;QACF,OAAO,MAAM,IAAI,EAAE;IACrB;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,IAAI,EAAE,KAAK,YAAY,mBAAmB,CAAC;AAAE,YAAA,MAAM,KAAK;AACxD,QAAA,MAAM,CAAC,CAAA,cAAA,EAAiB,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAA,IAAA,EAAO,OAAO,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC;AAC3F,QAAA,MAAM,OAAO,GAA+B;YAC1C,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;AAC9B,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,SAAS;AAC1C,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS;YAClC,OAAO;SACR;AACD,QAAA,YAAY,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC;AACjD,QAAA,OAAO,SAAS;IAClB;AACF;;"}
@@ -48,9 +48,12 @@ export declare class Item<T extends ModelValues<ModelSchema>> implements IItem<T
48
48
  static create<T extends ModelValues<ModelSchema>>(props: Partial<ItemData> & {
49
49
  modelInstance?: import('../Model/Model').Model;
50
50
  }, options?: ItemCreateOptions): Promise<Item<any>>;
51
+ /** Stops a just-created item and deletes what create wrote (see discardNewDraft). */
52
+ private static discardCreatedItem;
51
53
  /**
52
54
  * Run each File/Image/Html/ItemStorage initial value through its ItemProperty save pipeline (sequentially, to
53
- * avoid SQLite write contention). Rejects on the first failure; the item itself has been created.
55
+ * avoid SQLite write contention). Rejects on the first failure, with ItemCreateValidationError when the
56
+ * value breaks its property's rules; Item.create then removes the item.
54
57
  */
55
58
  private static savePipelineValues;
56
59
  private static waitForPropertyInstance;
@@ -1 +1 @@
1
- {"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../../src/Item/Item.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../../src/Item/Item.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,9 @@ export type ItemCreateProblem = {
7
7
  };
8
8
  /**
9
9
  * Thrown by Item.create when values don't fit the model: unknown keys, wrong types, or values
10
- * that break the property's validation rules. Nothing is written.
10
+ * that break the property's validation rules. Nothing is left written: most values are checked
11
+ * before anything is written, and File/Image/Html/ItemStorage values, checked as they're saved,
12
+ * have their draft removed.
11
13
  */
12
14
  export declare class ItemCreateValidationError extends Error {
13
15
  readonly modelName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/Item/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;;GAGG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAA;gBAE1B,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE;CAS7D;AAED,+FAA+F;AAC/F,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;gBAEhB,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAOnD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/Item/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;;;;GAKG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAA;gBAE1B,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE;CAS7D;AAED,+FAA+F;AAC/F,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;gBAEhB,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAOnD"}
@@ -1 +1 @@
1
- {"version":3,"file":"saveItemStorage.d.ts","sourceRoot":"","sources":["../../../../../../src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAEL,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,kBAAkB,CAAA;AAqBzB,eAAO,MAAM,eAAe,8HAqM1B,CAAA"}
1
+ {"version":3,"file":"saveItemStorage.d.ts","sourceRoot":"","sources":["../../../../../../src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAEL,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,kBAAkB,CAAA;AAsBzB,eAAO,MAAM,eAAe,8HAqM1B,CAAA"}
@@ -114,7 +114,8 @@ export declare class Model {
114
114
  /**
115
115
  * Find Model by modelType (an EAS model name, as seeds.type stores it). Matched as ADR 0008
116
116
  * matches EAS names: `new_model` finds "New model", and `htmlpage` (an older SDK's name) finds
117
- * "HTMLPage". Only the tightest matching tier counts; matches in several schemas are ambiguous.
117
+ * "HTMLPage", unless HTMLPage's nameMatch (ADR 0009) is `exact`. Only the tightest matching tier
118
+ * counts; matches in several schemas are ambiguous.
118
119
  */
119
120
  static findByModelType(modelType: string): Model | undefined;
120
121
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../../src/Model/Model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA6B,MAAM,QAAQ,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAE1E,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAGlC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAwCvC,KAAK,YAAY,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,CAAA;AA2CrD,qBAAa,KAAK;IAEhB,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,GAAG,CACrC,MAAM,EAAE,cAAc;IACtB;QAAE,QAAQ,EAAE,KAAK,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CACtC,CAAY;IAGb,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,CACvC,MAAM,EAAE,yBAAyB;IACjC,MAAM,CACP,CAAY;IAGb,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CACjC,MAAM,EACN;QAAE,QAAQ,EAAE,KAAK,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CACtC,CAAY;IAGb,OAAO,CAAC,MAAM,CAAC,aAAa,CAKxB;IAGJ,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAY;IAGtD,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAuB;IAC7D,OAAO,CAAC,MAAM,CAAC,eAAe,CAAY;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAK;IAElD,MAAM,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IASrE,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAMrD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAA;IAEzC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,GAAG,EAAE,CAAA;gBAIjB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,MAAM,EAAE,oCAAoC;IACjD,cAAc,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,6BAA6B,CAAC,EACzE,YAAY,CAAC,EAAE,OAAO;IA0CxB;;;OAGG;mBACkB,cAAc;IAwBnC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAI7B;;;;;;;;OAQG;IACH,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,GAAE,OAAe,GAAG,MAAM;IAsEzG;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,MAAM,CACX,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,MAAM,GAAG,GAAG,EAAE,uDAAuD;IACzF,OAAO,EAAE;QACP,EAAE,CAAC,EAAE,MAAM,CAAA;QACX,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,UAAU,CAAC,EAAE;YAAE,CAAC,YAAY,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAA;QAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAA;QAC5B,YAAY,EAAE,KAAK,CAAA;KACpB,GACA,KAAK;IACR,MAAM,CAAC,MAAM,CACX,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,MAAM,GAAG,GAAG,EAChC,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,MAAM,CAAA;QACX,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,UAAU,CAAC,EAAE;YAAE,CAAC,YAAY,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAA;QAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAA;QAC5B,YAAY,CAAC,EAAE,IAAI,CAAA;QACnB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,GACA,OAAO,CAAC,KAAK,CAAC;IAqqBjB;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAatD;;;;;;OAMG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAe3E,yGAAyG;IACzG,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAmBpC;;;OAGG;IACH,MAAM,CAAC,OAAO,CACZ,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,KAAK,GAAE;QAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAO,GACtE,KAAK,GAAG,SAAS;IAapB;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAO5D;;;OAGG;IACH,MAAM,CAAC,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK,EAAE;IA2B/D;;;OAGG;WACU,YAAY,CACvB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,KAAK,GAAE;QAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAO,GACtE,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IA4C7B;;;;;;;OAOG;WACU,cAAc,CACzB,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QACR;;;WAGG;QACH,aAAa,CAAC,EAAE,MAAM,CAAA;KACvB,GACA,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IAiE7B;;;;;;OAMG;WACU,UAAU,CACrB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QACR;;;;WAIG;QACH,aAAa,CAAC,EAAE,MAAM,CAAA;KACvB,GACA,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IAoE7B;;;;;OAKG;WACU,IAAI,CAAC,EAChB,WAAW,EACX,SAAS,EACT,UAAU,EACV,YAAmB,EACnB,YAAuC,GACxC,EAAE;QACD,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IA0B9B;;;;;;OAMG;WACU,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAwEzE;;;;;OAKG;WACU,GAAG,CACd,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1D,OAAO,CAAC,KAAK,EAAE,CAAC;IA4GnB;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAoBvG,UAAU,IAAI,YAAY;IAI1B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,mBAAmB;IAI3B;;;OAGG;YACW,kBAAkB;IAsChC;;;;;OAKG;YACW,cAAc;IA2G5B,IAAI,MAAM,uEAET;IAED,mGAAmG;IACnG,IAAI,aAAa,IAAI,KAAK,GAAG,SAAS,CAErC;IAED,IAAI,gBAAgB,mCAEnB;IAED,IAAI,OAAO,YAGV;IAED,IAAI,QAAQ,YAcX;IAED,IAAI,EAAE,uBAEL;IAED,IAAI,IAAI,WAEP;IAED;;;;OAIG;IACH,IAAI,UAAU,IAAI,GAAG,EAAE,CAkCtB;IAED;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;IAkC9D;;;;;;;;;;OAUG;IACG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAejF;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B7B;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAqCnD;;OAEG;IACH,MAAM,IAAI,IAAI;IA8Bd;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAyE9B;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IA4GnC;;OAEG;YACW,wBAAwB;IAoEtC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC;;;;OAIG;WACU,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBnE"}
1
+ {"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../../src/Model/Model.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../src/Schema/Schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../src/Schema/Schema.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ export type SchemaMachineContext = {
13
13
  };
14
14
  models?: {
15
15
  [modelName: string]: {
16
+ nameMatch?: SchemaFileFormat['nameMatch'];
16
17
  properties: {
17
18
  [propertyName: string]: any;
18
19
  };
@@ -21,6 +22,8 @@ export type SchemaMachineContext = {
21
22
  enums?: {
22
23
  [enumName: string]: any;
23
24
  };
25
+ /** The schema file's top-level nameMatch (ADR 0009). */
26
+ nameMatch?: SchemaFileFormat['nameMatch'];
24
27
  migrations?: Array<{
25
28
  version: number;
26
29
  timestamp: string;
@@ -1 +1 @@
1
- {"version":3,"file":"schemaMachine.d.ts","sourceRoot":"","sources":["../../../../src/Schema/service/schemaMachine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemaMachine.d.ts","sourceRoot":"","sources":["../../../../src/Schema/service/schemaMachine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"clientManagerMachine.d.ts","sourceRoot":"","sources":["../../../src/client/clientManagerMachine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAStE,OAAO,EAAuB,kBAAkB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAkHxF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAgBkC,MAAM;;;;;;;;;;;;;;;;+BAwNvE,CAAA"}
1
+ {"version":3,"file":"clientManagerMachine.d.ts","sourceRoot":"","sources":["../../../src/client/clientManagerMachine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAStE,OAAO,EAAuB,kBAAkB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAmHxF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAgBkC,MAAM;;;;;;;;;;;;;;;;+BA0NvE,CAAA"}
@@ -0,0 +1,25 @@
1
+ /** appState key recording that the fix below has run on this database. */
2
+ export declare const ROW_PUBLISHERS_ALIGNED_KEY = "rowPublishersAligned";
3
+ export type AlignRowPublishersResult = {
4
+ versionRows: number;
5
+ propertyRows: number;
6
+ };
7
+ /**
8
+ * Gives version and property rows their seed's publisher. Before, edits wrote property rows with no
9
+ * publisher, and versions and property rows took the session's publisher rather than the seed's,
10
+ * so connecting another wallet could claim rows of a seed that already had one. Local query reads
11
+ * report a row's publisher as its attester and leave out rows whose attester isn't their parent's.
12
+ *
13
+ * Only rows without a stored attestation are changed: synced rows carry their attester in
14
+ * `attestation_raw`. When the seed belongs to no wallet yet, its unsealed rows lose any publisher,
15
+ * so they're claimed with it.
16
+ */
17
+ export declare function alignRowPublishers(): Promise<AlignRowPublishersResult>;
18
+ /**
19
+ * Starts {@link alignRowPublishers} in the background after client init, once per database, like
20
+ * the foreign-attestation cleanup. Leader tab only (docs/MULTI_TAB.md). Never throws.
21
+ */
22
+ export declare function startAlignRowPublishers(): void;
23
+ /** Resolves when a background run has finished (at once if none is running). */
24
+ export declare function whenAlignRowPublishersSettled(): Promise<void>;
25
+ //# sourceMappingURL=alignRowPublishers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alignRowPublishers.d.ts","sourceRoot":"","sources":["../../../src/db/alignRowPublishers.ts"],"names":[],"mappings":"AAYA,0EAA0E;AAC1E,eAAO,MAAM,0BAA0B,yBAAyB,CAAA;AAEhE,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAYD;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAuD5E;AAuCD;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAW9C;AAED,gFAAgF;AAChF,wBAAgB,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7D"}
@@ -3,8 +3,8 @@
3
3
  * EAS name of the model (ADR 0008): `html_page` for HTMLPage. Rows written before that hold other
4
4
  * forms: drizzle's snake_case for local seeds (`image_v_2`), or the name an older SDK published,
5
5
  * for synced ones (`htmlpage`). This rewrites each stored type that matches exactly one local model
6
- * name (in the tightest tier, as sync matches) to that model's type. Types matching no model, or
7
- * several, are left alone. Returns the number of types rewritten.
6
+ * name (in the tightest tier its nameMatch level allows, as sync matches) to that model's type.
7
+ * Types matching no model, or several, are left alone. Returns the number of types rewritten.
8
8
  */
9
9
  export declare function canonicalizeModelTypes(): Promise<number>;
10
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"canonicalizeModelTypes.d.ts","sourceRoot":"","sources":["../../../src/db/canonicalizeModelTypes.ts"],"names":[],"mappings":"AASA;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CA4B9D;AAmBD;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,IAAI,CAWlD;AAED,gFAAgF;AAChF,wBAAgB,iCAAiC,IAAI,OAAO,CAAC,IAAI,CAAC,CAEjE"}
1
+ {"version":3,"file":"canonicalizeModelTypes.d.ts","sourceRoot":"","sources":["../../../src/db/canonicalizeModelTypes.ts"],"names":[],"mappings":"AAUA;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CAgC9D;AAmBD;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,IAAI,CAWlD;AAED,gFAAgF;AAChF,wBAAgB,iCAAiC,IAAI,OAAO,CAAC,IAAI,CAAC,CAEjE"}
@@ -9,8 +9,9 @@ type GetModelSchemasReturn = {
9
9
  modelRecords: ModelRecord[];
10
10
  /**
11
11
  * The local model an EAS model schema (`bytes32 <name>`) stands for, matched as ADR 0008
12
- * matches names: `bytes32 htmlpage` (an older SDK's name) finds HTMLPage. Undefined when
13
- * nothing matches, or several models match equally well.
12
+ * matches names: `bytes32 htmlpage` (an older SDK's name) finds HTMLPage, unless HTMLPage's
13
+ * nameMatch is `exact` (ADR 0009). Undefined when nothing matches, or several models match
14
+ * equally well.
14
15
  */
15
16
  matchModelRecord: (schemaString: string) => ModelRecord | undefined;
16
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"getModelSchemas.d.ts","sourceRoot":"","sources":["../../../../src/db/read/getModelSchemas.ts"],"names":[],"mappings":"AAQA,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAID,KAAK,qBAAqB,GAAG;IAC3B,yBAAyB,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACnD,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAA;CACpE,CAAA;AAED,KAAK,eAAe,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,CAAA;AAE3D,eAAO,MAAM,eAAe,EAAE,eAkE7B,CAAA"}
1
+ {"version":3,"file":"getModelSchemas.d.ts","sourceRoot":"","sources":["../../../../src/db/read/getModelSchemas.ts"],"names":[],"mappings":"AASA,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAID,KAAK,qBAAqB,GAAG;IAC3B,yBAAyB,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACnD,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B;;;;;OAKG;IACH,gBAAgB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAA;CACpE,CAAA;AAED,KAAK,eAAe,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,CAAA;AAE3D,eAAO,MAAM,eAAe,EAAE,eAwE7B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getPublishPayload.d.ts","sourceRoot":"","sources":["../../../../src/db/read/getPublishPayload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getPublishPayload.d.ts","sourceRoot":"","sources":["../../../../src/db/read/getPublishPayload.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getPublishUploads.d.ts","sourceRoot":"","sources":["../../../../src/db/read/getPublishUploads.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAkBvE,8GAA8G;AAC9G,eAAO,MAAM,8BAA8B,IAAI,CAAA;AAE/C,sFAAsF;AACtF,MAAM,MAAM,wBAAwB,GAAG;IACrC,iBAAiB,CAAC,EAAE,cAAc,EAAE,CAAA;IACpC;;OAEG;IACH,4BAA4B,CAAC,EAAE,MAAM,EAAE,CAAA;IACvC;;OAEG;IACH,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAA;IACtC,qGAAqG;IACrG,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAoBD,eAAO,MAAM,yBAAyB,GACpC,MAAM,MAAM,GAAG,UAAU,EACzB,aAAa,MAAM,GAAG,SAAS,EAC/B,cAAc,MAAM,EACpB,iBAAiB,cAAc,EAAE,KAChC,OAAO,CAAC,kBAAkB,CAQ5B,CAAA;AA8KD,MAAM,MAAM,cAAc,GAAG;IAC3B,YAAY,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;IAChC,eAAe,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAA;CACtC,CAAA;AAsDD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,2BAA2B,GACtC,eAAe,aAAa,CAAC,GAAG,CAAC,KAChC,OAAO,CAAC;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAmD5D,CAAA;AAsID,8FAA8F;AAC9F,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAChB,mBAAmB,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GACvC,OAAO,CAAC,OAAO,CAAC,CAOlB;AAoND;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,MAAM,KAAK,CAAC,GAAG,CAAC,EAChB,UAAS,iBAAiB,EAAO,EACjC,sBAAsB,aAAa,CAAC,GAAG,CAAC,EACxC,UAAU,wBAAwB,KACjC,OAAO,CAAC,iBAAiB,EAAE,CAa7B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,KAAK,CAAC,GAAG,CAAC,EAChB,UAAS,aAAa,EAAO,EAC7B,sBAAsB,aAAa,CAAC,GAAG,CAAC,EACxC,UAAU,wBAAwB,KACjC,OAAO,CAAC,aAAa,EAAE,CAczB,CAAA"}
1
+ {"version":3,"file":"getPublishUploads.d.ts","sourceRoot":"","sources":["../../../../src/db/read/getPublishUploads.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAmBvE,8GAA8G;AAC9G,eAAO,MAAM,8BAA8B,IAAI,CAAA;AAE/C,sFAAsF;AACtF,MAAM,MAAM,wBAAwB,GAAG;IACrC,iBAAiB,CAAC,EAAE,cAAc,EAAE,CAAA;IACpC;;OAEG;IACH,4BAA4B,CAAC,EAAE,MAAM,EAAE,CAAA;IACvC;;OAEG;IACH,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAA;IACtC,qGAAqG;IACrG,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAoBD,eAAO,MAAM,yBAAyB,GACpC,MAAM,MAAM,GAAG,UAAU,EACzB,aAAa,MAAM,GAAG,SAAS,EAC/B,cAAc,MAAM,EACpB,iBAAiB,cAAc,EAAE,KAChC,OAAO,CAAC,kBAAkB,CAQ5B,CAAA;AA2JD,MAAM,MAAM,cAAc,GAAG;IAC3B,YAAY,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;IAChC,eAAe,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAA;CACtC,CAAA;AAsDD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,2BAA2B,GACtC,eAAe,aAAa,CAAC,GAAG,CAAC,KAChC,OAAO,CAAC;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAmD5D,CAAA;AAsID,8FAA8F;AAC9F,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAChB,mBAAmB,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GACvC,OAAO,CAAC,OAAO,CAAC,CAOlB;AAoND;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,MAAM,KAAK,CAAC,GAAG,CAAC,EAChB,UAAS,iBAAiB,EAAO,EACjC,sBAAsB,aAAa,CAAC,GAAG,CAAC,EACxC,UAAU,wBAAwB,KACjC,OAAO,CAAC,iBAAiB,EAAE,CAa7B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,KAAK,CAAC,GAAG,CAAC,EAChB,UAAS,aAAa,EAAO,EAC7B,sBAAsB,aAAa,CAAC,GAAG,CAAC,EACxC,UAAU,wBAAwB,KACjC,OAAO,CAAC,aAAa,EAAE,CAczB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getSchemaUidForModel.d.ts","sourceRoot":"","sources":["../../../../src/db/read/getSchemaUidForModel.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAClC,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAwDnC,CAAA"}
1
+ {"version":3,"file":"getSchemaUidForModel.d.ts","sourceRoot":"","sources":["../../../../src/db/read/getSchemaUidForModel.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAClC,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAyDnC,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The publisher a seed's version and property rows take: the seed's own (its `publisher`, else the
3
+ * attester of its stored attestation). Undefined for a draft that belongs to no wallet yet; those
4
+ * rows are then claimed together with their seed (claimUnpublishedDrafts).
5
+ */
6
+ export declare function getSeedPublisher(seedLocalId: string | null | undefined): Promise<string | undefined>;
7
+ //# sourceMappingURL=getSeedPublisher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSeedPublisher.d.ts","sourceRoot":"","sources":["../../../../src/db/read/getSeedPublisher.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAW1G"}
@@ -0,0 +1,64 @@
1
+ import { type NameMatchLevel } from '@seedprotocol/eas';
2
+ import { BaseDb } from '../Db/BaseDb';
3
+ /**
4
+ * How strictly names from EAS match each local model and property (ADR 0009). A schema file sets
5
+ * `nameMatch` on a property, a model, or at its top level; the first one set wins, else
6
+ * DEFAULT_NAME_MATCH_LEVEL. Only names from EAS are matched this way; local code's names are exact.
7
+ */
8
+ export type NameMatchLevels = {
9
+ /** The level for a model's own name. Tightest across schemas that define the name. */
10
+ model: (modelName: string) => NameMatchLevel;
11
+ /**
12
+ * The level for a property. With `modelFileId` (Model.id), that model's schema; otherwise the
13
+ * tightest across schemas that define the model.
14
+ */
15
+ property: (modelName: string, propertyName: string, modelFileId?: string | null) => NameMatchLevel;
16
+ };
17
+ type SchemaFileLevels = {
18
+ nameMatch?: unknown;
19
+ models?: Record<string, {
20
+ id?: string;
21
+ nameMatch?: unknown;
22
+ properties?: Record<string, {
23
+ nameMatch?: unknown;
24
+ }>;
25
+ }>;
26
+ };
27
+ /**
28
+ * Builds NameMatchLevels from the schema files that own each model row. Exported for tests;
29
+ * use {@link nameMatchLevels}.
30
+ */
31
+ export declare const nameMatchLevelsFromRows: (rows: {
32
+ modelName: string;
33
+ modelFileId: string | null;
34
+ schemaData: string | null;
35
+ }[]) => NameMatchLevels;
36
+ type Db = ReturnType<typeof BaseDb.getAppDb>;
37
+ /** Reads the levels from the schema files stored with each model's schema row (schemas.schema_data). */
38
+ export declare const loadNameMatchLevels: (db?: Db | undefined) => Promise<NameMatchLevels>;
39
+ /** The levels, loaded once and reused until a schema write clears them. */
40
+ export declare const nameMatchLevels: (db?: Db | undefined) => Promise<NameMatchLevels>;
41
+ /**
42
+ * The last loaded levels, for synchronous callers (Model.findByModelType). Sync and the post-init
43
+ * model type pass load them; before that every name is at DEFAULT_NAME_MATCH_LEVEL.
44
+ */
45
+ export declare const currentNameMatchLevels: () => NameMatchLevels;
46
+ /** Called when a schema row or its models are written, so the next read reloads. */
47
+ export declare const clearNameMatchLevels: () => void;
48
+ /**
49
+ * `nameMatch` values in a schema file that aren't a level. They are ignored (the next level up
50
+ * applies); schema loads warn about them.
51
+ */
52
+ export declare const invalidNameMatchValues: (file: SchemaFileLevels & {
53
+ metadata?: {
54
+ name?: string;
55
+ };
56
+ }) => string[];
57
+ /** Warns about {@link invalidNameMatchValues}. */
58
+ export declare const warnOnInvalidNameMatch: (file: SchemaFileLevels & {
59
+ metadata?: {
60
+ name?: string;
61
+ };
62
+ }) => string[];
63
+ export {};
64
+ //# sourceMappingURL=nameMatchLevels.d.ts.map