init
This commit is contained in:
		
							
								
								
									
										68
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,68 @@
 | 
				
			|||||||
 | 
					node_modules
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# mac
 | 
				
			||||||
 | 
					.DS_Store
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.env*
 | 
				
			||||||
 | 
					!.env*example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dist
 | 
				
			||||||
 | 
					build
 | 
				
			||||||
 | 
					logs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.turbo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pack-dist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# astro
 | 
				
			||||||
 | 
					.astro
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# next
 | 
				
			||||||
 | 
					.next
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# nuxt
 | 
				
			||||||
 | 
					.nuxt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vercel
 | 
				
			||||||
 | 
					.vercel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vuepress
 | 
				
			||||||
 | 
					.vuepress/dist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# coverage
 | 
				
			||||||
 | 
					coverage/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# typescript
 | 
				
			||||||
 | 
					*.tsbuildinfo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# debug logs
 | 
				
			||||||
 | 
					*.log
 | 
				
			||||||
 | 
					*.tmp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vscode
 | 
				
			||||||
 | 
					.vscode/*
 | 
				
			||||||
 | 
					!.vscode/settings.json
 | 
				
			||||||
 | 
					!.vscode/tasks.json
 | 
				
			||||||
 | 
					!.vscode/launch.json
 | 
				
			||||||
 | 
					!.vscode/extensions.json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# idea
 | 
				
			||||||
 | 
					.idea
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# system
 | 
				
			||||||
 | 
					Thumbs.db
 | 
				
			||||||
 | 
					ehthumbs.db
 | 
				
			||||||
 | 
					Desktop.ini
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# temp files
 | 
				
			||||||
 | 
					*.tmp
 | 
				
			||||||
 | 
					*.temp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# local development
 | 
				
			||||||
 | 
					*.local
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public/r
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.pnpm-store
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					storage/
 | 
				
			||||||
							
								
								
									
										2
									
								
								.npmrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.npmrc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					//npm.xiongxiao.me/:_authToken=${ME_NPM_TOKEN}
 | 
				
			||||||
 | 
					//registry.npmjs.org/:_authToken=${NPM_TOKEN}
 | 
				
			||||||
							
								
								
									
										25
									
								
								bun.config.mjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								bun.config.mjs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					// @ts-check
 | 
				
			||||||
 | 
					import { resolvePath } from '@kevisual/use-config';
 | 
				
			||||||
 | 
					import { execSync } from 'node:child_process';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const entry = 'src/index.ts';
 | 
				
			||||||
 | 
					const naming = 'app';
 | 
				
			||||||
 | 
					const external = ['sequelize', 'pg', 'sqlite3', 'minio', '@kevisual/router', 'pm2'];
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @type {import('bun').BuildConfig}
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					await Bun.build({
 | 
				
			||||||
 | 
					  target: 'node',
 | 
				
			||||||
 | 
					  format: 'esm',
 | 
				
			||||||
 | 
					  entrypoints: [resolvePath(entry, { meta: import.meta })],
 | 
				
			||||||
 | 
					  outdir: resolvePath('./dist', { meta: import.meta }),
 | 
				
			||||||
 | 
					  naming: {
 | 
				
			||||||
 | 
					    entry: `${naming}.js`,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  external: external,
 | 
				
			||||||
 | 
					  env: 'KEVISUAL_*',
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// const cmd = `dts -i src/index.ts -o app.d.ts`;
 | 
				
			||||||
 | 
					const cmd = `dts -i ${entry} -o ${naming}.d.ts`;
 | 
				
			||||||
 | 
					execSync(cmd, { stdio: 'inherit' });
 | 
				
			||||||
							
								
								
									
										34
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "name": "@kevisual/noco",
 | 
				
			||||||
 | 
					  "version": "0.0.1",
 | 
				
			||||||
 | 
					  "description": "",
 | 
				
			||||||
 | 
					  "main": "index.js",
 | 
				
			||||||
 | 
					  "scripts": {
 | 
				
			||||||
 | 
					    "build": " bun bun.config.mjs"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "publishConfig": {
 | 
				
			||||||
 | 
					    "access": "public"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "files": [
 | 
				
			||||||
 | 
					    "dist",
 | 
				
			||||||
 | 
					    "src"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "keywords": [
 | 
				
			||||||
 | 
					    "nocodb",
 | 
				
			||||||
 | 
					    "api",
 | 
				
			||||||
 | 
					    "sdk"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "author": "abearxiong <xiongxiao@xiongxiao.me> (https://www.xiongxiao.me)",
 | 
				
			||||||
 | 
					  "license": "MIT",
 | 
				
			||||||
 | 
					  "packageManager": "pnpm@10.14.0",
 | 
				
			||||||
 | 
					  "type": "module",
 | 
				
			||||||
 | 
					  "devDependencies": {
 | 
				
			||||||
 | 
					    "@kevisual/types": "^0.0.10",
 | 
				
			||||||
 | 
					    "@kevisual/use-config": "^1.0.19",
 | 
				
			||||||
 | 
					    "@types/node": "^24.2.1",
 | 
				
			||||||
 | 
					    "nocodb-sdk": "^0.264.4"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "exports": {
 | 
				
			||||||
 | 
					    ".": "./dist/app.js"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										338
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										338
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,338 @@
 | 
				
			|||||||
 | 
					lockfileVersion: '9.0'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					settings:
 | 
				
			||||||
 | 
					  autoInstallPeers: true
 | 
				
			||||||
 | 
					  excludeLinksFromLockfile: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					importers:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .:
 | 
				
			||||||
 | 
					    devDependencies:
 | 
				
			||||||
 | 
					      '@kevisual/types':
 | 
				
			||||||
 | 
					        specifier: ^0.0.10
 | 
				
			||||||
 | 
					        version: 0.0.10
 | 
				
			||||||
 | 
					      '@kevisual/use-config':
 | 
				
			||||||
 | 
					        specifier: ^1.0.19
 | 
				
			||||||
 | 
					        version: 1.0.19(dotenv@16.6.1)
 | 
				
			||||||
 | 
					      '@types/node':
 | 
				
			||||||
 | 
					        specifier: ^24.2.1
 | 
				
			||||||
 | 
					        version: 24.2.1
 | 
				
			||||||
 | 
					      nocodb-sdk:
 | 
				
			||||||
 | 
					        specifier: ^0.264.4
 | 
				
			||||||
 | 
					        version: 0.264.4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					packages:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@chevrotain/cst-dts-gen@10.5.0':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-lhmC/FyqQ2o7pGK4Om+hzuDrm9rhFYIJ/AXoQBeongmn870Xeb0L6oGEiuR8nohFNL5sMaQEJWCxr1oIVIVXrw==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@chevrotain/gast@10.5.0':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-pXdMJ9XeDAbgOWKuD1Fldz4ieCs6+nLNmyVhe2gZVqoO7v8HXuHYs5OV2EzUtbuai37TlOAQHrTDvxMnvMJz3A==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@chevrotain/types@10.5.0':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-f1MAia0x/pAVPWH/T73BJVyO2XU5tI4/iE7cnxb7tqdNTNhQI3Uq3XkqcoteTmD4t1aM0LbHCJOhgIDn07kl2A==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@chevrotain/utils@10.5.0':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-hBzuU5+JjB2cqNZyszkDHZgOSrUUT8V3dhgRl8Q9Gp6dAj/H5+KILGjbhDpc3Iy9qmqlm/akuOI2ut9VUtzJxQ==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@kevisual/load@0.0.6':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-+3YTFehRcZ1haGel5DKYMUwmi5i6f2psyaPZlfkKU/cOXgkpwoG9/BEqPCnPjicKqqnksEpixVRkyHJ+5bjLVA==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@kevisual/types@0.0.10':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-Q73uzzjk9UidumnmCvOpgzqDDvQxsblz22bIFuoiioUFJWwaparx8bpd8ArRyFojicYL1YJoFDzDZ9j9NN8grA==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@kevisual/use-config@1.0.19':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-Q1IH4eMqUe5w6Bq8etoqOSls9FPIy0xwwD3wHf26EsQLZadhccI9qkDuFzP/rFWDa57mwFPEfwbGE5UlqWOCkw==}
 | 
				
			||||||
 | 
					    peerDependencies:
 | 
				
			||||||
 | 
					      dotenv: ^16.4.7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@types/node@24.2.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-DRh5K+ka5eJic8CjH7td8QpYEV6Zo10gfRkjHCO3weqZHWDtAaSTFtl4+VMqOJ4N5jcuhZ9/l+yy8rVgw7BQeQ==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  asynckit@0.4.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  axios@1.11.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  call-bind-apply-helpers@1.0.2:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 0.4'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  chevrotain@10.5.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-Pkv5rBY3+CsHOYfV5g/Vs5JY9WTHHDEKOlohI2XeygaZhUeqhAlldZ8Hz9cRmxu709bvS08YzxHdTPHhffc13A==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  combined-stream@1.0.8:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 0.8'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dayjs@1.11.13:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  delayed-stream@1.0.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
 | 
				
			||||||
 | 
					    engines: {node: '>=0.4.0'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dotenv@16.6.1:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==}
 | 
				
			||||||
 | 
					    engines: {node: '>=12'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dunder-proto@1.0.1:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 0.4'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  es-define-property@1.0.1:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 0.4'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  es-errors@1.3.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 0.4'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  es-object-atoms@1.1.1:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 0.4'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  es-set-tostringtag@2.1.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 0.4'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  eventemitter3@5.0.1:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  follow-redirects@1.15.11:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==}
 | 
				
			||||||
 | 
					    engines: {node: '>=4.0'}
 | 
				
			||||||
 | 
					    peerDependencies:
 | 
				
			||||||
 | 
					      debug: '*'
 | 
				
			||||||
 | 
					    peerDependenciesMeta:
 | 
				
			||||||
 | 
					      debug:
 | 
				
			||||||
 | 
					        optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  form-data@4.0.4:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 6'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  function-bind@1.1.2:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  get-intrinsic@1.3.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 0.4'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  get-proto@1.0.1:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 0.4'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gopd@1.2.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 0.4'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  has-symbols@1.1.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 0.4'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  has-tostringtag@1.0.2:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 0.4'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  hasown@2.0.2:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 0.4'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  jsep@1.4.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 10.16.0'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  lodash@4.17.21:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  math-intrinsics@1.1.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 0.4'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  mime-db@1.52.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 0.6'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  mime-types@2.1.35:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 0.6'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  nocodb-sdk@0.264.4:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-t5DI7FNO1LiMqFXI82GbZefMgjhd+0FL8yjF7QW0n4fPoL24W2+8pJ2mVfhJRnvmZ5wQuLCXMlcdqFcgbpuw7g==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  proxy-from-env@1.1.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  regexp-to-ast@0.5.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  undici-types@7.10.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  validator@13.15.15:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-BgWVbCI72aIQy937xbawcs+hrVaN/CZ2UwutgaJ36hGqRrLNM+f5LUT/YPRbo8IV/ASeFzXszezV+y2+rq3l8A==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 0.10'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snapshots:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@chevrotain/cst-dts-gen@10.5.0':
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      '@chevrotain/gast': 10.5.0
 | 
				
			||||||
 | 
					      '@chevrotain/types': 10.5.0
 | 
				
			||||||
 | 
					      lodash: 4.17.21
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@chevrotain/gast@10.5.0':
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      '@chevrotain/types': 10.5.0
 | 
				
			||||||
 | 
					      lodash: 4.17.21
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@chevrotain/types@10.5.0': {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@chevrotain/utils@10.5.0': {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@kevisual/load@0.0.6':
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      eventemitter3: 5.0.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@kevisual/types@0.0.10': {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@kevisual/use-config@1.0.19(dotenv@16.6.1)':
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      '@kevisual/load': 0.0.6
 | 
				
			||||||
 | 
					      dotenv: 16.6.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@types/node@24.2.1':
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      undici-types: 7.10.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  asynckit@0.4.0: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  axios@1.11.0:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      follow-redirects: 1.15.11
 | 
				
			||||||
 | 
					      form-data: 4.0.4
 | 
				
			||||||
 | 
					      proxy-from-env: 1.1.0
 | 
				
			||||||
 | 
					    transitivePeerDependencies:
 | 
				
			||||||
 | 
					      - debug
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  call-bind-apply-helpers@1.0.2:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      es-errors: 1.3.0
 | 
				
			||||||
 | 
					      function-bind: 1.1.2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  chevrotain@10.5.0:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      '@chevrotain/cst-dts-gen': 10.5.0
 | 
				
			||||||
 | 
					      '@chevrotain/gast': 10.5.0
 | 
				
			||||||
 | 
					      '@chevrotain/types': 10.5.0
 | 
				
			||||||
 | 
					      '@chevrotain/utils': 10.5.0
 | 
				
			||||||
 | 
					      lodash: 4.17.21
 | 
				
			||||||
 | 
					      regexp-to-ast: 0.5.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  combined-stream@1.0.8:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      delayed-stream: 1.0.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dayjs@1.11.13: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  delayed-stream@1.0.0: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dotenv@16.6.1: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dunder-proto@1.0.1:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      call-bind-apply-helpers: 1.0.2
 | 
				
			||||||
 | 
					      es-errors: 1.3.0
 | 
				
			||||||
 | 
					      gopd: 1.2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  es-define-property@1.0.1: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  es-errors@1.3.0: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  es-object-atoms@1.1.1:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      es-errors: 1.3.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  es-set-tostringtag@2.1.0:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      es-errors: 1.3.0
 | 
				
			||||||
 | 
					      get-intrinsic: 1.3.0
 | 
				
			||||||
 | 
					      has-tostringtag: 1.0.2
 | 
				
			||||||
 | 
					      hasown: 2.0.2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  eventemitter3@5.0.1: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  follow-redirects@1.15.11: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  form-data@4.0.4:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      asynckit: 0.4.0
 | 
				
			||||||
 | 
					      combined-stream: 1.0.8
 | 
				
			||||||
 | 
					      es-set-tostringtag: 2.1.0
 | 
				
			||||||
 | 
					      hasown: 2.0.2
 | 
				
			||||||
 | 
					      mime-types: 2.1.35
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  function-bind@1.1.2: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  get-intrinsic@1.3.0:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      call-bind-apply-helpers: 1.0.2
 | 
				
			||||||
 | 
					      es-define-property: 1.0.1
 | 
				
			||||||
 | 
					      es-errors: 1.3.0
 | 
				
			||||||
 | 
					      es-object-atoms: 1.1.1
 | 
				
			||||||
 | 
					      function-bind: 1.1.2
 | 
				
			||||||
 | 
					      get-proto: 1.0.1
 | 
				
			||||||
 | 
					      gopd: 1.2.0
 | 
				
			||||||
 | 
					      has-symbols: 1.1.0
 | 
				
			||||||
 | 
					      hasown: 2.0.2
 | 
				
			||||||
 | 
					      math-intrinsics: 1.1.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  get-proto@1.0.1:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      dunder-proto: 1.0.1
 | 
				
			||||||
 | 
					      es-object-atoms: 1.1.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gopd@1.2.0: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  has-symbols@1.1.0: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  has-tostringtag@1.0.2:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      has-symbols: 1.1.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  hasown@2.0.2:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      function-bind: 1.1.2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  jsep@1.4.0: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  lodash@4.17.21: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  math-intrinsics@1.1.0: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  mime-db@1.52.0: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  mime-types@2.1.35:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      mime-db: 1.52.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  nocodb-sdk@0.264.4:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      axios: 1.11.0
 | 
				
			||||||
 | 
					      chevrotain: 10.5.0
 | 
				
			||||||
 | 
					      dayjs: 1.11.13
 | 
				
			||||||
 | 
					      jsep: 1.4.0
 | 
				
			||||||
 | 
					      validator: 13.15.15
 | 
				
			||||||
 | 
					    transitivePeerDependencies:
 | 
				
			||||||
 | 
					      - debug
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  proxy-from-env@1.1.0: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  regexp-to-ast@0.5.0: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  undici-types@7.10.0: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  validator@13.15.15: {}
 | 
				
			||||||
							
								
								
									
										46
									
								
								src/api.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								src/api.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
				
			|||||||
 | 
					type HeadersInit = {
 | 
				
			||||||
 | 
					  'xc-token': string;
 | 
				
			||||||
 | 
					  [key: string]: string;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					type FetchOptions = {
 | 
				
			||||||
 | 
					  method?: string;
 | 
				
			||||||
 | 
					  headers?: HeadersInit;
 | 
				
			||||||
 | 
					  body?: string;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type MakeRequestOptions = {
 | 
				
			||||||
 | 
					  params?: Record<string, any>;
 | 
				
			||||||
 | 
					  data?: Record<string, any>;
 | 
				
			||||||
 | 
					  method?: 'GET' | 'POST';
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					export class Query {
 | 
				
			||||||
 | 
					  baseUrl: string;
 | 
				
			||||||
 | 
					  token: string;
 | 
				
			||||||
 | 
					  constructor({ baseUrl, token }: { baseUrl: string; token: string }) {
 | 
				
			||||||
 | 
					    this.baseUrl = baseUrl;
 | 
				
			||||||
 | 
					    this.token = token;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  makeRequest(endpoint: string, options: MakeRequestOptions) {
 | 
				
			||||||
 | 
					    const url = new URL(endpoint, this.baseUrl);
 | 
				
			||||||
 | 
					    if (options.params) {
 | 
				
			||||||
 | 
					      Object.entries(options.params).forEach(([key, value]) => {
 | 
				
			||||||
 | 
					        url.searchParams.append(key, String(value));
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    const method = options.method || 'GET';
 | 
				
			||||||
 | 
					    const headers: HeadersInit = {
 | 
				
			||||||
 | 
					      'xc-token': `${this.token}`,
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    if (method === 'POST') {
 | 
				
			||||||
 | 
					      headers['Content-Type'] = 'application/json';
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    const fetchOptions: FetchOptions = {
 | 
				
			||||||
 | 
					      method,
 | 
				
			||||||
 | 
					      headers,
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    if (method === 'POST' && options.data) {
 | 
				
			||||||
 | 
					      fetchOptions.body = JSON.stringify(options.data);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return fetch(url, fetchOptions);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										17
									
								
								src/base.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/base.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					import { Query } from './api.ts';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type NocoApiOptions = {
 | 
				
			||||||
 | 
					  table?: string;
 | 
				
			||||||
 | 
					  token?: string;
 | 
				
			||||||
 | 
					  baseUrl?: string;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					export class NocoApi {
 | 
				
			||||||
 | 
					  table?: string;
 | 
				
			||||||
 | 
					  query?: Query;
 | 
				
			||||||
 | 
					  constructor(options?: NocoApiOptions) {
 | 
				
			||||||
 | 
					    this.table = options.table;
 | 
				
			||||||
 | 
					    const token = options.token;
 | 
				
			||||||
 | 
					    const baseUrl = options.baseUrl;
 | 
				
			||||||
 | 
					    this.query = new Query({ baseUrl, token });
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										1
									
								
								src/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/index.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					export * from './base.ts';
 | 
				
			||||||
							
								
								
									
										18
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "extends": "@kevisual/types/json/backend.json",
 | 
				
			||||||
 | 
					  "compilerOptions": {
 | 
				
			||||||
 | 
					    "baseUrl": ".",
 | 
				
			||||||
 | 
					    "typeRoots": [
 | 
				
			||||||
 | 
					      "./node_modules/@types",
 | 
				
			||||||
 | 
					      "./node_modules/@kevisual/types/index.d.ts"
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    "paths": {
 | 
				
			||||||
 | 
					      "@/*": [
 | 
				
			||||||
 | 
					        "src/*"
 | 
				
			||||||
 | 
					      ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "include": [
 | 
				
			||||||
 | 
					    "src/**/*",
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user