feat: add initial Slidev presentation and demo components
- Created Slidev presentation structure with index.md and contents.md. - Implemented footer and menu components for navigation. - Added Markdown preview component with syntax highlighting. - Developed HTML template for consistent page structure. - Introduced button component with variant support. - Added Vue counter component for interactive demos. - Configured content collections for documentation. - Created multiple markdown documents for demo purposes. - Established global and theme styles for consistent UI. - Set up TypeScript configuration for better development experience.
This commit is contained in:
11
services/.env
Normal file
11
services/.env
Normal file
@@ -0,0 +1,11 @@
|
||||
# NOCODB_TOKEN='ggmZjn1jHTs14bwRCJNcVOIj4oCBXCkroKb1nSwp'
|
||||
# NOCODB_URL='https://nocodb.kevisual.cn'
|
||||
# NOCODB_BASEID=p9fndhkvs0tik4m
|
||||
|
||||
NOCODB_TOKEN=te2kvpPwgaXyCrEtAa8beBC3llZyatqYJC7Hqsvt
|
||||
NOCODB_URL=https://nocodb.xiongxiao.me
|
||||
NOCODB_BASEID=pboaftz5dp8s4h7
|
||||
|
||||
# NOCODB_TOKEN=te2kvpPwgaXyCrEtAa8beBC3llZyatqYJC7Hqsvt
|
||||
# NOCODB_URL=http://localhost:8080
|
||||
# NOCODB_BASEID=pboaftz5dp8s4h7
|
||||
1
services/.gitignore
vendored
Normal file
1
services/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
node_modules
|
||||
22
services/package.json
Normal file
22
services/package.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"name": "services",
|
||||
"version": "0.0.1",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "abearxiong <xiongxiao@xiongxiao.me> (https://www.xiongxiao.me)",
|
||||
"license": "MIT",
|
||||
"packageManager": "pnpm@10.25.0",
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@kevisual/app": "^0.0.1",
|
||||
"@kevisual/context": "^0.0.4",
|
||||
"@kevisual/noco": "^0.0.8",
|
||||
"@kevisual/noco-auto": "^0.0.2",
|
||||
"@kevisual/use-config": "^1.0.21",
|
||||
"dayjs": "^1.11.19"
|
||||
}
|
||||
}
|
||||
538
services/pnpm-lock.yaml
generated
Normal file
538
services/pnpm-lock.yaml
generated
Normal file
@@ -0,0 +1,538 @@
|
||||
lockfileVersion: '9.0'
|
||||
|
||||
settings:
|
||||
autoInstallPeers: true
|
||||
excludeLinksFromLockfile: false
|
||||
|
||||
importers:
|
||||
|
||||
.:
|
||||
dependencies:
|
||||
'@kevisual/app':
|
||||
specifier: ^0.0.1
|
||||
version: 0.0.1(dotenv@17.2.3)
|
||||
'@kevisual/context':
|
||||
specifier: ^0.0.4
|
||||
version: 0.0.4
|
||||
'@kevisual/noco':
|
||||
specifier: ^0.0.8
|
||||
version: 0.0.8
|
||||
'@kevisual/noco-auto':
|
||||
specifier: ^0.0.2
|
||||
version: 0.0.2(dotenv@17.2.3)
|
||||
'@kevisual/use-config':
|
||||
specifier: ^1.0.21
|
||||
version: 1.0.21(dotenv@17.2.3)
|
||||
dayjs:
|
||||
specifier: ^1.11.19
|
||||
version: 1.11.19
|
||||
|
||||
packages:
|
||||
|
||||
'@kevisual/ai@0.0.19':
|
||||
resolution: {integrity: sha512-AFc8m6OcHZNxCb88bvzhvwWTZ4EVYyPupBzPUsLKLpdNBvsqm9TRboKCM2brJj2cqHnm+H+RbAk9AcGJkYhRCA==}
|
||||
|
||||
'@kevisual/app@0.0.1':
|
||||
resolution: {integrity: sha512-PEx8P3l0iNSqrz9Ib9kVCYfqNMX6/LfNu+cEafmY6ECP1cV5Vmv+TH2fuasMosKjtbH2fAdDi97sbd29tdEK+g==}
|
||||
|
||||
'@kevisual/context@0.0.4':
|
||||
resolution: {integrity: sha512-HJeLeZQLU+7tCluSfOyvkgKLs0HjCZrdJlZgEgKRSa8XTwZfMAUt6J7qZTbrZAHBlPtX68EPu/PI8JMCeu3WAQ==}
|
||||
|
||||
'@kevisual/load@0.0.6':
|
||||
resolution: {integrity: sha512-+3YTFehRcZ1haGel5DKYMUwmi5i6f2psyaPZlfkKU/cOXgkpwoG9/BEqPCnPjicKqqnksEpixVRkyHJ+5bjLVA==}
|
||||
|
||||
'@kevisual/logger@0.0.4':
|
||||
resolution: {integrity: sha512-+fpr92eokSxoGOW1SIRl/27lPuO+zyY+feR5o2Q4YCNlAdt2x64NwC/w8r/3NEC5QenLgd4K0azyKTI2mHbARw==}
|
||||
|
||||
'@kevisual/noco-auto@0.0.2':
|
||||
resolution: {integrity: sha512-LgrtCzp0OVJid6JgPoFFYpf92JJLpN8Xqc8uPzyBQ4XJwl7uY8qrbboADV3/xElo8CSKg2Z10Dnsw1DQWpT89A==}
|
||||
|
||||
'@kevisual/noco@0.0.8':
|
||||
resolution: {integrity: sha512-N8v2b9R1NAtdmcP+LB+bHJEi/KQlbzPzva7RLEP3TfFStKADIXHdZdIHsatH3BQRBgRd0cuhS+rcq7CF66QFJA==}
|
||||
|
||||
'@kevisual/permission@0.0.3':
|
||||
resolution: {integrity: sha512-8JsA/5O5Ax/z+M+MYpFYdlioHE6jNmWMuFSokBWYs9CCAHNiSKMR01YLkoVDoPvncfH/Y8F5K/IEXRCbptuMNA==}
|
||||
|
||||
'@kevisual/query@0.0.29':
|
||||
resolution: {integrity: sha512-rQZk0J073UuC1QGzuyq+pb4Y0hu8/Qx/xYHs9NbsmslM+RuMnd1zpXmvhXNj7Kn1MdYTH90ng2MlFLBkkQFaIg==}
|
||||
|
||||
'@kevisual/query@0.0.31':
|
||||
resolution: {integrity: sha512-bBdepjmMICLpcj/a9fnn82/0CGGYUZiCV+usWsJZKAwVlZcnj+WtKmbgKT09KpP6g3jjYzYOaXHiNFB8N0bQAQ==}
|
||||
|
||||
'@kevisual/router@0.0.33':
|
||||
resolution: {integrity: sha512-9z7TkSzCIGbXn9SuHPBdZpGwHlAuwA8iN5jNAZBUvbEvBRkBxlrbdCSe9fBYiAHueLm2AceFNrW74uulOiAkqA==}
|
||||
|
||||
'@kevisual/router@0.0.36':
|
||||
resolution: {integrity: sha512-o7GAb5T0WwRuHnWe3KB0/SPVaNHrnsFSNAQ9XuWokobfDP1ACFvOR9/rjbC0fbGFaeTeRKAprixxKkY1sfunBw==}
|
||||
|
||||
'@kevisual/use-config@1.0.21':
|
||||
resolution: {integrity: sha512-czgy4+tBDBJI6QTnKh2PCwswET6ZpZ4ZqBE/SPkkOivEtlrcPzLs5elwMLZ3goD1XMD4VB3yjumb5WuW/8H8MA==}
|
||||
peerDependencies:
|
||||
dotenv: ^17
|
||||
|
||||
'@noble/hashes@1.4.0':
|
||||
resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
|
||||
engines: {node: '>= 16'}
|
||||
|
||||
'@peculiar/asn1-cms@2.6.0':
|
||||
resolution: {integrity: sha512-2uZqP+ggSncESeUF/9Su8rWqGclEfEiz1SyU02WX5fUONFfkjzS2Z/F1Li0ofSmf4JqYXIOdCAZqIXAIBAT1OA==}
|
||||
|
||||
'@peculiar/asn1-csr@2.6.0':
|
||||
resolution: {integrity: sha512-BeWIu5VpTIhfRysfEp73SGbwjjoLL/JWXhJ/9mo4vXnz3tRGm+NGm3KNcRzQ9VMVqwYS2RHlolz21svzRXIHPQ==}
|
||||
|
||||
'@peculiar/asn1-ecc@2.6.0':
|
||||
resolution: {integrity: sha512-FF3LMGq6SfAOwUG2sKpPXblibn6XnEIKa+SryvUl5Pik+WR9rmRA3OCiwz8R3lVXnYnyRkSZsSLdml8H3UiOcw==}
|
||||
|
||||
'@peculiar/asn1-pfx@2.6.0':
|
||||
resolution: {integrity: sha512-rtUvtf+tyKGgokHHmZzeUojRZJYPxoD/jaN1+VAB4kKR7tXrnDCA/RAWXAIhMJJC+7W27IIRGe9djvxKgsldCQ==}
|
||||
|
||||
'@peculiar/asn1-pkcs8@2.6.0':
|
||||
resolution: {integrity: sha512-KyQ4D8G/NrS7Fw3XCJrngxmjwO/3htnA0lL9gDICvEQ+GJ+EPFqldcJQTwPIdvx98Tua+WjkdKHSC0/Km7T+lA==}
|
||||
|
||||
'@peculiar/asn1-pkcs9@2.6.0':
|
||||
resolution: {integrity: sha512-b78OQ6OciW0aqZxdzliXGYHASeCvvw5caqidbpQRYW2mBtXIX2WhofNXTEe7NyxTb0P6J62kAAWLwn0HuMF1Fw==}
|
||||
|
||||
'@peculiar/asn1-rsa@2.6.0':
|
||||
resolution: {integrity: sha512-Nu4C19tsrTsCp9fDrH+sdcOKoVfdfoQQ7S3VqjJU6vedR7tY3RLkQ5oguOIB3zFW33USDUuYZnPEQYySlgha4w==}
|
||||
|
||||
'@peculiar/asn1-schema@2.6.0':
|
||||
resolution: {integrity: sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==}
|
||||
|
||||
'@peculiar/asn1-x509-attr@2.6.0':
|
||||
resolution: {integrity: sha512-MuIAXFX3/dc8gmoZBkwJWxUWOSvG4MMDntXhrOZpJVMkYX+MYc/rUAU2uJOved9iJEoiUx7//3D8oG83a78UJA==}
|
||||
|
||||
'@peculiar/asn1-x509@2.6.0':
|
||||
resolution: {integrity: sha512-uzYbPEpoQiBoTq0/+jZtpM6Gq6zADBx+JNFP3yqRgziWBxQ/Dt/HcuvRfm9zJTPdRcBqPNdaRHTVwpyiq6iNMA==}
|
||||
|
||||
'@peculiar/x509@1.14.2':
|
||||
resolution: {integrity: sha512-r2w1Hg6pODDs0zfAKHkSS5HLkOLSeburtcgwvlLLWWCixw+MmW3U6kD5ddyvc2Y2YdbGuVwCF2S2ASoU1cFAag==}
|
||||
engines: {node: '>=22.0.0'}
|
||||
|
||||
asn1js@3.0.7:
|
||||
resolution: {integrity: sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
|
||||
bytestreamjs@2.0.1:
|
||||
resolution: {integrity: sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
|
||||
dayjs@1.11.19:
|
||||
resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==}
|
||||
|
||||
debug@4.4.3:
|
||||
resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
|
||||
engines: {node: '>=6.0'}
|
||||
peerDependencies:
|
||||
supports-color: '*'
|
||||
peerDependenciesMeta:
|
||||
supports-color:
|
||||
optional: true
|
||||
|
||||
depd@2.0.0:
|
||||
resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
dotenv@17.2.3:
|
||||
resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
ee-first@1.1.1:
|
||||
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
|
||||
|
||||
encodeurl@2.0.0:
|
||||
resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
escape-html@1.0.3:
|
||||
resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
|
||||
|
||||
etag@1.8.1:
|
||||
resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
eventemitter3@5.0.1:
|
||||
resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
|
||||
|
||||
fresh@2.0.0:
|
||||
resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
http-errors@2.0.1:
|
||||
resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
inherits@2.0.4:
|
||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||
|
||||
mime-db@1.54.0:
|
||||
resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
mime-types@3.0.2:
|
||||
resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
mitt@3.0.1:
|
||||
resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
|
||||
|
||||
ms@2.1.3:
|
||||
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
||||
|
||||
node-forge@1.3.3:
|
||||
resolution: {integrity: sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==}
|
||||
engines: {node: '>= 6.13.0'}
|
||||
|
||||
on-finished@2.4.1:
|
||||
resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
openai@5.23.2:
|
||||
resolution: {integrity: sha512-MQBzmTulj+MM5O8SKEk/gL8a7s5mktS9zUtAkU257WjvobGc9nKcBuVwjyEEcb9SI8a8Y2G/mzn3vm9n1Jlleg==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
ws: ^8.18.0
|
||||
zod: ^3.23.8
|
||||
peerDependenciesMeta:
|
||||
ws:
|
||||
optional: true
|
||||
zod:
|
||||
optional: true
|
||||
|
||||
path-to-regexp@8.3.0:
|
||||
resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==}
|
||||
|
||||
pkijs@3.3.3:
|
||||
resolution: {integrity: sha512-+KD8hJtqQMYoTuL1bbGOqxb4z+nZkTAwVdNtWwe8Tc2xNbEmdJYIYoc6Qt0uF55e6YW6KuTHw1DjQ18gMhzepw==}
|
||||
engines: {node: '>=16.0.0'}
|
||||
|
||||
pvtsutils@1.3.6:
|
||||
resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==}
|
||||
|
||||
pvutils@1.1.5:
|
||||
resolution: {integrity: sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==}
|
||||
engines: {node: '>=16.0.0'}
|
||||
|
||||
range-parser@1.2.1:
|
||||
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
reflect-metadata@0.2.2:
|
||||
resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==}
|
||||
|
||||
selfsigned@4.0.1:
|
||||
resolution: {integrity: sha512-QVGzJryYPB7ctpYxoK4DDvH4kFf23wtBl0s6km/wN+JCWLqjutdyWaiXHwSg3B3ftDOFfu0B7FWRVNH0xNn6rw==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
selfsigned@5.2.0:
|
||||
resolution: {integrity: sha512-QKF6fsJgdKn5Cy1SekTuwUQ6LOLUdnO4gVne1+TGSAyL/CD1aznNCmBna+bQB9xyon7DiYbDtTR1cLaxDXuaVA==}
|
||||
engines: {node: '>=15.6.0'}
|
||||
|
||||
send@1.2.0:
|
||||
resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
setprototypeof@1.2.0:
|
||||
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
|
||||
|
||||
statuses@2.0.2:
|
||||
resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
toidentifier@1.0.1:
|
||||
resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
|
||||
engines: {node: '>=0.6'}
|
||||
|
||||
tslib@1.14.1:
|
||||
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
|
||||
|
||||
tslib@2.8.1:
|
||||
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
|
||||
|
||||
tsyringe@4.10.0:
|
||||
resolution: {integrity: sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==}
|
||||
engines: {node: '>= 6.0.0'}
|
||||
|
||||
snapshots:
|
||||
|
||||
'@kevisual/ai@0.0.19':
|
||||
dependencies:
|
||||
'@kevisual/logger': 0.0.4
|
||||
'@kevisual/permission': 0.0.3
|
||||
'@kevisual/query': 0.0.31
|
||||
|
||||
'@kevisual/app@0.0.1(dotenv@17.2.3)':
|
||||
dependencies:
|
||||
'@kevisual/ai': 0.0.19
|
||||
'@kevisual/context': 0.0.4
|
||||
'@kevisual/query': 0.0.31
|
||||
'@kevisual/router': 0.0.36
|
||||
'@kevisual/use-config': 1.0.21(dotenv@17.2.3)
|
||||
mitt: 3.0.1
|
||||
transitivePeerDependencies:
|
||||
- dotenv
|
||||
- supports-color
|
||||
|
||||
'@kevisual/context@0.0.4': {}
|
||||
|
||||
'@kevisual/load@0.0.6':
|
||||
dependencies:
|
||||
eventemitter3: 5.0.1
|
||||
|
||||
'@kevisual/logger@0.0.4': {}
|
||||
|
||||
'@kevisual/noco-auto@0.0.2(dotenv@17.2.3)':
|
||||
dependencies:
|
||||
'@kevisual/context': 0.0.4
|
||||
'@kevisual/noco': 0.0.8
|
||||
'@kevisual/query': 0.0.29
|
||||
'@kevisual/router': 0.0.33
|
||||
'@kevisual/use-config': 1.0.21(dotenv@17.2.3)
|
||||
transitivePeerDependencies:
|
||||
- dotenv
|
||||
- supports-color
|
||||
- ws
|
||||
- zod
|
||||
|
||||
'@kevisual/noco@0.0.8': {}
|
||||
|
||||
'@kevisual/permission@0.0.3': {}
|
||||
|
||||
'@kevisual/query@0.0.29':
|
||||
dependencies:
|
||||
openai: 5.23.2
|
||||
transitivePeerDependencies:
|
||||
- ws
|
||||
- zod
|
||||
|
||||
'@kevisual/query@0.0.31': {}
|
||||
|
||||
'@kevisual/router@0.0.33':
|
||||
dependencies:
|
||||
path-to-regexp: 8.3.0
|
||||
selfsigned: 4.0.1
|
||||
send: 1.2.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@kevisual/router@0.0.36':
|
||||
dependencies:
|
||||
path-to-regexp: 8.3.0
|
||||
selfsigned: 5.2.0
|
||||
send: 1.2.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@kevisual/use-config@1.0.21(dotenv@17.2.3)':
|
||||
dependencies:
|
||||
'@kevisual/load': 0.0.6
|
||||
dotenv: 17.2.3
|
||||
|
||||
'@noble/hashes@1.4.0': {}
|
||||
|
||||
'@peculiar/asn1-cms@2.6.0':
|
||||
dependencies:
|
||||
'@peculiar/asn1-schema': 2.6.0
|
||||
'@peculiar/asn1-x509': 2.6.0
|
||||
'@peculiar/asn1-x509-attr': 2.6.0
|
||||
asn1js: 3.0.7
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/asn1-csr@2.6.0':
|
||||
dependencies:
|
||||
'@peculiar/asn1-schema': 2.6.0
|
||||
'@peculiar/asn1-x509': 2.6.0
|
||||
asn1js: 3.0.7
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/asn1-ecc@2.6.0':
|
||||
dependencies:
|
||||
'@peculiar/asn1-schema': 2.6.0
|
||||
'@peculiar/asn1-x509': 2.6.0
|
||||
asn1js: 3.0.7
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/asn1-pfx@2.6.0':
|
||||
dependencies:
|
||||
'@peculiar/asn1-cms': 2.6.0
|
||||
'@peculiar/asn1-pkcs8': 2.6.0
|
||||
'@peculiar/asn1-rsa': 2.6.0
|
||||
'@peculiar/asn1-schema': 2.6.0
|
||||
asn1js: 3.0.7
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/asn1-pkcs8@2.6.0':
|
||||
dependencies:
|
||||
'@peculiar/asn1-schema': 2.6.0
|
||||
'@peculiar/asn1-x509': 2.6.0
|
||||
asn1js: 3.0.7
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/asn1-pkcs9@2.6.0':
|
||||
dependencies:
|
||||
'@peculiar/asn1-cms': 2.6.0
|
||||
'@peculiar/asn1-pfx': 2.6.0
|
||||
'@peculiar/asn1-pkcs8': 2.6.0
|
||||
'@peculiar/asn1-schema': 2.6.0
|
||||
'@peculiar/asn1-x509': 2.6.0
|
||||
'@peculiar/asn1-x509-attr': 2.6.0
|
||||
asn1js: 3.0.7
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/asn1-rsa@2.6.0':
|
||||
dependencies:
|
||||
'@peculiar/asn1-schema': 2.6.0
|
||||
'@peculiar/asn1-x509': 2.6.0
|
||||
asn1js: 3.0.7
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/asn1-schema@2.6.0':
|
||||
dependencies:
|
||||
asn1js: 3.0.7
|
||||
pvtsutils: 1.3.6
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/asn1-x509-attr@2.6.0':
|
||||
dependencies:
|
||||
'@peculiar/asn1-schema': 2.6.0
|
||||
'@peculiar/asn1-x509': 2.6.0
|
||||
asn1js: 3.0.7
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/asn1-x509@2.6.0':
|
||||
dependencies:
|
||||
'@peculiar/asn1-schema': 2.6.0
|
||||
asn1js: 3.0.7
|
||||
pvtsutils: 1.3.6
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/x509@1.14.2':
|
||||
dependencies:
|
||||
'@peculiar/asn1-cms': 2.6.0
|
||||
'@peculiar/asn1-csr': 2.6.0
|
||||
'@peculiar/asn1-ecc': 2.6.0
|
||||
'@peculiar/asn1-pkcs9': 2.6.0
|
||||
'@peculiar/asn1-rsa': 2.6.0
|
||||
'@peculiar/asn1-schema': 2.6.0
|
||||
'@peculiar/asn1-x509': 2.6.0
|
||||
pvtsutils: 1.3.6
|
||||
reflect-metadata: 0.2.2
|
||||
tslib: 2.8.1
|
||||
tsyringe: 4.10.0
|
||||
|
||||
asn1js@3.0.7:
|
||||
dependencies:
|
||||
pvtsutils: 1.3.6
|
||||
pvutils: 1.1.5
|
||||
tslib: 2.8.1
|
||||
|
||||
bytestreamjs@2.0.1: {}
|
||||
|
||||
dayjs@1.11.19: {}
|
||||
|
||||
debug@4.4.3:
|
||||
dependencies:
|
||||
ms: 2.1.3
|
||||
|
||||
depd@2.0.0: {}
|
||||
|
||||
dotenv@17.2.3: {}
|
||||
|
||||
ee-first@1.1.1: {}
|
||||
|
||||
encodeurl@2.0.0: {}
|
||||
|
||||
escape-html@1.0.3: {}
|
||||
|
||||
etag@1.8.1: {}
|
||||
|
||||
eventemitter3@5.0.1: {}
|
||||
|
||||
fresh@2.0.0: {}
|
||||
|
||||
http-errors@2.0.1:
|
||||
dependencies:
|
||||
depd: 2.0.0
|
||||
inherits: 2.0.4
|
||||
setprototypeof: 1.2.0
|
||||
statuses: 2.0.2
|
||||
toidentifier: 1.0.1
|
||||
|
||||
inherits@2.0.4: {}
|
||||
|
||||
mime-db@1.54.0: {}
|
||||
|
||||
mime-types@3.0.2:
|
||||
dependencies:
|
||||
mime-db: 1.54.0
|
||||
|
||||
mitt@3.0.1: {}
|
||||
|
||||
ms@2.1.3: {}
|
||||
|
||||
node-forge@1.3.3: {}
|
||||
|
||||
on-finished@2.4.1:
|
||||
dependencies:
|
||||
ee-first: 1.1.1
|
||||
|
||||
openai@5.23.2: {}
|
||||
|
||||
path-to-regexp@8.3.0: {}
|
||||
|
||||
pkijs@3.3.3:
|
||||
dependencies:
|
||||
'@noble/hashes': 1.4.0
|
||||
asn1js: 3.0.7
|
||||
bytestreamjs: 2.0.1
|
||||
pvtsutils: 1.3.6
|
||||
pvutils: 1.1.5
|
||||
tslib: 2.8.1
|
||||
|
||||
pvtsutils@1.3.6:
|
||||
dependencies:
|
||||
tslib: 2.8.1
|
||||
|
||||
pvutils@1.1.5: {}
|
||||
|
||||
range-parser@1.2.1: {}
|
||||
|
||||
reflect-metadata@0.2.2: {}
|
||||
|
||||
selfsigned@4.0.1:
|
||||
dependencies:
|
||||
node-forge: 1.3.3
|
||||
|
||||
selfsigned@5.2.0:
|
||||
dependencies:
|
||||
'@peculiar/x509': 1.14.2
|
||||
pkijs: 3.3.3
|
||||
|
||||
send@1.2.0:
|
||||
dependencies:
|
||||
debug: 4.4.3
|
||||
encodeurl: 2.0.0
|
||||
escape-html: 1.0.3
|
||||
etag: 1.8.1
|
||||
fresh: 2.0.0
|
||||
http-errors: 2.0.1
|
||||
mime-types: 3.0.2
|
||||
ms: 2.1.3
|
||||
on-finished: 2.4.1
|
||||
range-parser: 1.2.1
|
||||
statuses: 2.0.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
setprototypeof@1.2.0: {}
|
||||
|
||||
statuses@2.0.2: {}
|
||||
|
||||
toidentifier@1.0.1: {}
|
||||
|
||||
tslib@1.14.1: {}
|
||||
|
||||
tslib@2.8.1: {}
|
||||
|
||||
tsyringe@4.10.0:
|
||||
dependencies:
|
||||
tslib: 1.14.1
|
||||
13
services/src/app.ts
Normal file
13
services/src/app.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import { NocoApi } from "@kevisual/noco";
|
||||
import { useConfig } from "@kevisual/use-config";
|
||||
const config = useConfig();
|
||||
export const noco = new NocoApi({
|
||||
baseURL: config.NOCODB_URL || 'http://localhost:8080',
|
||||
token: config.NOCODB_TOKEN || '',
|
||||
});
|
||||
|
||||
export const baseId = config.NOCODB_BASEID || '';
|
||||
|
||||
|
||||
const base = await noco.meta.tables.list(baseId)
|
||||
// console.log('Connected to NocoDB base:', base);
|
||||
0
services/src/index.ts
Normal file
0
services/src/index.ts
Normal file
20
services/src/init.ts
Normal file
20
services/src/init.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import { columns as materialColumns } from './schema/material'
|
||||
import { columns as projectColumns } from './schema/project'
|
||||
import { baseId, noco } from './app.ts'
|
||||
export const initSchemas = {
|
||||
material: materialColumns,
|
||||
project: projectColumns,
|
||||
}
|
||||
|
||||
|
||||
const projectTable = await noco.meta.tables.createTable(baseId, {
|
||||
title: '项目表',
|
||||
columns: initSchemas.project
|
||||
})
|
||||
console.log('Created project table:', projectTable.data);
|
||||
|
||||
const materialTable = await noco.meta.tables.createTable(baseId, {
|
||||
title: '材料表',
|
||||
columns: initSchemas.material
|
||||
})
|
||||
console.log('Created material table:', materialTable.data);
|
||||
66
services/src/mock/light.ts
Normal file
66
services/src/mock/light.ts
Normal file
@@ -0,0 +1,66 @@
|
||||
import { noco, baseId } from '../app.ts'
|
||||
import dayjs from 'dayjs'
|
||||
import { options } from '../schema/material.ts'
|
||||
|
||||
const MaterialTags = options.map(option => option.title)
|
||||
type Material = {
|
||||
'标题': string,
|
||||
'标签': (typeof MaterialTags)[number][],
|
||||
'描述': string,
|
||||
'物料编码': string,
|
||||
'物料类型': string,
|
||||
'规格型号': string,
|
||||
'创建时间': string,
|
||||
}
|
||||
|
||||
const projectID = 'mcrzug3otvn5y7s'
|
||||
const materialTableID = 'mgk49xy705ci2ek'
|
||||
noco.record.table = materialTableID
|
||||
|
||||
|
||||
// for (let i = 1; i <= 100; i++) {
|
||||
// const m1in = 10 + Math.floor(Math.random() * 90)
|
||||
// const record: Material = {
|
||||
// '标题': `材料示例数据-${i}`,
|
||||
// '标签': [MaterialTags[i % MaterialTags.length]],
|
||||
// '描述': `这是第${i}条材料数据的描述信息,用于测试和演示目的。`,
|
||||
// '物料编码': `MAT-${1000 + i}`,
|
||||
// '物料类型': i % 2 === 0 ? '金属' : '塑料',
|
||||
// '规格型号': `规格-${i}`,
|
||||
// '创建时间': dayjs().subtract(i, 'day').toISOString(),
|
||||
// }
|
||||
// const created = await noco.record.create(record)
|
||||
// console.log(`Created record ${i}:`, created)
|
||||
// }
|
||||
|
||||
// const linkFieldId = 'ctu8jg29p8viu0w' // 项目表中的链接字段ID
|
||||
const linkFieldId = 'col8hdjfw9aojy5' // 项目表中的链接字段ID
|
||||
const link = await noco.record.listLinks(linkFieldId, 1)
|
||||
console.log(JSON.stringify(link, null, 2))
|
||||
const Id = 1
|
||||
|
||||
// const newLInk = await noco.record.query.makeRequest(url, {
|
||||
// method: 'POST',
|
||||
// // data: { refRowIds: [1, 2] },
|
||||
// });
|
||||
const newLInk = await noco.record.query.makeRequest(`/api/v2/tables/${materialTableID}/links/${linkFieldId}/records/${Id}`, {
|
||||
method: 'POST',
|
||||
data: [
|
||||
{
|
||||
"Id": 2,
|
||||
"标题": "2"
|
||||
}
|
||||
]
|
||||
});
|
||||
console.log('update', JSON.stringify(newLInk, null, 2))
|
||||
|
||||
// const deleteLink = await noco.record.query.makeRequest(`/api/v2/tables/${materialTableID}/links/${linkFieldId}/records/${Id}`, {
|
||||
// method: 'DELETE',
|
||||
// // data: [
|
||||
// // {
|
||||
// // Id: 1,
|
||||
// // }
|
||||
// // ]
|
||||
// body: JSON.stringify([1]),
|
||||
// });
|
||||
// console.log(JSON.stringify(deleteLink, null, 2))
|
||||
62
services/src/schema/material.ts
Normal file
62
services/src/schema/material.ts
Normal file
@@ -0,0 +1,62 @@
|
||||
import { CreateColumnData } from "@kevisual/noco"
|
||||
export const options = [{ title: '三视图' },
|
||||
{ title: '结构图' },
|
||||
{ title: '彩图' },
|
||||
{ title: '原理图纸' },
|
||||
{ title: '生产图纸' },
|
||||
{ title: '外形照片' },
|
||||
{ title: '实物图' },
|
||||
{ title: '3D' },
|
||||
{ title: '生产资料' },]
|
||||
// 材料表结构
|
||||
export const columns: CreateColumnData[] = [
|
||||
{
|
||||
title: 'Id',
|
||||
// @ts-ignore
|
||||
uidt: "ID",
|
||||
pk: true,
|
||||
pv: true,
|
||||
},
|
||||
{
|
||||
title: '标题',
|
||||
pv: true,
|
||||
uidt: 'SingleLineText'
|
||||
},
|
||||
{
|
||||
title: '标签',
|
||||
uidt: 'MultiSelect',
|
||||
description: '标签分类,对每一条数据的标签定义,快速分类和筛选',
|
||||
colOptions: {
|
||||
options: options
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '描述',
|
||||
uidt: 'LongText',
|
||||
description: '项目描述',
|
||||
},
|
||||
{
|
||||
title: '物料编码',
|
||||
uidt: 'LongText',
|
||||
description: '物料的唯一编码标识',
|
||||
},
|
||||
{
|
||||
title: '物料类型',
|
||||
uidt: 'LongText',
|
||||
description: '物料的分类类型',
|
||||
},
|
||||
{
|
||||
title: '规格型号',
|
||||
uidt: 'LongText',
|
||||
description: '物料的具体规格型号',
|
||||
},
|
||||
{
|
||||
title: '创建时间',
|
||||
uidt: "DateTime"
|
||||
},
|
||||
{
|
||||
title: '数据',
|
||||
uidt: 'JSON',
|
||||
description: '扩列数据,存储更多的自定义信息',
|
||||
}
|
||||
]
|
||||
30
services/src/schema/project.ts
Normal file
30
services/src/schema/project.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
import { CreateColumnData } from "@kevisual/noco"
|
||||
|
||||
export const columns: CreateColumnData[] = [
|
||||
{
|
||||
title: 'Id',
|
||||
// @ts-ignore
|
||||
uidt: "ID",
|
||||
pk: true,
|
||||
pv: true,
|
||||
},
|
||||
{
|
||||
title: '标题',
|
||||
pv: true,
|
||||
uidt: 'SingleLineText'
|
||||
},
|
||||
{
|
||||
title: '描述',
|
||||
uidt: 'LongText'
|
||||
},
|
||||
{
|
||||
title: '开始日期',
|
||||
uidt: "DateTime",
|
||||
description: '项目开始日期',
|
||||
},
|
||||
{
|
||||
title: '结束日期',
|
||||
uidt: "DateTime",
|
||||
description: '项目结束日期',
|
||||
}
|
||||
]
|
||||
13
services/src/test/get-meta.ts
Normal file
13
services/src/test/get-meta.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import { noco } from '../app.ts'
|
||||
|
||||
const meta = await noco.meta.tables.getTableMeta('mgk49xy705ci2ek')
|
||||
|
||||
// console.log(JSON.stringify(meta.data, null, 2))
|
||||
const uidt = 'LinkToAnotherRecord'
|
||||
// @ts-ignore
|
||||
const column = meta.data.columns.find(c => c.uidt === uidt)
|
||||
console.log(JSON.stringify(column, null, 2))
|
||||
noco.record.table = 'mgk49xy705ci2ek'
|
||||
const one = await noco.record.read(1)
|
||||
|
||||
console.log(JSON.stringify(one, null, 2))
|
||||
Reference in New Issue
Block a user