coze-coding-dev-sdk 0.3.0 → 0.3.1

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 (41) hide show
  1. package/dist/cli/index.js +2 -4
  2. package/dist/cli/index.js.map +1 -1
  3. package/dist/index.d.ts +0 -2
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +0 -2
  6. package/dist/index.js.map +1 -1
  7. package/dist/version.d.ts +1 -1
  8. package/dist/version.js +1 -1
  9. package/package.json +3 -11
  10. package/dist/cli/commands/db.d.ts +0 -3
  11. package/dist/cli/commands/db.d.ts.map +0 -1
  12. package/dist/cli/commands/db.js +0 -91
  13. package/dist/cli/commands/db.js.map +0 -1
  14. package/dist/database/client.d.ts +0 -13
  15. package/dist/database/client.d.ts.map +0 -1
  16. package/dist/database/client.js +0 -142
  17. package/dist/database/client.js.map +0 -1
  18. package/dist/database/index.d.ts +0 -4
  19. package/dist/database/index.d.ts.map +0 -1
  20. package/dist/database/index.js +0 -20
  21. package/dist/database/index.js.map +0 -1
  22. package/dist/database/migration.d.ts +0 -7
  23. package/dist/database/migration.d.ts.map +0 -1
  24. package/dist/database/migration.js +0 -190
  25. package/dist/database/migration.js.map +0 -1
  26. package/dist/database/models.d.ts +0 -26
  27. package/dist/database/models.d.ts.map +0 -1
  28. package/dist/database/models.js +0 -15
  29. package/dist/database/models.js.map +0 -1
  30. package/dist/s3/client.d.ts +0 -66
  31. package/dist/s3/client.d.ts.map +0 -1
  32. package/dist/s3/client.js +0 -253
  33. package/dist/s3/client.js.map +0 -1
  34. package/dist/s3/index.d.ts +0 -3
  35. package/dist/s3/index.d.ts.map +0 -1
  36. package/dist/s3/index.js +0 -19
  37. package/dist/s3/index.js.map +0 -1
  38. package/dist/s3/models.d.ts +0 -23
  39. package/dist/s3/models.d.ts.map +0 -1
  40. package/dist/s3/models.js +0 -15
  41. package/dist/s3/models.js.map +0 -1
package/dist/cli/index.js CHANGED
@@ -6,12 +6,11 @@ const video_1 = require("./commands/video");
6
6
  const search_1 = require("./commands/search");
7
7
  const voice_1 = require("./commands/voice");
8
8
  const chat_1 = require("./commands/chat");
9
- const db_1 = require("./commands/db");
10
9
  const program = new commander_1.Command();
11
10
  program
12
11
  .name('coze-coding-ai')
13
- .description('Coze Coding CLI - AI-powered tools for image generation, video generation, search, voice, chat, and database')
14
- .version('0.2.0');
12
+ .description('Coze Coding CLI - AI-powered tools for image generation, video generation, search, voice, and chat')
13
+ .version('0.3.0');
15
14
  program.addCommand(image_1.imageCommand);
16
15
  program.addCommand(video_1.videoCommand);
17
16
  program.addCommand(video_1.videoStatusCommand);
@@ -19,6 +18,5 @@ program.addCommand(search_1.searchCommand);
19
18
  program.addCommand(voice_1.ttsCommand);
20
19
  program.addCommand(voice_1.asrCommand);
21
20
  program.addCommand(chat_1.chatCommand);
22
- program.addCommand(db_1.dbCommand);
23
21
  program.parse(process.argv);
24
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;AAAA,yCAAoC;AACpC,4CAAgD;AAChD,4CAAoE;AACpE,8CAAkD;AAClD,4CAA0D;AAC1D,0CAA8C;AAC9C,sCAA0C;AAE1C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,gBAAgB,CAAC;KACtB,WAAW,CAAC,8GAA8G,CAAC;KAC3H,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,0BAAkB,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,kBAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,kBAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,cAAS,CAAC,CAAC;AAE9B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;AAAA,yCAAoC;AACpC,4CAAgD;AAChD,4CAAoE;AACpE,8CAAkD;AAClD,4CAA0D;AAC1D,0CAA8C;AAE9C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,gBAAgB,CAAC;KACtB,WAAW,CAAC,oGAAoG,CAAC;KACjH,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,0BAAkB,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,kBAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,kBAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAEhC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,5 @@ export * from './search';
4
4
  export * from './voice';
5
5
  export * from './video';
6
6
  export * from './llm';
7
- export * from './database';
8
- export * from './s3';
9
7
  export { VERSION } from './version';
10
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,MAAM,CAAC;AACrB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -21,8 +21,6 @@ __exportStar(require("./search"), exports);
21
21
  __exportStar(require("./voice"), exports);
22
22
  __exportStar(require("./video"), exports);
23
23
  __exportStar(require("./llm"), exports);
24
- __exportStar(require("./database"), exports);
25
- __exportStar(require("./s3"), exports);
26
24
  var version_1 = require("./version");
27
25
  Object.defineProperty(exports, "VERSION", { enumerable: true, get: function () { return version_1.VERSION; } });
28
26
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,0CAAwB;AACxB,2CAAyB;AACzB,0CAAwB;AACxB,0CAAwB;AACxB,wCAAsB;AACtB,6CAA2B;AAC3B,uCAAqB;AACrB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,0CAAwB;AACxB,2CAAyB;AACzB,0CAAwB;AACxB,0CAAwB;AACxB,wCAAsB;AACtB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.2.0";
1
+ export declare const VERSION = "0.3.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '0.2.0';
4
+ exports.VERSION = '0.3.0';
5
5
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coze-coding-dev-sdk",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Coze Coding Dev SDK - 优雅的多功能 AI SDK,支持图片生成、视频生成、语音合成、语音识别、大语言模型和联网搜索",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -64,17 +64,9 @@
64
64
  "commander": "^14.0.2",
