@seedprotocol/sdk 0.4.22 → 0.4.24

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 (104) hide show
  1. package/dist/{ArweaveClient-B-vm2Xae.js → ArweaveClient-DoBABTLW.js} +3 -4
  2. package/dist/{ArweaveClient-B-vm2Xae.js.map → ArweaveClient-DoBABTLW.js.map} +1 -1
  3. package/dist/{ArweaveClient-C-eLH0zU.js → ArweaveClient-KF_T3NSr.js} +3 -4
  4. package/dist/{ArweaveClient-C-eLH0zU.js.map → ArweaveClient-KF_T3NSr.js.map} +1 -1
  5. package/dist/{Db-nir1xVHg.js → Db-Cg7Q5gIc.js} +4 -5
  6. package/dist/{Db-nir1xVHg.js.map → Db-Cg7Q5gIc.js.map} +1 -1
  7. package/dist/{Db-B7whB3oJ.js → Db-DA_e7Jcc.js} +4 -5
  8. package/dist/{Db-B7whB3oJ.js.map → Db-DA_e7Jcc.js.map} +1 -1
  9. package/dist/{EasClient-BH_feMaX.js → EasClient-B4VivHxM.js} +2 -3
  10. package/dist/{EasClient-BH_feMaX.js.map → EasClient-B4VivHxM.js.map} +1 -1
  11. package/dist/{EasClient-CFguAKBp.js → EasClient-CVPHYGNP.js} +2 -3
  12. package/dist/{EasClient-CFguAKBp.js.map → EasClient-CVPHYGNP.js.map} +1 -1
  13. package/dist/{FileManager-C2uXql_C.js → FileManager-BOxbzROS.js} +2 -3
  14. package/dist/{FileManager-C2uXql_C.js.map → FileManager-BOxbzROS.js.map} +1 -1
  15. package/dist/{FileManager-BR3jtuSl.js → FileManager-Ba5BCbCL.js} +2 -3
  16. package/dist/{FileManager-BR3jtuSl.js.map → FileManager-Ba5BCbCL.js.map} +1 -1
  17. package/dist/{ModelProperty-CIeLasI4.js → ModelProperty-D6JLRqQW.js} +17 -18
  18. package/dist/ModelProperty-D6JLRqQW.js.map +1 -0
  19. package/dist/{PathResolver-CZoSnHBU.js → PathResolver-D7WqjJCo.js} +2 -3
  20. package/dist/{PathResolver-CZoSnHBU.js.map → PathResolver-D7WqjJCo.js.map} +1 -1
  21. package/dist/{PathResolver-DnrG1hUX.js → PathResolver-DHTAlCzo.js} +2 -3
  22. package/dist/{PathResolver-DnrG1hUX.js.map → PathResolver-DHTAlCzo.js.map} +1 -1
  23. package/dist/{QueryClient-PqOg8mcw.js → QueryClient-B12y2daD.js} +2 -3
  24. package/dist/{QueryClient-PqOg8mcw.js.map → QueryClient-B12y2daD.js.map} +1 -1
  25. package/dist/{QueryClient-DJOrJZRR.js → QueryClient-BCxuWg7f.js} +2 -3
  26. package/dist/{QueryClient-DJOrJZRR.js.map → QueryClient-BCxuWg7f.js.map} +1 -1
  27. package/dist/{Schema-B3YQHTtu.js → Schema-B5_B8nM5.js} +22 -22
  28. package/dist/{Schema-B3YQHTtu.js.map → Schema-B5_B8nM5.js.map} +1 -1
  29. package/dist/{SchemaValidationService-C4DIwn8Z.js → SchemaValidationService-DXYRdSYa.js} +2 -3
  30. package/dist/{SchemaValidationService-C4DIwn8Z.js.map → SchemaValidationService-DXYRdSYa.js.map} +1 -1
  31. package/dist/{backfillMetadataPropertyIds-CBlRaU_M.js → backfillMetadataPropertyIds-BWEhAJPS.js} +2 -3
  32. package/dist/{backfillMetadataPropertyIds-CBlRaU_M.js.map → backfillMetadataPropertyIds-BWEhAJPS.js.map} +1 -1
  33. package/dist/cjs/{ModelProperty-tfM38NL4.js → ModelProperty-Ov1_YL9l.js} +17 -18
  34. package/dist/cjs/{ModelProperty-tfM38NL4.js.map → ModelProperty-Ov1_YL9l.js.map} +1 -1
  35. package/dist/cjs/{Schema-44NqLqMV.js → Schema-CeG5iRX_.js} +20 -21
  36. package/dist/cjs/{Schema-44NqLqMV.js.map → Schema-CeG5iRX_.js.map} +1 -1
  37. package/dist/cjs/{SchemaValidationService-Cq_YBzFN.js → SchemaValidationService-C8mdrNnp.js} +2 -3
  38. package/dist/cjs/{SchemaValidationService-Cq_YBzFN.js.map → SchemaValidationService-C8mdrNnp.js.map} +1 -1
  39. package/dist/cjs/{backfillMetadataPropertyIds-D1nLJAhB.js → backfillMetadataPropertyIds-LDYghZxU.js} +2 -3
  40. package/dist/cjs/{backfillMetadataPropertyIds-D1nLJAhB.js.map → backfillMetadataPropertyIds-LDYghZxU.js.map} +1 -1
  41. package/dist/cjs/{getItem-BRoq91YU.js → getItem-CW3BFytl.js} +2 -3
  42. package/dist/cjs/{getItem-BRoq91YU.js.map → getItem-CW3BFytl.js.map} +1 -1
  43. package/dist/cjs/{getPublishPayload-ddl-1x6R.js → getPublishPayload-C0hWIYCX.js} +11 -12
  44. package/dist/cjs/{getPublishPayload-ddl-1x6R.js.map → getPublishPayload-C0hWIYCX.js.map} +1 -1
  45. package/dist/cjs/{getPublishUploads-BljRx4o4.js → getPublishUploads-CMpPR2JJ.js} +4 -5
  46. package/dist/cjs/{getPublishUploads-BljRx4o4.js.map → getPublishUploads-CMpPR2JJ.js.map} +1 -1
  47. package/dist/cjs/{getSegmentedItemProperties-iK5kepzl.js → getSegmentedItemProperties-B4ao_B1Q.js} +3 -3
  48. package/dist/cjs/{getSegmentedItemProperties-iK5kepzl.js.map → getSegmentedItemProperties-B4ao_B1Q.js.map} +1 -1
  49. package/dist/cjs/{index-DqSDhOp3.js → index-Dty7eE10.js} +3 -4
  50. package/dist/cjs/index-Dty7eE10.js.map +1 -0
  51. package/dist/cjs/{index-C6rrqy3z.js → index-Far6-WGM.js} +89 -40
  52. package/dist/cjs/index-Far6-WGM.js.map +1 -0
  53. package/dist/cjs/{ownership-CXlKAj4o.js → ownership-TCXiKRY_.js} +2 -3
  54. package/dist/cjs/{ownership-CXlKAj4o.js.map → ownership-TCXiKRY_.js.map} +1 -1
  55. package/dist/cjs/{property-2D7P6a2q.js → property-BT7i8Tl-.js} +4 -5
  56. package/dist/cjs/{property-2D7P6a2q.js.map → property-BT7i8Tl-.js.map} +1 -1
  57. package/dist/cjs/{syncDbWithEas-DcKL-_Pb.js → syncDbWithEas-DUi78csI.js} +5 -6
  58. package/dist/cjs/{syncDbWithEas-DcKL-_Pb.js.map → syncDbWithEas-DUi78csI.js.map} +1 -1
  59. package/dist/{getItem-CV3yTCRt.js → getItem-D5_bPYyC.js} +2 -3
  60. package/dist/{getItem-CV3yTCRt.js.map → getItem-D5_bPYyC.js.map} +1 -1
  61. package/dist/{getPublishPayload-Ddc_LGPs.js → getPublishPayload-DEdHgrgC.js} +11 -12
  62. package/dist/getPublishPayload-DEdHgrgC.js.map +1 -0
  63. package/dist/{getPublishUploads-Cf2J-5FR.js → getPublishUploads-CH72lAID.js} +4 -5
  64. package/dist/{getPublishUploads-Cf2J-5FR.js.map → getPublishUploads-CH72lAID.js.map} +1 -1
  65. package/dist/{getSegmentedItemProperties-B2mzArFD.js → getSegmentedItemProperties-Cp92QUHQ.js} +3 -3
  66. package/dist/{getSegmentedItemProperties-B2mzArFD.js.map → getSegmentedItemProperties-Cp92QUHQ.js.map} +1 -1
  67. package/dist/{index-DUMXLKJr.js → index-18lln0cM.js} +103 -54
  68. package/dist/{index-DUMXLKJr.js.map → index-18lln0cM.js.map} +1 -1
  69. package/dist/{index-BRo7D3s1.js → index-Bp0ChnQr.js} +2 -2
  70. package/dist/index-Bp0ChnQr.js.map +1 -0
  71. package/dist/{index-3Ekqb4QB.js → index-DB3nZ0lK.js} +3 -4
  72. package/dist/index-DB3nZ0lK.js.map +1 -0
  73. package/dist/main.cjs +1 -2
  74. package/dist/main.cjs.map +1 -1
  75. package/dist/main.js +13 -14
  76. package/dist/main.js.map +1 -1
  77. package/dist/node.js +10 -11
  78. package/dist/node.js.map +1 -1
  79. package/dist/{ownership-TR-mIjJh.js → ownership-D-KsIkxM.js} +2 -3
  80. package/dist/{ownership-TR-mIjJh.js.map → ownership-D-KsIkxM.js.map} +1 -1
  81. package/dist/{property-BSNWvgei.js → property-DViA9nga.js} +5 -6
  82. package/dist/property-DViA9nga.js.map +1 -0
  83. package/dist/{queries-0FZBThGQ.js → queries-ANFHy2e0.js} +2 -2
  84. package/dist/{queries-0FZBThGQ.js.map → queries-ANFHy2e0.js.map} +1 -1
  85. package/dist/src/eventBus.d.ts +13 -2
  86. package/dist/src/eventBus.d.ts.map +1 -1
  87. package/dist/src/vite/index.d.ts.map +1 -1
  88. package/dist/{syncDbWithEas-CaytdS8D.js → syncDbWithEas-m-_3Ds7d.js} +6 -7
  89. package/dist/syncDbWithEas-m-_3Ds7d.js.map +1 -0
  90. package/dist/{updateSeedRevokedAt-CfUXirik.js → updateSeedRevokedAt-BvAK-Rfh.js} +2 -2
  91. package/dist/{updateSeedRevokedAt-CfUXirik.js.map → updateSeedRevokedAt-BvAK-Rfh.js.map} +1 -1
  92. package/dist/vite.cjs +115 -26
  93. package/dist/vite.cjs.map +1 -1
  94. package/dist/vite.js +115 -26
  95. package/dist/vite.js.map +1 -1
  96. package/package.json +1 -1
  97. package/dist/ModelProperty-CIeLasI4.js.map +0 -1
  98. package/dist/cjs/index-C6rrqy3z.js.map +0 -1
  99. package/dist/cjs/index-DqSDhOp3.js.map +0 -1
  100. package/dist/getPublishPayload-Ddc_LGPs.js.map +0 -1
  101. package/dist/index-3Ekqb4QB.js.map +0 -1
  102. package/dist/index-BRo7D3s1.js.map +0 -1
  103. package/dist/property-BSNWvgei.js.map +0 -1
  104. package/dist/syncDbWithEas-CaytdS8D.js.map +0 -1
