@neurana/sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +370 -0
  3. package/lib/client.d.ts +20 -0
  4. package/lib/client.d.ts.map +1 -0
  5. package/lib/client.js +69 -0
  6. package/lib/client.js.map +1 -0
  7. package/lib/constants/api.d.ts +50 -0
  8. package/lib/constants/api.d.ts.map +1 -0
  9. package/lib/constants/api.js +50 -0
  10. package/lib/constants/api.js.map +1 -0
  11. package/lib/constants/errors.d.ts +18 -0
  12. package/lib/constants/errors.d.ts.map +1 -0
  13. package/lib/constants/errors.js +33 -0
  14. package/lib/constants/errors.js.map +1 -0
  15. package/lib/constants/http.d.ts +47 -0
  16. package/lib/constants/http.d.ts.map +1 -0
  17. package/lib/constants/http.js +47 -0
  18. package/lib/constants/http.js.map +1 -0
  19. package/lib/constants/index.d.ts +5 -0
  20. package/lib/constants/index.d.ts.map +1 -0
  21. package/lib/constants/index.js +5 -0
  22. package/lib/constants/index.js.map +1 -0
  23. package/lib/constants/limits.d.ts +28 -0
  24. package/lib/constants/limits.d.ts.map +1 -0
  25. package/lib/constants/limits.js +28 -0
  26. package/lib/constants/limits.js.map +1 -0
  27. package/lib/errors.d.ts +40 -0
  28. package/lib/errors.d.ts.map +1 -0
  29. package/lib/errors.js +100 -0
  30. package/lib/errors.js.map +1 -0
  31. package/lib/http.d.ts +27 -0
  32. package/lib/http.d.ts.map +1 -0
  33. package/lib/http.js +177 -0
  34. package/lib/http.js.map +1 -0
  35. package/lib/index.d.ts +9 -0
  36. package/lib/index.d.ts.map +1 -0
  37. package/lib/index.js +7 -0
  38. package/lib/index.js.map +1 -0
  39. package/lib/logger.d.ts +29 -0
  40. package/lib/logger.d.ts.map +1 -0
  41. package/lib/logger.js +109 -0
  42. package/lib/logger.js.map +1 -0
  43. package/lib/resources/api-keys.d.ts +16 -0
  44. package/lib/resources/api-keys.d.ts.map +1 -0
  45. package/lib/resources/api-keys.js +73 -0
  46. package/lib/resources/api-keys.js.map +1 -0
  47. package/lib/resources/code.d.ts +13 -0
  48. package/lib/resources/code.d.ts.map +1 -0
  49. package/lib/resources/code.js +56 -0
  50. package/lib/resources/code.js.map +1 -0
  51. package/lib/resources/execution.d.ts +12 -0
  52. package/lib/resources/execution.d.ts.map +1 -0
  53. package/lib/resources/execution.js +63 -0
  54. package/lib/resources/execution.js.map +1 -0
  55. package/lib/resources/index.d.ts +6 -0
  56. package/lib/resources/index.d.ts.map +1 -0
  57. package/lib/resources/index.js +6 -0
  58. package/lib/resources/index.js.map +1 -0
  59. package/lib/resources/secrets.d.ts +12 -0
  60. package/lib/resources/secrets.d.ts.map +1 -0
  61. package/lib/resources/secrets.js +63 -0
  62. package/lib/resources/secrets.js.map +1 -0
  63. package/lib/resources/workflows.d.ts +19 -0
  64. package/lib/resources/workflows.d.ts.map +1 -0
  65. package/lib/resources/workflows.js +145 -0
  66. package/lib/resources/workflows.js.map +1 -0
  67. package/lib/types/api-keys.d.ts +81 -0
  68. package/lib/types/api-keys.d.ts.map +1 -0
  69. package/lib/types/api-keys.js +2 -0
  70. package/lib/types/api-keys.js.map +1 -0
  71. package/lib/types/code.d.ts +41 -0
  72. package/lib/types/code.d.ts.map +1 -0
  73. package/lib/types/code.js +2 -0
  74. package/lib/types/code.js.map +1 -0
  75. package/lib/types/common.d.ts +31 -0
  76. package/lib/types/common.d.ts.map +1 -0
  77. package/lib/types/common.js +2 -0
  78. package/lib/types/common.js.map +1 -0
  79. package/lib/types/execution.d.ts +35 -0
  80. package/lib/types/execution.d.ts.map +1 -0
  81. package/lib/types/execution.js +2 -0
  82. package/lib/types/execution.js.map +1 -0
  83. package/lib/types/index.d.ts +7 -0
  84. package/lib/types/index.d.ts.map +1 -0
  85. package/lib/types/index.js +2 -0
  86. package/lib/types/index.js.map +1 -0
  87. package/lib/types/secrets.d.ts +21 -0
  88. package/lib/types/secrets.d.ts.map +1 -0
  89. package/lib/types/secrets.js +2 -0
  90. package/lib/types/secrets.js.map +1 -0
  91. package/lib/types/workflows.d.ts +120 -0
  92. package/lib/types/workflows.d.ts.map +1 -0
  93. package/lib/types/workflows.js +2 -0
  94. package/lib/types/workflows.js.map +1 -0
  95. package/lib/utils/file-utils.d.ts +12 -0
  96. package/lib/utils/file-utils.d.ts.map +1 -0
  97. package/lib/utils/file-utils.js +138 -0
  98. package/lib/utils/file-utils.js.map +1 -0
  99. package/lib/utils/index.d.ts +2 -0
  100. package/lib/utils/index.d.ts.map +1 -0
  101. package/lib/utils/index.js +2 -0
  102. package/lib/utils/index.js.map +1 -0
  103. package/package.json +87 -0
