twenty-sdk 0.1.0 → 0.1.2

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 (103) hide show
  1. package/README.md +1 -1
  2. package/dist/_commonjsHelpers-DKOUU3wS.js +1 -0
  3. package/dist/_commonjsHelpers-DaMA6jEr.mjs +8 -0
  4. package/dist/application/application-config.d.ts +0 -2
  5. package/dist/application/field-metadata/composite-fields.d.ts +0 -1
  6. package/dist/application/field-metadata/field-type.d.ts +0 -1
  7. package/dist/application/field-metadata/field.decorator.d.ts +1 -3
  8. package/dist/application/field-metadata/on-delete-action.d.ts +0 -1
  9. package/dist/application/field-metadata/relation-type.d.ts +0 -1
  10. package/dist/application/field-metadata/relation.decorator.d.ts +1 -3
  11. package/dist/application/function-config.d.ts +0 -2
  12. package/dist/application/index.d.ts +0 -1
  13. package/dist/application/object-metadata/object.decorator.d.ts +0 -2
  14. package/dist/application/object-metadata/standard-object-ids.d.ts +0 -1
  15. package/dist/application/syncable-entity-options.type.d.ts +0 -1
  16. package/dist/cli/cli.d.ts +2 -0
  17. package/dist/cli/commands/app-add.command.d.ts +12 -0
  18. package/dist/cli/commands/app-dev.command.d.ts +10 -0
  19. package/dist/cli/commands/app-generate.command.d.ts +4 -0
  20. package/dist/cli/commands/app-sync.command.d.ts +7 -0
  21. package/dist/cli/commands/app-uninstall.command.d.ts +9 -0
  22. package/dist/cli/commands/app.command.d.ts +9 -0
  23. package/dist/cli/commands/auth.command.d.ts +9 -0
  24. package/dist/cli/constants/current-execution-directory.d.ts +1 -0
  25. package/dist/cli/services/api.service.d.ts +14 -0
  26. package/dist/cli/services/config.service.d.ts +14 -0
  27. package/dist/cli/services/generate.service.d.ts +7 -0
  28. package/dist/cli/types/config.types.d.ts +99 -0
  29. package/dist/cli/utils/convert-to-label.d.ts +1 -0
  30. package/dist/cli/utils/find-path-file.d.ts +1 -0
  31. package/dist/cli/utils/format-and-warn-ts-diagnostics.d.ts +4 -0
  32. package/dist/cli/utils/format-path.d.ts +1 -0
  33. package/dist/cli/utils/get-function-base-file.d.ts +4 -0
  34. package/dist/cli/utils/get-object-decorated-class.d.ts +4 -0
  35. package/dist/cli/utils/get-ts-program-and-diagnostics.d.ts +7 -0
  36. package/dist/cli/utils/jsonc-parser.d.ts +17 -0
  37. package/dist/cli/utils/load-env-variables.d.ts +2 -0
  38. package/dist/cli/utils/load-manifest.d.ts +9 -0
  39. package/dist/cli.cjs +242 -0
  40. package/dist/cli.mjs +9506 -0
  41. package/dist/index.cjs +11 -11
  42. package/dist/index.d.ts +0 -1
  43. package/dist/index.mjs +300 -302
  44. package/package.json +19 -15
  45. package/dist/application/application-config.d.ts.map +0 -1
  46. package/dist/application/field-metadata/composite-fields.d.ts.map +0 -1
  47. package/dist/application/field-metadata/field-type.d.ts.map +0 -1
  48. package/dist/application/field-metadata/field.decorator.d.ts.map +0 -1
  49. package/dist/application/field-metadata/on-delete-action.d.ts.map +0 -1
  50. package/dist/application/field-metadata/relation-type.d.ts.map +0 -1
  51. package/dist/application/field-metadata/relation.decorator.d.ts.map +0 -1
  52. package/dist/application/function-config.d.ts.map +0 -1
  53. package/dist/application/index.d.ts.map +0 -1
  54. package/dist/application/object-metadata/object.decorator.d.ts.map +0 -1
  55. package/dist/application/object-metadata/standard-object-ids.d.ts.map +0 -1
  56. package/dist/application/syncable-entity-options.type.d.ts.map +0 -1
  57. package/dist/cli/cli.js +0 -39
  58. package/dist/cli/cli.js.map +0 -1
  59. package/dist/cli/commands/app-add.command.js +0 -143
  60. package/dist/cli/commands/app-add.command.js.map +0 -1
  61. package/dist/cli/commands/app-dev.command.js +0 -60
  62. package/dist/cli/commands/app-dev.command.js.map +0 -1
  63. package/dist/cli/commands/app-generate.command.js +0 -18
  64. package/dist/cli/commands/app-generate.command.js.map +0 -1
  65. package/dist/cli/commands/app-sync.command.js +0 -48
  66. package/dist/cli/commands/app-sync.command.js.map +0 -1
  67. package/dist/cli/commands/app-uninstall.command.js +0 -46
  68. package/dist/cli/commands/app-uninstall.command.js.map +0 -1
  69. package/dist/cli/commands/app.command.js +0 -99
  70. package/dist/cli/commands/app.command.js.map +0 -1
  71. package/dist/cli/commands/auth.command.js +0 -128
  72. package/dist/cli/commands/auth.command.js.map +0 -1
  73. package/dist/cli/constants/current-execution-directory.js +0 -2
  74. package/dist/cli/constants/current-execution-directory.js.map +0 -1
  75. package/dist/cli/services/api.service.js +0 -171
  76. package/dist/cli/services/api.service.js.map +0 -1
  77. package/dist/cli/services/config.service.js +0 -83
  78. package/dist/cli/services/config.service.js.map +0 -1
  79. package/dist/cli/services/generate.service.js +0 -45
  80. package/dist/cli/services/generate.service.js.map +0 -1
  81. package/dist/cli/types/config.types.js +0 -2
  82. package/dist/cli/types/config.types.js.map +0 -1
  83. package/dist/cli/utils/convert-to-label.js +0 -6
  84. package/dist/cli/utils/convert-to-label.js.map +0 -1
  85. package/dist/cli/utils/find-path-file.js +0 -10
  86. package/dist/cli/utils/find-path-file.js.map +0 -1
  87. package/dist/cli/utils/format-and-warn-ts-diagnostics.js +0 -12
  88. package/dist/cli/utils/format-and-warn-ts-diagnostics.js.map +0 -1
  89. package/dist/cli/utils/format-path.js +0 -8
  90. package/dist/cli/utils/format-path.js.map +0 -1
  91. package/dist/cli/utils/get-function-base-file.js +0 -28
  92. package/dist/cli/utils/get-function-base-file.js.map +0 -1
  93. package/dist/cli/utils/get-object-decorated-class.js +0 -16
  94. package/dist/cli/utils/get-object-decorated-class.js.map +0 -1
  95. package/dist/cli/utils/get-ts-program-and-diagnostics.js +0 -35
  96. package/dist/cli/utils/get-ts-program-and-diagnostics.js.map +0 -1
  97. package/dist/cli/utils/jsonc-parser.js +0 -45
  98. package/dist/cli/utils/jsonc-parser.js.map +0 -1
  99. package/dist/cli/utils/load-env-variables.js +0 -15
  100. package/dist/cli/utils/load-env-variables.js.map +0 -1
  101. package/dist/cli/utils/load-manifest.js +0 -377
  102. package/dist/cli/utils/load-manifest.js.map +0 -1
  103. package/dist/index.d.ts.map +0 -1