65
65
  "ora": "^9.0.0"
66
66
  },
67
- "optionalDependencies": {
68
- "@aws-sdk/client-s3": "^3.0.0",
69
- "@aws-sdk/lib-storage": "^3.0.0",
70
- "drizzle-kit": "^0.30.0",
71
- "drizzle-orm": "^0.30.0",
72
- "pg": "^8.0.0"
73
- },
74
67
  "devDependencies": {
75
- "@types/jest": "^29.5.14",
76
- "@types/node": "^20.19.27",
77
- "@types/pg": "^8.0.0",
68
+ "@types/jest": "^29.0.0",
69
+ "@types/node": "^20.0.0",
78
70
  "@typescript-eslint/eslint-plugin": "^6.0.0",
79
71
  "@typescript-eslint/parser": "^6.0.0",
80
72
  "eslint": "^8.0.0",
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const dbCommand: Command;
3
- //# sourceMappingURL=db.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,SAAS,SACe,CAAC"}
@@ -1,91 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.dbCommand = void 0;
40
- const commander_1 = require("commander");
41
- const chalk_1 = __importDefault(require("chalk"));
42
- const ora_1 = __importDefault(require("ora"));
43
- const path = __importStar(require("path"));
44
- exports.dbCommand = new commander_1.Command('db')
45
- .description('Database operations');
46
- exports.dbCommand
47
- .command('generate-models')
48
- .description('Generate ORM models from database schema')
49
- .option('-o, --output <path>', 'Output file path', 'src/storage/database/shared/schema.ts')
50
- .option('-v, --verbose', 'Enable verbose output')
51
- .action(async (options) => {
52
- const spinner = (0, ora_1.default)('Generating models from database...').start();
53
- try {
54
- const { generateModels } = await Promise.resolve().then(() => __importStar(require('../../database')));
55
- const outputPath = path.resolve(options.output);
56
- await generateModels({
57
- outputPath,
58
- verbose: options.verbose,
59
- });
60
- spinner.succeed(chalk_1.default.green(`Models generated at ${outputPath}`));
61
- }
62
- catch (error) {
63
- spinner.fail(chalk_1.default.red('Failed to generate models'));
64
- console.error(chalk_1.default.red(error.message));
65
- process.exit(1);
66
- }
67
- });
68
- exports.dbCommand
69
- .command('upgrade')
70
- .description('Push schema changes to database')
71
- .option('-s, --schema <path>', 'Schema file path', 'src/storage/database/shared/schema.ts')
72
- .option('-p, --project <path>', 'Project root path', process.cwd())
73
- .option('-v, --verbose', 'Enable verbose output')
74
- .action(async (options) => {
75
- const spinner = (0, ora_1.default)('Pushing schema to database...').start();
76
- try {
77
- const { upgrade } = await Promise.resolve().then(() => __importStar(require('../../database')));
78
- await upgrade({
79
- schemaPath: options.schema,
80
- projectPath: options.project,
81
- verbose: options.verbose,
82
- });
83
- spinner.succeed(chalk_1.default.green('Database schema updated successfully'));
84
- }
85
- catch (error) {
86
- spinner.fail(chalk_1.default.red('Failed to upgrade database'));
87
- console.error(chalk_1.default.red(error.message));
88
- process.exit(1);
89
- }
90
- });
91
- //# sourceMappingURL=db.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../../src/cli/commands/db.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAsB;AACtB,2CAA6B;AAEhB,QAAA,SAAS,GAAG,IAAI,mBAAO,CAAC,IAAI,CAAC;KACvC,WAAW,CAAC,qBAAqB,CAAC,CAAC;AAEtC,iBAAS;KACN,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,uCAAuC,CAAC;KAC1F,MAAM,CAAC,eAAe,EAAE,uBAAuB,CAAC;KAChD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,oCAAoC,CAAC,CAAC,KAAK,EAAE,CAAC;IAElE,IAAI,CAAC;QACH,MAAM,EAAE,cAAc,EAAE,GAAG,wDAAa,gBAAgB,GAAC,CAAC;QAE1D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEhD,MAAM,cAAc,CAAC;YACnB,UAAU;YACV,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QAEH,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,iBAAS;KACN,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,uCAAuC,CAAC;KAC1F,MAAM,CAAC,sBAAsB,EAAE,mBAAmB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAClE,MAAM,CAAC,eAAe,EAAE,uBAAuB,CAAC;KAChD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,+BAA+B,CAAC,CAAC,KAAK,EAAE,CAAC;IAE7D,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,wDAAa,gBAAgB,GAAC,CAAC;QAEnD,MAAM,OAAO,CAAC;YACZ,UAAU,EAAE,OAAO,CAAC,MAAM;YAC1B,WAAW,EAAE,OAAO,CAAC,OAAO;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QAEH,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Database client module
3
- */
4
- import { drizzle } from 'drizzle-orm/node-postgres';
5
- import pg from 'pg';
6
- import { DatabasePoolConfig } from './models';
7
- export declare function loadEnv(): void;
8
- export declare function getDbUrl(): string;
9
- export declare function getPool(config?: DatabasePoolConfig): Promise<pg.Pool>;
10
- export declare function getDb<T extends Record<string, unknown> = Record<string, never>>(schema?: T): Promise<ReturnType<typeof drizzle>>;
11
- export declare function getClient(): Promise<pg.PoolClient>;
12
- export declare function closePool(): Promise<void>;
13
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/database/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAkB,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAI9D,wBAAgB,OAAO,IAAI,IAAI,CAyD9B;AAED,wBAAgB,QAAQ,IAAI,MAAM,CAiBjC;AAsCD,wBAAsB,OAAO,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAM3E;AAED,wBAAsB,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACnF,MAAM,CAAC,EAAE,CAAC,GACT,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAMrC;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,CAGxD;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAM/C"}
@@ -1,142 +0,0 @@
1
- "use strict";
2
- /**
3
- * Database client module
4
- */
5
- var __importDefault = (this && this.__importDefault) || function (mod) {
6
- return (mod && mod.__esModule) ? mod : { "default": mod };
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.loadEnv = loadEnv;
10
- exports.getDbUrl = getDbUrl;
11
- exports.getPool = getPool;
12
- exports.getDb = getDb;
13
- exports.getClient = getClient;
14
- exports.closePool = closePool;
15
- const node_postgres_1 = require("drizzle-orm/node-postgres");
16
- const pg_1 = __importDefault(require("pg"));
17
- const child_process_1 = require("child_process");
18
- const models_1 = require("./models");
19
- let envLoaded = false;
20
- function loadEnv() {
21
- if (envLoaded || process.env.PGDATABASE_URL) {
22
- return;
23
- }
24
- try {
25
- try {
26
- require('dotenv').config();
27
- if (process.env.PGDATABASE_URL) {
28
- envLoaded = true;
29
- return;
30
- }
31
- }
32
- catch {
33
- // dotenv not available
34
- }
35
- const pythonCode = `
36
- import os
37
- import sys
38
- try:
39
- from coze_workload_identity import Client
40
- client = Client()
41
- env_vars = client.get_project_env_vars()
42
- client.close()
43
- for env_var in env_vars:
44
- print(f"{env_var.key}={env_var.value}")
45
- except Exception as e:
46
- print(f"# Error: {e}", file=sys.stderr)
47
- `;
48
- const output = (0, child_process_1.execSync)(`python3 -c '${pythonCode.replace(/'/g, "'\"'\"'")}'`, {
49
- encoding: 'utf-8',
50
- timeout: 10000,
51
- stdio: ['pipe', 'pipe', 'pipe'],
52
- });
53
- const lines = output.trim().split('\n');
54
- for (const line of lines) {
55
- if (line.startsWith('#'))
56
- continue;
57
- const eqIndex = line.indexOf('=');
58
- if (eqIndex > 0) {
59
- const key = line.substring(0, eqIndex);
60
- let value = line.substring(eqIndex + 1);
61
- if ((value.startsWith("'") && value.endsWith("'")) ||
62
- (value.startsWith('"') && value.endsWith('"'))) {
63
- value = value.slice(1, -1);
64
- }
65
- if (!process.env[key]) {
66
- process.env[key] = value;
67
- }
68
- }
69
- }
70
- envLoaded = true;
71
- }
72
- catch {
73
- // Silently fail
74
- }
75
- }
76
- function getDbUrl() {
77
- loadEnv();
78
- let url = process.env.PGDATABASE_URL || '';
79
- if (!url) {
80
- throw new Error('Database URL not configured. Set PGDATABASE_URL environment variable.\n' +
81
- 'Did you create a database? You can create one via the Coze Coding platform.');
82
- }
83
- if (url.startsWith('postgres://')) {
84
- url = 'postgresql://' + url.substring('postgres://'.length);
85
- }
86
- return url;
87
- }
88
- let pool = null;
89
- let db = null;
90
- async function createPoolWithRetry(config) {
91
- const url = getDbUrl();
92
- const newPool = new pg_1.default.Pool({
93
- connectionString: url,
94
- max: config?.maxConnections ?? models_1.DatabaseConfig.MAX_CONNECTIONS,
95
- idleTimeoutMillis: config?.idleTimeoutMillis ?? models_1.DatabaseConfig.IDLE_TIMEOUT_MILLIS,
96
- connectionTimeoutMillis: config?.connectionTimeoutMillis ?? models_1.DatabaseConfig.CONNECTION_TIMEOUT_MILLIS,
97
- });
98
- const startTime = Date.now();
99
- let lastError = null;
100
- while (Date.now() - startTime < models_1.DatabaseConfig.MAX_RETRY_TIME) {
101
- try {
102
- const client = await newPool.connect();
103
- await client.query('SELECT 1');
104
- client.release();
105
- return newPool;
106
- }
107
- catch (e) {
108
- lastError = e;
109
- const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
110
- console.warn(`Database connection failed, retrying... (elapsed: ${elapsed}s)`);
111
- await new Promise((resolve) => setTimeout(resolve, Math.min(1000, models_1.DatabaseConfig.MAX_RETRY_TIME - (Date.now() - startTime))));
112
- }
113
- }
114
- console.error(`Database connection failed after ${models_1.DatabaseConfig.MAX_RETRY_TIME / 1000}s: ${lastError?.message}`);
115
- throw lastError;
116
- }
117
- async function getPool(config) {
118
- loadEnv();
119
- if (!pool) {
120
- pool = await createPoolWithRetry(config);
121
- }
122
- return pool;
123
- }
124
- async function getDb(schema) {
125
- if (!db) {
126
- const p = await getPool();
127
- db = schema ? (0, node_postgres_1.drizzle)(p, { schema }) : (0, node_postgres_1.drizzle)(p);
128
- }
129
- return db;
130
- }
131
- async function getClient() {
132
- const p = await getPool();
133
- return p.connect();
134
- }
135
- async function closePool() {
136
- if (pool) {
137
- await pool.end();
138
- pool = null;
139
- db = null;
140
- }
141
- }
142
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/database/client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export * from './client';
2
- export * from './migration';
3
- export * from './models';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./client"), exports);
18
- __exportStar(require("./migration"), exports);
19
- __exportStar(require("./models"), exports);
20
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,2CAAyB"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Database migration module
3
- */
4
- import { GenerateModelsOptions, UpgradeOptions } from './models';
5
- export declare function generateModels(options?: GenerateModelsOptions): Promise<void>;
6
- export declare function upgrade(options?: UpgradeOptions): Promise<void>;
7
- //# sourceMappingURL=migration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../src/database/migration.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAkB,MAAM,UAAU,CAAC;AAqBjF,wBAAsB,cAAc,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CA4FvF;AAED,wBAAsB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8DzE"}
@@ -1,190 +0,0 @@
1
- "use strict";
2
- /**
3
- * Database migration module
4
- */
5
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = { enumerable: true, get: function() { return m[k]; } };
10
- }
11
- Object.defineProperty(o, k2, desc);
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
- Object.defineProperty(o, "default", { enumerable: true, value: v });
18
- }) : function(o, v) {
19
- o["default"] = v;
20
- });
21
- var __importStar = (this && this.__importStar) || (function () {
22
- var ownKeys = function(o) {
23
- ownKeys = Object.getOwnPropertyNames || function (o) {
24
- var ar = [];
25
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
- return ar;
27
- };
28
- return ownKeys(o);
29
- };
30
- return function (mod) {
31
- if (mod && mod.__esModule) return mod;
32
- var result = {};
33
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
- __setModuleDefault(result, mod);
35
- return result;
36
- };
37
- })();
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.generateModels = generateModels;
40
- exports.upgrade = upgrade;
41
- const child_process_1 = require("child_process");
42
- const fs = __importStar(require("fs"));
43
- const path = __importStar(require("path"));
44
- const os = __importStar(require("os"));
45
- const models_1 = require("./models");
46
- const client_1 = require("./client");
47
- /**
48
- * Fix Drizzle bug: introspect generates numbers beyond JS precision
49
- * Replace .generatedByDefaultAsIdentity({...}) with .generatedByDefaultAsIdentity()
50
- */
51
- function fixGeneratedIdentity(filePath) {
52
- if (!fs.existsSync(filePath))
53
- return;
54
- let content = fs.readFileSync(filePath, 'utf-8');
55
- const fixed = content.replace(/\.generatedByDefaultAsIdentity\(\{[^}]*\}\)/g, '.generatedByDefaultAsIdentity()');
56
- if (fixed !== content) {
57
- fs.writeFileSync(filePath, fixed);
58
- }
59
- }
60
- async function generateModels(options = {}) {
61
- const { outputPath = models_1.DatabaseConfig.DEFAULT_SCHEMA_PATH, verbose = false, } = options;
62
- (0, client_1.loadEnv)();
63
- const dbUrl = (0, client_1.getDbUrl)();
64
- const outputDir = path.dirname(outputPath);
65
- if (outputDir && !fs.existsSync(outputDir)) {
66
- fs.mkdirSync(outputDir, { recursive: true });
67
- }
68
- // Use /tmp for drizzle-kit output, config in parent of outputDir for module resolution
69
- const tempOutDir = fs.mkdtempSync(path.join(os.tmpdir(), 'drizzle-'));
70
- const configDir = path.dirname(outputDir); // src/storage/database instead of src/storage/database/shared
71
- const tempConfigPath = path.join(configDir, `drizzle.config.ts`);
72
- const drizzleConfig = `
73
- import { defineConfig } from 'drizzle-kit';
74
-
75
- export default defineConfig({
76
- dialect: 'postgresql',
77
- out: '${tempOutDir}',
78
- dbCredentials: {
79
- url: '${dbUrl}',
80
- },
81
- });
82
- `;
83
- try {
84
- fs.writeFileSync(tempConfigPath, drizzleConfig);
85
- if (verbose) {
86
- console.log('Introspecting database schema...');
87
- }
88
- const cmd = `npx drizzle-kit introspect --config=${tempConfigPath}`;
89
- if (verbose) {
90
- console.log(`Running: ${cmd}`);
91
- }
92
- (0, child_process_1.execSync)(cmd, {
93
- encoding: 'utf-8',
94
- stdio: verbose ? 'inherit' : 'pipe',
95
- timeout: 60000,
96
- });
97
- // Fix Drizzle bug in generated schema
98
- const generatedSchema = path.join(tempOutDir, 'schema.ts');
99
- const generatedRelations = path.join(tempOutDir, 'relations.ts');
100
- if (fs.existsSync(generatedSchema)) {
101
- fixGeneratedIdentity(generatedSchema);
102
- fs.copyFileSync(generatedSchema, outputPath);
103
- if (verbose) {
104
- console.log(`✓ Copied schema.ts to ${outputDir}/`);
105
- }
106
- }
107
- if (fs.existsSync(generatedRelations)) {
108
- const relationsPath = path.join(outputDir, 'relations.ts');
109
- fs.copyFileSync(generatedRelations, relationsPath);
110
- if (verbose) {
111
- console.log(`✓ Copied relations.ts to ${outputDir}/`);
112
- }
113
- }
114
- // Git add generated files
115
- try {
116
- (0, child_process_1.execSync)('git add -A', {
117
- encoding: 'utf-8',
118
- stdio: 'pipe',
119
- cwd: process.cwd(),
120
- });
121
- }
122
- catch {
123
- // Ignore git errors (might not be in a git repo)
124
- }
125
- if (verbose) {
126
- console.log(`✓ Schema generated successfully`);
127
- }
128
- }
129
- finally {
130
- // Cleanup temp files
131
- if (fs.existsSync(tempConfigPath)) {
132
- fs.unlinkSync(tempConfigPath);
133
- }
134
- if (fs.existsSync(tempOutDir)) {
135
- fs.rmSync(tempOutDir, { recursive: true });
136
- }
137
- }
138
- }
139
- async function upgrade(options = {}) {
140
- const { schemaPath = models_1.DatabaseConfig.DEFAULT_SCHEMA_PATH, projectPath = process.cwd(), verbose = false, } = options;
141
- (0, client_1.loadEnv)();
142
- const dbUrl = (0, client_1.getDbUrl)();
143
- const fullSchemaPath = path.isAbsolute(schemaPath)
144
- ? schemaPath
145
- : path.join(projectPath, schemaPath);
146
- if (!fs.existsSync(fullSchemaPath)) {
147
- throw new Error(`Schema file not found: ${fullSchemaPath}`);
148
- }
149
- // Config in parent of schema directory for module resolution
150
- const schemaDir = path.dirname(fullSchemaPath); // src/storage/database/shared
151
- const configDir = path.dirname(schemaDir); // src/storage/database
152
- const tempConfigPath = path.join(configDir, `drizzle.config.ts`);
153
- const drizzleConfig = `
154
- import { defineConfig } from 'drizzle-kit';
155
-
156
- export default defineConfig({
157
- dialect: 'postgresql',
158
- schema: '${fullSchemaPath}',
159
- dbCredentials: {
160
- url: '${dbUrl}',
161
- },
162
- });
163
- `;
164
- try {
165
- fs.writeFileSync(tempConfigPath, drizzleConfig);
166
- if (verbose) {
167
- console.log('Pushing schema changes to database...');
168
- }
169
- // Use --force to skip confirmation
170
- const cmd = `npx drizzle-kit push --force --config=${tempConfigPath}`;
171
- if (verbose) {
172
- console.log(`Running: ${cmd}`);
173
- }
174
- (0, child_process_1.execSync)(cmd, {
175
- encoding: 'utf-8',
176
- stdio: verbose ? 'inherit' : 'pipe',
177
- timeout: 120000,
178
- cwd: projectPath,
179
- });
180
- if (verbose) {
181
- console.log('✅ Database migration completed successfully');
182
- }
183
- }
184
- finally {
185
- if (fs.existsSync(tempConfigPath)) {
186
- fs.unlinkSync(tempConfigPath);
187
- }
188
- }
189
- }
190
- //# sourceMappingURL=migration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration.js","sourceRoot":"","sources":["../../src/database/migration.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- /**
2
- * Database module types
3
- */
4
- export declare class DatabaseConfig {
5
- static readonly MAX_CONNECTIONS = 100;
6
- static readonly IDLE_TIMEOUT_MILLIS = 30000;
7
- static readonly CONNECTION_TIMEOUT_MILLIS = 30000;
8
- static readonly MAX_RETRY_TIME = 20000;
9
- static readonly DEFAULT_SCHEMA_PATH = "src/storage/database/shared/schema.ts";
10
- }
11
- export interface DatabasePoolConfig {
12
- connectionString?: string;
13
- maxConnections?: number;
14
- idleTimeoutMillis?: number;
15
- connectionTimeoutMillis?: number;
16
- }
17
- export interface UpgradeOptions {
18
- schemaPath?: string;
19
- projectPath?: string;
20
- verbose?: boolean;
21
- }
22
- export interface GenerateModelsOptions {
23
- outputPath?: string;
24
- verbose?: boolean;
25
- }
26
- //# sourceMappingURL=models.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/database/models.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,eAAe,OAAO;IACtC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,SAAS;IAC5C,MAAM,CAAC,QAAQ,CAAC,yBAAyB,SAAS;IAClD,MAAM,CAAC,QAAQ,CAAC,cAAc,SAAS;IACvC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,2CAA2C;CAC/E;AAED,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- /**
3
- * Database module types
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DatabaseConfig = void 0;
7
- class DatabaseConfig {
8
- }
9
- exports.DatabaseConfig = DatabaseConfig;
10
- DatabaseConfig.MAX_CONNECTIONS = 100;
11
- DatabaseConfig.IDLE_TIMEOUT_MILLIS = 30000;
12
- DatabaseConfig.CONNECTION_TIMEOUT_MILLIS = 30000;
13
- DatabaseConfig.MAX_RETRY_TIME = 20000;
14
- DatabaseConfig.DEFAULT_SCHEMA_PATH = 'src/storage/database/shared/schema.ts';
15
- //# sourceMappingURL=models.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/database/models.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,MAAa,cAAc;;AAA3B,wCAMC;AALiB,8BAAe,GAAG,GAAG,CAAC;AACtB,kCAAmB,GAAG,KAAK,CAAC;AAC5B,wCAAyB,GAAG,KAAK,CAAC;AAClC,6BAAc,GAAG,KAAK,CAAC;AACvB,kCAAmB,GAAG,uCAAuC,CAAC"}
@@ -1,66 +0,0 @@
1
- /**
2
- * S3 Storage client module
3
- */
4
- import { Readable } from 'stream';
5
- import { S3StorageConfig, ListFilesResult } from './models';
6
- export declare class S3Storage {
7
- private endpointUrl;
8
- private accessKey;
9
- private secretKey;
10
- private bucketName;
11
- private region;
12
- private client;
13
- constructor(config?: S3StorageConfig);
14
- private getClient;
15
- private generateObjectKey;
16
- private resolveBucket;
17
- private validateFileName;
18
- uploadFile(options: {
19
- fileContent: Buffer;
20
- fileName: string;
21
- contentType?: string;
22
- bucket?: string;
23
- }): Promise<string>;
24
- readFile(options: {
25
- fileKey: string;
26
- bucket?: string;
27
- }): Promise<Buffer>;
28
- deleteFile(options: {
29
- fileKey: string;
30
- bucket?: string;
31
- }): Promise<boolean>;
32
- fileExists(options: {
33
- fileKey: string;
34
- bucket?: string;
35
- }): Promise<boolean>;
36
- listFiles(options?: {
37
- prefix?: string;
38
- bucket?: string;
39
- maxKeys?: number;
40
- continuationToken?: string;
41
- }): Promise<ListFilesResult>;
42
- generatePresignedUrl(options: {
43
- key: string;
44
- bucket?: string;
45
- expireTime?: number;
46
- }): Promise<string>;
47
- streamUploadFile(options: {
48
- stream: Readable;
49
- fileName: string;
50
- contentType?: string;
51
- bucket?: string;
52
- }): Promise<string>;
53
- uploadFromUrl(options: {
54
- url: string;
55
- bucket?: string;
56
- timeout?: number;
57
- }): Promise<string>;
58
- chunkUploadFile(options: {
59
- chunks: AsyncIterable<Buffer>;
60
- fileName: string;
61
- contentType?: string;
62
- bucket?: string;
63
- }): Promise<string>;
64
- }
65
- export default S3Storage;
66
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/s3/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGlC,OAAO,EAAE,eAAe,EAAY,eAAe,EAAwB,MAAM,UAAU,CAAC;AAM5F,qBAAa,SAAS;IACpB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAyB;gBAE3B,MAAM,GAAE,eAAoB;IAQxC,OAAO,CAAC,SAAS;IA8BjB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,gBAAgB;IAclB,UAAU,CAAC,OAAO,EAAE;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBb,QAAQ,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBxE,UAAU,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAY3E,UAAU,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB3E,SAAS,CAAC,OAAO,GAAE;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,eAAe,CAAC;IA4B3B,oBAAoB,CAAC,OAAO,EAAE;QAClC,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,MAAM,CAAC;IAmDb,gBAAgB,CAAC,OAAO,EAAE;QAC9B,MAAM,EAAE,QAAQ,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBb,aAAa,CAAC,OAAO,EAAE;QAC3B,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBb,eAAe,CAAC,OAAO,EAAE;QAC7B,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QAC9B,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,MAAM,CAAC;CAsBpB;AAED,eAAe,SAAS,CAAC"}
package/dist/s3/client.js DELETED
@@ -1,253 +0,0 @@
1
- "use strict";
2
- /**
3
- * S3 Storage client module
4
- */
5
- var __importDefault = (this && this.__importDefault) || function (mod) {
6
- return (mod && mod.__esModule) ? mod : { "default": mod };
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.S3Storage = void 0;
10
- const client_s3_1 = require("@aws-sdk/client-s3");
11
- const lib_storage_1 = require("@aws-sdk/lib-storage");
12
- const stream_1 = require("stream");
13
- const crypto_1 = require("crypto");
14
- const path_1 = __importDefault(require("path"));
15
- const models_1 = require("./models");
16
- function getStorageToken() {
17
- return process.env.COZE_WORKLOAD_IDENTITY_API_KEY || null;
18
- }
19
- class S3Storage {
20
- constructor(config = {}) {
21
- this.client = null;
22
- this.endpointUrl = process.env.COZE_BUCKET_ENDPOINT_URL || config.endpointUrl || '';
23
- this.accessKey = config.accessKey || '';
24
- this.secretKey = config.secretKey || '';
25
- this.bucketName = process.env.COZE_BUCKET_NAME || config.bucketName || '';
26
- this.region = config.region || models_1.S3Config.DEFAULT_REGION;
27
- }
28
- getClient() {
29
- if (!this.client) {
30
- if (!this.endpointUrl) {
31
- throw new Error('Storage endpoint not configured: Set COZE_BUCKET_ENDPOINT_URL');
32
- }
33
- this.client = new client_s3_1.S3Client({
34
- endpoint: this.endpointUrl,
35
- region: this.region,
36
- credentials: {
37
- accessKeyId: this.accessKey,
38
- secretAccessKey: this.secretKey,
39
- },
40
- forcePathStyle: true,
41
- });
42
- this.client.middlewareStack.add((next) => async (args) => {
43
- const token = getStorageToken();
44
- if (token && args.request?.headers) {
45
- args.request.headers['x-storage-token'] = token;
46
- }
47
- return next(args);
48
- }, { step: 'build', name: 'injectStorageToken' });
49
- }
50
- return this.client;
51
- }
52
- generateObjectKey(originalName) {
53
- const ext = path_1.default.extname(originalName).toLowerCase();
54
- const stem = path_1.default.basename(originalName, ext);
55
- const uniq = (0, crypto_1.randomUUID)().replace(/-/g, '').slice(0, 8);
56
- return path_1.default.join(path_1.default.dirname(originalName), `${stem}_${uniq}${ext}`);
57
- }
58
- resolveBucket(bucket) {
59
- const targetBucket = bucket || process.env.COZE_BUCKET_NAME || this.bucketName;
60
- if (!targetBucket) {
61
- throw new Error('Bucket not configured: Provide bucket or set COZE_BUCKET_NAME');
62
- }
63
- return targetBucket;
64
- }
65
- validateFileName(name) {
66
- const msg = 'Invalid file name: must be 1-1024 bytes, only letters/numbers/._-/, no spaces or special chars, not start/end with /, no //';
67
- if (!name || !name.trim())
68
- throw new Error(msg + ' (empty)');
69
- if (Buffer.byteLength(name, 'utf-8') > 1024)
70
- throw new Error(msg + ' (>1024 bytes)');
71
- if (name.startsWith('/') || name.endsWith('/'))
72
- throw new Error(msg + ' (starts/ends with /)');
73
- if (name.includes('//'))
74
- throw new Error(msg + ' (contains //)');
75
- if (!models_1.FILE_NAME_ALLOWED_RE.test(name)) {
76
- const bad = name.match(/[^A-Za-z0-9._\-/]/);
77
- throw new Error(msg + ` (invalid char: ${bad?.[0]})`);
78
- }
79
- }
80
- async uploadFile(options) {
81
- const { fileContent, fileName, contentType = 'application/octet-stream', bucket } = options;
82
- this.validateFileName(fileName);
83
- const client = this.getClient();
84
- const objectKey = this.generateObjectKey(fileName);
85
- const targetBucket = this.resolveBucket(bucket);
86
- await client.send(new client_s3_1.PutObjectCommand({
87
- Bucket: targetBucket,
88
- Key: objectKey,
89
- Body: fileContent,
90
- ContentType: contentType,
91
- }));
92
- return objectKey;
93
- }
94
- async readFile(options) {
95
- const { fileKey, bucket } = options;
96
- const client = this.getClient();
97
- const targetBucket = this.resolveBucket(bucket);
98
- const response = await client.send(new client_s3_1.GetObjectCommand({ Bucket: targetBucket, Key: fileKey }));
99
- if (!response.Body) {
100
- throw new Error('S3 GetObject returned no Body');
101
- }
102
- const chunks = [];
103
- for await (const chunk of response.Body) {
104
- chunks.push(Buffer.from(chunk));
105
- }
106
- return Buffer.concat(chunks);
107
- }
108
- async deleteFile(options) {
109
- const { fileKey, bucket } = options;
110
- const client = this.getClient();
111
- const targetBucket = this.resolveBucket(bucket);
112
- await client.send(new client_s3_1.DeleteObjectCommand({ Bucket: targetBucket, Key: fileKey }));
113
- return true;
114
- }
115
- async fileExists(options) {
116
- const { fileKey, bucket } = options;
117
- const client = this.getClient();
118
- const targetBucket = this.resolveBucket(bucket);
119
- try {
120
- await client.send(new client_s3_1.HeadObjectCommand({ Bucket: targetBucket, Key: fileKey }));
121
- return true;
122
- }
123
- catch (e) {
124
- if (e.name === 'NotFound' || e.$metadata?.httpStatusCode === 404) {
125
- return false;
126
- }
127
- console.error('Error checking file existence:', e);
128
- return false;
129
- }
130
- }
131
- async listFiles(options = {}) {
132
- const { prefix, bucket, maxKeys = models_1.S3Config.DEFAULT_MAX_KEYS, continuationToken } = options;
133
- if (maxKeys <= 0 || maxKeys > 1000) {
134
- throw new Error('maxKeys must be between 1 and 1000');
135
- }
136
- const client = this.getClient();
137
- const targetBucket = this.resolveBucket(bucket);
138
- const response = await client.send(new client_s3_1.ListObjectsV2Command({
139
- Bucket: targetBucket,
140
- MaxKeys: maxKeys,
141
- Prefix: prefix,
142
- ContinuationToken: continuationToken,
143
- }));
144
- const keys = (response.Contents || []).filter((item) => item.Key).map((item) => item.Key);
145
- return {
146
- keys,
147
- isTruncated: response.IsTruncated || false,
148
- nextContinuationToken: response.NextContinuationToken,
149
- };
150
- }
151
- async generatePresignedUrl(options) {
152
- const { key, bucket, expireTime = models_1.S3Config.DEFAULT_PRESIGNED_EXPIRE_TIME } = options;
153
- const token = getStorageToken();
154
- if (!token) {
155
- throw new Error('Failed to get x-storage-token: Set COZE_WORKLOAD_IDENTITY_API_KEY');
156
- }
157
- const signBase = process.env.COZE_BUCKET_ENDPOINT_URL || this.endpointUrl;
158
- if (!signBase) {
159
- throw new Error('Sign endpoint not configured: Set COZE_BUCKET_ENDPOINT_URL');
160
- }
161
- const signUrlEndpoint = signBase.replace(/\/$/, '') + '/sign-url';
162
- const targetBucket = this.resolveBucket(bucket);
163
- const response = await fetch(signUrlEndpoint, {
164
- method: 'POST',
165
- headers: {
166
- 'Content-Type': 'application/json',
167
- 'x-storage-token': token,
168
- },
169
- body: JSON.stringify({
170
- bucket_name: targetBucket,
171
- path: key,
172
- expire_time: expireTime,
173
- }),
174
- });
175
- if (!response.ok) {
176
- throw new Error(`Failed to generate presigned URL: ${response.status}`);
177
- }
178
- const text = await response.text();
179
- const contentType = response.headers.get('content-type') || '';
180
- if (contentType.includes('application/json') || text.trim().startsWith('{')) {
181
- try {
182
- const obj = JSON.parse(text);
183
- if (obj.data?.url)
184
- return obj.data.url;
185
- if (obj.url || obj.signed_url || obj.presigned_url) {
186
- return obj.url || obj.signed_url || obj.presigned_url;
187
- }
188
- throw new Error('Sign service response missing url field');
189
- }
190
- catch {
191
- return text;
192
- }
193
- }
194
- return text;
195
- }
196
- async streamUploadFile(options) {
197
- const { stream, fileName, contentType = 'application/octet-stream', bucket } = options;
198
- const client = this.getClient();
199
- const objectKey = this.generateObjectKey(fileName);
200
- const targetBucket = this.resolveBucket(bucket);
201
- const upload = new lib_storage_1.Upload({
202
- client,
203
- params: {
204
- Bucket: targetBucket,
205
- Key: objectKey,
206
- Body: stream,
207
- ContentType: contentType,
208
- },
209
- });
210
- await upload.done();
211
- return objectKey;
212
- }
213
- async uploadFromUrl(options) {
214
- const { url, bucket, timeout = models_1.S3Config.DEFAULT_UPLOAD_TIMEOUT } = options;
215
- const controller = new AbortController();
216
- const timeoutId = setTimeout(() => controller.abort(), timeout);
217
- try {
218
- const response = await fetch(url, { signal: controller.signal });
219
- if (!response.ok) {
220
- throw new Error(`Failed to fetch URL: ${response.status}`);
221
- }
222
- const urlObj = new URL(url);
223
- const fileName = path_1.default.basename(decodeURIComponent(urlObj.pathname)) || 'file';
224
- const contentType = response.headers.get('content-type') || 'application/octet-stream';
225
- const buffer = Buffer.from(await response.arrayBuffer());
226
- return this.uploadFile({ fileContent: buffer, fileName, contentType, bucket });
227
- }
228
- finally {
229
- clearTimeout(timeoutId);
230
- }
231
- }
232
- async chunkUploadFile(options) {
233
- const { chunks, fileName, contentType = 'application/octet-stream', bucket } = options;
234
- const client = this.getClient();
235
- const objectKey = this.generateObjectKey(fileName);
236
- const targetBucket = this.resolveBucket(bucket);
237
- const stream = stream_1.Readable.from(chunks);
238
- const upload = new lib_storage_1.Upload({
239
- client,
240
- params: {
241
- Bucket: targetBucket,
242
- Key: objectKey,
243
- Body: stream,
244
- ContentType: contentType,
245
- },
246
- });
247
- await upload.done();
248
- return objectKey;
249
- }
250
- }
251
- exports.S3Storage = S3Storage;
252
- exports.default = S3Storage;
253
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/s3/client.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export * from './client';
2
- export * from './models';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/s3/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
package/dist/s3/index.js DELETED
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./client"), exports);
18
- __exportStar(require("./models"), exports);
19
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/s3/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,2CAAyB"}
@@ -1,23 +0,0 @@
1
- /**
2
- * S3 Storage module types
3
- */
4
- export declare class S3Config {
5
- static readonly DEFAULT_REGION = "cn-beijing";
6
- static readonly DEFAULT_MAX_KEYS = 1000;
7
- static readonly DEFAULT_PRESIGNED_EXPIRE_TIME = 1800;
8
- static readonly DEFAULT_UPLOAD_TIMEOUT = 30000;
9
- }
10
- export interface S3StorageConfig {
11
- endpointUrl?: string;
12
- accessKey?: string;
13
- secretKey?: string;
14
- bucketName?: string;
15
- region?: string;
16
- }
17
- export interface ListFilesResult {
18
- keys: string[];
19
- isTruncated: boolean;
20
- nextContinuationToken?: string;
21
- }
22
- export declare const FILE_NAME_ALLOWED_RE: RegExp;
23
- //# sourceMappingURL=models.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/s3/models.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,QAAQ;IACnB,MAAM,CAAC,QAAQ,CAAC,cAAc,gBAAgB;IAC9C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,QAAQ;IACxC,MAAM,CAAC,QAAQ,CAAC,6BAA6B,QAAQ;IACrD,MAAM,CAAC,QAAQ,CAAC,sBAAsB,SAAS;CAChD;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,oBAAoB,QAAwB,CAAC"}
package/dist/s3/models.js DELETED
@@ -1,15 +0,0 @@
1
- "use strict";
2
- /**
3
- * S3 Storage module types
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.FILE_NAME_ALLOWED_RE = exports.S3Config = void 0;
7
- class S3Config {
8
- }
9
- exports.S3Config = S3Config;
10
- S3Config.DEFAULT_REGION = 'cn-beijing';
11
- S3Config.DEFAULT_MAX_KEYS = 1000;
12
- S3Config.DEFAULT_PRESIGNED_EXPIRE_TIME = 1800;
13
- S3Config.DEFAULT_UPLOAD_TIMEOUT = 30000;
14
- exports.FILE_NAME_ALLOWED_RE = /^[A-Za-z0-9._\-/]+$/;
15
- //# sourceMappingURL=models.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/s3/models.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,MAAa,QAAQ;;AAArB,4BAKC;AAJiB,uBAAc,GAAG,YAAY,CAAC;AAC9B,yBAAgB,GAAG,IAAI,CAAC;AACxB,sCAA6B,GAAG,IAAI,CAAC;AACrC,+BAAsB,GAAG,KAAK,CAAC;AAiBpC,QAAA,oBAAoB,GAAG,qBAAqB,CAAC"}