├── .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 | 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 | 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 | [![Deploy with AirCode](https://vercel.com/button)](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 |
9 |

10 |

11 |

12 |
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 | [![Deploy with AirCode](https://aircode.io/aircode-deploy-button.svg)](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 | [![Deploy with AirCode](https://aircode.io/aircode-deploy-button.svg)](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 | [![Deploy with AirCode](https://aircode.io/aircode-deploy-button.svg)](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 | [![Deploy with AirCode](https://aircode.io/aircode-deploy-button.svg)](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 | [![Deploy with AirCode](https://aircode.io/aircode-deploy-button.svg)](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 |
12 |
13 |
14 |
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 | [![Deploy with AirCode](https://aircode.io/aircode-deploy-button.svg)](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 | [![Deploy with AirCode](https://aircode.io/aircode-deploy-button.svg)](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 | [![Deploy with AirCode](https://aircode.io/aircode-deploy-button.svg)](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 | 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 | [![Deploy with AirCode](https://aircode.io/aircode-deploy-button.svg)](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 | 2 | 3 | 4 | 5 | 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 | --------------------------------------------------------------------------------