netlify-cli 21.6.0-pre.191fc80 → 21.6.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/commands/main.d.ts.map +1 -1
- package/dist/commands/main.js +0 -2
- package/dist/commands/main.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/dist/commands/database/constants.d.ts +0 -4
- package/dist/commands/database/constants.d.ts.map +0 -1
- package/dist/commands/database/constants.js +0 -4
- package/dist/commands/database/constants.js.map +0 -1
- package/dist/commands/database/database.d.ts +0 -18
- package/dist/commands/database/database.d.ts.map +0 -1
- package/dist/commands/database/database.js +0 -20
- package/dist/commands/database/database.js.map +0 -1
- package/dist/commands/database/drizzle.d.ts +0 -3
- package/dist/commands/database/drizzle.d.ts.map +0 -1
- package/dist/commands/database/drizzle.js +0 -95
- package/dist/commands/database/drizzle.js.map +0 -1
- package/dist/commands/database/index.d.ts +0 -2
- package/dist/commands/database/index.d.ts.map +0 -1
- package/dist/commands/database/index.js +0 -2
- package/dist/commands/database/index.js.map +0 -1
- package/dist/commands/database/init.d.ts +0 -4
- package/dist/commands/database/init.d.ts.map +0 -1
- package/dist/commands/database/init.js +0 -143
- package/dist/commands/database/init.js.map +0 -1
- package/dist/commands/database/status.d.ts +0 -4
- package/dist/commands/database/status.d.ts.map +0 -1
- package/dist/commands/database/status.js +0 -71
- package/dist/commands/database/status.js.map +0 -1
- package/dist/commands/database/utils.d.ts +0 -75
- package/dist/commands/database/utils.d.ts.map +0 -1
- package/dist/commands/database/utils.js +0 -173
- package/dist/commands/database/utils.js.map +0 -1
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "netlify-cli",
|
|
3
|
-
"version": "21.6.0
|
|
3
|
+
"version": "21.6.0",
|
|
4
4
|
"lockfileVersion": 2,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "netlify-cli",
|
|
9
|
-
"version": "21.6.0
|
|
9
|
+
"version": "21.6.0",
|
|
10
10
|
"hasInstallScript": true,
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"dependencies": {
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/commands/database/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,QAAqD,CAAA;AAC9F,eAAO,MAAM,UAAU,QAAyD,CAAA;AAChF,eAAO,MAAM,yBAAyB,kBAAkB,CAAA"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export const NEON_DATABASE_EXTENSION_SLUG = process.env.NEON_DATABASE_EXTENSION_SLUG ?? 'neon';
|
|
2
|
-
export const JIGSAW_URL = process.env.JIGSAW_URL ?? 'https://api.netlifysdk.com';
|
|
3
|
-
export const NETLIFY_NEON_PACKAGE_NAME = '@netlify/neon';
|
|
4
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/commands/database/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,4BAA4B,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,MAAM,CAAA;AAC9F,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,4BAA4B,CAAA;AAChF,MAAM,CAAC,MAAM,yBAAyB,GAAG,eAAe,CAAA"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import BaseCommand from '../base-command.js';
|
|
2
|
-
export type Extension = {
|
|
3
|
-
id: string;
|
|
4
|
-
name: string;
|
|
5
|
-
slug: string;
|
|
6
|
-
hostSiteUrl: string;
|
|
7
|
-
installedOnTeam: boolean;
|
|
8
|
-
};
|
|
9
|
-
export type SiteInfo = {
|
|
10
|
-
id: string;
|
|
11
|
-
name: string;
|
|
12
|
-
account_id: string;
|
|
13
|
-
admin_url: string;
|
|
14
|
-
url: string;
|
|
15
|
-
ssl_url: string;
|
|
16
|
-
};
|
|
17
|
-
export declare const createDatabaseCommand: (program: BaseCommand) => void;
|
|
18
|
-
//# sourceMappingURL=database.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../src/commands/database/database.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAI5C,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,SAAS,WAAW,SAqBzD,CAAA"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { status } from './status.js';
|
|
2
|
-
import { init } from './init.js';
|
|
3
|
-
export const createDatabaseCommand = (program) => {
|
|
4
|
-
const dbCommand = program
|
|
5
|
-
.command('db')
|
|
6
|
-
.alias('database')
|
|
7
|
-
.description(`Provision a production ready Postgres database with a single command`)
|
|
8
|
-
.addExamples(['netlify db status', 'netlify db init', 'netlify db init --help']);
|
|
9
|
-
dbCommand
|
|
10
|
-
.command('init')
|
|
11
|
-
.description(`Initialize a new database for the current site`)
|
|
12
|
-
.option(`--drizzle`, 'Initialize basic drizzle config and schema boilerplate')
|
|
13
|
-
.option('--no-drizzle', 'Does not initialize drizzle and skips any related prompts')
|
|
14
|
-
.option('--minimal', 'Minimal non-interactive setup. Does not initialize drizzle or any boilerplate. Ideal for CI or AI tools.')
|
|
15
|
-
.option('-o, --overwrite', 'Overwrites existing files that would be created when setting up drizzle')
|
|
16
|
-
.action(init)
|
|
17
|
-
.addExamples([`netlify db init --minimal`, `netlify db init --drizzle --overwrite`]);
|
|
18
|
-
dbCommand.command('status').description(`Check the status of the database`).action(status);
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=database.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/commands/database/database.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAmBhC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAoB,EAAE,EAAE;IAC5D,MAAM,SAAS,GAAG,OAAO;SACtB,OAAO,CAAC,IAAI,CAAC;SACb,KAAK,CAAC,UAAU,CAAC;SACjB,WAAW,CAAC,sEAAsE,CAAC;SACnF,WAAW,CAAC,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC,CAAA;IAElF,SAAS;SACN,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC,WAAW,EAAE,wDAAwD,CAAC;SAC7E,MAAM,CAAC,cAAc,EAAE,2DAA2D,CAAC;SACnF,MAAM,CACL,WAAW,EACX,0GAA0G,CAC3G;SACA,MAAM,CAAC,iBAAiB,EAAE,yEAAyE,CAAC;SACpG,MAAM,CAAC,IAAI,CAAC;SACZ,WAAW,CAAC,CAAC,2BAA2B,EAAE,uCAAuC,CAAC,CAAC,CAAA;IAEtF,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,kCAAkC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAC5F,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"drizzle.d.ts","sourceRoot":"","sources":["../../../src/commands/database/drizzle.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAM5C,eAAO,MAAM,WAAW,GAAU,SAAS,WAAW,kBAgErD,CAAA"}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { carefullyWriteFile, getPackageJSON, spawnAsync } from './utils.js';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import fs from 'fs/promises';
|
|
4
|
-
import inquirer from 'inquirer';
|
|
5
|
-
import { NETLIFY_NEON_PACKAGE_NAME } from './constants.js';
|
|
6
|
-
export const initDrizzle = async (command) => {
|
|
7
|
-
if (!command.project.root) {
|
|
8
|
-
throw new Error('Failed to initialize Drizzle in project. Project root not found.');
|
|
9
|
-
}
|
|
10
|
-
const opts = command.opts();
|
|
11
|
-
const drizzleConfigFilePath = path.resolve(command.project.root, 'drizzle.config.ts');
|
|
12
|
-
const schemaFilePath = path.resolve(command.project.root, 'db/schema.ts');
|
|
13
|
-
const dbIndexFilePath = path.resolve(command.project.root, 'db/index.ts');
|
|
14
|
-
if (opts.overwrite) {
|
|
15
|
-
await fs.writeFile(drizzleConfigFilePath, drizzleConfig);
|
|
16
|
-
await fs.mkdir(path.resolve(command.project.root, 'db'), { recursive: true });
|
|
17
|
-
await fs.writeFile(schemaFilePath, drizzleSchema);
|
|
18
|
-
await fs.writeFile(dbIndexFilePath, dbIndex);
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
await carefullyWriteFile(drizzleConfigFilePath, drizzleConfig, command.project.root);
|
|
22
|
-
await fs.mkdir(path.resolve(command.project.root, 'db'), { recursive: true });
|
|
23
|
-
await carefullyWriteFile(schemaFilePath, drizzleSchema, command.project.root);
|
|
24
|
-
await carefullyWriteFile(dbIndexFilePath, dbIndex, command.project.root);
|
|
25
|
-
}
|
|
26
|
-
const packageJsonPath = path.resolve(command.workingDir, 'package.json');
|
|
27
|
-
const packageJson = getPackageJSON(command.workingDir);
|
|
28
|
-
packageJson.scripts = {
|
|
29
|
-
...(packageJson.scripts ?? {}),
|
|
30
|
-
...packageJsonScripts,
|
|
31
|
-
};
|
|
32
|
-
if (opts.overwrite) {
|
|
33
|
-
await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2));
|
|
34
|
-
}
|
|
35
|
-
if (!opts.overwrite) {
|
|
36
|
-
const answers = await inquirer.prompt([
|
|
37
|
-
{
|
|
38
|
-
type: 'confirm',
|
|
39
|
-
name: 'updatePackageJson',
|
|
40
|
-
message: `Add drizzle db commands to package.json?`,
|
|
41
|
-
},
|
|
42
|
-
]);
|
|
43
|
-
if (answers.updatePackageJson) {
|
|
44
|
-
await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2));
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
if (!Object.keys(packageJson.devDependencies ?? {}).includes('drizzle-kit')) {
|
|
48
|
-
await spawnAsync(command.project.packageManager?.installCommand ?? 'npm install', ['drizzle-kit@latest', '-D'], {
|
|
49
|
-
stdio: 'inherit',
|
|
50
|
-
shell: true,
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
if (!Object.keys(packageJson.dependencies ?? {}).includes('drizzle-orm')) {
|
|
54
|
-
await spawnAsync(command.project.packageManager?.installCommand ?? 'npm install', ['drizzle-orm@latest'], {
|
|
55
|
-
stdio: 'inherit',
|
|
56
|
-
shell: true,
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
const drizzleConfig = `import { defineConfig } from 'drizzle-kit';
|
|
61
|
-
|
|
62
|
-
export default defineConfig({
|
|
63
|
-
dialect: 'postgresql',
|
|
64
|
-
dbCredentials: {
|
|
65
|
-
url: process.env.NETLIFY_DATABASE_URL!
|
|
66
|
-
},
|
|
67
|
-
schema: './db/schema.ts',
|
|
68
|
-
/**
|
|
69
|
-
* Never edit the migrations directly, only use drizzle.
|
|
70
|
-
* There are scripts in the package.json "db:generate" and "db:migrate" to handle this.
|
|
71
|
-
*/
|
|
72
|
-
out: './migrations'
|
|
73
|
-
});`;
|
|
74
|
-
const drizzleSchema = `import { integer, pgTable, varchar, text } from 'drizzle-orm/pg-core';
|
|
75
|
-
|
|
76
|
-
export const posts = pgTable('posts', {
|
|
77
|
-
id: integer().primaryKey().generatedAlwaysAsIdentity(),
|
|
78
|
-
title: varchar({ length: 255 }).notNull(),
|
|
79
|
-
content: text().notNull().default('')
|
|
80
|
-
});`;
|
|
81
|
-
const dbIndex = `import { neon } from '${NETLIFY_NEON_PACKAGE_NAME}';
|
|
82
|
-
import { drizzle } from 'drizzle-orm/neon-http';
|
|
83
|
-
|
|
84
|
-
import * as schema from './schema';
|
|
85
|
-
|
|
86
|
-
export const db = drizzle({
|
|
87
|
-
schema,
|
|
88
|
-
client: neon()
|
|
89
|
-
});`;
|
|
90
|
-
const packageJsonScripts = {
|
|
91
|
-
'db:generate': 'drizzle-kit generate',
|
|
92
|
-
'db:migrate': 'netlify dev:exec drizzle-kit migrate',
|
|
93
|
-
'db:studio': 'netlify dev:exec drizzle-kit studio',
|
|
94
|
-
};
|
|
95
|
-
//# sourceMappingURL=drizzle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"drizzle.js","sourceRoot":"","sources":["../../../src/commands/database/drizzle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/database/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAQ5C,eAAO,MAAM,IAAI,GAAU,UAAU,YAAY,EAAE,SAAS,WAAW,kBA0KtE,CAAA"}
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import inquirer from 'inquirer';
|
|
2
|
-
import { getAccount, getExtension, getJigsawToken, getPackageJSON, installExtension, spawnAsync } from './utils.js';
|
|
3
|
-
import { initDrizzle } from './drizzle.js';
|
|
4
|
-
import { NEON_DATABASE_EXTENSION_SLUG, NETLIFY_NEON_PACKAGE_NAME } from './constants.js';
|
|
5
|
-
import prettyjson from 'prettyjson';
|
|
6
|
-
import { log } from '../../utils/command-helpers.js';
|
|
7
|
-
export const init = async (_options, command) => {
|
|
8
|
-
const siteInfo = command.netlify.siteInfo;
|
|
9
|
-
if (!command.siteId) {
|
|
10
|
-
console.error(`The project must be linked with netlify link before initializing a database.`);
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
const initialOpts = command.opts();
|
|
14
|
-
const opts = command.opts();
|
|
15
|
-
if (!command.netlify.api.accessToken || !siteInfo.account_id || !siteInfo.name) {
|
|
16
|
-
throw new Error(`Please login with netlify login before running this command`);
|
|
17
|
-
}
|
|
18
|
-
if (opts.minimal === true) {
|
|
19
|
-
command.setOptionValue('drizzle', false);
|
|
20
|
-
}
|
|
21
|
-
const account = await getAccount(command, { accountId: siteInfo.account_id });
|
|
22
|
-
const netlifyToken = command.netlify.api.accessToken.replace('Bearer ', '');
|
|
23
|
-
const extension = await getExtension({
|
|
24
|
-
accountId: siteInfo.account_id,
|
|
25
|
-
netlifyToken: netlifyToken,
|
|
26
|
-
slug: NEON_DATABASE_EXTENSION_SLUG,
|
|
27
|
-
});
|
|
28
|
-
if (!extension?.hostSiteUrl) {
|
|
29
|
-
throw new Error(`Failed to get extension host site url when installing extension`);
|
|
30
|
-
}
|
|
31
|
-
const installNeonExtension = async () => {
|
|
32
|
-
if (!account.name) {
|
|
33
|
-
throw new Error(`Failed to install extension "${extension.name}"`);
|
|
34
|
-
}
|
|
35
|
-
const installed = await installExtension({
|
|
36
|
-
accountId: siteInfo.account_id,
|
|
37
|
-
netlifyToken: netlifyToken,
|
|
38
|
-
slug: NEON_DATABASE_EXTENSION_SLUG,
|
|
39
|
-
hostSiteUrl: extension.hostSiteUrl,
|
|
40
|
-
});
|
|
41
|
-
if (!installed) {
|
|
42
|
-
throw new Error(`Failed to install extension on team "${account.name}": "${extension.name}"`);
|
|
43
|
-
}
|
|
44
|
-
log(`Extension "${extension.name}" successfully installed on team "${account.name}"`);
|
|
45
|
-
};
|
|
46
|
-
if (!extension.installedOnTeam) {
|
|
47
|
-
await installNeonExtension();
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Only prompt for drizzle if the user did not pass in the `--drizzle` or `--no-drizzle` option
|
|
51
|
-
*/
|
|
52
|
-
if (initialOpts.drizzle !== false && initialOpts.drizzle !== true) {
|
|
53
|
-
const answers = await inquirer.prompt([
|
|
54
|
-
{
|
|
55
|
-
type: 'confirm',
|
|
56
|
-
name: 'drizzle',
|
|
57
|
-
message: 'Use Drizzle?',
|
|
58
|
-
},
|
|
59
|
-
]);
|
|
60
|
-
command.setOptionValue('drizzle', answers.drizzle);
|
|
61
|
-
}
|
|
62
|
-
if (opts.drizzle) {
|
|
63
|
-
log(`Initializing drizzle...`);
|
|
64
|
-
await initDrizzle(command);
|
|
65
|
-
}
|
|
66
|
-
log(`Initializing a new database...`);
|
|
67
|
-
const hostSiteUrl = process.env.EXTENSION_HOST_SITE_URL ?? extension.hostSiteUrl;
|
|
68
|
-
const initEndpoint = new URL('/api/cli-db-init', hostSiteUrl).toString();
|
|
69
|
-
const currentUser = await command.netlify.api.getCurrentUser();
|
|
70
|
-
const { data: jigsawToken, error } = await getJigsawToken({
|
|
71
|
-
netlifyToken: netlifyToken,
|
|
72
|
-
accountId: siteInfo.account_id,
|
|
73
|
-
integrationSlug: extension.slug,
|
|
74
|
-
});
|
|
75
|
-
if (error || !jigsawToken) {
|
|
76
|
-
throw new Error(`Failed to get jigsaw token: ${error?.message ?? 'Unknown error'}`);
|
|
77
|
-
}
|
|
78
|
-
const headers = {
|
|
79
|
-
'Content-Type': 'application/json',
|
|
80
|
-
'Nf-UIExt-Netlify-Token': jigsawToken,
|
|
81
|
-
'Nf-UIExt-Netlify-Token-Issuer': 'jigsaw',
|
|
82
|
-
'Nf-UIExt-Extension-Id': extension.id,
|
|
83
|
-
'Nf-UIExt-Extension-Slug': extension.slug,
|
|
84
|
-
'Nf-UIExt-Site-Id': command.siteId ?? '',
|
|
85
|
-
'Nf-UIExt-Team-Id': siteInfo.account_id,
|
|
86
|
-
'Nf-UIExt-User-Id': currentUser.id ?? '',
|
|
87
|
-
};
|
|
88
|
-
const req = await fetch(initEndpoint, {
|
|
89
|
-
method: 'POST',
|
|
90
|
-
headers,
|
|
91
|
-
});
|
|
92
|
-
if (!req.ok) {
|
|
93
|
-
const error = (await req.json());
|
|
94
|
-
if (error.code === 'CONFLICT') {
|
|
95
|
-
log(`Database already connected to this site. Skipping initialization.`);
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
throw new Error(`Failed to initialize DB: ${error.message ?? 'Unknown error occurred'}`);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
let status;
|
|
102
|
-
try {
|
|
103
|
-
const statusEndpoint = new URL('/api/cli-db-status', hostSiteUrl).toString();
|
|
104
|
-
const statusRes = await fetch(statusEndpoint, {
|
|
105
|
-
headers,
|
|
106
|
-
});
|
|
107
|
-
if (!statusRes.ok) {
|
|
108
|
-
throw new Error(`Failed to get database status`, { cause: statusRes });
|
|
109
|
-
}
|
|
110
|
-
status = (await statusRes.json());
|
|
111
|
-
}
|
|
112
|
-
catch (e) {
|
|
113
|
-
console.error('Failed to get database status', e);
|
|
114
|
-
}
|
|
115
|
-
try {
|
|
116
|
-
const packageJson = getPackageJSON(command.workingDir);
|
|
117
|
-
if ((packageJson.dependencies && !Object.keys(packageJson.dependencies).includes(NETLIFY_NEON_PACKAGE_NAME)) ||
|
|
118
|
-
!packageJson.dependencies) {
|
|
119
|
-
await spawnAsync(command.project.packageManager?.installCommand ?? 'npm install', ['@netlify/neon@latest'], {
|
|
120
|
-
stdio: 'inherit',
|
|
121
|
-
shell: true,
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
catch (e) {
|
|
126
|
-
console.error(`Failed to install @netlify/neon in ${command.workingDir}:`, e);
|
|
127
|
-
}
|
|
128
|
-
log(prettyjson.render({
|
|
129
|
-
'Current team': account.name,
|
|
130
|
-
'Current site': siteInfo.name,
|
|
131
|
-
[`${extension.name} extension`]: 'installed on team',
|
|
132
|
-
['Database status']: status?.siteConfiguration?.connectedDatabase?.isConnected
|
|
133
|
-
? 'connected to site'
|
|
134
|
-
: 'not connected',
|
|
135
|
-
['Environment variables']: '',
|
|
136
|
-
[' NETLIFY_DATABASE_URL']: status?.existingManagedEnvs?.includes('NETLIFY_DATABASE_URL') ? 'saved' : 'not set',
|
|
137
|
-
[' NETLIFY_DATABASE_URL_UNPOOLED']: status?.existingManagedEnvs?.includes('NETLIFY_DATABASE_URL_UNPOOLED')
|
|
138
|
-
? 'saved'
|
|
139
|
-
: 'not set',
|
|
140
|
-
}));
|
|
141
|
-
return;
|
|
142
|
-
};
|
|
143
|
-
//# sourceMappingURL=init.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/database/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/database/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAM5C,eAAO,MAAM,MAAM,GAAU,UAAU,YAAY,EAAE,SAAS,WAAW,kBAsExE,CAAA"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { getAccount, getExtension, getSiteConfiguration } from './utils.js';
|
|
2
|
-
import { NEON_DATABASE_EXTENSION_SLUG } from './constants.js';
|
|
3
|
-
import prettyjson from 'prettyjson';
|
|
4
|
-
import { chalk, log } from '../../utils/command-helpers.js';
|
|
5
|
-
export const status = async (_options, command) => {
|
|
6
|
-
const siteInfo = command.netlify.siteInfo;
|
|
7
|
-
if (!command.siteId) {
|
|
8
|
-
throw new Error(`The project must be linked with netlify link before initializing a database.`);
|
|
9
|
-
}
|
|
10
|
-
if (!siteInfo.account_id) {
|
|
11
|
-
throw new Error(`No account id found for site ${command.siteId}`);
|
|
12
|
-
}
|
|
13
|
-
if (!command.netlify.api.accessToken) {
|
|
14
|
-
throw new Error(`You must be logged in with netlify login to check the status of the database`);
|
|
15
|
-
}
|
|
16
|
-
const netlifyToken = command.netlify.api.accessToken.replace('Bearer ', '');
|
|
17
|
-
const account = await getAccount(command, { accountId: siteInfo.account_id });
|
|
18
|
-
let databaseUrlEnv;
|
|
19
|
-
let unpooledDatabaseUrlEnv;
|
|
20
|
-
try {
|
|
21
|
-
databaseUrlEnv = await command.netlify.api.getEnvVar({
|
|
22
|
-
accountId: siteInfo.account_id,
|
|
23
|
-
siteId: command.siteId,
|
|
24
|
-
key: 'NETLIFY_DATABASE_URL',
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
catch {
|
|
28
|
-
// no-op, env var does not exist, so we just continue
|
|
29
|
-
}
|
|
30
|
-
try {
|
|
31
|
-
unpooledDatabaseUrlEnv = await command.netlify.api.getEnvVar({
|
|
32
|
-
accountId: siteInfo.account_id,
|
|
33
|
-
siteId: command.siteId,
|
|
34
|
-
key: 'NETLIFY_DATABASE_URL_UNPOOLED',
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
catch {
|
|
38
|
-
// no-op, env var does not exist, so we just continue
|
|
39
|
-
}
|
|
40
|
-
const extension = await getExtension({
|
|
41
|
-
accountId: account.id,
|
|
42
|
-
netlifyToken: netlifyToken,
|
|
43
|
-
slug: NEON_DATABASE_EXTENSION_SLUG,
|
|
44
|
-
});
|
|
45
|
-
let siteConfig;
|
|
46
|
-
try {
|
|
47
|
-
siteConfig = await getSiteConfiguration({
|
|
48
|
-
siteId: command.siteId,
|
|
49
|
-
accountId: siteInfo.account_id,
|
|
50
|
-
slug: NEON_DATABASE_EXTENSION_SLUG,
|
|
51
|
-
netlifyToken: netlifyToken,
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
catch {
|
|
55
|
-
// no-op, site config does not exist or extension not installed
|
|
56
|
-
}
|
|
57
|
-
log(prettyjson.render({
|
|
58
|
-
'Current team': account.name,
|
|
59
|
-
'Current site': siteInfo.name,
|
|
60
|
-
[extension?.name ? `${extension.name} extension` : 'Database extension']: extension?.installedOnTeam
|
|
61
|
-
? 'installed on team'
|
|
62
|
-
: chalk.red('not installed on team'),
|
|
63
|
-
// @ts-expect-error -- siteConfig is not typed
|
|
64
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
65
|
-
['Database status']: siteConfig?.config?.connectedDatabase ? 'connected to site' : chalk.red('not connected'),
|
|
66
|
-
['Environment variables']: '',
|
|
67
|
-
[' NETLIFY_DATABASE_URL']: databaseUrlEnv?.key === 'NETLIFY_DATABASE_URL' ? 'saved' : chalk.red('not set'),
|
|
68
|
-
[' NETLIFY_DATABASE_URL_UNPOOLED']: unpooledDatabaseUrlEnv?.key === 'NETLIFY_DATABASE_URL_UNPOOLED' ? 'saved' : chalk.red('not set'),
|
|
69
|
-
}));
|
|
70
|
-
};
|
|
71
|
-
//# sourceMappingURL=status.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/database/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import BaseCommand from '../base-command.js';
|
|
2
|
-
import { Extension } from './database.js';
|
|
3
|
-
import { spawn } from 'child_process';
|
|
4
|
-
type PackageJSON = {
|
|
5
|
-
dependencies?: Record<string, string>;
|
|
6
|
-
devDependencies?: Record<string, string>;
|
|
7
|
-
scripts?: Record<string, string>;
|
|
8
|
-
};
|
|
9
|
-
export declare function getPackageJSON(directory: string): PackageJSON;
|
|
10
|
-
export declare const spawnAsync: (command: string, args: string[], options: Parameters<typeof spawn>[2]) => Promise<number>;
|
|
11
|
-
export declare const getExtension: ({ accountId, netlifyToken, slug, }: {
|
|
12
|
-
accountId: string;
|
|
13
|
-
netlifyToken: string;
|
|
14
|
-
slug: string;
|
|
15
|
-
}) => Promise<Extension | undefined>;
|
|
16
|
-
export declare const installExtension: ({ netlifyToken, accountId, slug, hostSiteUrl, }: {
|
|
17
|
-
netlifyToken: string;
|
|
18
|
-
accountId: string;
|
|
19
|
-
slug: string;
|
|
20
|
-
hostSiteUrl: string;
|
|
21
|
-
}) => Promise<boolean>;
|
|
22
|
-
export declare const getSiteConfiguration: ({ siteId, accountId, netlifyToken, slug, }: {
|
|
23
|
-
siteId: string;
|
|
24
|
-
accountId: string;
|
|
25
|
-
netlifyToken: string;
|
|
26
|
-
slug: string;
|
|
27
|
-
}) => Promise<unknown>;
|
|
28
|
-
export declare const carefullyWriteFile: (filePath: string, data: string, projectRoot: string) => Promise<void>;
|
|
29
|
-
export declare const getAccount: (command: BaseCommand, { accountId, }: {
|
|
30
|
-
accountId: string;
|
|
31
|
-
}) => Promise<{
|
|
32
|
-
id: string;
|
|
33
|
-
name: string;
|
|
34
|
-
} & Omit<{
|
|
35
|
-
id?: string;
|
|
36
|
-
name?: string;
|
|
37
|
-
slug?: string;
|
|
38
|
-
type?: string;
|
|
39
|
-
capabilities?: {
|
|
40
|
-
sites?: import("@netlify/open-api").components["schemas"]["accountUsageCapability"];
|
|
41
|
-
collaborators?: import("@netlify/open-api").components["schemas"]["accountUsageCapability"];
|
|
42
|
-
};
|
|
43
|
-
billing_name?: string;
|
|
44
|
-
billing_email?: string;
|
|
45
|
-
billing_details?: string;
|
|
46
|
-
billing_period?: string;
|
|
47
|
-
payment_method_id?: string;
|
|
48
|
-
type_name?: string;
|
|
49
|
-
type_id?: string;
|
|
50
|
-
owner_ids?: string[];
|
|
51
|
-
roles_allowed?: string[];
|
|
52
|
-
created_at?: string;
|
|
53
|
-
updated_at?: string;
|
|
54
|
-
}, "name" | "id">>;
|
|
55
|
-
type JigsawTokenResult = {
|
|
56
|
-
data: string;
|
|
57
|
-
error: null;
|
|
58
|
-
} | {
|
|
59
|
-
data: null;
|
|
60
|
-
error: {
|
|
61
|
-
code: number;
|
|
62
|
-
message: string;
|
|
63
|
-
};
|
|
64
|
-
};
|
|
65
|
-
export declare const getJigsawToken: ({ netlifyToken, accountId, integrationSlug, isEnable, }: {
|
|
66
|
-
netlifyToken: string;
|
|
67
|
-
accountId: string;
|
|
68
|
-
integrationSlug?: string;
|
|
69
|
-
/**
|
|
70
|
-
* isEnable will make a token that can install the extension
|
|
71
|
-
*/
|
|
72
|
-
isEnable?: boolean;
|
|
73
|
-
}) => Promise<JigsawTokenResult>;
|
|
74
|
-
export {};
|
|
75
|
-
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/commands/database/utils.ts"],"names":[],"mappings":"AAQA,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAErC,KAAK,WAAW,GAAG;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC,CAAA;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAexB,WAAW,CAClC;AAED,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,EAAE,MAAM,MAAM,EAAE,EAAE,SAAS,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,MAAM,CAYhH,CAAA;AAED,eAAO,MAAM,YAAY,GAAU,oCAIhC;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;CACb,mCAiBA,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAU,iDAKpC;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACpB,qBA2BA,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAU,4CAKxC;IACD,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;CACb,qBAYA,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAU,UAAU,MAAM,EAAE,MAAM,MAAM,EAAE,aAAa,MAAM,kBAkB3F,CAAA;AAED,eAAO,MAAM,UAAU,GACrB,SAAS,WAAW,EACpB,gBAEG;IACD,SAAS,EAAE,MAAM,CAAA;CAClB;QAcuB,MAAM;UAAQ,MAAM;;;;;;;aAiFw8uC,CAAC,EAAC,iDAAsB;qBAAiD,CAAC,EAAC,iDAAsB;;;;;;;;;;;;;kBA7EtlvC,CAAA;AAED,KAAK,iBAAiB,GAClB;IACE,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,IAAI,CAAA;CACZ,GACD;IACE,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CACzC,CAAA;AAEL,eAAO,MAAM,cAAc,GAAU,yDAKlC;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,KAAG,OAAO,CAAC,iBAAiB,CAmD5B,CAAA"}
|