netlify-cli 21.6.0-pre.41d0739 → 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.
Files changed (34) hide show
  1. package/dist/commands/main.d.ts.map +1 -1
  2. package/dist/commands/main.js +0 -2
  3. package/dist/commands/main.js.map +1 -1
  4. package/dist/tsconfig.build.tsbuildinfo +1 -1
  5. package/npm-shrinkwrap.json +2 -2
  6. package/package.json +1 -1
  7. package/dist/commands/database/constants.d.ts +0 -4
  8. package/dist/commands/database/constants.d.ts.map +0 -1
  9. package/dist/commands/database/constants.js +0 -4
  10. package/dist/commands/database/constants.js.map +0 -1
  11. package/dist/commands/database/database.d.ts +0 -18
  12. package/dist/commands/database/database.d.ts.map +0 -1
  13. package/dist/commands/database/database.js +0 -20
  14. package/dist/commands/database/database.js.map +0 -1
  15. package/dist/commands/database/drizzle.d.ts +0 -3
  16. package/dist/commands/database/drizzle.d.ts.map +0 -1
  17. package/dist/commands/database/drizzle.js +0 -96
  18. package/dist/commands/database/drizzle.js.map +0 -1
  19. package/dist/commands/database/index.d.ts +0 -2
  20. package/dist/commands/database/index.d.ts.map +0 -1
  21. package/dist/commands/database/index.js +0 -2
  22. package/dist/commands/database/index.js.map +0 -1
  23. package/dist/commands/database/init.d.ts +0 -4
  24. package/dist/commands/database/init.d.ts.map +0 -1
  25. package/dist/commands/database/init.js +0 -143
  26. package/dist/commands/database/init.js.map +0 -1
  27. package/dist/commands/database/status.d.ts +0 -4
  28. package/dist/commands/database/status.d.ts.map +0 -1
  29. package/dist/commands/database/status.js +0 -71
  30. package/dist/commands/database/status.js.map +0 -1
  31. package/dist/commands/database/utils.d.ts +0 -75
  32. package/dist/commands/database/utils.d.ts.map +0 -1
  33. package/dist/commands/database/utils.js +0 -173
  34. package/dist/commands/database/utils.js.map +0 -1
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "netlify-cli",
3
- "version": "21.6.0-pre.41d0739",
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-pre.41d0739",
9
+ "version": "21.6.0",
10
10
  "hasInstallScript": true,
11
11
  "license": "MIT",