package/dist/vite.js CHANGED
@@ -1,13 +1,67 @@
1
+ import fs from 'node:fs';
1
2
  import { createRequire } from 'node:module';
3
+ import path from 'node:path';
2
4
  import { nodePolyfills } from 'vite-plugin-node-polyfills';
3
5
 
4
- createRequire(import.meta.url);
6
+ const _req = createRequire(import.meta.url);
5
7
  const DEFAULT_FS_MODULES = [
6
8
  'fs',
7
9
  'fs/promises',
8
10
  'node:fs',
9
11
  'node:fs/promises',
10
12
  ];
13
+ const ARWEAVE_SHIM_ID = 'seed-protocol:arweave-default-shim';
14
+ function resolvePackageFile(packageName, relativePath) {
15
+ const candidates = [];
16
+ try {
17
+ const pkgJson = _req.resolve(`${packageName}/package.json`);
18
+ candidates.push(path.join(path.dirname(pkgJson), relativePath));
19
+ }
20
+ catch {
21
+ // package may be hoisted/unavailable in this graph
22
+ }
23
+ const cwdNodeModules = path.join(process.cwd(), 'node_modules');
24
+ candidates.push(path.join(cwdNodeModules, packageName, relativePath));
25
+ const bunDir = path.join(cwdNodeModules, '.bun');
26
+ if (fs.existsSync(bunDir)) {
27
+ for (const entry of fs.readdirSync(bunDir)) {
28
+ if (!entry.startsWith(`${packageName}@`))
29
+ continue;
30
+ candidates.push(path.join(bunDir, entry, `node_modules/${packageName}`, relativePath));
31
+ }
32
+ }
33
+ for (const candidate of candidates) {
34
+ if (fs.existsSync(candidate))
35
+ return candidate;
36
+ }
37
+ return undefined;
38
+ }
39
+ function normalizeAliasEntries(alias) {
40
+ if (!alias)
41
+ return [];
42
+ if (Array.isArray(alias)) {
43
+ return alias
44
+ .filter((entry) => !!entry && !!entry.replacement)
45
+ .map((entry) => ({ find: entry.find, replacement: entry.replacement }));
46
+ }
47
+ return Object.entries(alias).map(([find, replacement]) => ({
48
+ find,
49
+ replacement: String(replacement),
50
+ }));
51
+ }
52
+ function mergeAliasEntries(existing, additions) {
53
+ const merged = [...existing];
54
+ const keyOf = (find) => typeof find === 'string' ? `s:${find}` : `r:${find.toString()}`;
55
+ const seen = new Set(merged.map((entry) => keyOf(entry.find)));
56
+ for (const entry of additions) {
57
+ const key = keyOf(entry.find);
58
+ if (seen.has(key))
59
+ continue;
60
+ seen.add(key);
61
+ merged.push(entry);
62
+ }
63
+ return merged;
64
+ }
11
65
  /**
12
66
  * Minimal Vite plugin to make the SDK work in browser/Electron renderer:
13
67
  * - Aliases fs → @zenfs/core (and promises variant)
@@ -35,22 +89,33 @@ function seedVitePlugin(options = {}) {
35
89
  name: 'seed-protocol:config',
36
90
  enforce: 'pre',
37
91
  config(userConfig) {
38
- const alias = {
39
- // Always use browser-friendly path implementation
40
- // path: 'path-browserify',
41
- };
92
+ const aliasEntries = [];
42
93
  for (const mod of fsModules) {
43
94
  const isPromises = mod.includes('promises');
44
95
  const target = isPromises ? '@zenfs/core/promises' : '@zenfs/core';
45
- alias[mod] = target;
96
+ aliasEntries.push({ find: mod, replacement: target });
46
97
  }
47
- // Merge with any existing aliases
48
- const existingAlias = userConfig.resolve?.alias;
49
- if (Array.isArray(existingAlias)) {
50
- for (const [key, value] of Object.entries(alias)) {
51
- existingAlias.push({ find: key, replacement: value });
52
- }
98
+ const eventEmitterEsm = resolvePackageFile('eventemitter3', 'dist/eventemitter3.esm.js');
99
+ if (eventEmitterEsm) {
100
+ aliasEntries.push({ find: 'eventemitter3', replacement: eventEmitterEsm }, { find: 'eventemitter3/index.mjs', replacement: eventEmitterEsm }, { find: 'eventemitter3/index.js', replacement: eventEmitterEsm });
101
+ }
102
+ const arweaveBundle = resolvePackageFile('arweave', 'bundles/web.bundle.js');
103
+ if (arweaveBundle) {
104
+ aliasEntries.push({ find: /^arweave$/, replacement: ARWEAVE_SHIM_ID }, { find: /^arweave\/web\/index\.js$/, replacement: ARWEAVE_SHIM_ID }, { find: /^arweave\/bundles\/web\.bundle\.js$/, replacement: arweaveBundle });
53
105
  }
106
+ const existingResolve = userConfig.resolve ?? {};
107
+ const mergedAlias = mergeAliasEntries(normalizeAliasEntries(existingResolve.alias), aliasEntries);
108
+ const desiredOptimizeIncludes = [
109
+ '@zenfs/core',
110
+ '@zenfs/dom',
111
+ 'kerium',
112
+ 'utilium',
113
+ 'memium',
114
+ 'readable-stream',
115
+ 'viem',
116
+ 'isows',
117
+ ];
118
+ const resolvableOptimizeIncludes = desiredOptimizeIncludes.filter((dep) => !!resolvePackageFile(dep, 'package.json'));
54
119
  const optimizeDeps = {
55
120
  ...(userConfig.optimizeDeps ?? {}),
56
121
  exclude: [
@@ -65,29 +130,44 @@ function seedVitePlugin(options = {}) {
65
130
  ],
66
131
  include: [
67
132
  ...(userConfig.optimizeDeps?.include ?? []),
68
- // Ensure ZenFS packages are discoverable
69
- '@zenfs/core',
70
- '@zenfs/dom',
71
- // Dependencies of @zenfs/core; must be pre-bundled for resolution
72
- 'kerium',
73
- 'utilium',
74
- 'memium',
75
- 'readable-stream',
76
- // viem dynamically imports isows; pre-bundle both so Rollup can resolve them
77
- 'viem',
78
- 'isows',
133
+ ...resolvableOptimizeIncludes,
79
134
  ],
80
135
  };
136
+ const existingDefine = userConfig.define &&
137
+ typeof userConfig.define === 'object' &&
138
+ !Array.isArray(userConfig.define)
139
+ ? userConfig.define
140
+ : {};
81
141
  return {
82
142
  resolve: {
83
- alias,
143
+ ...existingResolve,
144
+ alias: mergedAlias,
84
145
  // Prevent duplicate React/thirdweb instances when @seedprotocol/publish is workspace-linked.
85
146
  // Multiple copies break context (e.g. useActiveAccount must be used within ThirdwebProvider).
86
- dedupe: ['react', 'react-dom', 'thirdweb'],
147
+ dedupe: Array.from(new Set([...(existingResolve.dedupe ?? []), 'react', 'react-dom', 'thirdweb'])),
87
148
  },
88
149
  optimizeDeps,
150
+ // Some CJS deps reference `global`; browsers only guarantee globalThis.
151
+ define: {
152
+ ...existingDefine,
153
+ global: 'globalThis',
154
+ },
89
155
  };
90
156
  },
157
+ resolveId(source) {
158
+ if (source === ARWEAVE_SHIM_ID)
159
+ return ARWEAVE_SHIM_ID;
160
+ return null;
161
+ },
162
+ load(id) {
163
+ if (id !== ARWEAVE_SHIM_ID)
164
+ return null;
165
+ return `
166
+ import 'arweave/bundles/web.bundle.js'
167
+ const ArweaveFromGlobal = globalThis.Arweave
168
+ export default ArweaveFromGlobal
169
+ `;
170
+ },
91
171
  };
92
172
  /**
93
173
  * Post-plugin: build configuration + optional ZenFS init.
@@ -99,6 +179,7 @@ function seedVitePlugin(options = {}) {
99
179
  const existingBuild = userConfig.build ?? {};
100
180
  const existingCommonjs = existingBuild.commonjsOptions ?? {};
101
181
  const existingRollupOptions = existingBuild.rollupOptions ?? {};
182
+ const existingRolldownOptions = existingBuild.rolldownOptions;
102
183
  const existingExternal = existingRollupOptions.external ?? [];
103
184
  const include = [
104
185
  // Anything the user already had
@@ -164,8 +245,16 @@ function seedVitePlugin(options = {}) {
164
245
  const build = {
165
246
  ...existingBuild,
166
247
  commonjsOptions,
167
- rollupOptions,
168
248
  };
249
+ if (existingRolldownOptions) {
250
+ build.rolldownOptions = {
251
+ ...existingRolldownOptions,
252
+ external: externalList,
253
+ };
254
+ }
255
+ else {
256
+ build.rollupOptions = rollupOptions;
257
+ }
169
258
  // Worker options are TOP-LEVEL in Vite config, not under build.
170
259
  // Default 'iife' breaks when workers use code-splitting (e.g. sqlocal).
171
260
  const existingWorker = userConfig.worker ?? {};
package/dist/vite.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vite.js","sources":["../../src/vite/index.ts"],"sourcesContent":["import type { Plugin, UserConfig } from 'vite'\nimport { createRequire } from 'node:module'\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { nodePolyfills } from 'vite-plugin-node-polyfills'\n\nconst _req = createRequire(import.meta.url)\n\nexport interface SeedVitePluginOptions {\n /**\n * Additional modules to alias to ZenFS equivalents.\n * @default ['fs', 'fs/promises', 'node:fs', 'node:fs/promises']\n */\n fsModules?: string[]\n\n /**\n * Whether to inject automatic ZenFS initialization script into index.html.\n * When true, injects a &lt;script type=\"module\"&gt; that imports from '@zenfs/core'/'@zenfs/dom'.\n * Browsers cannot resolve those bare specifiers, so the script fails at runtime unless you use\n * an import map or load ZenFS another way. Prefer false and initialize ZenFS in your entry:\n * import { configure } from '@zenfs/core'; import { IndexedDB } from '@zenfs/dom';\n * await configure({ mounts: { '/': IndexedDB } });\n * @default false\n */\n autoInit?: boolean\n\n /**\n * Enable debug logging.\n * @default false\n */\n debug?: boolean\n\n /**\n * Whether to automatically include vite-plugin-node-polyfills with sensible defaults.\n * @default true\n */\n includeNodePolyfills?: boolean\n}\n\nconst DEFAULT_FS_MODULES = [\n 'fs',\n 'fs/promises',\n 'node:fs',\n 'node:fs/promises',\n]\n\n/**\n * Minimal Vite plugin to make the SDK work in browser/Electron renderer:\n * - Aliases fs → @zenfs/core (and promises variant)\n * - Aliases path → path-browserify\n * - Ensures CommonJS in SDK dist is transformed by Vite's CommonJS plugin\n * - Optionally injects a simple ZenFS initialization script\n * - Optionally wires up vite-plugin-node-polyfills with safe defaults\n *\n * This plugin assumes the SDK does not bundle Node-only code in the browser entry.\n * For Electron, Node-only work (e.g. drizzle-kit, better-sqlite3) should run in the\n * main process; the renderer should only use browser-safe SDK usage.\n *\n * For the renderer build:\n * - Use the SDK's ESM entry: import from '@seedprotocol/sdk' (resolves to dist/main.js).\n * - When autoInit is false (default), initialize ZenFS in your entry:\n * import { configure } from '@zenfs/core'; import { IndexedDB } from '@zenfs/dom';\n * await configure({ mounts: { '/': IndexedDB } });\n */\nexport function seedVitePlugin(options: SeedVitePluginOptions = {}): Plugin[] {\n const {\n fsModules = DEFAULT_FS_MODULES,\n autoInit = false,\n debug = false,\n includeNodePolyfills = true,\n } = options\n\n const log = (...args: unknown[]) => {\n }\n\n /**\n * Pre-plugin: configure aliases and optimizeDeps.\n */\n const configPlugin: Plugin = {\n name: 'seed-protocol:config',\n enforce: 'pre',\n\n config(userConfig) {\n const alias: Record<string, string> = {\n // Always use browser-friendly path implementation\n // path: 'path-browserify',\n }\n\n\n for (const mod of fsModules) {\n const isPromises = mod.includes('promises')\n const target = isPromises ? '@zenfs/core/promises' : '@zenfs/core'\n alias[mod] = target\n }\n\n // Merge with any existing aliases\n const existingAlias = userConfig.resolve?.alias\n if (Array.isArray(existingAlias)) {\n for (const [key, value] of Object.entries(alias)) {\n existingAlias.push({ find: key, replacement: value })\n }\n }\n\n const optimizeDeps: UserConfig['optimizeDeps'] = {\n ...(userConfig.optimizeDeps ?? {}),\n exclude: [\n ...(userConfig.optimizeDeps?.exclude ?? []),\n // Do not prebundle the SDK itself or clearly node-only tools\n '@seedprotocol/sdk',\n 'drizzle-kit',\n 'drizzle-orm',\n 'better-sqlite3',\n // sqlocal uses workers and should not be prebundled\n 'sqlocal',\n ],\n include: [\n ...(userConfig.optimizeDeps?.include ?? []),\n // Ensure ZenFS packages are discoverable\n '@zenfs/core',\n '@zenfs/dom',\n // Dependencies of @zenfs/core; must be pre-bundled for resolution\n 'kerium',\n 'utilium',\n 'memium',\n 'readable-stream',\n // viem dynamically imports isows; pre-bundle both so Rollup can resolve them\n 'viem',\n 'isows',\n ],\n }\n\n return {\n resolve: {\n alias,\n // Prevent duplicate React/thirdweb instances when @seedprotocol/publish is workspace-linked.\n // Multiple copies break context (e.g. useActiveAccount must be used within ThirdwebProvider).\n dedupe: ['react', 'react-dom', 'thirdweb'],\n },\n optimizeDeps,\n }\n },\n }\n\n /**\n * Post-plugin: build configuration + optional ZenFS init.\n */\n const mainPlugin: Plugin = {\n name: 'seed-protocol:main',\n enforce: 'post',\n\n config(userConfig) {\n const existingBuild = userConfig.build ?? {}\n const existingCommonjs = existingBuild.commonjsOptions ?? {}\n const existingRollupOptions = existingBuild.rollupOptions ?? {}\n const existingExternal = existingRollupOptions.external ?? []\n\n const include = [\n // Anything the user already had\n ...(Array.isArray(existingCommonjs.include)\n ? existingCommonjs.include\n : existingCommonjs.include\n ? [existingCommonjs.include]\n : []),\n // Always process node_modules and the SDK dist so require() is transformed\n /node_modules/,\n /seed-protocol-sdk[\\\\/]+dist[\\\\/]/,\n ]\n\n // Exclude packages that are already ESM or have special worker handling\n const exclude = [\n ...(Array.isArray(existingCommonjs.exclude)\n ? existingCommonjs.exclude\n : existingCommonjs.exclude\n ? [existingCommonjs.exclude]\n : []),\n // sqlocal is ESM and uses workers - don't transform it\n /node_modules[\\\\/]+sqlocal[\\\\/]/,\n ]\n\n const commonjsOptions = {\n ...existingCommonjs,\n include,\n exclude,\n transformMixedEsModules: true,\n }\n\n // Externalize Node.js-only dev/build tools that should never be bundled\n const nodeOnlyPackages = [\n 'drizzle-kit',\n 'better-sqlite3', // Native SQLite binding (Node.js only)\n // Database drivers that drizzle-kit dynamically imports (should not be bundled)\n '@electric-sql/pglite',\n 'pg',\n 'postgres',\n '@vercel/postgres',\n '@neondatabase/serverless',\n 'mysql2',\n 'mysql2/promise',\n '@planetscale/database',\n ]\n\n const isNodeOnlyExternal = (id: string) =>\n nodeOnlyPackages.some(\n (pkg) =>\n id === pkg ||\n id.startsWith(`${pkg}/`) ||\n id.includes(`/${pkg}/`) ||\n id.endsWith(`/${pkg}`)\n )\n\n const externalList = (id: string, importer?: string, isResolved?: boolean) => {\n if (isNodeOnlyExternal(id)) return true\n if (typeof existingExternal === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (existingExternal as any)(id, importer, isResolved ?? false)\n }\n if (Array.isArray(existingExternal)) {\n return existingExternal.some((ext) => ext === id || id.startsWith(`${ext}/`))\n }\n return false\n }\n\n const rollupOptions = {\n ...existingRollupOptions,\n external: externalList,\n }\n\n const build = {\n ...existingBuild,\n commonjsOptions,\n rollupOptions,\n }\n\n // Worker options are TOP-LEVEL in Vite config, not under build.\n // Default 'iife' breaks when workers use code-splitting (e.g. sqlocal).\n const existingWorker = userConfig.worker ?? {}\n const worker = {\n ...existingWorker,\n format: existingWorker.format ?? 'es',\n }\n\n return {\n build,\n worker,\n }\n },\n\n transformIndexHtml(html) {\n if (!autoInit) return html\n\n const initScript = `\n<script type=\"module\">\nimport { configure } from '@zenfs/core';\nimport { IndexedDB } from '@zenfs/dom';\n\nif (!window.__seedFsReady) {\n window.__seedFsReady = configure({\n mounts: { '/': IndexedDB },\n }).catch((err) => {\n console.error('[seed-vite-plugin] ZenFS initialization failed', err);\n });\n}\n</script>`\n\n if (html.includes('</head>')) {\n return html.replace('</head>', `${initScript}\\n</head>`)\n }\n\n return html + initScript\n },\n }\n\n const plugins: Plugin[] = [configPlugin, mainPlugin]\n\n if (includeNodePolyfills) {\n log('Including vite-plugin-node-polyfills with default settings')\n plugins.push(\n nodePolyfills({\n // Let fs be handled by @zenfs/core instead of polyfills\n exclude: ['readline',],\n // Common set of browser-friendly polyfills used by many deps\n include: ['path', 'crypto', 'stream', 'util', 'buffer', 'events', 'string_decoder',],\n globals: {\n Buffer: true,\n global: true,\n process: true,\n },\n protocolImports: true,\n }) as unknown as Plugin,\n )\n }\n\n return plugins\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vite.js","sources":["../../src/vite/index.ts"],"sourcesContent":["import type { Plugin, UserConfig } from 'vite'\nimport fs from 'node:fs'\nimport { createRequire } from 'node:module'\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { nodePolyfills } from 'vite-plugin-node-polyfills'\n\nconst _req = createRequire(import.meta.url)\n\nexport interface SeedVitePluginOptions {\n /**\n * Additional modules to alias to ZenFS equivalents.\n * @default ['fs', 'fs/promises', 'node:fs', 'node:fs/promises']\n */\n fsModules?: string[]\n\n /**\n * Whether to inject automatic ZenFS initialization script into index.html.\n * When true, injects a &lt;script type=\"module\"&gt; that imports from '@zenfs/core'/'@zenfs/dom'.\n * Browsers cannot resolve those bare specifiers, so the script fails at runtime unless you use\n * an import map or load ZenFS another way. Prefer false and initialize ZenFS in your entry:\n * import { configure } from '@zenfs/core'; import { IndexedDB } from '@zenfs/dom';\n * await configure({ mounts: { '/': IndexedDB } });\n * @default false\n */\n autoInit?: boolean\n\n /**\n * Enable debug logging.\n * @default false\n */\n debug?: boolean\n\n /**\n * Whether to automatically include vite-plugin-node-polyfills with sensible defaults.\n * @default true\n */\n includeNodePolyfills?: boolean\n}\n\nconst DEFAULT_FS_MODULES = [\n 'fs',\n 'fs/promises',\n 'node:fs',\n 'node:fs/promises',\n]\nconst ARWEAVE_SHIM_ID = 'seed-protocol:arweave-default-shim'\n\ntype AliasEntry = { find: string | RegExp; replacement: string }\n\nfunction resolvePackageFile(packageName: string, relativePath: string): string | undefined {\n const candidates: string[] = []\n\n try {\n const pkgJson = _req.resolve(`${packageName}/package.json`)\n candidates.push(path.join(path.dirname(pkgJson), relativePath))\n } catch {\n // package may be hoisted/unavailable in this graph\n }\n\n const cwdNodeModules = path.join(process.cwd(), 'node_modules')\n candidates.push(path.join(cwdNodeModules, packageName, relativePath))\n\n const bunDir = path.join(cwdNodeModules, '.bun')\n if (fs.existsSync(bunDir)) {\n for (const entry of fs.readdirSync(bunDir)) {\n if (!entry.startsWith(`${packageName}@`)) continue\n candidates.push(path.join(bunDir, entry, `node_modules/${packageName}`, relativePath))\n }\n }\n\n for (const candidate of candidates) {\n if (fs.existsSync(candidate)) return candidate\n }\n return undefined\n}\n\nfunction normalizeAliasEntries(\n alias: NonNullable<UserConfig['resolve']>['alias'] | undefined\n): AliasEntry[] {\n if (!alias) return []\n if (Array.isArray(alias)) {\n return alias\n .filter((entry): entry is AliasEntry => !!entry && !!(entry as AliasEntry).replacement)\n .map((entry) => ({ find: entry.find, replacement: entry.replacement }))\n }\n\n return Object.entries(alias).map(([find, replacement]) => ({\n find,\n replacement: String(replacement),\n }))\n}\n\nfunction mergeAliasEntries(existing: AliasEntry[], additions: AliasEntry[]): AliasEntry[] {\n const merged = [...existing]\n const keyOf = (find: string | RegExp) =>\n typeof find === 'string' ? `s:${find}` : `r:${find.toString()}`\n const seen = new Set(merged.map((entry) => keyOf(entry.find)))\n\n for (const entry of additions) {\n const key = keyOf(entry.find)\n if (seen.has(key)) continue\n seen.add(key)\n merged.push(entry)\n }\n\n return merged\n}\n\n/**\n * Minimal Vite plugin to make the SDK work in browser/Electron renderer:\n * - Aliases fs → @zenfs/core (and promises variant)\n * - Aliases path → path-browserify\n * - Ensures CommonJS in SDK dist is transformed by Vite's CommonJS plugin\n * - Optionally injects a simple ZenFS initialization script\n * - Optionally wires up vite-plugin-node-polyfills with safe defaults\n *\n * This plugin assumes the SDK does not bundle Node-only code in the browser entry.\n * For Electron, Node-only work (e.g. drizzle-kit, better-sqlite3) should run in the\n * main process; the renderer should only use browser-safe SDK usage.\n *\n * For the renderer build:\n * - Use the SDK's ESM entry: import from '@seedprotocol/sdk' (resolves to dist/main.js).\n * - When autoInit is false (default), initialize ZenFS in your entry:\n * import { configure } from '@zenfs/core'; import { IndexedDB } from '@zenfs/dom';\n * await configure({ mounts: { '/': IndexedDB } });\n */\nexport function seedVitePlugin(options: SeedVitePluginOptions = {}): Plugin[] {\n const {\n fsModules = DEFAULT_FS_MODULES,\n autoInit = false,\n debug = false,\n includeNodePolyfills = true,\n } = options\n\n const log = (...args: unknown[]) => {\n }\n\n /**\n * Pre-plugin: configure aliases and optimizeDeps.\n */\n const configPlugin: Plugin = {\n name: 'seed-protocol:config',\n enforce: 'pre',\n\n config(userConfig) {\n const aliasEntries: AliasEntry[] = []\n for (const mod of fsModules) {\n const isPromises = mod.includes('promises')\n const target = isPromises ? '@zenfs/core/promises' : '@zenfs/core'\n aliasEntries.push({ find: mod, replacement: target })\n }\n\n const eventEmitterEsm = resolvePackageFile('eventemitter3', 'dist/eventemitter3.esm.js')\n if (eventEmitterEsm) {\n aliasEntries.push(\n { find: 'eventemitter3', replacement: eventEmitterEsm },\n { find: 'eventemitter3/index.mjs', replacement: eventEmitterEsm },\n { find: 'eventemitter3/index.js', replacement: eventEmitterEsm },\n )\n }\n\n const arweaveBundle = resolvePackageFile('arweave', 'bundles/web.bundle.js')\n if (arweaveBundle) {\n aliasEntries.push(\n { find: /^arweave$/, replacement: ARWEAVE_SHIM_ID },\n { find: /^arweave\\/web\\/index\\.js$/, replacement: ARWEAVE_SHIM_ID },\n { find: /^arweave\\/bundles\\/web\\.bundle\\.js$/, replacement: arweaveBundle },\n )\n }\n\n const existingResolve = userConfig.resolve ?? {}\n const mergedAlias = mergeAliasEntries(\n normalizeAliasEntries(existingResolve.alias),\n aliasEntries,\n )\n\n const desiredOptimizeIncludes = [\n '@zenfs/core',\n '@zenfs/dom',\n 'kerium',\n 'utilium',\n 'memium',\n 'readable-stream',\n 'viem',\n 'isows',\n ]\n const resolvableOptimizeIncludes = desiredOptimizeIncludes.filter(\n (dep) => !!resolvePackageFile(dep, 'package.json')\n )\n\n const optimizeDeps: UserConfig['optimizeDeps'] = {\n ...(userConfig.optimizeDeps ?? {}),\n exclude: [\n ...(userConfig.optimizeDeps?.exclude ?? []),\n // Do not prebundle the SDK itself or clearly node-only tools\n '@seedprotocol/sdk',\n 'drizzle-kit',\n 'drizzle-orm',\n 'better-sqlite3',\n // sqlocal uses workers and should not be prebundled\n 'sqlocal',\n ],\n include: [\n ...(userConfig.optimizeDeps?.include ?? []),\n ...resolvableOptimizeIncludes,\n ],\n }\n const existingDefine =\n userConfig.define &&\n typeof userConfig.define === 'object' &&\n !Array.isArray(userConfig.define)\n ? userConfig.define\n : {}\n\n return {\n resolve: {\n ...existingResolve,\n alias: mergedAlias,\n // Prevent duplicate React/thirdweb instances when @seedprotocol/publish is workspace-linked.\n // Multiple copies break context (e.g. useActiveAccount must be used within ThirdwebProvider).\n dedupe: Array.from(\n new Set([...(existingResolve.dedupe ?? []), 'react', 'react-dom', 'thirdweb'])\n ),\n },\n optimizeDeps,\n // Some CJS deps reference `global`; browsers only guarantee globalThis.\n define: {\n ...existingDefine,\n global: 'globalThis',\n },\n }\n },\n\n resolveId(source) {\n if (source === ARWEAVE_SHIM_ID) return ARWEAVE_SHIM_ID\n return null\n },\n\n load(id) {\n if (id !== ARWEAVE_SHIM_ID) return null\n return `\nimport 'arweave/bundles/web.bundle.js'\nconst ArweaveFromGlobal = globalThis.Arweave\nexport default ArweaveFromGlobal\n`\n },\n }\n\n /**\n * Post-plugin: build configuration + optional ZenFS init.\n */\n const mainPlugin: Plugin = {\n name: 'seed-protocol:main',\n enforce: 'post',\n\n config(userConfig) {\n const existingBuild = userConfig.build ?? {}\n const existingCommonjs = existingBuild.commonjsOptions ?? {}\n const existingRollupOptions = existingBuild.rollupOptions ?? {}\n const existingRolldownOptions = (existingBuild as Record<string, unknown>).rolldownOptions as\n | Record<string, unknown>\n | undefined\n const existingExternal = existingRollupOptions.external ?? []\n\n const include = [\n // Anything the user already had\n ...(Array.isArray(existingCommonjs.include)\n ? existingCommonjs.include\n : existingCommonjs.include\n ? [existingCommonjs.include]\n : []),\n // Always process node_modules and the SDK dist so require() is transformed\n /node_modules/,\n /seed-protocol-sdk[\\\\/]+dist[\\\\/]/,\n ]\n\n // Exclude packages that are already ESM or have special worker handling\n const exclude = [\n ...(Array.isArray(existingCommonjs.exclude)\n ? existingCommonjs.exclude\n : existingCommonjs.exclude\n ? [existingCommonjs.exclude]\n : []),\n // sqlocal is ESM and uses workers - don't transform it\n /node_modules[\\\\/]+sqlocal[\\\\/]/,\n ]\n\n const commonjsOptions = {\n ...existingCommonjs,\n include,\n exclude,\n transformMixedEsModules: true,\n }\n\n // Externalize Node.js-only dev/build tools that should never be bundled\n const nodeOnlyPackages = [\n 'drizzle-kit',\n 'better-sqlite3', // Native SQLite binding (Node.js only)\n // Database drivers that drizzle-kit dynamically imports (should not be bundled)\n '@electric-sql/pglite',\n 'pg',\n 'postgres',\n '@vercel/postgres',\n '@neondatabase/serverless',\n 'mysql2',\n 'mysql2/promise',\n '@planetscale/database',\n ]\n\n const isNodeOnlyExternal = (id: string) =>\n nodeOnlyPackages.some(\n (pkg) =>\n id === pkg ||\n id.startsWith(`${pkg}/`) ||\n id.includes(`/${pkg}/`) ||\n id.endsWith(`/${pkg}`)\n )\n\n const externalList = (id: string, importer?: string, isResolved?: boolean) => {\n if (isNodeOnlyExternal(id)) return true\n if (typeof existingExternal === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (existingExternal as any)(id, importer, isResolved ?? false)\n }\n if (Array.isArray(existingExternal)) {\n return existingExternal.some((ext) => ext === id || id.startsWith(`${ext}/`))\n }\n return false\n }\n\n const rollupOptions = {\n ...existingRollupOptions,\n external: externalList,\n }\n\n const build: Record<string, unknown> = {\n ...existingBuild,\n commonjsOptions,\n }\n if (existingRolldownOptions) {\n build.rolldownOptions = {\n ...existingRolldownOptions,\n external: externalList,\n }\n } else {\n build.rollupOptions = rollupOptions\n }\n\n // Worker options are TOP-LEVEL in Vite config, not under build.\n // Default 'iife' breaks when workers use code-splitting (e.g. sqlocal).\n const existingWorker = userConfig.worker ?? {}\n const worker = {\n ...existingWorker,\n format: existingWorker.format ?? 'es',\n }\n\n return {\n build,\n worker,\n }\n },\n\n transformIndexHtml(html) {\n if (!autoInit) return html\n\n const initScript = `\n<script type=\"module\">\nimport { configure } from '@zenfs/core';\nimport { IndexedDB } from '@zenfs/dom';\n\nif (!window.__seedFsReady) {\n window.__seedFsReady = configure({\n mounts: { '/': IndexedDB },\n }).catch((err) => {\n console.error('[seed-vite-plugin] ZenFS initialization failed', err);\n });\n}\n</script>`\n\n if (html.includes('</head>')) {\n return html.replace('</head>', `${initScript}\\n</head>`)\n }\n\n return html + initScript\n },\n }\n\n const plugins: Plugin[] = [configPlugin, mainPlugin]\n\n if (includeNodePolyfills) {\n log('Including vite-plugin-node-polyfills with default settings')\n plugins.push(\n nodePolyfills({\n // Let fs be handled by @zenfs/core instead of polyfills\n exclude: ['readline',],\n // Common set of browser-friendly polyfills used by many deps\n include: ['path', 'crypto', 'stream', 'util', 'buffer', 'events', 'string_decoder',],\n globals: {\n Buffer: true,\n global: true,\n process: true,\n },\n protocolImports: true,\n }) as unknown as Plugin,\n )\n }\n\n return plugins\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seedprotocol/sdk",
3
- "version": "0.4.22",
3
+ "version": "0.4.24",
4
4
  "description": "The SDK for Seed Protocol",
5
5
  "type": "module",
6
6
  "main": "./dist/main.cjs",