@seedprotocol/sdk 0.4.6 → 0.4.7

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 (151) hide show
  1. package/dist/{ArweaveClient-DLKAaS3K.js → ArweaveClient-BdQaTOZ4.js} +3 -3
  2. package/dist/ArweaveClient-BdQaTOZ4.js.map +1 -0
  3. package/dist/{ArweaveClient-Caio37h1.js → ArweaveClient-nrTU_rhU.js} +3 -3
  4. package/dist/ArweaveClient-nrTU_rhU.js.map +1 -0
  5. package/dist/{Db-DJAG-5Di.js → Db-CWKaeNQH.js} +3 -102
  6. package/dist/Db-CWKaeNQH.js.map +1 -0
  7. package/dist/{Db-C9fppVRl.js → Db-Cq4q88X_.js} +21 -5
  8. package/dist/Db-Cq4q88X_.js.map +1 -0
  9. package/dist/{EasClient-DQGAIj-b.js → EasClient-Du9_TULE.js} +2 -2
  10. package/dist/EasClient-Du9_TULE.js.map +1 -0
  11. package/dist/{EasClient-T7Nx9185.js → EasClient-ZCIE6UQq.js} +2 -2
  12. package/dist/EasClient-ZCIE6UQq.js.map +1 -0
  13. package/dist/{FileManager-BohtoKYo.js → FileManager-Cub9icdd.js} +2 -2
  14. package/dist/FileManager-Cub9icdd.js.map +1 -0
  15. package/dist/{FileManager-d64CkqXy.js → FileManager-HSFEess-.js} +2 -2
  16. package/dist/FileManager-HSFEess-.js.map +1 -0
  17. package/dist/Item/Item.d.ts +2 -0
  18. package/dist/Item/Item.d.ts.map +1 -1
  19. package/dist/Item/service/actors/loadOrCreateItem.d.ts.map +1 -1
  20. package/dist/Item/service/itemMachineSingle.d.ts.map +1 -1
  21. package/dist/ItemProperty/ItemProperty.d.ts.map +1 -1
  22. package/dist/ItemProperty/service/actors/loadOrCreateProperty.d.ts.map +1 -1
  23. package/dist/Model/Model.d.ts +5 -0
  24. package/dist/Model/Model.d.ts.map +1 -1
  25. package/dist/{ModelProperty-Cpd9xiIM.js → ModelProperty-D4zaeIOT.js} +22 -22
  26. package/dist/ModelProperty-D4zaeIOT.js.map +1 -0
  27. package/dist/{PathResolver-D6M0rzKV.js → PathResolver-DVLBs_qi.js} +2 -2
  28. package/dist/PathResolver-DVLBs_qi.js.map +1 -0
  29. package/dist/{PathResolver-CLZUWoX2.js → PathResolver-T1yEDECb.js} +2 -2
  30. package/dist/PathResolver-T1yEDECb.js.map +1 -0
  31. package/dist/{QueryClient-COQ_Rs4-.js → QueryClient-DcKDQuwz.js} +2 -2
  32. package/dist/QueryClient-DcKDQuwz.js.map +1 -0
  33. package/dist/{QueryClient-BUoz2Vb0.js → QueryClient-Vs9KN5kS.js} +2 -2
  34. package/dist/QueryClient-Vs9KN5kS.js.map +1 -0
  35. package/dist/{Schema-BZKBy5Tx.js → Schema-SbwqmoMM.js} +36 -36
  36. package/dist/Schema-SbwqmoMM.js.map +1 -0
  37. package/dist/{SchemaValidationService-F8No7BHp.js → SchemaValidationService-DHGIw4Nx.js} +2 -2
  38. package/dist/SchemaValidationService-DHGIw4Nx.js.map +1 -0
  39. package/dist/browser/db/drizzleFiles.d.ts +3 -2
  40. package/dist/browser/db/drizzleFiles.d.ts.map +1 -1
  41. package/dist/browser/react/item.d.ts +2 -0
  42. package/dist/browser/react/item.d.ts.map +1 -1
  43. package/dist/cjs/{ModelProperty-B4pV91tc.js → ModelProperty-DpjD0o0E.js} +16 -16
  44. package/dist/cjs/{ModelProperty-B4pV91tc.js.map → ModelProperty-DpjD0o0E.js.map} +1 -1
  45. package/dist/cjs/{Schema-TErl3J36.js → Schema-DkSBMBwz.js} +21 -21
  46. package/dist/cjs/{Schema-TErl3J36.js.map → Schema-DkSBMBwz.js.map} +1 -1
  47. package/dist/cjs/{SchemaValidationService-p5BbJV9T.js → SchemaValidationService-O3FCMROl.js} +2 -2
  48. package/dist/cjs/{SchemaValidationService-p5BbJV9T.js.map → SchemaValidationService-O3FCMROl.js.map} +1 -1
  49. package/dist/cjs/{getItem-BrnLfC12.js → getItem-BeAVMk54.js} +2 -2
  50. package/dist/cjs/{getItem-BrnLfC12.js.map → getItem-BeAVMk54.js.map} +1 -1
  51. package/dist/cjs/{getPublishPayload-BcjCN_bD.js → getPublishPayload-CoLriAMV.js} +5 -5
  52. package/dist/cjs/{getPublishPayload-BcjCN_bD.js.map → getPublishPayload-CoLriAMV.js.map} +1 -1
  53. package/dist/cjs/{getPublishUploads-5_oXzwol.js → getPublishUploads-DDsT9zZ6.js} +3 -3
  54. package/dist/cjs/{getPublishUploads-5_oXzwol.js.map → getPublishUploads-DDsT9zZ6.js.map} +1 -1
  55. package/dist/cjs/{getSegmentedItemProperties-WFdizUDv.js → getSegmentedItemProperties-DGR0utR5.js} +2 -2
  56. package/dist/cjs/{getSegmentedItemProperties-WFdizUDv.js.map → getSegmentedItemProperties-DGR0utR5.js.map} +1 -1
  57. package/dist/cjs/{index-CXI4VF1H.js → index-B95Ng80C.js} +326 -180
  58. package/dist/cjs/index-B95Ng80C.js.map +1 -0
  59. package/dist/cjs/{index-BrmvhXsG.js → index-CvcOtzbi.js} +2 -2
  60. package/dist/cjs/index-CvcOtzbi.js.map +1 -0
  61. package/dist/cjs/ownership-Dm5ER1nI.js +103 -0
  62. package/dist/cjs/ownership-Dm5ER1nI.js.map +1 -0
  63. package/dist/client/ClientManager.d.ts +54 -43
  64. package/dist/client/ClientManager.d.ts.map +1 -1
  65. package/dist/client/actors/platformClassesInit.d.ts.map +1 -1
  66. package/dist/client/actors/saveConfig.d.ts.map +1 -1
  67. package/dist/client/clientManagerMachine.d.ts.map +1 -1
  68. package/dist/db/drizzle/drizzle/0004_add_publisher_to_seeds.sql +1 -0
  69. package/dist/db/drizzle/drizzle/meta/0004_snapshot.json +857 -0
  70. package/dist/db/drizzle/drizzle/meta/_journal.json +7 -0
  71. package/dist/db/read/getItemData.d.ts.map +1 -1
  72. package/dist/db/read/getItems.d.ts +2 -0
  73. package/dist/db/read/getItems.d.ts.map +1 -1
  74. package/dist/db/write/createNewItem.d.ts.map +1 -1
  75. package/dist/events/item/syncDbWithEas.d.ts.map +1 -1
  76. package/dist/{getItem-DaQVdeae.js → getItem-CqrJt-Ee.js} +2 -2
  77. package/dist/getItem-CqrJt-Ee.js.map +1 -0
  78. package/dist/{getPublishPayload-CWiLI1yd.js → getPublishPayload-BRgULCf3.js} +5 -5
  79. package/dist/getPublishPayload-BRgULCf3.js.map +1 -0
  80. package/dist/{getPublishUploads-DhvcKD_9.js → getPublishUploads-B0WArDfp.js} +3 -3
  81. package/dist/getPublishUploads-B0WArDfp.js.map +1 -0
  82. package/dist/{getSegmentedItemProperties-Cp4kcWIF.js → getSegmentedItemProperties-DZL9Ymd4.js} +2 -2
  83. package/dist/getSegmentedItemProperties-DZL9Ymd4.js.map +1 -0
  84. package/dist/helpers/addresses.d.ts +12 -0
  85. package/dist/helpers/addresses.d.ts.map +1 -0
  86. package/dist/helpers/db.d.ts +11 -0
  87. package/dist/helpers/db.d.ts.map +1 -1
  88. package/dist/helpers/ownership.d.ts +16 -0
  89. package/dist/helpers/ownership.d.ts.map +1 -0
  90. package/dist/{index-DBy53qbb.js → index-BIPPEMVY.js} +2 -2
  91. package/dist/index-BIPPEMVY.js.map +1 -0
  92. package/dist/{index-LfXKx_PE.js → index-BnF3MRZ8.js} +3 -3
  93. package/dist/index-BnF3MRZ8.js.map +1 -0
  94. package/dist/{index-Dk73a7JE.js → index-zsq08F5p.js} +342 -98
  95. package/dist/index-zsq08F5p.js.map +1 -0
  96. package/dist/main.cjs +1 -1
  97. package/dist/main.js +18 -15
  98. package/dist/main.js.map +1 -1
  99. package/dist/node/db/Db.d.ts.map +1 -1
  100. package/dist/node.js +10 -10
  101. package/dist/node.js.map +1 -1
  102. package/dist/ownership-CSsweVap.js +85 -0
  103. package/dist/ownership-CSsweVap.js.map +1 -0
  104. package/dist/{property-1o2MvYTm.js → property-Cqh_o0zx.js} +5 -5
  105. package/dist/property-Cqh_o0zx.js.map +1 -0
  106. package/dist/{queries-DA4G0iEN.js → queries-DSBgjcJJ.js} +2 -2
  107. package/dist/queries-DSBgjcJJ.js.map +1 -0
  108. package/dist/seedSchema/ModelSchemaSchema.d.ts +1 -1
  109. package/dist/seedSchema/ModelSchemaSchema.ts +4 -4
  110. package/dist/seedSchema/ModelUidSchema.ts +1 -1
  111. package/dist/seedSchema/PropertyUidSchema.ts +1 -1
  112. package/dist/seedSchema/SeedSchema.d.ts +19 -0
  113. package/dist/seedSchema/SeedSchema.d.ts.map +1 -1
  114. package/dist/seedSchema/SeedSchema.ts +1 -0
  115. package/dist/seedSchema/index.d.ts +10 -10
  116. package/dist/seedSchema/index.d.ts.map +1 -1
  117. package/dist/seedSchema/index.ts +10 -10
  118. package/dist/types/index.d.ts +11 -1
  119. package/dist/types/index.d.ts.map +1 -1
  120. package/dist/types/item.d.ts +1 -0
  121. package/dist/types/item.d.ts.map +1 -1
  122. package/dist/types/machines.d.ts +2 -0
  123. package/dist/types/machines.d.ts.map +1 -1
  124. package/dist/vite.js.map +1 -1
  125. package/package.json +2 -9
  126. package/dist/ArweaveClient-Caio37h1.js.map +0 -1
  127. package/dist/ArweaveClient-DLKAaS3K.js.map +0 -1
  128. package/dist/Db-C9fppVRl.js.map +0 -1
  129. package/dist/Db-DJAG-5Di.js.map +0 -1
  130. package/dist/EasClient-DQGAIj-b.js.map +0 -1
  131. package/dist/EasClient-T7Nx9185.js.map +0 -1
  132. package/dist/FileManager-BohtoKYo.js.map +0 -1
  133. package/dist/FileManager-d64CkqXy.js.map +0 -1
  134. package/dist/ModelProperty-Cpd9xiIM.js.map +0 -1
  135. package/dist/PathResolver-CLZUWoX2.js.map +0 -1
  136. package/dist/PathResolver-D6M0rzKV.js.map +0 -1
  137. package/dist/QueryClient-BUoz2Vb0.js.map +0 -1
  138. package/dist/QueryClient-COQ_Rs4-.js.map +0 -1
  139. package/dist/Schema-BZKBy5Tx.js.map +0 -1
  140. package/dist/SchemaValidationService-F8No7BHp.js.map +0 -1
  141. package/dist/cjs/index-BrmvhXsG.js.map +0 -1
  142. package/dist/cjs/index-CXI4VF1H.js.map +0 -1
  143. package/dist/getItem-DaQVdeae.js.map +0 -1
  144. package/dist/getPublishPayload-CWiLI1yd.js.map +0 -1
  145. package/dist/getPublishUploads-DhvcKD_9.js.map +0 -1
  146. package/dist/getSegmentedItemProperties-Cp4kcWIF.js.map +0 -1
  147. package/dist/index-DBy53qbb.js.map +0 -1
  148. package/dist/index-Dk73a7JE.js.map +0 -1
  149. package/dist/index-LfXKx_PE.js.map +0 -1
  150. package/dist/property-1o2MvYTm.js.map +0 -1
  151. package/dist/queries-DA4G0iEN.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../../src/node/db/Db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAc,gBAAgB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAiB,cAAc,CAAC;AAU9C,OAAO,EAAE,UAAU,EAAwD,MAAM,MAAM,CAAA;AAIvF,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAsBD,cAAM,EAAG,SAAQ,MAAO,YAAW,GAAG;IACpC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAA;;IAMd,MAAM,CAAC,QAAQ;IAIf,MAAM,CAAC,YAAY;WAIN,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ;WAgJ7C,WAAW,CAAC,SAAS,EAAE,MAAM;;;WAO7B,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IA0GtE;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,MAAM,CAAC,SAAS,CAAC,CAAC,EAChB,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,GAC/B,UAAU,CAAC,CAAC,EAAE,CAAC;CAqCnB;AAID,OAAO,EAAE,EAAE,EAAE,CAAA"}
