manifest 4.17.5 → 4.17.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,11 +1,11 @@
1
1
  <p align="center">
2
2
  <a href="https://manifest.build/#gh-light-mode-only">
3
- <img alt="manifest" src="https://manifest.build/assets/images/logo-transparent.svg" height="55px" alt="Manifest logo" title="Manifest - The backend for AI code editors" />
3
+ <img alt="manifest" src="https://manifest.build/assets/images/logo-transparent.svg" height="55px" alt="Manifest logo" title="Manifest - 1-file backend to ship fast" />
4
4
  </a>
5
5
  </p>
6
6
 
7
7
  <p align='center'>
8
- <strong>The backend for AI code editors</strong>
8
+ <strong>1-file backend to ship fast</strong>
9
9
  <br><br>
10
10
  <a href="https://www.npmjs.com/package/manifest" target="_blank"><img alt="npm download" src="https://img.shields.io/npm/dt/manifest.svg"></a>
11
11
  <a href="https://www.npmjs.com/package/manifest" target="_blank"><img alt="npm" src="https://img.shields.io/npm/v/manifest"></a>
@@ -17,12 +17,10 @@
17
17
  <a href="https://github.com/mnfst/manifest/blob/develop/LICENSE" target="_blank"><img alt="License MIT" src="https://img.shields.io/badge/licence-MIT-green"></a>
18
18
  <a href="https://www.jsdelivr.com/package/npm/manifest" target="_blank"><img alt="jsdelivr" src="https://data.jsdelivr.com/v1/package/npm/manifest/badge"></a>
19
19
  <br>
20
-
21
20
  </p>
22
- Manifest is a backend your AI can understand and your team can trust.
23
-
24
- It allows you to create a backend with data, storage, logic and an admin panel. All is defined in **1 YAML file** that both humans and LLMs can understand and edit. ✨
25
-
21
+ Manifest is an open source, portable backend that bundles data, storage, logic, auth and even an admin panel to speed up your prototypes and MVPs.
22
+ <br>
23
+ <br>
26
24
  Here is an example of a complete Manifest app:
27
25
 
28
26
  ```yaml
@@ -2,7 +2,7 @@
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "$id": "https://schema.manifest.build/schema.json",
4
4
  "title": "Manifest",
5
- "description": "The backend for AI code editors",
5
+ "description": "1-file backend to ship fast",
6
6
  "type": "object",
7
7
  "properties": {
8
8
  "name": {
@@ -26,6 +26,7 @@ declare const _default: () => {
26
26
  s3Region: string;
27
27
  s3AccessKeyId: string;
28
28
  s3SecretAccessKey: string;
29
+ s3FolderPrefix?: string;
29
30
  };
30
31
  };
31
32
  export default _default;
@@ -41,7 +41,8 @@ exports.default = () => {
41
41
  s3Endpoint: process.env.S3_ENDPOINT,
42
42
  s3Region: process.env.S3_REGION,
43
43
  s3AccessKeyId: process.env.S3_ACCESS_KEY_ID,
44
- s3SecretAccessKey: process.env.S3_SECRET_ACCESS_KEY
44
+ s3SecretAccessKey: process.env.S3_SECRET_ACCESS_KEY,
45
+ s3FolderPrefix: process.env.S3_FOLDER_PREFIX
45
46
  }
46
47
  };
47
48
  };
@@ -10,6 +10,7 @@ export declare class StorageService {
10
10
  private s3AccessKeyId;
11
11
  private s3SecretAccessKey;
12
12
  private s3provider;
13
+ private s3FolderPrefix;
13
14
  constructor(configService: ConfigService);
14
15
  store(entity: string, property: string, file: {
15
16
  buffer: Buffer;
@@ -72,6 +72,7 @@ let StorageService = class StorageService {
72
72
  : this.s3Endpoint?.includes('digitalocean')
73
73
  ? 'digitalocean'
74
74
  : 'other';
75
+ this.s3FolderPrefix = this.configService.get('storage.s3FolderPrefix') || '';
75
76
  if (this.isS3Enabled) {
76
77
  this.s3Client = new client_s3_1.S3Client({
77
78
  region: this.s3Region,
@@ -141,14 +142,15 @@ let StorageService = class StorageService {
141
142
  return `${this.configService.get('baseUrl')}/${constants_1.STORAGE_PATH}/${value}`;
142
143
  }
143
144
  async uploadToS3(key, buffer) {
145
+ const path = `${this.s3FolderPrefix}/${key}`;
144
146
  await this.s3Client.send(new client_s3_1.PutObjectCommand({
145
147
  Bucket: this.s3Bucket,
146
- Key: `${constants_1.STORAGE_PATH}/${key}`,
148
+ Key: path,
147
149
  Body: buffer,
148
150
  ChecksumAlgorithm: undefined,
149
151
  ACL: this.s3provider === 'digitalocean' ? 'public-read' : undefined
150
152
  }));
151
- return `${this.s3Endpoint}/${this.s3Bucket}/${constants_1.STORAGE_PATH}/${key}`;
153
+ return `${this.s3Endpoint}/${this.s3Bucket}/${path}`;
152
154
  }
153
155
  };
154
156
  exports.StorageService = StorageService;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "manifest",
3
- "version": "4.17.5",
4
- "description": "The backend for AI code editors",
3
+ "version": "4.17.7",
4
+ "description": "1-file backend to ship fast",
5
5
  "author": "Manifest",
6
6
  "license": "MIT",
7
7
  "main": "dist/manifest/main.js",
@@ -15,35 +15,39 @@
15
15
  "url": "https://github.com/mnfst/manifest/issues"
16
16
  },
17
17
  "keywords": [
18
- "manifest",
19
18
  "backend",
20
- "micro-backend",
21
- "AI-powered coding",
22
- "backend for LLMs",
23
- "AI code tool",
24
- "backend for vibe coding",
25
- "backend for modern workflows",
26
- "vibe coding",
27
- "vibe coding backend",
28
- "vibe coding api",
29
- "AI assisted coding",
30
- "AI coding",
31
- "LLMs",
32
- "cursor",
33
- "windsurf",
34
- "copilot",
35
19
  "api",
36
20
  "rest",
37
- "admin",
21
+ "nodejs",
22
+ "typescript",
38
23
  "database",
39
- "yaml",
40
- "headless",
41
24
  "crud",
42
- "backend-as-a-service",
43
- "baas",
25
+ "admin-panel",
44
26
  "cms",
27
+ "headless-cms",
28
+ "backend-framework",
29
+ "micro-backend",
30
+ "rapid-development",
31
+ "yaml-config",
45
32
  "sqlite",
46
- "storage"
33
+ "postgres",
34
+ "mysql",
35
+ "typeorm",
36
+ "nestjs",
37
+ "auth",
38
+ "authentication",
39
+ "file-upload",
40
+ "storage",
41
+ "s3",
42
+ "api-generator",
43
+ "low-code",
44
+ "no-code",
45
+ "prototype",
46
+ "mvp",
47
+ "startup",
48
+ "backend-as-a-service",
49
+ "baas",
50
+ "manifest"
47
51
  ],
48
52
  "scripts": {
49
53
  "create-dist": "mkdir dist",