@seedprotocol/sdk 0.3.8 → 0.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/addModel.js +4 -0
- package/dist/addModel.js.map +1 -1
- package/dist/bin.js +182 -111
- package/dist/bin.js.map +1 -1
- package/dist/main.js +13 -1
- package/dist/main.js.map +1 -1
- package/dist/node/db/node.app.db.config.ts +7 -26
- package/dist/scripts/bin.d.ts +4 -4
- package/dist/scripts/bin.d.ts.map +1 -1
- package/dist/seedData.json +23 -0
- package/dist/src/Item/BaseItem.js +3 -3
- package/dist/src/Item/BaseItem.js.map +1 -1
- package/dist/src/ItemProperty/BaseItemProperty.d.ts +4 -1
- package/dist/src/ItemProperty/BaseItemProperty.d.ts.map +1 -1
- package/dist/src/ItemProperty/BaseItemProperty.js +65 -21
- package/dist/src/ItemProperty/BaseItemProperty.js.map +1 -1
- package/dist/src/ItemProperty/service/actors/hydrateFromDb.d.ts.map +1 -1
- package/dist/src/ItemProperty/service/actors/hydrateFromDb.js +27 -17
- package/dist/src/ItemProperty/service/actors/hydrateFromDb.js.map +1 -1
- package/dist/src/ItemProperty/service/actors/initialize.d.ts.map +1 -1
- package/dist/src/ItemProperty/service/actors/initialize.js +25 -20
- package/dist/src/ItemProperty/service/actors/initialize.js.map +1 -1
- package/dist/src/ItemProperty/service/actors/resolveRemoteStorage.d.ts.map +1 -1
- package/dist/src/ItemProperty/service/actors/resolveRemoteStorage.js +1 -1
- package/dist/src/ItemProperty/service/actors/resolveRemoteStorage.js.map +1 -1
- package/dist/src/ItemProperty/service/propertyMachine.d.ts +11 -11
- package/dist/src/browser/Item/Item.js +0 -1
- package/dist/src/browser/Item/Item.js.map +1 -1
- package/dist/src/browser/ItemProperty/ItemProperty.d.ts.map +1 -1
- package/dist/src/browser/ItemProperty/ItemProperty.js +0 -1
- package/dist/src/browser/ItemProperty/ItemProperty.js.map +1 -1
- package/dist/src/browser/db/Db.d.ts.map +1 -1
- package/dist/src/browser/db/Db.js +35 -10
- package/dist/src/browser/db/Db.js.map +1 -1
- package/dist/src/browser/helpers/FileManager.d.ts +3 -1
- package/dist/src/browser/helpers/FileManager.d.ts.map +1 -1
- package/dist/src/browser/helpers/FileManager.js +24 -12
- package/dist/src/browser/helpers/FileManager.js.map +1 -1
- package/dist/src/browser/helpers/eas.d.ts +20 -0
- package/dist/src/browser/helpers/eas.d.ts.map +1 -0
- package/dist/src/browser/helpers/eas.js +89 -0
- package/dist/src/browser/helpers/eas.js.map +1 -0
- package/dist/src/browser/index.d.ts +0 -1
- package/dist/src/browser/index.d.ts.map +1 -1
- package/dist/src/browser/react/SeedImage.d.ts +11 -0
- package/dist/src/browser/react/SeedImage.d.ts.map +1 -0
- package/dist/src/browser/react/SeedImage.js +105 -0
- package/dist/src/browser/react/SeedImage.js.map +1 -0
- package/dist/src/browser/react/index.d.ts +2 -1
- package/dist/src/browser/react/index.d.ts.map +1 -1
- package/dist/src/browser/react/item.d.ts +8 -8
- package/dist/src/browser/react/item.d.ts.map +1 -1
- package/dist/src/browser/react/item.js +9 -53
- package/dist/src/browser/react/item.js.map +1 -1
- package/dist/src/browser/react/model.d.ts +7 -0
- package/dist/src/browser/react/model.d.ts.map +1 -0
- package/dist/src/browser/react/model.js +20 -0
- package/dist/src/browser/react/model.js.map +1 -0
- package/dist/src/browser/react/property.d.ts +3 -3
- package/dist/src/browser/react/property.d.ts.map +1 -1
- package/dist/src/browser/react/property.js.map +1 -1
- package/dist/src/browser/react/services.d.ts.map +1 -1
- package/dist/src/browser/react/services.js +6 -1
- package/dist/src/browser/react/services.js.map +1 -1
- package/dist/src/browser/workers/FileDownloader.d.ts.map +1 -1
- package/dist/src/browser/workers/FileDownloader.js +4 -1
- package/dist/src/browser/workers/FileDownloader.js.map +1 -1
- package/dist/src/browser/workers/ImageResizer.d.ts.map +1 -1
- package/dist/src/browser/workers/ImageResizer.js +1 -0
- package/dist/src/browser/workers/ImageResizer.js.map +1 -1
- package/dist/src/browser/workers/filesDownload.d.ts.map +1 -1
- package/dist/src/browser/workers/filesDownload.js +4 -0
- package/dist/src/browser/workers/filesDownload.js.map +1 -1
- package/dist/src/browser/workers/imageResize.d.ts.map +1 -1
- package/dist/src/browser/workers/imageResize.js +4 -1
- package/dist/src/browser/workers/imageResize.js.map +1 -1
- package/dist/src/client/BaseClientManager.d.ts.map +1 -1
- package/dist/src/client/ClientManager.d.ts +184 -22
- package/dist/src/client/ClientManager.d.ts.map +1 -1
- package/dist/src/client/ClientManager.js +29 -0
- package/dist/src/client/ClientManager.js.map +1 -1
- package/dist/src/client/actors/initialize.d.ts +2 -2
- package/dist/src/client/actors/initialize.d.ts.map +1 -1
- package/dist/src/client/actors/initialize.js +9 -0
- package/dist/src/client/actors/initialize.js.map +1 -1
- package/dist/src/client/actors/saveAppState.js +3 -3
- package/dist/src/client/actors/saveAppState.js.map +1 -1
- package/dist/src/client/clientManagerMachine.d.ts +86 -10
- package/dist/src/client/clientManagerMachine.d.ts.map +1 -1
- package/dist/src/client/clientManagerMachine.js +3 -1
- package/dist/src/client/clientManagerMachine.js.map +1 -1
- package/dist/src/db/read/getModelSchemas.d.ts +1 -2
- package/dist/src/db/read/getModelSchemas.d.ts.map +1 -1
- package/dist/src/db/read/getModelSchemas.js +1 -21
- package/dist/src/db/read/getModelSchemas.js.map +1 -1
- package/dist/src/db/read/getModels.d.ts +5 -0
- package/dist/src/db/read/getModels.d.ts.map +1 -0
- package/dist/src/db/read/getModels.js +16 -0
- package/dist/src/db/read/getModels.js.map +1 -0
- package/dist/src/db/read/getPublishPayload.d.ts.map +1 -1
- package/dist/src/db/read/getPublishPayload.js +52 -14
- package/dist/src/db/read/getPublishPayload.js.map +1 -1
- package/dist/src/db/read/getPublishUploads.d.ts.map +1 -1
- package/dist/src/db/read/getPublishUploads.js +34 -3
- package/dist/src/db/read/getPublishUploads.js.map +1 -1
- package/dist/src/events/files/download.d.ts.map +1 -1
- package/dist/src/events/files/download.js +0 -1
- package/dist/src/events/files/download.js.map +1 -1
- package/dist/src/events/files/index.d.ts.map +1 -1
- package/dist/src/events/files/index.js +0 -1
- package/dist/src/events/files/index.js.map +1 -1
- package/dist/src/events/item/syncDbWithEas.d.ts.map +1 -1
- package/dist/src/events/item/syncDbWithEas.js +9 -28
- package/dist/src/events/item/syncDbWithEas.js.map +1 -1
- package/dist/src/events/services/allItems.d.ts.map +1 -1
- package/dist/src/events/services/allItems.js +0 -1
- package/dist/src/events/services/allItems.js.map +1 -1
- package/dist/src/helpers/FileManager/BaseFileManager.d.ts +2 -0
- package/dist/src/helpers/FileManager/BaseFileManager.d.ts.map +1 -1
- package/dist/src/helpers/FileManager/BaseFileManager.js +6 -0
- package/dist/src/helpers/FileManager/BaseFileManager.js.map +1 -1
- package/dist/src/helpers/constants.d.ts +2 -2
- package/dist/src/helpers/constants.d.ts.map +1 -1
- package/dist/src/helpers/constants.js +14 -6
- package/dist/src/helpers/constants.js.map +1 -1
- package/dist/src/helpers/environment.js +1 -1
- package/dist/src/helpers/environment.js.map +1 -1
- package/dist/src/helpers/getSegmentedItemProperties.d.ts +1 -0
- package/dist/src/helpers/getSegmentedItemProperties.d.ts.map +1 -1
- package/dist/src/helpers/getSegmentedItemProperties.js +6 -2
- package/dist/src/helpers/getSegmentedItemProperties.js.map +1 -1
- package/dist/src/helpers/index.d.ts +2 -1
- package/dist/src/helpers/index.d.ts.map +1 -1
- package/dist/src/helpers/index.js +3 -10
- package/dist/src/helpers/index.js.map +1 -1
- package/dist/src/helpers/scripts.d.ts +2 -0
- package/dist/src/helpers/scripts.d.ts.map +1 -0
- package/dist/src/helpers/scripts.js +14 -0
- package/dist/src/helpers/scripts.js.map +1 -0
- package/dist/src/index.d.ts +11 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/interfaces/IItemProperty.d.ts +7 -0
- package/dist/src/interfaces/IItemProperty.d.ts.map +1 -1
- package/dist/src/node/PathResolver.d.ts +39 -0
- package/dist/src/node/PathResolver.d.ts.map +1 -0
- package/dist/src/node/PathResolver.js +150 -0
- package/dist/src/node/PathResolver.js.map +1 -0
- package/dist/src/node/codegen/drizzle.d.ts.map +1 -1
- package/dist/src/node/codegen/drizzle.js +25 -4
- package/dist/src/node/codegen/drizzle.js.map +1 -1
- package/dist/src/node/constants.d.ts +0 -11
- package/dist/src/node/constants.d.ts.map +1 -1
- package/dist/src/node/constants.js +1 -32
- package/dist/src/node/constants.js.map +1 -1
- package/dist/src/node/db/node.app.db.config.d.ts.map +1 -1
- package/dist/src/node/helpers/FileManager.d.ts +2 -0
- package/dist/src/node/helpers/FileManager.d.ts.map +1 -1
- package/dist/src/node/helpers/index.d.ts.map +1 -1
- package/dist/src/node/helpers/index.js +0 -1
- package/dist/src/node/helpers/index.js.map +1 -1
- package/dist/src/schema/image/model.d.ts +8 -0
- package/dist/src/schema/image/model.d.ts.map +1 -0
- package/dist/src/schema/image/model.js +29 -0
- package/dist/src/schema/image/model.js.map +1 -0
- package/dist/src/schema/model/index.d.ts +8 -8
- package/dist/src/schema/property/index.d.ts +33 -45
- package/dist/src/schema/property/index.d.ts.map +1 -1
- package/dist/src/schema/property/index.js +0 -1
- package/dist/src/schema/property/index.js.map +1 -1
- package/dist/src/seedSchema/ConfigSchema.js +18 -0
- package/dist/src/seedSchema/ConfigSchema.js.map +1 -0
- package/dist/src/services/db/actors/migrate.js +2 -2
- package/dist/src/services/db/actors/migrate.js.map +1 -1
- package/dist/src/services/global/globalMachine.d.ts +90 -90
- package/dist/src/services/internal/helpers.js +3 -3
- package/dist/src/services/internal/helpers.js.map +1 -1
- package/dist/src/stores/eas.d.ts +12 -5
- package/dist/src/stores/eas.d.ts.map +1 -1
- package/dist/src/stores/eas.js +13 -8
- package/dist/src/stores/eas.js.map +1 -1
- package/dist/src/stores/modelClass.d.ts.map +1 -1
- package/dist/src/stores/modelClass.js.map +1 -1
- package/dist/src/types/model.d.ts +2 -15
- package/dist/src/types/model.d.ts.map +1 -1
- package/package.json +8 -7
- package/dist/src/Item/index.d.ts +0 -5
- package/dist/src/Item/index.d.ts.map +0 -1
- package/dist/src/Item/index.js +0 -4
- package/dist/src/Item/index.js.map +0 -1
- package/dist/src/ItemProperty/index.d.ts +0 -5
- package/dist/src/ItemProperty/index.d.ts.map +0 -1
- package/dist/src/ItemProperty/service/actors/index.d.ts +0 -4
- package/dist/src/ItemProperty/service/actors/index.d.ts.map +0 -1
- package/dist/src/browser/Item/index.d.ts +0 -2
- package/dist/src/browser/Item/index.d.ts.map +0 -1
- package/dist/src/browser/Item/index.js +0 -2
- package/dist/src/browser/Item/index.js.map +0 -1
- package/dist/src/browser/ItemProperty/index.d.ts +0 -2
- package/dist/src/browser/ItemProperty/index.d.ts.map +0 -1
package/dist/addModel.js
CHANGED
|
@@ -72,6 +72,10 @@ const injectModel = (schemaContent, newModelCode) => {
|
|
|
72
72
|
updatedSchema.slice(modelsClosingBracePos);
|
|
73
73
|
return updatedSchema;
|
|
74
74
|
};
|
|
75
|
+
if (fileContents.includes(`class ${jsonModel.name}`)) {
|
|
76
|
+
console.error(`Model with name ${jsonModel.name} already exists in the schema`);
|
|
77
|
+
process.exit(0);
|
|
78
|
+
}
|
|
75
79
|
const newModelCode = generateModelCode({
|
|
76
80
|
modelName: jsonModel.name,
|
|
77
81
|
properties: jsonModel.properties,
|
package/dist/addModel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addModel.js","sources":["../../scripts/addModel.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport fs from 'fs';\nimport {
|
|
1
|
+
{"version":3,"file":"addModel.js","sources":["../../scripts/addModel.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport fs from 'fs';\nimport { generateModelCode } from '../src/node/codegen/drizzle';\n\n// Parse command line arguments\nconst args = process.argv.slice(2);\nconst sourceSchemaFilePath = args[0];\nconst outputFilePath = args[1];\nconst jsonString = args[2];\n\nif (!sourceSchemaFilePath || !outputFilePath || !jsonString) {\n console.error('Usage: npx tsx bin/addModel.ts <source-schema-file-path> <output-file-path> <json-string>');\n process.exit(1);\n}\n\n// Read the contents of the file\nlet fileContents;\ntry {\n fileContents = fs.readFileSync(sourceSchemaFilePath, 'utf-8');\n} catch (error) {\n console.error(`Error reading file at ${sourceSchemaFilePath}:`, error);\n process.exit(1);\n}\n\n// Parse the JSON string\nlet jsonModel;\ntry {\n jsonModel = JSON.parse(jsonString);\n} catch (error) {\n console.error('Invalid JSON string:', error);\n process.exit(1);\n}\n\n/**\n * Simple function to inject a new model after the last model class and update the models object\n * @param {string} schemaContent - The content of the schema file\n * @param {string} newModelCode - The code for the new model to inject\n * @returns {string} The updated schema content\n */\nconst injectModel = (schemaContent: string, newModelCode: string) => {\n // Extract the model name from the new code\n const modelNameMatch = newModelCode.match(/class\\s+(\\w+)/);\n if (!modelNameMatch) {\n throw new Error(\"Could not extract model name from provided code\");\n }\n const modelName = modelNameMatch[1];\n\n // Find the 'const models' position\n const modelsPos = schemaContent.indexOf('const models');\n if (modelsPos === -1) {\n throw new Error(\"Could not find 'const models' in the schema\");\n }\n\n // Find the position of the last model class before 'const models'\n const lastClassPos = schemaContent.lastIndexOf('@Model', modelsPos);\n if (lastClassPos === -1) {\n throw new Error(\"Could not find any model declarations in the schema\");\n }\n\n // Find the end of the last class\n const classEndPos = schemaContent.indexOf('}', lastClassPos);\n if (classEndPos === -1) {\n throw new Error(\"Could not find closing brace of the last model class\");\n }\n\n // Find the position after the last class's closing brace\n const insertModelPos = schemaContent.indexOf('\\n', classEndPos) + 1;\n \n // Insert the new model\n let updatedSchema = \n schemaContent.slice(0, insertModelPos) + \n \"\\n\" + newModelCode + \"\\n\\n\" + \n schemaContent.slice(insertModelPos);\n \n // Find the closing brace of the models object\n const modelsClosingBracePos = updatedSchema.indexOf('}', updatedSchema.indexOf('const models'));\n \n // Add the new model to the models object\n updatedSchema = \n updatedSchema.slice(0, modelsClosingBracePos) + \n ` ${modelName},\\n` + \n updatedSchema.slice(modelsClosingBracePos);\n \n return updatedSchema;\n}\n\nif (fileContents.includes(`class ${jsonModel.name}`)) {\n console.error(`Model with name ${jsonModel.name} already exists in the schema`);\n process.exit(0);\n}\n\nconst newModelCode = generateModelCode({\n modelName: jsonModel.name,\n properties: jsonModel.properties,\n});\n\nconst updatedSchema = injectModel(fileContents, newModelCode);\n\n// Write the new table file\ntry {\n fs.writeFileSync(outputFilePath, updatedSchema, 'utf-8');\n console.log(`Wrote updated schema file to ${outputFilePath}`);\n} catch (error) {\n console.error('Error writing Drizzle table file:', error);\n process.exit(1);\n} \n"],"names":[],"mappings":"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"}
|
package/dist/bin.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import fs from 'fs';
|
|
4
4
|
import { execSync } from 'child_process';
|
|
5
|
-
import { pathToFileURL } from 'url';
|
|
5
|
+
import { fileURLToPath, pathToFileURL } from 'url';
|
|
6
6
|
import process from 'node:process';
|
|
7
7
|
import './src/node/helpers/EasClient.js';
|
|
8
8
|
import './src/node/helpers/QueryClient.js';
|
|
@@ -10,13 +10,26 @@ import 'fs/promises';
|
|
|
10
10
|
import './src/helpers/FileManager/BaseFileManager.js';
|
|
11
11
|
import './src/node/helpers/ArweaveClient.js';
|
|
12
12
|
import { SCHEMA_TS, INIT_SCRIPT_SUCCESS_MESSAGE } from './src/helpers/constants.js';
|
|
13
|
-
import {
|
|
13
|
+
import { PathResolver } from './src/node/PathResolver.js';
|
|
14
14
|
import { createDrizzleSchemaFilesFromConfig } from './src/node/codegen/drizzle.js';
|
|
15
15
|
import { rimrafSync } from 'rimraf';
|
|
16
16
|
import { getTsImport } from './src/node/helpers/index.js';
|
|
17
|
+
import { drizzle } from 'drizzle-orm/better-sqlite3';
|
|
18
|
+
import Database from 'better-sqlite3';
|
|
19
|
+
import { appState } from './src/seedSchema/AppStateSchema.js';
|
|
20
|
+
import { config } from './src/seedSchema/ConfigSchema.js';
|
|
21
|
+
import { metadata } from './src/seedSchema/MetadataSchema.js';
|
|
22
|
+
import { models } from './src/seedSchema/ModelSchema.js';
|
|
23
|
+
import { modelUids } from './src/seedSchema/ModelUidSchema.js';
|
|
24
|
+
import { seeds } from './src/seedSchema/SeedSchema.js';
|
|
25
|
+
import { versions } from './src/seedSchema/VersionSchema.js';
|
|
26
|
+
import { commandExists } from './src/helpers/scripts.js';
|
|
17
27
|
|
|
28
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
29
|
+
const __dirname = path.dirname(__filename);
|
|
18
30
|
let a;
|
|
19
31
|
a = process.argv.splice(2);
|
|
32
|
+
const pathResolver = PathResolver.getInstance();
|
|
20
33
|
/**
|
|
21
34
|
* Copy a directory and all its contents recursively
|
|
22
35
|
* @param {string} sourceDir - Path to the source directory
|
|
@@ -46,126 +59,184 @@ function copyDirectoryRecursively(sourceDir, targetDir) {
|
|
|
46
59
|
}
|
|
47
60
|
}
|
|
48
61
|
}
|
|
49
|
-
const
|
|
50
|
-
console.log('
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
62
|
+
const seedDatabase = async (seedDataPath) => {
|
|
63
|
+
console.log('[Seed Protocol] Running seed script');
|
|
64
|
+
try {
|
|
65
|
+
// Read the seed data file
|
|
66
|
+
const seedData = JSON.parse(fs.readFileSync(seedDataPath, 'utf-8'));
|
|
67
|
+
// Connect to the database
|
|
68
|
+
const dotSeedDir = pathResolver.getDotSeedDir();
|
|
69
|
+
const dbPath = path.join(dotSeedDir, 'db', 'app_db.sqlite3');
|
|
70
|
+
const sqlite = new Database(dbPath);
|
|
71
|
+
const db = drizzle(sqlite);
|
|
72
|
+
// Seed each table based on the provided data
|
|
73
|
+
if (seedData.appState && seedData.appState.length > 0) {
|
|
74
|
+
await db.insert(appState).values(seedData.appState);
|
|
75
|
+
console.log('Seeded appState table');
|
|
61
76
|
}
|
|
62
|
-
if (
|
|
63
|
-
|
|
77
|
+
if (seedData.config && seedData.config.length > 0) {
|
|
78
|
+
await db.insert(config).values(seedData.config);
|
|
79
|
+
console.log('Seeded config table');
|
|
64
80
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
if (fs.existsSync(dotSeedDir)) {
|
|
69
|
-
fs.rmSync(dotSeedDir, { recursive: true, force: true });
|
|
81
|
+
if (seedData.models && seedData.models.length > 0) {
|
|
82
|
+
await db.insert(models).values(seedData.models);
|
|
83
|
+
console.log('Seeded models table');
|
|
70
84
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
85
|
+
if (seedData.modelUids && seedData.modelUids.length > 0) {
|
|
86
|
+
await db.insert(modelUids).values(seedData.modelUids);
|
|
87
|
+
console.log('Seeded modelUids table');
|
|
88
|
+
}
|
|
89
|
+
if (seedData.metadata && seedData.metadata.length > 0) {
|
|
90
|
+
await db.insert(metadata).values(seedData.metadata);
|
|
91
|
+
console.log('Seeded metadata table');
|
|
92
|
+
}
|
|
93
|
+
if (seedData.seeds && seedData.seeds.length > 0) {
|
|
94
|
+
await db.insert(seeds).values(seedData.seeds);
|
|
95
|
+
console.log('Seeded seeds table');
|
|
96
|
+
}
|
|
97
|
+
if (seedData.versions && seedData.versions.length > 0) {
|
|
98
|
+
await db.insert(versions).values(seedData.versions);
|
|
99
|
+
console.log('Seeded versions table');
|
|
100
|
+
}
|
|
101
|
+
console.log('[Seed Protocol] Successfully seeded database');
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
console.error('[Seed Protocol] Error seeding database:', error);
|
|
105
|
+
process.exit(1);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
const init = (args) => {
|
|
109
|
+
console.log('args:', args);
|
|
110
|
+
if (args && args.length) {
|
|
111
|
+
if (args[0] === 'init') {
|
|
112
|
+
console.log('[Seed Protocol] Running init script');
|
|
113
|
+
let appFilesDirPath = args[2] || undefined;
|
|
114
|
+
let schemaFileDir = args[1];
|
|
115
|
+
if (schemaFileDir && schemaFileDir.startsWith('.')) {
|
|
116
|
+
const relativePath = schemaFileDir.replace('./', '');
|
|
117
|
+
if (!process.cwd().includes(relativePath)) {
|
|
118
|
+
schemaFileDir = path.resolve(schemaFileDir);
|
|
84
119
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
return;
|
|
120
|
+
if (process.cwd().includes(relativePath)) {
|
|
121
|
+
schemaFileDir = process.cwd();
|
|
88
122
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
fs.writeFileSync(indexFilePath, newContent, 'utf8');
|
|
99
|
-
console.log(`Updated index.ts with missing exports:\n${missingExports.join('\n')}`);
|
|
123
|
+
}
|
|
124
|
+
if (!schemaFileDir && !process.cwd().includes('seed-protocol-sdk')) {
|
|
125
|
+
schemaFileDir = process.cwd();
|
|
126
|
+
}
|
|
127
|
+
console.log('[Seed Protocol] schemaFileDir', schemaFileDir);
|
|
128
|
+
if (!schemaFileDir) {
|
|
129
|
+
const defaultSchemaFilePath = path.join(process.cwd(), 'schema.ts');
|
|
130
|
+
if (fs.existsSync(defaultSchemaFilePath)) {
|
|
131
|
+
schemaFileDir = process.cwd();
|
|
100
132
|
}
|
|
101
133
|
else {
|
|
102
|
-
console.
|
|
134
|
+
console.error('No schema file path provided and no default schema file found.');
|
|
135
|
+
return;
|
|
103
136
|
}
|
|
104
137
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
// if (!fs.existsSync(destDir)) {
|
|
111
|
-
// fs.mkdirSync(destDir, { recursive: true })
|
|
112
|
-
// }
|
|
113
|
-
// const srcFiles = fs.readdirSync(srcDir)
|
|
114
|
-
// srcFiles.forEach((file) => {
|
|
115
|
-
// if (f)
|
|
116
|
-
// console.log(`Copying ${srcDir}/${file} to ${destDir}/${file}`)
|
|
117
|
-
// fs.copyFileSync(path.join(srcDir, file), path.join(destDir, file))
|
|
118
|
-
// })
|
|
119
|
-
// }
|
|
120
|
-
const copyDotSeedFilesToAppFiles = async (_appFilesDirPath) => {
|
|
121
|
-
console.log('[Seed Protocol] Copying dot seed files to app files');
|
|
122
|
-
const { endpoints } = await getTsImport(schemaFilePath);
|
|
123
|
-
const outputDirPath = endpoints.localOutputDir || _appFilesDirPath;
|
|
124
|
-
const exists = await fs.promises.access(outputDirPath).then(() => true).catch(() => false);
|
|
125
|
-
if (exists) {
|
|
126
|
-
await fs.promises.rm(outputDirPath, { recursive: true, force: true });
|
|
138
|
+
const { dotSeedDir, appSchemaDir, appMetaDir, drizzleDbConfigPath, drizzleKitPath, sdkRootDir, } = pathResolver.getAppPaths(schemaFileDir);
|
|
139
|
+
const schemaFilePath = path.join(schemaFileDir, SCHEMA_TS);
|
|
140
|
+
// Remove dotSeedDir to start fresh each time
|
|
141
|
+
if (fs.existsSync(dotSeedDir)) {
|
|
142
|
+
fs.rmSync(dotSeedDir, { recursive: true, force: true });
|
|
127
143
|
}
|
|
128
|
-
console.log(
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
144
|
+
console.log('[Seed Protocol] dotSeedDir', dotSeedDir);
|
|
145
|
+
const drizzleKitCommand = `npx --yes tsx ${drizzleKitPath}`;
|
|
146
|
+
const ensureIndexExports = (dirPath) => {
|
|
147
|
+
try {
|
|
148
|
+
// Get all file names in the directory
|
|
149
|
+
const files = fs.readdirSync(dirPath);
|
|
150
|
+
// Filter for .ts files excluding index.ts
|
|
151
|
+
const tsFiles = files.filter((file) => file.endsWith('.ts') && file !== 'index.ts');
|
|
152
|
+
// Check if index.ts exists
|
|
153
|
+
const indexFilePath = path.join(dirPath, 'index.ts');
|
|
154
|
+
try {
|
|
155
|
+
fs.accessSync(indexFilePath);
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
console.error(`index.ts not found in the directory: ${dirPath}`);
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
// Read the content of index.ts
|
|
162
|
+
const indexContent = fs.readFileSync(indexFilePath, 'utf8');
|
|
163
|
+
// Create export statements for each .ts file
|
|
164
|
+
const exportStatements = tsFiles.map((file) => `export * from './${path.basename(file, '.ts')}';`);
|
|
165
|
+
// Check if each export statement is already present in index.ts
|
|
166
|
+
const missingExports = exportStatements.filter((statement) => !indexContent.includes(statement));
|
|
167
|
+
if (missingExports.length > 0) {
|
|
168
|
+
// Append missing export statements to index.ts
|
|
169
|
+
const newContent = indexContent + '\n' + missingExports.join('\n') + '\n';
|
|
170
|
+
fs.writeFileSync(indexFilePath, newContent, 'utf8');
|
|
171
|
+
console.log(`Updated index.ts with missing exports:\n${missingExports.join('\n')}`);
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
console.log('All exports are already present in index.ts');
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
console.error(`Error processing directory: ${dirPath}`, error);
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
const copyDotSeedFilesToAppFiles = async (_appFilesDirPath) => {
|
|
182
|
+
console.log('[Seed Protocol] Copying dot seed files to app files');
|
|
183
|
+
const { endpoints } = await getTsImport(schemaFilePath);
|
|
184
|
+
const outputDirPath = endpoints.localOutputDir || _appFilesDirPath;
|
|
185
|
+
const exists = await fs.promises.access(outputDirPath).then(() => true).catch(() => false);
|
|
186
|
+
if (exists) {
|
|
187
|
+
await fs.promises.rm(outputDirPath, { recursive: true, force: true });
|
|
188
|
+
}
|
|
189
|
+
console.log(`[Seed Protocol] making dir at ${outputDirPath}`);
|
|
190
|
+
fs.mkdirSync(outputDirPath, { recursive: true });
|
|
191
|
+
console.log('[Seed Protocol] copying app files');
|
|
192
|
+
fs.cpSync(dotSeedDir, outputDirPath, { recursive: true });
|
|
193
|
+
console.log('[Seed Protocol] removing sqlite3 files and index.ts files');
|
|
194
|
+
rimrafSync(`${outputDirPath}/**/*.sqlite3`, { glob: true });
|
|
195
|
+
rimrafSync(`${outputDirPath}/**/index.ts`, { glob: true });
|
|
196
|
+
};
|
|
197
|
+
const updateSchema = async (pathToConfig, pathToMeta) => {
|
|
198
|
+
if (!fs.existsSync(pathToMeta)) {
|
|
199
|
+
console.log(`${drizzleKitCommand} generate --config=${pathToConfig}`);
|
|
200
|
+
execSync(`${drizzleKitCommand} generate --config=${pathToConfig}`);
|
|
201
|
+
}
|
|
202
|
+
execSync(`${drizzleKitCommand} migrate --config=${pathToConfig}`);
|
|
203
|
+
};
|
|
204
|
+
const runCommands = async () => {
|
|
205
|
+
const tsxExists = commandExists('tsx');
|
|
206
|
+
if (!tsxExists) {
|
|
207
|
+
execSync(`npm install -g tsx`, { stdio: 'inherit' });
|
|
208
|
+
}
|
|
209
|
+
await createDrizzleSchemaFilesFromConfig(schemaFilePath, undefined);
|
|
210
|
+
ensureIndexExports(appSchemaDir);
|
|
211
|
+
await updateSchema(drizzleDbConfigPath, appMetaDir);
|
|
212
|
+
const seedDataFilePath = path.join(__dirname, 'seedData.json');
|
|
213
|
+
await seedDatabase(seedDataFilePath);
|
|
214
|
+
};
|
|
215
|
+
copyDirectoryRecursively(path.join(pathResolver.getSdkRootDir(), 'seedSchema'), path.join(dotSeedDir, 'schema'));
|
|
216
|
+
copyDirectoryRecursively(path.join(pathResolver.getSdkRootDir(), 'node', 'codegen'), path.join(dotSeedDir, 'codegen'));
|
|
217
|
+
console.log('copying', schemaFilePath, path.join(dotSeedDir, 'schema.ts'));
|
|
218
|
+
fs.copyFileSync(schemaFilePath, path.join(dotSeedDir, 'schema.ts'));
|
|
219
|
+
runCommands()
|
|
220
|
+
.then(() => {
|
|
221
|
+
if (!appFilesDirPath) {
|
|
222
|
+
console.log('[Seed Protocol] Finished running init script');
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
return copyDotSeedFilesToAppFiles(appFilesDirPath);
|
|
226
|
+
}
|
|
227
|
+
})
|
|
228
|
+
.then(() => {
|
|
229
|
+
console.log(INIT_SCRIPT_SUCCESS_MESSAGE);
|
|
139
230
|
});
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
await createDrizzleSchemaFilesFromConfig(schemaFilePath);
|
|
150
|
-
ensureIndexExports(appSchemaDir);
|
|
151
|
-
await updateSchema(drizzleDbConfigPath, appMetaDir);
|
|
152
|
-
};
|
|
153
|
-
copyDirectoryRecursively(path.join(sdkRootDir, 'seedSchema'), path.join(dotSeedDir, 'schema'));
|
|
154
|
-
copyDirectoryRecursively(path.join(sdkRootDir, 'node', 'codegen'), path.join(dotSeedDir, 'codegen'));
|
|
155
|
-
console.log('copying', schemaFilePath, path.join(dotSeedDir, 'schema.ts'));
|
|
156
|
-
fs.copyFileSync(schemaFilePath, path.join(dotSeedDir, 'schema.ts'));
|
|
157
|
-
runCommands()
|
|
158
|
-
.then(() => {
|
|
159
|
-
if (!appFilesDirPath) {
|
|
160
|
-
console.log('[Seed Protocol] Finished running init script');
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
return copyDotSeedFilesToAppFiles(appFilesDirPath);
|
|
164
|
-
}
|
|
165
|
-
})
|
|
166
|
-
.then(() => {
|
|
167
|
-
console.log(INIT_SCRIPT_SUCCESS_MESSAGE);
|
|
168
|
-
});
|
|
231
|
+
}
|
|
232
|
+
else if (args[0] === 'seed' && args[1]) {
|
|
233
|
+
seedDatabase(args[1]);
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
console.log('Unknown command. Available commands:');
|
|
237
|
+
console.log('init [schemaPath] [appFilesPath] - Initialize the database');
|
|
238
|
+
console.log('seed [seedDataPath] - Seed the database with data from JSON file');
|
|
239
|
+
}
|
|
169
240
|
}
|
|
170
241
|
};
|
|
171
242
|
const calledFrom = pathToFileURL(process.argv[1]).href;
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sources":["../../scripts/bin.ts"],"sourcesContent":["#!/usr/bin/env node\nimport path from 'path'\nimport fs from 'fs'\nimport { execSync, } from 'child_process'\nimport { pathToFileURL } from 'url'\nimport process from 'node:process'\nimport '../src/node/helpers/EasClient'\nimport '../src/node/helpers/QueryClient'\nimport '../src/node/helpers/FileManager'\nimport '../src/node/helpers/ArweaveClient'\nimport { INIT_SCRIPT_SUCCESS_MESSAGE, SCHEMA_TS } from '../src/helpers/constants'\nimport {\n appMetaDir,\n appSchemaDir,\n dotSeedDir,\n drizzleDbConfigPath,\n drizzleKitPath,\n rootWithNodeModules,\n sdkRootDir,\n} from '../src/node/constants'\nimport { createDrizzleSchemaFilesFromConfig } from '../src/node/codegen'\nimport { rimrafSync } from 'rimraf'\nimport { getTsImport } from '@/node/helpers'\nimport { ModelClassType } from '@/types/model'\n\nlet a\n\na = process.argv.splice(2)\n\n/**\n * Copy a directory and all its contents recursively\n * @param {string} sourceDir - Path to the source directory\n * @param {string} targetDir - Path to the target directory\n */\nfunction copyDirectoryRecursively(sourceDir: string, targetDir: string) {\n // Create the target directory if it doesn't exist\n if (!fs.existsSync(targetDir)) {\n fs.mkdirSync(targetDir, { recursive: true });\n }\n\n // Read all entries in the source directory\n const entries = fs.readdirSync(sourceDir);\n\n // Process each entry\n for (const entry of entries) {\n const sourcePath = path.join(sourceDir, entry);\n const targetPath = path.join(targetDir, entry);\n \n // Check if the entry is a file or directory\n const stats = fs.statSync(sourcePath);\n \n if (stats.isFile()) {\n // Copy the file directly\n fs.copyFileSync(sourcePath, targetPath);\n console.log(`Copied file: ${sourcePath} → ${targetPath}`);\n } \n else if (stats.isDirectory()) {\n // Recursively copy the subdirectory\n copyDirectoryRecursively(sourcePath, targetPath);\n }\n }\n}\n\nconst init = (args: string[]) => {\n console.log('args:', args)\n\n if (args && args.length && args[0] === 'init') {\n console.log('[Seed Protocol] Running init script')\n\n let appFilesDirPath = args[2] || undefined\n\n console.log('appFilesDirPath', appFilesDirPath)\n\n console.log('rootWithNodeModules', rootWithNodeModules)\n\n console.log('process.cwd()', process.cwd())\n \n let schemaFileDir = args[1]\n\n console.log('args[1]', args[1])\n\n if (!schemaFileDir && process.env.IS_PORTAL && !process.cwd().includes('seed-protocol-sdk')) {\n schemaFileDir = process.cwd()\n }\n if (process.env.NODE_ENV === 'test') {\n schemaFileDir = path.join(process.cwd(), '__tests__', '__mocks__', 'node', 'project')\n }\n console.log('schemaFileDir2', schemaFileDir)\n const schemaFilePath = path.join(schemaFileDir || process.cwd(), SCHEMA_TS)\n\n // Remove dotSeedDir to start fresh each time\n if (fs.existsSync(dotSeedDir)) {\n fs.rmSync(dotSeedDir, { recursive: true, force: true })\n }\n\n console.log('[Seed Protocol] dotSeedDir', dotSeedDir)\n console.log('[Seed Protocol] sdkRootDir', sdkRootDir)\n\n const drizzleKitCommand = `npx --yes tsx ${drizzleKitPath}`\n\n const ensureIndexExports = (dirPath: string): void => {\n try {\n // Get all file names in the directory\n const files = fs.readdirSync(dirPath)\n\n // Filter for .ts files excluding index.ts\n const tsFiles = files.filter(\n (file) => file.endsWith('.ts') && file !== 'index.ts',\n )\n\n // Check if index.ts exists\n const indexFilePath = path.join(dirPath, 'index.ts')\n try {\n fs.accessSync(indexFilePath)\n } catch (error) {\n console.error(`index.ts not found in the directory: ${dirPath}`)\n return\n }\n\n // Read the content of index.ts\n const indexContent = fs.readFileSync(indexFilePath, 'utf8')\n\n // Create export statements for each .ts file\n const exportStatements = tsFiles.map(\n (file) => `export * from './${path.basename(file, '.ts')}';`,\n )\n\n // Check if each export statement is already present in index.ts\n const missingExports = exportStatements.filter(\n (statement) => !indexContent.includes(statement),\n )\n\n if (missingExports.length > 0) {\n // Append missing export statements to index.ts\n const newContent =\n indexContent + '\\n' + missingExports.join('\\n') + '\\n'\n fs.writeFileSync(indexFilePath, newContent, 'utf8')\n console.log(\n `Updated index.ts with missing exports:\\n${missingExports.join('\\n')}`,\n )\n } else {\n console.log('All exports are already present in index.ts')\n }\n } catch (error) {\n console.error(`Error processing directory: ${dirPath}`, error)\n }\n }\n\n // const copyFiles = (srcDir: string, destDir: string) => {\n // if (!fs.existsSync(destDir)) {\n // fs.mkdirSync(destDir, { recursive: true })\n // }\n // const srcFiles = fs.readdirSync(srcDir)\n // srcFiles.forEach((file) => {\n // if (f)\n // console.log(`Copying ${srcDir}/${file} to ${destDir}/${file}`)\n // fs.copyFileSync(path.join(srcDir, file), path.join(destDir, file))\n // })\n // }\n\n const copyDotSeedFilesToAppFiles = async (_appFilesDirPath: string) => {\n console.log('[Seed Protocol] Copying dot seed files to app files')\n const { endpoints } = await getTsImport<{\n models: Record<string, ModelClassType>, endpoints: Record<string, string>\n }>(schemaFilePath)\n\n const outputDirPath = endpoints.localOutputDir || _appFilesDirPath\n\n const exists = await fs.promises.access(outputDirPath).then(() => true).catch(() => false)\n if (exists) {\n await fs.promises.rm(outputDirPath, { recursive: true, force: true })\n }\n console.log(`[Seed Protocol] Removed old app files`)\n console.log(`[Seed Protocol] making dir at ${outputDirPath}`)\n fs.mkdirSync(outputDirPath, { recursive: true })\n console.log('[Seed Protocol] copying app files')\n fs.cpSync(dotSeedDir, outputDirPath, { recursive: true })\n console.log(\n '[Seed Protocol] removing sqlite3 files and index.ts files',\n )\n rimrafSync(`${outputDirPath}/**/*.sqlite3`, {\n glob: true,\n })\n rimrafSync(`${outputDirPath}/**/index.ts`, {\n glob: true,\n })\n }\n\n const updateSchema = async (pathToConfig: string, pathToMeta: string) => {\n if (!fs.existsSync(pathToMeta)) {\n console.log(`${drizzleKitCommand} generate --config=${pathToConfig}`)\n execSync(\n `${drizzleKitCommand} generate --config=${pathToConfig}`,\n )\n }\n execSync(`${drizzleKitCommand} migrate --config=${pathToConfig}`)\n }\n\n const runCommands = async () => {\n await createDrizzleSchemaFilesFromConfig(schemaFilePath, undefined)\n ensureIndexExports(appSchemaDir)\n await updateSchema(drizzleDbConfigPath, appMetaDir)\n }\n\n copyDirectoryRecursively(\n path.join(sdkRootDir, 'seedSchema'),\n path.join(dotSeedDir, 'schema'),\n )\n\n copyDirectoryRecursively(\n path.join(sdkRootDir, 'node', 'codegen',),\n path.join(dotSeedDir, 'codegen',),\n )\n\n console.log('copying', schemaFilePath, path.join(dotSeedDir, 'schema.ts'))\n\n fs.copyFileSync(schemaFilePath, path.join(dotSeedDir, 'schema.ts'))\n\n runCommands()\n .then(() => {\n if (!appFilesDirPath) {\n console.log('[Seed Protocol] Finished running init script')\n } else {\n return copyDotSeedFilesToAppFiles(appFilesDirPath)\n }\n })\n .then(() => {\n console.log(INIT_SCRIPT_SUCCESS_MESSAGE)\n })\n }\n}\n\nconst calledFrom = pathToFileURL(process.argv[1]).href\n\nconsole.log('calledFrom', calledFrom)\n\nif (\n calledFrom.endsWith('node_modules/.bin/seed') ||\n import.meta.url.endsWith('@seedprotocol/sdk/node/bin.js') ||\n import.meta.url.endsWith('scripts/bin.ts')\n) {\n // module was not imported but called directly\n init(a)\n}\n\nexport { init }\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAyBA,IAAI,CAAC;AAEL,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAE1B;;;;AAIG;AACH,SAAS,wBAAwB,CAAC,SAAiB,EAAE,SAAiB,EAAA;;IAEpE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QAC7B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;;IAI9C,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;;AAGzC,IAAA,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;QAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;;QAG9C,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;AAErC,QAAA,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;;AAElB,YAAA,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,CAAA,aAAA,EAAgB,UAAU,CAAM,GAAA,EAAA,UAAU,CAAE,CAAA,CAAC;;AAEtD,aAAA,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;;AAE5B,YAAA,wBAAwB,CAAC,UAAU,EAAE,UAAU,CAAC;;;AAGtD;AAEA,MAAM,IAAI,GAAG,CAAC,IAAc,KAAI;AAC9B,IAAA,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AAE1B,IAAA,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;AAC7C,QAAA,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC;QAElD,IAAI,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS;AAE1C,QAAA,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,eAAe,CAAC;AAE/C,QAAA,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,mBAAmB,CAAC;QAEvD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;AAE3C,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC;QAE3B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAE/B,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;AAC3F,YAAA,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;;QAE/B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE;AACnC,YAAA,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC;;AAEvF,QAAA,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC;AAC5C,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC;;AAG3E,QAAA,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;AAC7B,YAAA,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;;AAGzD,QAAA,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,UAAU,CAAC;AACrD,QAAA,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,UAAU,CAAC;AAErD,QAAA,MAAM,iBAAiB,GAAG,CAAiB,cAAA,EAAA,cAAc,EAAE;AAE3D,QAAA,MAAM,kBAAkB,GAAG,CAAC,OAAe,KAAU;AACnD,YAAA,IAAI;;gBAEF,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC;;gBAGrC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAC1B,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,UAAU,CACtD;;gBAGD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;AACpD,gBAAA,IAAI;AACF,oBAAA,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;;gBAC5B,OAAO,KAAK,EAAE;AACd,oBAAA,OAAO,CAAC,KAAK,CAAC,wCAAwC,OAAO,CAAA,CAAE,CAAC;oBAChE;;;gBAIF,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;;gBAG3D,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAClC,CAAC,IAAI,KAAK,oBAAoB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAI,EAAA,CAAA,CAC7D;;AAGD,gBAAA,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM,CAC5C,CAAC,SAAS,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CACjD;AAED,gBAAA,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;;AAE7B,oBAAA,MAAM,UAAU,GACd,YAAY,GAAG,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI;oBACxD,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC;AACnD,oBAAA,OAAO,CAAC,GAAG,CACT,CAAA,wCAAA,EAA2C,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAA,CACvE;;qBACI;AACL,oBAAA,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC;;;YAE5D,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,KAAK,CAAC,CAAA,4BAAA,EAA+B,OAAO,CAAE,CAAA,EAAE,KAAK,CAAC;;AAElE,SAAC;;;;;;;;;;;;AAcD,QAAA,MAAM,0BAA0B,GAAG,OAAO,gBAAwB,KAAI;AACpE,YAAA,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC;YAClE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,WAAW,CAEpC,cAAc,CAAC;AAElB,YAAA,MAAM,aAAa,GAAG,SAAS,CAAC,cAAc,IAAI,gBAAgB;YAElE,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAC1F,IAAI,MAAM,EAAE;AACV,gBAAA,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;;AAEvE,YAAA,OAAO,CAAC,GAAG,CAAC,CAAA,qCAAA,CAAuC,CAAC;AACpD,YAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,aAAa,CAAA,CAAE,CAAC;YAC7D,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAChD,YAAA,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC;AAChD,YAAA,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACzD,YAAA,OAAO,CAAC,GAAG,CACT,2DAA2D,CAC5D;AACD,YAAA,UAAU,CAAC,CAAA,EAAG,aAAa,CAAA,aAAA,CAAe,EAAE;AAC1C,gBAAA,IAAI,EAAE,IAAI;AACX,aAAA,CAAC;AACF,YAAA,UAAU,CAAC,CAAA,EAAG,aAAa,CAAA,YAAA,CAAc,EAAE;AACzC,gBAAA,IAAI,EAAE,IAAI;AACX,aAAA,CAAC;AACJ,SAAC;QAED,MAAM,YAAY,GAAG,OAAO,YAAoB,EAAE,UAAkB,KAAI;YACtE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;gBAC9B,OAAO,CAAC,GAAG,CAAC,CAAA,EAAG,iBAAiB,CAAsB,mBAAA,EAAA,YAAY,CAAE,CAAA,CAAC;AACrE,gBAAA,QAAQ,CACN,CAAG,EAAA,iBAAiB,sBAAsB,YAAY,CAAA,CAAE,CACzD;;AAEH,YAAA,QAAQ,CAAC,CAAG,EAAA,iBAAiB,qBAAqB,YAAY,CAAA,CAAE,CAAC;AACnE,SAAC;AAED,QAAA,MAAM,WAAW,GAAG,YAAW;AAC7B,YAAA,MAAM,kCAAkC,CAAC,cAAyB,CAAC;YACnE,kBAAkB,CAAC,YAAY,CAAC;AAChC,YAAA,MAAM,YAAY,CAAC,mBAAmB,EAAE,UAAU,CAAC;AACrD,SAAC;AAED,QAAA,wBAAwB,CACtB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EACnC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAChC;QAED,wBAAwB,CACtB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAE,EACzC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAE,CAClC;AAED,QAAA,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAE1E,QAAA,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAEnE,QAAA,WAAW;aACR,IAAI,CAAC,MAAK;YACT,IAAI,CAAC,eAAe,EAAE;AACpB,gBAAA,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC;;iBACtD;AACL,gBAAA,OAAO,0BAA0B,CAAC,eAAe,CAAC;;AAEtD,SAAC;aACA,IAAI,CAAC,MAAK;AACT,YAAA,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;AAC1C,SAAC,CAAC;;AAER;AAEA,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;AAEtD,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC;AAErC,IACE,UAAU,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACzD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAC1C;;IAEA,IAAI,CAAC,CAAC,CAAC;AACT;;;;"}
|
|
1
|
+
{"version":3,"file":"bin.js","sources":["../../scripts/bin.ts"],"sourcesContent":["#!/usr/bin/env node\nimport path from 'path'\nimport fs from 'fs'\nimport { execSync, } from 'child_process'\nimport { fileURLToPath, pathToFileURL } from 'url'\nimport process from 'node:process'\nimport '@/node/helpers/EasClient'\nimport '@/node/helpers/QueryClient'\nimport '@/node/helpers/FileManager'\nimport '@/node/helpers/ArweaveClient'\nimport { INIT_SCRIPT_SUCCESS_MESSAGE, SCHEMA_TS } from '@/helpers/constants'\nimport { PathResolver } from '@/node/PathResolver'\nimport { createDrizzleSchemaFilesFromConfig } from '@/node/codegen'\nimport { rimrafSync } from 'rimraf'\nimport { getTsImport } from '@/node/helpers'\nimport { ModelClassType } from '@/types/model'\nimport { drizzle } from 'drizzle-orm/better-sqlite3'\nimport Database from 'better-sqlite3'\nimport { appState } from '@/seedSchema/AppStateSchema'\nimport { config } from '@/seedSchema/ConfigSchema'\nimport { metadata } from '@/seedSchema/MetadataSchema'\nimport { models } from '@/seedSchema/ModelSchema'\nimport { modelUids } from '@/seedSchema/ModelUidSchema'\nimport { seeds } from '@/seedSchema/SeedSchema'\nimport { versions } from '@/seedSchema/VersionSchema'\nimport { commandExists } from '@/helpers/scripts'\n\nconst __filename = fileURLToPath(import.meta.url)\nconst __dirname = path.dirname(__filename)\n\nlet a\n\na = process.argv.splice(2)\nconst pathResolver = PathResolver.getInstance()\n\n/**\n * Copy a directory and all its contents recursively\n * @param {string} sourceDir - Path to the source directory\n * @param {string} targetDir - Path to the target directory\n */\nfunction copyDirectoryRecursively(sourceDir: string, targetDir: string) {\n // Create the target directory if it doesn't exist\n if (!fs.existsSync(targetDir)) {\n fs.mkdirSync(targetDir, { recursive: true });\n }\n\n // Read all entries in the source directory\n const entries = fs.readdirSync(sourceDir);\n\n // Process each entry\n for (const entry of entries) {\n const sourcePath = path.join(sourceDir, entry);\n const targetPath = path.join(targetDir, entry);\n \n // Check if the entry is a file or directory\n const stats = fs.statSync(sourcePath);\n \n if (stats.isFile()) {\n // Copy the file directly\n fs.copyFileSync(sourcePath, targetPath);\n console.log(`Copied file: ${sourcePath} → ${targetPath}`);\n } \n else if (stats.isDirectory()) {\n // Recursively copy the subdirectory\n copyDirectoryRecursively(sourcePath, targetPath);\n }\n }\n}\n\nconst seedDatabase = async (seedDataPath: string) => {\n console.log('[Seed Protocol] Running seed script')\n\n try {\n // Read the seed data file\n const seedData = JSON.parse(fs.readFileSync(seedDataPath, 'utf-8'))\n \n // Connect to the database\n const dotSeedDir = pathResolver.getDotSeedDir()\n const dbPath = path.join(dotSeedDir, 'db', 'app_db.sqlite3')\n const sqlite = new Database(dbPath)\n const db = drizzle(sqlite)\n \n // Seed each table based on the provided data\n if (seedData.appState && seedData.appState.length > 0) {\n await db.insert(appState).values(seedData.appState)\n console.log('Seeded appState table')\n }\n \n if (seedData.config && seedData.config.length > 0) {\n await db.insert(config).values(seedData.config)\n console.log('Seeded config table')\n }\n \n if (seedData.models && seedData.models.length > 0) {\n await db.insert(models).values(seedData.models)\n console.log('Seeded models table')\n }\n \n if (seedData.modelUids && seedData.modelUids.length > 0) {\n await db.insert(modelUids).values(seedData.modelUids)\n console.log('Seeded modelUids table')\n }\n \n if (seedData.metadata && seedData.metadata.length > 0) {\n await db.insert(metadata).values(seedData.metadata)\n console.log('Seeded metadata table')\n }\n \n if (seedData.seeds && seedData.seeds.length > 0) {\n await db.insert(seeds).values(seedData.seeds)\n console.log('Seeded seeds table')\n }\n \n if (seedData.versions && seedData.versions.length > 0) {\n await db.insert(versions).values(seedData.versions)\n console.log('Seeded versions table')\n }\n \n console.log('[Seed Protocol] Successfully seeded database')\n } catch (error) {\n console.error('[Seed Protocol] Error seeding database:', error)\n process.exit(1)\n }\n}\n\nconst init = (args: string[],) => {\n console.log('args:', args)\n\n if (args && args.length) {\n if (args[0] === 'init') {\n console.log('[Seed Protocol] Running init script')\n\n let appFilesDirPath = args[2] || undefined\n let schemaFileDir = args[1]\n\n if (schemaFileDir && schemaFileDir.startsWith('.')) {\n const relativePath = schemaFileDir.replace('./', '')\n if (!process.cwd().includes(relativePath)) {\n schemaFileDir = path.resolve(schemaFileDir,)\n }\n if (process.cwd().includes(relativePath)) {\n schemaFileDir = process.cwd()\n }\n }\n\n if (!schemaFileDir && !process.cwd().includes('seed-protocol-sdk')) {\n schemaFileDir = process.cwd()\n }\n\n console.log('[Seed Protocol] schemaFileDir', schemaFileDir)\n\n if (!schemaFileDir) {\n const defaultSchemaFilePath = path.join(process.cwd(), 'schema.ts')\n if (fs.existsSync(defaultSchemaFilePath)) {\n schemaFileDir = process.cwd()\n } else {\n console.error('No schema file path provided and no default schema file found.')\n return\n }\n }\n\n const {\n dotSeedDir,\n appSchemaDir,\n appMetaDir,\n drizzleDbConfigPath,\n drizzleKitPath,\n sdkRootDir,\n } = pathResolver.getAppPaths(schemaFileDir)\n\n const schemaFilePath = path.join(schemaFileDir, SCHEMA_TS)\n\n // Remove dotSeedDir to start fresh each time\n if (fs.existsSync(dotSeedDir)) {\n fs.rmSync(dotSeedDir, { recursive: true, force: true })\n }\n\n console.log('[Seed Protocol] dotSeedDir', dotSeedDir)\n\n const tsconfigArg = `--tsconfig ${sdkRootDir}/tsconfig.json`\n\n const drizzleKitCommand = `npx --yes tsx ${drizzleKitPath}`\n\n const ensureIndexExports = (dirPath: string): void => {\n try {\n // Get all file names in the directory\n const files = fs.readdirSync(dirPath)\n\n // Filter for .ts files excluding index.ts\n const tsFiles = files.filter(\n (file) => file.endsWith('.ts') && file !== 'index.ts',\n )\n\n // Check if index.ts exists\n const indexFilePath = path.join(dirPath, 'index.ts')\n try {\n fs.accessSync(indexFilePath)\n } catch (error) {\n console.error(`index.ts not found in the directory: ${dirPath}`)\n return\n }\n\n // Read the content of index.ts\n const indexContent = fs.readFileSync(indexFilePath, 'utf8')\n\n // Create export statements for each .ts file\n const exportStatements = tsFiles.map(\n (file) => `export * from './${path.basename(file, '.ts')}';`,\n )\n\n // Check if each export statement is already present in index.ts\n const missingExports = exportStatements.filter(\n (statement) => !indexContent.includes(statement),\n )\n\n if (missingExports.length > 0) {\n // Append missing export statements to index.ts\n const newContent =\n indexContent + '\\n' + missingExports.join('\\n') + '\\n'\n fs.writeFileSync(indexFilePath, newContent, 'utf8')\n console.log(\n `Updated index.ts with missing exports:\\n${missingExports.join('\\n')}`,\n )\n } else {\n console.log('All exports are already present in index.ts')\n }\n } catch (error) {\n console.error(`Error processing directory: ${dirPath}`, error)\n }\n }\n\n const copyDotSeedFilesToAppFiles = async (_appFilesDirPath: string) => {\n console.log('[Seed Protocol] Copying dot seed files to app files')\n const { endpoints } = await getTsImport<{\n models: Record<string, ModelClassType>,\n endpoints: Record<string, string>\n }>(schemaFilePath)\n\n const outputDirPath = endpoints.localOutputDir || _appFilesDirPath\n\n const exists = await fs.promises.access(outputDirPath).then(() => true).catch(() => false)\n if (exists) {\n await fs.promises.rm(outputDirPath, { recursive: true, force: true })\n }\n \n console.log(`[Seed Protocol] making dir at ${outputDirPath}`)\n fs.mkdirSync(outputDirPath, { recursive: true })\n console.log('[Seed Protocol] copying app files')\n fs.cpSync(dotSeedDir, outputDirPath, { recursive: true })\n console.log('[Seed Protocol] removing sqlite3 files and index.ts files')\n rimrafSync(`${outputDirPath}/**/*.sqlite3`, { glob: true })\n rimrafSync(`${outputDirPath}/**/index.ts`, { glob: true })\n }\n\n const updateSchema = async (pathToConfig: string, pathToMeta: string) => {\n if (!fs.existsSync(pathToMeta)) {\n console.log(`${drizzleKitCommand} generate --config=${pathToConfig}`)\n execSync(\n `${drizzleKitCommand} generate --config=${pathToConfig}`,\n )\n }\n execSync(`${drizzleKitCommand} migrate --config=${pathToConfig}`)\n }\n\n const runCommands = async () => {\n const tsxExists = commandExists('tsx')\n if (!tsxExists) {\n execSync(`npm install -g tsx`, {stdio: 'inherit'})\n }\n\n await createDrizzleSchemaFilesFromConfig(schemaFilePath, undefined)\n ensureIndexExports(appSchemaDir!)\n await updateSchema(drizzleDbConfigPath, appMetaDir!)\n const seedDataFilePath = path.join(__dirname, 'seedData.json')\n await seedDatabase(seedDataFilePath)\n }\n\n copyDirectoryRecursively(\n path.join(pathResolver.getSdkRootDir(), 'seedSchema'),\n path.join(dotSeedDir, 'schema'),\n )\n\n copyDirectoryRecursively(\n path.join(pathResolver.getSdkRootDir(), 'node', 'codegen'),\n path.join(dotSeedDir, 'codegen'),\n )\n\n console.log('copying', schemaFilePath, path.join(dotSeedDir, 'schema.ts'))\n\n fs.copyFileSync(schemaFilePath, path.join(dotSeedDir, 'schema.ts'))\n\n runCommands()\n .then(() => {\n if (!appFilesDirPath) {\n console.log('[Seed Protocol] Finished running init script')\n } else {\n return copyDotSeedFilesToAppFiles(appFilesDirPath)\n }\n })\n .then(() => {\n console.log(INIT_SCRIPT_SUCCESS_MESSAGE)\n })\n } else if (args[0] === 'seed' && args[1]) {\n seedDatabase(args[1])\n } else {\n console.log('Unknown command. Available commands:')\n console.log('init [schemaPath] [appFilesPath] - Initialize the database')\n console.log('seed [seedDataPath] - Seed the database with data from JSON file')\n }\n }\n}\n\nconst calledFrom = pathToFileURL(process.argv[1]).href\n\nconsole.log('calledFrom', calledFrom)\n\nif (\n calledFrom.endsWith('node_modules/.bin/seed') ||\n import.meta.url.endsWith('@seedprotocol/sdk/node/bin.js') ||\n import.meta.url.endsWith('scripts/bin.ts')\n) {\n // module was not imported but called directly\n init(a)\n}\n\nexport { init }\n"],"names":[],"mappings":"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"}
|
package/dist/main.js
CHANGED
|
@@ -1,13 +1,25 @@
|
|
|
1
|
+
export { default as SeedImage } from './src/browser/react/SeedImage.js';
|
|
1
2
|
import { enableMapSet } from 'immer';
|
|
2
3
|
import 'reflect-metadata';
|
|
3
4
|
export { Model } from './src/schema/model/index.js';
|
|
4
5
|
export { Boolean, Date, Image, Json, List, Number, Property, Relation, Text } from './src/schema/property/index.js';
|
|
5
|
-
export { Item } from './src/Item/
|
|
6
|
+
export { BaseItem as Item } from './src/Item/BaseItem.js';
|
|
7
|
+
export { BaseItemProperty as ItemProperty } from './src/ItemProperty/BaseItemProperty.js';
|
|
6
8
|
export { useCreateItem, useItem, useItems, usePublishItem } from './src/browser/react/item.js';
|
|
7
9
|
export { useItemProperties, useItemProperty } from './src/browser/react/property.js';
|
|
8
10
|
export { useGlobalServiceStatus, usePersistedSnapshots, useService, useServices } from './src/browser/react/services.js';
|
|
9
11
|
import './src/browser/react/db.js';
|
|
10
12
|
export { useDeleteItem } from './src/browser/react/trash.js';
|
|
13
|
+
export { useModels } from './src/browser/react/model.js';
|
|
14
|
+
export { FileManager as FileManagerBrowser } from './src/browser/helpers/FileManager.js';
|
|
15
|
+
export { Db as DbBrowser } from './src/browser/db/Db.js';
|
|
16
|
+
export { seeds } from './src/seedSchema/SeedSchema.js';
|
|
17
|
+
export { versions } from './src/seedSchema/VersionSchema.js';
|
|
18
|
+
export { metadata } from './src/seedSchema/MetadataSchema.js';
|
|
19
|
+
import './src/seedSchema/AppStateSchema.js';
|
|
20
|
+
export { models } from './src/seedSchema/ModelSchema.js';
|
|
21
|
+
import './src/seedSchema/ModelUidSchema.js';
|
|
22
|
+
export { getModel, getModelNames, getModels } from './src/stores/modelClass.js';
|
|
11
23
|
export { getCorrectId } from './src/helpers/index.js';
|
|
12
24
|
export { eventEmitter } from './src/eventBus.js';
|
|
13
25
|
export { withSeed } from './src/node/webpack/index.js';
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sources":["../../src/index.ts"],"sourcesContent":["import { enableMapSet } from 'immer'\n\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\
|
|
1
|
+
{"version":3,"file":"main.js","sources":["../../src/index.ts"],"sourcesContent":["import SeedImage from './browser/react/SeedImage'\nimport { enableMapSet } from 'immer'\n\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\nexport { BaseItem as Item } from './Item/BaseItem'\nexport { BaseItemProperty as ItemProperty } from './ItemProperty/BaseItemProperty'\n\nexport {\n useItems,\n useItem,\n useItemProperties,\n useCreateItem,\n useItemProperty,\n useDeleteItem,\n useGlobalServiceStatus,\n usePublishItem,\n usePersistedSnapshots,\n useServices,\n useService,\n useModels,\n} from './browser/react'\n\n\nexport { SeedImage }\n\nexport {FileManager as FileManagerBrowser} from './browser/helpers/FileManager'\nexport {Db as DbBrowser} from './browser/db/Db'\n\nexport {models, versions, seeds, metadata, } from './seedSchema'\n\nexport {getModels, getModel, getModelNames,} from './stores/modelClass'\n\nexport { getCorrectId, } from './helpers'\n\nexport {\n eventEmitter,\n} from './eventBus'\n\nenableMapSet()\n\nexport { withSeed } from './node/webpack'\n\nexport type { PublishUpload } from './db/read/getPublishUploads'\n\n\nexport { client } from './client'\n\nexport * from './types'\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDA,YAAY,EAAE"}
|
|
@@ -1,38 +1,19 @@
|
|
|
1
1
|
import { defineConfig } from 'drizzle-kit'
|
|
2
2
|
import dotenv from 'dotenv'
|
|
3
|
-
import process from 'node:process'
|
|
4
|
-
import path from 'path'
|
|
5
3
|
import { DrizzleConfig } from 'drizzle-orm'
|
|
4
|
+
import { PathResolver } from '../PathResolver'
|
|
6
5
|
|
|
7
6
|
dotenv.config()
|
|
8
7
|
|
|
9
|
-
|
|
8
|
+
const pathResolver = PathResolver.getInstance()
|
|
10
9
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
let dotSeedDir = path.join(process.cwd(), '.seed')
|
|
16
|
-
|
|
17
|
-
if (process.env.IS_SEED_DEV) {
|
|
18
|
-
dotSeedDir = path.join(
|
|
19
|
-
process.cwd(),
|
|
20
|
-
'__tests__',
|
|
21
|
-
'__mocks__',
|
|
22
|
-
'node',
|
|
23
|
-
'project',
|
|
24
|
-
'.seed',
|
|
25
|
-
)
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
let schemaDir = `${sdkRoot}/dist/seedSchema/*.ts`
|
|
29
|
-
|
|
30
|
-
if (process.env.IS_SEED_DEV) {
|
|
31
|
-
schemaDir = `${sdkRoot}/seedSchema/*.ts`
|
|
32
|
-
}
|
|
10
|
+
const {
|
|
11
|
+
appSchemaDir,
|
|
12
|
+
dotSeedDir,
|
|
13
|
+
} = pathResolver.getAppPaths()
|
|
33
14
|
|
|
34
15
|
export default defineConfig({
|
|
35
|
-
schema:
|
|
16
|
+
schema: appSchemaDir,
|
|
36
17
|
dialect: 'sqlite',
|
|
37
18
|
out: `${dotSeedDir}/db`,
|
|
38
19
|
dbCredentials: {
|
package/dist/scripts/bin.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import '
|
|
3
|
-
import '
|
|
4
|
-
import '
|
|
5
|
-
import '
|
|
2
|
+
import '@/node/helpers/EasClient';
|
|
3
|
+
import '@/node/helpers/QueryClient';
|
|
4
|
+
import '@/node/helpers/FileManager';
|
|
5
|
+
import '@/node/helpers/ArweaveClient';
|
|
6
6
|
declare const init: (args: string[]) => void;
|
|
7
7
|
export { init };
|
|
8
8
|
//# sourceMappingURL=bin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../../scripts/bin.ts"],"names":[],"mappings":";AAMA,OAAO
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../../scripts/bin.ts"],"names":[],"mappings":";AAMA,OAAO,0BAA0B,CAAA;AACjC,OAAO,4BAA4B,CAAA;AACnC,OAAO,4BAA4B,CAAA;AACnC,OAAO,8BAA8B,CAAA;AAoHrC,QAAA,MAAM,IAAI,SAAU,MAAM,EAAE,SAyL3B,CAAA;AAeD,OAAO,EAAE,IAAI,EAAE,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"appState": [
|
|
3
|
+
],
|
|
4
|
+
"config": [
|
|
5
|
+
],
|
|
6
|
+
"models": [
|
|
7
|
+
{
|
|
8
|
+
"name": "Image"
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"modelUids": [
|
|
12
|
+
{
|
|
13
|
+
"uid": "0x5442a1004fe4152a06ed806367a989942f7051bad21bbed5b98d855509f79aed",
|
|
14
|
+
"modelId": 1
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"metadata": [
|
|
18
|
+
],
|
|
19
|
+
"seeds": [
|
|
20
|
+
],
|
|
21
|
+
"versions": [
|
|
22
|
+
]
|
|
23
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { itemMachineSingle } from './service/itemMachineSingle.js';
|
|
2
|
-
import {
|
|
2
|
+
import { INTERNAL_PROPERTY_NAMES } from '../helpers/constants.js';
|
|
3
3
|
import { getModel } from '../stores/modelClass.js';
|
|
4
4
|
import { immerable } from 'immer';
|
|
5
5
|
import { BehaviorSubject } from 'rxjs';
|
|
@@ -80,7 +80,7 @@ class BaseItem {
|
|
|
80
80
|
}
|
|
81
81
|
const propertiesObj = {};
|
|
82
82
|
for (const [key, propertyInstance] of context.propertyInstances) {
|
|
83
|
-
if (typeof key !== 'string' ||
|
|
83
|
+
if (typeof key !== 'string' || INTERNAL_PROPERTY_NAMES.includes(key)) {
|
|
84
84
|
propertiesObj[key.toString()] = propertyInstance;
|
|
85
85
|
continue;
|
|
86
86
|
}
|
|
@@ -107,7 +107,7 @@ class BaseItem {
|
|
|
107
107
|
seedUid,
|
|
108
108
|
versionLocalId: latestVersionLocalId,
|
|
109
109
|
versionUid: latestVersionUid,
|
|
110
|
-
modelName
|
|
110
|
+
modelName,
|
|
111
111
|
};
|
|
112
112
|
if (ModelClass && ModelClass.schema) {
|
|
113
113
|
const schema = ModelClass.schema;
|