1
+ {"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../../src/node/db/Db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAc,gBAAgB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAiB,cAAc,CAAC;AAU9C,OAAO,EAAE,UAAU,EAAwD,MAAM,MAAM,CAAA;AAIvF,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAsBD,cAAM,EAAG,SAAQ,MAAO,YAAW,GAAG;IACpC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAA;;IAMd,MAAM,CAAC,QAAQ;IAIf,MAAM,CAAC,YAAY;WAIN,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ;WAqC7C,WAAW,CAAC,SAAS,EAAE,MAAM;;;WAO7B,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IA0GtE;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,MAAM,CAAC,SAAS,CAAC,CAAC,EAChB,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,GAC/B,UAAU,CAAC,CAAC,EAAE,CAAC;CAqCnB;AAID,OAAO,EAAE,EAAE,EAAE,CAAA"}
package/dist/node.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import { enableMapSet } from 'immer';
2
2
  import 'reflect-metadata';
3
- import { a as ModelPropertyDataTypes, P as Property, a2 as addModelsToDb, v as BasePathResolver, o as modelPropertiesToObject, a3 as SCHEMA_NJK } from './index-Dk73a7JE.js';
4
- export { B as Boolean, D as Date, a7 as INIT_SCRIPT_SUCCESS_MESSAGE, I as Image, a0 as Item, a4 as ItemProperty, J as Json, L as List, M as Model, N as Number, R as Relation, a8 as SCHEMA_TS, g as Text, y as appState, a6 as client, A as config, a5 as eventEmitter, j as getCorrectId, a9 as importJsonSchema, aa as loadSchemaFromFile, C as metadata, H as modelUids, q as models, ab as readJsonImportFile, X as seeds, ac as transformImportToSchemaFile, Y as versions } from './index-Dk73a7JE.js';
3
+ import { a as ModelPropertyDataTypes, P as Property, a3 as addModelsToDb, x as BasePathResolver, q as modelPropertiesToObject, a4 as SCHEMA_NJK } from './index-zsq08F5p.js';
4
+ export { B as Boolean, D as Date, a8 as INIT_SCRIPT_SUCCESS_MESSAGE, I as Image, a1 as Item, a5 as ItemProperty, J as Json, L as List, M as Model, N as Number, R as Relation, a9 as SCHEMA_TS, g as Text, A as appState, a7 as client, F as config, a6 as eventEmitter, l as getCorrectId, aa as importJsonSchema, ab as loadSchemaFromFile, G as metadata, O as modelUids, r as models, ac as readJsonImportFile, s as seeds, ad as transformImportToSchemaFile, _ as versions } from './index-zsq08F5p.js';
5
5
  import pluralize from 'pluralize';
6
6
  import 'drizzle-orm';
7
- export { FileManager } from './FileManager-d64CkqXy.js';
8
- export { Db } from './Db-DJAG-5Di.js';
7
+ export { FileManager } from './FileManager-HSFEess-.js';
8
+ export { Db } from './Db-CWKaeNQH.js';
9
9
  import yaml from 'js-yaml';
10
10
  import fs__default, { readFileSync } from 'fs';
11
- export { PathResolver } from './PathResolver-D6M0rzKV.js';
11
+ export { PathResolver } from './PathResolver-DVLBs_qi.js';
12
12
  import * as tsImport from 'ts-import';
13
13
  import { LoadMode } from 'ts-import';
14
14
  import path from 'path';
@@ -19,12 +19,12 @@ import { execSync } from 'child_process';
19
19
  import { fileURLToPath } from 'url';
20
20
  import { drizzle } from 'drizzle-orm/libsql';
21
21
  import { pushSQLiteSchema } from 'drizzle-kit/api';
22
- import { s as schema } from './index-DBy53qbb.js';
22
+ import { s as schema } from './index-BIPPEMVY.js';
23
23
  import { createClient } from '@libsql/client';
24
24
  import { camelCase, snakeCase } from 'lodash-es';
25
- import './EasClient-T7Nx9185.js';
26
- import './QueryClient-COQ_Rs4-.js';
27
- import './ArweaveClient-DLKAaS3K.js';
25
+ import './EasClient-Du9_TULE.js';
26
+ import './QueryClient-DcKDQuwz.js';
27
+ import './ArweaveClient-BdQaTOZ4.js';
28
28
  import 'xstate';
29
29
  import 'drizzle-orm/sqlite-core';
30
30
  import 'nanoid';
@@ -37,7 +37,7 @@ import 'arweave';
37
37
  import '@sinclair/typebox';
38
38
  import 'fs/promises';
39
39
  import 'graphql-request';
40
- import './queries-DA4G0iEN.js';
40
+ import './queries-DSBgjcJJ.js';
41
41
 
