@seedprotocol/sdk 0.6.5 → 0.6.6

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 (73) hide show
  1. package/dist/{ModelProperty-BKvUJGud.js → ModelProperty-Bvg9cJcd.js} +16 -16
  2. package/dist/{ModelProperty-BKvUJGud.js.map → ModelProperty-Bvg9cJcd.js.map} +1 -1
  3. package/dist/{Schema-BBh7ZhRk.js → Schema-BNJBY80k.js} +22 -22
  4. package/dist/{Schema-BBh7ZhRk.js.map → Schema-BNJBY80k.js.map} +1 -1
  5. package/dist/{SchemaValidationService-BnJ43zov.js → SchemaValidationService-aqXkwXTr.js} +3 -3
  6. package/dist/{SchemaValidationService-BnJ43zov.js.map → SchemaValidationService-aqXkwXTr.js.map} +1 -1
  7. package/dist/{backfillMetadataPropertyIds-BEryy6Mu.js → backfillMetadataPropertyIds-DYkvoOMz.js} +2 -2
  8. package/dist/{backfillMetadataPropertyIds-BEryy6Mu.js.map → backfillMetadataPropertyIds-DYkvoOMz.js.map} +1 -1
  9. package/dist/cjs/{ModelProperty-CGjXNHFW.js → ModelProperty-alntkSnH.js} +17 -17
  10. package/dist/cjs/{ModelProperty-CGjXNHFW.js.map → ModelProperty-alntkSnH.js.map} +1 -1
  11. package/dist/cjs/{Schema-CLMqGTHn.js → Schema-ByFv6fcb.js} +20 -20
  12. package/dist/cjs/{Schema-CLMqGTHn.js.map → Schema-ByFv6fcb.js.map} +1 -1
  13. package/dist/cjs/{SchemaValidationService-BnS8o5FK.js → SchemaValidationService-D55MWsxv.js} +2 -2
  14. package/dist/cjs/{SchemaValidationService-BnS8o5FK.js.map → SchemaValidationService-D55MWsxv.js.map} +1 -1
  15. package/dist/cjs/{backfillMetadataPropertyIds-B3xNIFjQ.js → backfillMetadataPropertyIds-DrrL5RqD.js} +2 -2
  16. package/dist/cjs/{backfillMetadataPropertyIds-B3xNIFjQ.js.map → backfillMetadataPropertyIds-DrrL5RqD.js.map} +1 -1
  17. package/dist/cjs/{eas-wqfFyiti.js → eas-D2E3_i_c.js} +3 -3
  18. package/dist/cjs/{eas-wqfFyiti.js.map → eas-D2E3_i_c.js.map} +1 -1
  19. package/dist/cjs/{getItem-BbEWSf4-.js → getItem-B2zLVB_l.js} +2 -2
  20. package/dist/cjs/{getItem-BbEWSf4-.js.map → getItem-B2zLVB_l.js.map} +1 -1
  21. package/dist/cjs/{getPublishPayload-i3UrBhza.js → getPublishPayload-Bv94k4ak.js} +11 -11
  22. package/dist/cjs/{getPublishPayload-i3UrBhza.js.map → getPublishPayload-Bv94k4ak.js.map} +1 -1
  23. package/dist/cjs/{getPublishUploads-CHhrLQmE.js → getPublishUploads-CSbHUxYk.js} +4 -4
  24. package/dist/cjs/{getPublishUploads-CHhrLQmE.js.map → getPublishUploads-CSbHUxYk.js.map} +1 -1
  25. package/dist/cjs/{getSegmentedItemProperties-ZlOTqI0r.js → getSegmentedItemProperties-CMhXKQHz.js} +3 -3
  26. package/dist/cjs/{getSegmentedItemProperties-ZlOTqI0r.js.map → getSegmentedItemProperties-CMhXKQHz.js.map} +1 -1
  27. package/dist/cjs/{index-Bx8ReSFI.js → index-D-9WglxG.js} +47 -51
  28. package/dist/cjs/{index-Bx8ReSFI.js.map → index-D-9WglxG.js.map} +1 -1
  29. package/dist/cjs/{index-DBGNShZR.js → index-pSLjO-ch.js} +3 -3
  30. package/dist/cjs/index-pSLjO-ch.js.map +1 -0
  31. package/dist/cjs/{property-CWZoijFu.js → property-gUK2PijH.js} +4 -4
  32. package/dist/cjs/{property-CWZoijFu.js.map → property-gUK2PijH.js.map} +1 -1
  33. package/dist/cjs/{syncDbWithEas-DRbf_wzk.js → syncDbWithEas-CYtl7VTD.js} +6 -6
  34. package/dist/cjs/{syncDbWithEas-DRbf_wzk.js.map → syncDbWithEas-CYtl7VTD.js.map} +1 -1
  35. package/dist/{db-CbeA8ykN.js → db-YiH_kIpE.js} +4 -4
  36. package/dist/{db-CbeA8ykN.js.map → db-YiH_kIpE.js.map} +1 -1
  37. package/dist/{eas-CDANhqoz.js → eas-1nUCcmeh.js} +2 -2
  38. package/dist/{eas-CDANhqoz.js.map → eas-1nUCcmeh.js.map} +1 -1
  39. package/dist/{getItem-CUOCDTe8.js → getItem-Bb8bTYzY.js} +3 -3
  40. package/dist/{getItem-CUOCDTe8.js.map → getItem-Bb8bTYzY.js.map} +1 -1
  41. package/dist/{getPublishPayload-0ntIkzv8.js → getPublishPayload-BHw8mPSb.js} +12 -12
  42. package/dist/{getPublishPayload-0ntIkzv8.js.map → getPublishPayload-BHw8mPSb.js.map} +1 -1
  43. package/dist/{getPublishUploads-DLeAkS2m.js → getPublishUploads-BYhckxFl.js} +5 -5
  44. package/dist/{getPublishUploads-DLeAkS2m.js.map → getPublishUploads-BYhckxFl.js.map} +1 -1
  45. package/dist/{getSegmentedItemProperties-C0rMewcl.js → getSegmentedItemProperties-B73nMPBv.js} +3 -3
  46. package/dist/{getSegmentedItemProperties-C0rMewcl.js.map → getSegmentedItemProperties-B73nMPBv.js.map} +1 -1
  47. package/dist/{index-BMeU7u_g.js → index-CJNKYI37.js} +48 -52
  48. package/dist/{index-BMeU7u_g.js.map → index-CJNKYI37.js.map} +1 -1
  49. package/dist/{index-CQIlolE1.js → index-DzgMt8ba.js} +4 -4
  50. package/dist/index-DzgMt8ba.js.map +1 -0
  51. package/dist/{index.node-DkpiPLbZ.js → index.node-ZLiBj9Cu.js} +2 -2
  52. package/dist/{index.node-DkpiPLbZ.js.map → index.node-ZLiBj9Cu.js.map} +1 -1
  53. package/dist/main.cjs +1 -1
  54. package/dist/main.js +16 -16
  55. package/dist/node.js +4 -4
  56. package/dist/platform.browser.js +118 -21
  57. package/dist/platform.browser.js.map +1 -1
  58. package/dist/platform.node.js +1 -1
  59. package/dist/{property-B-9szEcZ.js → property-Dcb50seV.js} +5 -5
  60. package/dist/{property-B-9szEcZ.js.map → property-Dcb50seV.js.map} +1 -1
  61. package/dist/src/browser/db/Db.d.ts +1 -1
  62. package/dist/src/browser/db/Db.d.ts.map +1 -1
  63. package/dist/src/browser/db/createSqlocalDrizzle.d.ts +21 -0
  64. package/dist/src/browser/db/createSqlocalDrizzle.d.ts.map +1 -0
  65. package/dist/src/client/ClientManager.d.ts +3 -18
  66. package/dist/src/client/ClientManager.d.ts.map +1 -1
  67. package/dist/src/client/clientManagerMachine.d.ts +1 -6
  68. package/dist/src/client/clientManagerMachine.d.ts.map +1 -1
  69. package/dist/{syncDbWithEas-CNBuYKo_.js → syncDbWithEas-B0RUeDuj.js} +7 -7
  70. package/dist/{syncDbWithEas-CNBuYKo_.js.map → syncDbWithEas-B0RUeDuj.js.map} +1 -1
  71. package/package.json +5 -5
  72. package/dist/cjs/index-DBGNShZR.js.map +0 -1
  73. package/dist/index-CQIlolE1.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var main_cjs = require('./index-Bx8ReSFI.js');
4
- var getSegmentedItemProperties = require('./getSegmentedItemProperties-ZlOTqI0r.js');
3
+ var main_cjs = require('./index-D-9WglxG.js');
4
+ var getSegmentedItemProperties = require('./getSegmentedItemProperties-CMhXKQHz.js');
5
5
  var arweave = require('@seedprotocol/arweave');
6
6
  var debug = require('debug');
7
7
  var drizzleOrm = require('drizzle-orm');
@@ -30,7 +30,7 @@ require('js-yaml');
30
30
  require('child_process');
31
31
  require('@seedprotocol/arweave/node');
32
32
  require('@seedprotocol/eas/node');
33
- require('./property-CWZoijFu.js');
33
+ require('./property-gUK2PijH.js');
34
34
 
35
35
  const logger = debug('seedSdk:item:getPublishUploads');