12
12
  "dependencies": {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "netlify-cli",
3
3
  "description": "Netlify command line tool",
4
- "version": "21.6.0-pre.41d0739",
4
+ "version": "21.6.0",
5
5
  "author": "Netlify Inc.",
6
6
  "type": "module",
7
7
  "engines": {
@@ -1,4 +0,0 @@
1
- export declare const NEON_DATABASE_EXTENSION_SLUG: string;
2
- export declare const JIGSAW_URL: string;
3
- export declare const NETLIFY_NEON_PACKAGE_NAME = "@netlify/neon";
4
- //# sourceMappingURL=constants.d.ts.map
@@ -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,3 +0,0 @@
1
- import BaseCommand from '../base-command.js';
2
- export declare const initDrizzle: (command: BaseCommand) => Promise<void>;
3
- //# sourceMappingURL=drizzle.d.ts.map
@@ -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,kBAiErD,CAAA"}
@@ -1,96 +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
- const workingDirectory = command.project.root ?? command.project.baseDirectory;
8
- if (!workingDirectory) {
9
- throw new Error('Failed to initialize Drizzle. Project root or base directory not found.');
10
- }
11
- const opts = command.opts();
12
- const drizzleConfigFilePath = path.resolve(workingDirectory, 'drizzle.config.ts');
13
- const schemaFilePath = path.resolve(workingDirectory, 'db/schema.ts');
14
- const dbIndexFilePath = path.resolve(workingDirectory, 'db/index.ts');
15
- if (opts.overwrite) {
16
- await fs.writeFile(drizzleConfigFilePath, drizzleConfig);
17
- await fs.mkdir(path.resolve(workingDirectory, 'db'), { recursive: true });
18
- await fs.writeFile(schemaFilePath, drizzleSchema);
19
- await fs.writeFile(dbIndexFilePath, dbIndex);
20
- }
21
- else {
22
- await carefullyWriteFile(drizzleConfigFilePath, drizzleConfig, workingDirectory);
23
- await fs.mkdir(path.resolve(workingDirectory, 'db'), { recursive: true });
24
- await carefullyWriteFile(schemaFilePath, drizzleSchema, workingDirectory);
25
- await carefullyWriteFile(dbIndexFilePath, dbIndex, workingDirectory);
26
- }
27
- const packageJsonPath = path.resolve(command.workingDir, 'package.json');
28
- const packageJson = getPackageJSON(command.workingDir);
29
- packageJson.scripts = {
30
- ...(packageJson.scripts ?? {}),
31
- ...packageJsonScripts,
32
- };
33
- if (opts.overwrite) {
34
- await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2));
35
- }
36
- if (!opts.overwrite) {
37
- const answers = await inquirer.prompt([
38
- {
39
- type: 'confirm',
40
- name: 'updatePackageJson',
41
- message: `Add drizzle db commands to package.json?`,
42
- },
43
- ]);
44
- if (answers.updatePackageJson) {
45
- await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2));
46
- }
47
- }
48
- if (!Object.keys(packageJson.devDependencies ?? {}).includes('drizzle-kit')) {
49
- await spawnAsync(command.project.packageManager?.installCommand ?? 'npm install', ['drizzle-kit@latest', '-D'], {
50
- stdio: 'inherit',
51
- shell: true,
52
- });
53
- }
54
- if (!Object.keys(packageJson.dependencies ?? {}).includes('drizzle-orm')) {
55
- await spawnAsync(command.project.packageManager?.installCommand ?? 'npm install', ['drizzle-orm@latest'], {
56
- stdio: 'inherit',
57
- shell: true,
58
- });
59
- }
60
- };
61
- const drizzleConfig = `import { defineConfig } from 'drizzle-kit';
62
-
63
- export default defineConfig({
64
- dialect: 'postgresql',
65
- dbCredentials: {
66
- url: process.env.NETLIFY_DATABASE_URL!
67
- },
68
- schema: './db/schema.ts',
69
- /**
70
- * Never edit the migrations directly, only use drizzle.
71
- * There are scripts in the package.json "db:generate" and "db:migrate" to handle this.
72
- */
73
- out: './migrations'
74
- });`;
75
- const drizzleSchema = `import { integer, pgTable, varchar, text } from 'drizzle-orm/pg-core';
76
-
77
- export const posts = pgTable('posts', {
78
- id: integer().primaryKey().generatedAlwaysAsIdentity(),
79
- title: varchar({ length: 255 }).notNull(),
80
- content: text().notNull().default('')
81
- });`;
82
- const dbIndex = `import { neon } from '${NETLIFY_NEON_PACKAGE_NAME}';
83
- import { drizzle } from 'drizzle-orm/neon-http';
84
-
85
- import * as schema from './schema';
86
-
87
- export const db = drizzle({
88
- schema,
89
- client: neon()
90
- });`;
91
- const packageJsonScripts = {
92
- 'db:generate': 'drizzle-kit generate',
93
- 'db:migrate': 'netlify dev:exec drizzle-kit migrate',
94
- 'db:studio': 'netlify dev:exec drizzle-kit studio',
95
- };
96
- //# sourceMappingURL=drizzle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"drizzle.js","sourceRoot":"","sources":["../../../src/commands/database/drizzle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE3E,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,MAAM,aAAa,CAAA;AAC5B,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAE1D,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,OAAoB,EAAE,EAAE;IACxD,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,CAAA;IAC9E,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAA;IAC5F,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAErB,CAAA;IAEJ,MAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAA;IACjF,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;IACrE,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;IACrE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,EAAE,CAAC,SAAS,CAAC,qBAAqB,EAAE,aAAa,CAAC,CAAA;QACxD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACzE,MAAM,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,aAAa,CAAC,CAAA;QACjD,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,CAAA;IAC9C,CAAC;SAAM,CAAC;QACN,MAAM,kBAAkB,CAAC,qBAAqB,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAA;QAChF,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACzE,MAAM,kBAAkB,CAAC,cAAc,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAA;QACzE,MAAM,kBAAkB,CAAC,eAAe,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;IACxE,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAEtD,WAAW,CAAC,OAAO,GAAG;QACpB,GAAG,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC;QAC9B,GAAG,kBAAkB;KACtB,CAAA;IACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC3E,CAAC;IAMD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAU;YAC7C;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,0CAA0C;aACpD;SACF,CAAC,CAAA;QACF,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAC9B,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAC3E,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5E,MAAM,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,IAAI,aAAa,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,EAAE;YAC9G,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACzE,MAAM,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,IAAI,aAAa,EAAE,CAAC,oBAAoB,CAAC,EAAE;YACxG,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAA;AAED,MAAM,aAAa,GAAG;;;;;;;;;;;;;IAalB,CAAA;AAEJ,MAAM,aAAa,GAAG;;;;;;IAMlB,CAAA;AAEJ,MAAM,OAAO,GAAG,yBAAyB,yBAAyB;;;;;;;;IAQ9D,CAAA;AAEJ,MAAM,kBAAkB,GAAG;IACzB,aAAa,EAAE,sBAAsB;IACrC,YAAY,EAAE,sCAAsC;IACpD,WAAW,EAAE,qCAAqC;CACnD,CAAA"}
@@ -1,2 +0,0 @@
1
- export { createDatabaseCommand } from './database.js';
2
- //# sourceMappingURL=index.d.ts.map
@@ -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,2 +0,0 @@
1
- export { createDatabaseCommand } from './database.js';
2
- //# sourceMappingURL=index.js.map
@@ -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,4 +0,0 @@
1
- import { OptionValues } from 'commander';
2
- import BaseCommand from '../base-command.js';
3
- export declare const init: (_options: OptionValues, command: BaseCommand) => Promise<void>;
4
- //# sourceMappingURL=init.d.ts.map
@@ -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,4 +0,0 @@
1
- import { OptionValues } from 'commander';
2
- import BaseCommand from '../base-command.js';
3
- export declare const status: (_options: OptionValues, command: BaseCommand) => Promise<void>;
4
- //# sourceMappingURL=status.d.ts.map
@@ -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"}