42
42
  /**
43
43
  * Parses markdown frontmatter from a file
package/dist/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"node.js","sources":["../src/imports/markdown.ts","../src/node/webpack/index.ts","../src/node/helpers/index.ts","../src/node/helpers/scripts.ts","../src/node/codegen/drizzle.ts","../src/node/index.ts"],"sourcesContent":["import yaml from 'js-yaml'\nimport { readFileSync } from 'fs'\nimport { Property, ModelPropertyDataTypes } from '@/Schema'\nimport { ModelDefinitions } from '@/types'\nimport { addModelsToDb } from '../helpers/db'\nimport type { BetterSQLite3Database } from 'drizzle-orm/better-sqlite3'\nimport { SqliteRemoteDatabase } from 'drizzle-orm/sqlite-proxy'\nimport type { Model } from '@/Model/Model'\n\n/**\n * Configuration structure expected in markdown frontmatter\n */\ntype SeedConfig = {\n seed: {\n model: string\n properties: {\n [propertyName: string]: {\n type: string\n target?: string\n }\n }\n }\n}\n\n/**\n * Parses markdown frontmatter from a file\n * @param filePath Path to the markdown file\n * @returns The parsed frontmatter as an object, or null if no frontmatter found\n */\nexport const parseMarkdownFrontmatter = (\n filePath: string,\n): Record<string, any> | null => {\n const content = readFileSync(filePath, 'utf-8')\n \n // Check for frontmatter delimiters (more flexible regex)\n // Matches --- at start, optional whitespace, content, ---, optional whitespace\n const frontmatterRegex = /^---\\s*\\n([\\s\\S]*?)\\n---(\\s*\\n|$)/\n const match = content.match(frontmatterRegex)\n \n if (!match) {\n return null\n }\n \n const frontmatterYaml = match[1]\n \n try {\n const frontmatter = yaml.load(frontmatterYaml) as Record<string, any>\n return frontmatter\n } catch (error) {\n throw new Error(\n `Failed to parse YAML frontmatter in ${filePath}: ${error instanceof Error ? error.message : String(error)}`,\n )\n }\n}\n\n/**\n * Converts a seed config from frontmatter to ModelDefinitions format\n * @param config The seed configuration from frontmatter\n * @returns ModelDefinitions object ready to be saved to database\n */\nexport const processSeedConfig = (config: SeedConfig): ModelDefinitions => {\n if (!config.seed) {\n throw new Error('No seed configuration found in frontmatter')\n }\n \n const { model: modelName, properties: propertiesConfig } = config.seed\n \n if (!modelName) {\n throw new Error('Model name is required in seed configuration')\n }\n \n if (!propertiesConfig || Object.keys(propertiesConfig).length === 0) {\n throw new Error('Properties are required in seed configuration')\n }\n \n // Convert property configs to Property definitions\n const schema: Record<string, any> = {}\n \n for (const [propertyName, propertyConfig] of Object.entries(propertiesConfig)) {\n const { type, target } = propertyConfig\n \n if (!type) {\n throw new Error(`Property type is required for ${propertyName}`)\n }\n \n // Map the type to Property constructor\n switch (type) {\n case ModelPropertyDataTypes.Text:\n schema[propertyName] = Property.Text()\n break\n case ModelPropertyDataTypes.Number:\n schema[propertyName] = Property.Number()\n break\n case ModelPropertyDataTypes.Boolean:\n schema[propertyName] = Property.Boolean()\n break\n case ModelPropertyDataTypes.Date:\n schema[propertyName] = Property.Date()\n break\n case ModelPropertyDataTypes.Image:\n schema[propertyName] = Property.Image()\n break\n case ModelPropertyDataTypes.Json:\n schema[propertyName] = Property.Json()\n break\n case ModelPropertyDataTypes.File:\n schema[propertyName] = Property.File()\n break\n case ModelPropertyDataTypes.Relation:\n if (!target) {\n throw new Error(\n `Target model is required for Relation property ${propertyName}`,\n )\n }\n schema[propertyName] = Property.Relation(target)\n break\n case ModelPropertyDataTypes.List:\n if (!target) {\n throw new Error(\n `Target model is required for List property ${propertyName}`,\n )\n }\n schema[propertyName] = Property.List(target)\n break\n default:\n throw new Error(\n `Unknown property type: ${type} for property ${propertyName}`,\n )\n }\n }\n \n // Create a mock ModelClass structure that matches ModelDefinitions\n // This is a simplified version that works with addModelsToInternalDb\n const modelClass = {\n schema,\n create: async () => {\n throw new Error('Model.create() should not be called directly')\n },\n originalConstructor: class {},\n }\n \n return {\n [modelName]: modelClass as any as Model,\n }\n}\n\n/**\n * Reads a markdown file, parses frontmatter, and saves models/properties to database\n * @param filePath Path to the markdown file\n * @param db Database instance (BetterSQLite3Database or SqliteRemoteDatabase)\n * @returns The created ModelDefinitions\n */\nexport const saveModelsFromMarkdown = async (\n filePath: string,\n db: BetterSQLite3Database<any> | SqliteRemoteDatabase<any>,\n): Promise<ModelDefinitions> => {\n // Parse frontmatter\n const frontmatter = parseMarkdownFrontmatter(filePath)\n \n if (!frontmatter) {\n throw new Error(`No frontmatter found in ${filePath}`)\n }\n \n // Validate and process seed config\n const seedConfig = frontmatter as SeedConfig\n const modelDefinitions = processSeedConfig(seedConfig)\n \n // Save to database\n await addModelsToDb(modelDefinitions, undefined, undefined, undefined)\n \n return modelDefinitions\n}\n","// import path from \"path\";\n// import { fileURLToPath } from \"url\";\n\n// const __filename = fileURLToPath(import.meta.url);\n// const __dirname = path.dirname(__filename);\n\nexport const withSeed = (config: any, webpack: any, isServer: boolean) => {\n // If you need to include directories outside of the project root\n // config.module.rules.push({\n // test: /\\.ts$/,\n // include: [path.resolve(process.cwd(), 'schema.ts')],\n // use: 'ts-loader',\n // })\n\n config.plugins.push(\n // new webpack.DefinePlugin({\n // __dirname: JSON.stringify(__dirname),\n // }),\n new webpack.NormalModuleReplacementPlugin(/node:/, (resource: { request: string }) => {\n resource.request = resource.request.replace(/^node:/, '')\n }),\n )\n\n // config.externals.push({\n // 'fsevents': 'commonjs2 fsevents',\n // })\n\n // console.log('__dirname:', __dirname)\n // console.log('process.cwd():', process.cwd())\n\n // console.log('crypto-browserify exists:', fs.existsSync(path.resolve(process.cwd(), './node_modules/crypto-browserify')))\n // console.log('path-browserify exists:', fs.existsSync(path.resolve(process.cwd(), './node_modules/path-browserify')))\n\n if (!isServer) {\n // config.plugins.push(\n // new webpack.NormalModuleReplacementPlugin(/node:/, (resource: any) => {\n // resource.request = resource.request.replace(/^node:/, '')\n // }),\n // )\n // config.plugins.push(\n // new webpack.NormalModuleReplacementPlugin(\n // /^(node:)?fs$/,\n // (resource: any) => {\n // resource.request = '@zenfs/core';\n // }\n // )\n // )\n\n // config.module.rules.push({\n // test: /\\.js$/,\n // exclude: '/node_modules/@seedprotocol/sdk/node', // Exclude the 'node-files' directory\n // use: {\n // loader: 'babel-loader',\n // options: {\n // presets: ['next/babel'],\n // },\n // },\n // });\n\n\n // config.resolve.alias['fs/promises'] = '@zenfs/core/promises';\n\n config.resolve.alias['fs'] = '@zenfs/core'\n config.resolve.alias['node:fs'] = '@zenfs/core'\n config.resolve.alias['node:path'] = 'path-browserify'\n config.resolve.alias['path'] = 'path-browserify'\n\n // config.resolve.alias['fs'] = path.resolve(\n // process.cwd(),\n // './node_modules/@zenfs/core',\n // )\n // config.resolve.alias['node:fs'] = path.resolve(\n // process.cwd(),\n // './node_modules/@zenfs/core',\n // )\n // config.resolve.alias['@schema'] = path.resolve(process.cwd(), 'schema.ts')\n // // config.resolve.alias['crypto'] = path.resolve(process.cwd(), './node_modules/crypto-browserify')\n // // config.resolve.alias['node:crypto'] = path.resolve(process.cwd(), './node_modules/crypto-browserify')\n // config.resolve.alias['node:path'] = path.resolve(\n // process.cwd(),\n // './node_modules/path-browserify',\n // )\n // config.resolve.alias['path'] = path.resolve(\n // process.cwd(),\n // './node_modules/path-browserify',\n // )\n }\n\n if (isServer) {\n config.externals.push('@sqlite.org/sqlite-wasm')\n config.externals.push('nunjucks')\n config.externals.push('chokidar')\n config.externals.push('arweave')\n }\n\n // config.module.rules.push({\n // test: /seed\\.config\\.mjs$/,\n // use: [\n // {\n // loader: 'babel-loader',\n // options: {\n // plugins: ['@babel/plugin-syntax-dynamic-import'],\n // },\n // },\n // ],\n // })\n\n return config\n}\n","import fs from 'fs'\nimport * as tsImport from 'ts-import'\nimport { LoadMode } from 'ts-import'\nimport path from 'path'\nimport { glob } from 'glob'\nimport { rimraf } from 'rimraf'\nimport debug from 'debug'\n\nconst logger = debug('seedSdk:helpers')\n\nexport const getTsImport = async <T>(filePath: string): Promise<T> => {\n // Check if the config file exists\n if (!fs.existsSync(filePath)) {\n logger(`Typescript file not found at ${filePath}`)\n throw new Error(`Typescript file not found at ${filePath}`)\n }\n\n let result\n\n try {\n // Read the file content and transform relative imports to absolute paths\n // This fixes the issue where ts-import compiles to .mjs in cache and relative\n // imports resolve from the cache location instead of the original file location\n let fileContent = fs.readFileSync(filePath, 'utf-8')\n const fileDir = path.dirname(path.resolve(filePath))\n \n // Replace relative imports with absolute paths\n // Match: from '../../../../src/schema' or from '../../../something'\n const relativeImportRegex = /from\\s+['\"](\\.\\.\\/.*?)['\"]/g\n fileContent = fileContent.replace(relativeImportRegex, (match, importPath) => {\n const absolutePath = path.resolve(fileDir, importPath)\n // Convert to file:// URL for ESM compatibility, or use absolute path\n return `from '${absolutePath}'`\n })\n\n // Write to a temporary file and load that instead\n const tempFile = path.join(fileDir, `.temp.${path.basename(filePath)}`)\n fs.writeFileSync(tempFile, fileContent)\n \n try {\n result = await tsImport.load(tempFile, {\n mode: LoadMode.Compile,\n compileOptions: {\n compilerOptions: {\n experimentalDecorators: true,\n emitDecoratorMetadata: true,\n },\n },\n }).catch((e) => {\n logger('Error loading ts file:', e)\n throw e\n })\n } finally {\n // Clean up temp file\n if (fs.existsSync(tempFile)) {\n fs.unlinkSync(tempFile)\n }\n }\n\n } catch ( e ) {\n console.error(e)\n }\n\n\n return result\n}\n\nexport const deleteFilesWithExtension = async (\n dir: string,\n extension: string,\n) => {\n const pattern = path.join(dir, `**/*${extension}`)\n try {\n const files = await glob(pattern)\n for (const file of files) {\n try {\n await rimraf(file)\n logger(`Deleted: ${file}`)\n } catch (err) {\n logger('Error deleting file:', err)\n }\n }\n } catch (err) {\n logger('Error finding files:', err)\n }\n}\n","import { execSync } from 'child_process'\nimport path from 'path'\nimport fs from 'fs'\nimport { fileURLToPath, pathToFileURL } from 'url'\nimport { drizzle } from 'drizzle-orm/libsql'\nimport { generateSQLiteDrizzleJson, generateSQLiteMigration, generateMigration, pushSQLiteSchema } from 'drizzle-kit/api'\nimport * as schema from '@/seedSchema'\nimport { createClient } from '@libsql/client'\n\n// Get the directory of this file to resolve relative paths\n// @ts-ignore - rollup plugin-typescript doesn't recognize import.meta with module: \"preserve\"\nconst __filename = fileURLToPath(import.meta.url)\nconst __dirname = path.dirname(__filename)\n\nexport const commandExists = (command: string): boolean => {\n try {\n execSync(`which ${command}`, { stdio: 'ignore' })\n return true\n } catch {\n return false\n }\n}\n\n/**\n * Finds the seed binary path, trying multiple locations\n * @returns The path to the seed binary, or null if not found\n */\nexport const findSeedBinary = (): string | null => {\n const cwd = process.cwd()\n \n // Try common locations for the seed binary\n const possiblePaths = [\n path.join(cwd, 'node_modules', '.bin', 'seed'),\n path.join(cwd, 'node_modules', '@seedprotocol', 'cli', 'dist', 'bin.js'),\n // Try parent directories (for monorepos or nested projects)\n path.join(cwd, '..', 'node_modules', '.bin', 'seed'),\n path.join(cwd, '..', 'node_modules', '@seedprotocol', 'cli', 'dist', 'bin.js'),\n path.join(cwd, '..', '..', 'node_modules', '.bin', 'seed'),\n path.join(cwd, '..', '..', 'node_modules', '@seedprotocol', 'cli', 'dist', 'bin.js'),\n ]\n \n for (const binPath of possiblePaths) {\n if (fs.existsSync(binPath)) {\n return binPath\n }\n }\n \n return null\n}\n\n/**\n * Checks if we're running in the monorepo by looking for the CLI package directory\n * @returns The path to the monorepo root, or null if not in monorepo\n */\nfunction getMonorepoRoot(): string | null {\n // Start from this file's location and walk up to find packages/cli\n let currentDir = __dirname\n \n // Walk up the directory tree looking for packages/cli\n for (let i = 0; i < 10; i++) { // Limit to 10 levels to avoid infinite loops\n const packagesDir = path.join(currentDir, 'packages')\n const cliDir = path.join(packagesDir, 'cli')\n \n if (fs.existsSync(cliDir) && fs.existsSync(path.join(cliDir, 'package.json'))) {\n // Found packages/cli, return the monorepo root (parent of packages)\n return path.dirname(packagesDir)\n }\n \n const parentDir = path.dirname(currentDir)\n if (parentDir === currentDir) {\n // Reached filesystem root\n break\n }\n currentDir = parentDir\n }\n \n return null\n}\n\n/**\n * Attempts to import the CLI package, preferring local monorepo version over published package\n * @returns The CLI module or null if not found\n */\nasync function importCliPackage(): Promise<any> {\n // First, try to import from local monorepo CLI (for development)\n const monorepoRoot = getMonorepoRoot()\n \n if (monorepoRoot) {\n const localCliDistPath = path.join(monorepoRoot, 'packages', 'cli', 'dist', 'index.js')\n const localCliSrcPath = path.join(monorepoRoot, 'packages', 'cli', 'src', 'index.ts')\n \n // Try built dist first (most reliable)\n if (fs.existsSync(localCliDistPath)) {\n try {\n const localCliDistUrl = pathToFileURL(localCliDistPath).href\n const cliModule = await import(localCliDistUrl)\n if (cliModule && typeof cliModule.init === 'function') {\n return cliModule\n }\n } catch (error: any) {\n // Dist import failed, try source\n }\n }\n \n // Try source (for development with tsx/ts-node)\n if (fs.existsSync(localCliSrcPath)) {\n try {\n const localCliSrcUrl = pathToFileURL(localCliSrcPath).href\n const cliModule = await import(localCliSrcUrl)\n if (cliModule && typeof cliModule.init === 'function') {\n return cliModule\n }\n } catch (error: any) {\n // Source import failed (TypeScript not compiled or not using tsx)\n }\n }\n }\n \n // Fall back to published package (for production/consumers)\n // Note: @seedprotocol/cli is not a dependency of the SDK to avoid circular dependencies\n // This is a dynamic import that may not be available in all environments\n try {\n // @ts-ignore - Dynamic import of optional CLI package\n // Using template literal to prevent Vite from statically analyzing this import\n const cliPackageName = '@seedprotocol/cli'\n const cliModule = await import(cliPackageName)\n if (cliModule && typeof cliModule.init === 'function') {\n return cliModule\n }\n } catch (importError: any) {\n // Published package not available\n return null\n }\n \n return null\n}\n\n/**\n * Runs seed init programmatically, trying multiple methods:\n * 1. Try to dynamically import and call the CLI package's init function (prefers local monorepo version)\n * 2. Try to find and execute the seed binary\n * 3. Fall back to using npx\n * @param schemaFileDir - Optional path to schema file directory\n * @param appFilesDirPath - Optional path to app files directory\n */\nexport const runSeedInit = async (\n schemaFileDir?: string,\n appFilesDirPath?: string\n): Promise<void> => {\n\n const dbDirExists = fs.existsSync(`${appFilesDirPath}/db`)\n if (!dbDirExists) {\n fs.mkdirSync(`${appFilesDirPath}/db`, { recursive: true })\n }\n\n const dbUrl = `file:${appFilesDirPath}/db/seed.db`\n const client = createClient({ url: dbUrl })\n\n const db = drizzle(client, {schema})\n\n const { apply, hasDataLoss, warnings, statementsToExecute } = await pushSQLiteSchema(schema, db);\n \n // You can inspect what will happen before applying\n \n await apply();\n\n\n // // First, try to dynamically import the CLI package's init function\n // // This prefers local monorepo version in development, falls back to published package\n // try {\n // const cliModule = await importCliPackage()\n // if (cliModule && typeof cliModule.init === 'function') {\n // await cliModule.init(schemaFileDir, appFilesDirPath)\n // return\n // }\n // } catch (importError: any) {\n // // CLI package not available, continue to other methods\n // console.log('[seedInit] CLI package not available, trying binary execution')\n // }\n \n // // Try to find and execute the binary\n // const seedBinary = findSeedBinary()\n \n // if (seedBinary) {\n // // Binary found, execute it directly\n // const args = ['init']\n // if (schemaFileDir) {\n // args.push(schemaFileDir)\n // }\n // if (appFilesDirPath) {\n // args.push(appFilesDirPath)\n // }\n \n // try {\n // execSync(`node \"${seedBinary}\" ${args.join(' ')}`, {\n // stdio: 'inherit',\n // cwd: process.cwd(),\n // })\n // return\n // } catch (error: any) {\n // console.warn(`[seedInit] Failed to execute binary at ${seedBinary}: ${error.message}`)\n // // Continue to npx fallback\n // }\n // }\n \n // // Final fallback: use npx\n // const args = ['seed', 'init']\n // if (schemaFileDir) {\n // args.push(schemaFileDir)\n // }\n // if (appFilesDirPath) {\n // args.push(appFilesDirPath)\n // }\n \n // try {\n // execSync(`npx ${args.join(' ')}`, {\n // stdio: 'inherit',\n // cwd: process.cwd(),\n // })\n // } catch (error: any) {\n // throw new Error(\n // `Failed to run seed init command. ` +\n // `Tried: CLI package import, binary execution, and npx. ` +\n // `Please ensure @seedprotocol/cli is installed: ${error.message}`\n // )\n // }\n}\n\n","import path from 'path'\nimport pluralize from 'pluralize'\nimport { camelCase, snakeCase } from 'lodash-es'\nimport { Model } from '@/Model/Model'\nimport { ModelPropertyDataTypes } from '@/Schema'\nimport { modelPropertiesToObject } from '@/helpers/model'\n\n// Define ILoader type locally to avoid importing from nunjucks (prevents bundling issues)\ntype ILoader = {\n getSource(name: string): { path: string; src: string; noCache: boolean }\n}\nimport { SCHEMA_NJK } from '@/helpers/constants'\nimport { getTsImport } from '@/node/helpers'\nimport fs from 'fs'\nimport { BasePathResolver } from '@/helpers/PathResolver/BasePathResolver'\nimport debug from 'debug'\n\nconst logger = debug('seedSdk:codegen:drizzle')\n\n// Lazy load nunjucks to avoid bundling issues when only PathResolver is used\nlet nunjucksEnv: any = null\n\nconst getNunjucksEnv = async () => {\n if (!nunjucksEnv) {\n const nunjucks = await import('nunjucks')\n \n const TemplateLoader: ILoader = {\n getSource: (name: string) => {\n const pathResolver = BasePathResolver.getInstance()\n const { templatePath } = pathResolver.getAppPaths()\n let templateFilePath = templatePath\n if (name.includes(templatePath)) {\n templateFilePath = name\n } else {\n templateFilePath = path.join(templatePath, path.basename(name))\n }\n const src = fs.readFileSync(templateFilePath, 'utf-8')\n\n return {\n path: name,\n src,\n noCache: false,\n }\n },\n }\n\n // Configure Nunjucks\n nunjucksEnv = new nunjucks.Environment(TemplateLoader)\n\n nunjucksEnv.addFilter('camelCase', camelCase)\n nunjucksEnv.addFilter('snakeCase', snakeCase)\n nunjucksEnv.addFilter('pluralize', pluralize)\n }\n return nunjucksEnv\n}\n\nconst refNamesToExcludeFromRelations = [\n ModelPropertyDataTypes.Text,\n ModelPropertyDataTypes.Number,\n ModelPropertyDataTypes.Boolean,\n ModelPropertyDataTypes.Date,\n]\n\nexport const generateDrizzleSchemaCode = async (\n modelName: string,\n model: Model,\n): Promise<string> => {\n const properties = model.properties || []\n if (properties.length === 0) {\n throw new Error(`Model ${modelName} has no properties`)\n }\n const schema = modelPropertiesToObject(properties)\n const listProperties = Object.entries(schema).filter(\n ([key, propertyDef]) => propertyDef?.dataType === ModelPropertyDataTypes.List && !refNamesToExcludeFromRelations.includes(propertyDef?.ref!),\n )\n\n const pathResolver = BasePathResolver.getInstance()\n const { templatePath } = pathResolver.getAppPaths()\n const filePath = path.join(templatePath, SCHEMA_NJK)\n\n const env = await getNunjucksEnv()\n const schemaCode = env.render(filePath, {\n modelName,\n modelClass: model, // Keep modelClass name for template compatibility\n listProperties,\n })\n\n return schemaCode\n}\n\nexport const createDrizzleSchemaFilesFromConfig = async (\n configFilePath: string | undefined,\n outputDirPath: string | undefined,\n) => {\n const pathResolver = BasePathResolver.getInstance()\n const { dotSeedDir, appSchemaDir } = pathResolver.getAppPaths()\n\n // Use provided config file path or find the config file in the project root\n const schemaFilePath = configFilePath || pathResolver.findConfigFile() || path.join(dotSeedDir, 'seed.config.ts')\n\n const { models, } = await getTsImport<{\n models: Record<string, Model>\n }>(schemaFilePath)\n\n const writeToDir = outputDirPath || appSchemaDir\n\n for (const [modelName, modelClass] of Object.entries(models)) {\n const code = await generateDrizzleSchemaCode(modelName, modelClass)\n\n if (!fs.existsSync(writeToDir)) {\n fs.mkdirSync(writeToDir)\n }\n\n const filePath = path.join(writeToDir, `${modelName}Schema.ts`)\n\n await fs.promises.writeFile(filePath, code).catch((e) => console.error(e))\n }\n}\n\n // Helper to determine TypeScript type based on property type\n const seedTypeToJsType = (propertyType: string): string => {\n switch (propertyType) {\n case ModelPropertyDataTypes.Text:\n return 'string';\n case ModelPropertyDataTypes.Number:\n return 'number';\n case ModelPropertyDataTypes.Boolean:\n return 'boolean';\n case ModelPropertyDataTypes.Date:\n return 'string';\n case ModelPropertyDataTypes.List:\n return 'string[]';\n case ModelPropertyDataTypes.Relation:\n return 'string';\n case ModelPropertyDataTypes.Image:\n return 'string';\n case ModelPropertyDataTypes.File:\n return 'string';\n default:\n return 'any';\n }\n};\n\n\nexport const generateModelCode = async (values: Record<string, any>): Promise<string> => {\n const { modelName, properties } = values;\n const pathResolver = BasePathResolver.getInstance()\n const { templatePath } = pathResolver.getAppPaths()\n\n if (modelName === ModelPropertyDataTypes.Text || modelName === 'TestModel') {\n logger(`Model name is ${modelName}.`)\n }\n\n const nunjucks = await import('nunjucks')\n const njkEnv = new nunjucks.Environment(new nunjucks.FileSystemLoader(templatePath))\n njkEnv.addFilter('seedTypeToJsType', seedTypeToJsType)\n return njkEnv.render('model.njk', { modelName, properties })\n};\n","import { enableMapSet } from 'immer'\n\n// Core schema exports\nexport {\n Model,\n Property,\n Image,\n List,\n Text,\n Json,\n Relation,\n Boolean,\n Number,\n Date,\n} from '../Schema'\n\n// Core classes\nexport { Item } from '../Item/Item'\nexport { ItemProperty } from '../ItemProperty/ItemProperty'\n\n// Node.js specific exports\nexport { FileManager } from './helpers/FileManager'\nexport { Db } from './db/Db'\n\n// Schema exports\nexport { models, versions, seeds, metadata, appState, config, modelUids } from '../seedSchema'\n\n// Model access - use Model static methods instead\n// Models are accessible via Model.all(), Model.getById(), Model.getByName(), etc.\n\n// Helper exports\nexport { getCorrectId } from '../helpers'\n\n// Import exports\nexport * from '../imports'\n\n// Event bus\nexport { eventEmitter } from '../eventBus'\n\n// Webpack helper\nexport { withSeed } from './webpack'\n\n// Types\n// Note: PublishUpload type is available from '../db/read/getPublishUploads'\n// Type-only exports cause issues with Rollup's parser. Import directly if needed:\n// import type { PublishUpload } from '@seedprotocol/sdk/db/read/getPublishUploads'\n\n// Client\nexport { client } from '../client'\n\n// All types\nexport * from '../types'\n\n// CLI exports\nexport { PathResolver } from './helpers/PathResolver'\nexport { BasePathResolver } from '../helpers/PathResolver/BasePathResolver'\nexport { getTsImport } from './helpers'\nexport { commandExists, runSeedInit, findSeedBinary } from './helpers/scripts'\nexport { INIT_SCRIPT_SUCCESS_MESSAGE, SCHEMA_TS } from '../helpers/constants'\n// Codegen functions exported for CLI usage (Node.js only, so bundling concerns don't apply)\nexport { createDrizzleSchemaFilesFromConfig, generateModelCode } from './codegen/drizzle'\n\n// Side effect imports for CLI\nimport './helpers/EasClient'\nimport './helpers/QueryClient'\nimport './helpers/FileManager'\nimport './helpers/ArweaveClient'\nimport './helpers/PathResolver'\n\nenableMapSet() "],"names":["logger","fs","__filename"],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import { i as getOwnedAddressesFromDb, j as BaseDb, s as seeds } from './index-zsq08F5p.js';
2
+ import { eq, or } from 'drizzle-orm';
3
+ import 'xstate';
4
+ import 'drizzle-orm/sqlite-core';
5
+ import 'nanoid';
6
+ import 'nanoid-dictionary';
7
+ import 'debug';
8
+ import 'pluralize';
9
+ import 'ethers';
10
+ import 'rxjs';
11
+ import 'lodash-es';
12
+ import 'drizzle-orm/casing';
13
+ import 'eventemitter3';
14
+ import 'arweave';
15
+ import '@sinclair/typebox';
16
+
17
+ const READ_ONLY_ERROR = 'Item is read-only: you do not own this item';
18
+ async function getSeedRowForItem(item) {
19
+ const appDb = BaseDb.getAppDb();
20
+ if (!appDb)
21
+ return null;
22
+ const conditions = [];
23
+ if (item.seedLocalId)
24
+ conditions.push(eq(seeds.localId, item.seedLocalId));
25
+ if (item.seedUid)
26
+ conditions.push(eq(seeds.uid, item.seedUid));
27
+ if (conditions.length === 0)
28
+ return null;
29
+ const seedRows = await appDb
30
+ .select({
31
+ publisher: seeds.publisher,
32
+ attestationRaw: seeds.attestationRaw,
33
+ uid: seeds.uid,
34
+ })
35
+ .from(seeds)
36
+ .where(conditions.length === 1 ? conditions[0] : or(...conditions))
37
+ .limit(1);
38
+ if (!seedRows || seedRows.length === 0)
39
+ return null;
40
+ return seedRows[0];
41
+ }
42
+ function getPublisherFromRow(row) {
43
+ if (row.publisher)
44
+ return row.publisher;
45
+ if (row.attestationRaw) {
46
+ try {
47
+ const parsed = JSON.parse(row.attestationRaw);
48
+ return parsed.attester ?? null;
49
+ }
50
+ catch {
51
+ return null;
52
+ }
53
+ }
54
+ return null;
55
+ }
56
+ /**
57
+ * Checks if the current user owns the item (publisher is in owned addresses).
58
+ * Locally created items (no publisher, no attestationRaw) are considered owned.
59
+ */
60
+ async function isItemOwned(item) {
61
+ const row = await getSeedRowForItem(item);
62
+ if (!row)
63
+ return false;
64
+ const publisher = getPublisherFromRow(row);
65
+ if (!publisher) {
66
+ if (!row.uid && !row.attestationRaw) {
67
+ return true;
68
+ }
69
+ return false;
70
+ }
71
+ const ownedAddresses = await getOwnedAddressesFromDb();
72
+ return ownedAddresses.includes(publisher);
73
+ }
74
+ /**
75
+ * Throws if the item is not owned. Use before write operations (publish, save, destroy).
76
+ */
77
+ async function assertItemOwned(item) {
78
+ const owned = await isItemOwned(item);
79
+ if (!owned) {
80
+ throw new Error(READ_ONLY_ERROR);
81
+ }
82
+ }
83
+
84
+ export { assertItemOwned, isItemOwned };
85
+ //# sourceMappingURL=ownership-CSsweVap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ownership-CSsweVap.js","sources":["../src/helpers/ownership.ts"],"sourcesContent":["import type { IItem } from '@/interfaces/IItem'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { seeds } from '@/seedSchema'\nimport { eq, or } from 'drizzle-orm'\nimport { getOwnedAddressesFromDb } from '@/helpers/db'\n\nconst READ_ONLY_ERROR = 'Item is read-only: you do not own this item'\n\ntype ItemLike = { seedLocalId?: string; seedUid?: string }\n\ntype SeedRow = { publisher: string | null; attestationRaw: string | null; uid: string | null }\n\nasync function getSeedRowForItem(item: ItemLike): Promise<SeedRow | null> {\n const appDb = BaseDb.getAppDb()\n if (!appDb) return null\n\n const conditions = []\n if (item.seedLocalId) conditions.push(eq(seeds.localId, item.seedLocalId))\n if (item.seedUid) conditions.push(eq(seeds.uid, item.seedUid))\n if (conditions.length === 0) return null\n\n const seedRows = await appDb\n .select({\n publisher: seeds.publisher,\n attestationRaw: seeds.attestationRaw,\n uid: seeds.uid,\n })\n .from(seeds)\n .where(conditions.length === 1 ? conditions[0] : (or(...conditions) as any))\n .limit(1)\n\n if (!seedRows || seedRows.length === 0) return null\n return seedRows[0]\n}\n\nfunction getPublisherFromRow(row: SeedRow): string | null {\n if (row.publisher) return row.publisher\n if (row.attestationRaw) {\n try {\n const parsed = JSON.parse(row.attestationRaw) as { attester?: string }\n return parsed.attester ?? null\n } catch {\n return null\n }\n }\n return null\n}\n\n/**\n * Checks if the current user owns the item (publisher is in owned addresses).\n * Locally created items (no publisher, no attestationRaw) are considered owned.\n */\nexport async function isItemOwned(item: ItemLike | IItem<any>): Promise<boolean> {\n const row = await getSeedRowForItem(item)\n if (!row) return false\n\n const publisher = getPublisherFromRow(row)\n if (!publisher) {\n if (!row.uid && !row.attestationRaw) {\n return true\n }\n return false\n }\n\n const ownedAddresses = await getOwnedAddressesFromDb()\n return ownedAddresses.includes(publisher)\n}\n\n/**\n * Throws if the item is not owned. Use before write operations (publish, save, destroy).\n */\nexport async function assertItemOwned(item: ItemLike | IItem<any>): Promise<void> {\n const owned = await isItemOwned(item)\n if (!owned) {\n throw new Error(READ_ONLY_ERROR)\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAMA,MAAM,eAAe,GAAG,6CAA6C;AAMrE,eAAe,iBAAiB,CAAC,IAAc,EAAA;AAC7C,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;AAC/B,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,IAAI;IAEvB,MAAM,UAAU,GAAG,EAAE;IACrB,IAAI,IAAI,CAAC,WAAW;AAAE,QAAA,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1E,IAAI,IAAI,CAAC,OAAO;AAAE,QAAA,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9D,IAAA,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI;IAExC,MAAM,QAAQ,GAAG,MAAM;AACpB,SAAA,MAAM,CAAC;QACN,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,GAAG,EAAE,KAAK,CAAC,GAAG;KACf;SACA,IAAI,CAAC,KAAK;SACV,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAI,EAAE,CAAC,GAAG,UAAU,CAAS;SAC1E,KAAK,CAAC,CAAC,CAAC;AAEX,IAAA,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI;AACnD,IAAA,OAAO,QAAQ,CAAC,CAAC,CAAC;AACpB;AAEA,SAAS,mBAAmB,CAAC,GAAY,EAAA;IACvC,IAAI,GAAG,CAAC,SAAS;QAAE,OAAO,GAAG,CAAC,SAAS;AACvC,IAAA,IAAI,GAAG,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAA0B;AACtE,YAAA,OAAO,MAAM,CAAC,QAAQ,IAAI,IAAI;QAChC;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,IAAI;QACb;IACF;AACA,IAAA,OAAO,IAAI;AACb;AAEA;;;AAGG;AACI,eAAe,WAAW,CAAC,IAA2B,EAAA;AAC3D,IAAA,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC;AACzC,IAAA,IAAI,CAAC,GAAG;AAAE,QAAA,OAAO,KAAK;AAEtB,IAAA,MAAM,SAAS,GAAG,mBAAmB,CAAC,GAAG,CAAC;IAC1C,IAAI,CAAC,SAAS,EAAE;QACd,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE;AACnC,YAAA,OAAO,IAAI;QACb;AACA,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,MAAM,cAAc,GAAG,MAAM,uBAAuB,EAAE;AACtD,IAAA,OAAO,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC3C;AAEA;;AAEG;AACI,eAAe,eAAe,CAAC,IAA2B,EAAA;AAC/D,IAAA,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC;IACrC,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC;IAClC;AACF;;;;"}
@@ -1,5 +1,5 @@
1
1
  import pluralize from 'pluralize';
2
- import { o as modelPropertiesToObject, p as BaseDb, q as models, r as properties } from './index-Dk73a7JE.js';
2
+ import { q as modelPropertiesToObject, j as BaseDb, r as models, u as properties } from './index-zsq08F5p.js';
3
3
  import { eq, and } from 'drizzle-orm';
4
4
 
5
5
  // Dynamic import to break circular dependency: Model -> ... -> helpers/property -> Model
@@ -38,11 +38,11 @@ import { eq, and } from 'drizzle-orm';
38
38
  */
39
39
  const getPropertySchema = async (modelName, propertyName) => {
40
40
  // Dynamic import to break circular dependency
41
- const _mod_0 = await import('./index-Dk73a7JE.js');
42
- const _ns_0 = _mod_0.aW;
41
+ const _mod_0 = await import('./index-zsq08F5p.js');
42
+ const _ns_0 = _mod_0.aX;
43
43
  const modelMod = _ns_0;
44
44
  const { Model } = modelMod;
45
- const _mod_1 = await import('./Schema-BZKBy5Tx.js');
45
+ const _mod_1 = await import('./Schema-SbwqmoMM.js');
46
46
  const _ns_1 = _mod_1.b;
47
47
  const schemaMod = _ns_1;
48
48
  const { Schema } = schemaMod;
@@ -279,4 +279,4 @@ const getPropertySchema = async (modelName, propertyName) => {
279
279
  };
280
280
 
281
281
  export { getPropertySchema as g };
282
- //# sourceMappingURL=property-1o2MvYTm.js.map
282
+ //# sourceMappingURL=property-Cqh_o0zx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"property-Cqh_o0zx.js","sources":["../src/helpers/property.ts"],"sourcesContent":["import { Static } from '@sinclair/typebox'\nimport { TProperty } from '@/Schema'\n// Dynamic import to break circular dependency: Model -> ... -> helpers/property -> Model\n// import { Model } from '@/Model/Model'\nimport pluralize from 'pluralize'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { models as modelsTable, properties, PropertyType } from '@/seedSchema'\nimport { eq, and } from 'drizzle-orm'\nimport { modelPropertiesToObject } from '@/helpers/model'\n\n// Re-export everything from property/index.ts to make it available when importing from helpers/property\nexport * from './property/index'\n\n/**\n * Gets the propertyRecordSchema object for a given model and property name.\n * \n * The propertyRecordSchema is the property definition object that contains\n * information about the property's data type, storage configuration, and\n * relationship details (for Relation and List types).\n * \n * This function first checks the database for property definitions (which may\n * have been edited), then falls back to schema files. This ensures that\n * edited properties persist across page reloads.\n * \n * This function handles property names that end with 'Id' or 'Ids' by automatically\n * looking up the base property name in the schema (e.g., 'authorId' -> 'author',\n * 'tagIds' -> 'tags').\n * \n * @param modelName - The name of the model (e.g., 'Article', 'Author')\n * @param propertyName - The name of the property (e.g., 'title', 'author', 'authorId', 'tags', 'tagIds')\n * @returns The propertyRecordSchema object (TProperty with optional _propertyFileId) or undefined if not found\n * \n * @example\n * ```typescript\n * const schema = await getPropertySchema('Article', 'title')\n * // Returns: { dataType: 'Text', ... }\n * \n * const relationSchema = await getPropertySchema('Article', 'author')\n * // Returns: { dataType: 'Relation', ref: 'Author', ... }\n * \n * // Also works with Id/Ids suffixes\n * const relationSchemaById = await getPropertySchema('Article', 'authorId')\n * // Returns: { dataType: 'Relation', ref: 'Author', ... }\n * ```\n */\nexport const getPropertySchema = async (\n modelName: string,\n propertyName: string,\n): Promise<(Static<typeof TProperty> & { _propertyFileId?: string }) | undefined> => {\n // Dynamic import to break circular dependency\n const modelMod = await import('../Model/Model')\n const { Model } = modelMod\n const schemaMod = await import('../Schema/Schema')\n const { Schema } = schemaMod\n const model = await Model.getByNameAsync(modelName)\n\n console.log('getPropertySchema model', model)\n if (!model) {\n return undefined\n }\n \n // Get the original schema from Schema instance context (has ref fields from schema file)\n // This is more reliable than modelPropertiesToObject which depends on ModelProperty instances\n let schema: { [propertyName: string]: any } = {}\n try {\n const schemaName = model.schemaName\n if (schemaName) {\n const schemaInstance = Schema.create(schemaName, {\n waitForReady: false,\n }) as import('@/Schema/Schema').Schema\n const schemaContext = schemaInstance.getService().getSnapshot().context\n console.log('getPropertySchema schemaContext.models keys:', schemaContext.models ? Object.keys(schemaContext.models) : 'no models')\n if (schemaContext.models && schemaContext.models[modelName]) {\n // Get properties from Schema context (original schema file data)\n const modelDef = schemaContext.models[modelName]\n console.log('getPropertySchema modelDef for', modelName, ':', JSON.stringify(modelDef, null, 2))\n schema = modelDef.properties || {}\n console.log('getPropertySchema schema from Schema context', JSON.stringify(schema, null, 2))\n } else {\n console.log('getPropertySchema: model', modelName, 'not found in schemaContext.models')\n }\n }\n } catch (error) {\n console.log('getPropertySchema: Error getting schema from Schema instance, falling back to modelPropertiesToObject:', error)\n }\n \n // Fallback to modelPropertiesToObject if Schema context doesn't have the data\n if (Object.keys(schema).length === 0) {\n const properties = model.properties || []\n console.log('getPropertySchema properties', properties)\n if (properties.length === 0) {\n return undefined\n }\n schema = modelPropertiesToObject(properties)\n console.log('getPropertySchema schema from modelPropertiesToObject', schema)\n }\n \n // Helper to resolve property name (handles Id/Ids suffixes)\n const resolvePropertyName = (propName: string): string | undefined => {\n // First, try direct lookup\n if (schema[propName]) {\n return propName\n }\n \n // Handle properties ending with 'Id' or 'Ids'\n let propertyNameWithoutId: string | undefined\n \n if (propName.endsWith('Id')) {\n propertyNameWithoutId = propName.slice(0, -2)\n } else if (propName.endsWith('Ids')) {\n propertyNameWithoutId = propName.slice(0, -3)\n propertyNameWithoutId = pluralize(propertyNameWithoutId)\n }\n \n if (propertyNameWithoutId && schema[propertyNameWithoutId]) {\n return propertyNameWithoutId\n }\n \n return undefined\n }\n \n const resolvedPropertyName = resolvePropertyName(propertyName)\n console.log('resolvedPropertyName', resolvedPropertyName)\n if (!resolvedPropertyName) {\n return undefined\n }\n \n // Try to get property from database first (may have edited values)\n try {\n const db = BaseDb.getAppDb()\n if (db) {\n // Find the model in the database\n const modelRecords = await db\n .select()\n .from(modelsTable)\n .where(eq(modelsTable.name, modelName))\n .limit(1)\n \n if (modelRecords.length > 0) {\n const modelRecord = modelRecords[0]\n \n // Find the property in the database by name\n let propertyRecords = await db\n .select()\n .from(properties)\n .where(\n and(\n eq(properties.name, resolvedPropertyName),\n eq(properties.modelId, modelRecord.id!),\n ),\n )\n .limit(1)\n \n // If not found by name, check for renamed properties (orphaned DB properties)\n if (propertyRecords.length === 0) {\n // Get all properties for this model\n const allDbProperties = await db\n .select()\n .from(properties)\n .where(eq(properties.modelId, modelRecord.id!))\n \n // Get all schema property names to identify orphaned properties\n const schemaPropertyNames = new Set(Object.keys(schema))\n \n // Get the schema property definition to match characteristics\n const schemaPropertyDef = schema[resolvedPropertyName]\n \n if (schemaPropertyDef) {\n // Find orphaned properties (don't match any schema property name) that match characteristics\n const orphanedProperties = allDbProperties.filter((p: PropertyType) => \n !schemaPropertyNames.has(p.name) && // Doesn't match any schema property name\n p.dataType === schemaPropertyDef.dataType // Same dataType\n )\n \n // If there's exactly one orphaned property with matching characteristics, it's likely the renamed property\n // We can also match by refModelId if it's a relation\n if (orphanedProperties.length > 0) {\n let matchedProperty = orphanedProperties[0]\n \n // If it's a relation, try to match by refModelId\n if (schemaPropertyDef.ref) {\n const refModelRecords = await db\n .select()\n .from(modelsTable)\n .where(eq(modelsTable.name, schemaPropertyDef.ref))\n .limit(1)\n \n if (refModelRecords.length > 0) {\n const expectedRefModelId = refModelRecords[0].id\n const matchingByRef = orphanedProperties.find((p: PropertyType) => p.refModelId === expectedRefModelId)\n if (matchingByRef) {\n matchedProperty = matchingByRef\n }\n }\n } else {\n // For non-relation properties, prefer ones without refModelId\n const withoutRef = orphanedProperties.find((p: PropertyType) => p.refModelId === null)\n if (withoutRef) {\n matchedProperty = withoutRef\n }\n }\n \n propertyRecords = [matchedProperty]\n }\n }\n }\n \n if (propertyRecords.length > 0) {\n const propertyRecord = propertyRecords[0]\n \n // Get the base schema from file to merge with database values\n // Use the schema object created earlier, not model.schema (which doesn't exist)\n const schemaFromFile = schema[resolvedPropertyName]\n \n // Build property schema from database, merging with file schema for fields not in DB\n // Use the schema property name (resolvedPropertyName) even if DB has different name (renamed)\n const propertySchema: Static<typeof TProperty> & { _propertyFileId?: string; _dbId?: number } = {\n ...schemaFromFile, // Start with file schema (has all fields like storageType, etc.)\n id: propertyRecord.schemaFileId || propertyRecord.id?.toString(), // id should be schemaFileId (string), not database ID\n _dbId: propertyRecord.id, // Store database integer ID separately\n name: resolvedPropertyName, // Use schema name, not DB name (for renamed properties)\n dataType: propertyRecord.dataType as any,\n modelId: propertyRecord.modelId,\n modelName,\n refModelId: propertyRecord.refModelId || undefined,\n refValueType: (propertyRecord.refValueType as any) || undefined,\n // Include schemaFileId from database as _propertyFileId for ModelProperty.create()\n _propertyFileId: propertyRecord.schemaFileId || undefined,\n }\n \n // If refModelId is set, try to get the refModelName\n if (propertyRecord.refModelId) {\n const refModelRecords = await db\n .select()\n .from(modelsTable)\n .where(eq(modelsTable.id, propertyRecord.refModelId))\n .limit(1)\n \n if (refModelRecords.length > 0) {\n propertySchema.refModelName = refModelRecords[0].name\n propertySchema.ref = refModelRecords[0].name\n }\n } else if (schemaFromFile?.ref) {\n // If refModelId is not set but schema file has ref, resolve it from the database\n // This handles cases where the property was just created and refModelId hasn't been set yet\n propertySchema.ref = schemaFromFile.ref\n propertySchema.refModelName = schemaFromFile.ref\n \n // Try to resolve refModelId from the database using the model name\n try {\n const refModelRecords = await db\n .select()\n .from(modelsTable)\n .where(eq(modelsTable.name, schemaFromFile.ref))\n .limit(1)\n \n if (refModelRecords.length > 0 && refModelRecords[0].id) {\n propertySchema.refModelId = refModelRecords[0].id\n }\n } catch (error) {\n // Ignore errors - model might not exist yet\n }\n }\n \n console.log(`[getPropertySchema] Returning propertySchema for ${modelName}:${resolvedPropertyName}:`, {\n ref: propertySchema.ref,\n refModelName: propertySchema.refModelName,\n refModelId: propertySchema.refModelId,\n dataType: propertySchema.dataType,\n schemaFromFileRef: schemaFromFile?.ref,\n propertyRecordRefModelId: propertyRecord.refModelId\n })\n \n return propertySchema\n }\n }\n }\n } catch (error) {\n // Database not available or error - fall through to schema file lookup\n }\n \n // Fall back to schema file lookup\n const schemaFromFile = schema[resolvedPropertyName]\n if (schemaFromFile) {\n const propertySchema: Static<typeof TProperty> & { _propertyFileId?: string } = { ...schemaFromFile, name: resolvedPropertyName }\n \n // If schema file has id as a string (propertyFileId), set it as _propertyFileId\n // This handles cases where the property hasn't been saved to the database yet\n if (typeof schemaFromFile.id === 'string') {\n propertySchema._propertyFileId = schemaFromFile.id\n }\n \n // If the schema file has ref but no refModelId, try to resolve it from the database\n if (schemaFromFile.ref && !propertySchema.refModelId) {\n try {\n const db = BaseDb.getAppDb()\n if (db) {\n const refModelRecords = await db\n .select()\n .from(modelsTable)\n .where(eq(modelsTable.name, schemaFromFile.ref))\n .limit(1)\n \n if (refModelRecords.length > 0 && refModelRecords[0].id) {\n propertySchema.refModelId = refModelRecords[0].id\n propertySchema.refModelName = schemaFromFile.ref\n }\n }\n } catch (error) {\n // Ignore errors - model might not exist yet or database not available\n }\n }\n \n return propertySchema\n }\n return undefined\n}\n"],"names":["modelsTable"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { _ as graphql } from './index-Dk73a7JE.js';
1
+ import { $ as graphql } from './index-zsq08F5p.js';
2
2
 
3
3
  const GET_TRANSACTION_TAGS = graphql(/* GraphQL */ `
4
4
  query GetTransactionTags($transactionId: ID!) {
@@ -13,4 +13,4 @@ const GET_TRANSACTION_TAGS = graphql(/* GraphQL */ `
13
13
  `);
14
14
 
15
15
  export { GET_TRANSACTION_TAGS as G };
16
- //# sourceMappingURL=queries-DA4G0iEN.js.map
16
+ //# sourceMappingURL=queries-DSBgjcJJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries-DSBgjcJJ.js","sources":["../src/helpers/ArweaveClient/queries.ts"],"sourcesContent":["import { graphql } from '@/graphql/gql'\nimport { TypedDocumentNode } from '@graphql-typed-document-node/core'\nimport { GetTransactionTagsQuery } from '@/graphql/gql/graphql'\n\nexport const GET_TRANSACTION_TAGS = graphql(/* GraphQL */ `\n query GetTransactionTags($transactionId: ID!) {\n tags: transaction(id: $transactionId) {\n id\n tags {\n name\n value\n }\n }\n }\n`) as unknown as TypedDocumentNode<{ tags: { id: string; tags: { name: string; value: string }[] } | null }, { transactionId: string }>\n"],"names":[],"mappings":";;AAIO,MAAM,oBAAoB,GAAG,OAAO,eAAe;;;;;;;;;;AAUzD,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import { InferSelectModel } from "drizzle-orm";
1
+ import { InferSelectModel } from 'drizzle-orm';
2
2
  export declare const modelSchemas: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
3
3
  name: "model_schemas";
4
4
  schema: undefined;
@@ -1,7 +1,7 @@
1
- import { integer, sqliteTable } from "drizzle-orm/sqlite-core";
2
- import { InferSelectModel } from "drizzle-orm";
3
- import { schemas } from "./SchemaSchema.js";
4
- import { models } from "./ModelSchema.js";
1
+ import { integer, sqliteTable } from 'drizzle-orm/sqlite-core';
2
+ import { InferSelectModel } from 'drizzle-orm';
3
+ import { schemas } from './SchemaSchema';
4
+ import { models } from './ModelSchema';
5
5
 
6
6
  export const modelSchemas = sqliteTable('model_schemas', {
7
7
  id: integer('id').primaryKey({ autoIncrement: true }),
@@ -1,6 +1,6 @@
1
1
  import { int, sqliteTable, text } from 'drizzle-orm/sqlite-core'
2
2
  import { relations } from 'drizzle-orm'
3
- import { models } from './ModelSchema.js'
3
+ import { models } from './ModelSchema'
4
4
 
5
5
  export const modelUids = sqliteTable('model_uids', {
6
6
  id: int('id').primaryKey({ autoIncrement: true }),
@@ -1,6 +1,6 @@
1
1
  import { int, sqliteTable, text } from 'drizzle-orm/sqlite-core'
2
2
  import { relations } from 'drizzle-orm'
3
- import { models, properties } from './ModelSchema.js'
3
+ import { models, properties } from './ModelSchema'
4
4
 
5
5
  export const propertyUids = sqliteTable('property_uids', {
6
6
  id: int('id').primaryKey({ autoIncrement: true }),
@@ -79,6 +79,25 @@ export declare const seeds: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
79
79
  }, {}, {
80
80
  length: number | undefined;
81
81
  }>;
82
+ publisher: import("drizzle-orm/sqlite-core").SQLiteColumn<{
83
+ name: "publisher";
84
+ tableName: "seeds";
85
+ dataType: "string";
86
+ columnType: "SQLiteText";
87
+ data: string;
88
+ driverParam: string;
89
+ notNull: false;
90
+ hasDefault: false;
91
+ isPrimaryKey: false;
92
+ isAutoincrement: false;
93
+ hasRuntimeDefault: false;
94
+ enumValues: [string, ...string[]];
95
+ baseColumn: never;
96
+ identity: undefined;
97
+ generated: undefined;
98
+ }, {}, {
99
+ length: number | undefined;
100
+ }>;
82
101
  attestationRaw: import("drizzle-orm/sqlite-core").SQLiteColumn<{
83
102
  name: "attestation_raw";
84
103
  tableName: "seeds";
@@ -1 +1 @@
1
- {"version":3,"file":"SeedSchema.d.ts","sourceRoot":"","sources":["../../src/seedSchema/SeedSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAG9C,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBjB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,KAAK,CAAC,CAAA"}
1
+ {"version":3,"file":"SeedSchema.d.ts","sourceRoot":"","sources":["../../src/seedSchema/SeedSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAG9C,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBjB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,KAAK,CAAC,CAAA"}
@@ -8,6 +8,7 @@ export const seeds = sqliteTable(
8
8
  uid: text('uid'),
9
9
  schemaUid: text('schema_uid'),
10
10
  type: text('type'),
11
+ publisher: text('publisher'),
11
12
  attestationRaw: text('attestation_raw'),
12
13
  attestationCreatedAt: int('attestation_created_at'),
13
14
  createdAt: int('created_at'),
@@ -1,11 +1,11 @@
1
- export * from './SeedSchema.js';
2
- export * from './VersionSchema.js';
3
- export * from './MetadataSchema.js';
4
- export * from './AppStateSchema.js';
5
- export * from './ModelSchema.js';
6
- export * from './ModelUidSchema.js';
7
- export * from './PropertyUidSchema.js';
8
- export * from './ConfigSchema.js';
9
- export * from './SchemaSchema.js';
10
- export * from './ModelSchemaSchema.js';
1
+ export * from './SeedSchema';
2
+ export * from './VersionSchema';
3
+ export * from './MetadataSchema';
4
+ export * from './AppStateSchema';
5
+ export * from './ModelSchema';
6
+ export * from './ModelUidSchema';
7
+ export * from './PropertyUidSchema';
8
+ export * from './ConfigSchema';
9
+ export * from './SchemaSchema';
10
+ export * from './ModelSchemaSchema';
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/seedSchema/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/seedSchema/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA"}
@@ -1,10 +1,10 @@
1
- export * from './SeedSchema.js'
2
- export * from './VersionSchema.js'
3
- export * from './MetadataSchema.js'
4
- export * from './AppStateSchema.js'
5
- export * from './ModelSchema.js'
6
- export * from './ModelUidSchema.js'
7
- export * from './PropertyUidSchema.js'
8
- export * from './ConfigSchema.js'
9
- export * from './SchemaSchema.js'
10
- export * from './ModelSchemaSchema.js'
1
+ export * from './SeedSchema'
2
+ export * from './VersionSchema'
3
+ export * from './MetadataSchema'
4
+ export * from './AppStateSchema'
5
+ export * from './ModelSchema'
6
+ export * from './ModelUidSchema'
7
+ export * from './PropertyUidSchema'
8
+ export * from './ConfigSchema'
9
+ export * from './SchemaSchema'
10
+ export * from './ModelSchemaSchema'
@@ -38,9 +38,19 @@ export interface SeedConfig {
38
38
  filesDir?: string;
39
39
  dbConfig?: DbConfig;
40
40
  }
41
+ /**
42
+ * Address configuration for owned vs watched wallets.
43
+ * - owned: addresses the user controls (create, edit, publish)
44
+ * - watched: addresses to browse (read-only, sync from EAS)
45
+ * Legacy: string[] is treated as owned only.
46
+ */
47
+ export type AddressConfiguration = {
48
+ owned: string[];
49
+ watched?: string[];
50
+ } | string[];
41
51
  export interface SeedConstructorOptions {
42
52
  config: SeedConfig;
43
- readonly addresses?: string[];
53
+ readonly addresses?: AddressConfiguration;
44
54
  }
45
55
  /**
46
56
  * Options for Entity.create() when default behavior is to wait until idle.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAE1C,cAAc,MAAM,CAAA;AACpB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AAEzB,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,OAAO,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,GAAG,CAAA;IACX,cAAc,EAAE;QACd,KAAK,EAAE,GAAG,CAAA;KACX,CAAA;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,GAAG,CAAA;IACZ,WAAW,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;CAChC;AAGD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,cAAc,CAAA;AAG7D,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,UAAU,CAAA;IAClB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAE1C,cAAc,MAAM,CAAA;AACpB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AAEzB,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,OAAO,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,GAAG,CAAA;IACX,cAAc,EAAE;QACd,KAAK,EAAE,GAAG,CAAA;KACX,CAAA;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,GAAG,CAAA;IACZ,WAAW,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;CAChC;AAGD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,cAAc,CAAA;AAG7D,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACvC,MAAM,EAAE,CAAA;AAEZ,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,UAAU,CAAA;IAClB,QAAQ,CAAC,SAAS,CAAC,EAAE,oBAAoB,CAAA;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA"}
@@ -53,6 +53,7 @@ export interface ItemData {
53
53
  seedLocalId?: string;
54
54
  seedUid?: string;
55
55
  modelName?: string;
56
+ schemaName?: string;
56
57
  schemaUid?: string;
57
58
  attestationCreatedAt?: number & tags.Type<"int64">;
58
59
  latestVersionUid?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../src/types/item.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../src/types/item.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,8 @@ export type ClientManagerContext = {
36
36
  isSaving: boolean;
37
37
  endpoints?: Endpoints;
38
38
  addresses?: string[];
39
+ ownedAddresses?: string[];
40
+ watchedAddresses?: string[];
39
41
  models?: {
40
42
  [key: string]: Model;
41
43
  };