@@ -0,0 +1,138 @@
1
+ import { ValidationError } from '../errors.js';
2
+ import { VALIDATION } from '../constants/index.js';
3
+ const MIME_TYPES = {
4
+ '.ts': 'text/typescript',
5
+ '.tsx': 'text/typescript',
6
+ '.js': 'application/javascript',
7
+ '.jsx': 'application/javascript',
8
+ '.json': 'application/json',
9
+ '.yaml': 'text/yaml',
10
+ '.yml': 'text/yaml',
11
+ '.py': 'text/x-python',
12
+ '.md': 'text/markdown',
13
+ '.html': 'text/html',
14
+ '.css': 'text/css',
15
+ '.txt': 'text/plain',
16
+ '.xml': 'application/xml',
17
+ '.csv': 'text/csv',
18
+ '.sql': 'application/sql',
19
+ '.graphql': 'application/graphql',
20
+ '.prisma': 'text/plain',
21
+ };
22
+ const LANGUAGE_MAP = {
23
+ '.ts': 'typescript',
24
+ '.tsx': 'typescript',
25
+ '.js': 'javascript',
26
+ '.jsx': 'javascript',
27
+ '.json': 'json',
28
+ '.yaml': 'yaml',
29
+ '.yml': 'yaml',
30
+ '.py': 'python',
31
+ '.md': 'markdown',
32
+ '.html': 'html',
33
+ '.css': 'css',
34
+ '.sql': 'sql',
35
+ '.graphql': 'graphql',
36
+ };
37
+ const SAFE_FILENAME_PATTERN = /^[a-zA-Z0-9][a-zA-Z0-9._-]*$/;
38
+ const SAFE_KEY_PATTERN = /^[a-zA-Z0-9][a-zA-Z0-9._/-]*$/;
39
+ const DANGEROUS_EXTENSIONS = new Set([
40
+ '.exe', '.bat', '.cmd', '.sh', '.ps1',
41
+ '.dll', '.so', '.dylib', '.bin',
42
+ '.msi', '.com', '.vbs', '.scr',
43
+ ]);
44
+ const MAX_KEY_LENGTH = 256;
45
+ const MAX_FILENAME_LENGTH = 255;
46
+ export function getFileExtension(fileName) {
47
+ const lastDot = fileName.lastIndexOf('.');
48
+ if (lastDot === -1 || lastDot === fileName.length - 1) {
49
+ return '';
50
+ }
51
+ return fileName.slice(lastDot).toLowerCase();
52
+ }
53
+ export function getMimeType(fileName) {
54
+ const ext = getFileExtension(fileName);
55
+ return MIME_TYPES[ext] ?? 'application/octet-stream';
56
+ }
57
+ export function getLanguage(fileName) {
58
+ const ext = getFileExtension(fileName);
59
+ return LANGUAGE_MAP[ext] ?? 'plaintext';
60
+ }
61
+ export function isAllowedExtension(fileName) {
62
+ const ext = getFileExtension(fileName);
63
+ return VALIDATION.ALLOWED_FILE_EXTENSIONS.includes(ext);
64
+ }
65
+ export function isDangerousExtension(fileName) {
66
+ const ext = getFileExtension(fileName);
67
+ return DANGEROUS_EXTENSIONS.has(ext);
68
+ }
69
+ export function validateFileName(fileName) {
70
+ if (!fileName || typeof fileName !== 'string') {
71
+ throw new ValidationError('fileName is required');
72
+ }
73
+ const trimmed = fileName.trim();
74
+ if (trimmed.length === 0) {
75
+ throw new ValidationError('fileName cannot be empty');
76
+ }
77
+ if (trimmed.length > MAX_FILENAME_LENGTH) {
78
+ throw new ValidationError(`fileName exceeds max length of ${MAX_FILENAME_LENGTH}`);
79
+ }
80
+ if (!SAFE_FILENAME_PATTERN.test(trimmed)) {
81
+ throw new ValidationError('fileName contains invalid characters');
82
+ }
83
+ if (trimmed.includes('..') || trimmed.includes('/') || trimmed.includes('\\')) {
84
+ throw new ValidationError('fileName contains path separators');
85
+ }
86
+ if (isDangerousExtension(trimmed)) {
87
+ throw new ValidationError('File type not allowed for security reasons');
88
+ }
89
+ return trimmed;
90
+ }
91
+ export function validateFileKey(key) {
92
+ if (!key || typeof key !== 'string') {
93
+ throw new ValidationError('key is required');
94
+ }
95
+ const trimmed = key.trim();
96
+ if (trimmed.length === 0) {
97
+ throw new ValidationError('key cannot be empty');
98
+ }
99
+ if (trimmed.length > MAX_KEY_LENGTH) {
100
+ throw new ValidationError(`key exceeds max length of ${MAX_KEY_LENGTH}`);
101
+ }
102
+ if (trimmed.includes('..')) {
103
+ throw new ValidationError('key contains path traversal');
104
+ }
105
+ if (!SAFE_KEY_PATTERN.test(trimmed)) {
106
+ throw new ValidationError('key contains invalid characters');
107
+ }
108
+ return trimmed;
109
+ }
110
+ export function validateFileSize(size, maxSize) {
111
+ if (size <= 0) {
112
+ throw new ValidationError('File content cannot be empty');
113
+ }
114
+ if (size > maxSize) {
115
+ const maxMB = (maxSize / (1024 * 1024)).toFixed(1);
116
+ throw new ValidationError(`File size exceeds maximum of ${maxMB}MB`);
117
+ }
118
+ }
119
+ export function getContentSize(content) {
120
+ if (typeof content === 'string') {
121
+ return Buffer.byteLength(content, 'utf-8');
122
+ }
123
+ return content.length;
124
+ }
125
+ export function encodeToBase64(content) {
126
+ if (typeof content === 'string') {
127
+ return Buffer.from(content, 'utf-8').toString('base64');
128
+ }
129
+ return Buffer.from(content).toString('base64');
130
+ }
131
+ export function formatFileSize(bytes) {
132
+ if (bytes < 1024)
133
+ return `${bytes} B`;
134
+ if (bytes < 1024 * 1024)
135
+ return `${(bytes / 1024).toFixed(1)} KB`;
136
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
137
+ }
138
+ //# sourceMappingURL=file-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../src/utils/file-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { getFileExtension, getMimeType, getLanguage, isAllowedExtension, isDangerousExtension, validateFileName, validateFileKey, validateFileSize, getContentSize, encodeToBase64, formatFileSize, } from './file-utils.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { getFileExtension, getMimeType, getLanguage, isAllowedExtension, isDangerousExtension, validateFileName, validateFileKey, validateFileSize, getContentSize, encodeToBase64, formatFileSize, } from './file-utils.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,87 @@
1
+ {
2
+ "name": "@neurana/sdk",
3
+ "version": "1.0.0",
4
+ "description": "Official Neurana SDK - AI Workflow Automation Platform",
5
+ "main": "./lib/index.js",
6
+ "types": "./lib/index.d.ts",
7
+ "type": "module",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./lib/index.d.ts",
11
+ "import": "./lib/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "lib",
16
+ "README.md",
17
+ "LICENSE"
18
+ ],
19
+ "engines": {
20
+ "node": ">=18.0.0"
21
+ },
22
+ "scripts": {
23
+ "build": "del-cli lib && tsc",
24
+ "test": "node --import tsx --test tests/unit/**/*.test.ts",
25
+ "test:watch": "node --import tsx --test --watch tests/unit/**/*.test.ts",
26
+ "test:integration": "RUN_INTEGRATION_TESTS=true node --import tsx --test tests/integration/**/*.test.ts",
27
+ "test:coverage": "c8 npm test",
28
+ "test:all": "npm test && npm run test:integration",
29
+ "lint": "eslint src tests",
30
+ "typecheck": "tsc --noEmit",
31
+ "prepublishOnly": "npm run lint && npm run typecheck && npm run build && npm test"
32
+ },
33
+ "keywords": [
34
+ "neurana",
35
+ "workflow",
36
+ "automation",
37
+ "ai",
38
+ "sdk",
39
+ "api",
40
+ "serverless",
41
+ "orchestration",
42
+ "step-functions",
43
+ "aws",
44
+ "lambda",
45
+ "typescript",
46
+ "javascript",
47
+ "nodejs",
48
+ "workflow-engine",
49
+ "workflow-automation",
50
+ "task-automation",
51
+ "process-automation",
52
+ "business-automation",
53
+ "etl",
54
+ "data-pipeline",
55
+ "webhooks",
56
+ "integrations",
57
+ "no-code",
58
+ "low-code",
59
+ "zapier-alternative",
60
+ "n8n-alternative",
61
+ "make-alternative"
62
+ ],
63
+ "author": "Neurana",
64
+ "license": "MIT",
65
+ "homepage": "https://neurana.io",
66
+ "bugs": {
67
+ "url": "https://github.com/neurana/sdk/issues"
68
+ },
69
+ "repository": {
70
+ "type": "git",
71
+ "url": "git+https://github.com/neurana/sdk.git"
72
+ },
73
+ "publishConfig": {
74
+ "access": "public",
75
+ "registry": "https://registry.npmjs.org/"
76
+ },
77
+ "devDependencies": {
78
+ "@eslint/js": "^9.39.2",
79
+ "@types/node": "^20.0.0",
80
+ "c8": "^9.0.0",
81
+ "del-cli": "^6.0.0",
82
+ "eslint": "^9.0.0",
83
+ "tsx": "^4.21.0",
84
+ "typescript": "^5.6.0",
85
+ "typescript-eslint": "^8.52.0"
86
+ }
87
+ }