@devalade/shipnode 2.0.0
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/cli/commands/backup.d.ts +14 -0
- package/dist/cli/commands/backup.d.ts.map +1 -0
- package/dist/cli/commands/backup.js +144 -0
- package/dist/cli/commands/backup.js.map +1 -0
- package/dist/cli/commands/ci.d.ts +5 -0
- package/dist/cli/commands/ci.d.ts.map +1 -0
- package/dist/cli/commands/ci.js +222 -0
- package/dist/cli/commands/ci.js.map +1 -0
- package/dist/cli/commands/cloudflare.d.ts +10 -0
- package/dist/cli/commands/cloudflare.d.ts.map +1 -0
- package/dist/cli/commands/cloudflare.js +166 -0
- package/dist/cli/commands/cloudflare.js.map +1 -0
- package/dist/cli/commands/config.d.ts +10 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +99 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/deploy.d.ts +6 -0
- package/dist/cli/commands/deploy.d.ts.map +1 -0
- package/dist/cli/commands/deploy.js +95 -0
- package/dist/cli/commands/deploy.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +5 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +86 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/eject.d.ts +2 -0
- package/dist/cli/commands/eject.d.ts.map +1 -0
- package/dist/cli/commands/eject.js +74 -0
- package/dist/cli/commands/eject.js.map +1 -0
- package/dist/cli/commands/env.d.ts +4 -0
- package/dist/cli/commands/env.d.ts.map +1 -0
- package/dist/cli/commands/env.js +50 -0
- package/dist/cli/commands/env.js.map +1 -0
- package/dist/cli/commands/harden.d.ts +4 -0
- package/dist/cli/commands/harden.d.ts.map +1 -0
- package/dist/cli/commands/harden.js +110 -0
- package/dist/cli/commands/harden.js.map +1 -0
- package/dist/cli/commands/help.d.ts +2 -0
- package/dist/cli/commands/help.d.ts.map +1 -0
- package/dist/cli/commands/help.js +99 -0
- package/dist/cli/commands/help.js.map +1 -0
- package/dist/cli/commands/init.d.ts +5 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +246 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/logs.d.ts +5 -0
- package/dist/cli/commands/logs.d.ts.map +1 -0
- package/dist/cli/commands/logs.js +17 -0
- package/dist/cli/commands/logs.js.map +1 -0
- package/dist/cli/commands/metrics.d.ts +4 -0
- package/dist/cli/commands/metrics.d.ts.map +1 -0
- package/dist/cli/commands/metrics.js +21 -0
- package/dist/cli/commands/metrics.js.map +1 -0
- package/dist/cli/commands/migrate.d.ts +4 -0
- package/dist/cli/commands/migrate.d.ts.map +1 -0
- package/dist/cli/commands/migrate.js +71 -0
- package/dist/cli/commands/migrate.js.map +1 -0
- package/dist/cli/commands/restart.d.ts +4 -0
- package/dist/cli/commands/restart.d.ts.map +1 -0
- package/dist/cli/commands/restart.js +14 -0
- package/dist/cli/commands/restart.js.map +1 -0
- package/dist/cli/commands/rollback.d.ts +5 -0
- package/dist/cli/commands/rollback.d.ts.map +1 -0
- package/dist/cli/commands/rollback.js +49 -0
- package/dist/cli/commands/rollback.js.map +1 -0
- package/dist/cli/commands/run.d.ts +5 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +69 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/setup.d.ts +4 -0
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +46 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/status.d.ts +4 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +49 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/stop.d.ts +4 -0
- package/dist/cli/commands/stop.d.ts.map +1 -0
- package/dist/cli/commands/stop.js +14 -0
- package/dist/cli/commands/stop.js.map +1 -0
- package/dist/cli/commands/unlock.d.ts +4 -0
- package/dist/cli/commands/unlock.d.ts.map +1 -0
- package/dist/cli/commands/unlock.js +27 -0
- package/dist/cli/commands/unlock.js.map +1 -0
- package/dist/cli/commands/upgrade.d.ts +2 -0
- package/dist/cli/commands/upgrade.d.ts.map +1 -0
- package/dist/cli/commands/upgrade.js +63 -0
- package/dist/cli/commands/upgrade.js.map +1 -0
- package/dist/cli/commands/user.d.ts +17 -0
- package/dist/cli/commands/user.d.ts.map +1 -0
- package/dist/cli/commands/user.js +98 -0
- package/dist/cli/commands/user.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +218 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/prompt.d.ts +2 -0
- package/dist/cli/prompt.d.ts.map +1 -0
- package/dist/cli/prompt.js +11 -0
- package/dist/cli/prompt.js.map +1 -0
- package/dist/cli/runner.d.ts +34 -0
- package/dist/cli/runner.d.ts.map +1 -0
- package/dist/cli/runner.js +44 -0
- package/dist/cli/runner.js.map +1 -0
- package/dist/cli/ui.d.ts +9 -0
- package/dist/cli/ui.d.ts.map +1 -0
- package/dist/cli/ui.js +26 -0
- package/dist/cli/ui.js.map +1 -0
- package/dist/config/assembly.d.ts +14 -0
- package/dist/config/assembly.d.ts.map +1 -0
- package/dist/config/assembly.js +62 -0
- package/dist/config/assembly.js.map +1 -0
- package/dist/config/builder.d.ts +33 -0
- package/dist/config/builder.d.ts.map +1 -0
- package/dist/config/builder.js +119 -0
- package/dist/config/builder.js.map +1 -0
- package/dist/config/loader.d.ts +3 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +20 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/schema.d.ts +416 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +75 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/domain/deploy/backend-strategy.d.ts +15 -0
- package/dist/domain/deploy/backend-strategy.d.ts.map +1 -0
- package/dist/domain/deploy/backend-strategy.js +110 -0
- package/dist/domain/deploy/backend-strategy.js.map +1 -0
- package/dist/domain/deploy/frontend-strategy.d.ts +13 -0
- package/dist/domain/deploy/frontend-strategy.d.ts.map +1 -0
- package/dist/domain/deploy/frontend-strategy.js +64 -0
- package/dist/domain/deploy/frontend-strategy.js.map +1 -0
- package/dist/domain/deploy/orchestrator.d.ts +34 -0
- package/dist/domain/deploy/orchestrator.d.ts.map +1 -0
- package/dist/domain/deploy/orchestrator.js +149 -0
- package/dist/domain/deploy/orchestrator.js.map +1 -0
- package/dist/domain/deploy/strategy.d.ts +44 -0
- package/dist/domain/deploy/strategy.d.ts.map +1 -0
- package/dist/domain/deploy/strategy.js +2 -0
- package/dist/domain/deploy/strategy.js.map +1 -0
- package/dist/domain/framework/detector.d.ts +7 -0
- package/dist/domain/framework/detector.d.ts.map +1 -0
- package/dist/domain/framework/detector.js +109 -0
- package/dist/domain/framework/detector.js.map +1 -0
- package/dist/domain/release/manager.d.ts +22 -0
- package/dist/domain/release/manager.d.ts.map +1 -0
- package/dist/domain/release/manager.js +100 -0
- package/dist/domain/release/manager.js.map +1 -0
- package/dist/domain/remote/executor.d.ts +16 -0
- package/dist/domain/remote/executor.d.ts.map +1 -0
- package/dist/domain/remote/executor.js +2 -0
- package/dist/domain/remote/executor.js.map +1 -0
- package/dist/domain/validation/ip.d.ts +5 -0
- package/dist/domain/validation/ip.d.ts.map +1 -0
- package/dist/domain/validation/ip.js +38 -0
- package/dist/domain/validation/ip.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/ssh/connection.d.ts +19 -0
- package/dist/infrastructure/ssh/connection.d.ts.map +1 -0
- package/dist/infrastructure/ssh/connection.js +89 -0
- package/dist/infrastructure/ssh/connection.js.map +1 -0
- package/dist/services/caddy.service.d.ts +12 -0
- package/dist/services/caddy.service.d.ts.map +1 -0
- package/dist/services/caddy.service.js +56 -0
- package/dist/services/caddy.service.js.map +1 -0
- package/dist/services/deploy.service.d.ts +19 -0
- package/dist/services/deploy.service.d.ts.map +1 -0
- package/dist/services/deploy.service.js +53 -0
- package/dist/services/deploy.service.js.map +1 -0
- package/dist/services/health.service.d.ts +13 -0
- package/dist/services/health.service.d.ts.map +1 -0
- package/dist/services/health.service.js +38 -0
- package/dist/services/health.service.js.map +1 -0
- package/dist/shared/constants.d.ts +127 -0
- package/dist/shared/constants.d.ts.map +1 -0
- package/dist/shared/constants.js +85 -0
- package/dist/shared/constants.js.map +1 -0
- package/dist/shared/errors.d.ts +27 -0
- package/dist/shared/errors.d.ts.map +1 -0
- package/dist/shared/errors.js +53 -0
- package/dist/shared/errors.js.map +1 -0
- package/dist/shared/types.d.ts +116 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/types.js +2 -0
- package/dist/shared/types.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
export declare const DEFAULTS: {
|
|
2
|
+
readonly SSH_PORT: 22;
|
|
3
|
+
readonly BACKEND_PORT: 3000;
|
|
4
|
+
readonly NODE_VERSION: "lts";
|
|
5
|
+
readonly ZERO_DOWNTIME: true;
|
|
6
|
+
readonly KEEP_RELEASES: 5;
|
|
7
|
+
readonly HEALTH_CHECK_ENABLED: true;
|
|
8
|
+
readonly HEALTH_CHECK_PATH: "/health";
|
|
9
|
+
readonly HEALTH_CHECK_TIMEOUT: 30;
|
|
10
|
+
readonly HEALTH_CHECK_RETRIES: 3;
|
|
11
|
+
readonly HEALTH_CHECK_STARTUP_DELAY: 3;
|
|
12
|
+
readonly ENV_FILE: ".env";
|
|
13
|
+
readonly PM2_INSTANCES: 1;
|
|
14
|
+
readonly PM2_MAX_MEMORY: "512M";
|
|
15
|
+
};
|
|
16
|
+
export declare const RSYNC_DEFAULT_EXCLUDES: readonly ["node_modules", ".env", ".git", ".gitignore", "shipnode.config.ts", "*.log", ".shipnode", "dist", ".DS_Store"];
|
|
17
|
+
export declare const FRAMEWORK_PATTERNS: {
|
|
18
|
+
readonly Express: {
|
|
19
|
+
readonly deps: readonly ["express"];
|
|
20
|
+
readonly appType: "backend";
|
|
21
|
+
};
|
|
22
|
+
readonly NestJS: {
|
|
23
|
+
readonly deps: readonly ["@nestjs/core"];
|
|
24
|
+
readonly appType: "backend";
|
|
25
|
+
};
|
|
26
|
+
readonly Fastify: {
|
|
27
|
+
readonly deps: readonly ["fastify"];
|
|
28
|
+
readonly appType: "backend";
|
|
29
|
+
};
|
|
30
|
+
readonly Koa: {
|
|
31
|
+
readonly deps: readonly ["koa"];
|
|
32
|
+
readonly appType: "backend";
|
|
33
|
+
};
|
|
34
|
+
readonly Hapi: {
|
|
35
|
+
readonly deps: readonly ["@hapi/hapi"];
|
|
36
|
+
readonly appType: "backend";
|
|
37
|
+
};
|
|
38
|
+
readonly Hono: {
|
|
39
|
+
readonly deps: readonly ["hono"];
|
|
40
|
+
readonly appType: "backend";
|
|
41
|
+
};
|
|
42
|
+
readonly AdonisJS: {
|
|
43
|
+
readonly deps: readonly ["@adonisjs/core"];
|
|
44
|
+
readonly appType: "backend";
|
|
45
|
+
};
|
|
46
|
+
readonly 'Next.js': {
|
|
47
|
+
readonly deps: readonly ["next"];
|
|
48
|
+
readonly appType: "backend";
|
|
49
|
+
};
|
|
50
|
+
readonly Nuxt: {
|
|
51
|
+
readonly deps: readonly ["nuxt"];
|
|
52
|
+
readonly appType: "backend";
|
|
53
|
+
};
|
|
54
|
+
readonly Remix: {
|
|
55
|
+
readonly deps: readonly ["@remix-run"];
|
|
56
|
+
readonly appType: "backend";
|
|
57
|
+
};
|
|
58
|
+
readonly Astro: {
|
|
59
|
+
readonly deps: readonly ["astro"];
|
|
60
|
+
readonly appType: "backend";
|
|
61
|
+
};
|
|
62
|
+
readonly React: {
|
|
63
|
+
readonly deps: readonly ["react"];
|
|
64
|
+
readonly appType: "frontend";
|
|
65
|
+
};
|
|
66
|
+
readonly 'React Router': {
|
|
67
|
+
readonly deps: readonly ["react-router"];
|
|
68
|
+
readonly appType: "frontend";
|
|
69
|
+
};
|
|
70
|
+
readonly 'TanStack Router': {
|
|
71
|
+
readonly deps: readonly ["@tanstack/react-router"];
|
|
72
|
+
readonly appType: "frontend";
|
|
73
|
+
};
|
|
74
|
+
readonly Vue: {
|
|
75
|
+
readonly deps: readonly ["vue"];
|
|
76
|
+
readonly appType: "frontend";
|
|
77
|
+
};
|
|
78
|
+
readonly Svelte: {
|
|
79
|
+
readonly deps: readonly ["svelte"];
|
|
80
|
+
readonly appType: "frontend";
|
|
81
|
+
};
|
|
82
|
+
readonly SolidJS: {
|
|
83
|
+
readonly deps: readonly ["solid-js"];
|
|
84
|
+
readonly appType: "frontend";
|
|
85
|
+
};
|
|
86
|
+
readonly Angular: {
|
|
87
|
+
readonly deps: readonly ["@angular/core"];
|
|
88
|
+
readonly appType: "frontend";
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
export declare const ORM_PATTERNS: {
|
|
92
|
+
readonly Prisma: {
|
|
93
|
+
readonly deps: readonly ["prisma", "@prisma/client"];
|
|
94
|
+
readonly migrateCmd: "npx prisma migrate deploy";
|
|
95
|
+
readonly generateCmd: "npx prisma generate";
|
|
96
|
+
};
|
|
97
|
+
readonly Drizzle: {
|
|
98
|
+
readonly deps: readonly ["drizzle-orm"];
|
|
99
|
+
readonly migrateCmd: "npx drizzle-kit migrate";
|
|
100
|
+
readonly generateCmd: "npx drizzle-kit generate";
|
|
101
|
+
};
|
|
102
|
+
readonly TypeORM: {
|
|
103
|
+
readonly deps: readonly ["typeorm"];
|
|
104
|
+
readonly migrateCmd: "npx typeorm migration:run";
|
|
105
|
+
readonly generateCmd: "";
|
|
106
|
+
};
|
|
107
|
+
readonly Sequelize: {
|
|
108
|
+
readonly deps: readonly ["sequelize"];
|
|
109
|
+
readonly migrateCmd: "npx sequelize-cli db:migrate";
|
|
110
|
+
readonly generateCmd: "";
|
|
111
|
+
};
|
|
112
|
+
readonly Knex: {
|
|
113
|
+
readonly deps: readonly ["knex"];
|
|
114
|
+
readonly migrateCmd: "npx knex migrate:latest";
|
|
115
|
+
readonly generateCmd: "";
|
|
116
|
+
};
|
|
117
|
+
readonly Mongoose: {
|
|
118
|
+
readonly deps: readonly ["mongoose"];
|
|
119
|
+
readonly migrateCmd: "";
|
|
120
|
+
readonly generateCmd: "";
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
export declare const PKG_MANAGER_COMMANDS: Record<string, {
|
|
124
|
+
install: string;
|
|
125
|
+
run: string;
|
|
126
|
+
}>;
|
|
127
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;CAcX,CAAC;AAEX,eAAO,MAAM,sBAAsB,0HAUzB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmBrB,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Bf,CAAC;AAEX,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAKxE,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export const DEFAULTS = {
|
|
2
|
+
SSH_PORT: 22,
|
|
3
|
+
BACKEND_PORT: 3000,
|
|
4
|
+
NODE_VERSION: 'lts',
|
|
5
|
+
ZERO_DOWNTIME: true,
|
|
6
|
+
KEEP_RELEASES: 5,
|
|
7
|
+
HEALTH_CHECK_ENABLED: true,
|
|
8
|
+
HEALTH_CHECK_PATH: '/health',
|
|
9
|
+
HEALTH_CHECK_TIMEOUT: 30,
|
|
10
|
+
HEALTH_CHECK_RETRIES: 3,
|
|
11
|
+
HEALTH_CHECK_STARTUP_DELAY: 3,
|
|
12
|
+
ENV_FILE: '.env',
|
|
13
|
+
PM2_INSTANCES: 1,
|
|
14
|
+
PM2_MAX_MEMORY: '512M',
|
|
15
|
+
};
|
|
16
|
+
export const RSYNC_DEFAULT_EXCLUDES = [
|
|
17
|
+
'node_modules',
|
|
18
|
+
'.env',
|
|
19
|
+
'.git',
|
|
20
|
+
'.gitignore',
|
|
21
|
+
'shipnode.config.ts',
|
|
22
|
+
'*.log',
|
|
23
|
+
'.shipnode',
|
|
24
|
+
'dist',
|
|
25
|
+
'.DS_Store',
|
|
26
|
+
];
|
|
27
|
+
export const FRAMEWORK_PATTERNS = {
|
|
28
|
+
Express: { deps: ['express'], appType: 'backend' },
|
|
29
|
+
NestJS: { deps: ['@nestjs/core'], appType: 'backend' },
|
|
30
|
+
Fastify: { deps: ['fastify'], appType: 'backend' },
|
|
31
|
+
Koa: { deps: ['koa'], appType: 'backend' },
|
|
32
|
+
Hapi: { deps: ['@hapi/hapi'], appType: 'backend' },
|
|
33
|
+
Hono: { deps: ['hono'], appType: 'backend' },
|
|
34
|
+
AdonisJS: { deps: ['@adonisjs/core'], appType: 'backend' },
|
|
35
|
+
'Next.js': { deps: ['next'], appType: 'backend' },
|
|
36
|
+
Nuxt: { deps: ['nuxt'], appType: 'backend' },
|
|
37
|
+
Remix: { deps: ['@remix-run'], appType: 'backend' },
|
|
38
|
+
Astro: { deps: ['astro'], appType: 'backend' },
|
|
39
|
+
React: { deps: ['react'], appType: 'frontend' },
|
|
40
|
+
'React Router': { deps: ['react-router'], appType: 'frontend' },
|
|
41
|
+
'TanStack Router': { deps: ['@tanstack/react-router'], appType: 'frontend' },
|
|
42
|
+
Vue: { deps: ['vue'], appType: 'frontend' },
|
|
43
|
+
Svelte: { deps: ['svelte'], appType: 'frontend' },
|
|
44
|
+
SolidJS: { deps: ['solid-js'], appType: 'frontend' },
|
|
45
|
+
Angular: { deps: ['@angular/core'], appType: 'frontend' },
|
|
46
|
+
};
|
|
47
|
+
export const ORM_PATTERNS = {
|
|
48
|
+
Prisma: {
|
|
49
|
+
deps: ['prisma', '@prisma/client'],
|
|
50
|
+
migrateCmd: 'npx prisma migrate deploy',
|
|
51
|
+
generateCmd: 'npx prisma generate',
|
|
52
|
+
},
|
|
53
|
+
Drizzle: {
|
|
54
|
+
deps: ['drizzle-orm'],
|
|
55
|
+
migrateCmd: 'npx drizzle-kit migrate',
|
|
56
|
+
generateCmd: 'npx drizzle-kit generate',
|
|
57
|
+
},
|
|
58
|
+
TypeORM: {
|
|
59
|
+
deps: ['typeorm'],
|
|
60
|
+
migrateCmd: 'npx typeorm migration:run',
|
|
61
|
+
generateCmd: '',
|
|
62
|
+
},
|
|
63
|
+
Sequelize: {
|
|
64
|
+
deps: ['sequelize'],
|
|
65
|
+
migrateCmd: 'npx sequelize-cli db:migrate',
|
|
66
|
+
generateCmd: '',
|
|
67
|
+
},
|
|
68
|
+
Knex: {
|
|
69
|
+
deps: ['knex'],
|
|
70
|
+
migrateCmd: 'npx knex migrate:latest',
|
|
71
|
+
generateCmd: '',
|
|
72
|
+
},
|
|
73
|
+
Mongoose: {
|
|
74
|
+
deps: ['mongoose'],
|
|
75
|
+
migrateCmd: '',
|
|
76
|
+
generateCmd: '',
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
export const PKG_MANAGER_COMMANDS = {
|
|
80
|
+
npm: { install: 'npm ci --production', run: 'npm run' },
|
|
81
|
+
yarn: { install: 'yarn install --production', run: 'yarn' },
|
|
82
|
+
pnpm: { install: 'pnpm install --prod', run: 'pnpm' },
|
|
83
|
+
bun: { install: 'bun install --production', run: 'bun run' },
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare class ShipnodeError extends Error {
|
|
2
|
+
constructor(message: string);
|
|
3
|
+
}
|
|
4
|
+
export declare class ConfigError extends ShipnodeError {
|
|
5
|
+
constructor(message: string);
|
|
6
|
+
}
|
|
7
|
+
export declare class SshError extends ShipnodeError {
|
|
8
|
+
exitCode?: number | undefined;
|
|
9
|
+
stderr?: string | undefined;
|
|
10
|
+
constructor(message: string, exitCode?: number | undefined, stderr?: string | undefined);
|
|
11
|
+
}
|
|
12
|
+
export declare class DeployError extends ShipnodeError {
|
|
13
|
+
stage?: string | undefined;
|
|
14
|
+
constructor(message: string, stage?: string | undefined);
|
|
15
|
+
}
|
|
16
|
+
export declare class ValidationError extends ShipnodeError {
|
|
17
|
+
constructor(message: string);
|
|
18
|
+
}
|
|
19
|
+
export declare class HealthCheckError extends ShipnodeError {
|
|
20
|
+
attempts?: number | undefined;
|
|
21
|
+
lastStatus?: number | undefined;
|
|
22
|
+
constructor(message: string, attempts?: number | undefined, lastStatus?: number | undefined);
|
|
23
|
+
}
|
|
24
|
+
export declare class LockError extends ShipnodeError {
|
|
25
|
+
constructor(message: string);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,WAAY,SAAQ,aAAa;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,QAAS,SAAQ,aAAa;IAGhC,QAAQ,CAAC,EAAE,MAAM;IACjB,MAAM,CAAC,EAAE,MAAM;gBAFtB,OAAO,EAAE,MAAM,EACR,QAAQ,CAAC,EAAE,MAAM,YAAA,EACjB,MAAM,CAAC,EAAE,MAAM,YAAA;CAKzB;AAED,qBAAa,WAAY,SAAQ,aAAa;IACR,KAAK,CAAC,EAAE,MAAM;gBAAtC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,MAAM,YAAA;CAInD;AAED,qBAAa,eAAgB,SAAQ,aAAa;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,gBAAiB,SAAQ,aAAa;IAGxC,QAAQ,CAAC,EAAE,MAAM;IACjB,UAAU,CAAC,EAAE,MAAM;gBAF1B,OAAO,EAAE,MAAM,EACR,QAAQ,CAAC,EAAE,MAAM,YAAA,EACjB,UAAU,CAAC,EAAE,MAAM,YAAA;CAK7B;AAED,qBAAa,SAAU,SAAQ,aAAa;gBAC9B,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export class ShipnodeError extends Error {
|
|
2
|
+
constructor(message) {
|
|
3
|
+
super(message);
|
|
4
|
+
this.name = 'ShipnodeError';
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export class ConfigError extends ShipnodeError {
|
|
8
|
+
constructor(message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = 'ConfigError';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export class SshError extends ShipnodeError {
|
|
14
|
+
exitCode;
|
|
15
|
+
stderr;
|
|
16
|
+
constructor(message, exitCode, stderr) {
|
|
17
|
+
super(message);
|
|
18
|
+
this.exitCode = exitCode;
|
|
19
|
+
this.stderr = stderr;
|
|
20
|
+
this.name = 'SshError';
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export class DeployError extends ShipnodeError {
|
|
24
|
+
stage;
|
|
25
|
+
constructor(message, stage) {
|
|
26
|
+
super(message);
|
|
27
|
+
this.stage = stage;
|
|
28
|
+
this.name = 'DeployError';
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export class ValidationError extends ShipnodeError {
|
|
32
|
+
constructor(message) {
|
|
33
|
+
super(message);
|
|
34
|
+
this.name = 'ValidationError';
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export class HealthCheckError extends ShipnodeError {
|
|
38
|
+
attempts;
|
|
39
|
+
lastStatus;
|
|
40
|
+
constructor(message, attempts, lastStatus) {
|
|
41
|
+
super(message);
|
|
42
|
+
this.attempts = attempts;
|
|
43
|
+
this.lastStatus = lastStatus;
|
|
44
|
+
this.name = 'HealthCheckError';
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export class LockError extends ShipnodeError {
|
|
48
|
+
constructor(message) {
|
|
49
|
+
super(message);
|
|
50
|
+
this.name = 'LockError';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,aAAa;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,QAAS,SAAQ,aAAa;IAGhC;IACA;IAHT,YACE,OAAe,EACR,QAAiB,EACjB,MAAe;QAEtB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,aAAQ,GAAR,QAAQ,CAAS;QACjB,WAAM,GAAN,MAAM,CAAS;QAGtB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,aAAa;IACR;IAApC,YAAY,OAAe,EAAS,KAAc;QAChD,KAAK,CAAC,OAAO,CAAC,CAAC;QADmB,UAAK,GAAL,KAAK,CAAS;QAEhD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,aAAa;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IAGxC;IACA;IAHT,YACE,OAAe,EACR,QAAiB,EACjB,UAAmB;QAE1B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,aAAQ,GAAR,QAAQ,CAAS;QACjB,eAAU,GAAV,UAAU,CAAS;QAG1B,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,SAAU,SAAQ,aAAa;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
export type AppType = 'backend' | 'frontend';
|
|
2
|
+
export type PkgManager = 'npm' | 'yarn' | 'pnpm' | 'bun';
|
|
3
|
+
export type DatabaseType = 'postgres' | 'mysql' | 'sqlite' | 'mongodb';
|
|
4
|
+
export interface SshConfig {
|
|
5
|
+
host: string;
|
|
6
|
+
user: string;
|
|
7
|
+
port: number;
|
|
8
|
+
identityFile?: string;
|
|
9
|
+
proxyMode?: 'cloudflare';
|
|
10
|
+
proxyCommand?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface Pm2Config {
|
|
13
|
+
name: string;
|
|
14
|
+
instances?: number;
|
|
15
|
+
maxMemory?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface BackendConfig {
|
|
18
|
+
port: number;
|
|
19
|
+
}
|
|
20
|
+
export interface HealthCheckConfig {
|
|
21
|
+
enabled: boolean;
|
|
22
|
+
path: string;
|
|
23
|
+
timeout: number;
|
|
24
|
+
retries: number;
|
|
25
|
+
startupDelay: number;
|
|
26
|
+
}
|
|
27
|
+
export interface DatabaseConfig {
|
|
28
|
+
type: DatabaseType;
|
|
29
|
+
host: string;
|
|
30
|
+
port: number;
|
|
31
|
+
name: string;
|
|
32
|
+
user: string;
|
|
33
|
+
password?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface BackupConfig {
|
|
36
|
+
s3Bucket: string;
|
|
37
|
+
s3Prefix?: string;
|
|
38
|
+
s3Endpoint?: string;
|
|
39
|
+
schedule?: 'hourly' | 'daily' | 'weekly';
|
|
40
|
+
retentionDays?: number;
|
|
41
|
+
}
|
|
42
|
+
export interface CloudflareConfig {
|
|
43
|
+
zone: string;
|
|
44
|
+
appHostname?: string;
|
|
45
|
+
sshHostname?: string;
|
|
46
|
+
tunnelName?: string;
|
|
47
|
+
lockdownFirewall?: boolean;
|
|
48
|
+
accessEmails?: string[];
|
|
49
|
+
bootstrapSshHost?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface HookContext {
|
|
52
|
+
config: ShipnodeConfig;
|
|
53
|
+
release?: string;
|
|
54
|
+
env: string;
|
|
55
|
+
exec(cmd: string, options?: ExecOptions): Promise<ExecResult>;
|
|
56
|
+
}
|
|
57
|
+
export interface ExecOptions {
|
|
58
|
+
cwd?: string;
|
|
59
|
+
env?: Record<string, string>;
|
|
60
|
+
timeout?: number;
|
|
61
|
+
}
|
|
62
|
+
export interface ExecResult {
|
|
63
|
+
stdout: string;
|
|
64
|
+
stderr: string;
|
|
65
|
+
exitCode: number;
|
|
66
|
+
}
|
|
67
|
+
export type HookFn = (ctx: HookContext) => Promise<void> | void;
|
|
68
|
+
export interface HooksConfig {
|
|
69
|
+
preDeploy?: HookFn;
|
|
70
|
+
postDeploy?: HookFn;
|
|
71
|
+
}
|
|
72
|
+
export interface ShipnodeConfig {
|
|
73
|
+
app: AppType;
|
|
74
|
+
ssh: SshConfig;
|
|
75
|
+
remotePath: string;
|
|
76
|
+
pm2?: Pm2Config;
|
|
77
|
+
backend?: BackendConfig;
|
|
78
|
+
domain?: string;
|
|
79
|
+
zeroDowntime: boolean;
|
|
80
|
+
keepReleases: number;
|
|
81
|
+
healthCheck: HealthCheckConfig;
|
|
82
|
+
envFile: string;
|
|
83
|
+
nodeVersion: string;
|
|
84
|
+
pkgManager?: PkgManager;
|
|
85
|
+
buildDir?: string;
|
|
86
|
+
sharedDirs?: string[];
|
|
87
|
+
sharedFiles?: string[];
|
|
88
|
+
database?: DatabaseConfig;
|
|
89
|
+
backup?: BackupConfig;
|
|
90
|
+
cloudflare?: CloudflareConfig;
|
|
91
|
+
hooks?: HooksConfig;
|
|
92
|
+
}
|
|
93
|
+
export interface ReleaseRecord {
|
|
94
|
+
timestamp: string;
|
|
95
|
+
status: 'success' | 'failed';
|
|
96
|
+
duration: number;
|
|
97
|
+
gitCommit?: string;
|
|
98
|
+
healthAttempts?: number;
|
|
99
|
+
healthResponseMs?: number;
|
|
100
|
+
previousRelease?: string;
|
|
101
|
+
}
|
|
102
|
+
export interface FrameworkDetectionResult {
|
|
103
|
+
name: string;
|
|
104
|
+
appType: AppType | 'unknown';
|
|
105
|
+
port?: number;
|
|
106
|
+
orm?: string;
|
|
107
|
+
}
|
|
108
|
+
export interface DeployContext {
|
|
109
|
+
config: ShipnodeConfig;
|
|
110
|
+
ssh: import('../infrastructure/ssh/connection.js').SshConnection;
|
|
111
|
+
releasePath: string;
|
|
112
|
+
previousRelease?: string;
|
|
113
|
+
gitCommit?: string;
|
|
114
|
+
deployStart: number;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@devalade/shipnode",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "Deploy Node.js apps to a single VPS with zero configuration",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist"
|
|
16
|
+
],
|
|
17
|
+
"bin": {
|
|
18
|
+
"shipnode": "dist/cli/index.js"
|
|
19
|
+
},
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"chalk": "^5.3.0",
|
|
22
|
+
"commander": "^12.1.0",
|
|
23
|
+
"execa": "^9.5.1",
|
|
24
|
+
"fs-extra": "^11.3.5",
|
|
25
|
+
"jiti": "^2.4.2",
|
|
26
|
+
"js-yaml": "^4.1.0",
|
|
27
|
+
"ora": "^8.1.1",
|
|
28
|
+
"ssh2": "^1.16.0",
|
|
29
|
+
"zod": "^3.24.1"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@types/fs-extra": "^11.0.4",
|
|
33
|
+
"@types/js-yaml": "^4.0.9",
|
|
34
|
+
"@types/node": "^22.10.2",
|
|
35
|
+
"@types/ssh2": "^1.15.1",
|
|
36
|
+
"@vitest/coverage-v8": "^2.1.9",
|
|
37
|
+
"typescript": "^5.7.2",
|
|
38
|
+
"vite-tsconfig-paths": "^6.1.1",
|
|
39
|
+
"vitest": "^2.1.8"
|
|
40
|
+
},
|
|
41
|
+
"engines": {
|
|
42
|
+
"node": ">=18.0.0"
|
|
43
|
+
},
|
|
44
|
+
"license": "MIT",
|
|
45
|
+
"scripts": {
|
|
46
|
+
"build": "tsc",
|
|
47
|
+
"dev": "tsx src/cli/index.ts",
|
|
48
|
+
"test": "vitest run",
|
|
49
|
+
"test:watch": "vitest",
|
|
50
|
+
"test:coverage": "vitest run --coverage",
|
|
51
|
+
"lint": "tsc --noEmit"
|
|
52
|
+
}
|
|
53
|
+
}
|