netlify-cli 20.1.0 → 20.1.1-pre.f4a9e6a
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/bin/run.js +1 -0
- package/dist/commands/api/index.js +1 -1
- package/dist/commands/api/index.js.map +1 -1
- package/dist/commands/blobs/blobs.d.ts.map +1 -1
- package/dist/commands/blobs/blobs.js +7 -0
- package/dist/commands/blobs/blobs.js.map +1 -1
- package/dist/commands/build/index.d.ts.map +1 -1
- package/dist/commands/build/index.js +7 -0
- package/dist/commands/build/index.js.map +1 -1
- package/dist/commands/completion/index.js +1 -1
- package/dist/commands/completion/index.js.map +1 -1
- package/dist/commands/database/constants.d.ts +3 -0
- package/dist/commands/database/constants.d.ts.map +1 -0
- package/dist/commands/database/constants.js +3 -0
- package/dist/commands/database/constants.js.map +1 -0
- package/dist/commands/database/database.d.ts +18 -0
- package/dist/commands/database/database.d.ts.map +1 -0
- package/dist/commands/database/database.js +20 -0
- package/dist/commands/database/database.js.map +1 -0
- package/dist/commands/database/drizzle.d.ts +3 -0
- package/dist/commands/database/drizzle.d.ts.map +1 -0
- package/dist/commands/database/drizzle.js +109 -0
- package/dist/commands/database/drizzle.js.map +1 -0
- package/dist/commands/database/index.d.ts +2 -0
- package/dist/commands/database/index.d.ts.map +1 -0
- package/dist/commands/database/index.js +2 -0
- package/dist/commands/database/index.js.map +1 -0
- package/dist/commands/database/init.d.ts +4 -0
- package/dist/commands/database/init.d.ts.map +1 -0
- package/dist/commands/database/init.js +111 -0
- package/dist/commands/database/init.js.map +1 -0
- package/dist/commands/database/status.d.ts +4 -0
- package/dist/commands/database/status.d.ts.map +1 -0
- package/dist/commands/database/status.js +71 -0
- package/dist/commands/database/status.js.map +1 -0
- package/dist/commands/database/utils.d.ts +67 -0
- package/dist/commands/database/utils.d.ts.map +1 -0
- package/dist/commands/database/utils.js +140 -0
- package/dist/commands/database/utils.js.map +1 -0
- package/dist/commands/deploy/deploy.d.ts.map +1 -1
- package/dist/commands/deploy/deploy.js +2 -2
- package/dist/commands/deploy/deploy.js.map +1 -1
- package/dist/commands/deploy/index.d.ts.map +1 -1
- package/dist/commands/deploy/index.js +22 -4
- package/dist/commands/deploy/index.js.map +1 -1
- package/dist/commands/dev/dev.d.ts.map +1 -1
- package/dist/commands/dev/dev.js +3 -4
- package/dist/commands/dev/dev.js.map +1 -1
- package/dist/commands/dev/index.d.ts.map +1 -1
- package/dist/commands/dev/index.js +7 -0
- package/dist/commands/dev/index.js.map +1 -1
- package/dist/commands/dev-exec/dev-exec.d.ts.map +1 -1
- package/dist/commands/dev-exec/dev-exec.js +0 -1
- package/dist/commands/dev-exec/dev-exec.js.map +1 -1
- package/dist/commands/env/env-unset.js.map +1 -1
- package/dist/commands/env/env.d.ts.map +1 -1
- package/dist/commands/env/env.js +7 -0
- package/dist/commands/env/env.js.map +1 -1
- package/dist/commands/functions/functions-create.js +1 -1
- package/dist/commands/functions/functions-create.js.map +1 -1
- package/dist/commands/functions/functions-serve.js +1 -1
- package/dist/commands/functions/functions-serve.js.map +1 -1
- package/dist/commands/functions/functions.d.ts.map +1 -1
- package/dist/commands/functions/functions.js +7 -0
- package/dist/commands/functions/functions.js.map +1 -1
- package/dist/commands/init/index.d.ts.map +1 -1
- package/dist/commands/init/index.js +7 -0
- package/dist/commands/init/index.js.map +1 -1
- package/dist/commands/init/init.js +1 -1
- package/dist/commands/link/index.d.ts.map +1 -1
- package/dist/commands/link/index.js +7 -0
- package/dist/commands/link/index.js.map +1 -1
- package/dist/commands/login/index.d.ts.map +1 -1
- package/dist/commands/login/index.js +7 -0
- package/dist/commands/login/index.js.map +1 -1
- package/dist/commands/logout/logout.d.ts +1 -1
- package/dist/commands/logout/logout.d.ts.map +1 -1
- package/dist/commands/logout/logout.js +1 -1
- package/dist/commands/logout/logout.js.map +1 -1
- package/dist/commands/logs/build.d.ts +1 -1
- package/dist/commands/logs/build.d.ts.map +1 -1
- package/dist/commands/logs/build.js +1 -1
- package/dist/commands/logs/build.js.map +1 -1
- package/dist/commands/main.d.ts.map +1 -1
- package/dist/commands/main.js +14 -10
- package/dist/commands/main.js.map +1 -1
- package/dist/commands/open/open-site.d.ts +1 -1
- package/dist/commands/open/open-site.d.ts.map +1 -1
- package/dist/commands/open/open-site.js +1 -1
- package/dist/commands/open/open-site.js.map +1 -1
- package/dist/commands/serve/serve.js +1 -1
- package/dist/commands/serve/serve.js.map +1 -1
- package/dist/commands/sites/sites.js +1 -1
- package/dist/commands/sites/sites.js.map +1 -1
- package/dist/commands/switch/switch.d.ts +1 -1
- package/dist/commands/switch/switch.d.ts.map +1 -1
- package/dist/commands/switch/switch.js +1 -1
- package/dist/commands/switch/switch.js.map +1 -1
- package/dist/commands/unlink/index.d.ts.map +1 -1
- package/dist/commands/unlink/index.js +7 -0
- package/dist/commands/unlink/index.js.map +1 -1
- package/dist/commands/unlink/unlink.d.ts +1 -1
- package/dist/commands/unlink/unlink.d.ts.map +1 -1
- package/dist/commands/unlink/unlink.js +1 -1
- package/dist/commands/unlink/unlink.js.map +1 -1
- package/dist/lib/functions/registry.d.ts +1 -6
- package/dist/lib/functions/registry.d.ts.map +1 -1
- package/dist/lib/functions/registry.js +3 -16
- package/dist/lib/functions/registry.js.map +1 -1
- package/dist/lib/functions/runtimes/index.d.ts +0 -4
- package/dist/lib/functions/runtimes/index.d.ts.map +1 -1
- package/dist/lib/functions/runtimes/index.js.map +1 -1
- package/dist/lib/functions/runtimes/js/index.d.ts +7 -4
- package/dist/lib/functions/runtimes/js/index.d.ts.map +1 -1
- package/dist/lib/functions/runtimes/js/index.js +0 -24
- package/dist/lib/functions/runtimes/js/index.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/command-helpers.d.ts +1 -1
- package/dist/utils/command-helpers.d.ts.map +1 -1
- package/dist/utils/command-helpers.js +6 -4
- package/dist/utils/command-helpers.js.map +1 -1
- package/dist/utils/{banner.d.ts → dev-server-banner.d.ts} +1 -1
- package/dist/utils/dev-server-banner.d.ts.map +1 -0
- package/dist/utils/dev-server-banner.js +15 -0
- package/dist/utils/dev-server-banner.js.map +1 -0
- package/dist/utils/dev.d.ts +3 -5
- package/dist/utils/dev.d.ts.map +1 -1
- package/dist/utils/dev.js +7 -9
- package/dist/utils/dev.js.map +1 -1
- package/dist/utils/framework-server.d.ts.map +1 -1
- package/dist/utils/framework-server.js +19 -8
- package/dist/utils/framework-server.js.map +1 -1
- package/dist/utils/init/utils.d.ts.map +1 -1
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +4 -9
- package/dist/utils/shell.js.map +1 -1
- package/npm-shrinkwrap.json +51 -68
- package/package.json +6 -6
- package/scripts/postinstall.js +28 -32
- package/dist/lib/functions/runtimes/js/builders/netlify-lambda.d.ts +0 -21
- package/dist/lib/functions/runtimes/js/builders/netlify-lambda.d.ts.map +0 -1
- package/dist/lib/functions/runtimes/js/builders/netlify-lambda.js +0 -65
- package/dist/lib/functions/runtimes/js/builders/netlify-lambda.js.map +0 -1
- package/dist/utils/banner.d.ts.map +0 -1
- package/dist/utils/banner.js +0 -12
- package/dist/utils/banner.js.map +0 -1
package/bin/run.js
CHANGED
|
@@ -3,7 +3,7 @@ export const createApiCommand = (program) => program
|
|
|
3
3
|
.command('api')
|
|
4
4
|
.argument('[apiMethod]', 'Open API method to run')
|
|
5
5
|
.description(`Run any Netlify API method
|
|
6
|
-
For more information on available methods
|
|
6
|
+
For more information on available methods check out https://open-api.netlify.com/ or run '${chalk.grey('netlify api --list')}'`)
|
|
7
7
|
.option('-d, --data <data>', 'Data to use')
|
|
8
8
|
.option('--list', 'List out available API methods', false)
|
|
9
9
|
.addExamples(['netlify api --list', `netlify api getSite --data '{ "site_id": "123456" }'`])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAA;AAGtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAoB,EAAE,EAAE,CACvD,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,QAAQ,CAAC,aAAa,EAAE,wBAAwB,CAAC;KACjD,WAAW,CACV;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAA;AAGtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAoB,EAAE,EAAE,CACvD,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,QAAQ,CAAC,aAAa,EAAE,wBAAwB,CAAC;KACjD,WAAW,CACV;4FACsF,KAAK,CAAC,IAAI,CAC9F,oBAAoB,CACrB,GAAG,CACL;KACA,MAAM,CAAC,mBAAmB,EAAE,aAAa,CAAC;KAC1C,MAAM,CAAC,QAAQ,EAAE,gCAAgC,EAAE,KAAK,CAAC;KACzD,WAAW,CAAC,CAAC,oBAAoB,EAAE,sDAAsD,CAAC,CAAC;KAC3F,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IAC5C,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAA;IAC/C,MAAM,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAC/C,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blobs.d.ts","sourceRoot":"","sources":["../../../src/commands/blobs/blobs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"blobs.d.ts","sourceRoot":"","sources":["../../../src/commands/blobs/blobs.ts"],"names":[],"mappings":"AAIA,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAS5C;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,WAAW,gBAsFtD,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import terminalLink from 'terminal-link';
|
|
1
2
|
import requiresSiteInfo from '../../utils/hooks/requires-site-info.js';
|
|
2
3
|
/**
|
|
3
4
|
* The blobs command
|
|
@@ -62,6 +63,12 @@ export const createBlobsCommand = (program) => {
|
|
|
62
63
|
.command('blobs')
|
|
63
64
|
.alias('blob')
|
|
64
65
|
.description(`Manage objects in Netlify Blobs`)
|
|
66
|
+
.addHelpText('after', () => {
|
|
67
|
+
const docsUrl = 'https://docs.netlify.com/blobs/overview/';
|
|
68
|
+
return `
|
|
69
|
+
For more information about Netlify Blobs, see ${terminalLink(docsUrl, docsUrl)}
|
|
70
|
+
`;
|
|
71
|
+
})
|
|
65
72
|
.addExamples([
|
|
66
73
|
'netlify blobs:get my-store my-key',
|
|
67
74
|
'netlify blobs:set my-store my-key This will go in a blob',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blobs.js","sourceRoot":"","sources":["../../../src/commands/blobs/blobs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"blobs.js","sourceRoot":"","sources":["../../../src/commands/blobs/blobs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/build/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/build/index.ts"],"names":[],"mappings":"AAKA,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAE5C,eAAO,MAAM,kBAAkB,GAAI,SAAS,WAAW,gBA0BjD,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import process from 'process';
|
|
2
|
+
import terminalLink from 'terminal-link';
|
|
2
3
|
import { normalizeContext } from '../../utils/env/index.js';
|
|
3
4
|
export const createBuildCommand = (program) => program
|
|
4
5
|
.command('build')
|
|
@@ -11,6 +12,12 @@ export const createBuildCommand = (program) => program
|
|
|
11
12
|
'netlify build --context deploy-preview # Build with env var values from deploy-preview context',
|
|
12
13
|
'netlify build --context branch:feat/make-it-pop # Build with env var values from the feat/make-it-pop branch context or branch-deploy context',
|
|
13
14
|
])
|
|
15
|
+
.addHelpText('after', () => {
|
|
16
|
+
const docsUrl = 'https://docs.netlify.com/configure-builds/overview/';
|
|
17
|
+
return `
|
|
18
|
+
For more information about Netlify builds, see ${terminalLink(docsUrl, docsUrl)}
|
|
19
|
+
`;
|
|
20
|
+
})
|
|
14
21
|
.action(async (options, command) => {
|
|
15
22
|
const { build } = await import('./build.js');
|
|
16
23
|
await build(options, command);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/build/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAG3D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAoB,EAAE,EAAE,CACzD,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CACL,qBAAqB,EACrB,mPAAmP,EACnP,gBAAgB,EAChB,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,YAAY,CACpC;KACA,MAAM,CAAC,OAAO,EAAE,iDAAiD,EAAE,KAAK,CAAC;KACzE,MAAM,CAAC,eAAe,EAAE,mDAAmD,CAAC;KAC5E,WAAW,CAAC;IACX,eAAe;IACf,gGAAgG;IAChG,+IAA+I;CAChJ,CAAC;KACD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IACjC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;IAC5C,MAAM,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AAC/B,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/build/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,YAAY,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAG3D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAoB,EAAE,EAAE,CACzD,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CACL,qBAAqB,EACrB,mPAAmP,EACnP,gBAAgB,EAChB,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,YAAY,CACpC;KACA,MAAM,CAAC,OAAO,EAAE,iDAAiD,EAAE,KAAK,CAAC;KACzE,MAAM,CAAC,eAAe,EAAE,mDAAmD,CAAC;KAC5E,WAAW,CAAC;IACX,eAAe;IACf,gGAAgG;IAChG,+IAA+I;CAChJ,CAAC;KACD,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE;IACzB,MAAM,OAAO,GAAG,qDAAqD,CAAA;IACrE,OAAO;iDACoC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;CAC9E,CAAA;AACG,CAAC,CAAC;KACD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IACjC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;IAC5C,MAAM,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AAC/B,CAAC,CAAC,CAAA"}
|
|
@@ -20,7 +20,7 @@ export const createCompletionCommand = (program) => {
|
|
|
20
20
|
.command('completion')
|
|
21
21
|
.description('Generate shell completion script\nRun this command to see instructions for your shell.')
|
|
22
22
|
.addExamples(['netlify completion:install'])
|
|
23
|
-
.action((
|
|
23
|
+
.action((_options, command) => {
|
|
24
24
|
command.help();
|
|
25
25
|
});
|
|
26
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/completion/index.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAAoB,EAAE,EAAE;IAC9D,OAAO;SACJ,OAAO,CAAC,oBAAoB,CAAC;SAC7B,KAAK,CAAC,qBAAqB,CAAC;SAC5B,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,KAAK,EAAE,OAAqB,EAAE,OAAoB,EAAE,EAAE;QAC5D,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAA;QAC9D,MAAM,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;IAEJ,OAAO;SACJ,OAAO,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SACjD,KAAK,CAAC,mBAAmB,CAAC;SAC1B,WAAW,CAAC,sCAAsC,CAAC;SACnD,WAAW,CAAC,CAAC,8BAA8B,CAAC,CAAC;SAC7C,MAAM,CAAC,KAAK,EAAE,OAAqB,EAAE,OAAoB,EAAE,EAAE;QAC5D,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAA;QAC/D,MAAM,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEJ,OAAO,OAAO;SACX,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,wFAAwF,CAAC;SACrG,WAAW,CAAC,CAAC,4BAA4B,CAAC,CAAC;SAC3C,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/completion/index.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAAoB,EAAE,EAAE;IAC9D,OAAO;SACJ,OAAO,CAAC,oBAAoB,CAAC;SAC7B,KAAK,CAAC,qBAAqB,CAAC;SAC5B,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,KAAK,EAAE,OAAqB,EAAE,OAAoB,EAAE,EAAE;QAC5D,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAA;QAC9D,MAAM,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;IAEJ,OAAO;SACJ,OAAO,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SACjD,KAAK,CAAC,mBAAmB,CAAC;SAC1B,WAAW,CAAC,sCAAsC,CAAC;SACnD,WAAW,CAAC,CAAC,8BAA8B,CAAC,CAAC;SAC7C,MAAM,CAAC,KAAK,EAAE,OAAqB,EAAE,OAAoB,EAAE,EAAE;QAC5D,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAA;QAC/D,MAAM,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEJ,OAAO,OAAO;SACX,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,wFAAwF,CAAC;SACrG,WAAW,CAAC,CAAC,4BAA4B,CAAC,CAAC;SAC3C,MAAM,CAAC,CAAC,QAAsB,EAAE,OAAoB,EAAE,EAAE;QACvD,OAAO,CAAC,IAAI,EAAE,CAAA;IAChB,CAAC,CAAC,CAAA;AACN,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drizzle.d.ts","sourceRoot":"","sources":["../../../src/commands/database/drizzle.ts"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAK5C,eAAO,MAAM,WAAW,GAAU,SAAS,WAAW,kBAoErD,CAAA"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { spawn } from 'child_process';
|
|
2
|
+
import { carefullyWriteFile } from './utils.js';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import fs from 'fs/promises';
|
|
5
|
+
import inquirer from 'inquirer';
|
|
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.project.root, 'package.json');
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
28
|
+
const packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf-8'));
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
|
|
30
|
+
packageJson.scripts = {
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
32
|
+
...(packageJson.scripts ?? {}),
|
|
33
|
+
...packageJsonScripts,
|
|
34
|
+
};
|
|
35
|
+
if (opts.overwrite) {
|
|
36
|
+
await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2));
|
|
37
|
+
}
|
|
38
|
+
if (!opts.overwrite) {
|
|
39
|
+
const answers = await inquirer.prompt([
|
|
40
|
+
{
|
|
41
|
+
type: 'confirm',
|
|
42
|
+
name: 'updatePackageJson',
|
|
43
|
+
message: `Add drizzle db commands to package.json?`,
|
|
44
|
+
},
|
|
45
|
+
]);
|
|
46
|
+
if (answers.updatePackageJson) {
|
|
47
|
+
await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access
|
|
51
|
+
if (!Object.keys(packageJson?.devDependencies ?? {}).includes('drizzle-kit')) {
|
|
52
|
+
await spawnAsync(command.project.packageManager?.installCommand ?? 'npm install', ['drizzle-kit@latest', '-D'], {
|
|
53
|
+
stdio: 'inherit',
|
|
54
|
+
shell: true,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access
|
|
58
|
+
if (!Object.keys(packageJson?.dependencies ?? {}).includes('drizzle-orm')) {
|
|
59
|
+
await spawnAsync(command.project.packageManager?.installCommand ?? 'npm install', ['drizzle-orm@latest'], {
|
|
60
|
+
stdio: 'inherit',
|
|
61
|
+
shell: true,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
const drizzleConfig = `import { defineConfig } from 'drizzle-kit';
|
|
66
|
+
|
|
67
|
+
export default defineConfig({
|
|
68
|
+
dialect: 'postgresql',
|
|
69
|
+
dbCredentials: {
|
|
70
|
+
url: process.env.NETLIFY_DATABASE_URL!
|
|
71
|
+
},
|
|
72
|
+
schema: './db/schema.ts',
|
|
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';
|
|
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
|
+
const spawnAsync = (command, args, options) => {
|
|
97
|
+
return new Promise((resolve, reject) => {
|
|
98
|
+
const child = spawn(command, args, options);
|
|
99
|
+
child.on('error', reject);
|
|
100
|
+
child.on('exit', (code) => {
|
|
101
|
+
if (code === 0) {
|
|
102
|
+
resolve(code);
|
|
103
|
+
}
|
|
104
|
+
const errorMessage = code ? `Process exited with code ${code.toString()}` : 'Process exited with no code';
|
|
105
|
+
reject(new Error(errorMessage));
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=drizzle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drizzle.js","sourceRoot":"","sources":["../../../src/commands/database/drizzle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
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,kBAsItE,CAAA"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import inquirer from 'inquirer';
|
|
2
|
+
import { getAccount, getExtension, getJigsawToken, installExtension } from './utils.js';
|
|
3
|
+
import { initDrizzle } from './drizzle.js';
|
|
4
|
+
import { NEON_DATABASE_EXTENSION_SLUG } 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
|
+
throw new Error(`Failed to initialize DB: ${error.message ?? 'Unknown error occurred'}`);
|
|
95
|
+
}
|
|
96
|
+
const res = (await req.json());
|
|
97
|
+
if (res.code !== 'DATABASE_INITIALIZED') {
|
|
98
|
+
throw new Error(`Failed to initialize DB: ${res.message ?? 'Unknown error'}`);
|
|
99
|
+
}
|
|
100
|
+
log(prettyjson.render({
|
|
101
|
+
'Current team': account.name,
|
|
102
|
+
'Current site': siteInfo.name,
|
|
103
|
+
[`${extension.name} extension`]: 'installed on team',
|
|
104
|
+
['Database status']: 'connected to site',
|
|
105
|
+
['Environment variables']: '',
|
|
106
|
+
[' NETLIFY_DATABASE_URL']: 'saved',
|
|
107
|
+
[' NETLIFY_DATABASE_URL_UNPOOLED']: 'saved',
|
|
108
|
+
}));
|
|
109
|
+
return;
|
|
110
|
+
};
|
|
111
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/database/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/database/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import BaseCommand from '../base-command.js';
|
|
2
|
+
import { Extension } from './database.js';
|
|
3
|
+
export declare const getExtension: ({ accountId, netlifyToken, slug, }: {
|
|
4
|
+
accountId: string;
|
|
5
|
+
netlifyToken: string;
|
|
6
|
+
slug: string;
|
|
7
|
+
}) => Promise<Extension | undefined>;
|
|
8
|
+
export declare const installExtension: ({ netlifyToken, accountId, slug, hostSiteUrl, }: {
|
|
9
|
+
netlifyToken: string;
|
|
10
|
+
accountId: string;
|
|
11
|
+
slug: string;
|
|
12
|
+
hostSiteUrl: string;
|
|
13
|
+
}) => Promise<boolean>;
|
|
14
|
+
export declare const getSiteConfiguration: ({ siteId, accountId, netlifyToken, slug, }: {
|
|
15
|
+
siteId: string;
|
|
16
|
+
accountId: string;
|
|
17
|
+
netlifyToken: string;
|
|
18
|
+
slug: string;
|
|
19
|
+
}) => Promise<unknown>;
|
|
20
|
+
export declare const carefullyWriteFile: (filePath: string, data: string, projectRoot: string) => Promise<void>;
|
|
21
|
+
export declare const getAccount: (command: BaseCommand, { accountId, }: {
|
|
22
|
+
accountId: string;
|
|
23
|
+
}) => Promise<{
|
|
24
|
+
id: string;
|
|
25
|
+
name: string;
|
|
26
|
+
} & Omit<{
|
|
27
|
+
id?: string;
|
|
28
|
+
name?: string;
|
|
29
|
+
slug?: string;
|
|
30
|
+
type?: string;
|
|
31
|
+
capabilities?: {
|
|
32
|
+
sites?: import("@netlify/open-api").components["schemas"]["accountUsageCapability"];
|
|
33
|
+
collaborators?: import("@netlify/open-api").components["schemas"]["accountUsageCapability"];
|
|
34
|
+
};
|
|
35
|
+
billing_name?: string;
|
|
36
|
+
billing_email?: string;
|
|
37
|
+
billing_details?: string;
|
|
38
|
+
billing_period?: string;
|
|
39
|
+
payment_method_id?: string;
|
|
40
|
+
type_name?: string;
|
|
41
|
+
type_id?: string;
|
|
42
|
+
owner_ids?: string[];
|
|
43
|
+
roles_allowed?: string[];
|
|
44
|
+
created_at?: string;
|
|
45
|
+
updated_at?: string;
|
|
46
|
+
}, "name" | "id">>;
|
|
47
|
+
type JigsawTokenResult = {
|
|
48
|
+
data: string;
|
|
49
|
+
error: null;
|
|
50
|
+
} | {
|
|
51
|
+
data: null;
|
|
52
|
+
error: {
|
|
53
|
+
code: number;
|
|
54
|
+
message: string;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
export declare const getJigsawToken: ({ netlifyToken, accountId, integrationSlug, isEnable, }: {
|
|
58
|
+
netlifyToken: string;
|
|
59
|
+
accountId: string;
|
|
60
|
+
integrationSlug?: string;
|
|
61
|
+
/**
|
|
62
|
+
* isEnable will make a token that can install the extension
|
|
63
|
+
*/
|
|
64
|
+
isEnable?: boolean;
|
|
65
|
+
}) => Promise<JigsawTokenResult>;
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/commands/database/utils.ts"],"names":[],"mappings":"AAKA,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEzC,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;;;;;;;aAiF0kyC,CAAC,EAAC,iDAAsB;qBAAiD,CAAC,EAAC,iDAAsB;;;;;;;;;;;;;kBA7ExtyC,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"}
|