@claryai/cli 0.1.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/LICENSE +25 -0
- package/README.md +197 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/ajv.d.ts +3 -0
- package/dist/ajv.d.ts.map +1 -0
- package/dist/ajv.js +13 -0
- package/dist/analytics/analytics.d.ts +370 -0
- package/dist/analytics/analytics.d.ts.map +1 -0
- package/dist/analytics/analytics.js +143 -0
- package/dist/config.d.ts +34 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +134 -0
- package/dist/dbt/context.d.ts +14 -0
- package/dist/dbt/context.d.ts.map +1 -0
- package/dist/dbt/context.js +76 -0
- package/dist/dbt/context.test.d.ts +2 -0
- package/dist/dbt/context.test.d.ts.map +1 -0
- package/dist/dbt/context.test.js +152 -0
- package/dist/dbt/manifest.d.ts +7 -0
- package/dist/dbt/manifest.d.ts.map +1 -0
- package/dist/dbt/manifest.js +23 -0
- package/dist/dbt/models.d.ts +43 -0
- package/dist/dbt/models.d.ts.map +1 -0
- package/dist/dbt/models.js +256 -0
- package/dist/dbt/models.test.d.ts +2 -0
- package/dist/dbt/models.test.d.ts.map +1 -0
- package/dist/dbt/models.test.js +19 -0
- package/dist/dbt/profile.d.ts +9 -0
- package/dist/dbt/profile.d.ts.map +1 -0
- package/dist/dbt/profile.js +86 -0
- package/dist/dbt/profiles.test.d.ts +2 -0
- package/dist/dbt/profiles.test.d.ts.map +1 -0
- package/dist/dbt/profiles.test.js +50 -0
- package/dist/dbt/schema.d.ts +31 -0
- package/dist/dbt/schema.d.ts.map +1 -0
- package/dist/dbt/schema.js +49 -0
- package/dist/dbt/targets/Bigquery/index.d.ts +18 -0
- package/dist/dbt/targets/Bigquery/index.d.ts.map +1 -0
- package/dist/dbt/targets/Bigquery/index.js +105 -0
- package/dist/dbt/targets/Bigquery/oauth.d.ts +2 -0
- package/dist/dbt/targets/Bigquery/oauth.d.ts.map +1 -0
- package/dist/dbt/targets/Bigquery/oauth.js +43 -0
- package/dist/dbt/targets/Bigquery/serviceAccount.d.ts +35 -0
- package/dist/dbt/targets/Bigquery/serviceAccount.d.ts.map +1 -0
- package/dist/dbt/targets/Bigquery/serviceAccount.js +149 -0
- package/dist/dbt/targets/Databricks/oauth.d.ts +21 -0
- package/dist/dbt/targets/Databricks/oauth.d.ts.map +1 -0
- package/dist/dbt/targets/Databricks/oauth.js +184 -0
- package/dist/dbt/targets/athena.d.ts +21 -0
- package/dist/dbt/targets/athena.d.ts.map +1 -0
- package/dist/dbt/targets/athena.js +91 -0
- package/dist/dbt/targets/athena.test.d.ts +2 -0
- package/dist/dbt/targets/athena.test.d.ts.map +1 -0
- package/dist/dbt/targets/athena.test.js +60 -0
- package/dist/dbt/targets/clickhouse.d.ts +24 -0
- package/dist/dbt/targets/clickhouse.d.ts.map +1 -0
- package/dist/dbt/targets/clickhouse.js +90 -0
- package/dist/dbt/targets/databricks.d.ts +27 -0
- package/dist/dbt/targets/databricks.d.ts.map +1 -0
- package/dist/dbt/targets/databricks.js +138 -0
- package/dist/dbt/targets/duckdb.d.ts +16 -0
- package/dist/dbt/targets/duckdb.d.ts.map +1 -0
- package/dist/dbt/targets/duckdb.js +63 -0
- package/dist/dbt/targets/duckdb.test.d.ts +2 -0
- package/dist/dbt/targets/duckdb.test.d.ts.map +1 -0
- package/dist/dbt/targets/duckdb.test.js +37 -0
- package/dist/dbt/targets/postgres.d.ts +26 -0
- package/dist/dbt/targets/postgres.d.ts.map +1 -0
- package/dist/dbt/targets/postgres.js +142 -0
- package/dist/dbt/targets/redshift.d.ts +23 -0
- package/dist/dbt/targets/redshift.d.ts.map +1 -0
- package/dist/dbt/targets/redshift.js +96 -0
- package/dist/dbt/targets/snowflake.d.ts +4 -0
- package/dist/dbt/targets/snowflake.d.ts.map +1 -0
- package/dist/dbt/targets/snowflake.js +134 -0
- package/dist/dbt/targets/trino.d.ts +16 -0
- package/dist/dbt/targets/trino.d.ts.map +1 -0
- package/dist/dbt/targets/trino.js +65 -0
- package/dist/dbt/templating.d.ts +15 -0
- package/dist/dbt/templating.d.ts.map +1 -0
- package/dist/dbt/templating.js +50 -0
- package/dist/dbt/templating.test.d.ts +2 -0
- package/dist/dbt/templating.test.d.ts.map +1 -0
- package/dist/dbt/templating.test.js +51 -0
- package/dist/dbt/types.d.ts +17 -0
- package/dist/dbt/types.d.ts.map +1 -0
- package/dist/dbt/types.js +2 -0
- package/dist/dbt/validation.d.ts +9 -0
- package/dist/dbt/validation.d.ts.map +1 -0
- package/dist/dbt/validation.js +54 -0
- package/dist/env.d.ts +12 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +40 -0
- package/dist/error.d.ts +2 -0
- package/dist/error.d.ts.map +1 -0
- package/dist/error.js +12 -0
- package/dist/globalState.d.ts +29 -0
- package/dist/globalState.d.ts.map +1 -0
- package/dist/globalState.js +67 -0
- package/dist/handlers/asyncQuery.d.ts +7 -0
- package/dist/handlers/asyncQuery.d.ts.map +1 -0
- package/dist/handlers/asyncQuery.js +50 -0
- package/dist/handlers/compile.d.ts +16 -0
- package/dist/handlers/compile.d.ts.map +1 -0
- package/dist/handlers/compile.js +277 -0
- package/dist/handlers/compile.test.d.ts +2 -0
- package/dist/handlers/compile.test.d.ts.map +1 -0
- package/dist/handlers/compile.test.js +201 -0
- package/dist/handlers/createProject.d.ts +37 -0
- package/dist/handlers/createProject.d.ts.map +1 -0
- package/dist/handlers/createProject.js +272 -0
- package/dist/handlers/dbt/apiClient.d.ts +14 -0
- package/dist/handlers/dbt/apiClient.d.ts.map +1 -0
- package/dist/handlers/dbt/apiClient.js +167 -0
- package/dist/handlers/dbt/compile.d.ts +35 -0
- package/dist/handlers/dbt/compile.d.ts.map +1 -0
- package/dist/handlers/dbt/compile.js +220 -0
- package/dist/handlers/dbt/getDbtProfileTargetName.d.ts +9 -0
- package/dist/handlers/dbt/getDbtProfileTargetName.d.ts.map +1 -0
- package/dist/handlers/dbt/getDbtProfileTargetName.js +44 -0
- package/dist/handlers/dbt/getDbtVersion.d.ts +16 -0
- package/dist/handlers/dbt/getDbtVersion.d.ts.map +1 -0
- package/dist/handlers/dbt/getDbtVersion.js +141 -0
- package/dist/handlers/dbt/getDbtVersion.mocks.d.ts +11 -0
- package/dist/handlers/dbt/getDbtVersion.mocks.d.ts.map +1 -0
- package/dist/handlers/dbt/getDbtVersion.mocks.js +70 -0
- package/dist/handlers/dbt/getDbtVersion.test.d.ts +2 -0
- package/dist/handlers/dbt/getDbtVersion.test.d.ts.map +1 -0
- package/dist/handlers/dbt/getDbtVersion.test.js +97 -0
- package/dist/handlers/dbt/getWarehouseClient.d.ts +24 -0
- package/dist/handlers/dbt/getWarehouseClient.d.ts.map +1 -0
- package/dist/handlers/dbt/getWarehouseClient.js +312 -0
- package/dist/handlers/dbt/refresh.d.ts +11 -0
- package/dist/handlers/dbt/refresh.d.ts.map +1 -0
- package/dist/handlers/dbt/refresh.js +114 -0
- package/dist/handlers/dbt/run.d.ts +14 -0
- package/dist/handlers/dbt/run.d.ts.map +1 -0
- package/dist/handlers/dbt/run.js +67 -0
- package/dist/handlers/deploy.d.ts +26 -0
- package/dist/handlers/deploy.d.ts.map +1 -0
- package/dist/handlers/deploy.js +377 -0
- package/dist/handlers/diagnostics.d.ts +11 -0
- package/dist/handlers/diagnostics.d.ts.map +1 -0
- package/dist/handlers/diagnostics.js +194 -0
- package/dist/handlers/download.d.ts +29 -0
- package/dist/handlers/download.d.ts.map +1 -0
- package/dist/handlers/download.js +955 -0
- package/dist/handlers/exportChartImage.d.ts +7 -0
- package/dist/handlers/exportChartImage.d.ts.map +1 -0
- package/dist/handlers/exportChartImage.js +33 -0
- package/dist/handlers/generate.d.ts +13 -0
- package/dist/handlers/generate.d.ts.map +1 -0
- package/dist/handlers/generate.js +159 -0
- package/dist/handlers/generateExposures.d.ts +8 -0
- package/dist/handlers/generateExposures.d.ts.map +1 -0
- package/dist/handlers/generateExposures.js +100 -0
- package/dist/handlers/getProject.d.ts +6 -0
- package/dist/handlers/getProject.d.ts.map +1 -0
- package/dist/handlers/getProject.js +43 -0
- package/dist/handlers/installSkills.d.ts +12 -0
- package/dist/handlers/installSkills.d.ts.map +1 -0
- package/dist/handlers/installSkills.js +321 -0
- package/dist/handlers/lint/ajvToSarif.d.ts +66 -0
- package/dist/handlers/lint/ajvToSarif.d.ts.map +1 -0
- package/dist/handlers/lint/ajvToSarif.js +222 -0
- package/dist/handlers/lint/sarifFormatter.d.ts +14 -0
- package/dist/handlers/lint/sarifFormatter.d.ts.map +1 -0
- package/dist/handlers/lint/sarifFormatter.js +111 -0
- package/dist/handlers/lint.d.ts +8 -0
- package/dist/handlers/lint.d.ts.map +1 -0
- package/dist/handlers/lint.js +308 -0
- package/dist/handlers/listProjects.d.ts +6 -0
- package/dist/handlers/listProjects.d.ts.map +1 -0
- package/dist/handlers/listProjects.js +53 -0
- package/dist/handlers/login/oauth.d.ts +2 -0
- package/dist/handlers/login/oauth.d.ts.map +1 -0
- package/dist/handlers/login/oauth.js +27 -0
- package/dist/handlers/login/pat.d.ts +2 -0
- package/dist/handlers/login/pat.d.ts.map +1 -0
- package/dist/handlers/login/pat.js +31 -0
- package/dist/handlers/login.d.ts +15 -0
- package/dist/handlers/login.d.ts.map +1 -0
- package/dist/handlers/login.js +239 -0
- package/dist/handlers/metadataFile.d.ts +9 -0
- package/dist/handlers/metadataFile.d.ts.map +1 -0
- package/dist/handlers/metadataFile.js +34 -0
- package/dist/handlers/oauthLogin.d.ts +6 -0
- package/dist/handlers/oauthLogin.d.ts.map +1 -0
- package/dist/handlers/oauthLogin.js +191 -0
- package/dist/handlers/preview.d.ts +29 -0
- package/dist/handlers/preview.d.ts.map +1 -0
- package/dist/handlers/preview.js +415 -0
- package/dist/handlers/renameHandler.d.ts +16 -0
- package/dist/handlers/renameHandler.d.ts.map +1 -0
- package/dist/handlers/renameHandler.js +160 -0
- package/dist/handlers/runChart.d.ts +10 -0
- package/dist/handlers/runChart.d.ts.map +1 -0
- package/dist/handlers/runChart.js +105 -0
- package/dist/handlers/selectProject.d.ts +20 -0
- package/dist/handlers/selectProject.d.ts.map +1 -0
- package/dist/handlers/selectProject.js +91 -0
- package/dist/handlers/setProject.d.ts +14 -0
- package/dist/handlers/setProject.d.ts.map +1 -0
- package/dist/handlers/setProject.js +131 -0
- package/dist/handlers/setWarehouse.d.ts +14 -0
- package/dist/handlers/setWarehouse.d.ts.map +1 -0
- package/dist/handlers/setWarehouse.js +94 -0
- package/dist/handlers/sql.d.ts +9 -0
- package/dist/handlers/sql.d.ts.map +1 -0
- package/dist/handlers/sql.js +89 -0
- package/dist/handlers/utils.d.ts +11 -0
- package/dist/handlers/utils.d.ts.map +1 -0
- package/dist/handlers/utils.js +36 -0
- package/dist/handlers/validate.d.ts +22 -0
- package/dist/handlers/validate.d.ts.map +1 -0
- package/dist/handlers/validate.js +201 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +581 -0
- package/dist/lightdash/loader.d.ts +21 -0
- package/dist/lightdash/loader.d.ts.map +1 -0
- package/dist/lightdash/loader.js +122 -0
- package/dist/lightdash/projectType.d.ts +84 -0
- package/dist/lightdash/projectType.d.ts.map +1 -0
- package/dist/lightdash/projectType.js +75 -0
- package/dist/lightdash-config/index.d.ts +2 -0
- package/dist/lightdash-config/index.d.ts.map +1 -0
- package/dist/lightdash-config/index.js +41 -0
- package/dist/lightdash-config/lightdash-config.test.d.ts +2 -0
- package/dist/lightdash-config/lightdash-config.test.d.ts.map +1 -0
- package/dist/lightdash-config/lightdash-config.test.js +70 -0
- package/dist/styles.d.ts +10 -0
- package/dist/styles.d.ts.map +1 -0
- package/dist/styles.js +14 -0
- package/entitlements.plist +33 -0
- package/package.json +71 -0
- package/track.sh +116 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertRedshiftSchema = exports.redshiftSchema = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@lightdash/common");
|
|
6
|
+
const better_ajv_errors_1 = tslib_1.__importDefault(require("better-ajv-errors"));
|
|
7
|
+
const ajv_1 = require("../../ajv");
|
|
8
|
+
exports.redshiftSchema = {
|
|
9
|
+
type: 'object',
|
|
10
|
+
properties: {
|
|
11
|
+
type: {
|
|
12
|
+
type: 'string',
|
|
13
|
+
enum: ['redshift'],
|
|
14
|
+
},
|
|
15
|
+
host: {
|
|
16
|
+
type: 'string',
|
|
17
|
+
},
|
|
18
|
+
user: {
|
|
19
|
+
type: 'string',
|
|
20
|
+
},
|
|
21
|
+
port: {
|
|
22
|
+
type: 'integer',
|
|
23
|
+
},
|
|
24
|
+
dbname: {
|
|
25
|
+
type: 'string',
|
|
26
|
+
nullable: true,
|
|
27
|
+
},
|
|
28
|
+
database: {
|
|
29
|
+
type: 'string',
|
|
30
|
+
nullable: true,
|
|
31
|
+
},
|
|
32
|
+
schema: {
|
|
33
|
+
type: 'string',
|
|
34
|
+
},
|
|
35
|
+
threads: {
|
|
36
|
+
type: 'integer',
|
|
37
|
+
nullable: true,
|
|
38
|
+
},
|
|
39
|
+
pass: {
|
|
40
|
+
type: 'string',
|
|
41
|
+
nullable: true,
|
|
42
|
+
},
|
|
43
|
+
password: {
|
|
44
|
+
type: 'string',
|
|
45
|
+
nullable: true,
|
|
46
|
+
},
|
|
47
|
+
keepalives_idle: {
|
|
48
|
+
type: 'integer',
|
|
49
|
+
nullable: true,
|
|
50
|
+
},
|
|
51
|
+
connect_timeout: {
|
|
52
|
+
type: 'integer',
|
|
53
|
+
nullable: true,
|
|
54
|
+
},
|
|
55
|
+
search_path: {
|
|
56
|
+
type: 'string',
|
|
57
|
+
nullable: true,
|
|
58
|
+
},
|
|
59
|
+
role: {
|
|
60
|
+
type: 'string',
|
|
61
|
+
nullable: true,
|
|
62
|
+
},
|
|
63
|
+
sslmode: {
|
|
64
|
+
type: 'string',
|
|
65
|
+
nullable: true,
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
required: ['type', 'host', 'user', 'port', 'schema'],
|
|
69
|
+
};
|
|
70
|
+
const convertRedshiftSchema = (target) => {
|
|
71
|
+
const validate = ajv_1.ajv.compile(exports.redshiftSchema);
|
|
72
|
+
if (validate(target)) {
|
|
73
|
+
const password = target.pass || target.password;
|
|
74
|
+
if (!password) {
|
|
75
|
+
throw new common_1.ParseError(`Redshift target requires a password: "password"`);
|
|
76
|
+
}
|
|
77
|
+
const dbname = target.dbname || target.database;
|
|
78
|
+
if (!dbname) {
|
|
79
|
+
throw new common_1.ParseError(`Redshift target requires a database name: "database"`);
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
type: common_1.WarehouseTypes.REDSHIFT,
|
|
83
|
+
host: target.host,
|
|
84
|
+
user: target.user,
|
|
85
|
+
password,
|
|
86
|
+
port: target.port,
|
|
87
|
+
dbname,
|
|
88
|
+
schema: target.schema,
|
|
89
|
+
keepalivesIdle: target.keepalives_idle,
|
|
90
|
+
sslmode: target.sslmode,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
const errs = (0, better_ajv_errors_1.default)(exports.redshiftSchema, target, validate.errors || []);
|
|
94
|
+
throw new common_1.ParseError(`Couldn't read profiles.yml file for ${target.type}:\n${errs}`);
|
|
95
|
+
};
|
|
96
|
+
exports.convertRedshiftSchema = convertRedshiftSchema;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snowflake.d.ts","sourceRoot":"","sources":["../../../src/dbt/targets/snowflake.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,0BAA0B,EAK7B,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAsGlC,eAAO,MAAM,sBAAsB,GAC/B,QAAQ,MAAM,KACf,OAAO,CAAC,0BAA0B,CA0DpC,CAAC"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertSnowflakeSchema = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@lightdash/common");
|
|
6
|
+
const better_ajv_errors_1 = tslib_1.__importDefault(require("better-ajv-errors"));
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const ajv_1 = require("../../ajv");
|
|
9
|
+
const snowflakeSchema = {
|
|
10
|
+
type: 'object',
|
|
11
|
+
properties: {
|
|
12
|
+
type: {
|
|
13
|
+
type: 'string',
|
|
14
|
+
enum: ['snowflake'],
|
|
15
|
+
},
|
|
16
|
+
account: {
|
|
17
|
+
type: 'string',
|
|
18
|
+
},
|
|
19
|
+
user: {
|
|
20
|
+
type: 'string',
|
|
21
|
+
},
|
|
22
|
+
password: {
|
|
23
|
+
type: 'string',
|
|
24
|
+
nullable: true,
|
|
25
|
+
},
|
|
26
|
+
authenticator: {
|
|
27
|
+
type: 'string',
|
|
28
|
+
nullable: true,
|
|
29
|
+
},
|
|
30
|
+
private_key_path: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
nullable: true,
|
|
33
|
+
},
|
|
34
|
+
private_key: {
|
|
35
|
+
type: 'string',
|
|
36
|
+
nullable: true,
|
|
37
|
+
},
|
|
38
|
+
private_key_passphrase: {
|
|
39
|
+
type: 'string',
|
|
40
|
+
nullable: true,
|
|
41
|
+
},
|
|
42
|
+
role: {
|
|
43
|
+
type: 'string',
|
|
44
|
+
nullable: true,
|
|
45
|
+
},
|
|
46
|
+
database: {
|
|
47
|
+
type: 'string',
|
|
48
|
+
},
|
|
49
|
+
warehouse: {
|
|
50
|
+
type: 'string',
|
|
51
|
+
},
|
|
52
|
+
schema: {
|
|
53
|
+
type: 'string',
|
|
54
|
+
},
|
|
55
|
+
threads: {
|
|
56
|
+
type: 'integer',
|
|
57
|
+
nullable: true,
|
|
58
|
+
},
|
|
59
|
+
client_session_keep_alive: {
|
|
60
|
+
type: 'boolean',
|
|
61
|
+
nullable: true,
|
|
62
|
+
},
|
|
63
|
+
query_tag: {
|
|
64
|
+
type: 'string',
|
|
65
|
+
nullable: true,
|
|
66
|
+
},
|
|
67
|
+
connect_retries: {
|
|
68
|
+
type: 'integer',
|
|
69
|
+
nullable: true,
|
|
70
|
+
},
|
|
71
|
+
connect_timeout: {
|
|
72
|
+
type: 'integer',
|
|
73
|
+
nullable: true,
|
|
74
|
+
},
|
|
75
|
+
retry_on_database_errors: {
|
|
76
|
+
type: 'boolean',
|
|
77
|
+
nullable: true,
|
|
78
|
+
},
|
|
79
|
+
retry_all: {
|
|
80
|
+
type: 'boolean',
|
|
81
|
+
nullable: true,
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
required: ['type', 'account', 'user', 'database', 'warehouse', 'schema'],
|
|
85
|
+
};
|
|
86
|
+
const convertSnowflakeSchema = async (target) => {
|
|
87
|
+
const validate = ajv_1.ajv.compile(snowflakeSchema);
|
|
88
|
+
if (validate(target)) {
|
|
89
|
+
const keyfilePath = target.private_key_path;
|
|
90
|
+
let privateKey;
|
|
91
|
+
if (keyfilePath) {
|
|
92
|
+
try {
|
|
93
|
+
privateKey = await fs_1.promises.readFile(keyfilePath, 'utf8');
|
|
94
|
+
}
|
|
95
|
+
catch (e) {
|
|
96
|
+
const msg = (0, common_1.getErrorMessage)(e);
|
|
97
|
+
throw new common_1.ParseError(`Cannot read keyfile for snowflake target at: ${keyfilePath}:\n ${msg}`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
if (target.private_key) {
|
|
101
|
+
privateKey = target.private_key;
|
|
102
|
+
}
|
|
103
|
+
// Determine authentication type based on authenticator field or credentials present
|
|
104
|
+
let authenticationType;
|
|
105
|
+
if (target.authenticator &&
|
|
106
|
+
target.authenticator.toLowerCase() === 'externalbrowser') {
|
|
107
|
+
authenticationType = common_1.SnowflakeAuthenticationType.EXTERNAL_BROWSER;
|
|
108
|
+
}
|
|
109
|
+
else if (privateKey) {
|
|
110
|
+
authenticationType = common_1.SnowflakeAuthenticationType.PRIVATE_KEY;
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
authenticationType = common_1.SnowflakeAuthenticationType.PASSWORD;
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
type: common_1.WarehouseTypes.SNOWFLAKE,
|
|
117
|
+
account: target.account,
|
|
118
|
+
user: target.user,
|
|
119
|
+
password: target.password,
|
|
120
|
+
privateKey,
|
|
121
|
+
privateKeyPass: target.private_key_passphrase,
|
|
122
|
+
authenticationType,
|
|
123
|
+
role: target.role,
|
|
124
|
+
warehouse: target.warehouse,
|
|
125
|
+
database: target.database,
|
|
126
|
+
schema: target.schema,
|
|
127
|
+
clientSessionKeepAlive: target.client_session_keep_alive,
|
|
128
|
+
queryTag: target.query_tag,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
const errs = (0, better_ajv_errors_1.default)(snowflakeSchema, target, validate.errors || []);
|
|
132
|
+
throw new common_1.ParseError(`Couldn't read profiles.yml file for ${target.type}:\n${errs}`);
|
|
133
|
+
};
|
|
134
|
+
exports.convertSnowflakeSchema = convertSnowflakeSchema;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CreateTrinoCredentials } from '@lightdash/common';
|
|
2
|
+
import { JSONSchemaType } from 'ajv';
|
|
3
|
+
import { Target } from '../types';
|
|
4
|
+
export type TrinoTarget = {
|
|
5
|
+
type: 'trino';
|
|
6
|
+
host: string;
|
|
7
|
+
user: string;
|
|
8
|
+
password: string;
|
|
9
|
+
port: number;
|
|
10
|
+
database: string;
|
|
11
|
+
schema: string;
|
|
12
|
+
http_scheme: string;
|
|
13
|
+
};
|
|
14
|
+
export declare const trinoSchema: JSONSchemaType<TrinoTarget>;
|
|
15
|
+
export declare const convertTrinoSchema: (target: Target) => CreateTrinoCredentials;
|
|
16
|
+
//# sourceMappingURL=trino.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trino.d.ts","sourceRoot":"","sources":["../../../src/dbt/targets/trino.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EAGzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAGrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,cAAc,CAAC,WAAW,CAuCnD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,KAAG,sBAoBnD,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertTrinoSchema = exports.trinoSchema = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@lightdash/common");
|
|
6
|
+
const better_ajv_errors_1 = tslib_1.__importDefault(require("better-ajv-errors"));
|
|
7
|
+
const ajv_1 = require("../../ajv");
|
|
8
|
+
exports.trinoSchema = {
|
|
9
|
+
type: 'object',
|
|
10
|
+
properties: {
|
|
11
|
+
type: {
|
|
12
|
+
type: 'string',
|
|
13
|
+
enum: ['trino'],
|
|
14
|
+
},
|
|
15
|
+
schema: {
|
|
16
|
+
type: 'string',
|
|
17
|
+
},
|
|
18
|
+
host: {
|
|
19
|
+
type: 'string',
|
|
20
|
+
},
|
|
21
|
+
user: {
|
|
22
|
+
type: 'string',
|
|
23
|
+
},
|
|
24
|
+
password: {
|
|
25
|
+
type: 'string',
|
|
26
|
+
},
|
|
27
|
+
port: {
|
|
28
|
+
type: 'number',
|
|
29
|
+
},
|
|
30
|
+
database: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
},
|
|
33
|
+
http_scheme: {
|
|
34
|
+
type: 'string',
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
required: [
|
|
38
|
+
'type',
|
|
39
|
+
'schema',
|
|
40
|
+
'host',
|
|
41
|
+
'user',
|
|
42
|
+
'password',
|
|
43
|
+
'port',
|
|
44
|
+
'database',
|
|
45
|
+
'http_scheme',
|
|
46
|
+
],
|
|
47
|
+
};
|
|
48
|
+
const convertTrinoSchema = (target) => {
|
|
49
|
+
const validate = ajv_1.ajv.compile(exports.trinoSchema);
|
|
50
|
+
if (validate(target)) {
|
|
51
|
+
return {
|
|
52
|
+
type: common_1.WarehouseTypes.TRINO,
|
|
53
|
+
schema: target.schema,
|
|
54
|
+
host: target.host,
|
|
55
|
+
user: target.user,
|
|
56
|
+
password: target.password,
|
|
57
|
+
port: target.port,
|
|
58
|
+
dbname: target.database,
|
|
59
|
+
http_scheme: target.http_scheme,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
const errs = (0, better_ajv_errors_1.default)(exports.trinoSchema, target, validate.errors || []);
|
|
63
|
+
throw new common_1.ParseError(`Couldn't read profiles.yml file for ${target.type}:\n${errs}`);
|
|
64
|
+
};
|
|
65
|
+
exports.convertTrinoSchema = convertTrinoSchema;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render a dbt YAML file with Jinja templating (env_var, var, filters)
|
|
3
|
+
* @param raw - Raw YAML content as string
|
|
4
|
+
* @param context - Additional context variables to pass to the template
|
|
5
|
+
* @returns Rendered YAML string with Jinja expressions resolved
|
|
6
|
+
*/
|
|
7
|
+
export declare const renderTemplatedYml: (raw: string, context?: Record<string, unknown>) => string;
|
|
8
|
+
/**
|
|
9
|
+
* Render a profiles.yml file with Jinja templating and private key handling
|
|
10
|
+
* @param raw - Raw profiles.yml content as string
|
|
11
|
+
* @param context - Additional context variables to pass to the template
|
|
12
|
+
* @returns Rendered profiles.yml string with Jinja expressions resolved and private keys escaped
|
|
13
|
+
*/
|
|
14
|
+
export declare const renderProfilesYml: (raw: string, context?: Record<string, unknown>) => string;
|
|
15
|
+
//# sourceMappingURL=templating.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templating.d.ts","sourceRoot":"","sources":["../../src/dbt/templating.ts"],"names":[],"mappings":"AAqBA;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC3B,KAAK,MAAM,EACX,UAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAClC,MAMF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC1B,KAAK,MAAM,EACX,UAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAClC,MASF,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderProfilesYml = exports.renderTemplatedYml = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const nunjucks = tslib_1.__importStar(require("nunjucks"));
|
|
6
|
+
// jinja filters
|
|
7
|
+
const nunjucksEnv = new nunjucks.Environment(null, { autoescape: false });
|
|
8
|
+
nunjucksEnv.addFilter('as_number', (str) => parseFloat(str));
|
|
9
|
+
// jinja global functions
|
|
10
|
+
const nunjucksContext = {
|
|
11
|
+
env_var: (key, options) => {
|
|
12
|
+
let fallbackValue;
|
|
13
|
+
if (typeof options === 'string') {
|
|
14
|
+
fallbackValue = options;
|
|
15
|
+
}
|
|
16
|
+
else if (typeof options === 'object') {
|
|
17
|
+
fallbackValue = options.default;
|
|
18
|
+
}
|
|
19
|
+
return process.env[key] ?? fallbackValue;
|
|
20
|
+
},
|
|
21
|
+
var: (key) => JSON.parse(process.argv[process.argv.indexOf('--vars') + 1])[key],
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Render a dbt YAML file with Jinja templating (env_var, var, filters)
|
|
25
|
+
* @param raw - Raw YAML content as string
|
|
26
|
+
* @param context - Additional context variables to pass to the template
|
|
27
|
+
* @returns Rendered YAML string with Jinja expressions resolved
|
|
28
|
+
*/
|
|
29
|
+
const renderTemplatedYml = (raw, context) => {
|
|
30
|
+
const template = nunjucks.compile(raw, nunjucksEnv);
|
|
31
|
+
return template.render({
|
|
32
|
+
...nunjucksContext,
|
|
33
|
+
...(context || {}),
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
exports.renderTemplatedYml = renderTemplatedYml;
|
|
37
|
+
/**
|
|
38
|
+
* Render a profiles.yml file with Jinja templating and private key handling
|
|
39
|
+
* @param raw - Raw profiles.yml content as string
|
|
40
|
+
* @param context - Additional context variables to pass to the template
|
|
41
|
+
* @returns Rendered profiles.yml string with Jinja expressions resolved and private keys escaped
|
|
42
|
+
*/
|
|
43
|
+
const renderProfilesYml = (raw, context) => {
|
|
44
|
+
const rendered = (0, exports.renderTemplatedYml)(raw, context);
|
|
45
|
+
// Fix multiline privatekey strings
|
|
46
|
+
// Prevents error: Error: error:1E08010C:DECODER routines::unsupported
|
|
47
|
+
const privateKeyRegex = /(-----BEGIN(?:\s+ENCRYPTED)?\s+PRIVATE KEY-----[\s\S]*?-----END(?:\s+ENCRYPTED)?\s+PRIVATE KEY-----)/g;
|
|
48
|
+
return rendered.replace(privateKeyRegex, (match) => match.replace(/\n/g, '\\n'));
|
|
49
|
+
};
|
|
50
|
+
exports.renderProfilesYml = renderProfilesYml;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templating.test.d.ts","sourceRoot":"","sources":["../../src/dbt/templating.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const templating_1 = require("./templating");
|
|
4
|
+
describe('Templating', () => {
|
|
5
|
+
const { env, argv } = process;
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
jest.resetModules();
|
|
8
|
+
process.env = { ...env };
|
|
9
|
+
process.argv = { ...argv };
|
|
10
|
+
});
|
|
11
|
+
afterEach(() => {
|
|
12
|
+
process.env = env;
|
|
13
|
+
process.argv = argv;
|
|
14
|
+
});
|
|
15
|
+
describe('renderProfilesYml', () => {
|
|
16
|
+
describe('env_var()', () => {
|
|
17
|
+
test('should not escape values', () => {
|
|
18
|
+
process.env.SPAN = '<span>';
|
|
19
|
+
expect((0, templating_1.renderProfilesYml)("{{ env_var('SPAN') }}")).toBe('<span>');
|
|
20
|
+
process.env.WINDOWS_PATH = 'C:\\example';
|
|
21
|
+
expect((0, templating_1.renderProfilesYml)("{{ env_var('WINDOWS_PATH') }}")).toBe('C:\\example');
|
|
22
|
+
});
|
|
23
|
+
test('should convert env_var functions and return env var values', () => {
|
|
24
|
+
process.env.DBT_USER = 'test';
|
|
25
|
+
expect((0, templating_1.renderProfilesYml)("{{ env_var('DBT_USER') }}")).toBe('test');
|
|
26
|
+
process.env.DBT_ENV_SECRET_HOST_DOMAIN = 'domain';
|
|
27
|
+
process.env.DBT_ENV_SECRET_HOST_PATH = 'host_path';
|
|
28
|
+
expect((0, templating_1.renderProfilesYml)("www.{{ env_var('DBT_ENV_SECRET_HOST_DOMAIN') }}.com/{{ env_var('DBT_ENV_SECRET_HOST_PATH') }}")).toBe('www.domain.com/host_path');
|
|
29
|
+
});
|
|
30
|
+
test('should convert env_var function with number conversion', () => {
|
|
31
|
+
process.env.REDSHIFT_PORT = '2000';
|
|
32
|
+
expect((0, templating_1.renderProfilesYml)("{{ env_var('REDSHIFT_PORT') | as_number}}")).toBe('2000');
|
|
33
|
+
});
|
|
34
|
+
test('should convert env_var function and fallback to default value', () => {
|
|
35
|
+
expect((0, templating_1.renderProfilesYml)("{{ env_var('DBT_USER', 'default_value') }}")).toBe('default_value');
|
|
36
|
+
});
|
|
37
|
+
test('should convert env_var function and fallback to default value using keyword default', () => {
|
|
38
|
+
expect((0, templating_1.renderProfilesYml)("{{ env_var('DBT_USER', default='default_value') }}")).toBe('default_value');
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
describe('var()', () => {
|
|
42
|
+
test('should convert var functions and return env var values', () => {
|
|
43
|
+
process.argv = [
|
|
44
|
+
'--vars',
|
|
45
|
+
'{"domain": "domain", "host_path": "host_path"}',
|
|
46
|
+
];
|
|
47
|
+
expect((0, templating_1.renderProfilesYml)("www.{{ var('domain') }}.com/{{ var('host_path') }}")).toBe('www.domain.com/host_path');
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type LoadProfileArgs = {
|
|
2
|
+
profilesDir: string;
|
|
3
|
+
profileName: string;
|
|
4
|
+
targetName?: string;
|
|
5
|
+
};
|
|
6
|
+
export type Target = Record<string, unknown> & {
|
|
7
|
+
type: string;
|
|
8
|
+
};
|
|
9
|
+
type Profile = {
|
|
10
|
+
target: string;
|
|
11
|
+
outputs: Record<string, Target>;
|
|
12
|
+
};
|
|
13
|
+
export type Profiles = {
|
|
14
|
+
[name: string]: Profile;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dbt/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAC3C,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,KAAK,OAAO,GAAG;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG;IACnB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DbtModelNode, DbtRawModelNode, ExploreError, type DbtManifestVersion } from '@lightdash/common';
|
|
2
|
+
type DbtModelsGroupedByState = {
|
|
3
|
+
valid: DbtModelNode[];
|
|
4
|
+
invalid: ExploreError[];
|
|
5
|
+
skipped: DbtRawModelNode[];
|
|
6
|
+
};
|
|
7
|
+
export declare const validateDbtModel: (adapterType: string, manifestVersion: DbtManifestVersion, models: DbtRawModelNode[]) => Promise<DbtModelsGroupedByState>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/dbt/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,eAAe,EACf,YAAY,EAOZ,KAAK,kBAAkB,EAC1B,MAAM,mBAAmB,CAAC;AAG3B,KAAK,uBAAuB,GAAG;IAC3B,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC9B,CAAC;AACF,eAAO,MAAM,gBAAgB,GACzB,aAAa,MAAM,EACnB,iBAAiB,kBAAkB,EACnC,QAAQ,eAAe,EAAE,KAC1B,OAAO,CAAC,uBAAuB,CAgEjC,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateDbtModel = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@lightdash/common");
|
|
6
|
+
const globalState_1 = tslib_1.__importDefault(require("../globalState"));
|
|
7
|
+
const validateDbtModel = async (adapterType, manifestVersion, models) => {
|
|
8
|
+
globalState_1.default.debug(`> Validating ${models.length} models from dbt manifest`);
|
|
9
|
+
globalState_1.default.debug(`> Validating models using dbt manifest version ${manifestVersion}`);
|
|
10
|
+
const validator = new common_1.ManifestValidator(manifestVersion);
|
|
11
|
+
const results = models.reduce((acc, model) => {
|
|
12
|
+
let error;
|
|
13
|
+
// Match against json schema
|
|
14
|
+
const [isValid, errorMessage] = validator.isModelValid(model);
|
|
15
|
+
if (!isValid) {
|
|
16
|
+
error = {
|
|
17
|
+
type: common_1.InlineErrorType.METADATA_PARSE_ERROR,
|
|
18
|
+
message: errorMessage,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
else if (isValid && Object.values(model.columns).length <= 0) {
|
|
22
|
+
error = {
|
|
23
|
+
type: common_1.InlineErrorType.NO_DIMENSIONS_FOUND,
|
|
24
|
+
message: 'No dimensions available',
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
if (error) {
|
|
28
|
+
const exploreError = {
|
|
29
|
+
name: model.name,
|
|
30
|
+
label: model.meta.label || (0, common_1.friendlyName)(model.name),
|
|
31
|
+
errors: [error],
|
|
32
|
+
};
|
|
33
|
+
return { ...acc, invalid: [...acc.invalid, exploreError] };
|
|
34
|
+
}
|
|
35
|
+
// Fix null databases
|
|
36
|
+
const validatedModel = (0, common_1.normaliseModelDatabase)(model, adapterType);
|
|
37
|
+
return { ...acc, valid: [...acc.valid, validatedModel] };
|
|
38
|
+
}, { valid: [], invalid: [], skipped: [] });
|
|
39
|
+
if (results.valid.length > 0) {
|
|
40
|
+
globalState_1.default.debug(`> Valid compiled models (${results.valid.length}): ${results.valid
|
|
41
|
+
.map((m) => m.name)
|
|
42
|
+
.join(', ')}`);
|
|
43
|
+
}
|
|
44
|
+
if (results.skipped.length > 0) {
|
|
45
|
+
globalState_1.default.debug(`> Skipped models (${results.skipped.length}): ${results.skipped
|
|
46
|
+
.map((m) => m.name)
|
|
47
|
+
.join(', ')}`);
|
|
48
|
+
}
|
|
49
|
+
if (results.invalid.length > 0) {
|
|
50
|
+
globalState_1.default.debug(`> Invalid compiled models (${results.invalid.length}): ${results.invalid.map((m) => m.name).join(', ')}`);
|
|
51
|
+
}
|
|
52
|
+
return results;
|
|
53
|
+
};
|
|
54
|
+
exports.validateDbtModel = validateDbtModel;
|
package/dist/env.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const NODE_VERSION: {
|
|
2
|
+
major: number;
|
|
3
|
+
};
|
|
4
|
+
export declare const OPTIMIZED_NODE_VERSION = 20;
|
|
5
|
+
export declare const CLI_VERSION: string;
|
|
6
|
+
export declare const DEFAULT_DBT_PROJECT_DIR: string;
|
|
7
|
+
export declare const DEFAULT_DBT_PROFILES_DIR: string;
|
|
8
|
+
type InstallMethod = 'npm' | 'homebrew' | 'binary';
|
|
9
|
+
export declare const getInstallMethod: () => InstallMethod;
|
|
10
|
+
export declare const getUpdateInstructions: (version: string) => string;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY;;CAAqD,CAAC;AAE/E,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,eAAO,MAAiB,WAAW,QAAgB,CAAC;AAEpD,eAAO,MAAM,uBAAuB,QAAqC,CAAC;AAC1E,eAAO,MAAM,wBAAwB,EAAE,MAAgC,CAAC;AAExE,KAAK,aAAa,GAAG,KAAK,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEnD,eAAO,MAAM,gBAAgB,QAAO,aAiBnC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,SAAS,MAAM,KAAG,MAWvD,CAAC"}
|
package/dist/env.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getUpdateInstructions = exports.getInstallMethod = exports.DEFAULT_DBT_PROFILES_DIR = exports.DEFAULT_DBT_PROJECT_DIR = exports.CLI_VERSION = exports.OPTIMIZED_NODE_VERSION = exports.NODE_VERSION = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const parse_node_version_1 = tslib_1.__importDefault(require("parse-node-version"));
|
|
6
|
+
const package_json_1 = tslib_1.__importDefault(require("../package.json"));
|
|
7
|
+
const profile_1 = require("./dbt/profile");
|
|
8
|
+
exports.NODE_VERSION = { major: (0, parse_node_version_1.default)(process.version).major };
|
|
9
|
+
exports.OPTIMIZED_NODE_VERSION = 20;
|
|
10
|
+
exports.CLI_VERSION = package_json_1.default.version;
|
|
11
|
+
exports.DEFAULT_DBT_PROJECT_DIR = process.env.DBT_PROJECT_DIR || '.';
|
|
12
|
+
exports.DEFAULT_DBT_PROFILES_DIR = (0, profile_1.findDbtDefaultProfile)();
|
|
13
|
+
const getInstallMethod = () => {
|
|
14
|
+
// pkg-compiled binary
|
|
15
|
+
if (process.pkg) {
|
|
16
|
+
return 'binary';
|
|
17
|
+
}
|
|
18
|
+
const { execPath } = process;
|
|
19
|
+
// Homebrew: macOS (Apple Silicon, Intel) or Linux (Linuxbrew)
|
|
20
|
+
if (execPath.includes('/opt/homebrew/') ||
|
|
21
|
+
execPath.includes('/usr/local/Cellar/') ||
|
|
22
|
+
execPath.includes('linuxbrew')) {
|
|
23
|
+
return 'homebrew';
|
|
24
|
+
}
|
|
25
|
+
return 'npm';
|
|
26
|
+
};
|
|
27
|
+
exports.getInstallMethod = getInstallMethod;
|
|
28
|
+
const getUpdateInstructions = (version) => {
|
|
29
|
+
const method = (0, exports.getInstallMethod)();
|
|
30
|
+
switch (method) {
|
|
31
|
+
case 'homebrew':
|
|
32
|
+
return 'running: brew upgrade clary';
|
|
33
|
+
case 'binary':
|
|
34
|
+
return 'downloading from: https://github.com/claryai/clary-cli/releases';
|
|
35
|
+
case 'npm':
|
|
36
|
+
default:
|
|
37
|
+
return `running: npm install -g @claryai/cli@${version}`;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
exports.getUpdateInstructions = getUpdateInstructions;
|
package/dist/error.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,GAC3B,OAAM,MAAM,EAA0B,KACvC,MAAM,GAAG,IAMX,CAAC"}
|
package/dist/error.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDiagnosticsHint = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const styles = tslib_1.__importStar(require("./styles"));
|
|
6
|
+
const getDiagnosticsHint = (argv = process.argv.slice(2)) => {
|
|
7
|
+
if (argv.includes('diagnostics')) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
return `\n💡 Run ${styles.bold('clary diagnostics')} for more info.\n`;
|
|
11
|
+
};
|
|
12
|
+
exports.getDiagnosticsHint = getDiagnosticsHint;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import ora from 'ora';
|
|
2
|
+
import { Config } from './config';
|
|
3
|
+
type PromptAnswer = {
|
|
4
|
+
useFallbackDbtVersion?: boolean;
|
|
5
|
+
useExperimentalDbtCloudCLI?: boolean;
|
|
6
|
+
};
|
|
7
|
+
declare class GlobalState {
|
|
8
|
+
private verbose;
|
|
9
|
+
private nonInteractive;
|
|
10
|
+
private activeSpinner;
|
|
11
|
+
private savedPromptAnswers;
|
|
12
|
+
private sessionId;
|
|
13
|
+
constructor();
|
|
14
|
+
getSessionId(): string;
|
|
15
|
+
setNonInteractive(value: boolean): void;
|
|
16
|
+
isNonInteractive(): boolean;
|
|
17
|
+
getActiveSpinner(): ora.Ora | undefined;
|
|
18
|
+
startSpinner(options?: ora.Options | string): ora.Ora;
|
|
19
|
+
log(message: unknown, ...optionalParams: unknown[]): void;
|
|
20
|
+
setVerbose(verbose: boolean): void;
|
|
21
|
+
getSavedPromptAnswer<T extends keyof PromptAnswer>(prompt: T): PromptAnswer[T] | undefined;
|
|
22
|
+
savePromptAnswer<T extends keyof PromptAnswer>(prompt: T, value: PromptAnswer[T]): void;
|
|
23
|
+
clearPromptAnswer(): void;
|
|
24
|
+
debug(message: string): void;
|
|
25
|
+
logProjectInfo(config: Config): void;
|
|
26
|
+
}
|
|
27
|
+
declare const _default: GlobalState;
|
|
28
|
+
export default _default;
|
|
29
|
+
//# sourceMappingURL=globalState.d.ts.map
|