36
36
  const EXTENSION_TO_MIME = {
@@ -438,4 +438,4 @@ const getPublishUploads = async (item, uploads = [], relatedItemProperty, option
438
438
  exports.getPublishUploads = getPublishUploads;
439
439
  exports.itemHasPublishUploadCandidates = itemHasPublishUploadCandidates;
440
440
  exports.prepareArweaveTransaction = prepareArweaveTransaction;
441
- //# sourceMappingURL=getPublishUploads-CHhrLQmE.js.map
441
+ //# sourceMappingURL=getPublishUploads-CSbHUxYk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getPublishUploads-CHhrLQmE.js","sources":["../../../src/db/read/getPublishUploads.ts"],"sourcesContent":["import { BaseFileManager } from '@/helpers'\nimport {\n normalizeRelationPropertyValue,\n resolveSeedIdsFromRefString,\n} from '@/helpers/relationSeedRef'\nimport { BaseArweaveClient } from '@/helpers/ArweaveClient/BaseArweaveClient'\nimport { getSegmentedItemProperties } from '@/helpers/getSegmentedItemProperties'\nimport debug from 'debug'\nimport { IItem, IItemProperty } from '@/interfaces'\nimport { getContentHash } from '@/helpers/crypto'\nimport { Item } from '@/Item/Item'\nimport type { ArweaveTransaction, TransactionTag } from '@/types/arweave'\nimport { PublishUpload } from '@/types/publish'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { htmlEmbeddedImageCoPublish } from '@/seedSchema/HtmlEmbeddedImageCoPublishSchema'\nimport { eq } from 'drizzle-orm'\nimport { ModelPropertyDataTypes } from '@/helpers/property'\n\nconst logger = debug('seedSdk:item:getPublishUploads')\n\n/** Optional tags merged into each Arweave tx after Content-SHA-256 / Content-Type. */\nexport type GetPublishUploadsOptions = {\n arweaveUploadTags?: TransactionTag[]\n /**\n * Html storage seed local ids to skip (phase 1 of two-phase embedded-image publish).\n */\n deferHtmlStorageSeedLocalIds?: string[]\n /**\n * When set, only Html storage seeds in this list are included (phase 2). Non-Html storage uploads are omitted.\n */\n onlyHtmlStorageSeedLocalIds?: string[]\n /** When true, do not recurse into relation properties (phase 2 must not re-upload related items). */\n skipRelationRecursion?: boolean\n}\n\nconst EXTENSION_TO_MIME: Record<string, string> = {\n png: 'image/png',\n jpg: 'image/jpeg',\n jpeg: 'image/jpeg',\n gif: 'image/gif',\n webp: 'image/webp',\n svg: 'image/svg+xml',\n html: 'text/html',\n htm: 'text/html',\n json: 'application/json',\n txt: 'text/plain',\n}\n\nconst getMimeTypeFromPath = (filePathOrName: string): string | undefined => {\n const ext = filePathOrName.split('.').pop()?.toLowerCase()\n return ext ? EXTENSION_TO_MIME[ext] : undefined\n}\n\nconst toUint8Array = async (data: Buffer | Blob): Promise<Uint8Array> => {\n if (typeof Blob !== 'undefined' && data instanceof Blob) {\n return new Uint8Array(await data.arrayBuffer())\n }\n return new Uint8Array(data as Buffer)\n}\n\nexport const prepareArweaveTransaction = async (\n data: string | Uint8Array,\n contentHash: string | undefined,\n contentType?: string,\n additionalTags?: TransactionTag[],\n): Promise<ArweaveTransaction> => {\n const tags: TransactionTag[] = []\n if (contentHash) {\n tags.push({ name: 'Content-SHA-256', value: contentHash })\n logger('contentHash', contentHash)\n logger('adding content hash tag')\n }\n if (contentType) {\n tags.push({ name: 'Content-Type', value: contentType })\n }\n if (additionalTags?.length) {\n tags.push(...additionalTags)\n }\n\n const tx = await BaseArweaveClient.createTransaction(data, {\n tags: tags.length ? tags : undefined,\n })\n\n return tx\n}\n\n\nconst getStorageDirForDataType = (dataType: string): string => {\n switch (dataType) {\n case 'Image':\n return BaseFileManager.getFilesPath('images')\n case 'File':\n return BaseFileManager.getFilesPath('files')\n case 'Html':\n return BaseFileManager.getFilesPath('html')\n case 'Json':\n return BaseFileManager.getFilesPath('json')\n default:\n return BaseFileManager.getFilesPath('images')\n }\n}\n\nconst DATA_URI_IMAGE = /^data:(image\\/[a-zA-Z0-9.+-]+);base64,([\\s\\S]*)$/i\n\nfunction decodeDataUriImage(dataUri: string): { mimeType: string; bytes: Uint8Array } | null {\n const m = DATA_URI_IMAGE.exec((dataUri ?? '').trim())\n if (!m) return null\n try {\n const mimeType = m[1]!.toLowerCase().trim()\n const base64 = m[2]!.replace(/\\s/g, '')\n const binary = Uint8Array.from(atob(base64), (c) => c.charCodeAt(0))\n return { mimeType, bytes: binary }\n } catch {\n return null\n }\n}\n\nconst getStorageSeedUploads = async (\n itemStorageSeedProperties: IItemProperty<any>[],\n options?: GetPublishUploadsOptions,\n) => {\n const uploads: PublishUpload[] = []\n const extra = options?.arweaveUploadTags\n\n for (const itemProperty of itemStorageSeedProperties) {\n const snapshot = itemProperty.getService().getSnapshot()\n const context = 'context' in snapshot ? snapshot.context : null\n if (!context) {\n continue\n }\n const propertyValue = (context as any).propertyValue\n const refResolvedValue = (context as any).refResolvedValue\n if (!refResolvedValue) {\n continue\n }\n\n // propertyValue is the storage seed's seedLocalId; use it for the upload so processRelationOrImageProperty can match\n const { seedLocalId } = resolveSeedIdsFromRefString(\n normalizeRelationPropertyValue(propertyValue) ?? '',\n )\n if (!seedLocalId) {\n continue\n }\n\n const dataType =\n itemProperty.propertyDef?.refValueType ??\n itemProperty.propertyDef?.dataType ??\n 'Image'\n\n if (dataType === ModelPropertyDataTypes.Html) {\n if (options?.deferHtmlStorageSeedLocalIds?.includes(seedLocalId)) {\n continue\n }\n if (\n options?.onlyHtmlStorageSeedLocalIds?.length &&\n !options.onlyHtmlStorageSeedLocalIds.includes(seedLocalId)\n ) {\n continue\n }\n } else if (options?.onlyHtmlStorageSeedLocalIds?.length) {\n continue\n }\n\n const baseDir = getStorageDirForDataType(dataType)\n const filePath = `${baseDir}/${refResolvedValue}`\n\n const exists = await BaseFileManager.pathExists(filePath)\n if (!exists) {\n continue\n }\n\n const fileBuffer = await BaseFileManager.readFileAsBuffer(filePath)\n const fileContents = await toUint8Array(fileBuffer)\n\n const contentHash = await getContentHash(fileContents)\n const contentType = getMimeTypeFromPath(refResolvedValue)\n\n const transaction = await prepareArweaveTransaction(\n fileContents,\n contentHash,\n contentType,\n extra,\n )\n\n uploads.push({\n itemPropertyName: itemProperty.propertyName,\n itemPropertyLocalId: itemProperty.localId,\n seedLocalId,\n versionLocalId: itemProperty.versionLocalId!,\n transactionToSign: transaction,\n })\n }\n\n return uploads\n}\n\nasync function appendCoPublishedImageUploads(\n item: IItem<any>,\n uploads: PublishUpload[],\n options?: GetPublishUploadsOptions,\n): Promise<PublishUpload[]> {\n const appDb = BaseDb.getAppDb()\n if (!appDb || options?.onlyHtmlStorageSeedLocalIds?.length) return uploads\n\n const rows = await appDb\n .select()\n .from(htmlEmbeddedImageCoPublish)\n .where(eq(htmlEmbeddedImageCoPublish.parentSeedLocalId, item.seedLocalId))\n\n const seen = new Set(uploads.map((u) => u.seedLocalId))\n\n for (const row of rows) {\n if (seen.has(row.imageSeedLocalId)) continue\n const imageItem = await Item.find({ seedLocalId: row.imageSeedLocalId, modelName: 'Image' })\n if (!imageItem) continue\n const st =\n imageItem.internalProperties['storageTransactionId'] ??\n imageItem.allProperties['storageTransactionId']\n const stSnap = st?.getService().getSnapshot()\n const stCtx = stSnap && 'context' in stSnap ? stSnap.context : undefined\n const stValue = typeof (stCtx as { propertyValue?: unknown } | undefined)?.propertyValue === 'string'\n ? ((stCtx as { propertyValue?: string }).propertyValue ?? '')\n : ''\n const decoded = decodeDataUriImage(stValue)\n\n const more: PublishUpload[] = []\n if (decoded && st && st.localId && st.versionLocalId) {\n const contentHash = await getContentHash(decoded.bytes)\n const transaction = await prepareArweaveTransaction(\n decoded.bytes,\n contentHash,\n decoded.mimeType,\n options?.arweaveUploadTags,\n )\n more.push({\n itemPropertyName: st.propertyName,\n itemPropertyLocalId: st.localId,\n seedLocalId: imageItem.seedLocalId,\n versionLocalId: st.versionLocalId,\n transactionToSign: transaction,\n })\n }\n for (const u of more) {\n if (!seen.has(u.seedLocalId)) {\n uploads.push(u)\n seen.add(u.seedLocalId)\n }\n }\n }\n return uploads\n}\n\nexport type UploadProperty = {\n itemProperty: IItemProperty<any>\n childProperties: IItemProperty<any>[]\n}\ntype ChildUploadData = {\n propertyName: string\n localStoragePath: string\n}\n\n/**\n * True if publish would include at least one Arweave upload (local file / storage seed present).\n * Does not create Arweave transactions or hit the network — use for routing (e.g. skip EAS-only)\n * when {@link getPublishUploads} would fail early (e.g. gateway unreachable during tx creation).\n */\nasync function storageSeedHasUploadCandidates(\n itemStorageSeedProperties: IItemProperty<any>[],\n): Promise<boolean> {\n for (const itemProperty of itemStorageSeedProperties) {\n const snapshot = itemProperty.getService().getSnapshot()\n const context = 'context' in snapshot ? snapshot.context : null\n if (!context) {\n continue\n }\n const propertyValue = (context as any).propertyValue\n const refResolvedValue = (context as any).refResolvedValue\n if (!refResolvedValue) {\n continue\n }\n\n const { seedLocalId } = resolveSeedIdsFromRefString(\n normalizeRelationPropertyValue(propertyValue) ?? '',\n )\n if (!seedLocalId) {\n continue\n }\n\n const dataType =\n itemProperty.propertyDef?.refValueType ??\n itemProperty.propertyDef?.dataType ??\n 'Image'\n const baseDir = getStorageDirForDataType(dataType)\n const filePath = `${baseDir}/${refResolvedValue}`\n\n if (await BaseFileManager.pathExists(filePath)) {\n return true\n }\n }\n\n return false\n}\n\nasync function uploadPropertyWouldUpload(\n uploadProperty: UploadProperty,\n relatedItemProperty?: IItemProperty<any>,\n): Promise<boolean> {\n const childUploads: ChildUploadData[] = []\n\n for (const childProperty of uploadProperty.childProperties) {\n const filePath = childProperty.localStoragePath\n\n if (!filePath || filePath.endsWith('undefined')) {\n continue\n }\n\n const exists = await BaseFileManager.pathExists(filePath)\n if (!exists) {\n continue\n }\n\n childUploads.push({\n propertyName: childProperty.propertyName,\n localStoragePath: filePath,\n })\n }\n\n if (childUploads.length > 0) {\n return true\n }\n\n if (relatedItemProperty && relatedItemProperty.localStoragePath) {\n const filePath = relatedItemProperty.localStoragePath\n\n if (!filePath || filePath.endsWith('undefined')) {\n return false\n }\n\n return await BaseFileManager.pathExists(filePath)\n }\n\n return false\n}\n\nexport async function itemHasPublishUploadCandidates(\n item: IItem<any>,\n relatedItemProperty?: IItemProperty<any>,\n): Promise<boolean> {\n const { itemUploadProperties, itemRelationProperties, itemImageProperties } =\n await getSegmentedItemProperties(item)\n\n for (const uploadProperty of itemUploadProperties) {\n if (await uploadPropertyWouldUpload(uploadProperty, relatedItemProperty)) {\n return true\n }\n }\n\n if (await storageSeedHasUploadCandidates(itemImageProperties)) {\n return true\n }\n\n for (const relationProperty of itemRelationProperties) {\n const snapshot = relationProperty.getService().getSnapshot()\n const context = 'context' in snapshot ? snapshot.context : null\n if (!context) {\n continue\n }\n const propertyValue = (context as any).propertyValue\n\n if (!propertyValue || relationProperty.uid) {\n continue\n }\n\n const { seedLocalId, seedUid } = resolveSeedIdsFromRefString(\n normalizeRelationPropertyValue(propertyValue) ?? '',\n )\n if (!seedLocalId && !seedUid) {\n throw new Error(\n `Invalid relation value for ${relationProperty.propertyName}: expected local seed id or 0x uid`,\n )\n }\n\n const relatedItem = await Item.find({\n seedLocalId,\n seedUid,\n })\n\n if (!relatedItem) {\n throw new Error(\n `No relatedItem found for ${relationProperty.propertyName}`,\n )\n }\n\n if (await itemHasPublishUploadCandidates(relatedItem, relationProperty)) {\n return true\n }\n }\n\n return false\n}\n\nconst processUploadProperty = async (\n uploadProperty: UploadProperty,\n uploads: PublishUpload[],\n relatedItemProperty?: IItemProperty<any>,\n options?: GetPublishUploadsOptions,\n): Promise<PublishUpload[]> => {\n const extra = options?.arweaveUploadTags\n const itemProperty = uploadProperty.itemProperty\n\n const childUploads: ChildUploadData[] = []\n\n for (const childProperty of uploadProperty.childProperties) {\n const filePath = childProperty.localStoragePath\n\n if (!filePath || filePath.endsWith('undefined')) {\n continue\n }\n\n const exists = await BaseFileManager.pathExists(filePath)\n if (!exists) {\n continue\n }\n\n childUploads.push({\n propertyName: childProperty.propertyName,\n localStoragePath: filePath,\n })\n }\n\n let fileContents\n let transaction: ArweaveTransaction\n\n if (!childUploads || childUploads.length === 0) {\n if (relatedItemProperty && relatedItemProperty.localStoragePath) {\n const filePath = relatedItemProperty.localStoragePath\n\n if (!filePath || filePath.endsWith('undefined')) {\n return uploads\n }\n\n const exists = await BaseFileManager.pathExists(filePath)\n if (!exists) {\n return uploads\n }\n\n try {\n const fileBuffer = await BaseFileManager.readFileAsBuffer(filePath)\n fileContents = await toUint8Array(fileBuffer)\n } catch (e) {\n const fs = await BaseFileManager.getFs()\n fileContents = await toUint8Array(fs.readFileSync(filePath))\n }\n }\n if (!fileContents) {\n return uploads\n }\n }\n\n if (childUploads.length > 0) {\n const separator = '===FILE_SEPARATOR==='\n // let compositeFileContents = `${itemProperty.propertyName}${separator}${mainFileContents}`\n let compositeFileContents = ''\n\n for (const childUpload of childUploads) {\n let childUploadContents\n\n const fs = await BaseFileManager.getFs()\n\n try {\n childUploadContents = await fs.promises.readFile(\n childUpload.localStoragePath,\n )\n } catch (e) {\n childUploadContents = fs.readFileSync(childUpload.localStoragePath)\n }\n\n compositeFileContents += `${separator}${childUpload.propertyName}${separator}${childUploadContents}`\n }\n\n if (typeof document !== 'undefined') {\n fileContents = new TextEncoder().encode(compositeFileContents)\n } else {\n fileContents = Buffer.from(compositeFileContents)\n }\n }\n\n if (!fileContents) {\n throw new Error(`No file contents found for ${itemProperty.propertyName}`)\n }\n\n const uint8Array = new Uint8Array(fileContents)\n\n const contentHash = await getContentHash(uint8Array)\n\n let contentType: string | undefined\n if (childUploads.length === 0 && relatedItemProperty?.localStoragePath) {\n contentType = getMimeTypeFromPath(relatedItemProperty.localStoragePath)\n } else if (childUploads.length > 0) {\n contentType = 'application/octet-stream'\n }\n\n transaction = await prepareArweaveTransaction(\n uint8Array,\n contentHash,\n contentType,\n extra,\n )\n\n let itemPropertyLocalId = relatedItemProperty\n ? relatedItemProperty.localId\n : itemProperty.localId\n let itemPropertyName = relatedItemProperty\n ? relatedItemProperty.propertyName\n : itemProperty.propertyName\n\n uploads.push({\n itemPropertyName,\n itemPropertyLocalId,\n seedLocalId: itemProperty.seedLocalId!,\n versionLocalId: itemProperty.versionLocalId!,\n transactionToSign: transaction,\n })\n\n return uploads\n}\n\nexport const getPublishUploads = async (\n item: IItem<any>,\n uploads: PublishUpload[] = [],\n relatedItemProperty?: IItemProperty<any>,\n options?: GetPublishUploadsOptions,\n) => {\n const { itemUploadProperties, itemRelationProperties, itemImageProperties } =\n await getSegmentedItemProperties(item)\n\n if (!relatedItemProperty && options?.onlyHtmlStorageSeedLocalIds?.length) {\n const storageSeedUploads = await getStorageSeedUploads(itemImageProperties, options)\n uploads.push(...storageSeedUploads)\n return uploads\n }\n\n for (const uploadProperty of itemUploadProperties) {\n uploads = await processUploadProperty(\n uploadProperty,\n uploads,\n relatedItemProperty,\n options,\n )\n }\n\n const storageSeedUploads = await getStorageSeedUploads(itemImageProperties, options)\n uploads.push(...storageSeedUploads)\n\n if (!relatedItemProperty && !options?.onlyHtmlStorageSeedLocalIds?.length) {\n uploads = await appendCoPublishedImageUploads(item, uploads, options)\n }\n\n if (options?.skipRelationRecursion) {\n return uploads\n }\n\n for (const relationProperty of itemRelationProperties) {\n const snapshot = relationProperty.getService().getSnapshot()\n const context = 'context' in snapshot ? snapshot.context : null\n if (!context) {\n continue\n }\n const propertyValue = (context as any).propertyValue\n\n if (!propertyValue || relationProperty.uid) {\n continue\n }\n\n const { seedLocalId, seedUid } = resolveSeedIdsFromRefString(\n normalizeRelationPropertyValue(propertyValue) ?? '',\n )\n if (!seedLocalId && !seedUid) {\n throw new Error(\n `Invalid relation value for ${relationProperty.propertyName}: expected local seed id or 0x uid`,\n )\n }\n\n const relatedItem = await Item.find({\n seedLocalId,\n seedUid,\n })\n\n if (!relatedItem) {\n throw new Error(\n `No relatedItem found for ${relationProperty.propertyName}`,\n )\n }\n\n uploads = await getPublishUploads(relatedItem, uploads, relationProperty, options)\n }\n\n return uploads\n}\n"],"names":["BaseArweaveClient","BaseFileManager","resolveSeedIdsFromRefString","normalizeRelationPropertyValue","ModelPropertyDataTypes","getContentHash","BaseDb","htmlEmbeddedImageCoPublish","eq","Item","getSegmentedItemProperties"],"mappings":"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"}
1
+ {"version":3,"file":"getPublishUploads-CSbHUxYk.js","sources":["../../../src/db/read/getPublishUploads.ts"],"sourcesContent":["import { BaseFileManager } from '@/helpers'\nimport {\n normalizeRelationPropertyValue,\n resolveSeedIdsFromRefString,\n} from '@/helpers/relationSeedRef'\nimport { BaseArweaveClient } from '@/helpers/ArweaveClient/BaseArweaveClient'\nimport { getSegmentedItemProperties } from '@/helpers/getSegmentedItemProperties'\nimport debug from 'debug'\nimport { IItem, IItemProperty } from '@/interfaces'\nimport { getContentHash } from '@/helpers/crypto'\nimport { Item } from '@/Item/Item'\nimport type { ArweaveTransaction, TransactionTag } from '@/types/arweave'\nimport { PublishUpload } from '@/types/publish'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { htmlEmbeddedImageCoPublish } from '@/seedSchema/HtmlEmbeddedImageCoPublishSchema'\nimport { eq } from 'drizzle-orm'\nimport { ModelPropertyDataTypes } from '@/helpers/property'\n\nconst logger = debug('seedSdk:item:getPublishUploads')\n\n/** Optional tags merged into each Arweave tx after Content-SHA-256 / Content-Type. */\nexport type GetPublishUploadsOptions = {\n arweaveUploadTags?: TransactionTag[]\n /**\n * Html storage seed local ids to skip (phase 1 of two-phase embedded-image publish).\n */\n deferHtmlStorageSeedLocalIds?: string[]\n /**\n * When set, only Html storage seeds in this list are included (phase 2). Non-Html storage uploads are omitted.\n */\n onlyHtmlStorageSeedLocalIds?: string[]\n /** When true, do not recurse into relation properties (phase 2 must not re-upload related items). */\n skipRelationRecursion?: boolean\n}\n\nconst EXTENSION_TO_MIME: Record<string, string> = {\n png: 'image/png',\n jpg: 'image/jpeg',\n jpeg: 'image/jpeg',\n gif: 'image/gif',\n webp: 'image/webp',\n svg: 'image/svg+xml',\n html: 'text/html',\n htm: 'text/html',\n json: 'application/json',\n txt: 'text/plain',\n}\n\nconst getMimeTypeFromPath = (filePathOrName: string): string | undefined => {\n const ext = filePathOrName.split('.').pop()?.toLowerCase()\n return ext ? EXTENSION_TO_MIME[ext] : undefined\n}\n\nconst toUint8Array = async (data: Buffer | Blob): Promise<Uint8Array> => {\n if (typeof Blob !== 'undefined' && data instanceof Blob) {\n return new Uint8Array(await data.arrayBuffer())\n }\n return new Uint8Array(data as Buffer)\n}\n\nexport const prepareArweaveTransaction = async (\n data: string | Uint8Array,\n contentHash: string | undefined,\n contentType?: string,\n additionalTags?: TransactionTag[],\n): Promise<ArweaveTransaction> => {\n const tags: TransactionTag[] = []\n if (contentHash) {\n tags.push({ name: 'Content-SHA-256', value: contentHash })\n logger('contentHash', contentHash)\n logger('adding content hash tag')\n }\n if (contentType) {\n tags.push({ name: 'Content-Type', value: contentType })\n }\n if (additionalTags?.length) {\n tags.push(...additionalTags)\n }\n\n const tx = await BaseArweaveClient.createTransaction(data, {\n tags: tags.length ? tags : undefined,\n })\n\n return tx\n}\n\n\nconst getStorageDirForDataType = (dataType: string): string => {\n switch (dataType) {\n case 'Image':\n return BaseFileManager.getFilesPath('images')\n case 'File':\n return BaseFileManager.getFilesPath('files')\n case 'Html':\n return BaseFileManager.getFilesPath('html')\n case 'Json':\n return BaseFileManager.getFilesPath('json')\n default:\n return BaseFileManager.getFilesPath('images')\n }\n}\n\nconst DATA_URI_IMAGE = /^data:(image\\/[a-zA-Z0-9.+-]+);base64,([\\s\\S]*)$/i\n\nfunction decodeDataUriImage(dataUri: string): { mimeType: string; bytes: Uint8Array } | null {\n const m = DATA_URI_IMAGE.exec((dataUri ?? '').trim())\n if (!m) return null\n try {\n const mimeType = m[1]!.toLowerCase().trim()\n const base64 = m[2]!.replace(/\\s/g, '')\n const binary = Uint8Array.from(atob(base64), (c) => c.charCodeAt(0))\n return { mimeType, bytes: binary }\n } catch {\n return null\n }\n}\n\nconst getStorageSeedUploads = async (\n itemStorageSeedProperties: IItemProperty<any>[],\n options?: GetPublishUploadsOptions,\n) => {\n const uploads: PublishUpload[] = []\n const extra = options?.arweaveUploadTags\n\n for (const itemProperty of itemStorageSeedProperties) {\n const snapshot = itemProperty.getService().getSnapshot()\n const context = 'context' in snapshot ? snapshot.context : null\n if (!context) {\n continue\n }\n const propertyValue = (context as any).propertyValue\n const refResolvedValue = (context as any).refResolvedValue\n if (!refResolvedValue) {\n continue\n }\n\n // propertyValue is the storage seed's seedLocalId; use it for the upload so processRelationOrImageProperty can match\n const { seedLocalId } = resolveSeedIdsFromRefString(\n normalizeRelationPropertyValue(propertyValue) ?? '',\n )\n if (!seedLocalId) {\n continue\n }\n\n const dataType =\n itemProperty.propertyDef?.refValueType ??\n itemProperty.propertyDef?.dataType ??\n 'Image'\n\n if (dataType === ModelPropertyDataTypes.Html) {\n if (options?.deferHtmlStorageSeedLocalIds?.includes(seedLocalId)) {\n continue\n }\n if (\n options?.onlyHtmlStorageSeedLocalIds?.length &&\n !options.onlyHtmlStorageSeedLocalIds.includes(seedLocalId)\n ) {\n continue\n }\n } else if (options?.onlyHtmlStorageSeedLocalIds?.length) {\n continue\n }\n\n const baseDir = getStorageDirForDataType(dataType)\n const filePath = `${baseDir}/${refResolvedValue}`\n\n const exists = await BaseFileManager.pathExists(filePath)\n if (!exists) {\n continue\n }\n\n const fileBuffer = await BaseFileManager.readFileAsBuffer(filePath)\n const fileContents = await toUint8Array(fileBuffer)\n\n const contentHash = await getContentHash(fileContents)\n const contentType = getMimeTypeFromPath(refResolvedValue)\n\n const transaction = await prepareArweaveTransaction(\n fileContents,\n contentHash,\n contentType,\n extra,\n )\n\n uploads.push({\n itemPropertyName: itemProperty.propertyName,\n itemPropertyLocalId: itemProperty.localId,\n seedLocalId,\n versionLocalId: itemProperty.versionLocalId!,\n transactionToSign: transaction,\n })\n }\n\n return uploads\n}\n\nasync function appendCoPublishedImageUploads(\n item: IItem<any>,\n uploads: PublishUpload[],\n options?: GetPublishUploadsOptions,\n): Promise<PublishUpload[]> {\n const appDb = BaseDb.getAppDb()\n if (!appDb || options?.onlyHtmlStorageSeedLocalIds?.length) return uploads\n\n const rows = await appDb\n .select()\n .from(htmlEmbeddedImageCoPublish)\n .where(eq(htmlEmbeddedImageCoPublish.parentSeedLocalId, item.seedLocalId))\n\n const seen = new Set(uploads.map((u) => u.seedLocalId))\n\n for (const row of rows) {\n if (seen.has(row.imageSeedLocalId)) continue\n const imageItem = await Item.find({ seedLocalId: row.imageSeedLocalId, modelName: 'Image' })\n if (!imageItem) continue\n const st =\n imageItem.internalProperties['storageTransactionId'] ??\n imageItem.allProperties['storageTransactionId']\n const stSnap = st?.getService().getSnapshot()\n const stCtx = stSnap && 'context' in stSnap ? stSnap.context : undefined\n const stValue = typeof (stCtx as { propertyValue?: unknown } | undefined)?.propertyValue === 'string'\n ? ((stCtx as { propertyValue?: string }).propertyValue ?? '')\n : ''\n const decoded = decodeDataUriImage(stValue)\n\n const more: PublishUpload[] = []\n if (decoded && st && st.localId && st.versionLocalId) {\n const contentHash = await getContentHash(decoded.bytes)\n const transaction = await prepareArweaveTransaction(\n decoded.bytes,\n contentHash,\n decoded.mimeType,\n options?.arweaveUploadTags,\n )\n more.push({\n itemPropertyName: st.propertyName,\n itemPropertyLocalId: st.localId,\n seedLocalId: imageItem.seedLocalId,\n versionLocalId: st.versionLocalId,\n transactionToSign: transaction,\n })\n }\n for (const u of more) {\n if (!seen.has(u.seedLocalId)) {\n uploads.push(u)\n seen.add(u.seedLocalId)\n }\n }\n }\n return uploads\n}\n\nexport type UploadProperty = {\n itemProperty: IItemProperty<any>\n childProperties: IItemProperty<any>[]\n}\ntype ChildUploadData = {\n propertyName: string\n localStoragePath: string\n}\n\n/**\n * True if publish would include at least one Arweave upload (local file / storage seed present).\n * Does not create Arweave transactions or hit the network — use for routing (e.g. skip EAS-only)\n * when {@link getPublishUploads} would fail early (e.g. gateway unreachable during tx creation).\n */\nasync function storageSeedHasUploadCandidates(\n itemStorageSeedProperties: IItemProperty<any>[],\n): Promise<boolean> {\n for (const itemProperty of itemStorageSeedProperties) {\n const snapshot = itemProperty.getService().getSnapshot()\n const context = 'context' in snapshot ? snapshot.context : null\n if (!context) {\n continue\n }\n const propertyValue = (context as any).propertyValue\n const refResolvedValue = (context as any).refResolvedValue\n if (!refResolvedValue) {\n continue\n }\n\n const { seedLocalId } = resolveSeedIdsFromRefString(\n normalizeRelationPropertyValue(propertyValue) ?? '',\n )\n if (!seedLocalId) {\n continue\n }\n\n const dataType =\n itemProperty.propertyDef?.refValueType ??\n itemProperty.propertyDef?.dataType ??\n 'Image'\n const baseDir = getStorageDirForDataType(dataType)\n const filePath = `${baseDir}/${refResolvedValue}`\n\n if (await BaseFileManager.pathExists(filePath)) {\n return true\n }\n }\n\n return false\n}\n\nasync function uploadPropertyWouldUpload(\n uploadProperty: UploadProperty,\n relatedItemProperty?: IItemProperty<any>,\n): Promise<boolean> {\n const childUploads: ChildUploadData[] = []\n\n for (const childProperty of uploadProperty.childProperties) {\n const filePath = childProperty.localStoragePath\n\n if (!filePath || filePath.endsWith('undefined')) {\n continue\n }\n\n const exists = await BaseFileManager.pathExists(filePath)\n if (!exists) {\n continue\n }\n\n childUploads.push({\n propertyName: childProperty.propertyName,\n localStoragePath: filePath,\n })\n }\n\n if (childUploads.length > 0) {\n return true\n }\n\n if (relatedItemProperty && relatedItemProperty.localStoragePath) {\n const filePath = relatedItemProperty.localStoragePath\n\n if (!filePath || filePath.endsWith('undefined')) {\n return false\n }\n\n return await BaseFileManager.pathExists(filePath)\n }\n\n return false\n}\n\nexport async function itemHasPublishUploadCandidates(\n item: IItem<any>,\n relatedItemProperty?: IItemProperty<any>,\n): Promise<boolean> {\n const { itemUploadProperties, itemRelationProperties, itemImageProperties } =\n await getSegmentedItemProperties(item)\n\n for (const uploadProperty of itemUploadProperties) {\n if (await uploadPropertyWouldUpload(uploadProperty, relatedItemProperty)) {\n return true\n }\n }\n\n if (await storageSeedHasUploadCandidates(itemImageProperties)) {\n return true\n }\n\n for (const relationProperty of itemRelationProperties) {\n const snapshot = relationProperty.getService().getSnapshot()\n const context = 'context' in snapshot ? snapshot.context : null\n if (!context) {\n continue\n }\n const propertyValue = (context as any).propertyValue\n\n if (!propertyValue || relationProperty.uid) {\n continue\n }\n\n const { seedLocalId, seedUid } = resolveSeedIdsFromRefString(\n normalizeRelationPropertyValue(propertyValue) ?? '',\n )\n if (!seedLocalId && !seedUid) {\n throw new Error(\n `Invalid relation value for ${relationProperty.propertyName}: expected local seed id or 0x uid`,\n )\n }\n\n const relatedItem = await Item.find({\n seedLocalId,\n seedUid,\n })\n\n if (!relatedItem) {\n throw new Error(\n `No relatedItem found for ${relationProperty.propertyName}`,\n )\n }\n\n if (await itemHasPublishUploadCandidates(relatedItem, relationProperty)) {\n return true\n }\n }\n\n return false\n}\n\nconst processUploadProperty = async (\n uploadProperty: UploadProperty,\n uploads: PublishUpload[],\n relatedItemProperty?: IItemProperty<any>,\n options?: GetPublishUploadsOptions,\n): Promise<PublishUpload[]> => {\n const extra = options?.arweaveUploadTags\n const itemProperty = uploadProperty.itemProperty\n\n const childUploads: ChildUploadData[] = []\n\n for (const childProperty of uploadProperty.childProperties) {\n const filePath = childProperty.localStoragePath\n\n if (!filePath || filePath.endsWith('undefined')) {\n continue\n }\n\n const exists = await BaseFileManager.pathExists(filePath)\n if (!exists) {\n continue\n }\n\n childUploads.push({\n propertyName: childProperty.propertyName,\n localStoragePath: filePath,\n })\n }\n\n let fileContents\n let transaction: ArweaveTransaction\n\n if (!childUploads || childUploads.length === 0) {\n if (relatedItemProperty && relatedItemProperty.localStoragePath) {\n const filePath = relatedItemProperty.localStoragePath\n\n if (!filePath || filePath.endsWith('undefined')) {\n return uploads\n }\n\n const exists = await BaseFileManager.pathExists(filePath)\n if (!exists) {\n return uploads\n }\n\n try {\n const fileBuffer = await BaseFileManager.readFileAsBuffer(filePath)\n fileContents = await toUint8Array(fileBuffer)\n } catch (e) {\n const fs = await BaseFileManager.getFs()\n fileContents = await toUint8Array(fs.readFileSync(filePath))\n }\n }\n if (!fileContents) {\n return uploads\n }\n }\n\n if (childUploads.length > 0) {\n const separator = '===FILE_SEPARATOR==='\n // let compositeFileContents = `${itemProperty.propertyName}${separator}${mainFileContents}`\n let compositeFileContents = ''\n\n for (const childUpload of childUploads) {\n let childUploadContents\n\n const fs = await BaseFileManager.getFs()\n\n try {\n childUploadContents = await fs.promises.readFile(\n childUpload.localStoragePath,\n )\n } catch (e) {\n childUploadContents = fs.readFileSync(childUpload.localStoragePath)\n }\n\n compositeFileContents += `${separator}${childUpload.propertyName}${separator}${childUploadContents}`\n }\n\n if (typeof document !== 'undefined') {\n fileContents = new TextEncoder().encode(compositeFileContents)\n } else {\n fileContents = Buffer.from(compositeFileContents)\n }\n }\n\n if (!fileContents) {\n throw new Error(`No file contents found for ${itemProperty.propertyName}`)\n }\n\n const uint8Array = new Uint8Array(fileContents)\n\n const contentHash = await getContentHash(uint8Array)\n\n let contentType: string | undefined\n if (childUploads.length === 0 && relatedItemProperty?.localStoragePath) {\n contentType = getMimeTypeFromPath(relatedItemProperty.localStoragePath)\n } else if (childUploads.length > 0) {\n contentType = 'application/octet-stream'\n }\n\n transaction = await prepareArweaveTransaction(\n uint8Array,\n contentHash,\n contentType,\n extra,\n )\n\n let itemPropertyLocalId = relatedItemProperty\n ? relatedItemProperty.localId\n : itemProperty.localId\n let itemPropertyName = relatedItemProperty\n ? relatedItemProperty.propertyName\n : itemProperty.propertyName\n\n uploads.push({\n itemPropertyName,\n itemPropertyLocalId,\n seedLocalId: itemProperty.seedLocalId!,\n versionLocalId: itemProperty.versionLocalId!,\n transactionToSign: transaction,\n })\n\n return uploads\n}\n\nexport const getPublishUploads = async (\n item: IItem<any>,\n uploads: PublishUpload[] = [],\n relatedItemProperty?: IItemProperty<any>,\n options?: GetPublishUploadsOptions,\n) => {\n const { itemUploadProperties, itemRelationProperties, itemImageProperties } =\n await getSegmentedItemProperties(item)\n\n if (!relatedItemProperty && options?.onlyHtmlStorageSeedLocalIds?.length) {\n const storageSeedUploads = await getStorageSeedUploads(itemImageProperties, options)\n uploads.push(...storageSeedUploads)\n return uploads\n }\n\n for (const uploadProperty of itemUploadProperties) {\n uploads = await processUploadProperty(\n uploadProperty,\n uploads,\n relatedItemProperty,\n options,\n )\n }\n\n const storageSeedUploads = await getStorageSeedUploads(itemImageProperties, options)\n uploads.push(...storageSeedUploads)\n\n if (!relatedItemProperty && !options?.onlyHtmlStorageSeedLocalIds?.length) {\n uploads = await appendCoPublishedImageUploads(item, uploads, options)\n }\n\n if (options?.skipRelationRecursion) {\n return uploads\n }\n\n for (const relationProperty of itemRelationProperties) {\n const snapshot = relationProperty.getService().getSnapshot()\n const context = 'context' in snapshot ? snapshot.context : null\n if (!context) {\n continue\n }\n const propertyValue = (context as any).propertyValue\n\n if (!propertyValue || relationProperty.uid) {\n continue\n }\n\n const { seedLocalId, seedUid } = resolveSeedIdsFromRefString(\n normalizeRelationPropertyValue(propertyValue) ?? '',\n )\n if (!seedLocalId && !seedUid) {\n throw new Error(\n `Invalid relation value for ${relationProperty.propertyName}: expected local seed id or 0x uid`,\n )\n }\n\n const relatedItem = await Item.find({\n seedLocalId,\n seedUid,\n })\n\n if (!relatedItem) {\n throw new Error(\n `No relatedItem found for ${relationProperty.propertyName}`,\n )\n }\n\n uploads = await getPublishUploads(relatedItem, uploads, relationProperty, options)\n }\n\n return uploads\n}\n"],"names":["BaseArweaveClient","BaseFileManager","resolveSeedIdsFromRefString","normalizeRelationPropertyValue","ModelPropertyDataTypes","getContentHash","BaseDb","htmlEmbeddedImageCoPublish","eq","Item","getSegmentedItemProperties"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  require('reflect-metadata');
4
- var main_cjs = require('./index-Bx8ReSFI.js');
5
- var property = require('./property-CWZoijFu.js');
4
+ var main_cjs = require('./index-D-9WglxG.js');
5
+ var property = require('./property-gUK2PijH.js');
6
6
  var drizzleOrm = require('drizzle-orm');
7
7
  var lodashEs = require('lodash-es');
8
8
 
@@ -193,4 +193,4 @@ const getSegmentedItemProperties = async (item) => {
193
193
  exports.getSegmentedItemProperties = getSegmentedItemProperties;
194
194
  exports.normalizeRelationPropertyValue = normalizeRelationPropertyValue;
195
195
  exports.resolveSeedIdsFromRefString = resolveSeedIdsFromRefString;
196
- //# sourceMappingURL=getSegmentedItemProperties-ZlOTqI0r.js.map
196
+ //# sourceMappingURL=getSegmentedItemProperties-CMhXKQHz.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getSegmentedItemProperties-ZlOTqI0r.js","sources":["../../../src/helpers/relationSeedRef.ts","../../../src/helpers/getSegmentedItemProperties.ts"],"sourcesContent":["/** Same rules as getCorrectId in helpers/index (avoid barrel circular import). */\nfunction parseLocalIdOrUid(localIdOrUid: string): { localId?: string; uid?: string } {\n const id = { localId: undefined as string | undefined, uid: undefined as string | undefined }\n if (!localIdOrUid) return id\n if (localIdOrUid.length === 10) {\n id.localId = localIdOrUid\n }\n if (localIdOrUid.startsWith('0x') && localIdOrUid.length === 66) {\n id.uid = localIdOrUid\n }\n return id\n}\n\n/** Relation/image refs may be string ids or `{ seedLocalId?, seedUid? }`. */\nexport function normalizeRelationPropertyValue(value: unknown): string | undefined {\n if (value == null) return undefined\n if (typeof value === 'string') {\n const t = value.trim()\n return t !== '' ? t : undefined\n }\n if (typeof value === 'object' && value !== null) {\n const o = value as { seedLocalId?: string; seedUid?: string }\n if (typeof o.seedLocalId === 'string' && o.seedLocalId.trim() !== '') {\n return o.seedLocalId.trim()\n }\n if (typeof o.seedUid === 'string' && o.seedUid.trim() !== '') {\n return o.seedUid.trim()\n }\n }\n return undefined\n}\n\n/** getCorrectId only accepts 10-char local ids and 0x66 uids; local seed refs can be up to 21 chars. */\nconst LOCAL_SEED_REF = /^[a-zA-Z0-9_-]{10,21}$/\n\n/** Resolve seed ids from a single string (context propertyValue or DB row). */\nexport function resolveSeedIdsFromRefString(s: string): { seedLocalId?: string; seedUid?: string } {\n const fromCorrect = parseLocalIdOrUid(s)\n if (fromCorrect.localId || fromCorrect.uid) {\n return { seedLocalId: fromCorrect.localId, seedUid: fromCorrect.uid }\n }\n if (LOCAL_SEED_REF.test(s) && !s.startsWith('0x')) {\n return { seedLocalId: s }\n }\n return {}\n}\n","import { UploadProperty } from '@/db/read/getPublishUploads'\nimport { IItem } from '@/interfaces'\nimport { ModelPropertyDataTypes, normalizeDataType } from '@/Schema'\nimport { getPropertySchema, TProperty } from '@/helpers/property'\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): Promise<{ dataType?: string; ref?: string; refValueType?: string; storageType?: string; localStorageDir?: string; filenameSuffix?: string; required?: boolean } | undefined> {\n let schema = await getPropertySchema(modelName, propertyName)\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 modelRecords = await db\n .select({ id: models.id })\n .from(models)\n .where(eq(models.name, normalizedModelName))\n .limit(1)\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\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 const resolved = await resolvePropertyDef(item.modelName, itemProperty.propertyName)\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"],"names":["normalizeDataType","getPropertySchema","BaseDb","upperFirst","camelCase","models","eq","properties","and","ModelPropertyDataTypes"],"mappings":"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"}
1
+ {"version":3,"file":"getSegmentedItemProperties-CMhXKQHz.js","sources":["../../../src/helpers/relationSeedRef.ts","../../../src/helpers/getSegmentedItemProperties.ts"],"sourcesContent":["/** Same rules as getCorrectId in helpers/index (avoid barrel circular import). */\nfunction parseLocalIdOrUid(localIdOrUid: string): { localId?: string; uid?: string } {\n const id = { localId: undefined as string | undefined, uid: undefined as string | undefined }\n if (!localIdOrUid) return id\n if (localIdOrUid.length === 10) {\n id.localId = localIdOrUid\n }\n if (localIdOrUid.startsWith('0x') && localIdOrUid.length === 66) {\n id.uid = localIdOrUid\n }\n return id\n}\n\n/** Relation/image refs may be string ids or `{ seedLocalId?, seedUid? }`. */\nexport function normalizeRelationPropertyValue(value: unknown): string | undefined {\n if (value == null) return undefined\n if (typeof value === 'string') {\n const t = value.trim()\n return t !== '' ? t : undefined\n }\n if (typeof value === 'object' && value !== null) {\n const o = value as { seedLocalId?: string; seedUid?: string }\n if (typeof o.seedLocalId === 'string' && o.seedLocalId.trim() !== '') {\n return o.seedLocalId.trim()\n }\n if (typeof o.seedUid === 'string' && o.seedUid.trim() !== '') {\n return o.seedUid.trim()\n }\n }\n return undefined\n}\n\n/** getCorrectId only accepts 10-char local ids and 0x66 uids; local seed refs can be up to 21 chars. */\nconst LOCAL_SEED_REF = /^[a-zA-Z0-9_-]{10,21}$/\n\n/** Resolve seed ids from a single string (context propertyValue or DB row). */\nexport function resolveSeedIdsFromRefString(s: string): { seedLocalId?: string; seedUid?: string } {\n const fromCorrect = parseLocalIdOrUid(s)\n if (fromCorrect.localId || fromCorrect.uid) {\n return { seedLocalId: fromCorrect.localId, seedUid: fromCorrect.uid }\n }\n if (LOCAL_SEED_REF.test(s) && !s.startsWith('0x')) {\n return { seedLocalId: s }\n }\n return {}\n}\n","import { UploadProperty } from '@/db/read/getPublishUploads'\nimport { IItem } from '@/interfaces'\nimport { ModelPropertyDataTypes, normalizeDataType } from '@/Schema'\nimport { getPropertySchema, TProperty } from '@/helpers/property'\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): Promise<{ dataType?: string; ref?: string; refValueType?: string; storageType?: string; localStorageDir?: string; filenameSuffix?: string; required?: boolean } | undefined> {\n let schema = await getPropertySchema(modelName, propertyName)\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 modelRecords = await db\n .select({ id: models.id })\n .from(models)\n .where(eq(models.name, normalizedModelName))\n .limit(1)\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\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 const resolved = await resolvePropertyDef(item.modelName, itemProperty.propertyName)\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"],"names":["normalizeDataType","getPropertySchema","BaseDb","upperFirst","camelCase","models","eq","properties","and","ModelPropertyDataTypes"],"mappings":"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"}
@@ -1022,7 +1022,7 @@ const createPropertyInstances = async (propertyFileIds) => {
1022
1022
  return;
1023
1023
  }
1024
1024
  try {
1025
- const mod = await Promise.resolve().then(function () { return require('./ModelProperty-CGjXNHFW.js'); });
1025
+ const mod = await Promise.resolve().then(function () { return require('./ModelProperty-alntkSnH.js'); });
1026
1026
  const ModelProperty = mod?.ModelProperty ?? mod?.default;
1027
1027
  if (!ModelProperty) {
1028
1028
  logger$v('createPropertyInstances: ModelProperty not available from dynamic import');
@@ -1206,7 +1206,7 @@ const loadOrCreateModel = xstate.fromCallback(({ sendBack, input: { context } })
1206
1206
  // Step 2: Fallback to Schema context (only if database doesn't have the model)
1207
1207
  // This handles the case where model exists in schema file but not yet in database
1208
1208
  try {
1209
- const schemaMod = await Promise.resolve().then(function () { return require('./Schema-CLMqGTHn.js'); });
1209
+ const schemaMod = await Promise.resolve().then(function () { return require('./Schema-ByFv6fcb.js'); });
1210
1210
  const { Schema } = schemaMod;
1211
1211
  const schema = Schema.create(schemaName, { waitForReady: false });
1212
1212
  const schemaSnapshot = schema.getService().getSnapshot();
@@ -1450,7 +1450,7 @@ const loadOrCreateModel = xstate.fromCallback(({ sendBack, input: { context } })
1450
1450
  }
1451
1451
  // Mark schema as draft when a new model is created so saveNewVersion() can persist it
1452
1452
  try {
1453
- const schemaMod = await Promise.resolve().then(function () { return require('./Schema-CLMqGTHn.js'); });
1453
+ const schemaMod = await Promise.resolve().then(function () { return require('./Schema-ByFv6fcb.js'); });
1454
1454
  const { Schema } = schemaMod;
1455
1455
  const schema = Schema.create(schemaName, { waitForReady: false });
1456
1456
  schema.getService().send({ type: 'markAsDraft', propertyKey: 'schema:models' });
@@ -1494,10 +1494,10 @@ const validateModel = xstate.fromCallback(({ sendBack, input: { context } }) =>
1494
1494
  const _validateModel = async () => {
1495
1495
  try {
1496
1496
  // Use dynamic imports to break circular dependencies
1497
- const validationServiceMod = await Promise.resolve().then(function () { return require('./SchemaValidationService-BnS8o5FK.js'); });
1497
+ const validationServiceMod = await Promise.resolve().then(function () { return require('./SchemaValidationService-D55MWsxv.js'); });
1498
1498
  const { SchemaValidationService } = validationServiceMod;
1499
1499
  const validationService = new SchemaValidationService();
1500
- const schemaMod = await Promise.resolve().then(function () { return require('./Schema-CLMqGTHn.js'); });
1500
+ const schemaMod = await Promise.resolve().then(function () { return require('./Schema-ByFv6fcb.js'); });
1501
1501
  const { Schema } = schemaMod;
1502
1502
  // Validate model structure
1503
1503
  const structureResult = validationService.validateModelStructure(context);
@@ -1607,7 +1607,7 @@ const createModelProperties = xstate.fromCallback(({ sendBack, input }) => {
1607
1607
  return;
1608
1608
  }
1609
1609
  logger$t(`Creating ${Object.keys(propertyDefinitions).length} properties for model "${modelName}" (id: ${_dbId})`);
1610
- const mod = await Promise.resolve().then(function () { return require('./ModelProperty-CGjXNHFW.js'); });
1610
+ const mod = await Promise.resolve().then(function () { return require('./ModelProperty-alntkSnH.js'); });
1611
1611
  const ModelProperty = mod?.ModelProperty ?? mod?.default;
1612
1612
  if (!ModelProperty) {
1613
1613
  logger$t('ModelProperty not available from dynamic import');
@@ -1710,7 +1710,7 @@ const validateEntity = xstate.fromPromise(async ({ input }) => {
1710
1710
  const structureMsg = `[validateEntity] Validating model structure`;
1711
1711
  logger$s(structureMsg);
1712
1712
  // Use existing Model validation
1713
- const validationServiceMod = await Promise.resolve().then(function () { return require('./SchemaValidationService-BnS8o5FK.js'); });
1713
+ const validationServiceMod = await Promise.resolve().then(function () { return require('./SchemaValidationService-D55MWsxv.js'); });
1714
1714
  const { SchemaValidationService } = validationServiceMod;
1715
1715
  const validationService = new SchemaValidationService();
1716
1716
  // Validate model structure
@@ -1728,7 +1728,7 @@ const validateEntity = xstate.fromPromise(async ({ input }) => {
1728
1728
  if (entityInput.entityData.schemaName) {
1729
1729
  try {
1730
1730
  logger$s(`[validateEntity] Validating model against schema "${entityInput.entityData.schemaName}"`);
1731
- const schemaMod = await Promise.resolve().then(function () { return require('./Schema-CLMqGTHn.js'); });
1731
+ const schemaMod = await Promise.resolve().then(function () { return require('./Schema-ByFv6fcb.js'); });
1732
1732
  const { Schema } = schemaMod;
1733
1733
  const schema = Schema.create(entityInput.entityData.schemaName, {
1734
1734
  waitForReady: false,
@@ -1764,7 +1764,7 @@ const validateEntity = xstate.fromPromise(async ({ input }) => {
1764
1764
  }
1765
1765
  else if (entityInput.entityType === 'modelProperty') {
1766
1766
  // Use existing ModelProperty validation
1767
- const validationServiceMod = await Promise.resolve().then(function () { return require('./SchemaValidationService-BnS8o5FK.js'); });
1767
+ const validationServiceMod = await Promise.resolve().then(function () { return require('./SchemaValidationService-D55MWsxv.js'); });
1768
1768
  const { SchemaValidationService } = validationServiceMod;
1769
1769
  const validationService = new SchemaValidationService();
1770
1770
  // Validate property structure
@@ -1779,7 +1779,7 @@ const validateEntity = xstate.fromPromise(async ({ input }) => {
1779
1779
  // If schema name and model name provided, validate against schema
1780
1780
  if (entityInput.entityData._schemaName && entityInput.entityData.modelName) {
1781
1781
  try {
1782
- const schemaMod = await Promise.resolve().then(function () { return require('./Schema-CLMqGTHn.js'); });
1782
+ const schemaMod = await Promise.resolve().then(function () { return require('./Schema-ByFv6fcb.js'); });
1783
1783
  const { Schema } = schemaMod;
1784
1784
  const schema = Schema.create(entityInput.entityData._schemaName, {
1785
1785
  waitForReady: false,
@@ -1808,7 +1808,7 @@ const validateEntity = xstate.fromPromise(async ({ input }) => {
1808
1808
  }
1809
1809
  else if (entityInput.entityType === 'schema') {
1810
1810
  // Schema validation - use existing validation
1811
- const validationServiceMod = await Promise.resolve().then(function () { return require('./SchemaValidationService-BnS8o5FK.js'); });
1811
+ const validationServiceMod = await Promise.resolve().then(function () { return require('./SchemaValidationService-D55MWsxv.js'); });
1812
1812
  const { SchemaValidationService } = validationServiceMod;
1813
1813
  const validationService = new SchemaValidationService();
1814
1814
  const schemaResult = validationService.validateSchema(entityInput.entityData);
@@ -3888,7 +3888,7 @@ const writeToDatabase = xstate.fromCallback(({ sendBack, input }) => {
3888
3888
  // initial write completes is not overwritten by the stale requestWrite payload.
3889
3889
  let dataToWrite = input.entityData;
3890
3890
  try {
3891
- const mod = await Promise.resolve().then(function () { return require('./ModelProperty-CGjXNHFW.js'); });
3891
+ const mod = await Promise.resolve().then(function () { return require('./ModelProperty-alntkSnH.js'); });
3892
3892
  const ModelProperty = mod?.ModelProperty ?? mod?.default;
3893
3893
  if (ModelProperty && typeof ModelProperty.getById === 'function') {
3894
3894
  const instance = ModelProperty.getById(input.entityId);
@@ -4268,7 +4268,7 @@ const modelMachine = xstate.setup({
4268
4268
  // Create ModelProperty instances for any new property IDs
4269
4269
  if (Array.isArray(newPropertyIds) && newPropertyIds.length > 0) {
4270
4270
  // Import and create instances asynchronously (fire-and-forget)
4271
- Promise.resolve().then(function () { return require('./ModelProperty-CGjXNHFW.js'); }).then(({ ModelProperty }) => {
4271
+ Promise.resolve().then(function () { return require('./ModelProperty-alntkSnH.js'); }).then(({ ModelProperty }) => {
4272
4272
  const createPromises = newPropertyIds.map(async (propertyFileId) => {
4273
4273
  try {
4274
4274
  const property = await ModelProperty.createById(propertyFileId);
@@ -5356,7 +5356,7 @@ const createItemPropertyInstances = async (metadataRows, seedLocalId, seedUid, m
5356
5356
  const schemaNameToTry = model$1?.schemaName;
5357
5357
  if (schemaNameToTry) {
5358
5358
  try {
5359
- const { Schema } = await Promise.resolve().then(function () { return require('./Schema-CLMqGTHn.js'); });
5359
+ const { Schema } = await Promise.resolve().then(function () { return require('./Schema-ByFv6fcb.js'); });
5360
5360
  const schemaInstance = Schema.create(schemaNameToTry, { waitForReady: false });
5361
5361
  const schemaContext = schemaInstance.getService().getSnapshot().context;
5362
5362
  if (schemaContext.models?.[modelName]?.properties) {
@@ -5405,7 +5405,7 @@ const createItemPropertyInstances = async (metadataRows, seedLocalId, seedUid, m
5405
5405
  }
5406
5406
  }
5407
5407
  if (Object.keys(propertySchemas).length === 0) {
5408
- const schemaMod = await Promise.resolve().then(function () { return require('./index-DBGNShZR.js'); });
5408
+ const schemaMod = await Promise.resolve().then(function () { return require('./index-pSLjO-ch.js'); });
5409
5409
  const { ModelPropertyDataTypes } = schemaMod;
5410
5410
  const KNOWN_MODEL_FALLBACKS = {
5411
5411
  Post: {
@@ -5452,7 +5452,7 @@ const createItemPropertyInstances = async (metadataRows, seedLocalId, seedUid, m
5452
5452
  // Infer propertyRecordSchema from metadata when schema is missing (enables persistence)
5453
5453
  let propSchema = propertySchemas[propertyName];
5454
5454
  if (!propSchema && isRefTypeFromMeta) {
5455
- const schemaMod = await Promise.resolve().then(function () { return require('./index-DBGNShZR.js'); });
5455
+ const schemaMod = await Promise.resolve().then(function () { return require('./index-pSLjO-ch.js'); });
5456
5456
  const { ModelPropertyDataTypes } = schemaMod;
5457
5457
  propSchema = {
5458
5458
  dataType: refSeedType === 'html' ? ModelPropertyDataTypes.Html
@@ -5709,9 +5709,9 @@ const runPublish = xstate.fromCallback(({ sendBack, input: { context } }) => {
5709
5709
  sendBack({ type: 'publishError', error: new Error(`Item not found for seedLocalId: ${seedLocalId}`) });
5710
5710
  return;
5711
5711
  }
5712
- const getPublishUploadsMod = await Promise.resolve().then(function () { return require('./getPublishUploads-CHhrLQmE.js'); });
5712
+ const getPublishUploadsMod = await Promise.resolve().then(function () { return require('./getPublishUploads-CSbHUxYk.js'); });
5713
5713
  const { getPublishUploads } = getPublishUploadsMod;
5714
- const getPublishPayloadMod = await Promise.resolve().then(function () { return require('./getPublishPayload-i3UrBhza.js'); });
5714
+ const getPublishPayloadMod = await Promise.resolve().then(function () { return require('./getPublishPayload-Bv94k4ak.js'); });
5715
5715
  const { getPublishPayload } = getPublishPayloadMod;
5716
5716
  const uploads = await getPublishUploads(item);
5717
5717
  let uploadedTransactions = [];
@@ -6813,7 +6813,7 @@ const resolveRelatedValue = xstate.fromCallback(({ sendBack, input: { context }
6813
6813
  const { isRelation, propertyValue, propertyName, seedUid, propertyRecordSchema, populatedFromDb, schemaUid, } = context;
6814
6814
  const _resolveRelatedValue = async () => {
6815
6815
  // Use dynamic import to break circular dependency
6816
- const schemaMod = await Promise.resolve().then(function () { return require('./index-DBGNShZR.js'); });
6816
+ const schemaMod = await Promise.resolve().then(function () { return require('./index-pSLjO-ch.js'); });
6817
6817
  const { ModelPropertyDataTypes } = schemaMod;
6818
6818
  if (!propertyValue || !isRelation || populatedFromDb) {
6819
6819
  return;
@@ -7817,7 +7817,7 @@ const hydrateFromDb = xstate.fromCallback(({ sendBack, input: { context } }) =>
7817
7817
  // to use dynamically imported ModelPropertyDataTypes
7818
7818
  const _hydrateFromDb = async () => {
7819
7819
  // Use dynamic import to break circular dependency
7820
- const schemaMod = await Promise.resolve().then(function () { return require('./index-DBGNShZR.js'); });
7820
+ const schemaMod = await Promise.resolve().then(function () { return require('./index-pSLjO-ch.js'); });
7821
7821
  const { ModelPropertyDataTypes } = schemaMod;
7822
7822
  const appDb = BaseDb.getAppDb();
7823
7823
  const whereClauses = [];
@@ -8180,7 +8180,7 @@ const loadOrCreateProperty = xstate.fromCallback(({ sendBack, input: { context }
8180
8180
  };
8181
8181
  // Merge with schema from file/DB to get validation rules (enum, pattern, etc.) - properties table doesn't store these
8182
8182
  try {
8183
- const { getPropertySchema } = await Promise.resolve().then(function () { return require('./property-CWZoijFu.js'); });
8183
+ const { getPropertySchema } = await Promise.resolve().then(function () { return require('./property-gUK2PijH.js'); });
8184
8184
  let schemaFromFile = await getPropertySchema(normalizedModelName, propertyName);
8185
8185
  if (!schemaFromFile?.validation) {
8186
8186
  // Fallback: get validation from schemaData in database (Schema context may not be loaded yet)
@@ -8645,9 +8645,9 @@ const analyzeInput = xstate.fromCallback(({ sendBack, input: { context, event }
8645
8645
  }
8646
8646
  const _analyzeInput = async () => {
8647
8647
  // Use dynamic import to break circular dependency
8648
- const schemaMod = await Promise.resolve().then(function () { return require('./index-DBGNShZR.js'); });
8648
+ const schemaMod = await Promise.resolve().then(function () { return require('./index-pSLjO-ch.js'); });
8649
8649
  const { ModelPropertyDataTypes } = schemaMod;
8650
- const { SchemaValidationService } = await Promise.resolve().then(function () { return require('./SchemaValidationService-BnS8o5FK.js'); });
8650
+ const { SchemaValidationService } = await Promise.resolve().then(function () { return require('./SchemaValidationService-D55MWsxv.js'); });
8651
8651
  let propertyName = propertyNameRaw;
8652
8652
  if (!propertyName) {
8653
8653
  throw new Error('propertyName is required');
@@ -8845,7 +8845,7 @@ const createMetadata = async (metadataValues, propertyRecordSchema, options) =>
8845
8845
  propertyRecordSchema?.validation &&
8846
8846
  metadataValues.propertyValue != null &&
8847
8847
  metadataValues.propertyValue !== '') {
8848
- const { SchemaValidationService } = await Promise.resolve().then(function () { return require('./SchemaValidationService-BnS8o5FK.js'); });
8848
+ const { SchemaValidationService } = await Promise.resolve().then(function () { return require('./SchemaValidationService-D55MWsxv.js'); });
8849
8849
  const validationService = new SchemaValidationService();
8850
8850
  const validationResult = validationService.validatePropertyValue(metadataValues.propertyValue, normalizeDataType(propertyRecordSchema.dataType), propertyRecordSchema.validation, propertyRecordSchema.refValueType
8851
8851
  ? normalizeDataType(String(propertyRecordSchema.refValueType))
@@ -9438,7 +9438,7 @@ const saveRelation = xstate.fromCallback(({ sendBack, input: { context, event }
9438
9438
  }
9439
9439
  const _saveRelation = async () => {
9440
9440
  // Use dynamic import to break circular dependency
9441
- const schemaMod = await Promise.resolve().then(function () { return require('./index-DBGNShZR.js'); });
9441
+ const schemaMod = await Promise.resolve().then(function () { return require('./index-pSLjO-ch.js'); });
9442
9442
  const { ModelPropertyDataTypes } = schemaMod;
9443
9443
  if (!propertyNameRaw) {
9444
9444
  throw new Error('propertyName is required');
@@ -10393,7 +10393,7 @@ class ItemProperty {
10393
10393
  return;
10394
10394
  }
10395
10395
  // Use dynamic import to break circular dependency
10396
- const schemaMod = await Promise.resolve().then(function () { return require('./index-DBGNShZR.js'); });
10396
+ const schemaMod = await Promise.resolve().then(function () { return require('./index-pSLjO-ch.js'); });
10397
10397
  const { ModelPropertyDataTypes } = schemaMod;
10398
10398
  const { context } = snapshot;
10399
10399
  const { propertyRecordSchema } = context;
@@ -11702,12 +11702,12 @@ class Item {
11702
11702
  };
11703
11703
  this.getPublishUploads = async (options) => {
11704
11704
  // Use dynamic import to break circular dependency
11705
- const getPublishUploadsMod = await Promise.resolve().then(function () { return require('./getPublishUploads-CHhrLQmE.js'); });
11705
+ const getPublishUploadsMod = await Promise.resolve().then(function () { return require('./getPublishUploads-CSbHUxYk.js'); });
11706
11706
  const { getPublishUploads } = getPublishUploadsMod;
11707
11707
  return await getPublishUploads(this, [], undefined, options);
11708
11708
  };
11709
11709
  this.getPublishPayload = async (uploadedTransactions, options) => {
11710
- const getPublishPayloadMod = await Promise.resolve().then(function () { return require('./getPublishPayload-i3UrBhza.js'); });
11710
+ const getPublishPayloadMod = await Promise.resolve().then(function () { return require('./getPublishPayload-Bv94k4ak.js'); });
11711
11711
  const { getPublishPayload } = getPublishPayloadMod;
11712
11712
  return await getPublishPayload(this, uploadedTransactions, options);
11713
11713
  };
@@ -13364,7 +13364,7 @@ const runEasSync = xstate.fromPromise(async ({ input, }) => {
13364
13364
  requestPayload: input.requestPayload,
13365
13365
  persistedSnapshot: input.runningSnapshot,
13366
13366
  });
13367
- const { runSyncFromEas } = await Promise.resolve().then(function () { return require('./syncDbWithEas-DRbf_wzk.js'); });
13367
+ const { runSyncFromEas } = await Promise.resolve().then(function () { return require('./syncDbWithEas-CYtl7VTD.js'); });
13368
13368
  try {
13369
13369
  await runSyncFromEas(toRunSyncArg(input.options));
13370
13370
  await finalizeEasSyncProcessRow(rowId, {
@@ -16780,16 +16780,7 @@ function errorFromEvent(event, fallbackMessage) {
16780
16780
  }
16781
16781
  return new Error(String(error ?? fallbackMessage));
16782
16782
  }
16783
- function failInit(fallbackMessage) {
16784
- return {
16785
- target: INIT_FAILED,
16786
- actions: {
16787
- type: 'assignInitError',
16788
- params: { fallbackMessage },
16789
- },
16790
- };
16791
- }
16792
- const clientManagerMachine = xstate.setup({
16783
+ const clientManagerSetup = xstate.setup({
16793
16784
  types: {
16794
16785
  context: {},
16795
16786
  input: {},
@@ -16804,13 +16795,18 @@ const clientManagerMachine = xstate.setup({
16804
16795
  addModelsToDb,
16805
16796
  processSchemaFiles,
16806
16797
  },
16807
- actions: {
16808
- assignInitError: xstate.assign(({ event }, params) => ({
16809
- initError: errorFromEvent(event, params.fallbackMessage),
16810
- isInitialized: false,
16811
- })),
16812
- },
16813
- }).createMachine({
16798
+ });
16799
+ function assignInitError(fallbackMessage) {
16800
+ return clientManagerSetup.assign(({ event }) => ({
16801
+ initError: errorFromEvent(event, fallbackMessage),
16802
+ isInitialized: false,
16803
+ }));
16804
+ }
16805
+ const failInit = (fallbackMessage) => ({
16806
+ target: INIT_FAILED,
16807
+ actions: assignInitError(fallbackMessage),
16808
+ });
16809
+ const clientManagerMachine = clientManagerSetup.createMachine({
16814
16810
  id: MachineIds.CLIENT_MANAGER,
16815
16811
  initial: UNINITIALIZED,
16816
16812
  context: ({ input }) => input,
@@ -17946,7 +17942,7 @@ const saveDraftLogger = debug('seedSdk:model:saveDraftToDb');
17946
17942
  // Lazy import cache for ModelProperty to avoid circular dependency
17947
17943
  // Eagerly start loading to minimize delay on first access
17948
17944
  let ModelPropertyClass = null;
17949
- const modelPropertyImportPromise = Promise.resolve().then(function () { return require('./ModelProperty-CGjXNHFW.js'); })
17945
+ const modelPropertyImportPromise = Promise.resolve().then(function () { return require('./ModelProperty-alntkSnH.js'); })
17950
17946
  .then(module => {
17951
17947
  ModelPropertyClass = module.ModelProperty;
17952
17948
  return ModelPropertyClass;
@@ -17963,7 +17959,7 @@ function getModelProperty() {
17963
17959
  }
17964
17960
  // Lazy import cache for Schema to avoid circular dependency
17965
17961
  let SchemaClass = null;
17966
- const schemaImportPromise = Promise.resolve().then(function () { return require('./Schema-CLMqGTHn.js'); })
17962
+ const schemaImportPromise = Promise.resolve().then(function () { return require('./Schema-ByFv6fcb.js'); })
17967
17963
  .then(module => {
17968
17964
  SchemaClass = module.Schema;
17969
17965
  return SchemaClass;
@@ -19865,7 +19861,7 @@ function resolveSdkDrizzleMigrationsDir(sdkRootDir) {
19865
19861
  })();
19866
19862
  // Also resolve relative to this module so temp-cwd tests / odd roots still find
19867
19863
  // packages/sdk/src/db/drizzle (or dist/db/drizzle after publish).
19868
- const moduleDir = path.dirname(node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cjs/index-Bx8ReSFI.js', document.baseURI).href))));
19864
+ const moduleDir = path.dirname(node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cjs/index-D-9WglxG.js', document.baseURI).href))));
19869
19865
  const candidates = [
19870
19866
  path.join(root, 'db', 'drizzle'), // production: sdkRoot is dist/
19871
19867
  path.join(root, 'dist', 'db', 'drizzle'), // sdk package root with built dist
@@ -19935,7 +19931,7 @@ class NodeDb {
19935
19931
  logger$1('[Db.prepareDb] running migrations from %s', outDir);
19936
19932
  await migrator.migrate(db, { migrationsFolder: outDir });
19937
19933
  this.db = db;
19938
- const { backfillMetadataPropertyIds } = await Promise.resolve().then(function () { return require('./backfillMetadataPropertyIds-B3xNIFjQ.js'); });
19934
+ const { backfillMetadataPropertyIds } = await Promise.resolve().then(function () { return require('./backfillMetadataPropertyIds-DrrL5RqD.js'); });
19939
19935
  await backfillMetadataPropertyIds();
19940
19936
  return this.db;
19941
19937
  }
@@ -20526,4 +20522,4 @@ exports.versions = versions;
20526
20522
  exports.waitForEntityIdle = waitForEntityIdle;
20527
20523
  exports.withSeed = withSeed;
20528
20524
  exports.writeProcessMachine = writeProcessMachine;
20529
- //# sourceMappingURL=index-Bx8ReSFI.js.map
20525
+ //# sourceMappingURL=index-D-9WglxG.js.map