@@ -1,128 +0,0 @@
1
- import chalk from 'chalk';
2
- import { Command } from 'commander';
3
- import inquirer from 'inquirer';
4
- import { ApiService } from '../services/api.service';
5
- import { ConfigService } from '../services/config.service';
6
- export class AuthCommand {
7
- constructor() {
8
- this.configService = new ConfigService();
9
- this.apiService = new ApiService();
10
- }
11
- getCommand() {
12
- const authCommand = new Command('auth');
13
- authCommand.description('Authentication commands');
14
- authCommand
15
- .command('login')
16
- .description('Authenticate with Twenty')
17
- .option('--api-key <key>', 'API key for authentication')
18
- .option('--api-url <url>', 'Twenty API URL')
19
- .action(async (options) => {
20
- await this.login(options);
21
- });
22
- authCommand
23
- .command('logout')
24
- .description('Remove authentication credentials')
25
- .action(async () => {
26
- await this.logout();
27
- });
28
- authCommand
29
- .command('status')
30
- .description('Check authentication status')
31
- .action(async () => {
32
- await this.status();
33
- });
34
- return authCommand;
35
- }
36
- async login(options) {
37
- try {
38
- let { apiKey, apiUrl } = options;
39
- // Get current config
40
- const config = await this.configService.getConfig();
41
- // Prompt for missing values
42
- if (!apiUrl) {
43
- const urlAnswer = await inquirer.prompt([
44
- {
45
- type: 'input',
46
- name: 'apiUrl',
47
- message: 'Twenty API URL:',
48
- default: config.apiUrl,
49
- validate: (input) => {
50
- try {
51
- new URL(input);
52
- return true;
53
- }
54
- catch (_a) {
55
- return 'Please enter a valid URL';
56
- }
57
- },
58
- },
59
- ]);
60
- apiUrl = urlAnswer.apiUrl;
61
- }
62
- if (!apiKey) {
63
- const keyAnswer = await inquirer.prompt([
64
- {
65
- type: 'password',
66
- name: 'apiKey',
67
- message: 'API Key:',
68
- mask: '*',
69
- validate: (input) => input.length > 0 || 'API key is required',
70
- },
71
- ]);
72
- apiKey = keyAnswer.apiKey;
73
- }
74
- // Update config
75
- await this.configService.setConfig({
76
- apiUrl,
77
- apiKey,
78
- });
79
- // Validate authentication
80
- const isValid = await this.apiService.validateAuth();
81
- if (isValid) {
82
- const activeWorkspace = ConfigService.getActiveWorkspace();
83
- console.log(chalk.green(`✓ Successfully authenticated with Twenty (workspace: ${activeWorkspace})`));
84
- }
85
- else {
86
- console.log(chalk.red('✗ Authentication failed. Please check your credentials.'));
87
- process.exit(1);
88
- }
89
- }
90
- catch (error) {
91
- console.error(chalk.red('Login failed:'), error instanceof Error ? error.message : error);
92
- process.exit(1);
93
- }
94
- }
95
- async logout() {
96
- try {
97
- await this.configService.clearConfig();
98
- const activeWorkspace = ConfigService.getActiveWorkspace();
99
- console.log(chalk.green(`✓ Successfully logged out (workspace: ${activeWorkspace})`));
100
- }
101
- catch (error) {
102
- console.error(chalk.red('Logout failed:'), error instanceof Error ? error.message : error);
103
- process.exit(1);
104
- }
105
- }
106
- async status() {
107
- try {
108
- const activeWorkspace = ConfigService.getActiveWorkspace();
109
- const config = await this.configService.getConfig();
110
- console.log(chalk.blue('Authentication Status:'));
111
- console.log(`Workspace: ${activeWorkspace}`);
112
- console.log(`API URL: ${config.apiUrl}`);
113
- console.log(`API Key: ${config.apiKey ? '***' + config.apiKey.slice(-4) : 'Not set'}`);
114
- if (config.apiKey) {
115
- const isValid = await this.apiService.validateAuth();
116
- console.log(`Status: ${isValid ? chalk.green('✓ Valid') : chalk.red('✗ Invalid')}`);
117
- }
118
- else {
119
- console.log(`Status: ${chalk.yellow('⚠ Not authenticated')}`);
120
- }
121
- }
122
- catch (error) {
123
- console.error(chalk.red('Status check failed:'), error instanceof Error ? error.message : error);
124
- process.exit(1);
125
- }
126
- }
127
- }
128
- //# sourceMappingURL=auth.command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.command.js","sourceRoot":"","sources":["../../../src/cli/commands/auth.command.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export const CURRENT_EXECUTION_DIRECTORY = process.env.INIT_CWD || process.cwd();
2
- //# sourceMappingURL=current-execution-directory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"current-execution-directory.js","sourceRoot":"","sources":["../../../src/cli/constants/current-execution-directory.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GACtC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC"}
@@ -1,171 +0,0 @@
1
- import axios from 'axios';
2
- import chalk from 'chalk';
3
- import { buildClientSchema, getIntrospectionQuery, printSchema, } from 'graphql/index';
4
- import { ConfigService } from './config.service';
5
- export class ApiService {
6
- constructor() {
7
- this.configService = new ConfigService();
8
- this.client = axios.create();
9
- this.client.interceptors.request.use(async (config) => {
10
- const twentyConfig = await this.configService.getConfig();
11
- config.baseURL = twentyConfig.apiUrl;
12
- if (twentyConfig.apiKey) {
13
- config.headers.Authorization = `Bearer ${twentyConfig.apiKey}`;
14
- }
15
- return config;
16
- });
17
- this.client.interceptors.response.use((response) => response, (error) => {
18
- var _a, _b;
19
- if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401) {
20
- console.error(chalk.red('Authentication failed. Please run `twenty auth login` first.'));
21
- }
22
- else if (((_b = error.response) === null || _b === void 0 ? void 0 : _b.status) === 403) {
23
- console.error(chalk.red('Access denied. Check your API key and workspace permissions.'));
24
- }
25
- else if (error.code === 'ECONNREFUSED') {
26
- console.error(chalk.red('Cannot connect to Twenty server. Is it running?'));
27
- }
28
- throw error;
29
- });
30
- }
31
- async validateAuth() {
32
- try {
33
- const query = `
34
- query CurrentWorkspace {
35
- currentWorkspace {
36
- id
37
- }
38
- }
39
- `;
40
- const response = await this.client.post('/metadata', {
41
- query,
42
- }, {
43
- headers: {
44
- 'Content-Type': 'application/json',
45
- Accept: '*/*',
46
- },
47
- });
48
- return response.status === 200 && !response.data.errors;
49
- }
50
- catch (_a) {
51
- return false;
52
- }
53
- }
54
- async syncApplication({ packageJson, yarnLock, manifest, }) {
55
- try {
56
- const mutation = `
57
- mutation SyncApplication($manifest: JSON!, $packageJson: JSON!, $yarnLock: String!) {
58
- syncApplication(manifest: $manifest, packageJson: $packageJson, yarnLock: $yarnLock)
59
- }
60
- `;
61
- const variables = {
62
- manifest,
63
- yarnLock,
64
- packageJson,
65
- };
66
- const response = await this.client.post('/metadata', {
67
- query: mutation,
68
- variables,
69
- }, {
70
- headers: {
71
- 'Content-Type': 'application/json',
72
- Accept: '*/*',
73
- },
74
- });
75
- if (response.data.errors) {
76
- return {
77
- success: false,
78
- error: response.data.errors[0],
79
- };
80
- }
81
- return {
82
- success: true,
83
- data: response.data.data.syncApplication,
84
- message: `Successfully synced application: ${packageJson.name}`,
85
- };
86
- }
87
- catch (error) {
88
- return {
89
- success: false,
90
- error,
91
- };
92
- }
93
- }
94
- async uninstallApplication(universalIdentifier) {
95
- var _a, _b, _c, _d;
96
- try {
97
- const mutation = `
98
- mutation UninstallApplication($universalIdentifier: String!) {
99
- uninstallApplication(universalIdentifier: $universalIdentifier)
100
- }
101
- `;
102
- const variables = { universalIdentifier };
103
- const response = await this.client.post('/metadata', {
104
- query: mutation,
105
- variables,
106
- }, {
107
- headers: {
108
- 'Content-Type': 'application/json',
109
- Accept: '*/*',
110
- },
111
- });
112
- if (response.data.errors) {
113
- return {
114
- success: false,
115
- error: ((_a = response.data.errors[0]) === null || _a === void 0 ? void 0 : _a.message) || 'Failed to delete application',
116
- };
117
- }
118
- return {
119
- success: true,
120
- data: response.data.data.uninstallApplication,
121
- message: 'Successfully uninstalled application',
122
- };
123
- }
124
- catch (error) {
125
- if (axios.isAxiosError(error) && error.response) {
126
- return {
127
- success: false,
128
- error: ((_d = (_c = (_b = error.response.data) === null || _b === void 0 ? void 0 : _b.errors) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.message) || error.message,
129
- };
130
- }
131
- throw error;
132
- }
133
- }
134
- async getSchema() {
135
- var _a;
136
- try {
137
- const introspectionQuery = getIntrospectionQuery();
138
- const response = await this.client.post('/graphql', {
139
- query: introspectionQuery,
140
- }, {
141
- headers: {
142
- 'Content-Type': 'application/json',
143
- Accept: '*/*',
144
- },
145
- });
146
- if (response.data.errors) {
147
- return {
148
- success: false,
149
- error: `GraphQL introspection errors: ${JSON.stringify(response.data.errors)}`,
150
- };
151
- }
152
- const schema = buildClientSchema(response.data.data);
153
- return {
154
- success: true,
155
- data: printSchema(schema),
156
- message: 'Successfully load schema',
157
- };
158
- }
159
- catch (error) {
160
- if (axios.isAxiosError(error) && error.response) {
161
- return {
162
- success: false,
163
- error: ((_a = error.response.data.errors[0]) === null || _a === void 0 ? void 0 : _a.message) ||
164
- 'Failed to load graphql Schema',
165
- };
166
- }
167
- throw error;
168
- }
169
- }
170
- }
171
- //# sourceMappingURL=api.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.service.js","sourceRoot":"","sources":["../../../src/cli/services/api.service.ts"],"names":[],"mappings":"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"}
@@ -1,83 +0,0 @@
1
- import * as fs from 'fs-extra';
2
- import * as os from 'os';
3
- import * as path from 'path';
4
- const DEFAULT_WORKSPACE_NAME = 'default';
5
- export class ConfigService {
6
- constructor() {
7
- this.configPath = path.join(os.homedir(), '.twenty', 'config.json');
8
- }
9
- static setActiveWorkspace(name) {
10
- this.activeWorkspace = name !== null && name !== void 0 ? name : DEFAULT_WORKSPACE_NAME;
11
- }
12
- static getActiveWorkspace() {
13
- return this.activeWorkspace;
14
- }
15
- getActiveWorkspaceName() {
16
- return ConfigService.getActiveWorkspace();
17
- }
18
- async readRawConfig() {
19
- await fs.ensureFile(this.configPath);
20
- const content = await fs.readFile(this.configPath, 'utf8');
21
- return JSON.parse(content || '{}');
22
- }
23
- async getConfig() {
24
- var _a, _b, _c;
25
- const defaultConfig = this.getDefaultConfig();
26
- try {
27
- const raw = await this.readRawConfig();
28
- const profile = this.getActiveWorkspaceName();
29
- const profileConfig = profile === DEFAULT_WORKSPACE_NAME &&
30
- !((_a = raw.profiles) === null || _a === void 0 ? void 0 : _a[DEFAULT_WORKSPACE_NAME])
31
- ? raw
32
- : (_b = raw.profiles) === null || _b === void 0 ? void 0 : _b[profile];
33
- // Fallback to legacy top-level values if profile value is missing
34
- const apiUrl = (_c = profileConfig === null || profileConfig === void 0 ? void 0 : profileConfig.apiUrl) !== null && _c !== void 0 ? _c : defaultConfig.apiUrl;
35
- const apiKey = profileConfig === null || profileConfig === void 0 ? void 0 : profileConfig.apiKey;
36
- return {
37
- apiUrl,
38
- apiKey,
39
- };
40
- }
41
- catch (_d) {
42
- return defaultConfig;
43
- }
44
- }
45
- async setConfig(config) {
46
- const raw = await this.readRawConfig();
47
- const profile = this.getActiveWorkspaceName();
48
- // Ensure profiles map exists
49
- if (!raw.profiles) {
50
- raw.profiles = {};
51
- }
52
- const currentProfile = raw.profiles[profile] || { apiUrl: '' };
53
- raw.profiles[profile] = { ...currentProfile, ...config };
54
- await fs.ensureDir(path.dirname(this.configPath));
55
- await fs.writeFile(this.configPath, JSON.stringify(raw, null, 2));
56
- }
57
- async clearConfig() {
58
- // Clear only the active profile credentials (non-breaking for other profiles)
59
- const raw = await this.readRawConfig();
60
- const profile = this.getActiveWorkspaceName();
61
- if (!raw.profiles) {
62
- raw.profiles = {};
63
- }
64
- if (raw.profiles[profile]) {
65
- delete raw.profiles[profile];
66
- }
67
- // Also clear legacy top-level apiKey for compatibility when active profile is default
68
- if (profile === DEFAULT_WORKSPACE_NAME) {
69
- const defaultConfig = this.getDefaultConfig();
70
- delete raw.apiKey;
71
- raw.apiUrl = defaultConfig.apiUrl;
72
- }
73
- await fs.ensureDir(path.dirname(this.configPath));
74
- await fs.writeFile(this.configPath, JSON.stringify(raw, null, 2));
75
- }
76
- getDefaultConfig() {
77
- return {
78
- apiUrl: 'http://localhost:3000',
79
- };
80
- }
81
- }
82
- ConfigService.activeWorkspace = DEFAULT_WORKSPACE_NAME;
83
- //# sourceMappingURL=config.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/cli/services/config.service.ts"],"names":[],"mappings":"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"}
@@ -1,45 +0,0 @@
1
- import { generate } from '@genql/cli';
2
- import chalk from 'chalk';
3
- import { join, resolve } from 'path';
4
- import { ApiService } from './api.service';
5
- import { ConfigService } from './config.service';
6
- export const GENERATED_FOLDER_NAME = 'generated';
7
- export class GenerateService {
8
- constructor() {
9
- this.configService = new ConfigService();
10
- this.apiService = new ApiService();
11
- }
12
- async generateClient(appPath) {
13
- const outputPath = join(appPath, GENERATED_FOLDER_NAME);
14
- console.log(chalk.blue('📦 Generating Twenty client...'));
15
- console.log(chalk.gray(`📁 Output Path: ${outputPath}`));
16
- console.log('');
17
- const config = await this.configService.getConfig();
18
- const url = config.apiUrl;
19
- const token = config.apiKey;
20
- if (!url || !token) {
21
- console.log(chalk.yellow('⚠️ Skipping Client generation: API URL or token not configured'));
22
- return;
23
- }
24
- console.log(chalk.gray(`API URL: ${url}`));
25
- console.log(chalk.gray(`Output: ${outputPath}`));
26
- const getSchemaResponse = await this.apiService.getSchema();
27
- if (!getSchemaResponse.success) {
28
- return;
29
- }
30
- const { data: schema } = getSchemaResponse;
31
- await generate({
32
- schema,
33
- output: resolve(outputPath),
34
- scalarTypes: {
35
- DateTime: 'string',
36
- JSON: 'Record<string, unknown>',
37
- UUID: 'string',
38
- },
39
- verbose: true,
40
- });
41
- console.log(chalk.green('✓ Client generated successfully!'));
42
- console.log(chalk.gray(`Generated files at: ${outputPath}`));
43
- }
44
- }
45
- //# sourceMappingURL=generate.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate.service.js","sourceRoot":"","sources":["../../../src/cli/services/generate.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,CAAC;AAEjD,MAAM,OAAO,eAAe;IAI1B;QACE,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;QAExD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;QAEpD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAE5B,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,iEAAiE,CAClE,CACF,CAAC;YACF,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,UAAU,EAAE,CAAC,CAAC,CAAC;QAEjD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAC5D,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC;QAE3C,MAAM,QAAQ,CAAC;YACb,MAAM;YACN,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC;YAC3B,WAAW,EAAE;gBACX,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,yBAAyB;gBAC/B,IAAI,EAAE,QAAQ;aACf;YACD,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;CACF"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=config.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.types.js","sourceRoot":"","sources":["../../../src/cli/types/config.types.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- import { startCase } from 'lodash';
2
- export const convertToLabel = (str) => {
3
- const s = startCase(str).toLowerCase();
4
- return s.charAt(0).toUpperCase() + s.slice(1);
5
- };
6
- //# sourceMappingURL=convert-to-label.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"convert-to-label.js","sourceRoot":"","sources":["../../../src/cli/utils/convert-to-label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE;IAC5C,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IACvC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC"}
@@ -1,10 +0,0 @@
1
- import path from 'path';
2
- import * as fs from 'fs-extra';
3
- export const findPathFile = async (appPath, fileName) => {
4
- const jsonPath = path.join(appPath, fileName);
5
- if (await fs.pathExists(jsonPath)) {
6
- return jsonPath;
7
- }
8
- throw new Error(`${fileName} not found in ${appPath}`);
9
- };
10
- //# sourceMappingURL=find-path-file.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"find-path-file.js","sourceRoot":"","sources":["../../../src/cli/utils/find-path-file.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,OAAe,EACf,QAAgB,EACC,EAAE;IACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE9C,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,iBAAiB,OAAO,EAAE,CAAC,CAAC;AACzD,CAAC,CAAC"}
@@ -1,12 +0,0 @@
1
- import { formatDiagnosticsWithColorAndContext, sys, } from 'typescript';
2
- export const formatAndWarnTsDiagnostics = ({ diagnostics, }) => {
3
- if (diagnostics.length > 0) {
4
- const formattedDiagnostics = formatDiagnosticsWithColorAndContext(diagnostics, {
5
- getCanonicalFileName: (f) => f,
6
- getCurrentDirectory: sys.getCurrentDirectory,
7
- getNewLine: () => sys.newLine,
8
- });
9
- console.warn(formattedDiagnostics);
10
- }
11
- };
12
- //# sourceMappingURL=format-and-warn-ts-diagnostics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format-and-warn-ts-diagnostics.js","sourceRoot":"","sources":["../../../src/cli/utils/format-and-warn-ts-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oCAAoC,EACpC,GAAG,GACJ,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,EACzC,WAAW,GAGZ,EAAE,EAAE;IACH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,oBAAoB,GAAG,oCAAoC,CAC/D,WAAW,EACX;YACE,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,mBAAmB,EAAE,GAAG,CAAC,mBAAmB;YAC5C,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO;SAC9B,CACF,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACrC,CAAC;AACH,CAAC,CAAC"}
@@ -1,8 +0,0 @@
1
- import { join } from 'path';
2
- import { CURRENT_EXECUTION_DIRECTORY } from '../constants/current-execution-directory';
3
- export const formatPath = (appPath) => {
4
- return appPath && !(appPath === null || appPath === void 0 ? void 0 : appPath.startsWith('/'))
5
- ? join(CURRENT_EXECUTION_DIRECTORY, appPath)
6
- : appPath;
7
- };
8
- //# sourceMappingURL=format-path.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format-path.js","sourceRoot":"","sources":["../../../src/cli/utils/format-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AAEvF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAE,EAAE;IAC7C,OAAO,OAAO,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAC,GAAG,CAAC,CAAA;QACzC,CAAC,CAAC,IAAI,CAAC,2BAA2B,EAAE,OAAO,CAAC;QAC5C,CAAC,CAAC,OAAO,CAAC;AACd,CAAC,CAAC"}
@@ -1,28 +0,0 @@
1
- import kebabCase from 'lodash.kebabcase';
2
- import { v4 } from 'uuid';
3
- export const getFunctionBaseFile = ({ name, universalIdentifier = v4(), }) => {
4
- const kebabCaseName = kebabCase(name);
5
- return `import { type FunctionConfig } from 'twenty-sdk';
6
-
7
- export const main = async (params: {
8
- a: string;
9
- b: number;
10
- }): Promise<{ message: string }> => {
11
- const { a, b } = params;
12
-
13
- // Rename the parameters and code below with your own logic
14
- // This is just an example
15
- const message = \`Hello, input: $\{a} and $\{b}\`;
16
-
17
- return { message };
18
- };
19
-
20
- export const config: FunctionConfig = {
21
- universalIdentifier: '${universalIdentifier}',
22
- name: '${kebabCaseName}',
23
- timeoutSeconds: 5,
24
- };
25
-
26
- `;
27
- };
28
- //# sourceMappingURL=get-function-base-file.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-function-base-file.js","sourceRoot":"","sources":["../../../src/cli/utils/get-function-base-file.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAE1B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,IAAI,EACJ,mBAAmB,GAAG,EAAE,EAAE,GAI3B,EAAE,EAAE;IACH,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAEtC,OAAO;;;;;;;;;;;;;;;;0BAgBiB,mBAAmB;WAClC,aAAa;;;;CAIvB,CAAC;AACF,CAAC,CAAC"}
@@ -1,16 +0,0 @@
1
- import camelcase from 'lodash.camelcase';
2
- export const getObjectDecoratedClass = ({ data, name, }) => {
3
- const decoratorOptions = Object.entries(data)
4
- .map(([key, value]) => ` ${key}: '${value}',`)
5
- .join('\n');
6
- const camelCaseName = camelcase(name);
7
- const className = camelCaseName[0].toUpperCase() + camelCaseName.slice(1);
8
- return `import { Object } from 'twenty-sdk';
9
-
10
- @Object({
11
- ${decoratorOptions}
12
- })
13
- export class ${className} {}
14
- `;
15
- };
16
- //# sourceMappingURL=get-object-decorated-class.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-object-decorated-class.js","sourceRoot":"","sources":["../../../src/cli/utils/get-object-decorated-class.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAEzC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACtC,IAAI,EACJ,IAAI,GAIL,EAAE,EAAE;IACH,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SAC1C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;SAC9C,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAEtC,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE1E,OAAO;;;EAGP,gBAAgB;;eAEH,SAAS;CACvB,CAAC;AACF,CAAC,CAAC"}
@@ -1,35 +0,0 @@
1
- import { join } from 'path';
2
- import { createProgram, formatDiagnosticsWithColorAndContext, parseJsonConfigFileContent, readConfigFile, sys, } from 'typescript';
3
- const getProgramFromTsconfig = ({ appPath, tsconfigPath = 'tsconfig.json', }) => {
4
- const configFile = readConfigFile(join(appPath, tsconfigPath), sys.readFile);
5
- if (configFile.error)
6
- throw new Error(formatDiagnosticsWithColorAndContext([configFile.error], {
7
- getCanonicalFileName: (f) => f,
8
- getCurrentDirectory: sys.getCurrentDirectory,
9
- getNewLine: () => sys.newLine,
10
- }));
11
- const parsed = parseJsonConfigFileContent(configFile.config, sys, appPath);
12
- if (parsed.errors.length) {
13
- throw new Error(formatDiagnosticsWithColorAndContext(parsed.errors, {
14
- getCanonicalFileName: (f) => f,
15
- getCurrentDirectory: sys.getCurrentDirectory,
16
- getNewLine: () => sys.newLine,
17
- }));
18
- }
19
- return createProgram(parsed.fileNames, parsed.options);
20
- };
21
- export const getTsProgramAndDiagnostics = async ({ appPath, }) => {
22
- const program = getProgramFromTsconfig({
23
- appPath,
24
- tsconfigPath: 'tsconfig.json',
25
- });
26
- return {
27
- diagnostics: [
28
- ...program.getSyntacticDiagnostics(),
29
- ...program.getSemanticDiagnostics(),
30
- ...program.getGlobalDiagnostics(),
31
- ],
32
- program,
33
- };
34
- };
35
- //# sourceMappingURL=get-ts-program-and-diagnostics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-ts-program-and-diagnostics.js","sourceRoot":"","sources":["../../../src/cli/utils/get-ts-program-and-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,oCAAoC,EACpC,0BAA0B,EAC1B,cAAc,EACd,GAAG,GAGJ,MAAM,YAAY,CAAC;AAEpB,MAAM,sBAAsB,GAAG,CAAC,EAC9B,OAAO,EACP,YAAY,GAAG,eAAe,GAI/B,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7E,IAAI,UAAU,CAAC,KAAK;QAClB,MAAM,IAAI,KAAK,CACb,oCAAoC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YACvD,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,mBAAmB,EAAE,GAAG,CAAC,mBAAmB;YAC5C,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO;SAC9B,CAAC,CACH,CAAC;IACJ,MAAM,MAAM,GAAG,0BAA0B,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,oCAAoC,CAAC,MAAM,CAAC,MAAM,EAAE;YAClD,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,mBAAmB,EAAE,GAAG,CAAC,mBAAmB;YAC5C,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO;SAC9B,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAAE,EAC/C,OAAO,GAGR,EAA4D,EAAE;IAC7D,MAAM,OAAO,GAAG,sBAAsB,CAAC;QACrC,OAAO;QACP,YAAY,EAAE,eAAe;KAC9B,CAAC,CAAC;IAEH,OAAO;QACL,WAAW,EAAE;YACX,GAAG,OAAO,CAAC,uBAAuB,EAAE;YACpC,GAAG,OAAO,CAAC,sBAAsB,EAAE;YACnC,GAAG,OAAO,CAAC,oBAAoB,EAAE;SAClC;QACD,OAAO;KACR,CAAC;AACJ,CAAC,CAAC"}