├── .editorconfig
├── .gitattributes
├── .github
└── workflows
│ ├── docs-en.yaml
│ └── docs-zh-cn.yaml
├── .gitignore
├── .gitmodules
├── CODEOWNERS
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── SECURITY.md
├── docs
├── .gitignore
├── README.md
├── en
│ ├── .gitignore
│ ├── .vitepress
│ │ ├── config.ts
│ │ ├── env.d.ts
│ │ ├── examples-list.ts
│ │ ├── nav.ts
│ │ ├── sidebar.ts
│ │ └── theme
│ │ │ ├── components
│ │ │ ├── ACImage.vue
│ │ │ ├── ListBox.vue
│ │ │ └── ListBoxContainer.vue
│ │ │ ├── custom.css
│ │ │ └── index.ts
│ ├── documate.json
│ ├── package.json
│ ├── pnpm-lock.yaml
│ ├── src
│ │ ├── _partials
│ │ │ ├── _features-list.md
│ │ │ └── _tutorials-list.md
│ │ ├── about
│ │ │ ├── extensions.md
│ │ │ ├── faq.md
│ │ │ └── limits.md
│ │ ├── careers
│ │ │ └── index.md
│ │ ├── chatgpt
│ │ │ └── index.md
│ │ ├── errors
│ │ │ └── index.md
│ │ ├── getting-started
│ │ │ ├── database.md
│ │ │ ├── files.md
│ │ │ └── index.md
│ │ ├── guide
│ │ │ ├── accounts
│ │ │ │ └── create.md
│ │ │ ├── apps
│ │ │ │ └── manage.md
│ │ │ ├── database
│ │ │ │ ├── delete.md
│ │ │ │ ├── export.md
│ │ │ │ ├── find.md
│ │ │ │ ├── geo.md
│ │ │ │ ├── index.md
│ │ │ │ ├── indexes.md
│ │ │ │ ├── insert.md
│ │ │ │ ├── update.md
│ │ │ │ └── web-management.md
│ │ │ ├── files
│ │ │ │ ├── delete.md
│ │ │ │ ├── download.md
│ │ │ │ ├── index.md
│ │ │ │ └── upload.md
│ │ │ └── functions
│ │ │ │ ├── debug.md
│ │ │ │ ├── deployment.md
│ │ │ │ ├── development.md
│ │ │ │ ├── env.md
│ │ │ │ ├── esm.md
│ │ │ │ ├── fs.md
│ │ │ │ ├── get-params.md
│ │ │ │ ├── http-request.md
│ │ │ │ ├── index.md
│ │ │ │ ├── invoke.md
│ │ │ │ ├── logs.md
│ │ │ │ ├── npm.md
│ │ │ │ ├── post-params.md
│ │ │ │ ├── private.md
│ │ │ │ ├── publish-to-github.md
│ │ │ │ ├── recycle.md
│ │ │ │ ├── request-header-and-method.md
│ │ │ │ ├── require.md
│ │ │ │ ├── response-header-and-code.md
│ │ │ │ ├── schedule-jobs.md
│ │ │ │ ├── scheduled-tasks.md
│ │ │ │ └── typescript.md
│ │ ├── help
│ │ │ └── index.md
│ │ ├── index.md
│ │ ├── legal
│ │ │ ├── cookie-policy.md
│ │ │ ├── privacy-policy.md
│ │ │ └── terms-of-service.md
│ │ ├── public
│ │ │ ├── _for_demos
│ │ │ │ ├── 7iBqrpbrMR.1678961115282_5j58e0jj3ek.jpeg
│ │ │ │ ├── EOCMiSlTQd.1678973191167_6m66gudre3a.jpeg
│ │ │ │ ├── Esy7zNI3Q1.1678969555549_rd7ay1qh7ll.jpeg
│ │ │ │ ├── J_jGyCyi99.1678969998197_e78fjwawq76.jpeg
│ │ │ │ ├── QjOIQhLQRE.1678963311215_jz5wtb8616.jpeg
│ │ │ │ ├── RipZ_OJve0.1678967439515_2yekizmozer.jpeg
│ │ │ │ ├── Vw259mD5Ql.1678966093481_q459dr9sah.jpeg
│ │ │ │ ├── abGZmCNVv1.1678969088799_rmddraoxfv9.jpeg
│ │ │ │ ├── cXHixpCmmM.1678963697117_a47i0h0bx7m.jpeg
│ │ │ │ ├── iKHNywGlC6.1678964136978_8c0scefyhgs.jpeg
│ │ │ │ ├── ios-siri-en-new.jpg
│ │ │ │ ├── k-5rOSznFW.1678966220369_a00sivzz5fw.jpeg
│ │ │ │ ├── npLd_synKw.1678969398038_x2798jq1qfm.jpeg
│ │ │ │ ├── pjtbwPn8SZ.1678963833926_ym91lypfua.jpeg
│ │ │ │ ├── q6poKOBInJ.1678965860730_lbyqxujhw5d.jpeg
│ │ │ │ └── yvKtxGuFPq.1678968859522_kpe6swgobd.jpeg
│ │ │ ├── _images
│ │ │ │ ├── 1668073287668.png
│ │ │ │ ├── 1671505257580.png
│ │ │ │ ├── 1671505442147.png
│ │ │ │ ├── 1671505485031.png
│ │ │ │ ├── 1671505845666.png
│ │ │ │ ├── 1671505926961.png
│ │ │ │ ├── 1671506066219.png
│ │ │ │ ├── 1671506114424.png
│ │ │ │ ├── 1671506272223.png
│ │ │ │ ├── 1671506314802.png
│ │ │ │ ├── 1671506377900.png
│ │ │ │ ├── 1671506405456.png
│ │ │ │ ├── 1671508034400.png
│ │ │ │ ├── 1671508051952.png
│ │ │ │ ├── 1671508270037.png
│ │ │ │ ├── 1671508319365.png
│ │ │ │ ├── 1671508523496.png
│ │ │ │ ├── 1671508539808.png
│ │ │ │ ├── 1671517135731.png
│ │ │ │ ├── 1671517161834.png
│ │ │ │ ├── 1671517286503.png
│ │ │ │ ├── 1671517302558.png
│ │ │ │ ├── 1671517345859.png
│ │ │ │ ├── 1671517361524.png
│ │ │ │ ├── 1671517409446.png
│ │ │ │ ├── 1671517428786.png
│ │ │ │ ├── 1671517484480.png
│ │ │ │ ├── 1671517502205.png
│ │ │ │ ├── 1671517558612.png
│ │ │ │ ├── 1671517589421.png
│ │ │ │ ├── 1671517737942.png
│ │ │ │ ├── 1671517801557.png
│ │ │ │ ├── 1671517933039.png
│ │ │ │ ├── 1671517968047.png
│ │ │ │ ├── 1671518075513.png
│ │ │ │ ├── 1671518232132.png
│ │ │ │ ├── 1671518299222.png
│ │ │ │ ├── 1671518321538.png
│ │ │ │ ├── 1671518414900.png
│ │ │ │ ├── 1671518437944.png
│ │ │ │ ├── 1671518583069.png
│ │ │ │ ├── 1671518674280.png
│ │ │ │ ├── 1671518780109.png
│ │ │ │ ├── 1671518807115.png
│ │ │ │ ├── 1671518837884.png
│ │ │ │ ├── 1671518863321.png
│ │ │ │ ├── 1671601906160.png
│ │ │ │ ├── 1671601929191.png
│ │ │ │ ├── 1671602166235.png
│ │ │ │ ├── 1671602188213.png
│ │ │ │ ├── 1671602371423.png
│ │ │ │ ├── 1671602394420.png
│ │ │ │ ├── 1671602431348.png
│ │ │ │ ├── 1671602456168.png
│ │ │ │ ├── 1671602530168.png
│ │ │ │ ├── 1671602551461.png
│ │ │ │ ├── 1671604531408.png
│ │ │ │ ├── 1671604567893.png
│ │ │ │ ├── 1671605062316.png
│ │ │ │ ├── 1671605076328.png
│ │ │ │ ├── 1671605606665.png
│ │ │ │ ├── 1671605611943.png
│ │ │ │ ├── 1671605636689.png
│ │ │ │ ├── 1671605783862.png
│ │ │ │ ├── 1671605834793.png
│ │ │ │ ├── 1671606050858.png
│ │ │ │ ├── 1671606088640.png
│ │ │ │ ├── 1671615584116.png
│ │ │ │ ├── 1671615620868.png
│ │ │ │ ├── 1676895482734.png
│ │ │ │ ├── 1676895599710.png
│ │ │ │ ├── 1676895731555.png
│ │ │ │ ├── 1676895780514.png
│ │ │ │ ├── 1679043724370.png
│ │ │ │ ├── 1679043844440.png
│ │ │ │ ├── 1679044538436.png
│ │ │ │ ├── 1679044612993.png
│ │ │ │ ├── 1679045167630.png
│ │ │ │ ├── 1679045230195.png
│ │ │ │ ├── 1681195076163.png
│ │ │ │ ├── 1681195131773.png
│ │ │ │ ├── 1683529385015.png
│ │ │ │ ├── 1683529472390.png
│ │ │ │ ├── 1687839874264.png
│ │ │ │ ├── 1687840268830.png
│ │ │ │ ├── 1687939695902.png
│ │ │ │ ├── 1687941402462.png
│ │ │ │ ├── 1687941435342.png
│ │ │ │ ├── 1687941645021.png
│ │ │ │ ├── 1687941751546.png
│ │ │ │ ├── 1687941850850.png
│ │ │ │ ├── 1687942052252.png
│ │ │ │ ├── 1687942094699.png
│ │ │ │ ├── 1687942140281.png
│ │ │ │ ├── 1688015952700.png
│ │ │ │ ├── 1688015974786.png
│ │ │ │ ├── chatgpt-index
│ │ │ │ │ ├── discord-chatgpt-bot.gif
│ │ │ │ │ ├── ios-siri-en-new.jpg
│ │ │ │ │ └── slack-chatgpt-en.png
│ │ │ │ ├── share-github
│ │ │ │ │ ├── share-github-1.png
│ │ │ │ │ ├── share-github-2.png
│ │ │ │ │ └── share-github-3.png
│ │ │ │ └── tutorials
│ │ │ │ │ └── slack-chatgpt-en
│ │ │ │ │ ├── 1-slack-demo.png
│ │ │ │ │ ├── 10-get-copy.png
│ │ │ │ │ ├── 11-login.png
│ │ │ │ │ ├── 12-create-app.png
│ │ │ │ │ ├── 13-env.png
│ │ │ │ │ ├── 14-deploy.png
│ │ │ │ │ ├── 15-copy-url.png
│ │ │ │ │ ├── 16-bot-event.png
│ │ │ │ │ ├── 17-bot-event.png
│ │ │ │ │ ├── 18-bot-event.png
│ │ │ │ │ ├── 19-bot-reinstall.png
│ │ │ │ │ ├── 2-create-slack-app.png
│ │ │ │ │ ├── 20-bot-setting.png
│ │ │ │ │ ├── 21-slack-bot-demo.png
│ │ │ │ │ ├── 22-debug.png
│ │ │ │ │ ├── 23-openAI.png
│ │ │ │ │ ├── 24-env.png
│ │ │ │ │ ├── 25-demo.png
│ │ │ │ │ ├── 3-create-slack-app.png
│ │ │ │ │ ├── 4-create-slack-app.png
│ │ │ │ │ ├── 5-permissions.png
│ │ │ │ │ ├── 6-add-scope.png
│ │ │ │ │ ├── 7-install-slack-app.png
│ │ │ │ │ ├── 8-add-slack-app.png
│ │ │ │ │ └── 9-copy-bot-token.png
│ │ │ ├── favicon.ico
│ │ │ └── robots.txt
│ │ └── reference
│ │ │ └── server
│ │ │ ├── database-api.md
│ │ │ ├── files-api.md
│ │ │ ├── functions-api.md
│ │ │ ├── functions-resource.md
│ │ │ └── functions-runtime.md
│ └── vercel.json
└── zh-cn
│ ├── .gitignore
│ ├── .vitepress
│ ├── config.ts
│ ├── env.d.ts
│ ├── nav.ts
│ ├── sidebar.ts
│ ├── theme
│ │ ├── components
│ │ │ ├── ACImage.vue
│ │ │ ├── ListBox.vue
│ │ │ └── ListBoxContainer.vue
│ │ ├── custom.css
│ │ └── index.ts
│ └── tutorial-list.ts
│ ├── .yarnrc.yaml
│ ├── package.json
│ ├── src
│ ├── _partials
│ │ ├── _features-list.md
│ │ └── _tutorials-list.md
│ ├── about
│ │ ├── extensions.md
│ │ ├── faq.md
│ │ └── limits.md
│ ├── careers
│ │ └── index.md
│ ├── chatgpt
│ │ └── index.md
│ ├── errors
│ │ └── index.md
│ ├── getting-started
│ │ ├── database.md
│ │ ├── files.md
│ │ └── index.md
│ ├── guide
│ │ ├── accounts
│ │ │ └── create.md
│ │ ├── apps
│ │ │ └── manage.md
│ │ ├── database
│ │ │ ├── delete.md
│ │ │ ├── export.md
│ │ │ ├── find.md
│ │ │ ├── geo.md
│ │ │ ├── index.md
│ │ │ ├── indexes.md
│ │ │ ├── insert.md
│ │ │ ├── update.md
│ │ │ └── web-management.md
│ │ ├── files
│ │ │ ├── delete.md
│ │ │ ├── download.md
│ │ │ ├── index.md
│ │ │ └── upload.md
│ │ ├── functions
│ │ │ ├── debug.md
│ │ │ ├── deployment.md
│ │ │ ├── development.md
│ │ │ ├── env.md
│ │ │ ├── esm.md
│ │ │ ├── fs.md
│ │ │ ├── get-params.md
│ │ │ ├── http-request.md
│ │ │ ├── index.md
│ │ │ ├── invoke.md
│ │ │ ├── logs.md
│ │ │ ├── npm.md
│ │ │ ├── post-params.md
│ │ │ ├── private.md
│ │ │ ├── publish-to-github.md
│ │ │ ├── recycle.md
│ │ │ ├── request-header-and-method.md
│ │ │ ├── require.md
│ │ │ ├── response-header-and-code.md
│ │ │ ├── schedule-jobs.md
│ │ │ ├── scheduled-tasks.md
│ │ │ └── typescript.md
│ │ └── realtime
│ │ │ └── index.md
│ ├── help
│ │ └── index.md
│ ├── index.md
│ ├── public
│ │ ├── _for_demos
│ │ │ ├── 7iBqrpbrMR.1678961115282_5j58e0jj3ek.jpeg
│ │ │ ├── EOCMiSlTQd.1678973191167_6m66gudre3a.jpeg
│ │ │ ├── Esy7zNI3Q1.1678969555549_rd7ay1qh7ll.jpeg
│ │ │ ├── J_jGyCyi99.1678969998197_e78fjwawq76.jpeg
│ │ │ ├── QjOIQhLQRE.1678963311215_jz5wtb8616.jpeg
│ │ │ ├── RipZ_OJve0.1678967439515_2yekizmozer.jpeg
│ │ │ ├── Vw259mD5Ql.1678966093481_q459dr9sah.jpeg
│ │ │ ├── abGZmCNVv1.1678969088799_rmddraoxfv9.jpeg
│ │ │ ├── cXHixpCmmM.1678963697117_a47i0h0bx7m.jpeg
│ │ │ ├── errJ-DCavN.1678960179433_4ldns6dksyd.jpeg
│ │ │ ├── iKHNywGlC6.1678964136978_8c0scefyhgs.jpeg
│ │ │ ├── k-5rOSznFW.1678966220369_a00sivzz5fw.jpeg
│ │ │ ├── npLd_synKw.1678969398038_x2798jq1qfm.jpeg
│ │ │ ├── pjtbwPn8SZ.1678963833926_ym91lypfua.jpeg
│ │ │ ├── q6poKOBInJ.1678965860730_lbyqxujhw5d.jpeg
│ │ │ └── yvKtxGuFPq.1678968859522_kpe6swgobd.jpeg
│ │ ├── _images
│ │ │ ├── 1668073287668.png
│ │ │ ├── 1671505257580.png
│ │ │ ├── 1671505442147.png
│ │ │ ├── 1671505485031.png
│ │ │ ├── 1671505845666.png
│ │ │ ├── 1671505926961.png
│ │ │ ├── 1671506066219.png
│ │ │ ├── 1671506114424.png
│ │ │ ├── 1671506272223.png
│ │ │ ├── 1671506314802.png
│ │ │ ├── 1671506377900.png
│ │ │ ├── 1671506405456.png
│ │ │ ├── 1671508034400.png
│ │ │ ├── 1671508051952.png
│ │ │ ├── 1671508270037.png
│ │ │ ├── 1671508319365.png
│ │ │ ├── 1671508523496.png
│ │ │ ├── 1671508539808.png
│ │ │ ├── 1671517135731.png
│ │ │ ├── 1671517161834.png
│ │ │ ├── 1671517286503.png
│ │ │ ├── 1671517302558.png
│ │ │ ├── 1671517345859.png
│ │ │ ├── 1671517361524.png
│ │ │ ├── 1671517409446.png
│ │ │ ├── 1671517428786.png
│ │ │ ├── 1671517484480.png
│ │ │ ├── 1671517502205.png
│ │ │ ├── 1671517558612.png
│ │ │ ├── 1671517589421.png
│ │ │ ├── 1671517737942.png
│ │ │ ├── 1671517801557.png
│ │ │ ├── 1671517933039.png
│ │ │ ├── 1671517968047.png
│ │ │ ├── 1671518075513.png
│ │ │ ├── 1671518232132.png
│ │ │ ├── 1671518299222.png
│ │ │ ├── 1671518321538.png
│ │ │ ├── 1671518414900.png
│ │ │ ├── 1671518437944.png
│ │ │ ├── 1671518583069.png
│ │ │ ├── 1671518674280.png
│ │ │ ├── 1671518780109.png
│ │ │ ├── 1671518807115.png
│ │ │ ├── 1671518837884.png
│ │ │ ├── 1671518863321.png
│ │ │ ├── 1671601906160.png
│ │ │ ├── 1671601929191.png
│ │ │ ├── 1671602166235.png
│ │ │ ├── 1671602188213.png
│ │ │ ├── 1671602371423.png
│ │ │ ├── 1671602394420.png
│ │ │ ├── 1671602431348.png
│ │ │ ├── 1671602456168.png
│ │ │ ├── 1671602530168.png
│ │ │ ├── 1671602551461.png
│ │ │ ├── 1671604531408.png
│ │ │ ├── 1671604567893.png
│ │ │ ├── 1671605062316.png
│ │ │ ├── 1671605076328.png
│ │ │ ├── 1671605606665.png
│ │ │ ├── 1671605611943.png
│ │ │ ├── 1671605636689.png
│ │ │ ├── 1671605783862.png
│ │ │ ├── 1671605834793.png
│ │ │ ├── 1671606050858.png
│ │ │ ├── 1671606088640.png
│ │ │ ├── 1671615584116.png
│ │ │ ├── 1671615620868.png
│ │ │ ├── 1676895482734.png
│ │ │ ├── 1676895599710.png
│ │ │ ├── 1676895731555.png
│ │ │ ├── 1676895780514.png
│ │ │ ├── 1679043724370.png
│ │ │ ├── 1679043844440.png
│ │ │ ├── 1679044538436.png
│ │ │ ├── 1679044612993.png
│ │ │ ├── 1679045167630.png
│ │ │ ├── 1679045230195.png
│ │ │ ├── 1681195076163.png
│ │ │ ├── 1681195131773.png
│ │ │ ├── 1683529385015.png
│ │ │ ├── 1683529472390.png
│ │ │ ├── 1687839874264.png
│ │ │ ├── 1687840268830.png
│ │ │ ├── 1687939695902.png
│ │ │ ├── 1687941402462.png
│ │ │ ├── 1687941435342.png
│ │ │ ├── 1687941645021.png
│ │ │ ├── 1687941751546.png
│ │ │ ├── 1687941850850.png
│ │ │ ├── 1687942052252.png
│ │ │ ├── 1687942094699.png
│ │ │ ├── 1687942140281.png
│ │ │ ├── 1688015952700.png
│ │ │ ├── 1688015974786.png
│ │ │ ├── chatGPT-index
│ │ │ │ ├── dingtalk-demo.jpeg
│ │ │ │ ├── discord-chatgpt-bot.gif
│ │ │ │ ├── feishu-demo.png
│ │ │ │ ├── siri-demo.png
│ │ │ │ ├── slack-demo-cn.png
│ │ │ │ └── wecom-demo.jpg
│ │ │ ├── help
│ │ │ │ ├── dingding.png
│ │ │ │ ├── feishu.png
│ │ │ │ ├── feishu2.png
│ │ │ │ └── weixin.png
│ │ │ ├── share-github
│ │ │ │ ├── share-github-1.png
│ │ │ │ ├── share-github-2.png
│ │ │ │ └── share-github-3.png
│ │ │ └── tutorials
│ │ │ │ ├── dingtalk-chatgpt
│ │ │ │ ├── copy-api-key.jpeg
│ │ │ │ ├── copy-app-secret.jpeg
│ │ │ │ ├── copy-invoke-url.jpeg
│ │ │ │ ├── create-aircode-app.jpeg
│ │ │ │ ├── create-dingtalk-app.jpeg
│ │ │ │ ├── create-openai-key.jpeg
│ │ │ │ ├── demo-screenshot.jpeg
│ │ │ │ ├── deploy.jpeg
│ │ │ │ ├── dingtalk-platform.jpeg
│ │ │ │ ├── dingtalk_group_qr.jpeg
│ │ │ │ ├── enter-api-env.jpeg
│ │ │ │ ├── enter-dingtalk-envs.jpeg
│ │ │ │ ├── enter-webhook.jpeg
│ │ │ │ ├── get-a-copy.jpeg
│ │ │ │ ├── input-robot-info-1.jpeg
│ │ │ │ ├── input-robot-info-2.jpeg
│ │ │ │ ├── login.jpeg
│ │ │ │ ├── mock-by-online-requests.jpeg
│ │ │ │ ├── switch-on-privilege.jpeg
│ │ │ │ ├── switch-on-robot.jpeg
│ │ │ │ ├── test-chat-gpt.jpeg
│ │ │ │ └── test-robot-reply.jpeg
│ │ │ │ ├── feishu-chatGPT
│ │ │ │ ├── 1-demo.png
│ │ │ │ ├── 10-deploy-aircode.png
│ │ │ │ ├── 11-copy-webhook.png
│ │ │ │ ├── 12-bot-setting.png
│ │ │ │ ├── 13-bot-setting.png
│ │ │ │ ├── 14-1-add-event.png
│ │ │ │ ├── 14-add-bot-event.png
│ │ │ │ ├── 15-bot-permission.png
│ │ │ │ ├── 16-bot-permission.png
│ │ │ │ ├── 17-publish-bot.png
│ │ │ │ ├── 18-demo-chat-bot.png
│ │ │ │ ├── 19-demo-debug.png
│ │ │ │ ├── 2-create-bot.png
│ │ │ │ ├── 20-openAI.png
│ │ │ │ ├── 21-copy-env.png
│ │ │ │ ├── 22-demo-chatGPT-bot.png
│ │ │ │ ├── 3-create-bot.png
│ │ │ │ ├── 4-create-bot.png
│ │ │ │ ├── 5-create-bot.png
│ │ │ │ ├── 6-get-copy.png
│ │ │ │ ├── 7-sigin-aircode.png
│ │ │ │ ├── 8-create-aircode-app.png
│ │ │ │ └── 9-copy-env.png
│ │ │ │ ├── slack-chatgpt-cn
│ │ │ │ ├── 1-slack-demo.png
│ │ │ │ ├── 10-get-copy.png
│ │ │ │ ├── 11-login.png
│ │ │ │ ├── 12-create-app.png
│ │ │ │ ├── 13-env.png
│ │ │ │ ├── 14-deploy.png
│ │ │ │ ├── 15-copy-url.png
│ │ │ │ ├── 16-bot-event.png
│ │ │ │ ├── 17-bot-event.png
│ │ │ │ ├── 18-bot-event.png
│ │ │ │ ├── 19-bot-reinstall.png
│ │ │ │ ├── 2-create-slack-app.png
│ │ │ │ ├── 20-bot-setting.png
│ │ │ │ ├── 21-slack-bot-demo.png
│ │ │ │ ├── 22-debug.png
│ │ │ │ ├── 23-openAI.png
│ │ │ │ ├── 24-env.png
│ │ │ │ ├── 25-demo.png
│ │ │ │ ├── 3-create-slack-app.png
│ │ │ │ ├── 4-create-slack-app.png
│ │ │ │ ├── 5-permissions.png
│ │ │ │ ├── 6-add-scope.png
│ │ │ │ ├── 7-install-slack-app.png
│ │ │ │ ├── 8-add-slack-app.png
│ │ │ │ └── 9-copy-bot-token.png
│ │ │ │ └── weixin-chatgpt
│ │ │ │ ├── 1-weixin-demo.jpg
│ │ │ │ ├── 10-weixin.png
│ │ │ │ ├── 11-weixin.png
│ │ │ │ ├── 12-weixin.png
│ │ │ │ ├── 13-weixin.png
│ │ │ │ ├── 14-weixin.png
│ │ │ │ ├── 15-deploy-aircode.png
│ │ │ │ ├── 16-weixin.png
│ │ │ │ ├── 17-weixin.png
│ │ │ │ ├── 18-weixin.png
│ │ │ │ ├── 19-weixin.png
│ │ │ │ ├── 2-weixin-login.png
│ │ │ │ ├── 20-weixin.png
│ │ │ │ ├── 21-weixin.jpg
│ │ │ │ ├── 22-weixin.png
│ │ │ │ ├── 23-weixin.png
│ │ │ │ ├── 24-openAI.png
│ │ │ │ ├── 25-weixin.png
│ │ │ │ ├── 26-weixin.png
│ │ │ │ ├── 3-weixin.png
│ │ │ │ ├── 4-weixin-create.png
│ │ │ │ ├── 5-weixin.png
│ │ │ │ ├── 6-weixin.png
│ │ │ │ ├── 7-weixin.png
│ │ │ │ ├── 8-sigin-aircode.png
│ │ │ │ └── 9-weixin.png
│ │ ├── favicon.ico
│ │ └── robots.txt
│ └── reference
│ │ └── server
│ │ ├── database-api.md
│ │ ├── files-api.md
│ │ ├── functions-api.md
│ │ ├── functions-resource.md
│ │ └── functions-runtime.md
│ ├── vercel.json
│ └── yarn.lock
├── examples
├── CDN-fileuploader-with-bunny
│ ├── .aircoderc.js
│ ├── README.md
│ ├── aircode.config.json
│ ├── app.client.js
│ ├── index.js
│ ├── lib
│ │ ├── bunny-api.js
│ │ └── test.js
│ ├── package.json
│ ├── style.css
│ ├── upload.js
│ └── upload.tpl
├── README.md
├── billboard-dating-guy
│ ├── README.md
│ ├── hello.js
│ ├── lib
│ │ ├── gaobai.js
│ │ └── polyfill.js
│ └── package.json
├── blog-subscription-and-pushing
│ ├── README.md
│ ├── aircode.config.json
│ ├── deliver.ts
│ ├── email.jsx
│ ├── package.json
│ ├── render.ts
│ ├── subscribe.ts
│ └── tsconfig.json
├── chatgpt-plugin-todolist
│ ├── README.md
│ ├── aircode.config.json
│ ├── package.json
│ ├── public
│ │ ├── .well-known
│ │ │ └── ai-plugin.json
│ │ └── openapi.yaml
│ ├── todos.ts
│ └── tsconfig.json
├── chatgpt-plugin
│ ├── README.md
│ ├── aircode.config.json
│ ├── package.json
│ ├── public
│ │ ├── .well-known
│ │ │ └── ai-plugin.json
│ │ └── openapi.yaml
│ ├── queryAPI.ts
│ ├── schemaAPI.ts
│ ├── todos.ts
│ └── tsconfig.json
├── chatgpt-stream
│ ├── README.md
│ ├── aircode.config.json
│ ├── hello.js
│ └── package.json
├── cicada
│ ├── README.md
│ ├── aircode.config.json
│ ├── auth.js
│ ├── delete.js
│ ├── lib
│ │ ├── auth.js
│ │ └── config.js
│ ├── list.js
│ ├── model
│ │ └── favorite.js
│ ├── package.json
│ ├── save.js
│ ├── search.js
│ └── tag.js
├── discord-chatgpt-app
│ ├── README.md
│ ├── aircode.config.json
│ ├── interactions.js
│ ├── package.json
│ └── register-command.js
├── discord-javascript-weekly
│ ├── README.md
│ ├── aircode.config.json
│ ├── discord.js
│ ├── package.json
│ ├── send.js
│ └── tools.js
├── express-markdown
│ ├── README.md
│ ├── aircode.config.json
│ ├── index.js
│ ├── package.json
│ └── views
│ │ ├── index.md
│ │ └── missing.md
├── koa-blog
│ ├── README.md
│ ├── aircode.config.json
│ ├── index.js
│ ├── lib
│ │ └── render.js
│ ├── package.json
│ └── views
│ │ ├── index.html
│ │ ├── layout.html
│ │ ├── list.html
│ │ ├── new.html
│ │ └── show.html
├── langchain
│ ├── .gitignore
│ ├── README.md
│ ├── aircode.config.json
│ ├── chat.ts
│ ├── docs
│ │ ├── deploy.png
│ │ ├── envs.png
│ │ ├── logic.jpg
│ │ ├── test.jpeg
│ │ └── upload.jpeg
│ ├── lib
│ │ ├── knowledge.ts
│ │ └── prompt.ts
│ ├── main.ts
│ ├── package.json
│ └── tsconfig.json
├── modular-demo
│ ├── README.md
│ ├── aircode.config.json
│ ├── index.mjs
│ └── package.json
├── modular-kv-demo
│ ├── README.md
│ ├── aircode.config.json
│ ├── package.json
│ └── storage.mjs
├── realtime-chat-room
│ ├── chat-room-be
│ │ ├── README.md
│ │ ├── aircode.config.json
│ │ ├── index.js
│ │ └── package.json
│ └── chat-room-fe
│ │ └── index.html
├── realtime-game
│ ├── README.md
│ ├── realtime-game-be
│ │ ├── README.md
│ │ ├── aircode.config.json
│ │ ├── index.js
│ │ └── package.json
│ └── realtime-game-fe
│ │ ├── .eslintrc.cjs
│ │ ├── README.md
│ │ ├── app.js
│ │ ├── index.html
│ │ ├── package.json
│ │ └── style.css
├── resend
│ ├── README.md
│ ├── aircode.config.json
│ ├── email.ts
│ ├── package.json
│ └── tsconfig.json
├── shopify-to-google-spreadsheets
│ ├── README.md
│ ├── aircode.config.json
│ ├── credentials.json
│ ├── index.js
│ ├── lib
│ │ └── helpers.js
│ └── package.json
├── simple-command-line-slack-bot
│ ├── README.md
│ ├── aircode.config.json
│ ├── hello.ts
│ ├── package.json
│ └── tsconfig.json
├── siri-gpt
│ ├── README.md
│ ├── aircode.config.json
│ ├── chat.js
│ └── package.json
├── slack-chatgpt-app
│ ├── README.md
│ └── chat.js
├── stable-diffusion-huggingface
│ ├── README.md
│ ├── aircode.config.json
│ ├── index.mjs
│ └── package.json
├── talk-with-chatgpt-azure-openai
│ ├── README.md
│ ├── aircode.config.json
│ ├── api.js
│ ├── index.js
│ ├── lib
│ │ ├── bunny-api.js
│ │ ├── chat.js
│ │ └── voice-marker.js
│ ├── package.json
│ ├── talk.js
│ └── views
│ │ └── index.html
├── talk-with-chatgpt
│ ├── README.md
│ ├── aircode.config.json
│ ├── chat.js
│ ├── index.js
│ ├── lib
│ │ └── bunny-api.js
│ ├── package.json
│ ├── talk.js
│ └── views
│ │ └── index.html
├── text-to-voice
│ ├── README.md
│ ├── index.js
│ └── lib
│ │ └── bunny-api.js
├── upvote-anywhere
│ ├── README.md
│ ├── aircode.config.json
│ ├── create.js
│ ├── package.json
│ ├── readme.js
│ ├── show.js
│ ├── upvote.js
│ └── views
│ │ ├── index.tpl
│ │ └── info.md
├── vue-template
│ ├── README.md
│ ├── aircode.config.json
│ ├── deploy
│ │ └── build.js
│ ├── index.html
│ ├── index.js
│ ├── lib
│ │ └── compile.js
│ ├── package.json
│ ├── src.js
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ ├── base.css
│ │ │ ├── logo.svg
│ │ │ └── main.css
│ │ ├── components
│ │ │ ├── HelloWorld.vue
│ │ │ ├── TheWelcome.vue
│ │ │ ├── WelcomeItem.vue
│ │ │ └── icons
│ │ │ │ ├── IconCommunity.vue
│ │ │ │ ├── IconDocumentation.vue
│ │ │ │ ├── IconEcosystem.vue
│ │ │ │ ├── IconSupport.vue
│ │ │ │ └── IconTooling.vue
│ │ └── main.js
│ └── vite.config.js
└── web-app-todolist
│ ├── README.md
│ ├── aircode.config.json
│ ├── app.client.js
│ ├── complete.svg
│ ├── database.js
│ ├── index.html
│ ├── index.js
│ ├── package.json
│ ├── remove.svg
│ └── style.css
├── extensions
├── README.md
├── aircode-adapter
│ ├── .eslintrc.js
│ ├── README.md
│ ├── adapters
│ │ ├── express.js
│ │ └── koa.js
│ ├── index.js
│ └── package.json
├── aircode-app
│ ├── .eslintrc.js
│ ├── README.md
│ ├── index.js
│ ├── interceptor.js
│ └── package.json
├── aircode-pusher
│ ├── .eslintrc.cjs
│ ├── LICENSE
│ ├── README-CN.md
│ ├── README.md
│ ├── build.js
│ ├── dist
│ │ ├── aircode-pusher-client.js
│ │ └── aircode-pusher.cjs
│ ├── docs
│ │ ├── cn
│ │ │ ├── getting-started.md
│ │ │ └── pusher-api.md
│ │ └── en
│ │ │ ├── getting-started.md
│ │ │ └── pusher-api.md
│ ├── package.json
│ ├── public
│ │ ├── aircode-pusher-client.js
│ │ └── index.html
│ ├── src
│ │ ├── channel.js
│ │ ├── client-iife.js
│ │ ├── client.js
│ │ ├── index.js
│ │ └── pusher.js
│ └── test
│ │ ├── client.js
│ │ └── hello.mjs
└── aircode-router
│ ├── .eslintrc.js
│ ├── README.md
│ ├── index.js
│ └── package.json
└── package.json
/.editorconfig:
--------------------------------------------------------------------------------
1 | # .editorconfig
2 |
3 | # Top-most EditorConfig file
4 | root = true
5 |
6 | # Default settings for all files
7 | [*]
8 | charset = utf-8
9 | end_of_line = lf
10 | insert_final_newline = true
11 | indent_style = space
12 | indent_size = 2
13 | tab_width = 2
14 | trim_trailing_whitespace = true
15 |
16 | # Override settings for specific file types
17 | [*.md]
18 | trim_trailing_whitespace = false
19 |
20 | [*.yml]
21 | indent_style = space
22 | indent_size = 2
23 |
24 | [*.json]
25 | indent_style = space
26 | indent_size = 2
27 |
28 | [*.js]
29 | indent_style = space
30 | indent_size = 2
31 |
32 | [*.ts]
33 | indent_style = space
34 | indent_size = 2
35 |
36 | [*.css]
37 | indent_style = space
38 | indent_size = 2
39 |
40 | [*.html]
41 | indent_style = space
42 | indent_size = 2
43 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # .gitattributes
2 |
3 | # See https://github.com/github/linguist#vendored-code
4 | demos/*
5 |
6 | # Set the default behavior for line endings, to always use LF
7 | * text=auto eol=lf
8 |
9 | # Specify binary files, so Git doesn't try to modify them
10 | *.png binary
11 | *.jpg binary
12 | *.jpeg binary
13 | *.gif binary
14 | *.ico binary
15 | *.pdf binary
16 | *.zip binary
17 | *.gz binary
18 |
19 | # Define files that should always use CRLF line endings
20 | *.bat text eol=crlf
21 |
22 | # Define files that should always use LF line endings
23 | *.sh text eol=lf
24 |
25 | # Define custom merge strategies for specific files or file types
26 | *.json merge=ours
27 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | npm-debug.log*
3 | package-lock.json
4 | .nyc_*/
5 | .dir-locals.el
6 | .DS_Store
7 | .test
8 | .db
9 | .meta
10 | **/node_modules
11 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/.gitmodules
--------------------------------------------------------------------------------
/CODEOWNERS:
--------------------------------------------------------------------------------
1 | # Documentation
2 | # https://help.github.com/en/articles/about-code-owners
3 |
4 | * @adcentury @wangxiao @0xinhua
5 | /.github/workflows @adcentury @0xinhua
6 | /demos/ @wangxiao
7 | /docs/ @adcentury
8 |
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Reporting a Vulnerability
2 |
3 | If you discover a security vulnerability in our project, please follow these steps:
4 |
5 | 1. Do not create a public issue on GitHub or discuss the vulnerability in public forums.
6 | 2. Send an email to support@aircode.io with the following information:
7 | - A brief description of the vulnerability
8 | - Steps to reproduce the vulnerability, if possible
9 | - Your contact information, in case we need to ask for more details
10 | 3. Allow us a reasonable amount of time to investigate and address the vulnerability before disclosing it to others.
11 | 4. We will investigate all legitimate reports and do our best to quickly fix the problem.
12 |
13 | We appreciate your help in keeping our project secure. Any vulnerability reports will be treated confidentially, and we will credit you for your responsible disclosure.
14 |
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | # AirCode Docs
2 |
3 | The repos of [AirCode Docs](https://docs.aircode.io).
4 |
5 | ## How to contribute
6 |
7 | Each language is an independent project. Enter the directory of the corresponding language, execute 'yarn' to install dependencies, and develop and debug through 'yarn dev'
8 |
9 | - en The directory is a English file
10 | - zh-cn The directory is a Chinese file
11 |
12 | ## 如何贡献代码
13 |
14 | 每个语言是一个独立的项目,进入对应语言的目录,执行 `yarn` 安装依赖,通过 `yarn dev` 开发和调试
15 |
16 | - en 目录中是英文文档
17 | - zh-cn 目录是中文文档
18 |
--------------------------------------------------------------------------------
/docs/en/.vitepress/env.d.ts:
--------------------------------------------------------------------------------
1 | ///
--------------------------------------------------------------------------------
/docs/en/.vitepress/examples-list.ts:
--------------------------------------------------------------------------------
1 | export default [
2 | { text: 'Build a ChatGPT Plugin', link: 'https://github.com/AirCodeLabs/aircode/tree/main/examples/chatgpt-plugin' },
3 | { text: 'Slack ChatGPT Bot', link: 'https://github.com/AirCodeLabs/aircode/tree/main/examples/slack-chatgpt-app/' },
4 | { text: 'Sending Email with Resend', link: 'https://github.com/AirCodeLabs/aircode/tree/main/examples/resend' },
5 | { text: 'Todolist Web App', link: 'https://github.com/AirCodeLabs/aircode/tree/main/examples/web-app-todolist/' },
6 | { text: 'More', link: 'https://github.com/AirCodeLabs/aircode/tree/main/examples#readme' },
7 | ];
8 |
--------------------------------------------------------------------------------
/docs/en/.vitepress/theme/components/ListBoxContainer.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
15 |
--------------------------------------------------------------------------------
/docs/en/documate.json:
--------------------------------------------------------------------------------
1 | {
2 | "root": "./src",
3 | "include": [
4 | "**/*.md"
5 | ],
6 | "backend": "https://75qxny6bta.us.aircode.run/upload"
7 | }
8 |
--------------------------------------------------------------------------------
/docs/en/src/_partials/_tutorials-list.md:
--------------------------------------------------------------------------------
1 |
2 |
8 |
14 |
20 |
21 |
--------------------------------------------------------------------------------
/docs/en/src/about/extensions.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Extensions | AirCode Docs
3 | description: The official team and open-source community have provided a range of extensions to enhance AirCode's capabilities.
4 | ---
5 |
6 | # Extensions
7 |
8 | The official team and open-source community have provided a range of extensions to enhance AirCode's capabilities.
9 |
10 | With the capabilities offered by these extensions, you can:
11 |
12 | 1. Enable custom routing.
13 | 2. Develop and deploy web applications with frontend pages.
14 | 3. Run Express and Koa applications.
15 |
16 | For specific usage instructions, please refer to the documentation in the [GitHub repository](https://github.com/AirCodeLabs/aircode/tree/main/extensions).
17 |
--------------------------------------------------------------------------------
/docs/en/src/errors/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Errors | AirCode Docs
3 | description: Build an AI automation in just 5 minutes with this comprehensive tutorial.
4 | ---
5 |
6 | # Errors
7 |
8 | This doc is WORK IN PROGRESS. It is expected to be published in early February, 2023.
9 |
--------------------------------------------------------------------------------
/docs/en/src/guide/accounts/create.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/guide/accounts/create.md
--------------------------------------------------------------------------------
/docs/en/src/guide/apps/manage.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/guide/apps/manage.md
--------------------------------------------------------------------------------
/docs/en/src/guide/database/web-management.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Data Management on Web Page | AirCode Docs
3 | description: AirCode provides an out-of-the-box database, which can be accessed and operated directly through `aircode.db` in the cloud function.
4 | ---
5 |
6 | # Data Management on Web Page
7 |
8 | This doc is WORK IN PROGRESS. It is expected to be published in early February, 2023.
9 |
--------------------------------------------------------------------------------
/docs/en/src/guide/functions/fs.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Read/Write Local Files | AirCode Docs
3 | description:
4 | ---
5 |
6 | # Read/Write Local Files
7 |
8 | This doc is WORK IN PROGRESS. It is expected to be published in early February, 2023.
9 |
--------------------------------------------------------------------------------
/docs/en/src/guide/functions/private.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Private Functions | AirCode Docs
3 | description:
4 | ---
5 |
6 | # Private Functions
7 |
8 | This doc is WORK IN PROGRESS. It is expected to be published in early February, 2023.
9 |
--------------------------------------------------------------------------------
/docs/en/src/guide/functions/recycle.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Recycle Bin | AirCode Docs
3 | description:
4 | ---
5 |
6 | # Recycle Bin
7 |
8 | This doc is WORK IN PROGRESS. It is expected to be published in early February, 2023.
9 |
--------------------------------------------------------------------------------
/docs/en/src/guide/functions/request-header-and-method.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Request Header and Method | AirCode Docs
3 | description:
4 | ---
5 |
6 | # Request Header and Method
7 |
8 | This doc is WORK IN PROGRESS. It is expected to be published in early February, 2023.
9 |
--------------------------------------------------------------------------------
/docs/en/src/guide/functions/response-header-and-code.md:
--------------------------------------------------------------------------------
1 | # Response Header and Code
2 |
3 | This doc is WORK IN PROGRESS. It is expected to be published in early February, 2023.
4 |
--------------------------------------------------------------------------------
/docs/en/src/guide/functions/schedule-jobs.md:
--------------------------------------------------------------------------------
1 | # Schedule Jobs
2 |
3 | This doc is WORK IN PROGRESS. It is expected to be published in early February, 2023.
4 |
--------------------------------------------------------------------------------
/docs/en/src/help/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: How can we help? | AirCode Docs
3 | description: Thank you for using AirCode. You can also send your questions for help in the following ways.
4 | ---
5 |
6 | # How can we help? {#intro}
7 |
8 | Thank you for using AirCode. In case of any problems, it is highly recommended that you read and search [documentation](https://docs.aircode.io). Our team will document every situation you might encounter and refine it.
9 |
10 | You can also send your questions for help in the following ways:
11 |
12 | 1. Our [GitHub Repositories](https://github.com/aircodelabs/aircode), which you can raise issues or contribute code directly
13 | 2. Our [Discord discussion](https://discord.com/invite/XrMVdYdEuY)
14 | 3. Email us directly at support@aircode.io
15 |
--------------------------------------------------------------------------------
/docs/en/src/public/_for_demos/7iBqrpbrMR.1678961115282_5j58e0jj3ek.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_for_demos/7iBqrpbrMR.1678961115282_5j58e0jj3ek.jpeg
--------------------------------------------------------------------------------
/docs/en/src/public/_for_demos/EOCMiSlTQd.1678973191167_6m66gudre3a.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_for_demos/EOCMiSlTQd.1678973191167_6m66gudre3a.jpeg
--------------------------------------------------------------------------------
/docs/en/src/public/_for_demos/Esy7zNI3Q1.1678969555549_rd7ay1qh7ll.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_for_demos/Esy7zNI3Q1.1678969555549_rd7ay1qh7ll.jpeg
--------------------------------------------------------------------------------
/docs/en/src/public/_for_demos/J_jGyCyi99.1678969998197_e78fjwawq76.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_for_demos/J_jGyCyi99.1678969998197_e78fjwawq76.jpeg
--------------------------------------------------------------------------------
/docs/en/src/public/_for_demos/QjOIQhLQRE.1678963311215_jz5wtb8616.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_for_demos/QjOIQhLQRE.1678963311215_jz5wtb8616.jpeg
--------------------------------------------------------------------------------
/docs/en/src/public/_for_demos/RipZ_OJve0.1678967439515_2yekizmozer.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_for_demos/RipZ_OJve0.1678967439515_2yekizmozer.jpeg
--------------------------------------------------------------------------------
/docs/en/src/public/_for_demos/Vw259mD5Ql.1678966093481_q459dr9sah.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_for_demos/Vw259mD5Ql.1678966093481_q459dr9sah.jpeg
--------------------------------------------------------------------------------
/docs/en/src/public/_for_demos/abGZmCNVv1.1678969088799_rmddraoxfv9.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_for_demos/abGZmCNVv1.1678969088799_rmddraoxfv9.jpeg
--------------------------------------------------------------------------------
/docs/en/src/public/_for_demos/cXHixpCmmM.1678963697117_a47i0h0bx7m.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_for_demos/cXHixpCmmM.1678963697117_a47i0h0bx7m.jpeg
--------------------------------------------------------------------------------
/docs/en/src/public/_for_demos/iKHNywGlC6.1678964136978_8c0scefyhgs.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_for_demos/iKHNywGlC6.1678964136978_8c0scefyhgs.jpeg
--------------------------------------------------------------------------------
/docs/en/src/public/_for_demos/ios-siri-en-new.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_for_demos/ios-siri-en-new.jpg
--------------------------------------------------------------------------------
/docs/en/src/public/_for_demos/k-5rOSznFW.1678966220369_a00sivzz5fw.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_for_demos/k-5rOSznFW.1678966220369_a00sivzz5fw.jpeg
--------------------------------------------------------------------------------
/docs/en/src/public/_for_demos/npLd_synKw.1678969398038_x2798jq1qfm.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_for_demos/npLd_synKw.1678969398038_x2798jq1qfm.jpeg
--------------------------------------------------------------------------------
/docs/en/src/public/_for_demos/pjtbwPn8SZ.1678963833926_ym91lypfua.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_for_demos/pjtbwPn8SZ.1678963833926_ym91lypfua.jpeg
--------------------------------------------------------------------------------
/docs/en/src/public/_for_demos/q6poKOBInJ.1678965860730_lbyqxujhw5d.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_for_demos/q6poKOBInJ.1678965860730_lbyqxujhw5d.jpeg
--------------------------------------------------------------------------------
/docs/en/src/public/_for_demos/yvKtxGuFPq.1678968859522_kpe6swgobd.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_for_demos/yvKtxGuFPq.1678968859522_kpe6swgobd.jpeg
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1668073287668.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1668073287668.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671505257580.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671505257580.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671505442147.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671505442147.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671505485031.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671505485031.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671505845666.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671505845666.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671505926961.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671505926961.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671506066219.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671506066219.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671506114424.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671506114424.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671506272223.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671506272223.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671506314802.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671506314802.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671506377900.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671506377900.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671506405456.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671506405456.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671508034400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671508034400.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671508051952.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671508051952.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671508270037.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671508270037.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671508319365.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671508319365.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671508523496.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671508523496.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671508539808.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671508539808.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671517135731.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671517135731.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671517161834.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671517161834.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671517286503.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671517286503.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671517302558.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671517302558.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671517345859.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671517345859.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671517361524.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671517361524.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671517409446.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671517409446.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671517428786.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671517428786.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671517484480.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671517484480.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671517502205.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671517502205.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671517558612.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671517558612.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671517589421.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671517589421.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671517737942.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671517737942.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671517801557.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671517801557.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671517933039.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671517933039.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671517968047.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671517968047.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671518075513.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671518075513.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671518232132.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671518232132.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671518299222.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671518299222.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671518321538.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671518321538.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671518414900.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671518414900.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671518437944.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671518437944.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671518583069.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671518583069.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671518674280.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671518674280.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671518780109.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671518780109.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671518807115.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671518807115.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671518837884.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671518837884.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671518863321.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671518863321.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671601906160.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671601906160.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671601929191.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671601929191.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671602166235.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671602166235.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671602188213.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671602188213.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671602371423.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671602371423.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671602394420.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671602394420.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671602431348.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671602431348.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671602456168.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671602456168.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671602530168.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671602530168.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671602551461.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671602551461.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671604531408.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671604531408.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671604567893.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671604567893.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671605062316.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671605062316.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671605076328.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671605076328.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671605606665.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671605606665.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671605611943.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671605611943.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671605636689.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671605636689.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671605783862.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671605783862.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671605834793.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671605834793.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671606050858.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671606050858.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671606088640.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671606088640.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671615584116.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671615584116.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1671615620868.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1671615620868.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1676895482734.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1676895482734.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1676895599710.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1676895599710.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1676895731555.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1676895731555.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1676895780514.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1676895780514.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1679043724370.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1679043724370.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1679043844440.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1679043844440.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1679044538436.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1679044538436.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1679044612993.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1679044612993.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1679045167630.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1679045167630.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1679045230195.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1679045230195.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1681195076163.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1681195076163.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1681195131773.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1681195131773.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1683529385015.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1683529385015.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1683529472390.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1683529472390.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1687839874264.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1687839874264.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1687840268830.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1687840268830.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1687939695902.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1687939695902.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1687941402462.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1687941402462.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1687941435342.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1687941435342.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1687941645021.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1687941645021.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1687941751546.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1687941751546.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1687941850850.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1687941850850.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1687942052252.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1687942052252.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1687942094699.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1687942094699.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1687942140281.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1687942140281.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1688015952700.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1688015952700.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/1688015974786.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/1688015974786.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/chatgpt-index/discord-chatgpt-bot.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/chatgpt-index/discord-chatgpt-bot.gif
--------------------------------------------------------------------------------
/docs/en/src/public/_images/chatgpt-index/ios-siri-en-new.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/chatgpt-index/ios-siri-en-new.jpg
--------------------------------------------------------------------------------
/docs/en/src/public/_images/chatgpt-index/slack-chatgpt-en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/chatgpt-index/slack-chatgpt-en.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/share-github/share-github-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/share-github/share-github-1.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/share-github/share-github-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/share-github/share-github-2.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/share-github/share-github-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/share-github/share-github-3.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/1-slack-demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/1-slack-demo.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/10-get-copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/10-get-copy.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/11-login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/11-login.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/12-create-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/12-create-app.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/13-env.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/13-env.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/14-deploy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/14-deploy.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/15-copy-url.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/15-copy-url.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/16-bot-event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/16-bot-event.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/17-bot-event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/17-bot-event.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/18-bot-event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/18-bot-event.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/19-bot-reinstall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/19-bot-reinstall.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/2-create-slack-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/2-create-slack-app.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/20-bot-setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/20-bot-setting.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/21-slack-bot-demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/21-slack-bot-demo.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/22-debug.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/22-debug.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/23-openAI.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/23-openAI.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/24-env.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/24-env.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/25-demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/25-demo.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/3-create-slack-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/3-create-slack-app.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/4-create-slack-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/4-create-slack-app.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/5-permissions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/5-permissions.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/6-add-scope.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/6-add-scope.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/7-install-slack-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/7-install-slack-app.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/8-add-slack-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/8-add-slack-app.png
--------------------------------------------------------------------------------
/docs/en/src/public/_images/tutorials/slack-chatgpt-en/9-copy-bot-token.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/_images/tutorials/slack-chatgpt-en/9-copy-bot-token.png
--------------------------------------------------------------------------------
/docs/en/src/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/en/src/public/favicon.ico
--------------------------------------------------------------------------------
/docs/en/src/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow:
3 |
--------------------------------------------------------------------------------
/docs/en/src/reference/server/functions-resource.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Static Resources | AirCode Docs
3 | description: AirCode supports static resource files by default, and files in the directory can be directly requested.
4 | ---
5 |
6 | # Static Resources {#public-resource}
7 |
8 | If you have static files that need to be deployed, you can place them in the `public` directory. AirCode automatically deploys all the contents of the `public` directory as static resources.
9 |
10 | ::: tip Tips
11 | The deployed URL ignores the `public` path. Suppose you have a file `public/a.js`. After the project is deployed, you can directly access this file through the URL `/a.js`. JavaScript files in the public directory are **NOT** compiled into cloud functions, so you cannot attempt to access the cloud function `a.js` by visiting `/public/a`.
12 | :::
13 |
--------------------------------------------------------------------------------
/docs/en/vercel.json:
--------------------------------------------------------------------------------
1 | {
2 | "cleanUrls": true,
3 | "headers": [
4 | {
5 | "source": "/(.*).(gif|jpe?g|bmp|png|js|css|woff|eot|woff2|ttf|svg)",
6 | "headers": [
7 | {
8 | "key": "Cache-Control",
9 | "value": "public, max-age=31536000, immutable"
10 | }
11 | ]
12 | }
13 | ],
14 | "redirects": [
15 | { "source": "/support/", "destination": "/help/" }
16 | ]
17 | }
18 |
--------------------------------------------------------------------------------
/docs/zh-cn/.vitepress/env.d.ts:
--------------------------------------------------------------------------------
1 | ///
--------------------------------------------------------------------------------
/docs/zh-cn/.vitepress/theme/components/ListBoxContainer.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
15 |
--------------------------------------------------------------------------------
/docs/zh-cn/.vitepress/tutorial-list.ts:
--------------------------------------------------------------------------------
1 | export default [
2 | { text: '将 Siri 接入 ChatGPT', link: 'https://aircode.cool/828668wg5a' },
3 | { text: '开发飞书 ChatGPT 机器人', link: 'https://aircode.cool/q4y1msdim4' },
4 | { text: '开发钉钉 ChatGPT 机器人', link: 'https://aircode.cool/xspb3by9fs' },
5 | { text: '开发企业微信 ChatGPT 应用', link: 'https://aircode.cool/54fhemjpk2' },
6 | { text: '开发 Slack ChatGPT 应用', link: 'https://aircode.cool/zx85v6ac4s' },
7 | { text: '开发 Discord ChatGPT Bot', link: 'https://aircode.cool/uumhsex1uc' },
8 | ];
9 |
--------------------------------------------------------------------------------
/docs/zh-cn/.yarnrc.yaml:
--------------------------------------------------------------------------------
1 | packageExtensions:
2 | '@docsearch/react@*':
3 | peerDependenciesMeta:
4 | '@types/react':
5 | optional: true
6 | 'react':
7 | optional: true
8 | 'react-dom':
9 | optional: true
--------------------------------------------------------------------------------
/docs/zh-cn/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "docs-zh-cn",
3 | "version": "0.0.0",
4 | "private": true,
5 | "license": "Apache-2.0",
6 | "scripts": {
7 | "dev": "yarn docs:dev",
8 | "docs:dev": "vitepress dev .",
9 | "docs:build": "vitepress build . && cp vercel.json .vitepress/dist",
10 | "docs:serve": "vitepress serve ."
11 | },
12 | "devDependencies": {
13 | "@types/mixpanel-browser": "^2.47.0",
14 | "typescript": "^4.7.4",
15 | "vitepress": "1.0.0-alpha.63",
16 | "vue": "^3.2.37"
17 | },
18 | "homepage": "https://docs.aircode.io",
19 | "repository": {
20 | "type": "git",
21 | "url": "https://github.com/aircodelabs/aircode.git",
22 | "directory": "docs/zh-cn"
23 | },
24 | "dependencies": {
25 | "axios": "^1.4.0",
26 | "medium-zoom": "^1.0.8",
27 | "mixpanel-browser": "^2.47.0"
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/docs/zh-cn/src/_partials/_features-list.md:
--------------------------------------------------------------------------------
1 |
2 |
7 |
12 |
17 |
22 |
32 |
37 |
--------------------------------------------------------------------------------
/docs/zh-cn/src/about/extensions.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 增强功能 | AirCode 文档
3 | description: 官方和开源社区提供了一系列扩展来增强 AirCode 的功能。
4 | ---
5 |
6 | # 增强功能 {#intro}
7 |
8 | 官方和开源社区提供了一系列扩展来增强 AirCode 的功能。
9 |
10 | 通过扩展提供的能力,你可以做到:
11 |
12 | 1. 使用自定义路由。
13 | 2. 开发部署包含前端页面的 Web 应用。
14 | 3. 运行 Express 和 Koa 应用。
15 |
16 | 具体的使用方法,详见 GitHub 仓库中的[文档](https://github.com/AirCodeLabs/aircode/tree/main/extensions)。
--------------------------------------------------------------------------------
/docs/zh-cn/src/errors/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 错误索引 | AirCode 文档
3 | description:
4 | ---
5 |
6 | # 错误索引
7 |
8 | This doc is WORK IN PROGRESS. It is expected to be published in early February, 2023.
9 |
--------------------------------------------------------------------------------
/docs/zh-cn/src/guide/accounts/create.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/guide/accounts/create.md
--------------------------------------------------------------------------------
/docs/zh-cn/src/guide/apps/manage.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/guide/apps/manage.md
--------------------------------------------------------------------------------
/docs/zh-cn/src/guide/database/web-management.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 在网页中管理数据 | AirCode 文档
3 | description: AirCode 提供了一套开箱即用的数据库功能,只需使用 `aircode.db` 即可在云函数中对数据进行存取操作。
4 | ---
5 |
6 | # 在网页中管理数据
7 |
8 | This doc is WORK IN PROGRESS. It is expected to be published in early February, 2023.
9 |
--------------------------------------------------------------------------------
/docs/zh-cn/src/guide/functions/fs.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 读写本地文件 | AirCode 文档
3 | description:
4 | ---
5 |
6 | # 读写本地文件
7 |
8 | This doc is WORK IN PROGRESS. It is expected to be published in early February, 2023.
9 |
--------------------------------------------------------------------------------
/docs/zh-cn/src/guide/functions/private.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 私有函数 | AirCode 文档
3 | description:
4 | ---
5 |
6 | # 私有函数
7 |
8 | This doc is WORK IN PROGRESS. It is expected to be published in early February, 2023.
9 |
--------------------------------------------------------------------------------
/docs/zh-cn/src/guide/functions/publish-to-github.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 推送函数至 GitHub | AirCode 文档
3 | description: 将你的函数文件同步至 GitHub。
4 | ---
5 |
6 | # 推送函数至 GitHub
7 |
8 | AirCode 提供了推送代码至 GitHub 的功能,通过如下步骤您可以将当前应用下的函数文件推送至 GitHub 仓库。
9 |
10 | 1. 进入该应用的 Dashboard 页面,在左上角点击 “Share to GitHub” 图标,在弹窗中点击 “Publish to GitHub”。
11 |
12 |
13 |
14 | 2. 如果当前帐号并未与 GitHub 帐号完成授权,点击后需先进行授权认证,授权后在弹窗中选择你需要同步的目标仓库、分支、文件夹目录(可提前新建一个 GitHub Private 仓库用于同步函数),点击 “Publish” 按钮开始同步代码。
15 |
16 |
17 |
18 | 3. 弹出推送成功提示后,代码将会同步至 GitHub 仓库。
19 |
20 |
--------------------------------------------------------------------------------
/docs/zh-cn/src/guide/functions/recycle.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 函数回收站 | AirCode 文档
3 | description:
4 | ---
5 |
6 | # 函数回收站
7 |
8 | This doc is WORK IN PROGRESS. It is expected to be published in early February, 2023.
9 |
--------------------------------------------------------------------------------
/docs/zh-cn/src/guide/functions/request-header-and-method.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 获取请求头和方法 | AirCode 文档
3 | description:
4 | ---
5 |
6 | # 获取请求头和方法
7 |
8 | This doc is WORK IN PROGRESS. It is expected to be published in early February, 2023.
9 |
--------------------------------------------------------------------------------
/docs/zh-cn/src/guide/functions/response-header-and-code.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 设置返回头和状态码 | AirCode 文档
3 | description:
4 | ---
5 |
6 | # 设置返回头和状态码
7 |
8 | This doc is WORK IN PROGRESS. It is expected to be published in early February, 2023.
9 |
--------------------------------------------------------------------------------
/docs/zh-cn/src/guide/functions/schedule-jobs.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 定时任务 | AirCode 文档
3 | description:
4 | ---
5 |
6 | # 定时任务
7 |
8 | This doc is WORK IN PROGRESS. It is expected to be published in early February, 2023.
9 |
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_for_demos/7iBqrpbrMR.1678961115282_5j58e0jj3ek.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_for_demos/7iBqrpbrMR.1678961115282_5j58e0jj3ek.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_for_demos/EOCMiSlTQd.1678973191167_6m66gudre3a.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_for_demos/EOCMiSlTQd.1678973191167_6m66gudre3a.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_for_demos/Esy7zNI3Q1.1678969555549_rd7ay1qh7ll.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_for_demos/Esy7zNI3Q1.1678969555549_rd7ay1qh7ll.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_for_demos/J_jGyCyi99.1678969998197_e78fjwawq76.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_for_demos/J_jGyCyi99.1678969998197_e78fjwawq76.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_for_demos/QjOIQhLQRE.1678963311215_jz5wtb8616.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_for_demos/QjOIQhLQRE.1678963311215_jz5wtb8616.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_for_demos/RipZ_OJve0.1678967439515_2yekizmozer.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_for_demos/RipZ_OJve0.1678967439515_2yekizmozer.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_for_demos/Vw259mD5Ql.1678966093481_q459dr9sah.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_for_demos/Vw259mD5Ql.1678966093481_q459dr9sah.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_for_demos/abGZmCNVv1.1678969088799_rmddraoxfv9.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_for_demos/abGZmCNVv1.1678969088799_rmddraoxfv9.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_for_demos/cXHixpCmmM.1678963697117_a47i0h0bx7m.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_for_demos/cXHixpCmmM.1678963697117_a47i0h0bx7m.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_for_demos/errJ-DCavN.1678960179433_4ldns6dksyd.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_for_demos/errJ-DCavN.1678960179433_4ldns6dksyd.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_for_demos/iKHNywGlC6.1678964136978_8c0scefyhgs.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_for_demos/iKHNywGlC6.1678964136978_8c0scefyhgs.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_for_demos/k-5rOSznFW.1678966220369_a00sivzz5fw.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_for_demos/k-5rOSznFW.1678966220369_a00sivzz5fw.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_for_demos/npLd_synKw.1678969398038_x2798jq1qfm.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_for_demos/npLd_synKw.1678969398038_x2798jq1qfm.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_for_demos/pjtbwPn8SZ.1678963833926_ym91lypfua.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_for_demos/pjtbwPn8SZ.1678963833926_ym91lypfua.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_for_demos/q6poKOBInJ.1678965860730_lbyqxujhw5d.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_for_demos/q6poKOBInJ.1678965860730_lbyqxujhw5d.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_for_demos/yvKtxGuFPq.1678968859522_kpe6swgobd.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_for_demos/yvKtxGuFPq.1678968859522_kpe6swgobd.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1668073287668.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1668073287668.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671505257580.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671505257580.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671505442147.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671505442147.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671505485031.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671505485031.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671505845666.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671505845666.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671505926961.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671505926961.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671506066219.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671506066219.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671506114424.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671506114424.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671506272223.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671506272223.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671506314802.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671506314802.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671506377900.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671506377900.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671506405456.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671506405456.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671508034400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671508034400.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671508051952.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671508051952.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671508270037.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671508270037.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671508319365.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671508319365.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671508523496.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671508523496.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671508539808.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671508539808.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671517135731.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671517135731.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671517161834.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671517161834.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671517286503.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671517286503.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671517302558.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671517302558.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671517345859.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671517345859.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671517361524.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671517361524.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671517409446.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671517409446.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671517428786.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671517428786.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671517484480.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671517484480.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671517502205.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671517502205.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671517558612.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671517558612.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671517589421.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671517589421.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671517737942.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671517737942.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671517801557.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671517801557.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671517933039.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671517933039.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671517968047.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671517968047.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671518075513.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671518075513.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671518232132.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671518232132.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671518299222.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671518299222.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671518321538.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671518321538.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671518414900.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671518414900.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671518437944.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671518437944.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671518583069.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671518583069.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671518674280.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671518674280.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671518780109.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671518780109.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671518807115.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671518807115.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671518837884.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671518837884.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671518863321.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671518863321.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671601906160.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671601906160.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671601929191.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671601929191.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671602166235.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671602166235.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671602188213.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671602188213.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671602371423.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671602371423.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671602394420.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671602394420.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671602431348.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671602431348.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671602456168.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671602456168.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671602530168.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671602530168.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671602551461.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671602551461.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671604531408.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671604531408.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671604567893.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671604567893.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671605062316.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671605062316.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671605076328.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671605076328.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671605606665.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671605606665.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671605611943.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671605611943.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671605636689.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671605636689.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671605783862.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671605783862.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671605834793.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671605834793.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671606050858.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671606050858.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671606088640.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671606088640.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671615584116.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671615584116.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1671615620868.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1671615620868.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1676895482734.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1676895482734.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1676895599710.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1676895599710.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1676895731555.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1676895731555.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1676895780514.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1676895780514.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1679043724370.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1679043724370.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1679043844440.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1679043844440.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1679044538436.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1679044538436.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1679044612993.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1679044612993.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1679045167630.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1679045167630.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1679045230195.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1679045230195.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1681195076163.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1681195076163.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1681195131773.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1681195131773.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1683529385015.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1683529385015.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1683529472390.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1683529472390.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1687839874264.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1687839874264.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1687840268830.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1687840268830.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1687939695902.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1687939695902.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1687941402462.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1687941402462.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1687941435342.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1687941435342.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1687941645021.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1687941645021.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1687941751546.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1687941751546.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1687941850850.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1687941850850.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1687942052252.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1687942052252.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1687942094699.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1687942094699.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1687942140281.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1687942140281.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1688015952700.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1688015952700.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/1688015974786.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/1688015974786.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/chatGPT-index/dingtalk-demo.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/chatGPT-index/dingtalk-demo.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/chatGPT-index/discord-chatgpt-bot.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/chatGPT-index/discord-chatgpt-bot.gif
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/chatGPT-index/feishu-demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/chatGPT-index/feishu-demo.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/chatGPT-index/siri-demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/chatGPT-index/siri-demo.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/chatGPT-index/slack-demo-cn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/chatGPT-index/slack-demo-cn.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/chatGPT-index/wecom-demo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/chatGPT-index/wecom-demo.jpg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/help/dingding.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/help/dingding.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/help/feishu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/help/feishu.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/help/feishu2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/help/feishu2.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/help/weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/help/weixin.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/share-github/share-github-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/share-github/share-github-1.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/share-github/share-github-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/share-github/share-github-2.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/share-github/share-github-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/share-github/share-github-3.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/copy-api-key.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/copy-api-key.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/copy-app-secret.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/copy-app-secret.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/copy-invoke-url.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/copy-invoke-url.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/create-aircode-app.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/create-aircode-app.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/create-dingtalk-app.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/create-dingtalk-app.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/create-openai-key.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/create-openai-key.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/demo-screenshot.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/demo-screenshot.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/deploy.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/deploy.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/dingtalk-platform.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/dingtalk-platform.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/dingtalk_group_qr.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/dingtalk_group_qr.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/enter-api-env.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/enter-api-env.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/enter-dingtalk-envs.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/enter-dingtalk-envs.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/enter-webhook.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/enter-webhook.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/get-a-copy.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/get-a-copy.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/input-robot-info-1.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/input-robot-info-1.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/input-robot-info-2.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/input-robot-info-2.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/login.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/login.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/mock-by-online-requests.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/mock-by-online-requests.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/switch-on-privilege.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/switch-on-privilege.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/switch-on-robot.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/switch-on-robot.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/test-chat-gpt.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/test-chat-gpt.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/test-robot-reply.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/dingtalk-chatgpt/test-robot-reply.jpeg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/1-demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/1-demo.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/10-deploy-aircode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/10-deploy-aircode.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/11-copy-webhook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/11-copy-webhook.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/12-bot-setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/12-bot-setting.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/13-bot-setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/13-bot-setting.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/14-1-add-event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/14-1-add-event.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/14-add-bot-event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/14-add-bot-event.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/15-bot-permission.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/15-bot-permission.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/16-bot-permission.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/16-bot-permission.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/17-publish-bot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/17-publish-bot.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/18-demo-chat-bot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/18-demo-chat-bot.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/19-demo-debug.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/19-demo-debug.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/2-create-bot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/2-create-bot.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/20-openAI.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/20-openAI.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/21-copy-env.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/21-copy-env.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/22-demo-chatGPT-bot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/22-demo-chatGPT-bot.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/3-create-bot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/3-create-bot.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/4-create-bot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/4-create-bot.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/5-create-bot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/5-create-bot.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/6-get-copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/6-get-copy.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/7-sigin-aircode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/7-sigin-aircode.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/8-create-aircode-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/8-create-aircode-app.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/9-copy-env.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/feishu-chatGPT/9-copy-env.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/1-slack-demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/1-slack-demo.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/10-get-copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/10-get-copy.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/11-login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/11-login.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/12-create-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/12-create-app.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/13-env.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/13-env.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/14-deploy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/14-deploy.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/15-copy-url.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/15-copy-url.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/16-bot-event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/16-bot-event.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/17-bot-event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/17-bot-event.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/18-bot-event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/18-bot-event.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/19-bot-reinstall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/19-bot-reinstall.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/2-create-slack-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/2-create-slack-app.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/20-bot-setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/20-bot-setting.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/21-slack-bot-demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/21-slack-bot-demo.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/22-debug.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/22-debug.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/23-openAI.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/23-openAI.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/24-env.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/24-env.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/25-demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/25-demo.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/3-create-slack-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/3-create-slack-app.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/4-create-slack-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/4-create-slack-app.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/5-permissions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/5-permissions.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/6-add-scope.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/6-add-scope.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/7-install-slack-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/7-install-slack-app.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/8-add-slack-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/8-add-slack-app.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/9-copy-bot-token.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/slack-chatgpt-cn/9-copy-bot-token.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/1-weixin-demo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/1-weixin-demo.jpg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/10-weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/10-weixin.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/11-weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/11-weixin.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/12-weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/12-weixin.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/13-weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/13-weixin.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/14-weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/14-weixin.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/15-deploy-aircode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/15-deploy-aircode.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/16-weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/16-weixin.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/17-weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/17-weixin.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/18-weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/18-weixin.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/19-weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/19-weixin.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/2-weixin-login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/2-weixin-login.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/20-weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/20-weixin.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/21-weixin.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/21-weixin.jpg
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/22-weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/22-weixin.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/23-weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/23-weixin.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/24-openAI.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/24-openAI.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/25-weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/25-weixin.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/26-weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/26-weixin.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/3-weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/3-weixin.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/4-weixin-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/4-weixin-create.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/5-weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/5-weixin.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/6-weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/6-weixin.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/7-weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/7-weixin.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/8-sigin-aircode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/8-sigin-aircode.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/9-weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/_images/tutorials/weixin-chatgpt/9-weixin.png
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/docs/zh-cn/src/public/favicon.ico
--------------------------------------------------------------------------------
/docs/zh-cn/src/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow:
3 |
--------------------------------------------------------------------------------
/docs/zh-cn/src/reference/server/functions-resource.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 静态资源请求 | AirCode 文档
3 | description: AirCode 默认支持静态资源文件目录,目录下的文件可以直接请求。
4 | ---
5 |
6 | # 静态资源请求 {#public-resource}
7 |
8 | 如果你有静态文件需要被部署,可以将它放在 `public` 目录下。AirCode 默认将 `public` 目录下的内容发布为静态资源。
9 |
10 | ::: tip 提示
11 | 发布后的 URL 忽略 `public` 路径。假设你有一个文件 `public/a.js`,那么当项目部署后,你可以通过 URL `/a.js` 直接访问到这个文件。`public` 目录下的 js 文件不会被编译为云函数,因此你不能试图通过访问 `/public/a` 来访问云函数 `a.js`。
12 | :::
--------------------------------------------------------------------------------
/docs/zh-cn/vercel.json:
--------------------------------------------------------------------------------
1 | {
2 | "cleanUrls": true,
3 | "headers": [
4 | {
5 | "source": "/(.*).(gif|jpe?g|bmp|png|js|css|woff|eot|woff2|ttf|svg)",
6 | "headers": [
7 | {
8 | "key": "Cache-Control",
9 | "value": "public, max-age=31536000, immutable"
10 | }
11 | ]
12 | }
13 | ],
14 | "redirects": [
15 | { "source": "/support/", "destination": "/help/" }
16 | ]
17 | }
--------------------------------------------------------------------------------
/examples/CDN-fileuploader-with-bunny/.aircoderc.js:
--------------------------------------------------------------------------------
1 | process.env.token = 'aircode';
2 | process.env.accessKey = '';
--------------------------------------------------------------------------------
/examples/CDN-fileuploader-with-bunny/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "CDN-fileuploader",
3 | "runtime": "node/v16",
4 | "timeout": 60,
5 | "region": "US",
6 | "envs": [
7 | "token",
8 | "accessKey"
9 | ],
10 | "typescript": false
11 | }
12 |
--------------------------------------------------------------------------------
/examples/CDN-fileuploader-with-bunny/index.js:
--------------------------------------------------------------------------------
1 | // @see https://docs.aircode.io/guide/functions/
2 | const App = require('aircode-app');
3 |
4 | const app = new App();
5 |
6 | app.use((ctx, next) => {
7 | ctx.set('content-type', 'text/html');
8 | ctx.body = app.display('./upload.tpl');
9 | });
10 |
11 | module.exports = app.run();
12 |
--------------------------------------------------------------------------------
/examples/CDN-fileuploader-with-bunny/lib/test.js:
--------------------------------------------------------------------------------
1 | // @see https://docs.aircode.io/guide/functions/
2 | const aircode = require('aircode');
3 | const uploadFile = require('./bunny-api');
4 |
5 | module.exports = async function (params, context) {
6 | console.log('Received params:', params);
7 | const res = await uploadFile('abc', 'text.txt');
8 | console.log(res);
9 | return {
10 | message: 'Hi, AirCode.',
11 | };
12 | };
13 |
--------------------------------------------------------------------------------
/examples/CDN-fileuploader-with-bunny/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "aircode": "0.6.0",
4 | "aircode-app": "0.2.0",
5 | "mime": "3.0.0",
6 | "node-fetch": "2.6.12",
7 | "uglify-js": "3.17.4"
8 | },
9 | "scripts": {
10 | "start": "cross-env AC_FAAS_ROOT=. AC_PORT=3000 run-aircode --init"
11 | },
12 | "devDependencies": {
13 | "@aircodelabs/hydrogen": "^0.2.2",
14 | "cross-env": "^7.0.3"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/examples/CDN-fileuploader-with-bunny/style.css:
--------------------------------------------------------------------------------
1 | * {
2 | font-size: 14px;
3 | }
4 | .drag-area {
5 | width: 90vw;
6 | border: dashed 1px gray;
7 | color: #777;
8 | margin: 20px auto;
9 | height: 40vh;
10 | max-height: 450px;
11 | }
12 | .drag-area.active {
13 | color:red;
14 | border-color:red;
15 | }
16 | .footer {
17 | float: right;
18 | margin-right: 5vw;
19 | }
20 | .uploader-tips {
21 | text-align: center;
22 | height: 200px;
23 | line-height: 200px;
24 | }
25 | .file-name {
26 | text-align: center;
27 | height: 200px;
28 | line-height: 200px;
29 | }
30 | .upload-result {
31 | margin-top: 60px;
32 | margin-left: 5vw;
33 | }
34 | .upload-result .error {
35 | color: red;
36 | }
37 | .upload-result .copy {
38 | margin-left: 10px;
39 | }
--------------------------------------------------------------------------------
/examples/billboard-dating-guy/README.md:
--------------------------------------------------------------------------------
1 | # Billboard-dating-guy
2 |
3 | Use AirCode to generate funny images.
4 |
5 | ## Demo
6 |
7 | https://tgzpbhucv6.us.aircode.run/hello?text=Hi~%0AAirCode!&x=180&y=140&width=800&height=500
8 |
9 |
10 |
11 | ## Deploy on your own project
12 |
13 | 👇 Click the following button to get a copy then deploy on your own project.
14 |
15 | [](https://aircode.io/dashboard?share_shareId=nm5d56668b&share_name=billboard-dating-guy&share_runtime=node/v16)
16 |
--------------------------------------------------------------------------------
/examples/billboard-dating-guy/hello.js:
--------------------------------------------------------------------------------
1 | // @see https://docs.aircode.io/guide/functions/
2 | const aircode = require('aircode');
3 | const draw = require('./lib/gaobai');
4 |
5 | module.exports = async function (params, context) {
6 | const {text, x, y, width, height} = params;
7 | context.set('content-type', 'image/png');
8 | return draw({
9 | text,
10 | x: Number(x),
11 | y: Number(y),
12 | width: Number(width),
13 | height: Number(height),
14 | });
15 | };
16 |
--------------------------------------------------------------------------------
/examples/billboard-dating-guy/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "billboard-dating-guy",
3 | "version": "0.0.0",
4 | "description": "",
5 | "main": "hello.js",
6 | "directories": {
7 | "lib": "lib"
8 | },
9 | "scripts": {
10 | "test": "echo \"Error: no test specified\" && exit 1"
11 | },
12 | "keywords": [],
13 | "author": "",
14 | "license": "MIT"
15 | }
16 |
--------------------------------------------------------------------------------
/examples/blog-subscription-and-pushing/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Blog subscription and email pushing",
3 | "runtime": "node/v16",
4 | "retion": "US",
5 | "envs": [
6 | "RESEND_API_KEY"
7 | ],
8 | "typescript": true
9 | }
--------------------------------------------------------------------------------
/examples/blog-subscription-and-pushing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "@babel/preset-react": "7.22.5",
4 | "@babel/register": "7.22.5",
5 | "@react-email/components": "0.0.7",
6 | "@react-email/render": "0.0.7",
7 | "aircode": "0.6.1",
8 | "react": "18.2.0",
9 | "resend": "1.0.0",
10 | "typescript": "4.9.5"
11 | }
12 | }
--------------------------------------------------------------------------------
/examples/blog-subscription-and-pushing/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json.schemastore.org/tsconfig",
3 | "compilerOptions": {
4 | "lib": ["es2021"],
5 | "module": "Node16",
6 | "target": "es2021",
7 | "strict": true,
8 | "esModuleInterop": true,
9 | "skipLibCheck": true,
10 | "forceConsistentCasingInFileNames": true,
11 | "moduleResolution": "node",
12 | "jsx": "react",
13 | }
14 | }
--------------------------------------------------------------------------------
/examples/chatgpt-plugin-todolist/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "TODOList",
3 | "runtime": "node/v16",
4 | "timeout": 60,
5 | "region": "US",
6 | "envs": [],
7 | "typescript": false
8 | }
9 |
--------------------------------------------------------------------------------
/examples/chatgpt-plugin-todolist/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "aircode": "0.6.1",
4 | "typescript": "5.1.6"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/examples/chatgpt-plugin-todolist/public/.well-known/ai-plugin.json:
--------------------------------------------------------------------------------
1 | {
2 | "schema_version": "v1",
3 | "name_for_human": "TODO List (No Auth)",
4 | "name_for_model": "todo",
5 | "description_for_human": "Manage your TODO list. You can add, remove and view your TODOs.",
6 | "description_for_model": "Plugin for managing a TODO list, you can add, remove and view your TODOs.",
7 | "auth": {
8 | "type": "none"
9 | },
10 | "api": {
11 | "type": "openapi",
12 | "url": "https://ned36itbyh.us.aircode.run/openapi.yaml"
13 | },
14 | "logo_url": "https://ned36itbyh.us.aircode.run/logo.png",
15 | "contact_email": "support@example.com",
16 | "legal_info_url": "https://example.com/legal"
17 | }
--------------------------------------------------------------------------------
/examples/chatgpt-plugin-todolist/todos.ts:
--------------------------------------------------------------------------------
1 | // @see https://docs.aircode.io/guide/functions/
2 | import aircode from 'aircode';
3 |
4 | export default async function (params: any, context: any) {
5 | const { action, username, todo, todo_idx, _id } = params;
6 |
7 | const todoTable = aircode.db.table('TODO');
8 |
9 | let result;
10 |
11 | if (action === 'get') {
12 |
13 | result = await todoTable.where({
14 | }).find();
15 |
16 | } else if (action === 'add') {
17 |
18 | result = await todoTable.save({
19 | action,
20 | username,
21 | todo,
22 | todo_idx,
23 | });
24 |
25 | } else if (action === 'delete') {
26 | result = await todoTable.where({
27 | _id: _id
28 | });
29 | }
30 |
31 | console.log('Received params:', params);
32 |
33 | return result;
34 | }
35 |
--------------------------------------------------------------------------------
/examples/chatgpt-plugin-todolist/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json.schemastore.org/tsconfig",
3 | "compilerOptions": {
4 | "lib": ["es2020"],
5 | "module": "commonjs",
6 | "target": "es2020",
7 | "strict": true,
8 | "esModuleInterop": true,
9 | "skipLibCheck": true,
10 | "forceConsistentCasingInFileNames": true,
11 | "moduleResolution": "node"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/examples/chatgpt-plugin/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ChatGPT",
3 | "runtime": "node/v16",
4 | "timeout": 60,
5 | "region": "US",
6 | "envs": [],
7 | "typescript": false
8 | }
9 |
--------------------------------------------------------------------------------
/examples/chatgpt-plugin/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "@types/pg": "8.10.2",
4 | "aircode": "0.6.1",
5 | "pg": "8.11.2",
6 | "typescript": "5.1.6"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/examples/chatgpt-plugin/public/.well-known/ai-plugin.json:
--------------------------------------------------------------------------------
1 | {
2 | "schema_version": "v1",
3 | "name_for_human": "Natural Language Query",
4 | "name_for_model": "nlq_postgresql",
5 | "description_for_human": "Query your PostgreSQL database using natural language.",
6 | "description_for_model": "Plugin for querying a PostgreSQL database using natural language. Users can make inquiries and receive answers without needing to write specific SQL queries.",
7 | "auth": {
8 | "type": "none"
9 | },
10 | "api": {
11 | "type": "openapi",
12 | "url": "https://z58n74aig5.us.aircode.run/openapi.yaml"
13 | },
14 | "logo_url": "https://z58n74aig5.us.aircode.run/logo.png",
15 | "contact_email": "support@z58n74aig5.us.aircode.run",
16 | "legal_info_url": "https://z58n74aig5.us.aircode.run/legal"
17 | }
18 |
--------------------------------------------------------------------------------
/examples/chatgpt-plugin/queryAPI.ts:
--------------------------------------------------------------------------------
1 | // @see https://docs.aircode.io/guide/functions/
2 | import aircode from 'aircode';
3 | import { Client } from 'pg';
4 |
5 | export default async function (params: any, context: any) {
6 |
7 | const { url, sql } = params;
8 |
9 | const client = new Client({
10 | connectionString: url,
11 | });
12 |
13 | try {
14 | await client.connect();
15 |
16 | // Execute the provided SQL query
17 | const result = await client.query(sql);
18 |
19 | // Return the result
20 | return { response: result.rows };
21 | } catch (err) {
22 | console.error('Error executing SQL query:', err);
23 | throw err;
24 | } finally {
25 | await client.end();
26 | }
27 | };
28 |
--------------------------------------------------------------------------------
/examples/chatgpt-plugin/todos.ts:
--------------------------------------------------------------------------------
1 | // @see https://docs.aircode.io/guide/functions/
2 | import aircode from 'aircode';
3 |
4 | export default async function (params: any, context: any) {
5 | const { action, username, todo, todo_idx, _id } = params;
6 |
7 | const todoTable = aircode.db.table('TODO');
8 |
9 | let result;
10 |
11 | if (action === 'get') {
12 |
13 | result = await todoTable.where({
14 | }).find();
15 |
16 | } else if (action === 'add') {
17 |
18 | result = await todoTable.save({
19 | action,
20 | username,
21 | todo,
22 | todo_idx,
23 | });
24 |
25 | } else if (action === 'delete') {
26 | result = await todoTable.where({
27 | _id: _id
28 | });
29 | }
30 |
31 | console.log('Received params:', params);
32 |
33 | return result;
34 | }
35 |
--------------------------------------------------------------------------------
/examples/chatgpt-plugin/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json.schemastore.org/tsconfig",
3 | "compilerOptions": {
4 | "lib": [
5 | "es2020"
6 | ],
7 | "module": "commonjs",
8 | "target": "es2020",
9 | "strict": true,
10 | "esModuleInterop": true,
11 | "skipLibCheck": true,
12 | "forceConsistentCasingInFileNames": true,
13 | "moduleResolution": "node"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/examples/chatgpt-stream/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ChatGPT Stream",
3 | "runtime": "node/v18",
4 | "retion": "US",
5 | "envs": [
6 | "OPENAI_API_KEY"
7 | ],
8 | "typescript": false
9 | }
--------------------------------------------------------------------------------
/examples/chatgpt-stream/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "aircode": "0.7.0"
4 | }
5 | }
--------------------------------------------------------------------------------
/examples/cicada/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "cicada",
3 | "runtime": "node/v16",
4 | "timeout": 60,
5 | "region": "US",
6 | "envs": [
7 | "token"
8 | ],
9 | "typescript": false
10 | }
11 |
--------------------------------------------------------------------------------
/examples/cicada/auth.js:
--------------------------------------------------------------------------------
1 | // @see https://docs.aircode.io/guide/functions/
2 | const aircode = require('aircode');
3 | const checkAuth = require('./lib/auth.js');
4 |
5 | module.exports = async function (params, context) {
6 | const {token} = params;
7 | const auth = checkAuth({
8 | headers: {'x-cicada-token': token},
9 | status: (state) => context.status(state),
10 | });
11 | if(auth) return auth;
12 | else return {error:'', reason: 'success', token};
13 | };
14 |
--------------------------------------------------------------------------------
/examples/cicada/delete.js:
--------------------------------------------------------------------------------
1 | // @see https://docs.aircode.io/guide/functions/
2 | const aircode = require('aircode');
3 | const {deleteRecord} = require('./model/favorite.js');
4 | const checkAuth = require('./lib/auth.js');
5 |
6 | module.exports = async function (params, context) {
7 | const auth = checkAuth(context);
8 | if(auth) return auth;
9 |
10 | const {method} = context;
11 |
12 | if(method === 'POST') {
13 | const {id} = params;
14 | if(!id) {
15 | context.status(400);
16 | return {
17 | error: 'invalid record',
18 | };
19 | }
20 | return await deleteRecord({id});
21 | } else {
22 | context.status(403);
23 | return {
24 | error: 'forbidden',
25 | };
26 | }
27 | };
28 |
--------------------------------------------------------------------------------
/examples/cicada/lib/auth.js:
--------------------------------------------------------------------------------
1 | module.exports = function (context) {
2 | if(context.headers['x-cicada-token'] !== process.env.token) {
3 | context.status(403);
4 | return {error: 'forbidden', reason: 'invalid token'};
5 | }
6 | return null;
7 | };
--------------------------------------------------------------------------------
/examples/cicada/lib/config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | PAGE_SIZE: 10,
3 | };
4 |
--------------------------------------------------------------------------------
/examples/cicada/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "aircode": "0.5.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/examples/cicada/save.js:
--------------------------------------------------------------------------------
1 | // @see https://docs.aircode.io/guide/functions/
2 | const aircode = require('aircode');
3 | const {saveRecord} = require('./model/favorite.js');
4 | const checkAuth = require('./lib/auth.js');
5 |
6 | module.exports = async function (params, context) {
7 | const auth = checkAuth(context);
8 | if(auth) return auth;
9 |
10 | const {method} = context;
11 |
12 | if(method === 'POST') {
13 | const {title, url, summary, tags} = params;
14 | if(!title || !url) {
15 | context.status(400);
16 | return {
17 | error: 'invalid record',
18 | };
19 | }
20 | return await saveRecord({title, url, summary, tags});
21 | } else {
22 | context.status(403);
23 | return {
24 | error: 'forbidden',
25 | };
26 | }
27 | };
28 |
--------------------------------------------------------------------------------
/examples/cicada/tag.js:
--------------------------------------------------------------------------------
1 | // @see https://docs.aircode.io/guide/functions/
2 | const aircode = require('aircode');
3 | const {getRecordsByTag, getRecordsCount} = require('./model/favorite.js');
4 | const checkAuth = require('./lib/auth.js');
5 |
6 | module.exports = async function (params, context) {
7 | const auth = checkAuth(context);
8 | if(auth) return auth;
9 |
10 | const {method, headers} = context;
11 |
12 | if(method === 'GET' || headers['x-cicada-action'] === 'get') {
13 | const {tag} = params;
14 | if(!tag) {
15 | context.status(400);
16 | return {
17 | error: 'invalid tag',
18 | };
19 | }
20 | const page = Number(params.page) || 1;
21 | return await getRecordsByTag({tag, page});
22 | } else {
23 | context.status(403);
24 | return {
25 | error: 'forbidden',
26 | };
27 | }
28 | };
29 |
--------------------------------------------------------------------------------
/examples/discord-chatgpt-app/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Discord ChatGPT",
3 | "runtime": "node/v16",
4 | "retion": "HK",
5 | "envs": [
6 | "DISCORD_BOT_TOKEN",
7 | "DISCORD_PUBLIC_KEY",
8 | "DISCORD_APP_ID",
9 | "OPENAI_KEY"
10 | ],
11 | "typescript": false
12 | }
--------------------------------------------------------------------------------
/examples/discord-chatgpt-app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "aircode": "0.4.1",
4 | "axios": "1.4.0",
5 | "discord-interactions": "3.4.0",
6 | "discord.js": "14.11.0",
7 | "openai": "3.2.1",
8 | "tweetnacl": "1.0.3"
9 | }
10 | }
--------------------------------------------------------------------------------
/examples/discord-javascript-weekly/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Discord JavaScript Weekly Bot",
3 | "runtime": "node/v18",
4 | "retion": "US",
5 | "envs": [
6 | "discordWebHook"
7 | ],
8 | "typescript": false
9 | }
--------------------------------------------------------------------------------
/examples/discord-javascript-weekly/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "aircode": "0.7.0",
4 | "axios": "1.5.0",
5 | "cheerio": "1.0.0-rc.12"
6 | }
7 | }
--------------------------------------------------------------------------------
/examples/discord-javascript-weekly/tools.js:
--------------------------------------------------------------------------------
1 | const cheerio = require('cheerio');
2 |
3 | module.exports = {
4 | format: async (htmlString) => {
5 | const $ = cheerio.load(htmlString);
6 | let itemEles = $('#content>.el-item');
7 | const imageURL = $('#content>.el-fullwidthimage img').attr('src');
8 | const data = [
9 | {
10 | title: itemEles.eq(0).find('a').eq(0).text().trim(),
11 | url: itemEles.eq(0).find('a').eq(0).attr('href'),
12 | imageURL,
13 | },
14 | ];
15 | itemEles = itemEles.find('.mainlink a');
16 |
17 | // Only 8 pieces of data are displayed in order not to disturb or cause disgust
18 | for (let i = 1; i < 8; i++) {
19 | const dom = itemEles.eq(i);
20 | data.push({
21 | title: dom.text().trim(),
22 | url: dom.attr('href'),
23 | });
24 | }
25 | return data;
26 | },
27 | };
28 |
--------------------------------------------------------------------------------
/examples/express-markdown/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "express-markdown",
3 | "runtime": "node/v16",
4 | "timeout": 60,
5 | "region": "US",
6 | "envs": [
7 | "EXPERIMENTAL_ROUTE"
8 | ],
9 | "typescript": false
10 | }
11 |
--------------------------------------------------------------------------------
/examples/express-markdown/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "aircode": "0.6.1",
4 | "aircode-adapter": "0.3.1",
5 | "escape-html": "1.0.3",
6 | "express": "4.18.2",
7 | "marked": "7.0.3"
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/examples/express-markdown/views/index.md:
--------------------------------------------------------------------------------
1 | # {title}
2 |
3 | Just an example view rendered with _markdown_.
--------------------------------------------------------------------------------
/examples/express-markdown/views/missing.md:
--------------------------------------------------------------------------------
1 | # {title}
2 |
3 | Not Found.
--------------------------------------------------------------------------------
/examples/koa-blog/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "koa-blog",
3 | "runtime": "node/v16",
4 | "timeout": 60,
5 | "region": "US",
6 | "envs": [
7 | "EXPERIMENTAL_ROUTE"
8 | ],
9 | "typescript": false
10 | }
11 |
--------------------------------------------------------------------------------
/examples/koa-blog/lib/render.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Module dependencies.
3 | */
4 |
5 | const views = require('@ladjs/koa-views');
6 | const path = require('path');
7 |
8 | // setup views mapping .html
9 | // to the hbs template engine
10 | module.exports = views(path.join(__dirname, '/../views'), {
11 | map: { html: 'nunjucks' }
12 | });
13 |
--------------------------------------------------------------------------------
/examples/koa-blog/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "@koa/router": "12.0.0",
4 | "@ladjs/koa-views": "9.0.0",
5 | "aircode": "0.6.1",
6 | "aircode-adapter": "0.3.1",
7 | "koa": "2.14.2",
8 | "koa-logger": "3.2.1",
9 | "nunjucks": "3.2.4"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/examples/koa-blog/views/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Blog
4 |
5 |
6 | {% for post in posts %}
7 | {% endfor %}
8 |
9 |
--------------------------------------------------------------------------------
/examples/koa-blog/views/list.html:
--------------------------------------------------------------------------------
1 | {% extends 'views/layout.html' %}
2 |
3 | {% block title %}Posts{% endblock %}
4 |
5 | {% block content %}
6 | Posts
7 | You have {{ posts.length }} posts!
8 | Create a Post
9 |
10 | {% for post in posts %}
11 | -
12 |
{{ post.title }}
13 | Read post
14 |
15 | {% endfor %}
16 |
17 | {% endblock %}
--------------------------------------------------------------------------------
/examples/koa-blog/views/new.html:
--------------------------------------------------------------------------------
1 | {% extends 'views/layout.html' %}
2 |
3 | {% block title %}New Post{% endblock %}
4 |
5 | {% block content %}
6 | New Post
7 | Create a new post.
8 |
13 | {% endblock %}
--------------------------------------------------------------------------------
/examples/koa-blog/views/show.html:
--------------------------------------------------------------------------------
1 | {% extends 'views/layout.html' %}
2 |
3 | {% block title %}{{ post.title }}{% endblock %}
4 |
5 | {% block content %}
6 | {{ post.title }}
7 | {{ post.body }}
8 | {% endblock %}
--------------------------------------------------------------------------------
/examples/langchain/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | package-lock.json
3 | run.ts
4 | stop.ts
5 | temp/
--------------------------------------------------------------------------------
/examples/langchain/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Langchain",
3 | "runtime": "node/v18",
4 | "retion": "US",
5 | "envs": [
6 | "OPENAI_API_KEY",
7 | "FIELD",
8 | "REDIS_URI"
9 | ],
10 | "typescript": true
11 | }
--------------------------------------------------------------------------------
/examples/langchain/docs/deploy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/examples/langchain/docs/deploy.png
--------------------------------------------------------------------------------
/examples/langchain/docs/envs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/examples/langchain/docs/envs.png
--------------------------------------------------------------------------------
/examples/langchain/docs/logic.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/examples/langchain/docs/logic.jpg
--------------------------------------------------------------------------------
/examples/langchain/docs/test.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/examples/langchain/docs/test.jpeg
--------------------------------------------------------------------------------
/examples/langchain/docs/upload.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/examples/langchain/docs/upload.jpeg
--------------------------------------------------------------------------------
/examples/langchain/lib/knowledge.ts:
--------------------------------------------------------------------------------
1 | import { CharacterTextSplitter } from "langchain/text_splitter";
2 | import axios from 'axios';
3 | import aircode from 'aircode';
4 |
5 | const loader = async () => {
6 | // todo 后续支持多文本格式
7 | const files = await aircode.db.table('_files').where().find();
8 | const fileUrls = files.map((file) => {
9 | return file.url;
10 | });
11 |
12 | const promises = fileUrls.map((fileUrl) => {
13 | return axios.get(fileUrl);
14 | });
15 |
16 | const responses = await Promise.all(promises);
17 |
18 | const splitter = new CharacterTextSplitter({
19 | separator: '\n\n',
20 | });
21 |
22 | const texts = responses.map((res) => {
23 | return res.data;
24 | })
25 | const docs = await splitter.createDocuments(texts);
26 | return docs;
27 | }
28 |
29 | export default { loader };
30 |
--------------------------------------------------------------------------------
/examples/langchain/main.ts:
--------------------------------------------------------------------------------
1 | // @see https://docs.aircode.io/guide/functions/
2 | // import aircode from 'aircode';
3 | import Chat from './chat';
4 |
5 | export default async function (params: any, context: any) {
6 | console.log('Received params:', params);
7 |
8 | const chat = Chat.getInstance(params.userId);
9 |
10 | const response = await chat.question(params.question, params.command);
11 | console.log(response);
12 |
13 | return {
14 | response,
15 | };
16 | };
17 |
--------------------------------------------------------------------------------
/examples/langchain/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": {
3 | "start": "ts-node run.ts",
4 | "ts-node": "ts-node"
5 | },
6 | "dependencies": {
7 | "aircode": "0.6.1",
8 | "axios": "^1.4.0",
9 | "hnswlib-node": "^1.4.2",
10 | "ioredis": "5.3.2",
11 | "langchain": "0.0.132",
12 | "typescript": "4.9.5"
13 | },
14 | "devDependencies": {
15 | "ts-node": "^10.9.1"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/examples/langchain/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json.schemastore.org/tsconfig",
3 | "compilerOptions": {
4 | "lib": ["es2021"],
5 | "module": "Node16",
6 | "target": "es2021",
7 | "strict": true,
8 | "esModuleInterop": true,
9 | "skipLibCheck": true,
10 | "forceConsistentCasingInFileNames": true,
11 | "moduleResolution": "node"
12 | }
13 | }
--------------------------------------------------------------------------------
/examples/modular-demo/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## One-Click Deployment
4 |
5 | Easily get a copy and launch your app on [AirCode](https://aircode.io/) by clicking the button below.
6 |
7 | [](https://aircode.io/dashboard?owner=AirCodeLabs&repo=aircode&branch=main&path=examples%2Fmodular-demo&appname=modular-demo)
--------------------------------------------------------------------------------
/examples/modular-demo/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "modular-demo",
3 | "runtime": "node/v16",
4 | "timeout": 60,
5 | "region": "US",
6 | "envs": [],
7 | "typescript": false
8 | }
9 |
--------------------------------------------------------------------------------
/examples/modular-demo/index.mjs:
--------------------------------------------------------------------------------
1 | import {config, context, modular} from 'http-modular';
2 |
3 | function add(x, y) {
4 | return x + y;
5 | }
6 |
7 | function hello() {
8 | return {hi: 'there'};
9 | }
10 |
11 | const echo = context(ctx => ctx.request.body);
12 |
13 | export default modular({
14 | add,
15 | echo,
16 | hello,
17 | }, config.aircode);
--------------------------------------------------------------------------------
/examples/modular-demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "aircode": "0.6.1",
4 | "http-modular": "0.2.0"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/examples/modular-kv-demo/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## One-Click Deployment
4 |
5 | Easily get a copy and launch your app on [AirCode](https://aircode.io/) by clicking the button below.
6 |
7 | [](https://aircode.io/dashboard?owner=AirCodeLabs&repo=aircode&branch=main&path=examples%2Fmodular-kv-demo&appname=modular-kv-demo)
--------------------------------------------------------------------------------
/examples/modular-kv-demo/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "modular-kv-demo",
3 | "runtime": "node/v16",
4 | "timeout": 60,
5 | "region": "US",
6 | "envs": [],
7 | "typescript": false
8 | }
9 |
--------------------------------------------------------------------------------
/examples/modular-kv-demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "aircode": "0.6.1",
4 | "crypto-hash": "2.0.1",
5 | "http-modular": "0.2.0"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/examples/realtime-chat-room/chat-room-be/README.md:
--------------------------------------------------------------------------------
1 | # Chat Room
2 |
3 | This is the AirCode demo that create chatrooms with [Pusher Extension](https://github.com/AirCodeLabs/aircode/tree/main/extensions/aircode-pusher).
4 |
5 |
6 |
7 | ## One-Click Deployment
8 |
9 | Easily get a copy and launch your app on [AirCode](https://aircode.io/) by clicking the button below.
10 |
11 | [](https://aircode.io/dashboard?owner=AirCodeLabs&repo=aircode&branch=main&path=examples%2Frealtime-chat-room&appname=realtime-chat-room)
--------------------------------------------------------------------------------
/examples/realtime-chat-room/chat-room-be/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "chat-room",
3 | "runtime": "node/v16",
4 | "timeout": 60,
5 | "region": "US",
6 | "envs": [],
7 | "typescript": false
8 | }
9 |
--------------------------------------------------------------------------------
/examples/realtime-chat-room/chat-room-be/index.js:
--------------------------------------------------------------------------------
1 | const {db} = require('aircode');
2 | const {Pusher} = require('aircode-pusher');
3 | const pusher = new Pusher(Pusher.DEBUG_CONFIG);
4 |
5 | const historyTable = db.table('messages');
6 | const channel = pusher.channel('chat-channel');
7 |
8 | channel.subscribe('chat', async ({event, data}) => {
9 | await historyTable.save(data);
10 | await channel.trigger(event, data);
11 | });
12 |
13 | channel.subscribe('get-history', async ({event, data, channel}) => {
14 | // Get history messages
15 | const count = data.count || 10;
16 |
17 | const messages = await historyTable.where()
18 | .sort({createdAt: -1})
19 | .projection({user: true, message: true, datetime: true})
20 | .limit(10).find();
21 |
22 | channel.responseBody = {messages};
23 | // await channel.trigger(event, {messages});
24 | });
25 |
26 | module.exports = pusher.listen();
27 |
--------------------------------------------------------------------------------
/examples/realtime-chat-room/chat-room-be/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "aircode": "0.6.0",
4 | "aircode-pusher": "0.3.0"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/examples/realtime-game/README.md:
--------------------------------------------------------------------------------
1 | # Realtime Game Demo
2 |
3 | This is the demo that use AirCode + Pusher to create realtime game.
4 |
5 |
6 |
7 | ## Online Demo
8 |
9 | Multiple people can synchronize each other's status in real time. When there's only one person, there's only one point on the screen. You may want to consider opening two demos with browser Tabs and experiencing them yourself.
10 |
11 | See online demo on [CodePen](https://codepen.io/akira-cn/pen/QWJXpoz).
12 |
13 | ## One-Click Deployment
14 |
15 | Easily get a copy and launch your app on [AirCode](https://aircode.io/) by clicking the button below.
16 |
17 | [](https://aircode.io/dashboard?owner=AirCodeLabs&repo=aircode&branch=main&path=examples%2Frealtime-game&appname=realtime-game)
18 |
--------------------------------------------------------------------------------
/examples/realtime-game/realtime-game-be/README.md:
--------------------------------------------------------------------------------
1 | # Realtime Game Demo
2 |
3 | This is the demo that use AirCode + Pusher to create realtime game.
4 |
5 |
6 |
7 | ## Online Demo
8 |
9 | Multiple people can synchronize each other's status in real time. When there's only one person, there's only one point on the screen. You may want to consider opening two demos with browser Tabs and experiencing them yourself.
10 |
11 | See online demo on [CodePen](https://codepen.io/akira-cn/pen/QWJXpoz).
12 |
13 | ## One-Click Deployment
14 |
15 | Easily get a copy and launch your app on [AirCode](https://aircode.io/) by clicking the button below.
16 |
17 | [](https://aircode.io/dashboard?owner=AirCodeLabs&repo=aircode&branch=main&path=examples%2Frealtime-game-demo&appname=realtime-game-demo)
18 |
--------------------------------------------------------------------------------
/examples/realtime-game/realtime-game-be/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "realtime-game-demo",
3 | "runtime": "node/v16",
4 | "timeout": 60,
5 | "region": "US",
6 | "envs": [],
7 | "typescript": false
8 | }
9 |
--------------------------------------------------------------------------------
/examples/realtime-game/realtime-game-be/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "aircode": "0.6.1",
4 | "aircode-pusher": "0.3.0"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/examples/realtime-game/realtime-game-fe/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | "env": {
3 | "browser": true,
4 | "es2021": true
5 | },
6 | "extends": "eslint:recommended",
7 | "overrides": [
8 | {
9 | "env": {
10 | "node": true
11 | },
12 | "files": [
13 | ".eslintrc.{js,cjs}"
14 | ],
15 | "parserOptions": {
16 | "sourceType": "script"
17 | }
18 | }
19 | ],
20 | "parserOptions": {
21 | "ecmaVersion": "latest",
22 | "sourceType": "module"
23 | },
24 | "rules": {
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/examples/realtime-game/realtime-game-fe/README.md:
--------------------------------------------------------------------------------
1 | # Realtime Game Demo FE
2 |
3 | This is the Frontend part of the realtime game demo.
4 |
5 | ## Usage
6 |
7 | Clone the repo, go to the directory and run:
8 |
9 | ```bash
10 | npm run dev
11 | ```
12 |
--------------------------------------------------------------------------------
/examples/realtime-game/realtime-game-fe/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Realtime Game Demo
7 |
8 |
9 |
10 |
11 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/examples/realtime-game/realtime-game-fe/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "realtime-game-fe",
3 | "version": "0.0.0",
4 | "description": "",
5 | "type": "module",
6 | "main": "index.js",
7 | "scripts": {
8 | "dev": "http-server -c-1 -p3000",
9 | "test": "echo \"Error: no test specified\" && exit 1"
10 | },
11 | "keywords": [],
12 | "author": "",
13 | "license": "MIT",
14 | "devDependencies": {
15 | "eslint": "^8.46.0",
16 | "http-server": "^14.1.1"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/examples/realtime-game/realtime-game-fe/style.css:
--------------------------------------------------------------------------------
1 | html,body {
2 | margin: 0;
3 | padding: 0;
4 | height: 100%;
5 | width: 100%;
6 | }
7 |
8 | #main {
9 | display: flex;
10 | flex-direction: row;
11 | height: 100%;
12 | width: 100%;
13 | }
14 |
15 | #container {
16 | display: inline-block;
17 | width: 60%;
18 | height: 0;
19 | padding-bottom: 60%;
20 | background: rgb(20,26,35);
21 | cursor: crosshair;
22 | }
23 |
24 | #chatbox {
25 | width: 40%;
26 | min-width: 200px;
27 | }
28 |
29 | #chatbox div {
30 | padding: 0 5px;
31 | font-size: 12px;
32 | }
--------------------------------------------------------------------------------
/examples/resend/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Resend",
3 | "runtime": "node/v16",
4 | "retion": "US",
5 | "envs": [
6 | "RESEND_API_KEY"
7 | ],
8 | "typescript": true
9 | }
--------------------------------------------------------------------------------
/examples/resend/email.ts:
--------------------------------------------------------------------------------
1 | // @see https://docs.aircode.io/guide/functions/
2 | import aircode from 'aircode';
3 | import { Resend } from 'resend';
4 |
5 | const resend = new Resend(process.env.RESEND_API_KEY);
6 |
7 | export default async function (params: any, context: any) {
8 |
9 | try {
10 | const data = await resend.emails.send({
11 | from: 'Acme ',
12 | to: ['delivered@resend.dev'],
13 | subject: 'Hello World',
14 | html: 'It works!',
15 | });
16 |
17 | return {
18 | code: 0,
19 | message: 'delivered',
20 | };
21 | } catch (error) {
22 | console.error(error);
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/examples/resend/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "aircode": "0.6.1",
4 | "resend": "0.17.2",
5 | "typescript": "4.9.5"
6 | }
7 | }
--------------------------------------------------------------------------------
/examples/resend/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json.schemastore.org/tsconfig",
3 | "compilerOptions": {
4 | "lib": ["es2021"],
5 | "module": "Node16",
6 | "target": "es2021",
7 | "strict": true,
8 | "esModuleInterop": true,
9 | "skipLibCheck": true,
10 | "forceConsistentCasingInFileNames": true,
11 | "moduleResolution": "node"
12 | }
13 | }
--------------------------------------------------------------------------------
/examples/shopify-to-google-spreadsheets/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "shopify to google spreadsheets",
3 | "runtime": "node/v18",
4 | "retion": "US",
5 | "envs": [
6 | "SHOPIFY_TOKEN",
7 | "SPREAD_SHEET_ID"
8 | ],
9 | "typescript": false
10 | }
--------------------------------------------------------------------------------
/examples/shopify-to-google-spreadsheets/credentials.json:
--------------------------------------------------------------------------------
1 | {
2 |
3 | }
--------------------------------------------------------------------------------
/examples/shopify-to-google-spreadsheets/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "aircode": "0.7.0",
4 | "googleapis": "126.0.1",
5 | "shopify-api-node": "3.12.6"
6 | }
7 | }
--------------------------------------------------------------------------------
/examples/simple-command-line-slack-bot/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Simple command line Slack Bot",
3 | "runtime": "node/v18",
4 | "retion": "US",
5 | "envs": [],
6 | "typescript": true
7 | }
--------------------------------------------------------------------------------
/examples/simple-command-line-slack-bot/hello.ts:
--------------------------------------------------------------------------------
1 | // @see https://docs.aircode.io/guide/functions/
2 | import aircode from 'aircode';
3 |
4 | export default async function (params: any, context: any) {
5 | console.log('Received params:', params);
6 | return 'world';
7 | };
8 |
--------------------------------------------------------------------------------
/examples/simple-command-line-slack-bot/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "aircode": "0.7.0",
4 | "typescript": "4.9.5"
5 | }
6 | }
--------------------------------------------------------------------------------
/examples/simple-command-line-slack-bot/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json.schemastore.org/tsconfig",
3 | "_version": "2.0.0",
4 | "compilerOptions": {
5 | "lib": ["es2022"],
6 | "module": "Node16",
7 | "target": "es2022",
8 | "strict": true,
9 | "esModuleInterop": true,
10 | "skipLibCheck": true,
11 | "forceConsistentCasingInFileNames": true,
12 | "moduleResolution": "node"
13 | }
14 | }
--------------------------------------------------------------------------------
/examples/siri-gpt/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "SiriGPT",
3 | "runtime": "node/v16",
4 | "timeout": 60,
5 | "region": "HK",
6 | "envs": [
7 | "OPENAI_KEY"
8 | ],
9 | "typescript": false
10 | }
11 |
--------------------------------------------------------------------------------
/examples/siri-gpt/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "aircode": "0.2.12",
4 | "openai": "3.2.1",
5 | "uuid": "9.0.0"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/examples/stable-diffusion-huggingface/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "stable diffusion huggingface",
3 | "runtime": "node/v18",
4 | "retion": "US",
5 | "envs": [
6 | "API_TOKEN"
7 | ],
8 | "typescript": false
9 | }
--------------------------------------------------------------------------------
/examples/stable-diffusion-huggingface/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "aircode": "0.7.0",
4 | "node-fetch": "3.3.2"
5 | }
6 | }
--------------------------------------------------------------------------------
/examples/talk-with-chatgpt-azure-openai/README.md:
--------------------------------------------------------------------------------
1 | ## One-Click Deployment
2 |
3 | Easily get a copy and launch your app on [AirCode](https://aircode.io/) by clicking the button below.
4 |
5 | [](https://aircode.io/dashboard?owner=AirCodeLabs&repo=aircode&branch=main&path=examples%2Ftalk-with-chatgpt-azure-openai&appname=Talk%20with%20ChatGPT%20from%20Azure)
--------------------------------------------------------------------------------
/examples/talk-with-chatgpt-azure-openai/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Talk with ChatGPT from Azure",
3 | "runtime": "node/v16",
4 | "retion": "US",
5 | "envs": [
6 | "AZURE_OPENAI_ENDPOINT",
7 | "AZURE_OPENAI_KEY",
8 | "AZURE_OPENAI_DEPLOYMENT",
9 | "accessKey",
10 | "vmToken"
11 | ],
12 | "typescript": false
13 | }
--------------------------------------------------------------------------------
/examples/talk-with-chatgpt-azure-openai/api.js:
--------------------------------------------------------------------------------
1 | const {chat} = require('./lib/chat');
2 |
3 | module.exports = async function (params, context) {
4 | const {cid, question} = params;
5 |
6 | return await chat({question, cid});
7 | };
8 |
--------------------------------------------------------------------------------
/examples/talk-with-chatgpt-azure-openai/index.js:
--------------------------------------------------------------------------------
1 | const App = require('aircode-app');
2 |
3 | const app = new App();
4 |
5 | app.use(ctx => {
6 | let lang = ctx.params.lang || 'en-US';
7 | let vid = ctx.params.vid;
8 | if(!vid) {
9 | if(lang === 'zh-CN') {
10 | vid = 'ai1-cmn-CN-Shiyun';
11 | } else {
12 | vid = 'ai3-Jenny';
13 | }
14 | }
15 | ctx.set('content-type', 'text/html');
16 | ctx.body = app.display('./views/index.html', {lang, vid});
17 | });
18 |
19 | module.exports = app.run();
20 |
--------------------------------------------------------------------------------
/examples/talk-with-chatgpt-azure-openai/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "aircode": "0.6.1",
4 | "aircode-app": "0.2.0",
5 | "node-fetch": "2.7.0",
6 | "uuidv4": "6.2.13"
7 | }
8 | }
--------------------------------------------------------------------------------
/examples/talk-with-chatgpt/README.md:
--------------------------------------------------------------------------------
1 | ## One-Click Deployment
2 |
3 | Easily get a copy and launch your app on [AirCode](https://aircode.io/) by clicking the button below.
4 |
5 | [](https://aircode.io/dashboard?owner=AirCodeLabs&repo=aircode&branch=main&path=examples%2Ftalk-with-chatgpt&appname=Talk%20with%20ChatGPT)
--------------------------------------------------------------------------------
/examples/talk-with-chatgpt/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Talk with ChatGPT",
3 | "runtime": "node/v16",
4 | "retion": "US",
5 | "envs": [
6 | "OPENAI_KEY",
7 | "AK",
8 | "SK",
9 | "accessKey"
10 | ],
11 | "typescript": false
12 | }
--------------------------------------------------------------------------------
/examples/talk-with-chatgpt/index.js:
--------------------------------------------------------------------------------
1 | const App = require('aircode-app');
2 |
3 | const app = new App();
4 |
5 | app.use(ctx => {
6 | const lang = ctx.params.lang || 'en-US';
7 | const spkid = ctx.params.spkid || 7;
8 | if(spkid > 14 || spkid < 7) spkid = 7;
9 | ctx.set('content-type', 'text/html');
10 | ctx.body = app.display('./views/index.html', {lang, spkid});
11 | });
12 |
13 | module.exports = app.run();
--------------------------------------------------------------------------------
/examples/talk-with-chatgpt/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": [
3 | {
4 | "name": "aircode",
5 | "version": "0.2.12"
6 | },
7 | {
8 | "name": "aircode-app",
9 | "version": "0.2.0"
10 | },
11 | {
12 | "name": "node-fetch",
13 | "version": "2.6.12"
14 | },
15 | {
16 | "name": "openai",
17 | "version": "3.2.1"
18 | },
19 | {
20 | "name": "qiniu",
21 | "version": "7.9.0"
22 | },
23 | {
24 | "name": "uuid",
25 | "version": "9.0.0"
26 | }
27 | ]
28 | }
--------------------------------------------------------------------------------
/examples/text-to-voice/README.md:
--------------------------------------------------------------------------------
1 | # Text to voice
2 |
3 | Convert text to audio, use [Qiniu](https://www.qiniu.com/).
4 |
5 | ## Online Demo
6 |
7 | See https://codepen.io/akira-cn/pen/oNQqvrN
8 |
9 | ## One-Click Deployment
10 |
11 | Easily get a copy and launch your app on [AirCode](https://aircode.io/) by clicking the button below.
12 |
13 | [](https://aircode.io/dashboard?owner=AirCodeLabs&repo=aircode&branch=main&path=examples%2Ftext-to-voice&appname=text-to-voice)
14 |
--------------------------------------------------------------------------------
/examples/upvote-anywhere/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "upvote",
3 | "runtime": "node/v16",
4 | "timeout": 60,
5 | "region": "US",
6 | "envs": [],
7 | "typescript": false
8 | }
9 |
--------------------------------------------------------------------------------
/examples/upvote-anywhere/create.js:
--------------------------------------------------------------------------------
1 | // @see https://docs.aircode.io/guide/functions/
2 | const aircode = require('aircode');
3 | const table = aircode.db.table('upvote');
4 |
5 | module.exports = async function (params, context) {
6 | const res = await table.save({count: 0});
7 | context.redirect(`/readme?id=${res._id}`);
8 | };
9 |
--------------------------------------------------------------------------------
/examples/upvote-anywhere/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "aircode": "0.6.1",
4 | "aircode-app": "0.2.0",
5 | "highlight.js": "11.8.0",
6 | "marked": "7.0.3",
7 | "marked-highlight": "2.0.4"
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/examples/upvote-anywhere/views/index.tpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Upvote Anywhere
7 |
8 |
12 |
19 |
20 |
21 |
22 | ${content}
23 |
24 |
25 |
--------------------------------------------------------------------------------
/examples/vue-template/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "aircode-vue",
3 | "runtime": "node/v16",
4 | "timeout": 60,
5 | "region": "US",
6 | "envs": [
7 | "EXPERIMENTAL_ROUTE",
8 | "NODE_ENV"
9 | ],
10 | "typescript": false
11 | }
12 |
--------------------------------------------------------------------------------
/examples/vue-template/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | AirCode + Vue App
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/examples/vue-template/lib/compile.js:
--------------------------------------------------------------------------------
1 | const { compile } = require('vue-simple-compiler');
2 |
3 | module.exports = async function(source, filename) {
4 | let compiled = compile(source, {
5 | filename,
6 | autoImportCss: false,
7 | autoResolveImports: false,
8 | isProd: true,
9 | });
10 |
11 | const cssCode = compiled.css.map(s => s.code).join('\n');
12 | const cssInJS = `;(function(){const el = document.createElement('style');
13 | el.innerHTML = \`${cssCode}\`;
14 | document.body.appendChild(el);}());`;
15 |
16 | compiled = `${compiled.js.code}
17 | ${cssInJS}`;
18 |
19 | return compiled;
20 | }
--------------------------------------------------------------------------------
/examples/vue-template/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "node-html-parser": "6.1.5",
4 | "@vitejs/plugin-vue": "4.2.3",
5 | "aircode": "0.5.0",
6 | "aircode-app": "0.2.0",
7 | "mime": "3.0.0",
8 | "vite": "4.4.7",
9 | "vue-simple-compiler": "0.0.5"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/examples/vue-template/src/assets/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/examples/vue-template/src/assets/main.css:
--------------------------------------------------------------------------------
1 | @import './base.css';
2 |
3 | #app {
4 | max-width: 1280px;
5 | margin: 0 auto;
6 | padding: 2rem;
7 |
8 | font-weight: normal;
9 | }
10 |
11 | a,
12 | .green {
13 | text-decoration: none;
14 | color: hsla(160, 100%, 37%, 1);
15 | transition: 0.4s;
16 | }
17 |
18 | @media (hover: hover) {
19 | a:hover {
20 | background-color: hsla(160, 100%, 37%, 0.2);
21 | }
22 | }
23 |
24 | @media (min-width: 1024px) {
25 | body {
26 | display: flex;
27 | place-items: center;
28 | }
29 |
30 | #app {
31 | display: grid;
32 | grid-template-columns: 1fr 1fr;
33 | padding: 0 2rem;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/examples/vue-template/src/components/icons/IconSupport.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/examples/vue-template/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue'
2 | import App from './App.vue'
3 |
4 | createApp(App).mount('#app')
5 |
--------------------------------------------------------------------------------
/examples/vue-template/vite.config.js:
--------------------------------------------------------------------------------
1 | const { defineConfig } = require('vite');
2 | const vue = require('@vitejs/plugin-vue');
3 |
4 | // https://vitejs.dev/config/
5 | module.exports = defineConfig({
6 | plugins: [
7 | vue(),
8 | ],
9 | resolve: {
10 | alias: {
11 | // '@': fileURLToPath(new URL('./src', ))
12 | }
13 | }
14 | });
--------------------------------------------------------------------------------
/examples/web-app-todolist/README.md:
--------------------------------------------------------------------------------
1 | # The TodoList App
2 |
3 | This is a demo project for developing a Web App with AirCode, using [the AirCode-App framework](https://github.com/akira-cn/aircode-app).
4 |
5 | ## Demo
6 |
7 | https://rbwruqsgdt.us.aircode.run/index
8 |
9 |
10 |
11 | ## One-Click Deployment
12 |
13 | Easily get a copy and launch your app on [AirCode](https://aircode.io/) by clicking the button below.
14 |
15 | [](https://aircode.io/dashboard?owner=AirCodeLabs&repo=aircode&branch=main&path=examples%2Fweb-app-todolist&appname=web-app-todolist)
--------------------------------------------------------------------------------
/examples/web-app-todolist/aircode.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "todolist",
3 | "runtime": "node/v16",
4 | "timeout": 60,
5 | "region": "HK",
6 | "envs": [],
7 | "typescript": false
8 | }
9 |
--------------------------------------------------------------------------------
/examples/web-app-todolist/complete.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/examples/web-app-todolist/database.js:
--------------------------------------------------------------------------------
1 | // @see https://docs.aircode.io/guide/functions/
2 | const aircode = require('aircode');
3 | const {db} = aircode;
4 |
5 | async function getTasks() {
6 | const table = db.table('todolist');
7 | const lists = await table.where({state: db.lt(2)}).sort({state: 'asc', updatedAt: 'desc'}).find();
8 | return lists;
9 | }
10 |
11 | async function addTask({text, state = 0}) {
12 | const table = db.table('todolist');
13 | const result = await table.save({text, state});
14 | return result;
15 | }
16 |
17 | async function updateTask({id, state}) {
18 | const table = db.table('todolist');
19 | const result = await table.where({_id:id}).findOne();
20 | result.state = state;
21 | await table.save(result);
22 | return result;
23 | }
24 |
25 | module.exports = {getTasks, addTask, updateTask};
--------------------------------------------------------------------------------
/examples/web-app-todolist/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "aircode": "0.3.1",
4 | "aircode-app": "0.0.1"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/extensions/aircode-adapter/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | globals: {
3 | globalThis: true,
4 | },
5 | extends: 'eslint-config-sprite',
6 | rules: {
7 | complexity: ['warn', 25],
8 | 'no-unused-vars': 'warn',
9 | 'no-restricted-globals': 'off',
10 | 'max-params': ['warn', 7],
11 | 'no-console': 'warn',
12 | 'no-new-func': 'off',
13 | 'import/no-named-as-default': 'off',
14 | 'import/no-named-as-default-member': 'off',
15 | 'no-return-await': 'off',
16 | },
17 | };
18 |
--------------------------------------------------------------------------------
/extensions/aircode-adapter/adapters/koa.js:
--------------------------------------------------------------------------------
1 | module.exports = function (app) {
2 | return async (params, context) => {
3 | const {req, res} = context;
4 |
5 | const _end = res.end;
6 |
7 | let body = await new Promise((resolve) => {
8 | res.end = (content) => { resolve(content) };
9 |
10 | app.use((ctx, next) => {
11 | ctx.request.body = ctx.req.body;
12 | next();
13 | });
14 | app.callback()(req, res);
15 | });
16 |
17 | // eslint-disable-next-line no-restricted-syntax
18 | for(const [k, v] of Object.entries(res.getHeaders())) {
19 | context.set(k, v);
20 | }
21 |
22 | res.end = _end;
23 |
24 | context.status(res.statusCode || 200);
25 |
26 | if(!body) {
27 | context.status(404);
28 | body = 'Not found.';
29 | }
30 | return body;
31 | };
32 | };
33 |
--------------------------------------------------------------------------------
/extensions/aircode-adapter/index.js:
--------------------------------------------------------------------------------
1 | const runExpress = require('./adapters/express');
2 | const runKoa = require('./adapters/koa');
3 |
4 | module.exports = {
5 | runExpress,
6 | runKoa,
7 | };
--------------------------------------------------------------------------------
/extensions/aircode-adapter/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "aircode-adapter",
3 | "version": "0.3.1",
4 | "description": "Run express and koa apps in AirCode.",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "MIT",
12 | "devDependencies": {
13 | "eslint": "^5.16.0",
14 | "eslint-config-sprite": "^1.0.6"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/extensions/aircode-app/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | globals: {
3 | globalThis: true,
4 | },
5 | extends: 'eslint-config-sprite',
6 | rules: {
7 | complexity: ['warn', 25],
8 | 'no-unused-vars': 'warn',
9 | 'no-restricted-globals': 'off',
10 | 'max-params': ['warn', 7],
11 | 'no-console': 'warn',
12 | 'no-new-func': 'off',
13 | 'import/no-named-as-default': 'off',
14 | 'import/no-named-as-default-member': 'off',
15 | 'no-return-await': 'off',
16 | },
17 | };
18 |
--------------------------------------------------------------------------------
/extensions/aircode-app/interceptor.js:
--------------------------------------------------------------------------------
1 | class Interceptor {
2 | constructor() {
3 | this.aspects = [];
4 | }
5 | /**
6 | use(async (ctx, next) => {
7 | ...request...
8 | await next()
9 | ...response...
10 | })
11 | */
12 |
13 | use(/* async */ functor) {
14 | this.aspects.push(functor);
15 | return this;
16 | }
17 |
18 | async run(context) {
19 | const aspects = this.aspects;
20 |
21 | const proc = aspects.reduceRight(function (a, b) { // eslint-disable-line
22 | return async () => {
23 | await b(context, a);
24 | };
25 | }, () => Promise.resolve());
26 |
27 | try {
28 | await proc();
29 | } catch (ex) {
30 | console.error(ex.message);
31 | }
32 |
33 | return context;
34 | }
35 | }
36 |
37 | module.exports = Interceptor;
38 |
--------------------------------------------------------------------------------
/extensions/aircode-app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "aircode-app",
3 | "version": "0.2.0",
4 | "description": "A simple webapp framework for AirCode.",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "MIT",
12 | "devDependencies": {
13 | "eslint": "^5.16.0",
14 | "eslint-config-sprite": "^1.0.6"
15 | },
16 | "dependencies": {
17 | "esbuild": "^0.17.19"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/extensions/aircode-pusher/build.js:
--------------------------------------------------------------------------------
1 | import * as esbuild from 'esbuild';
2 |
3 | await esbuild.build({
4 | entryPoints: ['./src/client-iife.js'],
5 | bundle: true,
6 | platform: 'browser',
7 | outfile: 'public/aircode-pusher-client.js',
8 | });
9 |
10 | await esbuild.build({
11 | entryPoints: ['./src/client-iife.js'],
12 | bundle: true,
13 | platform: 'browser',
14 | outfile: 'dist/aircode-pusher-client.js',
15 | });
16 |
17 | await esbuild.build({
18 | entryPoints: ['./src/index.js'],
19 | bundle: true,
20 | format: 'cjs',
21 | platform: 'node',
22 | outfile: 'dist/aircode-pusher.cjs',
23 | });
--------------------------------------------------------------------------------
/extensions/aircode-pusher/docs/cn/getting-started.md:
--------------------------------------------------------------------------------
1 | # Getting Started with Real-Time Communication
2 |
3 | With the power of AirCode built on top of Pusher, implementing real-time communication is extremely simple. Here, we will use an example of creating a multi-user real-time chat to help you get started.
4 |
5 | ## Learning Objectives
6 |
7 | - Learn to create real-time communication server-side cloud functions.
8 | - Learn to create real-time communication client-side applications.
9 | - Complete a simple multi-user real-time chat application.
--------------------------------------------------------------------------------
/extensions/aircode-pusher/docs/en/getting-started.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircodelabs/aircode/357249c0286ab19544c073e355bf08d4272b4a2e/extensions/aircode-pusher/docs/en/getting-started.md
--------------------------------------------------------------------------------
/extensions/aircode-pusher/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "aircode-pusher",
3 | "version": "0.4.0",
4 | "description": "",
5 | "module": "src/index.js",
6 | "main": "dist/aircode-pusher.cjs",
7 | "browser": "dist/aircode-pusher-client.js",
8 | "type": "module",
9 | "scripts": {
10 | "dev": "cross-env AC_FAAS_ROOT=test AC_PORT=3000 run-aircode --init",
11 | "build": "node build",
12 | "lint": "eslint src",
13 | "prepublishOnly": "npm run build",
14 | "test": "echo \"Error: no test specified\" && exit 1"
15 | },
16 | "keywords": [],
17 | "author": "",
18 | "license": "MIT",
19 | "devDependencies": {
20 | "@aircodelabs/hydrogen": "^0.2.0",
21 | "cross-env": "^7.0.3",
22 | "esbuild": "^0.18.17",
23 | "eslint": "^8.46.0",
24 | "pusher-js": "^8.3.0"
25 | },
26 | "dependencies": {
27 | "pusher": "^5.1.3"
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/extensions/aircode-pusher/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Pusher Test
7 |
8 |
9 | See console log...
10 |
11 |
25 |
26 |
--------------------------------------------------------------------------------
/extensions/aircode-pusher/src/channel.js:
--------------------------------------------------------------------------------
1 | export class Channel {
2 | #pusher;
3 | #name;
4 | #subscribers = {
5 | '*': [],
6 | };
7 |
8 | constructor(pusher, name) {
9 | this.#pusher = pusher;
10 | this.#name = name;
11 | this.responseBody = {
12 | name,
13 | };
14 | }
15 |
16 | /**
17 | pusher.channel('my-channel').subscribe(async ({event, data}) => {
18 | await this.trigger(...);
19 | });
20 | */
21 | subscribe(event, fn) {
22 | this.#subscribers[event] = this.#subscribers[event] || [];
23 | this.#subscribers[event].push(fn);
24 | }
25 |
26 | async trigger(event, data, channel = this.#name) {
27 | return await this.#pusher.trigger(channel, event, data);
28 | }
29 |
30 | get name() {
31 | return this.#name;
32 | }
33 |
34 | get subscribers() {
35 | return this.#subscribers;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/extensions/aircode-pusher/src/client-iife.js:
--------------------------------------------------------------------------------
1 | import Pusher from "./client";
2 |
3 | window.Pusher = Pusher;
--------------------------------------------------------------------------------
/extensions/aircode-pusher/src/index.js:
--------------------------------------------------------------------------------
1 | import {Pusher} from './pusher.js';
2 | import {Pusher as Client} from './client.js';
3 |
4 | export default Pusher;
5 | export {Pusher, Client};
--------------------------------------------------------------------------------
/extensions/aircode-pusher/test/client.js:
--------------------------------------------------------------------------------
1 | import {Client as Pusher} from '../src/index.js';
2 |
3 | const pusher = new Pusher('http://localhost:3000/hello');
4 |
5 | // Establish a connection to the service and retrieve all the channels the server has subscribed to.
6 | const channels = await pusher.connect();
7 | // To listen for data
8 | channels[0].bind('test-event', (data) => {
9 | console.log(data);
10 | });
11 | // To send data
12 | channels[0].send('test-event', 'hello');
--------------------------------------------------------------------------------
/extensions/aircode-pusher/test/hello.mjs:
--------------------------------------------------------------------------------
1 | import {Pusher} from '../src/index.js';
2 |
3 | const pusher = new Pusher(Pusher.DEBUG_CONFIG);
4 |
5 | pusher.channel('my-channel').subscribe('test-event', async ({event, data, channel}) => {
6 | await channel.trigger(event, {message: 'received', event, data, channel:channel.name});
7 | });
8 |
9 | pusher.channel('my-channel').subscribe('*', async ({event, data, channel}) => {
10 | console.log('received', {event, data, channel:channel.name});
11 | });
12 |
13 | pusher.channel('my-channel2').subscribe('test-event', async ({event, data, channel}) => {
14 | await channel.trigger(event, {message: 'received', event, data, channel:channel.name});
15 | });
16 |
17 | export default pusher.listen();
18 |
--------------------------------------------------------------------------------
/extensions/aircode-router/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | globals: {
3 | globalThis: true,
4 | },
5 | extends: 'eslint-config-sprite',
6 | rules: {
7 | complexity: ['warn', 25],
8 | 'no-unused-vars': 'warn',
9 | 'no-restricted-globals': 'off',
10 | 'max-params': ['warn', 7],
11 | 'no-console': 'warn',
12 | 'no-new-func': 'off',
13 | 'import/no-named-as-default': 'off',
14 | 'import/no-named-as-default-member': 'off',
15 | 'no-return-await': 'off',
16 | },
17 | };
18 |
--------------------------------------------------------------------------------
/extensions/aircode-router/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "aircode-router",
3 | "version": "0.5.1",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "MIT",
12 | "devDependencies": {
13 | "eslint": "^5.16.0",
14 | "eslint-config-sprite": "^1.0.6"
15 | },
16 | "dependencies": {
17 | "@koa/router": "^12.0.0"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "aircode-monorepo",
3 | "description": "Build intelligent bots with Node.js, remarkably fast.",
4 | "version": "0.0.0",
5 | "private": true,
6 | "workspaces": [
7 | "docs",
8 | "demos/*",
9 | "website",
10 | "dashboard",
11 | "sdk"
12 | ],
13 | "repository": {
14 | "type": "git",
15 | "url": "git+https://github.com/aircodelabs/aircode.git"
16 | },
17 | "engines": {
18 | "node": ">=16.0.0"
19 | },
20 | "keywords": [
21 | "aircode",
22 | "functions",
23 | "database",
24 | "storage",
25 | "serverless",
26 | "cloud"
27 | ]
28 | }
29 |
--------------------------------------------------------------------------------