@colin4k1024/tsp 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1867) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +676 -0
  3. package/agents/roles/architect.md +119 -0
  4. package/agents/roles/backend-engineer.md +131 -0
  5. package/agents/roles/devops-engineer.md +113 -0
  6. package/agents/roles/frontend-engineer.md +118 -0
  7. package/agents/roles/product-manager.md +120 -0
  8. package/agents/roles/project-manager.md +104 -0
  9. package/agents/roles/qa-engineer.md +128 -0
  10. package/agents/roles/tech-lead.md +137 -0
  11. package/agents/specialists/architect.md +37 -0
  12. package/agents/specialists/build-error-resolver.md +38 -0
  13. package/agents/specialists/chief-of-staff.md +35 -0
  14. package/agents/specialists/code-reviewer.md +35 -0
  15. package/agents/specialists/cpp-build-resolver.md +34 -0
  16. package/agents/specialists/cpp-reviewer.md +33 -0
  17. package/agents/specialists/database-reviewer.md +36 -0
  18. package/agents/specialists/doc-updater.md +34 -0
  19. package/agents/specialists/docs-lookup.md +34 -0
  20. package/agents/specialists/e2e-runner.md +39 -0
  21. package/agents/specialists/go-build-resolver.md +34 -0
  22. package/agents/specialists/go-reviewer.md +34 -0
  23. package/agents/specialists/harness-optimizer.md +35 -0
  24. package/agents/specialists/java-build-resolver.md +34 -0
  25. package/agents/specialists/java-reviewer.md +36 -0
  26. package/agents/specialists/kotlin-build-resolver.md +34 -0
  27. package/agents/specialists/kotlin-reviewer.md +33 -0
  28. package/agents/specialists/loop-operator.md +38 -0
  29. package/agents/specialists/planner.md +35 -0
  30. package/agents/specialists/python-reviewer.md +34 -0
  31. package/agents/specialists/pytorch-build-resolver.md +34 -0
  32. package/agents/specialists/refactor-cleaner.md +35 -0
  33. package/agents/specialists/rust-build-resolver.md +34 -0
  34. package/agents/specialists/rust-reviewer.md +33 -0
  35. package/agents/specialists/security-reviewer.md +35 -0
  36. package/agents/specialists/tdd-guide.md +38 -0
  37. package/agents/specialists/typescript-reviewer.md +35 -0
  38. package/bin/lib/embedded-installer.js +93 -0
  39. package/bin/lib/install-surface.js +157 -0
  40. package/bin/lib/post-install-bridge.js +325 -0
  41. package/bin/lib/post-install-rtk.js +80 -0
  42. package/bin/lib/source-installer.js +151 -0
  43. package/bin/lib/ui.js +88 -0
  44. package/bin/lib/wizard.js +114 -0
  45. package/bin/prebuilt/README.md +11 -0
  46. package/bin/prebuilt/darwin-arm64/oris-claude-bridge +0 -0
  47. package/bin/prebuilt/darwin-x64/oris-claude-bridge +0 -0
  48. package/bin/prebuilt/linux-arm64/oris-claude-bridge +0 -0
  49. package/bin/prebuilt/linux-x64/oris-claude-bridge +0 -0
  50. package/bin/prebuilt/win32-x64/oris-claude-bridge.exe +0 -0
  51. package/bin/tsp-create.js +218 -0
  52. package/bin/tsp-install.js +6 -0
  53. package/commands/agent-dev.md +44 -0
  54. package/commands/aside.md +164 -0
  55. package/commands/build-fix.md +31 -0
  56. package/commands/checkpoint.md +74 -0
  57. package/commands/claw.md +23 -0
  58. package/commands/code-review.md +49 -0
  59. package/commands/context-budget.md +23 -0
  60. package/commands/cpp-build.md +173 -0
  61. package/commands/cpp-review.md +132 -0
  62. package/commands/cpp-test.md +251 -0
  63. package/commands/devfleet.md +23 -0
  64. package/commands/docs.md +23 -0
  65. package/commands/e2e.md +268 -0
  66. package/commands/eval.md +23 -0
  67. package/commands/evolve.md +210 -0
  68. package/commands/gan-build.md +99 -0
  69. package/commands/gan-design.md +35 -0
  70. package/commands/go-build.md +183 -0
  71. package/commands/go-review.md +148 -0
  72. package/commands/go-test.md +268 -0
  73. package/commands/gradle-build.md +70 -0
  74. package/commands/handoff.md +46 -0
  75. package/commands/harness-audit.md +35 -0
  76. package/commands/instinct-export.md +66 -0
  77. package/commands/instinct-import.md +114 -0
  78. package/commands/instinct-status.md +59 -0
  79. package/commands/kotlin-build.md +174 -0
  80. package/commands/kotlin-review.md +140 -0
  81. package/commands/kotlin-test.md +312 -0
  82. package/commands/learn-eval.md +152 -0
  83. package/commands/learn.md +104 -0
  84. package/commands/loop-start.md +32 -0
  85. package/commands/loop-status.md +24 -0
  86. package/commands/model-route.md +26 -0
  87. package/commands/multi-backend.md +31 -0
  88. package/commands/multi-execute.md +315 -0
  89. package/commands/multi-frontend.md +31 -0
  90. package/commands/multi-plan.md +268 -0
  91. package/commands/multi-workflow.md +191 -0
  92. package/commands/orchestrate.md +135 -0
  93. package/commands/pause.md +29 -0
  94. package/commands/plan.md +30 -0
  95. package/commands/pm2.md +272 -0
  96. package/commands/projects.md +39 -0
  97. package/commands/promote.md +41 -0
  98. package/commands/prompt-optimize.md +23 -0
  99. package/commands/prp-commit.md +112 -0
  100. package/commands/prp-implement.md +385 -0
  101. package/commands/prp-plan.md +502 -0
  102. package/commands/prp-pr.md +184 -0
  103. package/commands/prp-prd.md +447 -0
  104. package/commands/prune.md +31 -0
  105. package/commands/pua.md +37 -0
  106. package/commands/python-review.md +297 -0
  107. package/commands/quality-gate.md +29 -0
  108. package/commands/quick.md +33 -0
  109. package/commands/refactor-clean.md +80 -0
  110. package/commands/replay.md +46 -0
  111. package/commands/resume-session.md +156 -0
  112. package/commands/resume.md +31 -0
  113. package/commands/rules-distill.md +20 -0
  114. package/commands/rust-build.md +187 -0
  115. package/commands/rust-review.md +142 -0
  116. package/commands/rust-test.md +308 -0
  117. package/commands/santa-loop.md +175 -0
  118. package/commands/save-session.md +275 -0
  119. package/commands/sessions.md +333 -0
  120. package/commands/setup-pm.md +80 -0
  121. package/commands/skill-create.md +174 -0
  122. package/commands/skill-health.md +54 -0
  123. package/commands/tdd.md +31 -0
  124. package/commands/team-closeout.md +49 -0
  125. package/commands/team-execute.md +83 -0
  126. package/commands/team-help.md +41 -0
  127. package/commands/team-intake.md +50 -0
  128. package/commands/team-plan.md +105 -0
  129. package/commands/team-release.md +71 -0
  130. package/commands/team-review.md +80 -0
  131. package/commands/test-coverage.md +69 -0
  132. package/commands/trigger-pipeline.md +25 -0
  133. package/commands/update-codemaps.md +32 -0
  134. package/commands/update-docs.md +84 -0
  135. package/commands/verify.md +32 -0
  136. package/contexts/dev.md +5 -0
  137. package/contexts/research.md +5 -0
  138. package/contexts/review.md +5 -0
  139. package/crates/oris-claude-bridge/Cargo.lock +4187 -0
  140. package/crates/oris-claude-bridge/Cargo.toml +36 -0
  141. package/crates/oris-claude-bridge/Cross.toml +35 -0
  142. package/crates/oris-claude-bridge/src/claude_gene.rs +85 -0
  143. package/crates/oris-claude-bridge/src/env_fingerprint.rs +47 -0
  144. package/crates/oris-claude-bridge/src/evolution_state.rs +120 -0
  145. package/crates/oris-claude-bridge/src/gene_store.rs +290 -0
  146. package/crates/oris-claude-bridge/src/governor.rs +89 -0
  147. package/crates/oris-claude-bridge/src/main.rs +85 -0
  148. package/crates/oris-claude-bridge/src/replay.rs +81 -0
  149. package/crates/oris-claude-bridge/src/replay_graph.rs +105 -0
  150. package/crates/oris-claude-bridge/src/signal.rs +150 -0
  151. package/crates/oris-claude-bridge/src/solidify.rs +89 -0
  152. package/crates/oris-claude-bridge/src/solidify_graph.rs +201 -0
  153. package/crates/oris-claude-bridge/src/stats.rs +83 -0
  154. package/crates/oris-claude-bridge/src/store.rs +177 -0
  155. package/examples/INDEX.md +232 -0
  156. package/examples/ai-eval-platform-CLAUDE.md +82 -0
  157. package/examples/claude-conversation-script.md +107 -0
  158. package/examples/claude-scenario-playbook.md +113 -0
  159. package/examples/codex-conversation-script.md +111 -0
  160. package/examples/codex-scenario-playbook.md +123 -0
  161. package/examples/data-analytics-dashboard-CLAUDE.md +86 -0
  162. package/examples/data-ml-pipeline-CLAUDE.md +81 -0
  163. package/examples/data-observability-quality-CLAUDE.md +77 -0
  164. package/examples/enterprise-overlay-output-playbook.md +5 -0
  165. package/examples/enterprise-overlay-scenario-playbook.md +5 -0
  166. package/examples/full-lifecycle-demo-30min.md +458 -0
  167. package/examples/full-lifecycle-demo.md +446 -0
  168. package/examples/github-actions-supply-chain-CLAUDE.md +83 -0
  169. package/examples/iac-kubernetes-platform-CLAUDE.md +81 -0
  170. package/examples/internal-developer-platform-CLAUDE.md +79 -0
  171. package/examples/mobile-miniapp-CLAUDE.md +83 -0
  172. package/examples/platform-governance-CLAUDE.md +82 -0
  173. package/examples/plugin-extension-platform-CLAUDE.md +80 -0
  174. package/examples/project-CLAUDE.md +97 -0
  175. package/examples/project-type-starter-playbook.md +435 -0
  176. package/examples/role-conversation-scripts.md +65 -0
  177. package/examples/saas-nextjs-CLAUDE.md +106 -0
  178. package/examples/security-compliance-platform-CLAUDE.md +78 -0
  179. package/examples/springboot-service-CLAUDE.md +111 -0
  180. package/examples/user-CLAUDE.md +39 -0
  181. package/examples/vertical-project-conversation-scripts.md +427 -0
  182. package/examples/workflow-enterprise-CLAUDE.md +5 -0
  183. package/hooks/README.md +227 -0
  184. package/hooks/harness-context-monitor.js +113 -0
  185. package/hooks/harness-prompt-guard.js +97 -0
  186. package/hooks/harness-statusline.js +112 -0
  187. package/hooks/hooks.json +499 -0
  188. package/hooks/memory-persistence/README.md +97 -0
  189. package/hooks/memory-persistence/session-end.js +183 -0
  190. package/hooks/memory-persistence/session-start.js +327 -0
  191. package/hooks/pre-bash-block-no-verify.js +51 -0
  192. package/hooks/rtk-rewrite.sh +76 -0
  193. package/hooks/strategic-compact/README.md +71 -0
  194. package/hooks/strategic-compact/pre-compact.js +169 -0
  195. package/hooks/strategic-compact/suggest-compact.js +190 -0
  196. package/install.ps1 +76 -0
  197. package/install.sh +48 -0
  198. package/manifests/install-components.json +448 -0
  199. package/manifests/install-modules.json +825 -0
  200. package/manifests/install-profiles.json +110 -0
  201. package/manifests/model-profiles.json +66 -0
  202. package/marketplace.json +51 -0
  203. package/mcp-configs/mcp-servers.json +32 -0
  204. package/package.json +116 -0
  205. package/roles/architect/role.yaml +102 -0
  206. package/roles/backend-engineer/role.yaml +128 -0
  207. package/roles/devops-engineer/role.yaml +96 -0
  208. package/roles/frontend-engineer/role.yaml +101 -0
  209. package/roles/product-manager/role.yaml +103 -0
  210. package/roles/project-manager/role.yaml +87 -0
  211. package/roles/qa-engineer/role.yaml +125 -0
  212. package/roles/tech-lead/role.yaml +149 -0
  213. package/rules/README.md +31 -0
  214. package/rules/artifact-standards.md +139 -0
  215. package/rules/common/README.md +9 -0
  216. package/rules/common/agents.md +19 -0
  217. package/rules/common/coding-style.md +20 -0
  218. package/rules/common/development-workflow.md +45 -0
  219. package/rules/common/enterprise-architecture-governance.md +40 -0
  220. package/rules/common/enterprise-component-baseline.md +35 -0
  221. package/rules/common/git-workflow.md +15 -0
  222. package/rules/common/hooks.md +13 -0
  223. package/rules/common/patterns.md +14 -0
  224. package/rules/common/performance.md +13 -0
  225. package/rules/common/quality-gates-taxonomy.md +96 -0
  226. package/rules/common/security.md +33 -0
  227. package/rules/common/testing.md +22 -0
  228. package/rules/cpp/coding-style.md +44 -0
  229. package/rules/cpp/hooks.md +39 -0
  230. package/rules/cpp/patterns.md +51 -0
  231. package/rules/cpp/security.md +51 -0
  232. package/rules/cpp/testing.md +44 -0
  233. package/rules/csharp/coding-style.md +72 -0
  234. package/rules/csharp/hooks.md +25 -0
  235. package/rules/csharp/patterns.md +50 -0
  236. package/rules/csharp/security.md +58 -0
  237. package/rules/csharp/testing.md +46 -0
  238. package/rules/escalation-policy.md +16 -0
  239. package/rules/frontend-design-knowledge-base.md +43 -0
  240. package/rules/frontend-engineering-standards.md +55 -0
  241. package/rules/frontend-quality-gates.md +38 -0
  242. package/rules/frontend-ui-ux-standards.md +49 -0
  243. package/rules/golang/README.md +8 -0
  244. package/rules/golang/coding-style.md +12 -0
  245. package/rules/golang/testing.md +12 -0
  246. package/rules/handoff-contract.md +50 -0
  247. package/rules/java/README.md +14 -0
  248. package/rules/java/coding-style.md +15 -0
  249. package/rules/java/database.md +44 -0
  250. package/rules/java/enterprise-java.md +29 -0
  251. package/rules/java/jpa.md +13 -0
  252. package/rules/java/redis.md +29 -0
  253. package/rules/java/security.md +13 -0
  254. package/rules/java/springboot.md +14 -0
  255. package/rules/java/testing.md +13 -0
  256. package/rules/kotlin/coding-style.md +86 -0
  257. package/rules/kotlin/hooks.md +17 -0
  258. package/rules/kotlin/patterns.md +146 -0
  259. package/rules/kotlin/security.md +82 -0
  260. package/rules/kotlin/testing.md +128 -0
  261. package/rules/perl/coding-style.md +46 -0
  262. package/rules/perl/hooks.md +22 -0
  263. package/rules/perl/patterns.md +76 -0
  264. package/rules/perl/security.md +69 -0
  265. package/rules/perl/testing.md +54 -0
  266. package/rules/php/coding-style.md +40 -0
  267. package/rules/php/hooks.md +24 -0
  268. package/rules/php/patterns.md +33 -0
  269. package/rules/php/security.md +37 -0
  270. package/rules/php/testing.md +39 -0
  271. package/rules/python/README.md +9 -0
  272. package/rules/python/coding-style.md +12 -0
  273. package/rules/python/security.md +7 -0
  274. package/rules/python/testing.md +12 -0
  275. package/rules/rust/coding-style.md +151 -0
  276. package/rules/rust/hooks.md +16 -0
  277. package/rules/rust/patterns.md +168 -0
  278. package/rules/rust/security.md +141 -0
  279. package/rules/rust/testing.md +154 -0
  280. package/rules/swift/coding-style.md +47 -0
  281. package/rules/swift/hooks.md +20 -0
  282. package/rules/swift/patterns.md +66 -0
  283. package/rules/swift/security.md +33 -0
  284. package/rules/swift/testing.md +45 -0
  285. package/rules/team-operating-model.md +30 -0
  286. package/rules/typescript/README.md +11 -0
  287. package/rules/typescript/coding-style.md +13 -0
  288. package/rules/typescript/frontend.md +13 -0
  289. package/rules/typescript/testing.md +12 -0
  290. package/rules/zh/README.md +108 -0
  291. package/rules/zh/agents.md +50 -0
  292. package/rules/zh/code-review.md +124 -0
  293. package/rules/zh/coding-style.md +48 -0
  294. package/rules/zh/development-workflow.md +44 -0
  295. package/rules/zh/git-workflow.md +24 -0
  296. package/rules/zh/hooks.md +30 -0
  297. package/rules/zh/patterns.md +31 -0
  298. package/rules/zh/performance.md +55 -0
  299. package/rules/zh/security.md +29 -0
  300. package/rules/zh/testing.md +29 -0
  301. package/schemas/ecc-install-config.schema.json +67 -0
  302. package/schemas/hooks.schema.json +197 -0
  303. package/schemas/install-components.schema.json +58 -0
  304. package/schemas/install-modules.schema.json +107 -0
  305. package/schemas/install-profiles.schema.json +45 -0
  306. package/schemas/install-state.schema.json +218 -0
  307. package/schemas/package-manager.schema.json +23 -0
  308. package/schemas/plugin.schema.json +58 -0
  309. package/schemas/provenance.schema.json +31 -0
  310. package/schemas/state-store.schema.json +394 -0
  311. package/schemas/workflow-definition.schema.json +210 -0
  312. package/scripts/__pycache__/__init__.cpython-311.pyc +0 -0
  313. package/scripts/__pycache__/build_platform_artifacts.cpython-311.pyc +0 -0
  314. package/scripts/__pycache__/install_platform.cpython-311.pyc +0 -0
  315. package/scripts/__pycache__/langfuse_trace.cpython-311.pyc +0 -0
  316. package/scripts/__pycache__/query_audit_logs.cpython-311.pyc +0 -0
  317. package/scripts/__pycache__/scan_leaked_keys.cpython-311.pyc +0 -0
  318. package/scripts/__pycache__/team_skills_platform.cpython-311.pyc +0 -0
  319. package/scripts/__pycache__/team_skills_platform.cpython-313.pyc +0 -0
  320. package/scripts/__pycache__/validate_library.cpython-311.pyc +0 -0
  321. package/scripts/__pycache__/validate_workflow_state.cpython-311.pyc +0 -0
  322. package/scripts/artifact-persistence.js +970 -0
  323. package/scripts/build-platform-artifacts.js +84 -0
  324. package/scripts/build-platform-artifacts.ps1 +4 -0
  325. package/scripts/build-platform-artifacts.sh +7 -0
  326. package/scripts/build-prebuilt.sh +247 -0
  327. package/scripts/evolution/__pycache__/__init__.cpython-311.pyc +0 -0
  328. package/scripts/evolution/__pycache__/store.cpython-311.pyc +0 -0
  329. package/scripts/graphify-preflight.js +134 -0
  330. package/scripts/harness-audit.js +725 -0
  331. package/scripts/hooks/__pycache__/__init__.cpython-311.pyc +0 -0
  332. package/scripts/hooks/__pycache__/mcp_health_check.cpython-311.pyc +0 -0
  333. package/scripts/hooks/__pycache__/observe.cpython-311.pyc +0 -0
  334. package/scripts/hooks/__pycache__/session_end.cpython-311.pyc +0 -0
  335. package/scripts/hooks/__pycache__/session_start.cpython-311.pyc +0 -0
  336. package/scripts/hooks/auto-tmux-dev.js +88 -0
  337. package/scripts/hooks/check-console-log.js +71 -0
  338. package/scripts/hooks/check-hook-enabled.js +12 -0
  339. package/scripts/hooks/config-protection.js +140 -0
  340. package/scripts/hooks/cost-tracker.js +78 -0
  341. package/scripts/hooks/desktop-notify.js +168 -0
  342. package/scripts/hooks/doc-file-warning.js +90 -0
  343. package/scripts/hooks/evaluate-session.js +100 -0
  344. package/scripts/hooks/governance-capture.js +334 -0
  345. package/scripts/hooks/insaits-security-wrapper.js +90 -0
  346. package/scripts/hooks/mcp-health-check.js +619 -0
  347. package/scripts/hooks/post-bash-build-complete.js +27 -0
  348. package/scripts/hooks/post-bash-command-log.js +73 -0
  349. package/scripts/hooks/post-bash-pr-created.js +36 -0
  350. package/scripts/hooks/post-edit-accumulator.js +78 -0
  351. package/scripts/hooks/post-edit-console-warn.js +54 -0
  352. package/scripts/hooks/post-edit-format.js +109 -0
  353. package/scripts/hooks/post-edit-typecheck.js +96 -0
  354. package/scripts/hooks/pre-bash-block-no-verify.js +51 -0
  355. package/scripts/hooks/pre-bash-commit-quality.js +405 -0
  356. package/scripts/hooks/pre-bash-dev-server-block.js +187 -0
  357. package/scripts/hooks/pre-bash-git-push-reminder.js +28 -0
  358. package/scripts/hooks/pre-bash-tmux-reminder.js +33 -0
  359. package/scripts/hooks/pre-compact.js +48 -0
  360. package/scripts/hooks/pre-write-doc-warn.js +9 -0
  361. package/scripts/hooks/pua-post-tool-failure.js +50 -0
  362. package/scripts/hooks/pua-post-tool-use.js +40 -0
  363. package/scripts/hooks/pua-pre-compact.js +35 -0
  364. package/scripts/hooks/pua-stop.js +40 -0
  365. package/scripts/hooks/quality-gate.js +168 -0
  366. package/scripts/hooks/rtk-rewrite-wrapper.js +66 -0
  367. package/scripts/hooks/run-with-flags-shell.sh +41 -0
  368. package/scripts/hooks/run-with-flags.js +181 -0
  369. package/scripts/hooks/session-end-marker.js +29 -0
  370. package/scripts/hooks/session-end.js +301 -0
  371. package/scripts/hooks/session-start-bootstrap.js +149 -0
  372. package/scripts/hooks/session-start.js +275 -0
  373. package/scripts/hooks/stop-format-typecheck.js +209 -0
  374. package/scripts/hooks/stop-hook-bootstrap.js +111 -0
  375. package/scripts/hooks/suggest-compact.js +80 -0
  376. package/scripts/install-apply.js +511 -0
  377. package/scripts/install-claude.ps1 +10 -0
  378. package/scripts/install-claude.sh +16 -0
  379. package/scripts/install-codex.ps1 +13 -0
  380. package/scripts/install-codex.sh +19 -0
  381. package/scripts/install-cursor.sh +16 -0
  382. package/scripts/install-opencode.sh +16 -0
  383. package/scripts/install-plan.js +266 -0
  384. package/scripts/install-platform.js +1082 -0
  385. package/scripts/langfuse-trace.js +328 -0
  386. package/scripts/lib/__pycache__/audit_logger.cpython-311.pyc +0 -0
  387. package/scripts/lib/__pycache__/audit_query.cpython-311.pyc +0 -0
  388. package/scripts/lib/__pycache__/hook_contract.cpython-311.pyc +0 -0
  389. package/scripts/lib/__pycache__/memory_store.cpython-311.pyc +0 -0
  390. package/scripts/lib/__pycache__/utils.cpython-311.pyc +0 -0
  391. package/scripts/lib/agent-compress.js +244 -0
  392. package/scripts/lib/audit-logger.js +82 -0
  393. package/scripts/lib/audit-query.js +194 -0
  394. package/scripts/lib/hook-flags.js +74 -0
  395. package/scripts/lib/inspection.js +212 -0
  396. package/scripts/lib/install/apply.js +214 -0
  397. package/scripts/lib/install/config.js +90 -0
  398. package/scripts/lib/install/request.js +138 -0
  399. package/scripts/lib/install/runtime.js +55 -0
  400. package/scripts/lib/install-audit-manifest.js +225 -0
  401. package/scripts/lib/install-executor.js +684 -0
  402. package/scripts/lib/install-lifecycle.js +1317 -0
  403. package/scripts/lib/install-manifests.js +659 -0
  404. package/scripts/lib/install-state.js +315 -0
  405. package/scripts/lib/install-targets/antigravity-project.js +85 -0
  406. package/scripts/lib/install-targets/augment-project.js +47 -0
  407. package/scripts/lib/install-targets/claude-home.js +10 -0
  408. package/scripts/lib/install-targets/codebuddy-project.js +47 -0
  409. package/scripts/lib/install-targets/codex-home.js +10 -0
  410. package/scripts/lib/install-targets/copilot-home.js +10 -0
  411. package/scripts/lib/install-targets/cursor-project.js +47 -0
  412. package/scripts/lib/install-targets/gemini-project.js +10 -0
  413. package/scripts/lib/install-targets/helpers.js +314 -0
  414. package/scripts/lib/install-targets/opencode-home.js +10 -0
  415. package/scripts/lib/install-targets/registry.js +76 -0
  416. package/scripts/lib/install-targets/windsurf-project.js +47 -0
  417. package/scripts/lib/orchestration-session.js +299 -0
  418. package/scripts/lib/package-manager.d.ts +119 -0
  419. package/scripts/lib/package-manager.js +431 -0
  420. package/scripts/lib/project-detect.js +428 -0
  421. package/scripts/lib/pua-state.js +123 -0
  422. package/scripts/lib/release-health.js +82 -0
  423. package/scripts/lib/resolve-ecc-root.js +104 -0
  424. package/scripts/lib/resolve-formatter.js +185 -0
  425. package/scripts/lib/session-adapters/canonical-session.js +531 -0
  426. package/scripts/lib/session-adapters/claude-history.js +160 -0
  427. package/scripts/lib/session-adapters/dmux-tmux.js +90 -0
  428. package/scripts/lib/session-adapters/registry.js +127 -0
  429. package/scripts/lib/session-aliases.d.ts +136 -0
  430. package/scripts/lib/session-aliases.js +481 -0
  431. package/scripts/lib/session-manager.d.ts +132 -0
  432. package/scripts/lib/session-manager.js +533 -0
  433. package/scripts/lib/shell-split.js +86 -0
  434. package/scripts/lib/skill-evolution/dashboard.js +401 -0
  435. package/scripts/lib/skill-evolution/health.js +263 -0
  436. package/scripts/lib/skill-evolution/index.js +20 -0
  437. package/scripts/lib/skill-evolution/provenance.js +187 -0
  438. package/scripts/lib/skill-evolution/tracker.js +146 -0
  439. package/scripts/lib/skill-evolution/versioning.js +237 -0
  440. package/scripts/lib/skill-improvement/amendify.js +89 -0
  441. package/scripts/lib/skill-improvement/evaluate.js +59 -0
  442. package/scripts/lib/skill-improvement/health.js +118 -0
  443. package/scripts/lib/skill-improvement/observations.js +108 -0
  444. package/scripts/lib/state-store/index.js +191 -0
  445. package/scripts/lib/state-store/migrations.js +295 -0
  446. package/scripts/lib/state-store/queries.js +852 -0
  447. package/scripts/lib/state-store/schema.js +93 -0
  448. package/scripts/lib/team-skills-data.json +1318 -0
  449. package/scripts/lib/team-skills-platform.js +581 -0
  450. package/scripts/lib/tmux-worktree-orchestrator.js +598 -0
  451. package/scripts/lib/utils.d.ts +196 -0
  452. package/scripts/lib/utils.js +625 -0
  453. package/scripts/lib/workflow/discovery.js +105 -0
  454. package/scripts/lib/workflow/errors.js +33 -0
  455. package/scripts/lib/workflow/executor.js +350 -0
  456. package/scripts/lib/workflow/loader.js +173 -0
  457. package/scripts/lib/workflow/registry.js +102 -0
  458. package/scripts/lib/workflow/schema.js +66 -0
  459. package/scripts/lib/workflow/template.js +149 -0
  460. package/scripts/lib/workflow/types.d.ts +177 -0
  461. package/scripts/lib/workflow/types.js +27 -0
  462. package/scripts/lib/workflow-help-catalog.json +208 -0
  463. package/scripts/post-install-bridge.js +46 -0
  464. package/scripts/query-audit-logs.js +171 -0
  465. package/scripts/release-health-summary.js +297 -0
  466. package/scripts/release.sh +106 -0
  467. package/scripts/scan-leaked-keys.js +166 -0
  468. package/scripts/sync-prebuilt-from-github.js +521 -0
  469. package/scripts/trigger-gitlab-pipeline.js +165 -0
  470. package/scripts/validate-doc-freshness.js +321 -0
  471. package/scripts/validate-file-references.js +356 -0
  472. package/scripts/validate-library.js +487 -0
  473. package/scripts/validate-library.ps1 +4 -0
  474. package/scripts/validate-library.sh +7 -0
  475. package/scripts/validate-packed-tarball.js +149 -0
  476. package/scripts/validate-prebuilt.js +113 -0
  477. package/scripts/validate-skill-structure.js +256 -0
  478. package/scripts/validate-workflow-state.js +378 -0
  479. package/scripts/validate-workflows.js +99 -0
  480. package/scripts/workflow-help.js +648 -0
  481. package/scripts/workflow-list.js +133 -0
  482. package/scripts/workflow-readiness.js +259 -0
  483. package/scripts/workflow-run.js +553 -0
  484. package/scripts/workflow-runs.js +217 -0
  485. package/skills/adk-framework-adapters/SKILL.md +76 -0
  486. package/skills/adk-framework-adapters/references/agentscope.md +261 -0
  487. package/skills/adk-framework-adapters/references/autogen.md +206 -0
  488. package/skills/adk-framework-adapters/references/crewai.md +251 -0
  489. package/skills/adk-framework-adapters/references/eino.md +264 -0
  490. package/skills/adk-framework-adapters/references/langchain.md +193 -0
  491. package/skills/agent-dev-workshop/SKILL.md +296 -0
  492. package/skills/agent-dev-workshop/agents/openai.yaml +4 -0
  493. package/skills/agent-dev-workshop/references/phase1-discovery.md +124 -0
  494. package/skills/agent-dev-workshop/references/phase2-architecture.md +146 -0
  495. package/skills/agent-dev-workshop/references/phase3-tools.md +174 -0
  496. package/skills/agent-dev-workshop/references/phase4-prompts.md +269 -0
  497. package/skills/agent-dev-workshop/references/phase5-codegen.md +182 -0
  498. package/skills/agent-dev-workshop/references/phase6-verification.md +160 -0
  499. package/skills/agent-dev-workshop/references/shared.md +123 -0
  500. package/skills/agent-eval/SKILL.md +145 -0
  501. package/skills/agent-harness-construction/SKILL.md +73 -0
  502. package/skills/agent-patterns-catalog/SKILL.md +74 -0
  503. package/skills/agent-patterns-catalog/references/autonomous-agent.md +151 -0
  504. package/skills/agent-patterns-catalog/references/multi-agent-conversation.md +102 -0
  505. package/skills/agent-patterns-catalog/references/multi-agent-workflow.md +124 -0
  506. package/skills/agent-patterns-catalog/references/rag-agent.md +128 -0
  507. package/skills/agent-patterns-catalog/references/react-agent.md +72 -0
  508. package/skills/agent-patterns-catalog/references/tool-use-agent.md +139 -0
  509. package/skills/agent-payment-x402/SKILL.md +178 -0
  510. package/skills/agentic-engineering/SKILL.md +63 -0
  511. package/skills/ai-first-engineering/SKILL.md +51 -0
  512. package/skills/ai-regression-testing/SKILL.md +385 -0
  513. package/skills/ai-regression-testing/agents/openai.yaml +4 -0
  514. package/skills/android-clean-architecture/SKILL.md +339 -0
  515. package/skills/api-contract/SKILL.md +21 -0
  516. package/skills/api-contract/agents/openai.yaml +4 -0
  517. package/skills/api-design/SKILL.md +523 -0
  518. package/skills/architecture-decision-records/SKILL.md +179 -0
  519. package/skills/article-writing/SKILL.md +106 -0
  520. package/skills/autonomous-agent-harness/SKILL.md +267 -0
  521. package/skills/autonomous-loops/SKILL.md +610 -0
  522. package/skills/backend-patterns/SKILL.md +598 -0
  523. package/skills/benchmark/SKILL.md +93 -0
  524. package/skills/blueprint/SKILL.md +105 -0
  525. package/skills/brainstorming/SKILL.md +74 -0
  526. package/skills/brand-voice/SKILL.md +97 -0
  527. package/skills/brand-voice/references/voice-profile-schema.md +55 -0
  528. package/skills/browser-qa/SKILL.md +87 -0
  529. package/skills/browser-smoke-testing/SKILL.md +36 -0
  530. package/skills/browser-smoke-testing/agents/openai.yaml +4 -0
  531. package/skills/bun-runtime/SKILL.md +84 -0
  532. package/skills/canary-watch/SKILL.md +99 -0
  533. package/skills/carrier-relationship-management/SKILL.md +212 -0
  534. package/skills/ck/SKILL.md +147 -0
  535. package/skills/ck/commands/forget.mjs +44 -0
  536. package/skills/ck/commands/info.mjs +24 -0
  537. package/skills/ck/commands/init.mjs +143 -0
  538. package/skills/ck/commands/list.mjs +40 -0
  539. package/skills/ck/commands/migrate.mjs +202 -0
  540. package/skills/ck/commands/resume.mjs +36 -0
  541. package/skills/ck/commands/save.mjs +210 -0
  542. package/skills/ck/commands/shared.mjs +387 -0
  543. package/skills/ck/hooks/session-start.mjs +224 -0
  544. package/skills/claude-api/SKILL.md +337 -0
  545. package/skills/claude-devfleet/SKILL.md +103 -0
  546. package/skills/click-path-audit/SKILL.md +244 -0
  547. package/skills/clickhouse-io/SKILL.md +439 -0
  548. package/skills/codebase-onboarding/SKILL.md +233 -0
  549. package/skills/coding-standards/SKILL.md +530 -0
  550. package/skills/compose-multiplatform-patterns/SKILL.md +299 -0
  551. package/skills/configure-ecc/SKILL.md +367 -0
  552. package/skills/configure-ecc/agents/openai.yaml +4 -0
  553. package/skills/connections-optimizer/SKILL.md +187 -0
  554. package/skills/content-engine/SKILL.md +153 -0
  555. package/skills/content-hash-cache-pattern/SKILL.md +161 -0
  556. package/skills/context-budget/SKILL.md +135 -0
  557. package/skills/context-engineering/SKILL.md +198 -0
  558. package/skills/context-lifecycle/SKILL.md +164 -0
  559. package/skills/context-recall/SKILL.md +154 -0
  560. package/skills/continuous-agent-loop/SKILL.md +45 -0
  561. package/skills/continuous-learning/SKILL.md +140 -0
  562. package/skills/continuous-learning/agents/openai.yaml +4 -0
  563. package/skills/continuous-learning-v2/SKILL.md +140 -0
  564. package/skills/continuous-learning-v2/agents/observer-loop.sh +210 -0
  565. package/skills/continuous-learning-v2/agents/observer.md +198 -0
  566. package/skills/continuous-learning-v2/agents/openai.yaml +4 -0
  567. package/skills/continuous-learning-v2/agents/session-guardian.sh +150 -0
  568. package/skills/continuous-learning-v2/agents/start-observer.sh +244 -0
  569. package/skills/continuous-learning-v2/config.json +8 -0
  570. package/skills/continuous-learning-v2/hooks/observe.sh +414 -0
  571. package/skills/continuous-learning-v2/scripts/detect-project.sh +228 -0
  572. package/skills/continuous-learning-v2/scripts/instinct-cli.py +1477 -0
  573. package/skills/continuous-learning-v2/scripts/test_parse_instinct.py +984 -0
  574. package/skills/cost-aware-llm-pipeline/SKILL.md +138 -0
  575. package/skills/cpp-coding-standards/SKILL.md +723 -0
  576. package/skills/cpp-testing/SKILL.md +324 -0
  577. package/skills/cross-model-review/SKILL.md +107 -0
  578. package/skills/crosspost/SKILL.md +117 -0
  579. package/skills/customer-billing-ops/SKILL.md +140 -0
  580. package/skills/customs-trade-compliance/SKILL.md +263 -0
  581. package/skills/data-scraper-agent/SKILL.md +764 -0
  582. package/skills/database-migrations/SKILL.md +429 -0
  583. package/skills/deep-research/SKILL.md +155 -0
  584. package/skills/deployment-patterns/SKILL.md +427 -0
  585. package/skills/design-system/SKILL.md +82 -0
  586. package/skills/discuss-phase/SKILL.md +73 -0
  587. package/skills/django-patterns/SKILL.md +734 -0
  588. package/skills/django-security/SKILL.md +593 -0
  589. package/skills/django-tdd/SKILL.md +729 -0
  590. package/skills/django-verification/SKILL.md +469 -0
  591. package/skills/dmux-workflows/SKILL.md +191 -0
  592. package/skills/doc-architecture/SKILL.md +93 -0
  593. package/skills/doc-architecture/agents/openai.yaml +4 -0
  594. package/skills/doc-architecture/references/artifact-mapping.md +16 -0
  595. package/skills/doc-architecture/references/audit-checklist.md +34 -0
  596. package/skills/doc-architecture/references/discovery-questionnaire.md +40 -0
  597. package/skills/doc-architecture/references/doc-evolution-guide.md +23 -0
  598. package/skills/doc-architecture/references/service-decomposition-guide.md +32 -0
  599. package/skills/doc-architecture/references/tech-stack-profiles.md +31 -0
  600. package/skills/doc-architecture/references/templates/agents-md.tmpl.md +7 -0
  601. package/skills/doc-architecture/references/templates/architecture.tmpl.md +8 -0
  602. package/skills/doc-architecture/references/templates/domain.tmpl.md +7 -0
  603. package/skills/doc-architecture/references/templates/frontend.tmpl.md +7 -0
  604. package/skills/doc-architecture/references/templates/plan.tmpl.md +6 -0
  605. package/skills/doc-architecture/references/templates/runbook.tmpl.md +6 -0
  606. package/skills/doc-architecture/references/templates/spec.tmpl.md +8 -0
  607. package/skills/docker-patterns/SKILL.md +364 -0
  608. package/skills/documentation-lookup/SKILL.md +90 -0
  609. package/skills/e2e-testing/SKILL.md +326 -0
  610. package/skills/e2e-testing/agents/openai.yaml +4 -0
  611. package/skills/energy-procurement/SKILL.md +228 -0
  612. package/skills/enterprise-agent-ops/SKILL.md +50 -0
  613. package/skills/error-experience-library/SKILL.md +81 -0
  614. package/skills/error-experience-library/agents/openai.yaml +59 -0
  615. package/skills/eval-harness/SKILL.md +187 -0
  616. package/skills/eval-harness/agents/openai.yaml +4 -0
  617. package/skills/evolution-core/SKILL.md +280 -0
  618. package/skills/evolution-network/SKILL.md +110 -0
  619. package/skills/exa-search/SKILL.md +103 -0
  620. package/skills/fal-ai-media/SKILL.md +284 -0
  621. package/skills/flutter-dart-code-review/SKILL.md +435 -0
  622. package/skills/foundation-models-on-device/SKILL.md +243 -0
  623. package/skills/frontend-engineering/SKILL.md +31 -0
  624. package/skills/frontend-engineering/agents/openai.yaml +4 -0
  625. package/skills/frontend-engineering/references/component-patterns.md +19 -0
  626. package/skills/frontend-engineering/references/quality-checklist.md +18 -0
  627. package/skills/frontend-engineering/references/react-next-baseline.md +24 -0
  628. package/skills/frontend-patterns/SKILL.md +642 -0
  629. package/skills/frontend-slides/SKILL.md +184 -0
  630. package/skills/frontend-slides/STYLE_PRESETS.md +330 -0
  631. package/skills/frontend-ui-ux-system/SKILL.md +31 -0
  632. package/skills/frontend-ui-ux-system/agents/openai.yaml +4 -0
  633. package/skills/frontend-ui-ux-system/references/delivery-checklist.md +16 -0
  634. package/skills/frontend-ui-ux-system/references/design-md-integration.md +123 -0
  635. package/skills/frontend-ui-ux-system/references/design-tokens.md +22 -0
  636. package/skills/frontend-ui-ux-system/references/interaction-accessibility.md +19 -0
  637. package/skills/frontend-ui-ux-system/references/product-style-map.md +20 -0
  638. package/skills/gan-style-harness/SKILL.md +278 -0
  639. package/skills/git-workflow/SKILL.md +715 -0
  640. package/skills/git-worktree-isolation/SKILL.md +137 -0
  641. package/skills/goframe-v2/SKILL.md +136 -0
  642. package/skills/goframe-v2/examples/README.MD +53 -0
  643. package/skills/goframe-v2/examples/balancer/http/README.MD +91 -0
  644. package/skills/goframe-v2/examples/balancer/http/README.ZH.MD +44 -0
  645. package/skills/goframe-v2/examples/balancer/http/client/client.go +48 -0
  646. package/skills/goframe-v2/examples/balancer/http/go.mod +53 -0
  647. package/skills/goframe-v2/examples/balancer/http/go.sum +155 -0
  648. package/skills/goframe-v2/examples/balancer/http/server/server.go +43 -0
  649. package/skills/goframe-v2/examples/balancer/polaris/README.ZH.MD +71 -0
  650. package/skills/goframe-v2/examples/balancer/polaris/README.md +102 -0
  651. package/skills/goframe-v2/examples/balancer/polaris/client/client.go +84 -0
  652. package/skills/goframe-v2/examples/balancer/polaris/go.mod +63 -0
  653. package/skills/goframe-v2/examples/balancer/polaris/go.sum +1036 -0
  654. package/skills/goframe-v2/examples/balancer/polaris/server/server.go +65 -0
  655. package/skills/goframe-v2/examples/config/apollo/README.MD +160 -0
  656. package/skills/goframe-v2/examples/config/apollo/README.ZH.MD +51 -0
  657. package/skills/goframe-v2/examples/config/apollo/boot/boot.go +53 -0
  658. package/skills/goframe-v2/examples/config/apollo/go.mod +50 -0
  659. package/skills/goframe-v2/examples/config/apollo/go.sum +658 -0
  660. package/skills/goframe-v2/examples/config/apollo/main.go +42 -0
  661. package/skills/goframe-v2/examples/config/consul/README.MD +130 -0
  662. package/skills/goframe-v2/examples/config/consul/README.ZH.MD +50 -0
  663. package/skills/goframe-v2/examples/config/consul/boot/boot.go +63 -0
  664. package/skills/goframe-v2/examples/config/consul/go.mod +51 -0
  665. package/skills/goframe-v2/examples/config/consul/go.sum +285 -0
  666. package/skills/goframe-v2/examples/config/consul/main.go +45 -0
  667. package/skills/goframe-v2/examples/config/kubecm/README.MD +142 -0
  668. package/skills/goframe-v2/examples/config/kubecm/README.ZH.MD +40 -0
  669. package/skills/goframe-v2/examples/config/kubecm/boot_in_pod/boot.go +63 -0
  670. package/skills/goframe-v2/examples/config/kubecm/boot_out_pod/boot.go +85 -0
  671. package/skills/goframe-v2/examples/config/kubecm/go.mod +72 -0
  672. package/skills/goframe-v2/examples/config/kubecm/go.sum +209 -0
  673. package/skills/goframe-v2/examples/config/kubecm/main.go +45 -0
  674. package/skills/goframe-v2/examples/config/nacos/README.MD +110 -0
  675. package/skills/goframe-v2/examples/config/nacos/README.ZH.MD +52 -0
  676. package/skills/goframe-v2/examples/config/nacos/boot/boot.go +74 -0
  677. package/skills/goframe-v2/examples/config/nacos/go.mod +90 -0
  678. package/skills/goframe-v2/examples/config/nacos/go.sum +760 -0
  679. package/skills/goframe-v2/examples/config/nacos/main.go +45 -0
  680. package/skills/goframe-v2/examples/config/polaris/README.MD +135 -0
  681. package/skills/goframe-v2/examples/config/polaris/README.ZH.MD +47 -0
  682. package/skills/goframe-v2/examples/config/polaris/boot/boot.go +67 -0
  683. package/skills/goframe-v2/examples/config/polaris/go.mod +63 -0
  684. package/skills/goframe-v2/examples/config/polaris/go.sum +1036 -0
  685. package/skills/goframe-v2/examples/config/polaris/main.go +45 -0
  686. package/skills/goframe-v2/examples/config/polaris/testdata/polaris.yaml +11 -0
  687. package/skills/goframe-v2/examples/database/encoded-pass/README.MD +107 -0
  688. package/skills/goframe-v2/examples/database/encoded-pass/README.ZH.MD +108 -0
  689. package/skills/goframe-v2/examples/database/encoded-pass/config.yaml +3 -0
  690. package/skills/goframe-v2/examples/database/encoded-pass/dbdriver/dbdriver.go +77 -0
  691. package/skills/goframe-v2/examples/database/encoded-pass/dbdriver/dbdriver_test.go +46 -0
  692. package/skills/goframe-v2/examples/database/encoded-pass/go.mod +39 -0
  693. package/skills/goframe-v2/examples/database/encoded-pass/go.sum +86 -0
  694. package/skills/goframe-v2/examples/database/encoded-pass/main.go +26 -0
  695. package/skills/goframe-v2/examples/grpc/balancer/README.MD +104 -0
  696. package/skills/goframe-v2/examples/grpc/balancer/README.ZH.MD +60 -0
  697. package/skills/goframe-v2/examples/grpc/balancer/client/client.go +71 -0
  698. package/skills/goframe-v2/examples/grpc/balancer/controller/helloworld.go +28 -0
  699. package/skills/goframe-v2/examples/grpc/balancer/go.mod +43 -0
  700. package/skills/goframe-v2/examples/grpc/balancer/go.sum +94 -0
  701. package/skills/goframe-v2/examples/grpc/balancer/protobuf/helloworld.pb.go +124 -0
  702. package/skills/goframe-v2/examples/grpc/balancer/protobuf/helloworld.proto +24 -0
  703. package/skills/goframe-v2/examples/grpc/balancer/protobuf/helloworld_grpc.pb.go +129 -0
  704. package/skills/goframe-v2/examples/grpc/balancer/server/config.yaml +8 -0
  705. package/skills/goframe-v2/examples/grpc/balancer/server/server.go +45 -0
  706. package/skills/goframe-v2/examples/grpc/basic/README.MD +100 -0
  707. package/skills/goframe-v2/examples/grpc/basic/README.ZH.MD +53 -0
  708. package/skills/goframe-v2/examples/grpc/basic/client/client.go +60 -0
  709. package/skills/goframe-v2/examples/grpc/basic/controller/helloworld.go +28 -0
  710. package/skills/goframe-v2/examples/grpc/basic/go.mod +42 -0
  711. package/skills/goframe-v2/examples/grpc/basic/go.sum +94 -0
  712. package/skills/goframe-v2/examples/grpc/basic/protobuf/helloworld.pb.go +217 -0
  713. package/skills/goframe-v2/examples/grpc/basic/protobuf/helloworld.proto +24 -0
  714. package/skills/goframe-v2/examples/grpc/basic/protobuf/helloworld_grpc.pb.go +107 -0
  715. package/skills/goframe-v2/examples/grpc/basic/server/config.yaml +8 -0
  716. package/skills/goframe-v2/examples/grpc/basic/server/server.go +47 -0
  717. package/skills/goframe-v2/examples/grpc/ctx/README.MD +100 -0
  718. package/skills/goframe-v2/examples/grpc/ctx/README.ZH.MD +51 -0
  719. package/skills/goframe-v2/examples/grpc/ctx/client/client.go +73 -0
  720. package/skills/goframe-v2/examples/grpc/ctx/controller/helloworld.go +66 -0
  721. package/skills/goframe-v2/examples/grpc/ctx/go.mod +42 -0
  722. package/skills/goframe-v2/examples/grpc/ctx/go.sum +94 -0
  723. package/skills/goframe-v2/examples/grpc/ctx/protobuf/helloworld.pb.go +217 -0
  724. package/skills/goframe-v2/examples/grpc/ctx/protobuf/helloworld.proto +24 -0
  725. package/skills/goframe-v2/examples/grpc/ctx/protobuf/helloworld_grpc.pb.go +107 -0
  726. package/skills/goframe-v2/examples/grpc/ctx/server/config.yaml +8 -0
  727. package/skills/goframe-v2/examples/grpc/ctx/server/server.go +47 -0
  728. package/skills/goframe-v2/examples/grpc/rawgrpc/README.MD +98 -0
  729. package/skills/goframe-v2/examples/grpc/rawgrpc/README.ZH.MD +54 -0
  730. package/skills/goframe-v2/examples/grpc/rawgrpc/client/client.go +76 -0
  731. package/skills/goframe-v2/examples/grpc/rawgrpc/go.mod +42 -0
  732. package/skills/goframe-v2/examples/grpc/rawgrpc/go.sum +94 -0
  733. package/skills/goframe-v2/examples/grpc/rawgrpc/helloworld/helloworld.pb.go +234 -0
  734. package/skills/goframe-v2/examples/grpc/rawgrpc/helloworld/helloworld.proto +25 -0
  735. package/skills/goframe-v2/examples/grpc/rawgrpc/helloworld/helloworld_grpc.pb.go +107 -0
  736. package/skills/goframe-v2/examples/grpc/rawgrpc/server/server.go +89 -0
  737. package/skills/goframe-v2/examples/grpc/resolver/README.MD +105 -0
  738. package/skills/goframe-v2/examples/grpc/resolver/README.ZH.MD +61 -0
  739. package/skills/goframe-v2/examples/grpc/resolver/client/client.go +63 -0
  740. package/skills/goframe-v2/examples/grpc/resolver/controller/helloworld.go +61 -0
  741. package/skills/goframe-v2/examples/grpc/resolver/go.mod +54 -0
  742. package/skills/goframe-v2/examples/grpc/resolver/go.sum +157 -0
  743. package/skills/goframe-v2/examples/grpc/resolver/protobuf/helloworld.pb.go +217 -0
  744. package/skills/goframe-v2/examples/grpc/resolver/protobuf/helloworld.proto +24 -0
  745. package/skills/goframe-v2/examples/grpc/resolver/protobuf/helloworld_grpc.pb.go +107 -0
  746. package/skills/goframe-v2/examples/grpc/resolver/server/config.yaml +8 -0
  747. package/skills/goframe-v2/examples/grpc/resolver/server/server.go +50 -0
  748. package/skills/goframe-v2/examples/httpserver/basic-auth/README.MD +104 -0
  749. package/skills/goframe-v2/examples/httpserver/basic-auth/README.ZH.MD +104 -0
  750. package/skills/goframe-v2/examples/httpserver/basic-auth/go.mod +35 -0
  751. package/skills/goframe-v2/examples/httpserver/basic-auth/go.sum +81 -0
  752. package/skills/goframe-v2/examples/httpserver/basic-auth/main.go +34 -0
  753. package/skills/goframe-v2/examples/httpserver/jwt/README.MD +86 -0
  754. package/skills/goframe-v2/examples/httpserver/jwt/README.ZH.MD +86 -0
  755. package/skills/goframe-v2/examples/httpserver/jwt/api/v1/auth.go +30 -0
  756. package/skills/goframe-v2/examples/httpserver/jwt/go.mod +38 -0
  757. package/skills/goframe-v2/examples/httpserver/jwt/go.sum +83 -0
  758. package/skills/goframe-v2/examples/httpserver/jwt/internal/controller/auth.go +64 -0
  759. package/skills/goframe-v2/examples/httpserver/jwt/internal/middleware/jwt.go +55 -0
  760. package/skills/goframe-v2/examples/httpserver/jwt/main.go +39 -0
  761. package/skills/goframe-v2/examples/httpserver/mcp-http/README.MD +134 -0
  762. package/skills/goframe-v2/examples/httpserver/mcp-http/README.ZH.MD +134 -0
  763. package/skills/goframe-v2/examples/httpserver/mcp-http/go.mod +45 -0
  764. package/skills/goframe-v2/examples/httpserver/mcp-http/go.sum +100 -0
  765. package/skills/goframe-v2/examples/httpserver/mcp-http/main.go +51 -0
  766. package/skills/goframe-v2/examples/httpserver/mcp-sse/README.MD +99 -0
  767. package/skills/goframe-v2/examples/httpserver/mcp-sse/README.ZH.MD +101 -0
  768. package/skills/goframe-v2/examples/httpserver/mcp-sse/go.mod +45 -0
  769. package/skills/goframe-v2/examples/httpserver/mcp-sse/go.sum +100 -0
  770. package/skills/goframe-v2/examples/httpserver/mcp-sse/main.go +55 -0
  771. package/skills/goframe-v2/examples/httpserver/proxy/README.MD +92 -0
  772. package/skills/goframe-v2/examples/httpserver/proxy/README.ZH.MD +47 -0
  773. package/skills/goframe-v2/examples/httpserver/proxy/go.mod +35 -0
  774. package/skills/goframe-v2/examples/httpserver/proxy/go.sum +81 -0
  775. package/skills/goframe-v2/examples/httpserver/proxy/main.go +90 -0
  776. package/skills/goframe-v2/examples/httpserver/rate-limit/README.MD +77 -0
  777. package/skills/goframe-v2/examples/httpserver/rate-limit/README.ZH.MD +43 -0
  778. package/skills/goframe-v2/examples/httpserver/rate-limit/go.mod +38 -0
  779. package/skills/goframe-v2/examples/httpserver/rate-limit/go.sum +83 -0
  780. package/skills/goframe-v2/examples/httpserver/rate-limit/main.go +80 -0
  781. package/skills/goframe-v2/examples/httpserver/response-json-array/README.MD +80 -0
  782. package/skills/goframe-v2/examples/httpserver/response-json-array/README.ZH.MD +42 -0
  783. package/skills/goframe-v2/examples/httpserver/response-json-array/go.mod +35 -0
  784. package/skills/goframe-v2/examples/httpserver/response-json-array/go.sum +81 -0
  785. package/skills/goframe-v2/examples/httpserver/response-json-array/main.go +76 -0
  786. package/skills/goframe-v2/examples/httpserver/sse/README.MD +87 -0
  787. package/skills/goframe-v2/examples/httpserver/sse/README.ZH.MD +85 -0
  788. package/skills/goframe-v2/examples/httpserver/sse/go.mod +35 -0
  789. package/skills/goframe-v2/examples/httpserver/sse/go.sum +81 -0
  790. package/skills/goframe-v2/examples/httpserver/sse/main.go +84 -0
  791. package/skills/goframe-v2/examples/httpserver/swagger-auth/README.MD +104 -0
  792. package/skills/goframe-v2/examples/httpserver/swagger-auth/README.ZH.MD +104 -0
  793. package/skills/goframe-v2/examples/httpserver/swagger-auth/go.mod +35 -0
  794. package/skills/goframe-v2/examples/httpserver/swagger-auth/go.sum +81 -0
  795. package/skills/goframe-v2/examples/httpserver/swagger-auth/main.go +73 -0
  796. package/skills/goframe-v2/examples/httpserver/upload-file/README.MD +99 -0
  797. package/skills/goframe-v2/examples/httpserver/upload-file/README.ZH.MD +47 -0
  798. package/skills/goframe-v2/examples/httpserver/upload-file/go.mod +35 -0
  799. package/skills/goframe-v2/examples/httpserver/upload-file/go.sum +81 -0
  800. package/skills/goframe-v2/examples/httpserver/upload-file/main.go +78 -0
  801. package/skills/goframe-v2/examples/httpserver/upload-file/static/index.html +151 -0
  802. package/skills/goframe-v2/examples/nosql/mongodb/README.MD +101 -0
  803. package/skills/goframe-v2/examples/nosql/mongodb/README.ZH.MD +91 -0
  804. package/skills/goframe-v2/examples/nosql/mongodb/config.yaml +3 -0
  805. package/skills/goframe-v2/examples/nosql/mongodb/go.mod +47 -0
  806. package/skills/goframe-v2/examples/nosql/mongodb/go.sum +125 -0
  807. package/skills/goframe-v2/examples/nosql/mongodb/main.go +119 -0
  808. package/skills/goframe-v2/examples/nosql/redis/README.MD +100 -0
  809. package/skills/goframe-v2/examples/nosql/redis/README.ZH.MD +89 -0
  810. package/skills/goframe-v2/examples/nosql/redis/config.yaml +3 -0
  811. package/skills/goframe-v2/examples/nosql/redis/go.mod +40 -0
  812. package/skills/goframe-v2/examples/nosql/redis/go.sum +91 -0
  813. package/skills/goframe-v2/examples/nosql/redis/main.go +68 -0
  814. package/skills/goframe-v2/examples/observability/metric/basic/README.MD +101 -0
  815. package/skills/goframe-v2/examples/observability/metric/basic/README.ZH.MD +145 -0
  816. package/skills/goframe-v2/examples/observability/metric/basic/go.mod +52 -0
  817. package/skills/goframe-v2/examples/observability/metric/basic/go.sum +114 -0
  818. package/skills/goframe-v2/examples/observability/metric/basic/main.go +167 -0
  819. package/skills/goframe-v2/examples/observability/metric/callback/README.MD +94 -0
  820. package/skills/goframe-v2/examples/observability/metric/callback/README.ZH.MD +110 -0
  821. package/skills/goframe-v2/examples/observability/metric/callback/go.mod +52 -0
  822. package/skills/goframe-v2/examples/observability/metric/callback/go.sum +114 -0
  823. package/skills/goframe-v2/examples/observability/metric/callback/main.go +99 -0
  824. package/skills/goframe-v2/examples/observability/metric/dynamic_attributes/README.MD +94 -0
  825. package/skills/goframe-v2/examples/observability/metric/dynamic_attributes/README.ZH.MD +127 -0
  826. package/skills/goframe-v2/examples/observability/metric/dynamic_attributes/go.mod +52 -0
  827. package/skills/goframe-v2/examples/observability/metric/dynamic_attributes/go.sum +114 -0
  828. package/skills/goframe-v2/examples/observability/metric/dynamic_attributes/main.go +107 -0
  829. package/skills/goframe-v2/examples/observability/metric/global_attributes/README.MD +94 -0
  830. package/skills/goframe-v2/examples/observability/metric/global_attributes/README.ZH.MD +115 -0
  831. package/skills/goframe-v2/examples/observability/metric/global_attributes/go.mod +52 -0
  832. package/skills/goframe-v2/examples/observability/metric/global_attributes/go.sum +114 -0
  833. package/skills/goframe-v2/examples/observability/metric/global_attributes/main.go +118 -0
  834. package/skills/goframe-v2/examples/observability/metric/http_client/README.MD +100 -0
  835. package/skills/goframe-v2/examples/observability/metric/http_client/README.ZH.MD +115 -0
  836. package/skills/goframe-v2/examples/observability/metric/http_client/go.mod +52 -0
  837. package/skills/goframe-v2/examples/observability/metric/http_client/go.sum +114 -0
  838. package/skills/goframe-v2/examples/observability/metric/http_client/main.go +67 -0
  839. package/skills/goframe-v2/examples/observability/metric/http_server/README.MD +120 -0
  840. package/skills/goframe-v2/examples/observability/metric/http_server/README.ZH.MD +147 -0
  841. package/skills/goframe-v2/examples/observability/metric/http_server/go.mod +52 -0
  842. package/skills/goframe-v2/examples/observability/metric/http_server/go.sum +114 -0
  843. package/skills/goframe-v2/examples/observability/metric/http_server/main.go +89 -0
  844. package/skills/goframe-v2/examples/observability/metric/meter_attributes/README.MD +95 -0
  845. package/skills/goframe-v2/examples/observability/metric/meter_attributes/README.ZH.MD +116 -0
  846. package/skills/goframe-v2/examples/observability/metric/meter_attributes/go.mod +52 -0
  847. package/skills/goframe-v2/examples/observability/metric/meter_attributes/go.sum +114 -0
  848. package/skills/goframe-v2/examples/observability/metric/meter_attributes/main.go +118 -0
  849. package/skills/goframe-v2/examples/observability/metric/prometheus/README.MD +99 -0
  850. package/skills/goframe-v2/examples/observability/metric/prometheus/README.ZH.MD +126 -0
  851. package/skills/goframe-v2/examples/observability/metric/prometheus/go.mod +46 -0
  852. package/skills/goframe-v2/examples/observability/metric/prometheus/go.sum +101 -0
  853. package/skills/goframe-v2/examples/observability/metric/prometheus/prometheus.go +84 -0
  854. package/skills/goframe-v2/examples/observability/trace/grpc-with-db/README.MD +192 -0
  855. package/skills/goframe-v2/examples/observability/trace/grpc-with-db/README.ZH.MD +175 -0
  856. package/skills/goframe-v2/examples/observability/trace/grpc-with-db/client/client.go +114 -0
  857. package/skills/goframe-v2/examples/observability/trace/grpc-with-db/go.mod +67 -0
  858. package/skills/goframe-v2/examples/observability/trace/grpc-with-db/go.sum +187 -0
  859. package/skills/goframe-v2/examples/observability/trace/grpc-with-db/protobuf/user/user.pb.go +469 -0
  860. package/skills/goframe-v2/examples/observability/trace/grpc-with-db/protobuf/user/user.proto +35 -0
  861. package/skills/goframe-v2/examples/observability/trace/grpc-with-db/protobuf/user/user_grpc.pb.go +188 -0
  862. package/skills/goframe-v2/examples/observability/trace/grpc-with-db/server/config.yaml +31 -0
  863. package/skills/goframe-v2/examples/observability/trace/grpc-with-db/server/server.go +138 -0
  864. package/skills/goframe-v2/examples/observability/trace/grpc-with-db/sql.sql +6 -0
  865. package/skills/goframe-v2/examples/observability/trace/http/README.MD +113 -0
  866. package/skills/goframe-v2/examples/observability/trace/http/README.ZH.MD +119 -0
  867. package/skills/goframe-v2/examples/observability/trace/http/client/client.go +71 -0
  868. package/skills/goframe-v2/examples/observability/trace/http/go.mod +47 -0
  869. package/skills/goframe-v2/examples/observability/trace/http/go.sum +106 -0
  870. package/skills/goframe-v2/examples/observability/trace/http/server/server.go +70 -0
  871. package/skills/goframe-v2/examples/observability/trace/http-with-db/README.MD +192 -0
  872. package/skills/goframe-v2/examples/observability/trace/http-with-db/README.ZH.MD +190 -0
  873. package/skills/goframe-v2/examples/observability/trace/http-with-db/client/client.go +107 -0
  874. package/skills/goframe-v2/examples/observability/trace/http-with-db/go.mod +49 -0
  875. package/skills/goframe-v2/examples/observability/trace/http-with-db/go.sum +110 -0
  876. package/skills/goframe-v2/examples/observability/trace/http-with-db/server/config.yaml +23 -0
  877. package/skills/goframe-v2/examples/observability/trace/http-with-db/server/server.go +161 -0
  878. package/skills/goframe-v2/examples/observability/trace/http-with-db/sql.sql +6 -0
  879. package/skills/goframe-v2/examples/observability/trace/inprocess/README.MD +145 -0
  880. package/skills/goframe-v2/examples/observability/trace/inprocess/README.ZH.MD +182 -0
  881. package/skills/goframe-v2/examples/observability/trace/inprocess/go.mod +47 -0
  882. package/skills/goframe-v2/examples/observability/trace/inprocess/go.sum +106 -0
  883. package/skills/goframe-v2/examples/observability/trace/inprocess/main.go +135 -0
  884. package/skills/goframe-v2/examples/observability/trace/inprocess-grpc/README.MD +147 -0
  885. package/skills/goframe-v2/examples/observability/trace/inprocess-grpc/README.ZH.MD +131 -0
  886. package/skills/goframe-v2/examples/observability/trace/inprocess-grpc/go.mod +47 -0
  887. package/skills/goframe-v2/examples/observability/trace/inprocess-grpc/go.sum +106 -0
  888. package/skills/goframe-v2/examples/observability/trace/inprocess-grpc/main.go +139 -0
  889. package/skills/goframe-v2/examples/observability/trace/otlp/README.MD +160 -0
  890. package/skills/goframe-v2/examples/observability/trace/otlp/README.ZH.MD +166 -0
  891. package/skills/goframe-v2/examples/observability/trace/otlp/go.mod +49 -0
  892. package/skills/goframe-v2/examples/observability/trace/otlp/go.sum +110 -0
  893. package/skills/goframe-v2/examples/observability/trace/otlp/grpc/main.go +67 -0
  894. package/skills/goframe-v2/examples/observability/trace/otlp/http/main.go +67 -0
  895. package/skills/goframe-v2/examples/observability/trace/processes/README.MD +151 -0
  896. package/skills/goframe-v2/examples/observability/trace/processes/README.ZH.MD +164 -0
  897. package/skills/goframe-v2/examples/observability/trace/processes/gcmd/main.go +43 -0
  898. package/skills/goframe-v2/examples/observability/trace/processes/gcmd/sub/sub.go +41 -0
  899. package/skills/goframe-v2/examples/observability/trace/processes/go.mod +35 -0
  900. package/skills/goframe-v2/examples/observability/trace/processes/go.sum +81 -0
  901. package/skills/goframe-v2/examples/observability/trace/processes/gproc/main.go +40 -0
  902. package/skills/goframe-v2/examples/observability/trace/processes/gproc/sub/sub.go +33 -0
  903. package/skills/goframe-v2/examples/observability/trace/provider/README.MD +189 -0
  904. package/skills/goframe-v2/examples/observability/trace/provider/README.ZH.MD +210 -0
  905. package/skills/goframe-v2/examples/observability/trace/provider/go.mod +47 -0
  906. package/skills/goframe-v2/examples/observability/trace/provider/go.sum +103 -0
  907. package/skills/goframe-v2/examples/observability/trace/provider/grpc/main.go +114 -0
  908. package/skills/goframe-v2/examples/observability/trace/provider/http/main.go +111 -0
  909. package/skills/goframe-v2/examples/observability/trace/provider/internal/consts.go +34 -0
  910. package/skills/goframe-v2/examples/observability/trace/provider/internal/provider.go +84 -0
  911. package/skills/goframe-v2/examples/observability/trace/provider/internal/request.go +36 -0
  912. package/skills/goframe-v2/examples/practices/injection/Makefile +1 -0
  913. package/skills/goframe-v2/examples/practices/injection/README.MD +148 -0
  914. package/skills/goframe-v2/examples/practices/injection/README.ZH.MD +149 -0
  915. package/skills/goframe-v2/examples/practices/injection/app/gateway/Makefile +8 -0
  916. package/skills/goframe-v2/examples/practices/injection/app/gateway/README.MD +7 -0
  917. package/skills/goframe-v2/examples/practices/injection/app/gateway/api/hello/hello.go +15 -0
  918. package/skills/goframe-v2/examples/practices/injection/app/gateway/api/hello/v1/hello.go +12 -0
  919. package/skills/goframe-v2/examples/practices/injection/app/gateway/api/user/user.go +18 -0
  920. package/skills/goframe-v2/examples/practices/injection/app/gateway/api/user/v1/user.go +39 -0
  921. package/skills/goframe-v2/examples/practices/injection/app/gateway/hack/config.yaml +8 -0
  922. package/skills/goframe-v2/examples/practices/injection/app/gateway/internal/cmd/cmd.go +9 -0
  923. package/skills/goframe-v2/examples/practices/injection/app/gateway/internal/cmd/cmd_server.go +34 -0
  924. package/skills/goframe-v2/examples/practices/injection/app/gateway/internal/cmd/cmd_worker.go +22 -0
  925. package/skills/goframe-v2/examples/practices/injection/app/gateway/internal/consts/consts.go +1 -0
  926. package/skills/goframe-v2/examples/practices/injection/app/gateway/internal/controller/hello/hello.go +5 -0
  927. package/skills/goframe-v2/examples/practices/injection/app/gateway/internal/controller/hello/hello_new.go +15 -0
  928. package/skills/goframe-v2/examples/practices/injection/app/gateway/internal/controller/hello/hello_v1_hello.go +13 -0
  929. package/skills/goframe-v2/examples/practices/injection/app/gateway/internal/controller/user/user.go +5 -0
  930. package/skills/goframe-v2/examples/practices/injection/app/gateway/internal/controller/user/user_new.go +21 -0
  931. package/skills/goframe-v2/examples/practices/injection/app/gateway/internal/controller/user/user_v1.go +5 -0
  932. package/skills/goframe-v2/examples/practices/injection/app/gateway/internal/controller/user/user_v1_create.go +21 -0
  933. package/skills/goframe-v2/examples/practices/injection/app/gateway/internal/controller/user/user_v1_delete.go +16 -0
  934. package/skills/goframe-v2/examples/practices/injection/app/gateway/internal/controller/user/user_v1_get_list.go +29 -0
  935. package/skills/goframe-v2/examples/practices/injection/app/gateway/internal/controller/user/user_v1_get_one.go +26 -0
  936. package/skills/goframe-v2/examples/practices/injection/app/gateway/internal/controller/user/user_v1_test.go +31 -0
  937. package/skills/goframe-v2/examples/practices/injection/app/gateway/internal/model/.gitkeep +0 -0
  938. package/skills/goframe-v2/examples/practices/injection/app/gateway/internal/service/.gitkeep +0 -0
  939. package/skills/goframe-v2/examples/practices/injection/app/gateway/main.go +17 -0
  940. package/skills/goframe-v2/examples/practices/injection/app/gateway/manifest/config/config.yaml +14 -0
  941. package/skills/goframe-v2/examples/practices/injection/app/gateway/manifest/deploy/kustomize/base/configmap.yaml +16 -0
  942. package/skills/goframe-v2/examples/practices/injection/app/gateway/manifest/deploy/kustomize/base/deployment.yaml +31 -0
  943. package/skills/goframe-v2/examples/practices/injection/app/gateway/manifest/deploy/kustomize/base/kustomization.yaml +8 -0
  944. package/skills/goframe-v2/examples/practices/injection/app/gateway/manifest/deploy/kustomize/base/service.yaml +12 -0
  945. package/skills/goframe-v2/examples/practices/injection/app/gateway/manifest/deploy/kustomize/overlays/develop/configmap.yaml +16 -0
  946. package/skills/goframe-v2/examples/practices/injection/app/gateway/manifest/deploy/kustomize/overlays/develop/deployment.yaml +10 -0
  947. package/skills/goframe-v2/examples/practices/injection/app/gateway/manifest/deploy/kustomize/overlays/develop/kustomization.yaml +14 -0
  948. package/skills/goframe-v2/examples/practices/injection/app/gateway/manifest/deploy/kustomize/overlays/product/configmap.yaml +16 -0
  949. package/skills/goframe-v2/examples/practices/injection/app/gateway/manifest/deploy/kustomize/overlays/product/deployment.yaml +10 -0
  950. package/skills/goframe-v2/examples/practices/injection/app/gateway/manifest/deploy/kustomize/overlays/product/kustomization.yaml +14 -0
  951. package/skills/goframe-v2/examples/practices/injection/app/gateway/manifest/docker/Dockerfile +15 -0
  952. package/skills/goframe-v2/examples/practices/injection/app/gateway/manifest/docker/docker.sh +8 -0
  953. package/skills/goframe-v2/examples/practices/injection/app/user/Makefile +8 -0
  954. package/skills/goframe-v2/examples/practices/injection/app/user/README.MD +5 -0
  955. package/skills/goframe-v2/examples/practices/injection/app/user/api/entity/user.pb.go +107 -0
  956. package/skills/goframe-v2/examples/practices/injection/app/user/api/user/v1/user.pb.go +378 -0
  957. package/skills/goframe-v2/examples/practices/injection/app/user/api/user/v1/user_grpc.pb.go +248 -0
  958. package/skills/goframe-v2/examples/practices/injection/app/user/hack/config.yaml +8 -0
  959. package/skills/goframe-v2/examples/practices/injection/app/user/internal/cmd/cmd.go +9 -0
  960. package/skills/goframe-v2/examples/practices/injection/app/user/internal/cmd/cmd_server.go +34 -0
  961. package/skills/goframe-v2/examples/practices/injection/app/user/internal/cmd/cmd_worker.go +22 -0
  962. package/skills/goframe-v2/examples/practices/injection/app/user/internal/consts/consts.go +1 -0
  963. package/skills/goframe-v2/examples/practices/injection/app/user/internal/controller/user/user.go +78 -0
  964. package/skills/goframe-v2/examples/practices/injection/app/user/internal/controller/user/user_test.go +108 -0
  965. package/skills/goframe-v2/examples/practices/injection/app/user/internal/dao/user/user.go +170 -0
  966. package/skills/goframe-v2/examples/practices/injection/app/user/internal/dao/user/user_test.go +98 -0
  967. package/skills/goframe-v2/examples/practices/injection/app/user/internal/model/.gitkeep +0 -0
  968. package/skills/goframe-v2/examples/practices/injection/app/user/internal/model/entity/user.go +10 -0
  969. package/skills/goframe-v2/examples/practices/injection/app/user/internal/service/user/user.go +114 -0
  970. package/skills/goframe-v2/examples/practices/injection/app/user/internal/service/user/user_test.go +90 -0
  971. package/skills/goframe-v2/examples/practices/injection/app/user/main.go +17 -0
  972. package/skills/goframe-v2/examples/practices/injection/app/user/manifest/config/config.yaml +26 -0
  973. package/skills/goframe-v2/examples/practices/injection/app/user/manifest/deploy/kustomize/base/configmap.yaml +30 -0
  974. package/skills/goframe-v2/examples/practices/injection/app/user/manifest/deploy/kustomize/base/deployment.yaml +31 -0
  975. package/skills/goframe-v2/examples/practices/injection/app/user/manifest/deploy/kustomize/base/kustomization.yaml +8 -0
  976. package/skills/goframe-v2/examples/practices/injection/app/user/manifest/deploy/kustomize/base/service.yaml +12 -0
  977. package/skills/goframe-v2/examples/practices/injection/app/user/manifest/deploy/kustomize/overlays/develop/configmap.yaml +30 -0
  978. package/skills/goframe-v2/examples/practices/injection/app/user/manifest/deploy/kustomize/overlays/develop/deployment.yaml +10 -0
  979. package/skills/goframe-v2/examples/practices/injection/app/user/manifest/deploy/kustomize/overlays/develop/kustomization.yaml +14 -0
  980. package/skills/goframe-v2/examples/practices/injection/app/user/manifest/deploy/kustomize/overlays/product/configmap.yaml +30 -0
  981. package/skills/goframe-v2/examples/practices/injection/app/user/manifest/deploy/kustomize/overlays/product/deployment.yaml +10 -0
  982. package/skills/goframe-v2/examples/practices/injection/app/user/manifest/deploy/kustomize/overlays/product/kustomization.yaml +14 -0
  983. package/skills/goframe-v2/examples/practices/injection/app/user/manifest/docker/Dockerfile +15 -0
  984. package/skills/goframe-v2/examples/practices/injection/app/user/manifest/docker/docker.sh +8 -0
  985. package/skills/goframe-v2/examples/practices/injection/app/user/manifest/protobuf/entity/user.proto +12 -0
  986. package/skills/goframe-v2/examples/practices/injection/app/user/manifest/protobuf/user/v1/user.proto +62 -0
  987. package/skills/goframe-v2/examples/practices/injection/go.mod +58 -0
  988. package/skills/goframe-v2/examples/practices/injection/go.sum +152 -0
  989. package/skills/goframe-v2/examples/practices/injection/hack/hack-cli.mk +18 -0
  990. package/skills/goframe-v2/examples/practices/injection/hack/hack.mk +64 -0
  991. package/skills/goframe-v2/examples/practices/injection/utility/.gitkeep +0 -0
  992. package/skills/goframe-v2/examples/practices/injection/utility/injection/injection.go +107 -0
  993. package/skills/goframe-v2/examples/practices/injection/utility/injection/injection_grpc_clients.go +29 -0
  994. package/skills/goframe-v2/examples/practices/injection/utility/injection/injection_mongo.go +43 -0
  995. package/skills/goframe-v2/examples/practices/injection/utility/injection/injection_redis.go +40 -0
  996. package/skills/goframe-v2/examples/practices/injection/utility/mongohelper/mongohelper.go +24 -0
  997. package/skills/goframe-v2/examples/practices/mvc-demo-chat/Makefile +6 -0
  998. package/skills/goframe-v2/examples/practices/mvc-demo-chat/README.MD +297 -0
  999. package/skills/goframe-v2/examples/practices/mvc-demo-chat/README.ZH.MD +296 -0
  1000. package/skills/goframe-v2/examples/practices/mvc-demo-chat/api/v1/chat.go +27 -0
  1001. package/skills/goframe-v2/examples/practices/mvc-demo-chat/go.mod +35 -0
  1002. package/skills/goframe-v2/examples/practices/mvc-demo-chat/go.sum +81 -0
  1003. package/skills/goframe-v2/examples/practices/mvc-demo-chat/hack/config.yaml +13 -0
  1004. package/skills/goframe-v2/examples/practices/mvc-demo-chat/hack/hack-cli.mk +18 -0
  1005. package/skills/goframe-v2/examples/practices/mvc-demo-chat/hack/hack.mk +77 -0
  1006. package/skills/goframe-v2/examples/practices/mvc-demo-chat/internal/cmd/cmd.go +32 -0
  1007. package/skills/goframe-v2/examples/practices/mvc-demo-chat/internal/consts/consts.go +1 -0
  1008. package/skills/goframe-v2/examples/practices/mvc-demo-chat/internal/consts/consts_chat.go +15 -0
  1009. package/skills/goframe-v2/examples/practices/mvc-demo-chat/internal/controller/chat.go +183 -0
  1010. package/skills/goframe-v2/examples/practices/mvc-demo-chat/internal/model/chat.go +7 -0
  1011. package/skills/goframe-v2/examples/practices/mvc-demo-chat/main.go +11 -0
  1012. package/skills/goframe-v2/examples/practices/mvc-demo-chat/manifest/config/config.yaml +14 -0
  1013. package/skills/goframe-v2/examples/practices/mvc-demo-chat/manifest/deploy/kustomize/base/deployment.yaml +21 -0
  1014. package/skills/goframe-v2/examples/practices/mvc-demo-chat/manifest/deploy/kustomize/base/kustomization.yaml +8 -0
  1015. package/skills/goframe-v2/examples/practices/mvc-demo-chat/manifest/deploy/kustomize/base/service.yaml +12 -0
  1016. package/skills/goframe-v2/examples/practices/mvc-demo-chat/manifest/deploy/kustomize/overlays/develop/configmap.yaml +14 -0
  1017. package/skills/goframe-v2/examples/practices/mvc-demo-chat/manifest/deploy/kustomize/overlays/develop/deployment.yaml +10 -0
  1018. package/skills/goframe-v2/examples/practices/mvc-demo-chat/manifest/deploy/kustomize/overlays/develop/kustomization.yaml +14 -0
  1019. package/skills/goframe-v2/examples/practices/mvc-demo-chat/manifest/docker/Dockerfile +16 -0
  1020. package/skills/goframe-v2/examples/practices/mvc-demo-chat/manifest/docker/docker.sh +8 -0
  1021. package/skills/goframe-v2/examples/practices/mvc-demo-chat/resource/public/plugin/layer-3.1.1/layer.js +2 -0
  1022. package/skills/goframe-v2/examples/practices/mvc-demo-chat/resource/public/plugin/layer-3.1.1/mobile/layer.js +2 -0
  1023. package/skills/goframe-v2/examples/practices/mvc-demo-chat/resource/public/plugin/layer-3.1.1/mobile/need/layer.css +1 -0
  1024. package/skills/goframe-v2/examples/practices/mvc-demo-chat/resource/public/plugin/layer-3.1.1/theme/default/icon-ext.png +0 -0
  1025. package/skills/goframe-v2/examples/practices/mvc-demo-chat/resource/public/plugin/layer-3.1.1/theme/default/icon.png +0 -0
  1026. package/skills/goframe-v2/examples/practices/mvc-demo-chat/resource/public/plugin/layer-3.1.1/theme/default/layer.css +1 -0
  1027. package/skills/goframe-v2/examples/practices/mvc-demo-chat/resource/public/plugin/layer-3.1.1/theme/default/loading-0.gif +0 -0
  1028. package/skills/goframe-v2/examples/practices/mvc-demo-chat/resource/public/plugin/layer-3.1.1/theme/default/loading-1.gif +0 -0
  1029. package/skills/goframe-v2/examples/practices/mvc-demo-chat/resource/public/plugin/layer-3.1.1/theme/default/loading-2.gif +0 -0
  1030. package/skills/goframe-v2/examples/practices/mvc-demo-chat/resource/public/resource/image/favicon.ico +0 -0
  1031. package/skills/goframe-v2/examples/practices/mvc-demo-chat/resource/public/resource/image/gf.ico +0 -0
  1032. package/skills/goframe-v2/examples/practices/mvc-demo-chat/resource/template/chat/include/chat.html +146 -0
  1033. package/skills/goframe-v2/examples/practices/mvc-demo-chat/resource/template/chat/include/main.html +65 -0
  1034. package/skills/goframe-v2/examples/practices/mvc-demo-chat/resource/template/chat/index.html +18 -0
  1035. package/skills/goframe-v2/examples/practices/quick-demo/Makefile +6 -0
  1036. package/skills/goframe-v2/examples/practices/quick-demo/README.MD +282 -0
  1037. package/skills/goframe-v2/examples/practices/quick-demo/README.ZH.MD +285 -0
  1038. package/skills/goframe-v2/examples/practices/quick-demo/api/user/user.go +19 -0
  1039. package/skills/goframe-v2/examples/practices/quick-demo/api/user/v1/user.go +61 -0
  1040. package/skills/goframe-v2/examples/practices/quick-demo/go.mod +39 -0
  1041. package/skills/goframe-v2/examples/practices/quick-demo/go.sum +86 -0
  1042. package/skills/goframe-v2/examples/practices/quick-demo/hack/config.yaml +13 -0
  1043. package/skills/goframe-v2/examples/practices/quick-demo/hack/hack-cli.mk +18 -0
  1044. package/skills/goframe-v2/examples/practices/quick-demo/hack/hack.mk +77 -0
  1045. package/skills/goframe-v2/examples/practices/quick-demo/internal/cmd/cmd.go +33 -0
  1046. package/skills/goframe-v2/examples/practices/quick-demo/internal/consts/consts.go +1 -0
  1047. package/skills/goframe-v2/examples/practices/quick-demo/internal/controller/user/user.go +5 -0
  1048. package/skills/goframe-v2/examples/practices/quick-demo/internal/controller/user/user_new.go +15 -0
  1049. package/skills/goframe-v2/examples/practices/quick-demo/internal/controller/user/user_v1_create.go +25 -0
  1050. package/skills/goframe-v2/examples/practices/quick-demo/internal/controller/user/user_v1_delete.go +14 -0
  1051. package/skills/goframe-v2/examples/practices/quick-demo/internal/controller/user/user_v1_get_list.go +19 -0
  1052. package/skills/goframe-v2/examples/practices/quick-demo/internal/controller/user/user_v1_get_one.go +15 -0
  1053. package/skills/goframe-v2/examples/practices/quick-demo/internal/controller/user/user_v1_update.go +19 -0
  1054. package/skills/goframe-v2/examples/practices/quick-demo/internal/dao/internal/user.go +79 -0
  1055. package/skills/goframe-v2/examples/practices/quick-demo/internal/dao/user.go +27 -0
  1056. package/skills/goframe-v2/examples/practices/quick-demo/internal/model/.gitkeep +0 -0
  1057. package/skills/goframe-v2/examples/practices/quick-demo/internal/model/do/user.go +18 -0
  1058. package/skills/goframe-v2/examples/practices/quick-demo/internal/model/entity/user.go +13 -0
  1059. package/skills/goframe-v2/examples/practices/quick-demo/internal/service/.gitkeep +0 -0
  1060. package/skills/goframe-v2/examples/practices/quick-demo/main.go +13 -0
  1061. package/skills/goframe-v2/examples/practices/quick-demo/manifest/config/config.yaml +15 -0
  1062. package/skills/goframe-v2/examples/practices/quick-demo/manifest/deploy/kustomize/base/deployment.yaml +21 -0
  1063. package/skills/goframe-v2/examples/practices/quick-demo/manifest/deploy/kustomize/base/kustomization.yaml +8 -0
  1064. package/skills/goframe-v2/examples/practices/quick-demo/manifest/deploy/kustomize/base/service.yaml +12 -0
  1065. package/skills/goframe-v2/examples/practices/quick-demo/manifest/deploy/kustomize/overlays/develop/configmap.yaml +14 -0
  1066. package/skills/goframe-v2/examples/practices/quick-demo/manifest/deploy/kustomize/overlays/develop/deployment.yaml +10 -0
  1067. package/skills/goframe-v2/examples/practices/quick-demo/manifest/deploy/kustomize/overlays/develop/kustomization.yaml +14 -0
  1068. package/skills/goframe-v2/examples/practices/quick-demo/manifest/docker/Dockerfile +16 -0
  1069. package/skills/goframe-v2/examples/practices/quick-demo/manifest/docker/docker.sh +8 -0
  1070. package/skills/goframe-v2/examples/practices/user-grpc-service/Makefile +81 -0
  1071. package/skills/goframe-v2/examples/practices/user-grpc-service/README.MD +360 -0
  1072. package/skills/goframe-v2/examples/practices/user-grpc-service/README.ZH.MD +363 -0
  1073. package/skills/goframe-v2/examples/practices/user-grpc-service/api/pbentity/user.pb.go +219 -0
  1074. package/skills/goframe-v2/examples/practices/user-grpc-service/api/user/v1/user.pb.go +619 -0
  1075. package/skills/goframe-v2/examples/practices/user-grpc-service/api/user/v1/user_grpc.pb.go +223 -0
  1076. package/skills/goframe-v2/examples/practices/user-grpc-service/go.mod +44 -0
  1077. package/skills/goframe-v2/examples/practices/user-grpc-service/go.sum +95 -0
  1078. package/skills/goframe-v2/examples/practices/user-grpc-service/hack/config.yaml +13 -0
  1079. package/skills/goframe-v2/examples/practices/user-grpc-service/internal/cmd/cmd.go +35 -0
  1080. package/skills/goframe-v2/examples/practices/user-grpc-service/internal/consts/consts.go +1 -0
  1081. package/skills/goframe-v2/examples/practices/user-grpc-service/internal/controller/user/user.go +63 -0
  1082. package/skills/goframe-v2/examples/practices/user-grpc-service/internal/dao/internal/user.go +83 -0
  1083. package/skills/goframe-v2/examples/practices/user-grpc-service/internal/dao/user.go +27 -0
  1084. package/skills/goframe-v2/examples/practices/user-grpc-service/internal/model/do/user.go +21 -0
  1085. package/skills/goframe-v2/examples/practices/user-grpc-service/internal/model/entity/user.go +19 -0
  1086. package/skills/goframe-v2/examples/practices/user-grpc-service/internal/service/user/user.go +36 -0
  1087. package/skills/goframe-v2/examples/practices/user-grpc-service/main.go +13 -0
  1088. package/skills/goframe-v2/examples/practices/user-grpc-service/manifest/config/config.yaml +27 -0
  1089. package/skills/goframe-v2/examples/practices/user-grpc-service/manifest/deploy/kustomize/base/deployment.yaml +21 -0
  1090. package/skills/goframe-v2/examples/practices/user-grpc-service/manifest/deploy/kustomize/base/kustomization.yaml +8 -0
  1091. package/skills/goframe-v2/examples/practices/user-grpc-service/manifest/deploy/kustomize/base/service.yaml +12 -0
  1092. package/skills/goframe-v2/examples/practices/user-grpc-service/manifest/deploy/kustomize/overlays/develop/configmap.yaml +14 -0
  1093. package/skills/goframe-v2/examples/practices/user-grpc-service/manifest/deploy/kustomize/overlays/develop/deployment.yaml +10 -0
  1094. package/skills/goframe-v2/examples/practices/user-grpc-service/manifest/deploy/kustomize/overlays/develop/kustomization.yaml +14 -0
  1095. package/skills/goframe-v2/examples/practices/user-grpc-service/manifest/docker/Dockerfile +15 -0
  1096. package/skills/goframe-v2/examples/practices/user-grpc-service/manifest/docker/docker.sh +8 -0
  1097. package/skills/goframe-v2/examples/practices/user-grpc-service/manifest/protobuf/pbentity/user.proto +21 -0
  1098. package/skills/goframe-v2/examples/practices/user-grpc-service/manifest/protobuf/user/v1/user.proto +45 -0
  1099. package/skills/goframe-v2/examples/practices/user-grpc-service/manifest/sql/create.sql +11 -0
  1100. package/skills/goframe-v2/examples/practices/user-http-service/Makefile +6 -0
  1101. package/skills/goframe-v2/examples/practices/user-http-service/README.MD +476 -0
  1102. package/skills/goframe-v2/examples/practices/user-http-service/README.ZH.MD +475 -0
  1103. package/skills/goframe-v2/examples/practices/user-http-service/api/user/user.go +21 -0
  1104. package/skills/goframe-v2/examples/practices/user-http-service/api/user/v1/user_check_nick_name.go +10 -0
  1105. package/skills/goframe-v2/examples/practices/user-http-service/api/user/v1/user_check_passport.go +10 -0
  1106. package/skills/goframe-v2/examples/practices/user-http-service/api/user/v1/user_is_signed_in.go +11 -0
  1107. package/skills/goframe-v2/examples/practices/user-http-service/api/user/v1/user_profile.go +15 -0
  1108. package/skills/goframe-v2/examples/practices/user-http-service/api/user/v1/user_sign_in.go +11 -0
  1109. package/skills/goframe-v2/examples/practices/user-http-service/api/user/v1/user_sign_out.go +9 -0
  1110. package/skills/goframe-v2/examples/practices/user-http-service/api/user/v1/user_sign_up.go +13 -0
  1111. package/skills/goframe-v2/examples/practices/user-http-service/go.mod +39 -0
  1112. package/skills/goframe-v2/examples/practices/user-http-service/go.sum +86 -0
  1113. package/skills/goframe-v2/examples/practices/user-http-service/hack/config.yaml +9 -0
  1114. package/skills/goframe-v2/examples/practices/user-http-service/hack/hack-cli.mk +18 -0
  1115. package/skills/goframe-v2/examples/practices/user-http-service/hack/hack.mk +75 -0
  1116. package/skills/goframe-v2/examples/practices/user-http-service/internal/cmd/cmd.go +82 -0
  1117. package/skills/goframe-v2/examples/practices/user-http-service/internal/consts/consts.go +3 -0
  1118. package/skills/goframe-v2/examples/practices/user-http-service/internal/controller/user/user.go +6 -0
  1119. package/skills/goframe-v2/examples/practices/user-http-service/internal/controller/user/user_new.go +21 -0
  1120. package/skills/goframe-v2/examples/practices/user-http-service/internal/controller/user/user_v1_check_nick_name.go +21 -0
  1121. package/skills/goframe-v2/examples/practices/user-http-service/internal/controller/user/user_v1_check_passport.go +21 -0
  1122. package/skills/goframe-v2/examples/practices/user-http-service/internal/controller/user/user_v1_is_signed_in.go +15 -0
  1123. package/skills/goframe-v2/examples/practices/user-http-service/internal/controller/user/user_v1_profile.go +15 -0
  1124. package/skills/goframe-v2/examples/practices/user-http-service/internal/controller/user/user_v1_sign_in.go +17 -0
  1125. package/skills/goframe-v2/examples/practices/user-http-service/internal/controller/user/user_v1_sign_out.go +13 -0
  1126. package/skills/goframe-v2/examples/practices/user-http-service/internal/controller/user/user_v1_sign_up.go +18 -0
  1127. package/skills/goframe-v2/examples/practices/user-http-service/internal/dao/internal/user.go +83 -0
  1128. package/skills/goframe-v2/examples/practices/user-http-service/internal/dao/user.go +27 -0
  1129. package/skills/goframe-v2/examples/practices/user-http-service/internal/model/do/user.go +21 -0
  1130. package/skills/goframe-v2/examples/practices/user-http-service/internal/model/entity/user.go +19 -0
  1131. package/skills/goframe-v2/examples/practices/user-http-service/internal/service/bizctx/bizctx.go +57 -0
  1132. package/skills/goframe-v2/examples/practices/user-http-service/internal/service/middleware/middleware.go +59 -0
  1133. package/skills/goframe-v2/examples/practices/user-http-service/internal/service/session/session.go +53 -0
  1134. package/skills/goframe-v2/examples/practices/user-http-service/internal/service/user/user.go +140 -0
  1135. package/skills/goframe-v2/examples/practices/user-http-service/main.go +13 -0
  1136. package/skills/goframe-v2/examples/practices/user-http-service/manifest/config/config.yaml +24 -0
  1137. package/skills/goframe-v2/examples/practices/user-http-service/manifest/deploy/kustomize/base/deployment.yaml +21 -0
  1138. package/skills/goframe-v2/examples/practices/user-http-service/manifest/deploy/kustomize/base/kustomization.yaml +8 -0
  1139. package/skills/goframe-v2/examples/practices/user-http-service/manifest/deploy/kustomize/base/service.yaml +12 -0
  1140. package/skills/goframe-v2/examples/practices/user-http-service/manifest/deploy/kustomize/overlays/develop/configmap.yaml +14 -0
  1141. package/skills/goframe-v2/examples/practices/user-http-service/manifest/deploy/kustomize/overlays/develop/deployment.yaml +10 -0
  1142. package/skills/goframe-v2/examples/practices/user-http-service/manifest/deploy/kustomize/overlays/develop/kustomization.yaml +14 -0
  1143. package/skills/goframe-v2/examples/practices/user-http-service/manifest/docker/Dockerfile +15 -0
  1144. package/skills/goframe-v2/examples/practices/user-http-service/manifest/docker/docker.sh +8 -0
  1145. package/skills/goframe-v2/examples/practices/user-http-service/manifest/sql/create.sql +10 -0
  1146. package/skills/goframe-v2/examples/registry/consul/README.MD +110 -0
  1147. package/skills/goframe-v2/examples/registry/consul/README.ZH.MD +92 -0
  1148. package/skills/goframe-v2/examples/registry/consul/docker-compose/client.json +7 -0
  1149. package/skills/goframe-v2/examples/registry/consul/docker-compose/docker-compose.yml +31 -0
  1150. package/skills/goframe-v2/examples/registry/consul/docker-compose/server.json +12 -0
  1151. package/skills/goframe-v2/examples/registry/consul/go.mod +56 -0
  1152. package/skills/goframe-v2/examples/registry/consul/go.sum +297 -0
  1153. package/skills/goframe-v2/examples/registry/consul/grpc/client/client.go +38 -0
  1154. package/skills/goframe-v2/examples/registry/consul/grpc/controller/helloworld.go +28 -0
  1155. package/skills/goframe-v2/examples/registry/consul/grpc/protobuf/helloworld.pb.go +217 -0
  1156. package/skills/goframe-v2/examples/registry/consul/grpc/protobuf/helloworld.proto +24 -0
  1157. package/skills/goframe-v2/examples/registry/consul/grpc/protobuf/helloworld_grpc.pb.go +107 -0
  1158. package/skills/goframe-v2/examples/registry/consul/grpc/server/config.yaml +8 -0
  1159. package/skills/goframe-v2/examples/registry/consul/grpc/server/server.go +30 -0
  1160. package/skills/goframe-v2/examples/registry/consul/http/client/client.go +33 -0
  1161. package/skills/goframe-v2/examples/registry/consul/http/server/server.go +32 -0
  1162. package/skills/goframe-v2/examples/registry/etcd/README.MD +127 -0
  1163. package/skills/goframe-v2/examples/registry/etcd/README.ZH.MD +105 -0
  1164. package/skills/goframe-v2/examples/registry/etcd/go.mod +54 -0
  1165. package/skills/goframe-v2/examples/registry/etcd/go.sum +157 -0
  1166. package/skills/goframe-v2/examples/registry/etcd/grpc/client/client.go +44 -0
  1167. package/skills/goframe-v2/examples/registry/etcd/grpc/controller/helloworld.go +28 -0
  1168. package/skills/goframe-v2/examples/registry/etcd/grpc/protobuf/helloworld.pb.go +217 -0
  1169. package/skills/goframe-v2/examples/registry/etcd/grpc/protobuf/helloworld.proto +24 -0
  1170. package/skills/goframe-v2/examples/registry/etcd/grpc/protobuf/helloworld_grpc.pb.go +107 -0
  1171. package/skills/goframe-v2/examples/registry/etcd/grpc/server/config.yaml +8 -0
  1172. package/skills/goframe-v2/examples/registry/etcd/grpc/server/server.go +23 -0
  1173. package/skills/goframe-v2/examples/registry/etcd/http/client/client.go +53 -0
  1174. package/skills/goframe-v2/examples/registry/etcd/http/server/server.go +56 -0
  1175. package/skills/goframe-v2/examples/registry/file/README.MD +97 -0
  1176. package/skills/goframe-v2/examples/registry/file/README.ZH.MD +91 -0
  1177. package/skills/goframe-v2/examples/registry/file/client/client.go +66 -0
  1178. package/skills/goframe-v2/examples/registry/file/go.mod +38 -0
  1179. package/skills/goframe-v2/examples/registry/file/go.sum +84 -0
  1180. package/skills/goframe-v2/examples/registry/file/server/server.go +56 -0
  1181. package/skills/goframe-v2/examples/registry/nacos/README.MD +118 -0
  1182. package/skills/goframe-v2/examples/registry/nacos/README.ZH.MD +110 -0
  1183. package/skills/goframe-v2/examples/registry/nacos/docker-compose/docker-compose.yml +24 -0
  1184. package/skills/goframe-v2/examples/registry/nacos/docker-compose/env/nacos.env +2 -0
  1185. package/skills/goframe-v2/examples/registry/nacos/go.mod +97 -0
  1186. package/skills/goframe-v2/examples/registry/nacos/go.sum +737 -0
  1187. package/skills/goframe-v2/examples/registry/nacos/grpc/client/client.go +33 -0
  1188. package/skills/goframe-v2/examples/registry/nacos/grpc/controller/helloworld.go +28 -0
  1189. package/skills/goframe-v2/examples/registry/nacos/grpc/protobuf/helloworld.pb.go +217 -0
  1190. package/skills/goframe-v2/examples/registry/nacos/grpc/protobuf/helloworld.proto +24 -0
  1191. package/skills/goframe-v2/examples/registry/nacos/grpc/protobuf/helloworld_grpc.pb.go +107 -0
  1192. package/skills/goframe-v2/examples/registry/nacos/grpc/server/config.yaml +8 -0
  1193. package/skills/goframe-v2/examples/registry/nacos/grpc/server/server.go +24 -0
  1194. package/skills/goframe-v2/examples/registry/nacos/http/client/client.go +53 -0
  1195. package/skills/goframe-v2/examples/registry/nacos/http/server/server.go +56 -0
  1196. package/skills/goframe-v2/examples/registry/polaris/README.MD +98 -0
  1197. package/skills/goframe-v2/examples/registry/polaris/README.ZH.MD +119 -0
  1198. package/skills/goframe-v2/examples/registry/polaris/client/client.go +92 -0
  1199. package/skills/goframe-v2/examples/registry/polaris/go.mod +63 -0
  1200. package/skills/goframe-v2/examples/registry/polaris/go.sum +1036 -0
  1201. package/skills/goframe-v2/examples/registry/polaris/server/server.go +79 -0
  1202. package/skills/goframe-v2/references/README.MD +402 -0
  1203. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221/Cookie.md +82 -0
  1204. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221/HTTPClient/HTTPClient-/344/273/243/347/220/206Proxy/350/256/276/347/275/256.md +40 -0
  1205. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221/HTTPClient/HTTPClient-/345/237/272/346/234/254/344/275/277/347/224/250.md +149 -0
  1206. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221/HTTPClient/HTTPClient-/345/270/270/350/247/201/351/227/256/351/242/230.md +37 -0
  1207. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221/HTTPClient/HTTPClient-/346/213/246/346/210/252/345/231/250/344/270/255/351/227/264/344/273/266.md +171 -0
  1208. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221/HTTPClient/HTTPClient-/346/226/207/344/273/266/344/270/212/344/274/240.md +187 -0
  1209. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221/HTTPClient/HTTPClient-/347/233/221/346/216/247/346/214/207/346/240/207.md +24 -0
  1210. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221/HTTPClient/HTTPClient-/350/207/252/345/256/232/344/271/211ContentType.md +82 -0
  1211. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221/HTTPClient/HTTPClient-/350/207/252/345/256/232/344/271/211Cookie.md +98 -0
  1212. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221/HTTPClient/HTTPClient-/350/207/252/345/256/232/344/271/211Header.md +103 -0
  1213. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221/HTTPClient/HTTPClient-/350/207/252/345/256/232/344/271/211Transport.md +77 -0
  1214. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221/HTTPClient/HTTPClient-/350/257/267/346/261/202/344/277/241/346/201/257/346/211/223/345/215/260.md +68 -0
  1215. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221/HTTPClient/HTTPClient.md +74 -0
  1216. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221/Session/Session-File.md +54 -0
  1217. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221/Session/Session-Memory.md +44 -0
  1218. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221/Session/Session-Redis-HashTable.md +45 -0
  1219. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221/Session/Session-Redis-KeyValue.md +49 -0
  1220. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221/Session/Session-RegenerateId.md +156 -0
  1221. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221/Session/Session-Storage/346/216/245/345/217/243/345/274/200/345/217/221.md +63 -0
  1222. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221/Session/Session.md +42 -0
  1223. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//345/210/206/351/241/265/347/256/241/347/220/206//345/210/206/351/241/265/347/256/241/347/220/206-Ajax/345/210/206/351/241/265.md +63 -0
  1224. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//345/210/206/351/241/265/347/256/241/347/220/206//345/210/206/351/241/265/347/256/241/347/220/206-URL/346/250/241/346/235/277.md +45 -0
  1225. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//345/210/206/351/241/265/347/256/241/347/220/206//345/210/206/351/241/265/347/256/241/347/220/206-/345/212/250/346/200/201/345/210/206/351/241/265.md +46 -0
  1226. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//345/210/206/351/241/265/347/256/241/347/220/206//345/210/206/351/241/265/347/256/241/347/220/206-/350/207/252/345/256/232/344/271/211/345/210/206/351/241/265.md +112 -0
  1227. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//345/210/206/351/241/265/347/256/241/347/220/206//345/210/206/351/241/265/347/256/241/347/220/206-/351/235/231/346/200/201/345/210/206/351/241/265.md +91 -0
  1228. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//345/210/206/351/241/265/347/256/241/347/220/206//345/210/206/351/241/265/347/256/241/347/220/206.md +79 -0
  1229. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//345/274/200/345/247/213/344/275/277/347/224/250.md +211 -0
  1230. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//345/274/202/345/270/270/345/244/204/347/220/206.md +266 -0
  1231. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//346/216/245/345/217/243/346/226/207/346/241/243//346/216/245/345/217/243/346/226/207/346/241/243-OpenAPIv3.md +304 -0
  1232. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//346/216/245/345/217/243/346/226/207/346/241/243//346/216/245/345/217/243/346/226/207/346/241/243-/346/211/251/345/261/225Response.md +454 -0
  1233. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//346/216/245/345/217/243/346/226/207/346/241/243//346/216/245/345/217/243/346/226/207/346/241/243-/350/207/252/345/256/232/344/271/211UI.md +167 -0
  1234. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//346/225/260/346/215/256/350/277/224/345/233/236//346/225/260/346/215/256/350/277/224/345/233/236-Exit/346/216/247/345/210/266.md +72 -0
  1235. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//346/225/260/346/215/256/350/277/224/345/233/236//346/225/260/346/215/256/350/277/224/345/233/236-JSONXML.md +134 -0
  1236. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//346/225/260/346/215/256/350/277/224/345/233/236//346/225/260/346/215/256/350/277/224/345/233/236-Redirect.md +60 -0
  1237. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//346/225/260/346/215/256/350/277/224/345/233/236//346/225/260/346/215/256/350/277/224/345/233/236-Stream/350/277/224/345/233/236.md +93 -0
  1238. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//346/225/260/346/215/256/350/277/224/345/233/236//346/225/260/346/215/256/350/277/224/345/233/236-/346/226/207/344/273/266/344/270/213/350/275/275.md +58 -0
  1239. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//346/225/260/346/215/256/350/277/224/345/233/236//346/225/260/346/215/256/350/277/224/345/233/236-/346/250/241/346/235/277/350/247/243/346/236/220.md +117 -0
  1240. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//346/225/260/346/215/256/350/277/224/345/233/236//346/225/260/346/215/256/350/277/224/345/233/236-/347/274/223/345/206/262/346/216/247/345/210/266.md +53 -0
  1241. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//346/225/260/346/215/256/350/277/224/345/233/236//346/225/260/346/215/256/350/277/224/345/233/236.md +47 -0
  1242. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//346/234/215/345/212/241/351/205/215/347/275/256//346/234/215/345/212/241/351/205/215/347/275/256-/351/205/215/347/275/256/346/226/207/344/273/266.md +121 -0
  1243. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//346/234/215/345/212/241/351/205/215/347/275/256//346/234/215/345/212/241/351/205/215/347/275/256-/351/205/215/347/275/256/346/226/207/344/273/266/346/250/241/346/235/277.md +87 -0
  1244. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//346/234/215/345/212/241/351/205/215/347/275/256//346/234/215/345/212/241/351/205/215/347/275/256-/351/205/215/347/275/256/346/226/271/346/263/225.md +50 -0
  1245. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//350/257/267/346/261/202/350/276/223/345/205/245//350/257/267/346/261/202/350/276/223/345/205/245-Context.md +103 -0
  1246. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//350/257/267/346/261/202/350/276/223/345/205/245//350/257/267/346/261/202/350/276/223/345/205/245-JSONXML.md +131 -0
  1247. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//350/257/267/346/261/202/350/276/223/345/205/245//350/257/267/346/261/202/350/276/223/345/205/245-/345/217/202/346/225/260/345/244/204/347/220/206.md +158 -0
  1248. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//350/257/267/346/261/202/350/276/223/345/205/245//350/257/267/346/261/202/350/276/223/345/205/245-/345/257/271/350/261/241/345/244/204/347/220/206.md +117 -0
  1249. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//350/257/267/346/261/202/350/276/223/345/205/245//350/257/267/346/261/202/350/276/223/345/205/245-/350/207/252/345/256/232/344/271/211/345/217/202/346/225/260.md +64 -0
  1250. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//350/257/267/346/261/202/350/276/223/345/205/245//350/257/267/346/261/202/350/276/223/345/205/245-/350/257/267/346/261/202/346/240/241/351/252/214.md +152 -0
  1251. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//350/257/267/346/261/202/350/276/223/345/205/245//350/257/267/346/261/202/350/276/223/345/205/245-/351/273/230/350/256/244/345/200/274/347/273/221/345/256/232.md +97 -0
  1252. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//350/257/267/346/261/202/350/276/223/345/205/245//350/257/267/346/261/202/350/276/223/345/205/245.md +199 -0
  1253. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//350/267/257/347/224/261/347/256/241/347/220/206//350/267/257/347/224/261/347/256/241/347/220/206-/344/270/255/351/227/264/344/273/266/346/213/246/346/210/252/345/231/250//344/270/255/351/227/264/344/273/266/346/213/246/346/210/252/345/231/250-/344/275/277/347/224/250/347/244/272/344/276/213.md +280 -0
  1254. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//350/267/257/347/224/261/347/256/241/347/220/206//350/267/257/347/224/261/347/256/241/347/220/206-/344/270/255/351/227/264/344/273/266/346/213/246/346/210/252/345/231/250//344/270/255/351/227/264/344/273/266/346/213/246/346/210/252/345/231/250-/345/237/272/346/234/254/344/273/213/347/273/215.md +192 -0
  1255. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//350/267/257/347/224/261/347/256/241/347/220/206//350/267/257/347/224/261/347/256/241/347/220/206-/344/270/255/351/227/264/344/273/266/346/213/246/346/210/252/345/231/250//344/270/255/351/227/264/344/273/266/346/213/246/346/210/252/345/231/250-/345/270/270/350/247/201/351/227/256/351/242/230.md +19 -0
  1256. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//350/267/257/347/224/261/347/256/241/347/220/206//350/267/257/347/224/261/347/256/241/347/220/206-/350/267/257/347/224/261/346/263/250/345/206/214//350/267/257/347/224/261/346/263/250/345/206/214-/345/207/275/346/225/260/346/263/250/345/206/214.md +98 -0
  1257. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//350/267/257/347/224/261/347/256/241/347/220/206//350/267/257/347/224/261/347/256/241/347/220/206-/350/267/257/347/224/261/346/263/250/345/206/214//350/267/257/347/224/261/346/263/250/345/206/214-/345/210/206/347/273/204/350/267/257/347/224/261.md +282 -0
  1258. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//350/267/257/347/224/261/347/256/241/347/220/206//350/267/257/347/224/261/347/256/241/347/220/206-/350/267/257/347/224/261/346/263/250/345/206/214//350/267/257/347/224/261/346/263/250/345/206/214-/345/257/271/350/261/241/346/263/250/345/206/214.md +431 -0
  1259. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//350/267/257/347/224/261/347/256/241/347/220/206//350/267/257/347/224/261/347/256/241/347/220/206-/350/267/257/347/224/261/346/263/250/345/206/214//350/267/257/347/224/261/346/263/250/345/206/214-/350/247/204/350/214/203/350/267/257/347/224/261//350/247/204/350/214/203/350/267/257/347/224/261-/345/237/272/346/234/254/347/244/272/344/276/213.md +99 -0
  1260. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//350/267/257/347/224/261/347/256/241/347/220/206//350/267/257/347/224/261/347/256/241/347/220/206-/350/267/257/347/224/261/346/263/250/345/206/214//350/267/257/347/224/261/346/263/250/345/206/214-/350/247/204/350/214/203/350/267/257/347/224/261//350/247/204/350/214/203/350/267/257/347/224/261-/345/246/202/344/275/225/344/275/277/347/224/250.md +87 -0
  1261. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//350/267/257/347/224/261/347/256/241/347/220/206//350/267/257/347/224/261/347/256/241/347/220/206-/350/267/257/347/224/261/346/263/250/345/206/214//350/267/257/347/224/261/346/263/250/345/206/214-/350/247/204/350/214/203/350/267/257/347/224/261//350/247/204/350/214/203/350/267/257/347/224/261-/345/270/270/350/247/201/351/227/256/351/242/230.md +33 -0
  1262. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//350/267/257/347/224/261/347/256/241/347/220/206//350/267/257/347/224/261/347/256/241/347/220/206-/350/267/257/347/224/261/346/263/250/345/206/214//350/267/257/347/224/261/346/263/250/345/206/214-/350/247/204/350/214/203/350/267/257/347/224/261//350/267/257/347/224/261/346/263/250/345/206/214-/350/247/204/350/214/203/350/267/257/347/224/261.md +17 -0
  1263. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//350/267/257/347/224/261/347/256/241/347/220/206//350/267/257/347/224/261/347/256/241/347/220/206-/350/267/257/347/224/261/346/263/250/345/206/214//350/267/257/347/224/261/347/256/241/347/220/206-/350/267/257/347/224/261/346/263/250/345/206/214.md +13 -0
  1264. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//350/267/257/347/224/261/347/256/241/347/220/206//350/267/257/347/224/261/347/256/241/347/220/206-/350/267/257/347/224/261/350/247/204/345/210/231.md +335 -0
  1265. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//351/253/230/347/272/247/347/211/271/346/200/247/CORS/350/267/250/345/237/237/345/244/204/347/220/206.md +200 -0
  1266. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//351/253/230/347/272/247/347/211/271/346/200/247/CSRF/351/230/262/345/276/241/350/256/276/347/275/256.md +113 -0
  1267. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//351/253/230/347/272/247/347/211/271/346/200/247/HOOK/344/272/213/344/273/266/345/233/236/350/260/203.md +343 -0
  1268. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//351/253/230/347/272/247/347/211/271/346/200/247/HTTPS & TLS.md" +263 -0
  1269. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//351/253/230/347/272/247/347/211/271/346/200/247/HTTPServer-/347/233/221/346/216/247/346/214/207/346/240/207.md +25 -0
  1270. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//351/253/230/347/272/247/347/211/271/346/200/247/PProf/346/234/215/345/212/241/346/200/247/350/203/275/345/210/206/346/236/220.md +167 -0
  1271. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//351/253/230/347/272/247/347/211/271/346/200/247/SameSite /350/256/276/347/275/256.md" +31 -0
  1272. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//351/253/230/347/272/247/347/211/271/346/200/247/WebSocket/346/234/215/345/212/241.md +308 -0
  1273. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//351/253/230/347/272/247/347/211/271/346/200/247//345/271/263/346/273/221/351/207/215/345/220/257/347/211/271/346/200/247.md +203 -0
  1274. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//351/253/230/347/272/247/347/211/271/346/200/247//346/234/215/345/212/241/346/227/245/345/277/227/347/256/241/347/220/206.md +108 -0
  1275. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//351/253/230/347/272/247/347/211/271/346/200/247//350/207/252/345/256/232/344/271/211/347/212/266/346/200/201/347/240/201/345/244/204/347/220/206.md +91 -0
  1276. package/skills/goframe-v2/references/WEB/346/234/215/345/212/241/345/274/200/345/217/221//351/253/230/347/272/247/347/211/271/346/200/247//351/235/231/346/200/201/346/226/207/344/273/266/346/234/215/345/212/241.md +166 -0
  1277. package/skills/goframe-v2/references//345/270/270/350/247/201/351/227/256/351/242/230-FAQ.md +215 -0
  1278. package/skills/goframe-v2/references//345/274/200/345/217/221/345/267/245/345/205/267//344/272/244/345/217/211/347/274/226/350/257/221-build.md +89 -0
  1279. package/skills/goframe-v2/references//345/274/200/345/217/221/345/267/245/345/205/267//344/273/243/347/240/201/347/224/237/346/210/220-gen//344/273/243/347/240/201/347/224/237/346/210/220-gen.md +31 -0
  1280. package/skills/goframe-v2/references//345/274/200/345/217/221/345/267/245/345/205/267//344/273/243/347/240/201/347/224/237/346/210/220-gen//345/215/217/350/256/256/347/274/226/350/257/221-gen pb.md" +39 -0
  1281. package/skills/goframe-v2/references//345/274/200/345/217/221/345/267/245/345/205/267//344/273/243/347/240/201/347/224/237/346/210/220-gen//346/216/245/345/217/243/350/247/204/350/214/203-gen ctrl.md" +134 -0
  1282. package/skills/goframe-v2/references//345/274/200/345/217/221/345/267/245/345/205/267//344/273/243/347/240/201/347/224/237/346/210/220-gen//346/225/260/346/215/256/350/241/250PB-gen pbentity.md" +134 -0
  1283. package/skills/goframe-v2/references//345/274/200/345/217/221/345/267/245/345/205/267//344/273/243/347/240/201/347/224/237/346/210/220-gen//346/225/260/346/215/256/350/247/204/350/214/203-gen dao.md" +497 -0
  1284. package/skills/goframe-v2/references//345/274/200/345/217/221/345/267/245/345/205/267//344/273/243/347/240/201/347/224/237/346/210/220-gen//346/236/232/344/270/276/347/273/264/346/212/244-gen enums.md" +85 -0
  1285. package/skills/goframe-v2/references//345/274/200/345/217/221/345/267/245/345/205/267//345/205/274/345/256/271/344/277/256/345/244/215-fix.md +39 -0
  1286. package/skills/goframe-v2/references//345/274/200/345/217/221/345/267/245/345/205/267//345/267/245/345/205/267/345/256/211/350/243/205-install.md +80 -0
  1287. package/skills/goframe-v2/references//345/274/200/345/217/221/345/267/245/345/205/267//345/274/200/345/217/221/345/267/245/345/205/267.md +86 -0
  1288. package/skills/goframe-v2/references//345/274/200/345/217/221/345/267/245/345/205/267//346/241/206/346/236/266/345/215/207/347/272/247-up.md +67 -0
  1289. package/skills/goframe-v2/references//345/274/200/345/217/221/345/267/245/345/205/267//347/211/210/346/234/254/346/237/245/347/234/213-version.md +53 -0
  1290. package/skills/goframe-v2/references//345/274/200/345/217/221/345/267/245/345/205/267//350/207/252/345/212/250/347/274/226/350/257/221-run.md +86 -0
  1291. package/skills/goframe-v2/references//345/274/200/345/217/221/345/267/245/345/205/267//350/265/204/346/272/220/346/211/223/345/214/205-pack.md +42 -0
  1292. package/skills/goframe-v2/references//345/274/200/345/217/221/345/267/245/345/205/267//351/225/234/345/203/217/347/274/226/350/257/221-docker.md +113 -0
  1293. package/skills/goframe-v2/references//345/274/200/345/217/221/345/267/245/345/205/267//351/241/271/347/233/256/345/210/233/345/273/272-init.md +218 -0
  1294. package/skills/goframe-v2/references//345/276/256/346/234/215/345/212/241/345/274/200/345/217/221//345/267/245/347/250/213/347/256/241/347/220/206.md +53 -0
  1295. package/skills/goframe-v2/references//345/276/256/346/234/215/345/212/241/345/274/200/345/217/221//345/276/256/346/234/215/345/212/241/345/274/200/345/217/221.md +284 -0
  1296. package/skills/goframe-v2/references//345/276/256/346/234/215/345/212/241/345/274/200/345/217/221//346/213/246/346/210/252/345/231/250/347/273/204/344/273/266.md +45 -0
  1297. package/skills/goframe-v2/references//345/276/256/346/234/215/345/212/241/345/274/200/345/217/221//346/234/215/345/212/241/346/263/250/345/206/214/345/217/221/347/216/260.md +211 -0
  1298. package/skills/goframe-v2/references//345/276/256/346/234/215/345/212/241/345/274/200/345/217/221//346/234/215/345/212/241/347/253/257/351/205/215/347/275/256.md +67 -0
  1299. package/skills/goframe-v2/references//345/276/256/346/234/215/345/212/241/345/274/200/345/217/221//346/234/215/345/212/241/350/264/237/350/275/275/345/235/207/350/241/241.md +234 -0
  1300. package/skills/goframe-v2/references//345/276/256/346/234/215/345/212/241/345/274/200/345/217/221//346/234/215/345/212/241/351/205/215/347/275/256/347/256/241/347/220/206.md +166 -0
  1301. package/skills/goframe-v2/references//345/276/256/346/234/215/345/212/241/345/274/200/345/217/221//347/216/257/345/242/203/345/207/206/345/244/207.md +22 -0
  1302. package/skills/goframe-v2/references//345/276/256/346/234/215/345/212/241/345/274/200/345/217/221//350/204/232/346/211/213/346/236/266/346/250/241/345/235/227.md +367 -0
  1303. package/skills/goframe-v2/references//345/277/253/351/200/237/345/274/200/345/247/213/Hello World.md" +74 -0
  1304. package/skills/goframe-v2/references//345/277/253/351/200/237/345/274/200/345/247/213/What's Next.md" +12 -0
  1305. package/skills/goframe-v2/references//345/277/253/351/200/237/345/274/200/345/247/213//344/270/213/350/275/275/344/270/216/344/275/277/347/224/250.md +60 -0
  1306. package/skills/goframe-v2/references//345/277/253/351/200/237/345/274/200/345/247/213//344/270/255/351/227/264/344/273/266/345/210/235/350/257/225/347/224/250.md +105 -0
  1307. package/skills/goframe-v2/references//345/277/253/351/200/237/345/274/200/345/247/213//344/275/277/347/224/250/350/247/204/350/214/203/350/267/257/347/224/261.md +112 -0
  1308. package/skills/goframe-v2/references//345/277/253/351/200/237/345/274/200/345/247/213//347/224/237/346/210/220/346/216/245/345/217/243/346/226/207/346/241/243.md +150 -0
  1309. package/skills/goframe-v2/references//345/277/253/351/200/237/345/274/200/345/247/213//347/273/237/344/270/200/350/277/224/345/233/236/347/273/223/346/236/204.md +156 -0
  1310. package/skills/goframe-v2/references//345/277/253/351/200/237/345/274/200/345/247/213//350/216/267/345/217/226/350/257/267/346/261/202/345/217/202/346/225/260.md +52 -0
  1311. package/skills/goframe-v2/references//345/277/253/351/200/237/345/274/200/345/247/213//350/257/267/346/261/202/346/225/260/346/215/256/347/273/223/346/236/204.md +78 -0
  1312. package/skills/goframe-v2/references//346/234/215/345/212/241/345/217/257/350/247/202/346/265/213/346/200/247//346/234/215/345/212/241/347/233/221/346/216/247/345/221/212/350/255/246//347/233/221/346/216/247/345/221/212/350/255/246-/345/206/205/347/275/256/346/214/207/346/240/207.md +84 -0
  1313. package/skills/goframe-v2/references//346/234/215/345/212/241/345/217/257/350/247/202/346/265/213/346/200/247//346/234/215/345/212/241/347/233/221/346/216/247/345/221/212/350/255/246//347/233/221/346/216/247/345/221/212/350/255/246-/345/220/214/346/255/245/346/214/207/346/240/207.md +108 -0
  1314. package/skills/goframe-v2/references//346/234/215/345/212/241/345/217/257/350/247/202/346/265/213/346/200/247//346/234/215/345/212/241/347/233/221/346/216/247/345/221/212/350/255/246//347/233/221/346/216/247/345/221/212/350/255/246-/345/237/272/346/234/254/344/273/213/347/273/215.md +107 -0
  1315. package/skills/goframe-v2/references//346/234/215/345/212/241/345/217/257/350/247/202/346/265/213/346/200/247//346/234/215/345/212/241/347/233/221/346/216/247/345/221/212/350/255/246//347/233/221/346/216/247/345/221/212/350/255/246-/345/237/272/346/234/254/344/275/277/347/224/250.md +301 -0
  1316. package/skills/goframe-v2/references//346/234/215/345/212/241/345/217/257/350/247/202/346/265/213/346/200/247//346/234/215/345/212/241/347/233/221/346/216/247/345/221/212/350/255/246//347/233/221/346/216/247/345/221/212/350/255/246-/345/274/202/346/255/245/346/214/207/346/240/207.md +117 -0
  1317. package/skills/goframe-v2/references//346/234/215/345/212/241/345/217/257/350/247/202/346/265/213/346/200/247//346/234/215/345/212/241/347/233/221/346/216/247/345/221/212/350/255/246//347/233/221/346/216/247/345/221/212/350/255/246-/346/214/207/346/240/207/345/261/236/346/200/247.md +310 -0
  1318. package/skills/goframe-v2/references//346/234/215/345/212/241/345/217/257/350/247/202/346/265/213/346/200/247//346/234/215/345/212/241/351/223/276/350/267/257/350/267/237/350/270/252//351/223/276/350/267/257/350/267/237/350/270/252-GRPC/347/244/272/344/276/213.md +293 -0
  1319. package/skills/goframe-v2/references//346/234/215/345/212/241/345/217/257/350/247/202/346/265/213/346/200/247//346/234/215/345/212/241/351/223/276/350/267/257/350/267/237/350/270/252//351/223/276/350/267/257/350/267/237/350/270/252-HTTP/347/244/272/344/276/213//351/223/276/350/267/257/350/267/237/350/270/252-HTTP/347/244/272/344/276/213-Baggage.md +161 -0
  1320. package/skills/goframe-v2/references//346/234/215/345/212/241/345/217/257/350/247/202/346/265/213/346/200/247//346/234/215/345/212/241/351/223/276/350/267/257/350/267/237/350/270/252//351/223/276/350/267/257/350/267/237/350/270/252-HTTP/347/244/272/344/276/213//351/223/276/350/267/257/350/267/237/350/270/252-HTTP/347/244/272/344/276/213-/346/225/260/346/215/256/346/223/215/344/275/234.md +279 -0
  1321. package/skills/goframe-v2/references//346/234/215/345/212/241/345/217/257/350/247/202/346/265/213/346/200/247//346/234/215/345/212/241/351/223/276/350/267/257/350/267/237/350/270/252//351/223/276/350/267/257/350/267/237/350/270/252-/345/207/206/345/244/207/345/267/245/344/275/234.md +48 -0
  1322. package/skills/goframe-v2/references//346/234/215/345/212/241/345/217/257/350/247/202/346/265/213/346/200/247//346/234/215/345/212/241/351/223/276/350/267/257/350/267/237/350/270/252//351/223/276/350/267/257/350/267/237/350/270/252-/345/237/272/346/234/254/347/244/272/344/276/213.md +121 -0
  1323. package/skills/goframe-v2/references//346/234/215/345/212/241/345/217/257/350/247/202/346/265/213/346/200/247//346/234/215/345/212/241/351/223/276/350/267/257/350/267/237/350/270/252//351/223/276/350/267/257/350/267/237/350/270/252-/346/234/200/344/275/263/345/256/236/350/267/265//351/223/276/350/267/257/350/267/237/350/270/252-TraceID/346/263/250/345/205/245/345/222/214/350/216/267/345/217/226.md +325 -0
  1324. package/skills/goframe-v2/references//346/234/215/345/212/241/345/217/257/350/247/202/346/265/213/346/200/247//346/234/215/345/212/241/351/223/276/350/267/257/350/267/237/350/270/252//351/223/276/350/267/257/350/267/237/350/270/252-/350/203/214/346/231/257/347/237/245/350/257/206.md +147 -0
  1325. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266/I18N/345/233/275/351/231/205/345/214/226/I18N/345/233/275/351/231/205/345/214/226-/344/275/277/347/224/250/344/273/213/347/273/215.md +338 -0
  1326. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266/I18N/345/233/275/351/231/205/345/214/226/I18N/345/233/275/351/231/205/345/214/226-/351/205/215/347/275/256/347/256/241/347/220/206.md +69 -0
  1327. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266/I18N/345/233/275/351/231/205/345/214/226/I18N/345/233/275/351/231/205/345/214/226.md +15 -0
  1328. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//345/221/275/344/273/244/347/256/241/347/220/206//345/221/275/344/273/244/347/256/241/347/220/206-Parser/350/247/243/346/236/220.md +72 -0
  1329. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//345/221/275/344/273/244/347/256/241/347/220/206//345/221/275/344/273/244/347/256/241/347/220/206-/345/221/275/344/273/244/350/241/214/345/257/271/350/261/241.md +193 -0
  1330. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//345/221/275/344/273/244/347/256/241/347/220/206//345/221/275/344/273/244/347/256/241/347/220/206-/345/237/272/346/234/254/346/246/202/345/277/265.md +59 -0
  1331. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//345/221/275/344/273/244/347/256/241/347/220/206//345/221/275/344/273/244/347/256/241/347/220/206-/345/237/272/347/241/200/346/226/271/346/263/225.md +116 -0
  1332. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//345/221/275/344/273/244/347/256/241/347/220/206//345/221/275/344/273/244/347/256/241/347/220/206-/347/273/210/347/253/257/344/272/244/344/272/222.md +65 -0
  1333. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//345/221/275/344/273/244/347/256/241/347/220/206//345/221/275/344/273/244/347/256/241/347/220/206-/347/273/223/346/236/204/345/214/226/345/217/202/346/225/260.md +229 -0
  1334. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//345/221/275/344/273/244/347/256/241/347/220/206//345/221/275/344/273/244/347/256/241/347/220/206-/351/223/276/350/267/257/350/267/237/350/270/252.md +82 -0
  1335. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//345/221/275/344/273/244/347/256/241/347/220/206//345/221/275/344/273/244/347/256/241/347/220/206.md +41 -0
  1336. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//345/257/271/350/261/241/347/256/241/347/220/206.md +190 -0
  1337. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/344/270/212/344/270/213/346/226/207/345/217/230/351/207/217.md +61 -0
  1338. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/344/272/213/345/212/241/345/244/204/347/220/206/ORM/344/272/213/345/212/241/345/244/204/347/220/206-/344/272/213/345/212/241/344/274/240/346/222/255.md +764 -0
  1339. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/344/272/213/345/212/241/345/244/204/347/220/206/ORM/344/272/213/345/212/241/345/244/204/347/220/206-/345/217/252/350/257/273/346/250/241/345/274/217.md +310 -0
  1340. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/344/272/213/345/212/241/345/244/204/347/220/206/ORM/344/272/213/345/212/241/345/244/204/347/220/206-/345/265/214/345/245/227/344/272/213/345/212/241.md +306 -0
  1341. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/344/272/213/345/212/241/345/244/204/347/220/206/ORM/344/272/213/345/212/241/345/244/204/347/220/206-/345/270/270/350/247/204/346/223/215/344/275/234.md +61 -0
  1342. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/344/272/213/345/212/241/345/244/204/347/220/206/ORM/344/272/213/345/212/241/345/244/204/347/220/206-/351/227/255/345/214/205/346/223/215/344/275/234.md +51 -0
  1343. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/344/272/213/345/212/241/345/244/204/347/220/206/ORM/344/272/213/345/212/241/345/244/204/347/220/206-/351/232/224/347/246/273/347/272/247/345/210/253.md +312 -0
  1344. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/344/275/277/347/224/250/351/205/215/347/275/256/ORM/344/275/277/347/224/250/351/205/215/347/275/256-/351/205/215/347/275/256/346/226/207/344/273/266.md +159 -0
  1345. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/344/275/277/347/224/250/351/205/215/347/275/256/ORM/344/275/277/347/224/250/351/205/215/347/275/256-/351/205/215/347/275/256/346/226/271/346/263/225.md +166 -0
  1346. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/345/210/206/345/272/223/345/210/206/350/241/250/ORM/345/210/206/345/272/223/345/210/206/350/241/250-/345/210/206/345/272/223/347/211/271/346/200/247.md +328 -0
  1347. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/345/210/206/345/272/223/345/210/206/350/241/250/ORM/345/210/206/345/272/223/345/210/206/350/241/250-/345/210/206/350/241/250/347/211/271/346/200/247.md +285 -0
  1348. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/345/270/270/350/247/201/351/227/256/351/242/230.md +73 -0
  1349. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/346/216/245/345/217/243/345/274/200/345/217/221/ORM/346/216/245/345/217/243/345/274/200/345/217/221-/345/233/236/350/260/203/345/244/204/347/220/206.md +85 -0
  1350. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/346/216/245/345/217/243/345/274/200/345/217/221/ORM/346/216/245/345/217/243/345/274/200/345/217/221-/351/251/261/345/212/250/345/274/200/345/217/221.md +46 -0
  1351. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/346/216/245/345/217/243/345/274/200/345/217/221/ORM/346/216/245/345/217/243/345/274/200/345/217/221.md +34 -0
  1352. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/346/226/271/346/263/225/346/223/215/344/275/234-/345/216/237/347/224/237.md +123 -0
  1353. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/346/227/266/345/214/272/345/244/204/347/220/206.md +88 -0
  1354. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/346/234/200/344/275/263/345/256/236/350/267/265//345/210/251/347/224/250/346/214/207/351/222/210/345/261/236/346/200/247/345/222/214do/345/257/271/350/261/241/345/256/236/347/216/260/347/201/265/346/264/273/347/232/204/344/277/256/346/224/271/346/216/245/345/217/243.md +84 -0
  1355. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/346/234/200/344/275/263/345/256/236/350/267/265//345/244/215/346/235/202/347/261/273/345/236/213/345/260/275/351/207/217/344/275/277/347/224/250json/345/255/230/345/202/250/357/274/214/344/276/277/344/272/216Scan/345/210/260/345/257/271/350/261/241/346/227/266/350/207/252/345/212/250/345/214/226/350/275/254/346/215/242/357/274/214/351/201/277/345/205/215/350/207/252/345/256/232/344/271/211/350/247/243/346/236/220.md +71 -0
  1356. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/346/234/200/344/275/263/345/256/236/350/267/265//346/237/245/350/257/242/346/227/266/351/201/277/345/205/215/350/277/224/345/233/236/345/257/271/350/261/241/345/210/235/345/247/213/345/214/226/345/217/212sql.ErrNoRows/345/210/244/346/226/255.md +40 -0
  1357. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/347/273/223/346/236/234/345/244/204/347/220/206/ORM/347/273/223/346/236/234/345/244/204/347/220/206-/344/270/272/347/251/272/345/210/244/346/226/255.md +142 -0
  1358. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/347/273/223/346/236/234/345/244/204/347/220/206/ORM/347/273/223/346/236/234/345/244/204/347/220/206-/347/251/272/346/225/260/347/273/204/347/273/223/346/236/204/350/277/224/345/233/236.md +89 -0
  1359. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/347/273/223/346/236/234/345/244/204/347/220/206/ORM/347/273/223/346/236/234/345/244/204/347/220/206-/347/273/223/346/236/234/347/261/273/345/236/213.md +151 -0
  1360. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-Handler/347/211/271/346/200/247.md +65 -0
  1361. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-Hook/347/211/271/346/200/247.md +58 -0
  1362. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/344/270/273/344/273/216/345/210/207/346/215/242.md +37 -0
  1363. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/344/272/213/345/212/241/345/244/204/347/220/206.md +102 -0
  1364. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/345/206/231/345/205/245/344/277/235/345/255/230.md +195 -0
  1365. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/345/255/227/346/256/265/350/216/267/345/217/226.md +34 -0
  1366. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/345/255/227/346/256/265/350/277/207/346/273/244.md +227 -0
  1367. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/345/257/271/350/261/241/350/276/223/345/205/245.md +25 -0
  1368. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/202/262/350/247/202/351/224/201 & /344/271/220/350/247/202/351/224/201.md" +146 -0
  1369. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/225/260/346/215/256/345/272/223/345/210/207/346/215/242.md +28 -0
  1370. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/225/260/346/215/256/346/237/245/350/257/242/ORM/346/237/245/350/257/242-AllAndCount.md +39 -0
  1371. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/225/260/346/215/256/346/237/245/350/257/242/ORM/346/237/245/350/257/242-Exist.md +33 -0
  1372. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/225/260/346/215/256/346/237/245/350/257/242/ORM/346/237/245/350/257/242-Join/346/237/245/350/257/242.md +123 -0
  1373. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/225/260/346/215/256/346/237/245/350/257/242/ORM/346/237/245/350/257/242-ScanAndCount.md +48 -0
  1374. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/225/260/346/215/256/346/237/245/350/257/242/ORM/346/237/245/350/257/242-Scan/346/230/240/345/260/204.md +49 -0
  1375. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/225/260/346/215/256/346/237/245/350/257/242/ORM/346/237/245/350/257/242-UnionUnionAll.md +82 -0
  1376. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/225/260/346/215/256/346/237/245/350/257/242/ORM/346/237/245/350/257/242-Where/346/235/241/344/273/266.md +310 -0
  1377. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/225/260/346/215/256/346/237/245/350/257/242/ORM/346/237/245/350/257/242-/345/210/206/347/273/204/346/216/222/345/272/217/350/277/207/346/273/244.md +47 -0
  1378. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/225/260/346/215/256/346/237/245/350/257/242/ORM/346/237/245/350/257/242-/345/255/220/346/237/245/350/257/242/347/211/271/346/200/247.md +34 -0
  1379. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/225/260/346/215/256/346/237/245/350/257/242/ORM/346/237/245/350/257/242-/345/270/270/347/224/250/346/223/215/344/275/234/347/244/272/344/276/213.md +271 -0
  1380. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/225/260/346/215/256/346/237/245/350/257/242/ORM/346/237/245/350/257/242-/345/270/270/347/224/250/346/237/245/350/257/242/346/226/271/346/263/225.md +40 -0
  1381. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/227/266/351/227/264/347/273/264/346/212/244/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/227/266/351/227/264/347/273/264/346/212/244.md +39 -0
  1382. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/227/266/351/227/264/347/273/264/346/212/244//346/227/266/351/227/264/347/273/264/346/212/244-SoftTimeOption.md +42 -0
  1383. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/227/266/351/227/264/347/273/264/346/212/244//346/227/266/351/227/264/347/273/264/346/212/244-/345/237/272/346/234/254/344/275/277/347/224/250.md +102 -0
  1384. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/227/266/351/227/264/347/273/264/346/212/244//346/227/266/351/227/264/347/273/264/346/212/244-/345/270/203/345/260/224/345/255/227/346/256/265.md +45 -0
  1385. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/227/266/351/227/264/347/273/264/346/212/244//346/227/266/351/227/264/347/273/264/346/212/244-/346/225/264/345/236/213/345/255/227/346/256/265.md +94 -0
  1386. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/233/264/346/226/260/345/210/240/351/231/244.md +144 -0
  1387. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/237/245/350/257/242/347/274/223/345/255/230.md +156 -0
  1388. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/250/241/345/236/213/345/205/263/350/201/224//346/250/241/345/236/213/345/205/263/350/201/224-/345/212/250/346/200/201/345/205/263/350/201/224-ScanList.md +228 -0
  1389. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/250/241/345/236/213/345/205/263/350/201/224//346/250/241/345/236/213/345/205/263/350/201/224-/351/235/231/346/200/201/345/205/263/350/201/224-With/347/211/271/346/200/247.md +725 -0
  1390. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234-/346/250/241/345/236/213/345/210/233/345/273/272.md +131 -0
  1391. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/223/276/345/274/217/346/223/215/344/275/234/ORM/351/223/276/345/274/217/346/223/215/344/275/234.md +21 -0
  1392. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/253/230/347/272/247/347/211/271/346/200/247/ORM/351/253/230/347/272/247/347/211/271/346/200/247-RawSQL.md +67 -0
  1393. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/253/230/347/272/247/347/211/271/346/200/247/ORM/351/253/230/347/272/247/347/211/271/346/200/247-SQL/346/215/225/350/216/267.md +158 -0
  1394. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/253/230/347/272/247/347/211/271/346/200/247/ORM/351/253/230/347/272/247/347/211/271/346/200/247-/345/206/205/345/265/214/347/273/223/346/236/204/346/224/257/346/214/201.md +18 -0
  1395. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/253/230/347/272/247/347/211/271/346/200/247/ORM/351/253/230/347/272/247/347/211/271/346/200/247-/345/255/227/346/256/265/346/230/240/345/260/204.md +154 -0
  1396. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/253/230/347/272/247/347/211/271/346/200/247/ORM/351/253/230/347/272/247/347/211/271/346/200/247-/346/227/245/345/277/227/350/276/223/345/207/272.md +38 -0
  1397. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/253/230/347/272/247/347/211/271/346/200/247/ORM/351/253/230/347/272/247/347/211/271/346/200/247-/347/251/272/350/267/221/347/211/271/346/200/247.md +24 -0
  1398. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/253/230/347/272/247/347/211/271/346/200/247/ORM/351/253/230/347/272/247/347/211/271/346/200/247-/347/261/273/345/236/213/350/257/206/345/210/253.md +34 -0
  1399. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/253/230/347/272/247/347/211/271/346/200/247/ORM/351/253/230/347/272/247/347/211/271/346/200/247-/347/261/273/345/236/213/350/275/254/346/215/242.md +45 -0
  1400. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/253/230/347/272/247/347/211/271/346/200/247/ORM/351/253/230/347/272/247/347/211/271/346/200/247-/350/260/203/350/257/225/346/250/241/345/274/217.md +20 -0
  1401. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM/ORM/351/253/230/347/272/247/347/211/271/346/200/247/ORM/351/253/230/347/272/247/347/211/271/346/200/247-/350/277/236/346/216/245/346/261/240/347/212/266/346/200/201.md +79 -0
  1402. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/345/272/223ORM//346/225/260/346/215/256/345/272/223ORM.md +75 -0
  1403. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/346/240/241/351/252/214//346/225/260/346/215/256/346/240/241/351/252/214-/345/217/202/346/225/260/347/261/273/345/236/213//346/225/260/346/215/256/346/240/241/351/252/214-Map/346/240/241/351/252/214/Map/346/240/241/351/252/214-/345/237/272/346/234/254/344/275/277/347/224/250.md +97 -0
  1404. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/346/240/241/351/252/214//346/225/260/346/215/256/346/240/241/351/252/214-/345/217/202/346/225/260/347/261/273/345/236/213//346/225/260/346/215/256/346/240/241/351/252/214-Map/346/240/241/351/252/214/Map/346/240/241/351/252/214-/346/240/241/351/252/214/351/241/272/345/272/217/346/200/247.md +49 -0
  1405. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/346/240/241/351/252/214//346/225/260/346/215/256/346/240/241/351/252/214-/345/217/202/346/225/260/347/261/273/345/236/213//346/225/260/346/215/256/346/240/241/351/252/214-Struct/346/240/241/351/252/214/Struct/346/240/241/351/252/214-Assoc/345/205/263/350/201/224.md +46 -0
  1406. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/346/240/241/351/252/214//346/225/260/346/215/256/346/240/241/351/252/214-/345/217/202/346/225/260/347/261/273/345/236/213//346/225/260/346/215/256/346/240/241/351/252/214-Struct/346/240/241/351/252/214/Struct/346/240/241/351/252/214-/345/237/272/346/234/254/344/275/277/347/224/250.md +216 -0
  1407. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/346/240/241/351/252/214//346/225/260/346/215/256/346/240/241/351/252/214-/345/217/202/346/225/260/347/261/273/345/236/213//346/225/260/346/215/256/346/240/241/351/252/214-/345/215/225/346/225/260/346/215/256/346/240/241/351/252/214.md +133 -0
  1408. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/346/240/241/351/252/214//346/225/260/346/215/256/346/240/241/351/252/214-/345/217/257/351/200/211/346/240/241/351/252/214.md +152 -0
  1409. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/346/240/241/351/252/214//346/225/260/346/215/256/346/240/241/351/252/214-/345/270/270/350/247/201/351/227/256/351/242/230.md +18 -0
  1410. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/346/240/241/351/252/214//346/225/260/346/215/256/346/240/241/351/252/214-/346/226/271/346/263/225/344/273/213/347/273/215.md +486 -0
  1411. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/346/240/241/351/252/214//346/225/260/346/215/256/346/240/241/351/252/214-/346/240/241/351/252/214/345/257/271/350/261/241.md +139 -0
  1412. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/346/240/241/351/252/214//346/225/260/346/215/256/346/240/241/351/252/214-/346/240/241/351/252/214/347/273/223/346/236/234.md +89 -0
  1413. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/346/240/241/351/252/214//346/225/260/346/215/256/346/240/241/351/252/214-/346/240/241/351/252/214/350/247/204/345/210/231.md +2073 -0
  1414. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/346/240/241/351/252/214//346/225/260/346/215/256/346/240/241/351/252/214-/350/207/252/345/256/232/344/271/211/350/247/204/345/210/231//350/207/252/345/256/232/344/271/211/350/247/204/345/210/231-/345/256/214/346/225/264/346/225/260/346/215/256/346/240/241/351/252/214.md +66 -0
  1415. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/346/240/241/351/252/214//346/225/260/346/215/256/346/240/241/351/252/214-/350/207/252/345/256/232/344/271/211/350/247/204/345/210/231//350/207/252/345/256/232/344/271/211/350/247/204/345/210/231-/350/247/204/345/210/231/346/263/250/345/206/214.md +274 -0
  1416. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/346/240/241/351/252/214//346/225/260/346/215/256/346/240/241/351/252/214-/350/207/252/345/256/232/344/271/211/351/224/231/350/257/257.md +96 -0
  1417. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/346/240/241/351/252/214//346/225/260/346/215/256/346/240/241/351/252/214-/351/200/222/345/275/222/346/240/241/351/252/214.md +196 -0
  1418. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/225/260/346/215/256/346/240/241/351/252/214//346/225/260/346/215/256/346/240/241/351/252/214.md +30 -0
  1419. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266-Context.md +69 -0
  1420. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266-Flags/347/211/271/346/200/247.md +45 -0
  1421. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266-Handler.md +292 -0
  1422. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266-JSON/346/240/274/345/274/217.md +64 -0
  1423. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266-Rotate/347/211/271/346/200/247.md +89 -0
  1424. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266-Writer/346/216/245/345/217/243.md +111 -0
  1425. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266-/345/240/206/346/240/210/346/211/223/345/215/260.md +137 -0
  1426. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266-/345/270/270/350/247/201/351/227/256/351/242/230.md +18 -0
  1427. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266-/345/274/202/346/255/245/350/276/223/345/207/272.md +109 -0
  1428. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266-/346/226/207/344/273/266/347/233/256/345/275/225.md +92 -0
  1429. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266-/346/227/245/345/277/227/347/272/247/345/210/253.md +187 -0
  1430. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266-/350/260/203/350/257/225/344/277/241/346/201/257.md +46 -0
  1431. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266-/351/205/215/347/275/256/347/256/241/347/220/206.md +109 -0
  1432. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266-/351/223/276/345/274/217/346/223/215/344/275/234.md +123 -0
  1433. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266-/351/242/234/350/211/262/346/211/223/345/215/260.md +62 -0
  1434. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266//346/227/245/345/277/227/347/273/204/344/273/266.md +65 -0
  1435. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/250/241/346/235/277/345/274/225/346/223/216//346/250/241/346/235/277/345/274/225/346/223/216-XSS/345/244/204/347/220/206.md +40 -0
  1436. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/250/241/346/235/277/345/274/225/346/223/216//346/250/241/346/235/277/345/274/225/346/223/216-/345/205/266/344/273/226/344/275/277/347/224/250.md +205 -0
  1437. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/250/241/346/235/277/345/274/225/346/223/216//346/250/241/346/235/277/345/274/225/346/223/216-/346/250/241/346/235/277/345/207/275/346/225/260//346/250/241/346/235/277/345/207/275/346/225/260-/345/206/205/347/275/256/345/207/275/346/225/260.md +298 -0
  1438. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/250/241/346/235/277/345/274/225/346/223/216//346/250/241/346/235/277/345/274/225/346/223/216-/346/250/241/346/235/277/345/207/275/346/225/260//346/250/241/346/235/277/345/207/275/346/225/260-/345/237/272/347/241/200/345/207/275/346/225/260.md +244 -0
  1439. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/250/241/346/235/277/345/274/225/346/223/216//346/250/241/346/235/277/345/274/225/346/223/216-/346/250/241/346/235/277/345/207/275/346/225/260//346/250/241/346/235/277/345/207/275/346/225/260-/350/207/252/345/256/232/344/271/211/345/207/275/346/225/260.md +48 -0
  1440. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/250/241/346/235/277/345/274/225/346/223/216//346/250/241/346/235/277/345/274/225/346/223/216-/346/250/241/346/235/277/345/217/230/351/207/217.md +49 -0
  1441. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/250/241/346/235/277/345/274/225/346/223/216//346/250/241/346/235/277/345/274/225/346/223/216-/346/250/241/346/235/277/345/270/203/345/261/200.md +148 -0
  1442. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/250/241/346/235/277/345/274/225/346/223/216//346/250/241/346/235/277/345/274/225/346/223/216-/346/250/241/346/235/277/346/240/207/347/255/276.md +193 -0
  1443. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/250/241/346/235/277/345/274/225/346/223/216//346/250/241/346/235/277/345/274/225/346/223/216-/346/250/241/346/235/277/351/205/215/347/275/256.md +122 -0
  1444. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//346/250/241/346/235/277/345/274/225/346/223/216//346/250/241/346/235/277/345/274/225/346/223/216.md +184 -0
  1445. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//347/261/273/345/236/213/350/275/254/346/215/242//347/261/273/345/236/213/350/275/254/346/215/242-Converter.md +249 -0
  1446. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//347/261/273/345/236/213/350/275/254/346/215/242//347/261/273/345/236/213/350/275/254/346/215/242-Map/350/275/254/346/215/242.md +209 -0
  1447. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//347/261/273/345/236/213/350/275/254/346/215/242//347/261/273/345/236/213/350/275/254/346/215/242-Scan/350/275/254/346/215/242.md +519 -0
  1448. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//347/261/273/345/236/213/350/275/254/346/215/242//347/261/273/345/236/213/350/275/254/346/215/242-Structs/350/275/254/346/215/242.md +64 -0
  1449. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//347/261/273/345/236/213/350/275/254/346/215/242//347/261/273/345/236/213/350/275/254/346/215/242-Struct/350/275/254/346/215/242.md +309 -0
  1450. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//347/261/273/345/236/213/350/275/254/346/215/242//347/261/273/345/236/213/350/275/254/346/215/242-UnmarshalValue.md +272 -0
  1451. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//347/261/273/345/236/213/350/275/254/346/215/242//347/261/273/345/236/213/350/275/254/346/215/242-/345/237/272/346/234/254/347/261/273/345/236/213.md +70 -0
  1452. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//347/261/273/345/236/213/350/275/254/346/215/242//347/261/273/345/236/213/350/275/254/346/215/242-/346/200/247/350/203/275/346/265/213/350/257/225.md +29 -0
  1453. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//347/261/273/345/236/213/350/275/254/346/215/242//347/261/273/345/236/213/350/275/254/346/215/242-/350/207/252/345/256/232/344/271/211/347/261/273/345/236/213/350/275/254/346/215/242.md +398 -0
  1454. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//347/261/273/345/236/213/350/275/254/346/215/242//347/261/273/345/236/213/350/275/254/346/215/242.md +23 -0
  1455. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//347/274/223/345/255/230/347/256/241/347/220/206//347/274/223/345/255/230/347/256/241/347/220/206-Redis/347/274/223/345/255/230.md +52 -0
  1456. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//347/274/223/345/255/230/347/256/241/347/220/206//347/274/223/345/255/230/347/256/241/347/220/206-/345/206/205/345/255/230/347/274/223/345/255/230.md +295 -0
  1457. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//347/274/223/345/255/230/347/256/241/347/220/206//347/274/223/345/255/230/347/256/241/347/220/206-/346/216/245/345/217/243/350/256/276/350/256/241.md +31 -0
  1458. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//347/274/223/345/255/230/347/256/241/347/220/206//347/274/223/345/255/230/347/256/241/347/220/206-/346/226/271/346/263/225/344/273/213/347/273/215.md +1030 -0
  1459. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//347/274/223/345/255/230/347/256/241/347/220/206//347/274/223/345/255/230/347/256/241/347/220/206.md +114 -0
  1460. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//350/260/203/350/257/225/346/250/241/345/274/217.md +51 -0
  1461. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//350/265/204/346/272/220/347/256/241/347/220/206//350/265/204/346/272/220/347/256/241/347/220/206-/344/275/277/347/224/250/347/244/272/344/276/213.md +103 -0
  1462. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//350/265/204/346/272/220/347/256/241/347/220/206//350/265/204/346/272/220/347/256/241/347/220/206-/345/267/245/345/205/267/346/211/223/345/214/205.md +89 -0
  1463. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//350/265/204/346/272/220/347/256/241/347/220/206//350/265/204/346/272/220/347/256/241/347/220/206-/346/226/271/346/263/225/344/273/213/347/273/215.md +319 -0
  1464. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//350/265/204/346/272/220/347/256/241/347/220/206//350/265/204/346/272/220/347/256/241/347/220/206-/346/226/271/346/263/225/346/211/223/345/214/205.md +82 -0
  1465. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//350/265/204/346/272/220/347/256/241/347/220/206//350/265/204/346/272/220/347/256/241/347/220/206-/346/234/200/344/275/263/345/256/236/350/267/265.md +41 -0
  1466. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//350/265/204/346/272/220/347/256/241/347/220/206//350/265/204/346/272/220/347/256/241/347/220/206.md +36 -0
  1467. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/205/215/347/275/256/347/256/241/347/220/206//351/205/215/347/275/256/347/256/241/347/220/206-Loader/345/212/240/350/275/275/345/231/250.md +491 -0
  1468. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/205/215/347/275/256/347/256/241/347/220/206//351/205/215/347/275/256/347/256/241/347/220/206-TOML/346/240/274/345/274/217.md +301 -0
  1469. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/205/215/347/275/256/347/256/241/347/220/206//351/205/215/347/275/256/347/256/241/347/220/206-YAML/346/240/274/345/274/217.md +364 -0
  1470. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/205/215/347/275/256/347/256/241/347/220/206//351/205/215/347/275/256/347/256/241/347/220/206-/345/270/270/347/224/250/346/226/271/346/263/225.md +362 -0
  1471. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/205/215/347/275/256/347/256/241/347/220/206//351/205/215/347/275/256/347/256/241/347/220/206-/346/216/245/345/217/243/345/214/226/350/256/276/350/256/241//351/205/215/347/275/256/347/256/241/347/220/206-AdapterContent.md +49 -0
  1472. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/205/215/347/275/256/347/256/241/347/220/206//351/205/215/347/275/256/347/256/241/347/220/206-/346/216/245/345/217/243/345/214/226/350/256/276/350/256/241//351/205/215/347/275/256/347/256/241/347/220/206-AdapterFile.md +98 -0
  1473. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/205/215/347/275/256/347/256/241/347/220/206//351/205/215/347/275/256/347/256/241/347/220/206-/346/216/245/345/217/243/345/214/226/350/256/276/350/256/241//351/205/215/347/275/256/347/256/241/347/220/206-/346/216/245/345/217/243/345/214/226/350/256/276/350/256/241.md +45 -0
  1474. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/205/215/347/275/256/347/256/241/347/220/206//351/205/215/347/275/256/347/256/241/347/220/206-/346/226/207/344/273/266/351/205/215/347/275/256.md +199 -0
  1475. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/205/215/347/275/256/347/256/241/347/220/206//351/205/215/347/275/256/347/256/241/347/220/206-/351/205/215/347/275/256/345/257/271/350/261/241.md +72 -0
  1476. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/205/215/347/275/256/347/256/241/347/220/206//351/205/215/347/275/256/347/256/241/347/220/206-/351/205/215/347/275/256/347/233/221/345/220/254/345/233/236/350/260/203.md +150 -0
  1477. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/205/215/347/275/256/347/256/241/347/220/206//351/205/215/347/275/256/347/256/241/347/220/206.md +31 -0
  1478. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/224/231/350/257/257/345/244/204/347/220/206//351/224/231/350/257/257/345/244/204/347/220/206-/345/205/266/344/273/226/347/211/271/346/200/247.md +207 -0
  1479. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/224/231/350/257/257/345/244/204/347/220/206//351/224/231/350/257/257/345/244/204/347/220/206-/345/233/275/351/231/205/345/214/226/346/224/257/346/214/201.md +324 -0
  1480. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/224/231/350/257/257/345/244/204/347/220/206//351/224/231/350/257/257/345/244/204/347/220/206-/345/240/206/346/240/210/347/211/271/346/200/247.md +245 -0
  1481. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/224/231/350/257/257/345/244/204/347/220/206//351/224/231/350/257/257/345/244/204/347/220/206-/345/270/270/347/224/250/346/226/271/346/263/225.md +62 -0
  1482. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/224/231/350/257/257/345/244/204/347/220/206//351/224/231/350/257/257/345/244/204/347/220/206-/346/200/247/350/203/275/346/265/213/350/257/225.md +19 -0
  1483. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/224/231/350/257/257/345/244/204/347/220/206//351/224/231/350/257/257/345/244/204/347/220/206-/346/234/200/344/275/263/345/256/236/350/267/265.md +107 -0
  1484. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/224/231/350/257/257/345/244/204/347/220/206//351/224/231/350/257/257/345/244/204/347/220/206-/351/224/231/350/257/257/346/257/224/350/276/203.md +232 -0
  1485. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/224/231/350/257/257/345/244/204/347/220/206//351/224/231/350/257/257/345/244/204/347/220/206-/351/224/231/350/257/257/347/240/201/347/211/271/346/200/247//351/224/231/350/257/257/345/244/204/347/220/206-/351/224/231/350/257/257/347/240/201/345/256/236/347/216/260.md +87 -0
  1486. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/224/231/350/257/257/345/244/204/347/220/206//351/224/231/350/257/257/345/244/204/347/220/206-/351/224/231/350/257/257/347/240/201/347/211/271/346/200/247//351/224/231/350/257/257/345/244/204/347/220/206-/351/224/231/350/257/257/347/240/201/346/211/251/345/261/225.md +79 -0
  1487. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/224/231/350/257/257/345/244/204/347/220/206//351/224/231/350/257/257/345/244/204/347/220/206-/351/224/231/350/257/257/347/240/201/347/211/271/346/200/247//351/224/231/350/257/257/345/244/204/347/220/206-/351/224/231/350/257/257/347/240/201/346/216/245/345/217/243.md +60 -0
  1488. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/224/231/350/257/257/345/244/204/347/220/206//351/224/231/350/257/257/345/244/204/347/220/206-/351/224/231/350/257/257/347/240/201/347/211/271/346/200/247//351/224/231/350/257/257/345/244/204/347/220/206-/351/224/231/350/257/257/347/240/201/346/226/271/346/263/225.md +162 -0
  1489. package/skills/goframe-v2/references//346/240/270/345/277/203/347/273/204/344/273/266//351/224/231/350/257/257/345/244/204/347/220/206//351/224/231/350/257/257/345/244/204/347/220/206.md +15 -0
  1490. package/skills/goframe-v2/references//346/241/206/346/236/266/350/256/276/350/256/241/Golang/346/236/232/344/270/276/345/200/274/347/256/241/347/220/206.md +36 -0
  1491. package/skills/goframe-v2/references//346/241/206/346/236/266/350/256/276/350/256/241//345/267/245/347/250/213/345/274/200/345/217/221/350/256/276/350/256/241//344/273/243/347/240/201/345/210/206/345/261/202/350/256/276/350/256/241.md +73 -0
  1492. package/skills/goframe-v2/references//346/241/206/346/236/266/350/256/276/350/256/241//345/267/245/347/250/213/345/274/200/345/217/221/350/256/276/350/256/241//345/267/245/347/250/213/347/233/256/345/275/225/350/256/276/350/256/241.md +165 -0
  1493. package/skills/goframe-v2/references//346/241/206/346/236/266/350/256/276/350/256/241//345/267/245/347/250/213/345/274/200/345/217/221/350/256/276/350/256/241//345/276/256/346/234/215/345/212/241/345/244/247/344/273/223/347/256/241/347/220/206/346/250/241/345/274/217.md +122 -0
  1494. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//345/212/237/350/203/275/350/260/203/350/257/225//350/260/203/350/257/225/345/212/237/350/203/275-gdebug.md +38 -0
  1495. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//345/212/240/345/257/206/350/247/243/345/257/206/AES/347/256/227/346/263/225-gaes.md +19 -0
  1496. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//345/212/240/345/257/206/350/247/243/345/257/206/DES/347/256/227/346/263/225-gdes.md +19 -0
  1497. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//345/212/240/345/257/206/350/247/243/345/257/206/RSA/347/256/227/346/263/225-grsa.md +267 -0
  1498. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//345/212/240/345/257/206/350/247/243/345/257/206/SHA256/347/256/227/346/263/225-gsha256.md +353 -0
  1499. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//345/215/225/345/205/203/346/265/213/350/257/225//345/215/225/345/205/203/346/265/213/350/257/225-gtest.md +413 -0
  1500. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//345/256/236/347/224/250/345/267/245/345/205/267//345/205/203/346/225/260/346/215/256-gmeta.md +89 -0
  1501. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//345/256/236/347/224/250/345/267/245/345/205/267//345/224/257/344/270/200/346/225/260-guid.md +111 -0
  1502. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//345/256/236/347/224/250/345/267/245/345/205/267//345/267/245/345/205/267/346/226/271/346/263/225-gutil.md +239 -0
  1503. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//345/256/236/347/224/250/345/267/245/345/205/267//351/232/217/346/234/272/346/225/260-grand.md +55 -0
  1504. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//345/255/227/345/205/270/347/261/273/345/236/213-gmap//345/255/227/345/205/270/347/261/273/345/236/213-gmap.md +36 -0
  1505. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//345/255/227/345/205/270/347/261/273/345/236/213-gmap//345/255/227/345/205/270/347/261/273/345/236/213-/345/237/272/346/234/254/344/275/277/347/224/250.md +544 -0
  1506. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//345/255/227/345/205/270/347/261/273/345/236/213-gmap//345/255/227/345/205/270/347/261/273/345/236/213-/346/200/247/350/203/275/346/265/213/350/257/225.md +79 -0
  1507. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//345/255/227/345/205/270/347/261/273/345/236/213-gmap//345/255/227/345/205/270/347/261/273/345/236/213-/346/226/271/346/263/225/344/273/213/347/273/215.md +1320 -0
  1508. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//345/256/211/345/205/250/347/261/273/345/236/213-gtype//345/256/211/345/205/250/347/261/273/345/236/213-gtype.md +23 -0
  1509. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//345/256/211/345/205/250/347/261/273/345/236/213-gtype//345/256/211/345/205/250/347/261/273/345/236/213-/345/237/272/346/234/254/344/275/277/347/224/250.md +110 -0
  1510. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//345/256/211/345/205/250/347/261/273/345/236/213-gtype//345/256/211/345/205/250/347/261/273/345/236/213-/346/200/247/350/203/275/346/265/213/350/257/225.md +38 -0
  1511. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//345/257/271/350/261/241/345/244/215/347/224/250-gpool//345/257/271/350/261/241/345/244/215/347/224/250-gpool.md +93 -0
  1512. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//345/257/271/350/261/241/345/244/215/347/224/250-gpool//345/257/271/350/261/241/345/244/215/347/224/250-/345/237/272/346/234/254/344/275/277/347/224/250.md +226 -0
  1513. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//345/271/266/345/217/221/345/256/211/345/205/250/347/216/257-gring//345/271/266/345/217/221/345/256/211/345/205/250/347/216/257-gring.md +202 -0
  1514. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//345/271/266/345/217/221/345/256/211/345/205/250/347/216/257-gring//345/271/266/345/217/221/345/256/211/345/205/250/347/216/257-/345/237/272/346/234/254/344/275/277/347/224/250.md +396 -0
  1515. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//345/271/266/345/217/221/345/256/211/345/205/250/347/216/257-gring//345/271/266/345/217/221/345/256/211/345/205/250/347/216/257-/346/226/271/346/263/225/344/273/213/347/273/215.md +626 -0
  1516. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//346/225/260/347/273/204/347/261/273/345/236/213-garray//346/225/260/347/273/204/347/261/273/345/236/213-garray.md +32 -0
  1517. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//346/225/260/347/273/204/347/261/273/345/236/213-garray//346/225/260/347/273/204/347/261/273/345/236/213-/345/237/272/346/234/254/344/275/277/347/224/250.md +581 -0
  1518. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//346/225/260/347/273/204/347/261/273/345/236/213-garray//346/225/260/347/273/204/347/261/273/345/236/213-/346/226/271/346/263/225/344/273/213/347/273/215.md +1389 -0
  1519. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//346/240/221/345/275/242/347/261/273/345/236/213-gtree//346/240/221/345/275/242/347/261/273/345/236/213-gtree.md +140 -0
  1520. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//346/240/221/345/275/242/347/261/273/345/236/213-gtree//346/240/221/345/275/242/347/261/273/345/236/213-/345/237/272/346/234/254/344/275/277/347/224/250.md +329 -0
  1521. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//346/240/221/345/275/242/347/261/273/345/236/213-gtree//346/240/221/345/275/242/347/261/273/345/236/213-/346/226/271/346/263/225/344/273/213/347/273/215.md +1254 -0
  1522. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//346/263/233/345/236/213/347/261/273/345/236/213-gvar//346/263/233/345/236/213/347/261/273/345/236/213-gvar.md +21 -0
  1523. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//346/263/233/345/236/213/347/261/273/345/236/213-gvar//346/263/233/345/236/213/347/261/273/345/236/213-/345/237/272/346/234/254/344/275/277/347/224/250.md +107 -0
  1524. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//346/263/233/345/236/213/347/261/273/345/236/213-gvar//346/263/233/345/236/213/347/261/273/345/236/213-/346/226/271/346/263/225/344/273/213/347/273/215.md +1477 -0
  1525. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//346/263/233/345/236/213/347/261/273/345/236/213-gvar//346/263/233/345/236/213/347/261/273/345/236/213-/346/263/250/346/204/217/344/272/213/351/241/271.md +32 -0
  1526. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//351/223/276/350/241/250/347/261/273/345/236/213-glist//351/223/276/350/241/250/347/261/273/345/236/213-glist.md +26 -0
  1527. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//351/223/276/350/241/250/347/261/273/345/236/213-glist//351/223/276/350/241/250/347/261/273/345/236/213-/345/237/272/346/234/254/344/275/277/347/224/250.md +436 -0
  1528. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//351/223/276/350/241/250/347/261/273/345/236/213-glist//351/223/276/350/241/250/347/261/273/345/236/213-/346/200/247/350/203/275/346/265/213/350/257/225.md +13 -0
  1529. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//351/230/237/345/210/227/347/261/273/345/236/213-gqueue//351/230/237/345/210/227/347/261/273/345/236/213-gqueue.md +27 -0
  1530. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//351/230/237/345/210/227/347/261/273/345/236/213-gqueue//351/230/237/345/210/227/347/261/273/345/236/213-/345/237/272/346/234/254/344/275/277/347/224/250.md +265 -0
  1531. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//351/230/237/345/210/227/347/261/273/345/236/213-gqueue//351/230/237/345/210/227/347/261/273/345/236/213-/346/200/247/350/203/275/346/265/213/350/257/225.md +16 -0
  1532. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//351/233/206/345/220/210/347/261/273/345/236/213-gset//351/233/206/345/220/210/347/261/273/345/236/213-gset.md +26 -0
  1533. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//351/233/206/345/220/210/347/261/273/345/236/213-gset//351/233/206/345/220/210/347/261/273/345/236/213-/345/237/272/346/234/254/344/275/277/347/224/250.md +457 -0
  1534. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//351/233/206/345/220/210/347/261/273/345/236/213-gset//351/233/206/345/220/210/347/261/273/345/236/213-/346/200/247/350/203/275/346/265/213/350/257/225.md +24 -0
  1535. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/225/260/346/215/256/347/273/223/346/236/204//351/233/206/345/220/210/347/261/273/345/236/213-gset//351/233/206/345/220/210/347/261/273/345/236/213-/346/226/271/346/263/225/344/273/213/347/273/215.md +764 -0
  1536. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/226/207/346/234/254/345/244/204/347/220/206//345/255/227/347/254/246/344/270/262/345/244/204/347/220/206-gstr.md +2641 -0
  1537. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/226/207/346/234/254/345/244/204/347/220/206//346/255/243/345/210/231/350/241/250/350/276/276/345/274/217-gregex//346/255/243/345/210/231/350/241/250/350/276/276/345/274/217-gregex.md +15 -0
  1538. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/226/207/346/234/254/345/244/204/347/220/206//346/255/243/345/210/231/350/241/250/350/276/276/345/274/217-gregex//346/255/243/345/210/231/350/241/250/350/276/276/345/274/217-/345/237/272/346/234/254/344/275/277/347/224/250.md +21 -0
  1539. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//346/226/207/346/234/254/345/244/204/347/220/206//346/255/243/345/210/231/350/241/250/350/276/276/345/274/217-gregex//346/255/243/345/210/231/350/241/250/350/276/276/345/274/217-/346/226/271/346/263/225/344/273/213/347/273/215.md +325 -0
  1540. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//344/270/212/344/270/213/346/226/207-gctx.md +15 -0
  1541. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//344/272/222/346/226/245/351/224/201-gmutex.md +145 -0
  1542. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//345/206/205/345/255/230/351/224/201-gmlock.md +140 -0
  1543. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//345/215/217/347/250/213/347/256/241/347/220/206-grpool.md +371 -0
  1544. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//345/256/232/346/227/266/344/273/273/345/212/241-gcron//345/256/232/346/227/266/344/273/273/345/212/241-gcron.md +36 -0
  1545. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//345/256/232/346/227/266/344/273/273/345/212/241-gcron//345/256/232/346/227/266/344/273/273/345/212/241-gcron/344/270/216gtimer.md +13 -0
  1546. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//345/256/232/346/227/266/344/273/273/345/212/241-gcron//345/256/232/346/227/266/344/273/273/345/212/241-/345/237/272/346/234/254/344/275/277/347/224/250.md +411 -0
  1547. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//345/256/232/346/227/266/344/273/273/345/212/241-gcron//345/256/232/346/227/266/344/273/273/345/212/241-/346/227/245/345/277/227/347/256/241/347/220/206.md +42 -0
  1548. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//345/256/232/346/227/266/344/273/273/345/212/241-gcron//345/256/232/346/227/266/344/273/273/345/212/241-/350/241/250/350/276/276/345/274/217.md +97 -0
  1549. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//345/256/232/346/227/266/345/231/250-gtimer//345/256/232/346/227/266/345/231/250-gtimer.md +58 -0
  1550. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//345/256/232/346/227/266/345/231/250-gtimer//345/256/232/346/227/266/345/231/250-/345/237/272/346/234/254/344/275/277/347/224/250.md +213 -0
  1551. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//345/257/271/350/261/241/344/277/241/346/201/257-gstructs.md +130 -0
  1552. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//346/226/207/344/273/266/347/233/221/346/216/247-gfsnotify//346/226/207/344/273/266/347/233/221/346/216/247-gfsnotify.md +19 -0
  1553. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//346/226/207/344/273/266/347/233/221/346/216/247-gfsnotify//346/226/207/344/273/266/347/233/221/346/216/247-/346/267/273/345/212/240/347/233/221/346/216/247.md +52 -0
  1554. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//346/226/207/344/273/266/347/233/221/346/216/247-gfsnotify//346/226/207/344/273/266/347/233/221/346/216/247-/347/247/273/351/231/244/347/233/221/346/216/247.md +88 -0
  1555. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//346/226/207/344/273/266/347/233/221/346/216/247-gfsnotify//346/226/207/344/273/266/347/233/221/346/216/247-/347/263/273/347/273/237/345/217/202/346/225/260.md +28 -0
  1556. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//346/226/207/344/273/266/347/256/241/347/220/206-gfile.md +2517 -0
  1557. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//346/227/266/351/227/264/347/256/241/347/220/206-gtime//346/227/266/351/227/264/347/256/241/347/220/206-gtime.md +17 -0
  1558. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//346/227/266/351/227/264/347/256/241/347/220/206-gtime//346/227/266/351/227/264/347/256/241/347/220/206-/345/267/245/345/205/267/346/226/271/346/263/225.md +200 -0
  1559. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//346/227/266/351/227/264/347/256/241/347/220/206-gtime//346/227/266/351/227/264/347/256/241/347/220/206-/346/226/271/346/263/225/344/273/213/347/273/215.md +685 -0
  1560. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//346/227/266/351/227/264/347/256/241/347/220/206-gtime//346/227/266/351/227/264/347/256/241/347/220/206-/346/227/266/345/214/272/350/256/276/347/275/256.md +106 -0
  1561. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//346/227/266/351/227/264/347/256/241/347/220/206-gtime//346/227/266/351/227/264/347/256/241/347/220/206-/346/227/266/351/227/264/345/257/271/350/261/241.md +157 -0
  1562. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//346/227/266/351/227/264/347/256/241/347/220/206-gtime//346/227/266/351/227/264/347/256/241/347/220/206-/346/227/266/351/227/264/346/240/274/345/274/217.md +45 -0
  1563. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//347/216/257/345/242/203/345/217/230/351/207/217-genv.md +104 -0
  1564. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//350/277/233/347/250/213/347/256/241/347/220/206-gproc//350/277/233/347/250/213/347/256/241/347/220/206-gproc.md +24 -0
  1565. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//350/277/233/347/250/213/347/256/241/347/220/206-gproc//350/277/233/347/250/213/347/256/241/347/220/206-/344/277/241/345/217/267/347/233/221/345/220/254.md +147 -0
  1566. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//350/277/233/347/250/213/347/256/241/347/220/206-gproc//350/277/233/347/250/213/347/256/241/347/220/206-/345/237/272/346/234/254/344/275/277/347/224/250.md +110 -0
  1567. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//350/277/233/347/250/213/347/256/241/347/220/206-gproc//350/277/233/347/250/213/347/256/241/347/220/206-/350/277/233/347/250/213/351/200/232/344/277/241.md +76 -0
  1568. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/263/273/347/273/237/347/233/270/345/205/263//350/277/233/347/250/213/347/256/241/347/220/206-gproc//350/277/233/347/250/213/347/256/241/347/220/206-/351/223/276/350/267/257/350/267/237/350/270/252.md +57 -0
  1569. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/274/226/347/240/201/350/247/243/347/240/201/URL/347/274/226/350/247/243/347/240/201-gurl.md +123 -0
  1570. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/274/226/347/240/201/350/247/243/347/240/201//344/272/214/350/277/233/345/210/266/347/274/226/350/247/243/347/240/201-gbinary.md +173 -0
  1571. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/274/226/347/240/201/350/247/243/347/240/201//345/255/227/347/254/246/351/233/206/350/275/254/346/215/242-gcharset.md +52 -0
  1572. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/274/226/347/240/201/350/247/243/347/240/201//347/273/217/345/205/270/345/223/210/345/270/214/345/207/275/346/225/260-ghash.md +101 -0
  1573. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/274/226/347/240/201/350/247/243/347/240/201//351/200/232/347/224/250/347/274/226/350/247/243/347/240/201-gjson//351/200/232/347/224/250/347/274/226/350/247/243/347/240/201-FAQ.md +53 -0
  1574. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/274/226/347/240/201/350/247/243/347/240/201//351/200/232/347/224/250/347/274/226/350/247/243/347/240/201-gjson//351/200/232/347/224/250/347/274/226/350/247/243/347/240/201-Struct/350/275/254/346/215/242.md +28 -0
  1575. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/274/226/347/240/201/350/247/243/347/240/201//351/200/232/347/224/250/347/274/226/350/247/243/347/240/201-gjson//351/200/232/347/224/250/347/274/226/350/247/243/347/240/201-gjson.md +22 -0
  1576. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/274/226/347/240/201/350/247/243/347/240/201//351/200/232/347/224/250/347/274/226/350/247/243/347/240/201-gjson//351/200/232/347/224/250/347/274/226/350/247/243/347/240/201-/345/212/250/346/200/201/345/210/233/345/273/272/344/277/256/346/224/271.md +68 -0
  1577. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/274/226/347/240/201/350/247/243/347/240/201//351/200/232/347/224/250/347/274/226/350/247/243/347/240/201-gjson//351/200/232/347/224/250/347/274/226/350/247/243/347/240/201-/345/257/271/350/261/241/345/210/233/345/273/272.md +110 -0
  1578. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/274/226/347/240/201/350/247/243/347/240/201//351/200/232/347/224/250/347/274/226/350/247/243/347/240/201-gjson//351/200/232/347/224/250/347/274/226/350/247/243/347/240/201-/345/261/202/347/272/247/350/256/277/351/227/256.md +120 -0
  1579. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/274/226/347/240/201/350/247/243/347/240/201//351/200/232/347/224/250/347/274/226/350/247/243/347/240/201-gjson//351/200/232/347/224/250/347/274/226/350/247/243/347/240/201-/346/225/260/346/215/256/346/240/274/345/274/217/350/275/254/346/215/242.md +55 -0
  1580. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/274/226/347/240/201/350/247/243/347/240/201//351/200/232/347/224/250/347/274/226/350/247/243/347/240/201-gjson//351/200/232/347/224/250/347/274/226/350/247/243/347/240/201-/346/226/271/346/263/225/344/273/213/347/273/215.md +2644 -0
  1581. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/275/221/347/273/234/347/273/204/344/273/266/TCP/347/273/204/344/273/266/TCP/347/273/204/344/273/266-TLS/345/212/240/345/257/206.md +143 -0
  1582. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/275/221/347/273/234/347/273/204/344/273/266/TCP/347/273/204/344/273/266/TCP/347/273/204/344/273/266-/345/267/245/345/205/267/346/226/271/346/263/225.md +61 -0
  1583. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/275/221/347/273/234/347/273/204/344/273/266/TCP/347/273/204/344/273/266/TCP/347/273/204/344/273/266-/350/277/236/346/216/245/345/257/271/350/261/241/TCP/347/273/204/344/273/266-/350/277/236/346/216/245/345/257/271/350/261/241.md +259 -0
  1584. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/275/221/347/273/234/347/273/204/344/273/266/TCP/347/273/204/344/273/266/TCP/347/273/204/344/273/266-/350/277/236/346/216/245/345/257/271/350/261/241//350/277/236/346/216/245/345/257/271/350/261/241-/346/266/210/346/201/257/345/214/205/345/244/204/347/220/206.md +228 -0
  1585. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/275/221/347/273/234/347/273/204/344/273/266/TCP/347/273/204/344/273/266/TCP/347/273/204/344/273/266-/350/277/236/346/216/245/345/257/271/350/261/241//350/277/236/346/216/245/345/257/271/350/261/241-/351/200/232/344/277/241/345/274/200/345/217/221/350/277/233/351/230/266.md +220 -0
  1586. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/275/221/347/273/234/347/273/204/344/273/266/TCP/347/273/204/344/273/266/TCP/347/273/204/344/273/266-/350/277/236/346/216/245/346/261/240/347/211/271/346/200/247.md +164 -0
  1587. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/275/221/347/273/234/347/273/204/344/273/266/TCP/347/273/204/344/273/266/TCP/347/273/204/344/273/266.md +73 -0
  1588. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/275/221/347/273/234/347/273/204/344/273/266/UDP/347/273/204/344/273/266/UDP/347/273/204/344/273/266-/345/267/245/345/205/267/346/226/271/346/263/225.md +13 -0
  1589. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/275/221/347/273/234/347/273/204/344/273/266/UDP/347/273/204/344/273/266/UDP/347/273/204/344/273/266-/350/277/236/346/216/245/345/257/271/350/261/241.md +83 -0
  1590. package/skills/goframe-v2/references//347/273/204/344/273/266/345/210/227/350/241/250//347/275/221/347/273/234/347/273/204/344/273/266/UDP/347/273/204/344/273/266/UDP/347/273/204/344/273/266.md +47 -0
  1591. package/skills/goframe-v2/references//351/241/271/347/233/256/350/204/232/346/211/213/346/236/266//345/237/272/346/234/254/344/273/213/347/273/215.md +143 -0
  1592. package/skills/goframe-v2/references//351/241/271/347/233/256/350/204/232/346/211/213/346/236/266//346/216/245/345/217/243/345/274/200/345/217/221/Step1 - /350/256/276/350/256/241/346/225/260/346/215/256/350/241/250.md" +62 -0
  1593. package/skills/goframe-v2/references//351/241/271/347/233/256/350/204/232/346/211/213/346/236/266//346/216/245/345/217/243/345/274/200/345/217/221/Step2 - /347/224/237/346/210/220dao_do_entity.md" +140 -0
  1594. package/skills/goframe-v2/references//351/241/271/347/233/256/350/204/232/346/211/213/346/236/266//346/216/245/345/217/243/345/274/200/345/217/221/Step3 - /347/274/226/345/206/231api/346/216/245/345/217/243/345/256/232/344/271/211.md" +104 -0
  1595. package/skills/goframe-v2/references//351/241/271/347/233/256/350/204/232/346/211/213/346/236/266//346/216/245/345/217/243/345/274/200/345/217/221/Step4 - /347/224/237/346/210/220controller/344/273/243/347/240/201.md" +138 -0
  1596. package/skills/goframe-v2/references//351/241/271/347/233/256/350/204/232/346/211/213/346/236/266//346/216/245/345/217/243/345/274/200/345/217/221/Step5 - /345/256/214/346/210/220/346/216/245/345/217/243/351/200/273/350/276/221/345/256/236/347/216/260.md" +152 -0
  1597. package/skills/goframe-v2/references//351/241/271/347/233/256/350/204/232/346/211/213/346/236/266//346/216/245/345/217/243/345/274/200/345/217/221/Step6 - /351/205/215/347/275/256/344/270/216/350/267/257/347/224/261.md" +97 -0
  1598. package/skills/goframe-v2/references//351/241/271/347/233/256/350/204/232/346/211/213/346/236/266//346/216/245/345/217/243/345/274/200/345/217/221/Step7 - /345/220/257/345/212/250/344/270/216/346/265/213/350/257/225.md" +133 -0
  1599. package/skills/goframe-v2/references//351/241/271/347/233/256/350/204/232/346/211/213/346/236/266//351/241/271/347/233/256/345/220/257/345/212/250.md +90 -0
  1600. package/skills/goframe-v2/references//351/241/271/347/233/256/351/203/250/347/275/262//344/273/243/347/220/206/351/203/250/347/275/262.md +81 -0
  1601. package/skills/goframe-v2/references//351/241/271/347/233/256/351/203/250/347/275/262//345/256/271/345/231/250/351/203/250/347/275/262.md +78 -0
  1602. package/skills/goframe-v2/references//351/241/271/347/233/256/351/203/250/347/275/262//347/213/254/347/253/213/351/203/250/347/275/262.md +126 -0
  1603. package/skills/golang-patterns/SKILL.md +674 -0
  1604. package/skills/golang-testing/SKILL.md +720 -0
  1605. package/skills/google-workspace-ops/SKILL.md +95 -0
  1606. package/skills/graphify/SKILL.md +51 -0
  1607. package/skills/graphify/agents/openai.yaml +4 -0
  1608. package/skills/harness-audit/SKILL.md +135 -0
  1609. package/skills/harness-audit/agents/openai.yaml +4 -0
  1610. package/skills/healthcare-cdss-patterns/SKILL.md +245 -0
  1611. package/skills/healthcare-emr-patterns/SKILL.md +159 -0
  1612. package/skills/healthcare-eval-harness/SKILL.md +207 -0
  1613. package/skills/healthcare-phi-compliance/SKILL.md +145 -0
  1614. package/skills/hexagonal-architecture/SKILL.md +276 -0
  1615. package/skills/inventory-demand-planning/SKILL.md +247 -0
  1616. package/skills/investor-materials/SKILL.md +96 -0
  1617. package/skills/investor-outreach/SKILL.md +87 -0
  1618. package/skills/iterative-retrieval/SKILL.md +211 -0
  1619. package/skills/iterative-retrieval/agents/openai.yaml +4 -0
  1620. package/skills/java-coding-standards/SKILL.md +147 -0
  1621. package/skills/java-unit-test/SKILL.md +256 -0
  1622. package/skills/java-unit-test/agents/openai.yaml +4 -0
  1623. package/skills/jpa-patterns/SKILL.md +151 -0
  1624. package/skills/karpathy-guidelines/SKILL.md +46 -0
  1625. package/skills/karpathy-guidelines/agents/openai.yaml +4 -0
  1626. package/skills/kotlin-coroutines-flows/SKILL.md +284 -0
  1627. package/skills/kotlin-exposed-patterns/SKILL.md +719 -0
  1628. package/skills/kotlin-ktor-patterns/SKILL.md +689 -0
  1629. package/skills/kotlin-patterns/SKILL.md +711 -0
  1630. package/skills/kotlin-testing/SKILL.md +824 -0
  1631. package/skills/langfuse-coding-trace/SKILL.md +129 -0
  1632. package/skills/langfuse-coding-trace/agents/openai.yaml +4 -0
  1633. package/skills/langfuse-coding-trace/trace.py +226 -0
  1634. package/skills/laravel-patterns/SKILL.md +415 -0
  1635. package/skills/laravel-plugin-discovery/SKILL.md +229 -0
  1636. package/skills/laravel-security/SKILL.md +285 -0
  1637. package/skills/laravel-tdd/SKILL.md +283 -0
  1638. package/skills/laravel-verification/SKILL.md +179 -0
  1639. package/skills/lead-intelligence/SKILL.md +345 -0
  1640. package/skills/lead-intelligence/agents/enrichment-agent.md +85 -0
  1641. package/skills/lead-intelligence/agents/mutual-mapper.md +75 -0
  1642. package/skills/lead-intelligence/agents/outreach-drafter.md +98 -0
  1643. package/skills/lead-intelligence/agents/signal-scorer.md +60 -0
  1644. package/skills/liquid-glass-design/SKILL.md +279 -0
  1645. package/skills/logistics-exception-management/SKILL.md +222 -0
  1646. package/skills/manim-video/SKILL.md +89 -0
  1647. package/skills/manim-video/assets/network_graph_scene.py +52 -0
  1648. package/skills/market-research/SKILL.md +75 -0
  1649. package/skills/maven-qa/SKILL.md +199 -0
  1650. package/skills/maven-qa/agents/openai.yaml +4 -0
  1651. package/skills/maven-qa/scripts/parse_static_analysis.py +252 -0
  1652. package/skills/maven-qa/scripts/parse_surefire.py +113 -0
  1653. package/skills/maven-qa/scripts/requirements.txt +1 -0
  1654. package/skills/mcp-server-patterns/SKILL.md +67 -0
  1655. package/skills/multi-perspective-review/SKILL.md +112 -0
  1656. package/skills/mysql-query/SKILL.md +125 -0
  1657. package/skills/mysql-query/agents/openai.yaml +4 -0
  1658. package/skills/mysql-query/scripts/query.py +79 -0
  1659. package/skills/mysql-query/scripts/requirements.txt +1 -0
  1660. package/skills/nanoclaw-repl/SKILL.md +33 -0
  1661. package/skills/nextjs-turbopack/SKILL.md +44 -0
  1662. package/skills/nutrient-document-processing/SKILL.md +167 -0
  1663. package/skills/nuxt4-patterns/SKILL.md +100 -0
  1664. package/skills/openclaw-persona-forge/SKILL.md +296 -0
  1665. package/skills/openclaw-persona-forge/gacha.py +224 -0
  1666. package/skills/openclaw-persona-forge/gacha.sh +5 -0
  1667. package/skills/openclaw-persona-forge/references/avatar-style.md +124 -0
  1668. package/skills/openclaw-persona-forge/references/boundary-rules.md +53 -0
  1669. package/skills/openclaw-persona-forge/references/error-handling.md +53 -0
  1670. package/skills/openclaw-persona-forge/references/identity-tension.md +48 -0
  1671. package/skills/openclaw-persona-forge/references/naming-system.md +39 -0
  1672. package/skills/openclaw-persona-forge/references/output-template.md +166 -0
  1673. package/skills/opensource-pipeline/SKILL.md +255 -0
  1674. package/skills/pairwise-test-design/SKILL.md +36 -0
  1675. package/skills/pairwise-test-design/agents/openai.yaml +4 -0
  1676. package/skills/parallel-execution/SKILL.md +69 -0
  1677. package/skills/parallel-execution/agents/openai.yaml +58 -0
  1678. package/skills/perl-patterns/SKILL.md +504 -0
  1679. package/skills/perl-security/SKILL.md +503 -0
  1680. package/skills/perl-testing/SKILL.md +475 -0
  1681. package/skills/plankton-code-quality/SKILL.md +236 -0
  1682. package/skills/plankton-code-quality/agents/openai.yaml +4 -0
  1683. package/skills/postgres-patterns/SKILL.md +147 -0
  1684. package/skills/product-lens/SKILL.md +85 -0
  1685. package/skills/production-scheduling/SKILL.md +238 -0
  1686. package/skills/project-flow-ops/SKILL.md +111 -0
  1687. package/skills/project-guidelines-example/SKILL.md +349 -0
  1688. package/skills/project-guidelines-example/agents/openai.yaml +4 -0
  1689. package/skills/prompt-optimizer/SKILL.md +397 -0
  1690. package/skills/pua/SKILL.md +77 -0
  1691. package/skills/pua/agents/openai.yaml +4 -0
  1692. package/skills/pua/references/display-protocol.md +32 -0
  1693. package/skills/pua/references/flavors.md +44 -0
  1694. package/skills/pua/references/methodology-alibaba.md +14 -0
  1695. package/skills/pua/references/methodology-huawei.md +15 -0
  1696. package/skills/pua/references/methodology-musk.md +15 -0
  1697. package/skills/pua/references/methodology-router.md +28 -0
  1698. package/skills/pua-loop/SKILL.md +18 -0
  1699. package/skills/pua-loop/agents/openai.yaml +4 -0
  1700. package/skills/pua-mama/SKILL.md +17 -0
  1701. package/skills/pua-mama/agents/openai.yaml +4 -0
  1702. package/skills/pua-p10/SKILL.md +18 -0
  1703. package/skills/pua-p10/agents/openai.yaml +4 -0
  1704. package/skills/pua-p7/SKILL.md +24 -0
  1705. package/skills/pua-p7/agents/openai.yaml +4 -0
  1706. package/skills/pua-p9/SKILL.md +24 -0
  1707. package/skills/pua-p9/agents/openai.yaml +4 -0
  1708. package/skills/pua-pro/SKILL.md +18 -0
  1709. package/skills/pua-pro/agents/openai.yaml +4 -0
  1710. package/skills/pua-yes/SKILL.md +17 -0
  1711. package/skills/pua-yes/agents/openai.yaml +4 -0
  1712. package/skills/python-patterns/SKILL.md +750 -0
  1713. package/skills/python-testing/SKILL.md +816 -0
  1714. package/skills/pytorch-patterns/SKILL.md +396 -0
  1715. package/skills/quality-nonconformance/SKILL.md +260 -0
  1716. package/skills/quick-execution/SKILL.md +78 -0
  1717. package/skills/ralphinho-rfc-pipeline/SKILL.md +67 -0
  1718. package/skills/regex-vs-llm-structured-text/SKILL.md +220 -0
  1719. package/skills/remotion-video-creation/SKILL.md +43 -0
  1720. package/skills/remotion-video-creation/rules/3d.md +86 -0
  1721. package/skills/remotion-video-creation/rules/animations.md +29 -0
  1722. package/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +173 -0
  1723. package/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +100 -0
  1724. package/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +108 -0
  1725. package/skills/remotion-video-creation/rules/assets.md +78 -0
  1726. package/skills/remotion-video-creation/rules/audio.md +172 -0
  1727. package/skills/remotion-video-creation/rules/calculate-metadata.md +104 -0
  1728. package/skills/remotion-video-creation/rules/can-decode.md +75 -0
  1729. package/skills/remotion-video-creation/rules/charts.md +58 -0
  1730. package/skills/remotion-video-creation/rules/compositions.md +146 -0
  1731. package/skills/remotion-video-creation/rules/display-captions.md +126 -0
  1732. package/skills/remotion-video-creation/rules/extract-frames.md +229 -0
  1733. package/skills/remotion-video-creation/rules/fonts.md +152 -0
  1734. package/skills/remotion-video-creation/rules/get-audio-duration.md +58 -0
  1735. package/skills/remotion-video-creation/rules/get-video-dimensions.md +68 -0
  1736. package/skills/remotion-video-creation/rules/get-video-duration.md +58 -0
  1737. package/skills/remotion-video-creation/rules/gifs.md +138 -0
  1738. package/skills/remotion-video-creation/rules/images.md +130 -0
  1739. package/skills/remotion-video-creation/rules/import-srt-captions.md +67 -0
  1740. package/skills/remotion-video-creation/rules/lottie.md +67 -0
  1741. package/skills/remotion-video-creation/rules/measuring-dom-nodes.md +34 -0
  1742. package/skills/remotion-video-creation/rules/measuring-text.md +143 -0
  1743. package/skills/remotion-video-creation/rules/sequencing.md +106 -0
  1744. package/skills/remotion-video-creation/rules/tailwind.md +11 -0
  1745. package/skills/remotion-video-creation/rules/text-animations.md +20 -0
  1746. package/skills/remotion-video-creation/rules/timing.md +179 -0
  1747. package/skills/remotion-video-creation/rules/transcribe-captions.md +19 -0
  1748. package/skills/remotion-video-creation/rules/transitions.md +122 -0
  1749. package/skills/remotion-video-creation/rules/trimming.md +52 -0
  1750. package/skills/remotion-video-creation/rules/videos.md +171 -0
  1751. package/skills/repo-scan/SKILL.md +78 -0
  1752. package/skills/returns-reverse-logistics/SKILL.md +240 -0
  1753. package/skills/roles/architect/SKILL.md +105 -0
  1754. package/skills/roles/architect/agents/openai.yaml +4 -0
  1755. package/skills/roles/backend-engineer/SKILL.md +116 -0
  1756. package/skills/roles/backend-engineer/agents/openai.yaml +4 -0
  1757. package/skills/roles/devops-engineer/SKILL.md +99 -0
  1758. package/skills/roles/devops-engineer/agents/openai.yaml +4 -0
  1759. package/skills/roles/frontend-engineer/SKILL.md +103 -0
  1760. package/skills/roles/frontend-engineer/agents/openai.yaml +4 -0
  1761. package/skills/roles/product-manager/SKILL.md +106 -0
  1762. package/skills/roles/product-manager/agents/openai.yaml +4 -0
  1763. package/skills/roles/project-manager/SKILL.md +90 -0
  1764. package/skills/roles/project-manager/agents/openai.yaml +4 -0
  1765. package/skills/roles/qa-engineer/SKILL.md +114 -0
  1766. package/skills/roles/qa-engineer/agents/openai.yaml +4 -0
  1767. package/skills/roles/tech-lead/SKILL.md +120 -0
  1768. package/skills/roles/tech-lead/agents/openai.yaml +4 -0
  1769. package/skills/rtk-token-optimization/SKILL.md +98 -0
  1770. package/skills/rtk-token-optimization/agents/openai.yaml +4 -0
  1771. package/skills/rules-distill/SKILL.md +264 -0
  1772. package/skills/rules-distill/scripts/scan-rules.sh +58 -0
  1773. package/skills/rules-distill/scripts/scan-skills.sh +129 -0
  1774. package/skills/rust-patterns/SKILL.md +499 -0
  1775. package/skills/rust-testing/SKILL.md +500 -0
  1776. package/skills/safety-guard/SKILL.md +75 -0
  1777. package/skills/santa-method/SKILL.md +306 -0
  1778. package/skills/search-first/SKILL.md +161 -0
  1779. package/skills/security-review/SKILL.md +495 -0
  1780. package/skills/security-review/cloud-infrastructure-security.md +361 -0
  1781. package/skills/security-scan/SKILL.md +165 -0
  1782. package/skills/session-continuity/SKILL.md +103 -0
  1783. package/skills/skill-comply/SKILL.md +58 -0
  1784. package/skills/skill-comply/fixtures/compliant_trace.jsonl +5 -0
  1785. package/skills/skill-comply/fixtures/noncompliant_trace.jsonl +3 -0
  1786. package/skills/skill-comply/fixtures/tdd_spec.yaml +44 -0
  1787. package/skills/skill-comply/prompts/classifier.md +24 -0
  1788. package/skills/skill-comply/prompts/scenario_generator.md +62 -0
  1789. package/skills/skill-comply/prompts/spec_generator.md +42 -0
  1790. package/skills/skill-comply/pyproject.toml +15 -0
  1791. package/skills/skill-comply/scripts/__init__.py +1 -0
  1792. package/skills/skill-comply/scripts/classifier.py +85 -0
  1793. package/skills/skill-comply/scripts/grader.py +122 -0
  1794. package/skills/skill-comply/scripts/parser.py +107 -0
  1795. package/skills/skill-comply/scripts/report.py +170 -0
  1796. package/skills/skill-comply/scripts/run.py +127 -0
  1797. package/skills/skill-comply/scripts/runner.py +161 -0
  1798. package/skills/skill-comply/scripts/scenario_generator.py +70 -0
  1799. package/skills/skill-comply/scripts/spec_generator.py +72 -0
  1800. package/skills/skill-comply/scripts/utils.py +13 -0
  1801. package/skills/skill-comply/tests/test_grader.py +137 -0
  1802. package/skills/skill-comply/tests/test_parser.py +90 -0
  1803. package/skills/skill-stocktake/SKILL.md +194 -0
  1804. package/skills/skill-stocktake/agents/openai.yaml +4 -0
  1805. package/skills/skill-stocktake/scripts/quick-diff.sh +87 -0
  1806. package/skills/skill-stocktake/scripts/save-results.sh +56 -0
  1807. package/skills/skill-stocktake/scripts/scan.sh +170 -0
  1808. package/skills/springboot-patterns/SKILL.md +314 -0
  1809. package/skills/springboot-security/SKILL.md +272 -0
  1810. package/skills/springboot-tdd/SKILL.md +158 -0
  1811. package/skills/springboot-verification/SKILL.md +231 -0
  1812. package/skills/strategic-compact/SKILL.md +111 -0
  1813. package/skills/strategic-compact/agents/openai.yaml +4 -0
  1814. package/skills/subagent-driven-development/SKILL.md +102 -0
  1815. package/skills/swift-actor-persistence/SKILL.md +143 -0
  1816. package/skills/swift-concurrency-6-2/SKILL.md +216 -0
  1817. package/skills/swift-protocol-di-testing/SKILL.md +190 -0
  1818. package/skills/swiftui-patterns/SKILL.md +259 -0
  1819. package/skills/systematic-debugging/SKILL.md +35 -0
  1820. package/skills/systematic-debugging/agents/openai.yaml +4 -0
  1821. package/skills/tdd-workflow/SKILL.md +463 -0
  1822. package/skills/tdd-workflow/agents/openai.yaml +4 -0
  1823. package/skills/team-builder/SKILL.md +168 -0
  1824. package/skills/testcontainers-integration-testing/SKILL.md +36 -0
  1825. package/skills/testcontainers-integration-testing/agents/openai.yaml +4 -0
  1826. package/skills/token-budget-advisor/SKILL.md +133 -0
  1827. package/skills/ui-demo/SKILL.md +465 -0
  1828. package/skills/ui-ux-promax/SKILL.md +373 -0
  1829. package/skills/verification-loop/SKILL.md +126 -0
  1830. package/skills/verification-loop/agents/openai.yaml +4 -0
  1831. package/skills/video-editing/SKILL.md +310 -0
  1832. package/skills/videodb/SKILL.md +374 -0
  1833. package/skills/videodb/reference/api-reference.md +550 -0
  1834. package/skills/videodb/reference/capture-reference.md +407 -0
  1835. package/skills/videodb/reference/capture.md +101 -0
  1836. package/skills/videodb/reference/editor.md +443 -0
  1837. package/skills/videodb/reference/generative.md +331 -0
  1838. package/skills/videodb/reference/rtstream-reference.md +564 -0
  1839. package/skills/videodb/reference/rtstream.md +65 -0
  1840. package/skills/videodb/reference/search.md +230 -0
  1841. package/skills/videodb/reference/streaming.md +406 -0
  1842. package/skills/videodb/reference/use-cases.md +118 -0
  1843. package/skills/videodb/scripts/ws_listener.py +282 -0
  1844. package/skills/visa-doc-translate/README.md +86 -0
  1845. package/skills/visa-doc-translate/SKILL.md +117 -0
  1846. package/skills/wave-execution/SKILL.md +106 -0
  1847. package/skills/workflow-forensics/SKILL.md +163 -0
  1848. package/skills/workspace-surface-audit/SKILL.md +125 -0
  1849. package/skills/x-api/SKILL.md +230 -0
  1850. package/templates/DESIGN.md +267 -0
  1851. package/templates/api-contract.md +46 -0
  1852. package/templates/backlog-snapshot.md +41 -0
  1853. package/templates/closeout-summary.md +55 -0
  1854. package/templates/context-docs/PROJECT.md +36 -0
  1855. package/templates/context-docs/REQUIREMENTS.md +36 -0
  1856. package/templates/context-docs/ROADMAP.md +20 -0
  1857. package/templates/context-docs/STATE.md +34 -0
  1858. package/templates/deployment-context.md +86 -0
  1859. package/templates/design-system-brief.md +58 -0
  1860. package/templates/launch-acceptance.md +59 -0
  1861. package/templates/release-plan.md +61 -0
  1862. package/templates/system/agent-role.md.tmpl +64 -0
  1863. package/templates/system/command.md.tmpl +26 -0
  1864. package/templates/system/role-skill.md.tmpl +65 -0
  1865. package/templates/system/specialist-agent.md.tmpl +27 -0
  1866. package/templates/ui-implementation-plan.md +35 -0
  1867. package/templates/ui-review-checklist.md +40 -0
@@ -0,0 +1,2517 @@
1
+ ## 基本介绍
2
+
3
+ `gfile` 文件管理组件提供了更加丰富的文件/目录操作能力。
4
+
5
+ **使用方式**:
6
+
7
+ ```go
8
+ import "github.com/gogf/gf/v2/os/gfile"
9
+ ```
10
+
11
+ **接口文档**:
12
+
13
+ [https://pkg.go.dev/github.com/gogf/gf/v2/os/gfile](https://pkg.go.dev/github.com/gogf/gf/v2/os/gfile)
14
+ :::tip
15
+ 以下常用方法列表,文档更新可能滞后于代码新特性,更多的方法及示例请参考代码文档: [https://pkg.go.dev/github.com/gogf/gf/v2/os/gfile](https://pkg.go.dev/github.com/gogf/gf/v2/os/gfile)
16
+ :::
17
+ ## 内容管理
18
+
19
+ ### `GetContents`
20
+
21
+ - 说明:读取指定路径文件内容,以字符串形式返回。
22
+ - 格式:
23
+
24
+ ```go
25
+ func GetContents(path string) string
26
+ ```
27
+
28
+ - 示例:
29
+
30
+ ```go
31
+ func ExampleGetContents() {
32
+ // init
33
+ var (
34
+ fileName = "gfile_example.txt"
35
+ tempDir = gfile.TempDir("gfile_example_content")
36
+ tempFile = gfile.Join(tempDir, fileName)
37
+ )
38
+
39
+ // write contents
40
+ gfile.PutContents(tempFile, "goframe example content")
41
+
42
+ // It reads and returns the file content as string.
43
+ // It returns empty string if it fails reading, for example, with permission or IO error.
44
+ fmt.Println(gfile.GetContents(tempFile))
45
+
46
+ // Output:
47
+ // goframe example content
48
+ }
49
+ ```
50
+
51
+ ### `GetContentsWithCache`
52
+
53
+ - 说明:带缓存获取文件内容,可设置缓存超时,文件发生变化自动清除缓存。
54
+ - 格式:
55
+
56
+ ```go
57
+ func GetContentsWithCache(path string, duration ...time.Duration) string
58
+ ```
59
+
60
+ - 示例:
61
+
62
+ ```go
63
+ func ExampleGetContentsWithCache() {
64
+ // init
65
+ var (
66
+ fileName = "gfile_example.txt"
67
+ tempDir = gfile.TempDir("gfile_example_cache")
68
+ tempFile = gfile.Join(tempDir, fileName)
69
+ )
70
+
71
+ // write contents
72
+ gfile.PutContents(tempFile, "goframe example content")
73
+
74
+ // It reads the file content with cache duration of one minute,
75
+ // which means it reads from cache after then without any IO operations within on minute.
76
+ fmt.Println(gfile.GetContentsWithCache(tempFile, time.Minute))
77
+
78
+ // write new contents will clear its cache
79
+ gfile.PutContents(tempFile, "new goframe example content")
80
+
81
+ // There's some delay for cache clearing after file content change.
82
+ time.Sleep(time.Second * 1)
83
+
84
+ // read contents
85
+ fmt.Println(gfile.GetContentsWithCache(tempFile))
86
+
87
+ // May Output:
88
+ // goframe example content
89
+ // new goframe example content
90
+ }
91
+ ```
92
+
93
+ ### `GetBytesWithCache`
94
+
95
+ - 说明:带缓存获取文件内容,可设置缓存超时,文件发生变化自动清除缓存,返回\[\]byte。
96
+ - 格式:
97
+
98
+ ```go
99
+ func GetBytesWithCache(path string, duration ...time.Duration) []byte
100
+ ```
101
+
102
+ - 示例:
103
+
104
+ ```go
105
+ func ExampleGetBytesWithCache() {
106
+ // init
107
+ var (
108
+ fileName = "gfile_example.txt"
109
+ tempDir = gfile.TempDir("gfile_example_cache")
110
+ tempFile = gfile.Join(tempDir, fileName)
111
+ )
112
+
113
+ // write contents
114
+ gfile.PutContents(tempFile, "goframe example content")
115
+
116
+ // It reads the file content with cache duration of one minute,
117
+ // which means it reads from cache after then without any IO operations within on minute.
118
+ fmt.Println(gfile.GetBytesWithCache(tempFile, time.Minute))
119
+
120
+ // write new contents will clear its cache
121
+ gfile.PutContents(tempFile, "new goframe example content")
122
+
123
+ // There's some delay for cache clearing after file content change.
124
+ time.Sleep(time.Second * 1)
125
+
126
+ // read contents
127
+ fmt.Println(gfile.GetBytesWithCache(tempFile))
128
+
129
+ // Output:
130
+ // [103 111 102 114 97 109 101 32 101 120 97 109 112 108 101 32 99 111 110 116 101 110 116]
131
+ // [110 101 119 32 103 111 102 114 97 109 101 32 101 120 97 109 112 108 101 32 99 111 110 116 101 110 116]
132
+ }
133
+ ```
134
+
135
+ ### `GetBytes`
136
+
137
+ - 说明:读取指定路径文件内容,以字节形式返回。
138
+ - 格式:
139
+
140
+ ```go
141
+ func GetBytes(path string) []byte
142
+ ```
143
+
144
+ - 示例:
145
+
146
+ ```go
147
+ func ExampleGetBytes() {
148
+ // init
149
+ var (
150
+ fileName = "gfile_example.txt"
151
+ tempDir = gfile.TempDir("gfile_example_content")
152
+ tempFile = gfile.Join(tempDir, fileName)
153
+ )
154
+
155
+ // write contents
156
+ gfile.PutContents(tempFile, "goframe example content")
157
+
158
+ // It reads and returns the file content as []byte.
159
+ // It returns nil if it fails reading, for example, with permission or IO error.
160
+ fmt.Println(gfile.GetBytes(tempFile))
161
+
162
+ // Output:
163
+ // [103 111 102 114 97 109 101 32 101 120 97 109 112 108 101 32 99 111 110 116 101 110 116]
164
+ }
165
+ ```
166
+
167
+ ### `GetBytesTilChar`
168
+
169
+ - 说明:以某个字符定位截取指定长度的文件内容以字节形式返回
170
+ - 格式:
171
+
172
+ ```go
173
+ func GetBytesTilChar(reader io.ReaderAt, char byte, start int64) ([]byte, int64)
174
+ ```
175
+
176
+ - 示例:
177
+
178
+ ```go
179
+ func ExampleGetBytesTilChar() {
180
+ // init
181
+ var (
182
+ fileName = "gfile_example.txt"
183
+ tempDir = gfile.TempDir("gfile_example_content")
184
+ tempFile = gfile.Join(tempDir, fileName)
185
+ )
186
+
187
+ // write contents
188
+ gfile.PutContents(tempFile, "goframe example content")
189
+
190
+ f, _ := gfile.OpenWithFlagPerm(tempFile, os.O_RDONLY, gfile.DefaultPermOpen)
191
+
192
+ // GetBytesTilChar returns the contents of the file as []byte
193
+ // until the next specified byte `char` position.
194
+ char, i := gfile.GetBytesTilChar(f, 'f', 0)
195
+ fmt.Println(char)
196
+ fmt.Println(i)
197
+
198
+ // Output:
199
+ // [103 111 102]
200
+ // 2
201
+ }
202
+ ```
203
+
204
+ ### `GetBytesByTwoOffsets`
205
+
206
+ - 说明:以指定的区间读取文件内容
207
+ - 格式:
208
+
209
+ ```go
210
+ func GetBytesByTwoOffsets(reader io.ReaderAt, start int64, end int64) []byte
211
+ ```
212
+
213
+ - 示例:
214
+
215
+ ```go
216
+ func ExampleGetBytesByTwoOffsets() {
217
+ // init
218
+ var (
219
+ fileName = "gfile_example.txt"
220
+ tempDir = gfile.TempDir("gfile_example_content")
221
+ tempFile = gfile.Join(tempDir, fileName)
222
+ )
223
+
224
+ // write contents
225
+ gfile.PutContents(tempFile, "goframe example content")
226
+
227
+ f, _ := gfile.OpenWithFlagPerm(tempFile, os.O_RDONLY, gfile.DefaultPermOpen)
228
+
229
+ // GetBytesTilChar returns the contents of the file as []byte
230
+ // until the next specified byte `char` position.
231
+ char := gfile.GetBytesByTwoOffsets(f, 0, 3)
232
+ fmt.Println(char)
233
+
234
+ // Output:
235
+ // [103 111 102]
236
+ }
237
+ ```
238
+
239
+ ### `PutContents`
240
+
241
+ - 说明:往指定路径文件添加字符串内容。如果文件不存在将会递归的形式自动创建。
242
+ - 格式:
243
+
244
+ ```go
245
+ func putContents(path string, data []byte, flag int, perm os.FileMode) error
246
+ ```
247
+
248
+ - 示例:
249
+
250
+ ```go
251
+ func ExamplePutContents() {
252
+ // init
253
+ var (
254
+ fileName = "gfile_example.txt"
255
+ tempDir = gfile.TempDir("gfile_example_content")
256
+ tempFile = gfile.Join(tempDir, fileName)
257
+ )
258
+
259
+ // It creates and puts content string into specifies file path.
260
+ // It automatically creates directory recursively if it does not exist.
261
+ gfile.PutContents(tempFile, "goframe example content")
262
+
263
+ // read contents
264
+ fmt.Println(gfile.GetContents(tempFile))
265
+
266
+ // Output:
267
+ // goframe example content
268
+ }
269
+ ```
270
+
271
+ ### `PutBytes`
272
+
273
+ - 说明:以字节形式写入指定文件,如果文件不存在将会递归的形式自动创建
274
+ - 格式:
275
+
276
+ ```go
277
+ func PutBytes(path string, content []byte) error
278
+ ```
279
+
280
+ - 示例:
281
+
282
+ ```go
283
+ func ExamplePutBytes() {
284
+ // init
285
+ var (
286
+ fileName = "gfile_example.txt"
287
+ tempDir = gfile.TempDir("gfile_example_content")
288
+ tempFile = gfile.Join(tempDir, fileName)
289
+ )
290
+
291
+ // write contents
292
+ gfile.PutBytes(tempFile, []byte("goframe example content"))
293
+
294
+ // read contents
295
+ fmt.Println(gfile.GetContents(tempFile))
296
+
297
+ // Output:
298
+ // goframe example content
299
+ }
300
+ ```
301
+
302
+ ### `PutContentsAppend`
303
+
304
+ - 说明:追加字符串内容到指定文件,如果文件不存在将会递归的形式自动创建。
305
+ - 格式:
306
+
307
+ ```go
308
+ func PutContentsAppend(path string, content string) error
309
+ ```
310
+
311
+ - 示例:
312
+
313
+ ```go
314
+ func ExamplePutContentsAppend() {
315
+ // init
316
+ var (
317
+ fileName = "gfile_example.txt"
318
+ tempDir = gfile.TempDir("gfile_example_content")
319
+ tempFile = gfile.Join(tempDir, fileName)
320
+ )
321
+
322
+ // write contents
323
+ gfile.PutContents(tempFile, "goframe example content")
324
+
325
+ // read contents
326
+ fmt.Println(gfile.GetContents(tempFile))
327
+
328
+ // It creates and append content string into specifies file path.
329
+ // It automatically creates directory recursively if it does not exist.
330
+ gfile.PutContentsAppend(tempFile, " append content")
331
+
332
+ // read contents
333
+ fmt.Println(gfile.GetContents(tempFile))
334
+
335
+ // Output:
336
+ // goframe example content
337
+ // goframe example content append content
338
+ }
339
+ ```
340
+
341
+ ### `PutBytesAppend`
342
+
343
+ - 说明:追加字节内容到指定文件。如果文件不存在将会递归的形式自动创建。
344
+ - 格式:
345
+
346
+ ```go
347
+ func PutBytesAppend(path string, content []byte) error
348
+ ```
349
+
350
+ - 示例:
351
+
352
+ ```go
353
+ func ExamplePutBytesAppend() {
354
+ // init
355
+ var (
356
+ fileName = "gfile_example.txt"
357
+ tempDir = gfile.TempDir("gfile_example_content")
358
+ tempFile = gfile.Join(tempDir, fileName)
359
+ )
360
+
361
+ // write contents
362
+ gfile.PutContents(tempFile, "goframe example content")
363
+
364
+ // read contents
365
+ fmt.Println(gfile.GetContents(tempFile))
366
+
367
+ // write contents
368
+ gfile.PutBytesAppend(tempFile, []byte(" append"))
369
+
370
+ // read contents
371
+ fmt.Println(gfile.GetContents(tempFile))
372
+
373
+ // Output:
374
+ // goframe example content
375
+ // goframe example content append
376
+ }
377
+ ```
378
+
379
+ ### `GetNextCharOffset`
380
+
381
+ - 说明:从某个偏移量开始,获取文件中指定字符所在下标
382
+ - 格式:
383
+
384
+ ```go
385
+ func GetNextCharOffset(reader io.ReaderAt, char byte, start int64) int64
386
+ ```
387
+
388
+ - 示例:
389
+
390
+ ```go
391
+ func ExampleGetNextCharOffset() {
392
+ // init
393
+ var (
394
+ fileName = "gfile_example.txt"
395
+ tempDir = gfile.TempDir("gfile_example_content")
396
+ tempFile = gfile.Join(tempDir, fileName)
397
+ )
398
+
399
+ // write contents
400
+ gfile.PutContents(tempFile, "goframe example content")
401
+
402
+ f, err := gfile.OpenWithFlagPerm(tempFile, os.O_RDONLY, DefaultPermOpen)
403
+ defer f.Close()
404
+
405
+ // read contents
406
+ index := gfile.GetNextCharOffset(f, 'f', 0)
407
+ fmt.Println(index)
408
+
409
+ // Output:
410
+ // 2
411
+ }
412
+ ```
413
+
414
+ ### `GetNextCharOffsetByPath`
415
+
416
+ - 说明:从某个偏移量开始,获取文件中指定字符所在下标
417
+ - 格式:
418
+
419
+ ```go
420
+ func GetNextCharOffsetByPath(path string, char byte, start int64) int64
421
+ ```
422
+
423
+ - 示例:
424
+
425
+ ```go
426
+ func ExampleGetNextCharOffsetByPath() {
427
+ // init
428
+ var (
429
+ fileName = "gfile_example.txt"
430
+ tempDir = gfile.TempDir("gfile_example_content")
431
+ tempFile = gfile.Join(tempDir, fileName)
432
+ )
433
+
434
+ // write contents
435
+ gfile.PutContents(tempFile, "goframe example content")
436
+
437
+ // read contents
438
+ index := gfile.GetNextCharOffsetByPath(tempFile, 'f', 0)
439
+ fmt.Println(index)
440
+
441
+ // Output:
442
+ // 2
443
+ }
444
+ ```
445
+
446
+ ### `GetBytesTilCharByPath`
447
+
448
+ - 说明:以某个字符定位截取指定长度的文件内容以字节形式返回
449
+ - 格式:
450
+
451
+ ```go
452
+ func GetBytesTilCharByPath(path string, char byte, start int64) ([]byte, int64)
453
+ ```
454
+
455
+ - 示例:
456
+
457
+ ```go
458
+ func ExampleGetBytesTilCharByPath() {
459
+ // init
460
+ var (
461
+ fileName = "gfile_example.txt"
462
+ tempDir = gfile.TempDir("gfile_example_content")
463
+ tempFile = gfile.Join(tempDir, fileName)
464
+ )
465
+
466
+ // write contents
467
+ gfile.PutContents(tempFile, "goframe example content")
468
+
469
+ // read contents
470
+ fmt.Println(gfile.GetBytesTilCharByPath(tempFile, 'f', 0))
471
+
472
+ // Output:
473
+ // [103 111 102] 2
474
+ }
475
+ ```
476
+
477
+ ### `GetBytesByTwoOffsetsByPath`
478
+
479
+ - 说明:用两个偏移量截取指定文件的内容以字节形式返回
480
+ - 格式:
481
+
482
+ ```go
483
+ func GetBytesByTwoOffsetsByPath(path string, start int64, end int64) []byte
484
+ ```
485
+
486
+ - 示例:
487
+
488
+ ```go
489
+ func ExampleGetBytesByTwoOffsetsByPath() {
490
+ // init
491
+ var (
492
+ fileName = "gfile_example.txt"
493
+ tempDir = gfile.TempDir("gfile_example_content")
494
+ tempFile = gfile.Join(tempDir, fileName)
495
+ )
496
+
497
+ // write contents
498
+ gfile.PutContents(tempFile, "goframe example content")
499
+
500
+ // read contents
501
+ fmt.Println(gfile.GetBytesByTwoOffsetsByPath(tempFile, 0, 7))
502
+
503
+ // Output:
504
+ // [103 111 102 114 97 109 101]
505
+ }
506
+ ```
507
+
508
+ ### `ReadLines`
509
+
510
+ - 说明:以字符串形式逐行读取文件内容
511
+ - 格式:
512
+
513
+ ```go
514
+ func ReadLines(file string, callback func(text string) error) error
515
+ ```
516
+
517
+ - 示例:
518
+
519
+ ```go
520
+ func ExampleReadLines() {
521
+ // init
522
+ var (
523
+ fileName = "gfile_example.txt"
524
+ tempDir = gfile.TempDir("gfile_example_content")
525
+ tempFile = gfile.Join(tempDir, fileName)
526
+ )
527
+
528
+ // write contents
529
+ gfile.PutContents(tempFile, "L1 goframe example content\nL2 goframe example content")
530
+
531
+ // read contents
532
+ gfile.ReadLines(tempFile, func(text string) error {
533
+ // Process each line
534
+ fmt.Println(text)
535
+ return nil
536
+ })
537
+
538
+ // Output:
539
+ // L1 goframe example content
540
+ // L2 goframe example content
541
+ }
542
+ ```
543
+
544
+ ### `ReadLinesBytes`
545
+
546
+ - 说明:以字节形式逐行读取文件内容
547
+ - 格式:
548
+
549
+ ```go
550
+ func ReadLinesBytes(file string, callback func(bytes []byte) error) error
551
+ ```
552
+
553
+ - 示例:
554
+
555
+ ```go
556
+ func ExampleReadLinesBytes() {
557
+ // init
558
+ var (
559
+ fileName = "gfile_example.txt"
560
+ tempDir = gfile.TempDir("gfile_example_content")
561
+ tempFile = gfile.Join(tempDir, fileName)
562
+ )
563
+
564
+ // write contents
565
+ gfile.PutContents(tempFile, "L1 goframe example content\nL2 goframe example content")
566
+
567
+ // read contents
568
+ gfile.ReadLinesBytes(tempFile, func(bytes []byte) error {
569
+ // Process each line
570
+ fmt.Println(bytes)
571
+ return nil
572
+ })
573
+
574
+ // Output:
575
+ // [76 49 32 103 111 102 114 97 109 101 32 101 120 97 109 112 108 101 32 99 111 110 116 101 110 116]
576
+ // [76 50 32 103 111 102 114 97 109 101 32 101 120 97 109 112 108 101 32 99 111 110 116 101 110 116]
577
+ }
578
+ ```
579
+
580
+ ### `Truncate`
581
+
582
+ - 说明:裁剪文件为指定大小
583
+ - 注意:如果给定文件路径是软链,将会修改源文件
584
+ - 格式:
585
+
586
+ ```go
587
+ func Truncate(path string, size int) error
588
+ ```
589
+
590
+ - 示例:
591
+
592
+ ```go
593
+ func ExampleTruncate(){
594
+ // init
595
+ var (
596
+ path = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file1")
597
+ )
598
+
599
+ // Check whether the `path` size
600
+ stat, _ := gfile.Stat(path)
601
+ fmt.Println(stat.Size())
602
+
603
+ // Truncate file
604
+ gfile.Truncate(path, 0)
605
+
606
+ // Check whether the `path` size
607
+ stat, _ = gfile.Stat(path)
608
+ fmt.Println(stat.Size())
609
+
610
+ // Output:
611
+ // 13
612
+ // 0
613
+ }
614
+ ```
615
+
616
+ ## 内容替换
617
+
618
+ ### `ReplaceFile`
619
+
620
+ - 说明:替换指定文件的指定内容为新内容
621
+ - 格式:
622
+
623
+ ```go
624
+ func ReplaceFile(search, replace, path string) error
625
+ ```
626
+
627
+ - 示例:
628
+
629
+ ```go
630
+ func ExampleReplaceFile() {
631
+ // init
632
+ var (
633
+ fileName = "gfile_example.txt"
634
+ tempDir = gfile.TempDir("gfile_example_replace")
635
+ tempFile = gfile.Join(tempDir, fileName)
636
+ )
637
+
638
+ // write contents
639
+ gfile.PutContents(tempFile, "goframe example content")
640
+
641
+ // read contents
642
+ fmt.Println(gfile.GetContents(tempFile))
643
+
644
+ // It replaces content directly by file path.
645
+ gfile.ReplaceFile("content", "replace word", tempFile)
646
+
647
+ fmt.Println(gfile.GetContents(tempFile))
648
+
649
+ // Output:
650
+ // goframe example content
651
+ // goframe example replace word
652
+ }
653
+ ```
654
+
655
+ ### `ReplaceFileFunc`
656
+
657
+ - 说明:使用自定义函数替换指定文件内容
658
+ - 格式:
659
+
660
+ ```go
661
+ func ReplaceFileFunc(f func(path, content string) string, path string) error
662
+ ```
663
+
664
+ - 示例:
665
+
666
+ ```go
667
+ func ExampleReplaceFileFunc() {
668
+ // init
669
+ var (
670
+ fileName = "gfile_example.txt"
671
+ tempDir = gfile.TempDir("gfile_example_replace")
672
+ tempFile = gfile.Join(tempDir, fileName)
673
+ )
674
+
675
+ // write contents
676
+ gfile.PutContents(tempFile, "goframe example 123")
677
+
678
+ // read contents
679
+ fmt.Println(gfile.GetContents(tempFile))
680
+
681
+ // It replaces content directly by file path and callback function.
682
+ gfile.ReplaceFileFunc(func(path, content string) string {
683
+ // Replace with regular match
684
+ reg, _ := regexp.Compile(`\d{3}`)
685
+ return reg.ReplaceAllString(content, "[num]")
686
+ }, tempFile)
687
+
688
+ fmt.Println(gfile.GetContents(tempFile))
689
+
690
+ // Output:
691
+ // goframe example 123
692
+ // goframe example [num]
693
+ }
694
+ ```
695
+
696
+ ### `ReplaceDir`
697
+
698
+ - 说明:扫描指定目录,替换符合条件的文件的指定内容为新内容
699
+ - 格式:
700
+
701
+ ```go
702
+ func ReplaceDir(search, replace, path, pattern string, recursive ...bool) error
703
+ ```
704
+
705
+ - 示例:
706
+
707
+ ```go
708
+ func ExampleReplaceDir() {
709
+ // init
710
+ var (
711
+ fileName = "gfile_example.txt"
712
+ tempDir = gfile.TempDir("gfile_example_replace")
713
+ tempFile = gfile.Join(tempDir, fileName)
714
+ )
715
+
716
+ // write contents
717
+ gfile.PutContents(tempFile, "goframe example content")
718
+
719
+ // read contents
720
+ fmt.Println(gfile.GetContents(tempFile))
721
+
722
+ // It replaces content of all files under specified directory recursively.
723
+ gfile.ReplaceDir("content", "replace word", tempDir, "gfile_example.txt", true)
724
+
725
+ // read contents
726
+ fmt.Println(gfile.GetContents(tempFile))
727
+
728
+ // Output:
729
+ // goframe example content
730
+ // goframe example replace word
731
+ }
732
+ ```
733
+
734
+ ### `ReplaceDirFunc`
735
+
736
+ - 说明:扫描指定目录,使用自定义函数替换符合条件的文件的指定内容为新内容
737
+ - 格式:
738
+
739
+ ```go
740
+ func ReplaceDirFunc(f func(path, content string) string, path, pattern string, recursive ...bool) error
741
+ ```
742
+
743
+ - 示例:
744
+
745
+ ```go
746
+ func ExampleReplaceDirFunc() {
747
+ // init
748
+ var (
749
+ fileName = "gfile_example.txt"
750
+ tempDir = gfile.TempDir("gfile_example_replace")
751
+ tempFile = gfile.Join(tempDir, fileName)
752
+ )
753
+
754
+ // write contents
755
+ gfile.PutContents(tempFile, "goframe example 123")
756
+
757
+ // read contents
758
+ fmt.Println(gfile.GetContents(tempFile))
759
+
760
+ // It replaces content of all files under specified directory with custom callback function recursively.
761
+ gfile.ReplaceDirFunc(func(path, content string) string {
762
+ // Replace with regular match
763
+ reg, _ := regexp.Compile(`\d{3}`)
764
+ return reg.ReplaceAllString(content, "[num]")
765
+ }, tempDir, "gfile_example.txt", true)
766
+
767
+ fmt.Println(gfile.GetContents(tempFile))
768
+
769
+ // Output:
770
+ // goframe example 123
771
+ // goframe example [num]
772
+
773
+ }
774
+ ```
775
+
776
+ ## 文件时间
777
+
778
+ ### `MTime`
779
+
780
+ - 说明:获取路径修改时间
781
+ - 格式:
782
+
783
+ ```go
784
+ func MTime(path string) time.Time
785
+ ```
786
+
787
+ - 示例:
788
+
789
+ ```go
790
+ func ExampleMTime() {
791
+ t := gfile.MTime(gfile.TempDir())
792
+ fmt.Println(t)
793
+
794
+ // May Output:
795
+ // 2021-11-02 15:18:43.901141 +0800 CST
796
+ }
797
+ ```
798
+
799
+ ### `MTimestamp`
800
+
801
+ - 说明:获取路径修改时间戳(秒)
802
+ - 格式:
803
+
804
+ ```go
805
+ func MTimestamp(path string) int64
806
+ ```
807
+
808
+ - 示例:
809
+
810
+ ```go
811
+ func ExampleMTimestamp() {
812
+ t := gfile.MTimestamp(gfile.TempDir())
813
+ fmt.Println(t)
814
+
815
+ // May Output:
816
+ // 1635838398
817
+ }
818
+ ```
819
+
820
+ ### `MTimestampMilli`
821
+
822
+ - 说明:获取路径修改时间戳(毫秒)
823
+ - 格式:
824
+
825
+ ```go
826
+ func MTimestampMilli(path string) int64
827
+ ```
828
+
829
+ - 示例:
830
+
831
+ ```go
832
+ func ExampleMTimestampMilli() {
833
+ t := gfile.MTimestampMilli(gfile.TempDir())
834
+ fmt.Println(t)
835
+
836
+ // May Output:
837
+ // 1635838529330
838
+ }
839
+ ```
840
+
841
+ ## 文件大小
842
+
843
+ ### `Size`
844
+
845
+ - 说明:获取路径大小,不进行格式化
846
+ - 格式:
847
+
848
+ ```go
849
+ func Size(path string) int64
850
+ ```
851
+
852
+ - 示例:
853
+
854
+ ```go
855
+ func ExampleSize() {
856
+ // init
857
+ var (
858
+ fileName = "gfile_example.txt"
859
+ tempDir = gfile.TempDir("gfile_example_size")
860
+ tempFile = gfile.Join(tempDir, fileName)
861
+ )
862
+
863
+ // write contents
864
+ gfile.PutContents(tempFile, "0123456789")
865
+ fmt.Println(gfile.Size(tempFile))
866
+
867
+ // Output:
868
+ // 10
869
+ }
870
+ ```
871
+
872
+ ### `SizeFormat`
873
+
874
+ - 说明:获取路径大小,并格式化成硬盘容量
875
+ - 格式:
876
+
877
+ ```go
878
+ func SizeFormat(path string) string
879
+ ```
880
+
881
+ - 示例:
882
+
883
+ ```go
884
+ func ExampleSizeFormat() {
885
+ // init
886
+ var (
887
+ fileName = "gfile_example.txt"
888
+ tempDir = gfile.TempDir("gfile_example_size")
889
+ tempFile = gfile.Join(tempDir, fileName)
890
+ )
891
+
892
+ // write contents
893
+ gfile.PutContents(tempFile, "0123456789")
894
+ fmt.Println(gfile.SizeFormat(tempFile))
895
+
896
+ // Output:
897
+ // 10.00B
898
+ }
899
+ ```
900
+
901
+ ### `ReadableSize`
902
+
903
+ - 说明:获取给定路径容量大小,并格式化人类易读的硬盘容量格式
904
+ - 格式:
905
+
906
+ ```go
907
+ func ReadableSize(path string) string
908
+ ```
909
+
910
+ - 示例:
911
+
912
+ ```go
913
+ func ExampleReadableSize() {
914
+ // init
915
+ var (
916
+ fileName = "gfile_example.txt"
917
+ tempDir = gfile.TempDir("gfile_example_size")
918
+ tempFile = gfile.Join(tempDir, fileName)
919
+ )
920
+
921
+ // write contents
922
+ gfile.PutContents(tempFile, "01234567899876543210")
923
+ fmt.Println(gfile.ReadableSize(tempFile))
924
+
925
+ // Output:
926
+ // 20.00B
927
+ }
928
+ ```
929
+
930
+ ### `StrToSize`
931
+
932
+ - 说明:硬盘容量大小字符串转换为大小整形
933
+ - 格式:
934
+
935
+ ```go
936
+ func StrToSize(sizeStr string) int64
937
+ ```
938
+
939
+ - 示例:
940
+
941
+ ```go
942
+ func ExampleStrToSize() {
943
+ size := gfile.StrToSize("100MB")
944
+ fmt.Println(size)
945
+
946
+ // Output:
947
+ // 104857600
948
+ }
949
+ ```
950
+
951
+ ### `FormatSize`
952
+
953
+ - 说明:大小整形转换为硬盘容量大小字符串\`K、m、g、t、p、e、b\`
954
+ - 格式:
955
+
956
+ ```go
957
+ func FormatSize(raw int64) string
958
+ ```
959
+
960
+ - 示例:
961
+
962
+ ```go
963
+ func ExampleFormatSize() {
964
+ sizeStr := gfile.FormatSize(104857600)
965
+ fmt.Println(sizeStr)
966
+ sizeStr0 := gfile.FormatSize(1024)
967
+ fmt.Println(sizeStr0)
968
+ sizeStr1 := gfile.FormatSize(999999999999999999)
969
+ fmt.Println(sizeStr1)
970
+
971
+ // Output:
972
+ // 100.00M
973
+ // 1.00K
974
+ // 888.18P
975
+ }
976
+ ```
977
+
978
+ ## 文件排序
979
+
980
+ ### `SortFiles`
981
+
982
+ - 说明:排序多个路径,按首字母进行排序,数字优先。
983
+ - 格式:
984
+
985
+ ```go
986
+ func SortFiles(files []string) []string
987
+ ```
988
+
989
+ - 示例:
990
+
991
+ ```go
992
+ func ExampleSortFiles() {
993
+ files := []string{
994
+ "/aaa/bbb/ccc.txt",
995
+ "/aaa/bbb/",
996
+ "/aaa/",
997
+ "/aaa",
998
+ "/aaa/ccc/ddd.txt",
999
+ "/bbb",
1000
+ "/0123",
1001
+ "/ddd",
1002
+ "/ccc",
1003
+ }
1004
+ sortOut := gfile.SortFiles(files)
1005
+ fmt.Println(sortOut)
1006
+
1007
+ // Output:
1008
+ // [/0123 /aaa /aaa/ /aaa/bbb/ /aaa/bbb/ccc.txt /aaa/ccc/ddd.txt /bbb /ccc /ddd]
1009
+ }
1010
+ ```
1011
+
1012
+ ## 文件检索
1013
+
1014
+ ### `Search`
1015
+
1016
+ - 说明:在指定目录(默认包含当前目录、运行目录、主函数目录;不会递归子目录)中搜索文件并返回真实路径。
1017
+ - 格式:
1018
+
1019
+ ```go
1020
+ func Search(name string, prioritySearchPaths ...string) (realPath string, err error)
1021
+ ```
1022
+
1023
+ - 示例:
1024
+
1025
+ ```go
1026
+ func ExampleSearch() {
1027
+ // init
1028
+ var (
1029
+ fileName = "gfile_example.txt"
1030
+ tempDir = gfile.TempDir("gfile_example_search")
1031
+ tempFile = gfile.Join(tempDir, fileName)
1032
+ )
1033
+
1034
+ // write contents
1035
+ gfile.PutContents(tempFile, "goframe example content")
1036
+
1037
+ // search file
1038
+ realPath, _ := gfile.Search(fileName, tempDir)
1039
+ fmt.Println(gfile.Basename(realPath))
1040
+
1041
+ // Output:
1042
+ // gfile_example.txt
1043
+ }
1044
+ ```
1045
+
1046
+ ## 目录扫描
1047
+
1048
+ ### `ScanDir`
1049
+
1050
+ - 说明:扫描指定目录,可扫描文件或目录,支持递归扫描。
1051
+ - 格式:
1052
+
1053
+ ```go
1054
+ func ScanDir(path string, pattern string, recursive ...bool) ([]string, error)
1055
+ ```
1056
+
1057
+ - 示例:
1058
+
1059
+ ```go
1060
+ func ExampleScanDir() {
1061
+ // init
1062
+ var (
1063
+ fileName = "gfile_example.txt"
1064
+ tempDir = gfile.TempDir("gfile_example_scan_dir")
1065
+ tempFile = gfile.Join(tempDir, fileName)
1066
+
1067
+ tempSubDir = gfile.Join(tempDir, "sub_dir")
1068
+ tempSubFile = gfile.Join(tempSubDir, fileName)
1069
+ )
1070
+
1071
+ // write contents
1072
+ gfile.PutContents(tempFile, "goframe example content")
1073
+ gfile.PutContents(tempSubFile, "goframe example content")
1074
+
1075
+ // scans directory recursively
1076
+ list, _ := gfile.ScanDir(tempDir, "*", true)
1077
+ for _, v := range list {
1078
+ fmt.Println(gfile.Basename(v))
1079
+ }
1080
+
1081
+ // Output:
1082
+ // gfile_example.txt
1083
+ // sub_dir
1084
+ // gfile_example.txt
1085
+ }
1086
+ ```
1087
+
1088
+ ### `ScanDirFile`
1089
+
1090
+ - 说明:扫描指定目录的文件,支持递归扫描
1091
+ - 格式:
1092
+
1093
+ ```go
1094
+ func ScanDirFile(path string, pattern string, recursive ...bool) ([]string, error)
1095
+ ```
1096
+
1097
+ - 示例:
1098
+
1099
+ ```go
1100
+ func ExampleScanDirFile() {
1101
+ // init
1102
+ var (
1103
+ fileName = "gfile_example.txt"
1104
+ tempDir = gfile.TempDir("gfile_example_scan_dir_file")
1105
+ tempFile = gfile.Join(tempDir, fileName)
1106
+
1107
+ tempSubDir = gfile.Join(tempDir, "sub_dir")
1108
+ tempSubFile = gfile.Join(tempSubDir, fileName)
1109
+ )
1110
+
1111
+ // write contents
1112
+ gfile.PutContents(tempFile, "goframe example content")
1113
+ gfile.PutContents(tempSubFile, "goframe example content")
1114
+
1115
+ // scans directory recursively exclusive of directories
1116
+ list, _ := gfile.ScanDirFile(tempDir, "*.txt", true)
1117
+ for _, v := range list {
1118
+ fmt.Println(gfile.Basename(v))
1119
+ }
1120
+
1121
+ // Output:
1122
+ // gfile_example.txt
1123
+ // gfile_example.txt
1124
+ }
1125
+ ```
1126
+
1127
+ ### `ScanDirFunc`
1128
+
1129
+ - 说明:扫描指定目录(自定义过滤方法),可扫描文件或目录,支持递归扫描
1130
+ - 格式:
1131
+
1132
+ ```go
1133
+ func ScanDirFunc(path string, pattern string, recursive bool, handler func(path string) string) ([]string, error)
1134
+ ```
1135
+
1136
+ - 示例:
1137
+
1138
+ ```go
1139
+ func ExampleScanDirFunc() {
1140
+ // init
1141
+ var (
1142
+ fileName = "gfile_example.txt"
1143
+ tempDir = gfile.TempDir("gfile_example_scan_dir_func")
1144
+ tempFile = gfile.Join(tempDir, fileName)
1145
+
1146
+ tempSubDir = gfile.Join(tempDir, "sub_dir")
1147
+ tempSubFile = gfile.Join(tempSubDir, fileName)
1148
+ )
1149
+
1150
+ // write contents
1151
+ gfile.PutContents(tempFile, "goframe example content")
1152
+ gfile.PutContents(tempSubFile, "goframe example content")
1153
+
1154
+ // scans directory recursively
1155
+ list, _ := gfile.ScanDirFunc(tempDir, "*", true, func(path string) string {
1156
+ // ignores some files
1157
+ if gfile.Basename(path) == "gfile_example.txt" {
1158
+ return ""
1159
+ }
1160
+ return path
1161
+ })
1162
+ for _, v := range list {
1163
+ fmt.Println(gfile.Basename(v))
1164
+ }
1165
+
1166
+ // Output:
1167
+ // sub_dir
1168
+ }
1169
+ ```
1170
+
1171
+ ### `ScanDirFileFunc`
1172
+
1173
+ - 说明:扫描指定目录的文件(自定义过滤方法),支持递归扫描。
1174
+ - 格式:
1175
+
1176
+ ```go
1177
+ func ScanDirFileFunc(path string, pattern string, recursive bool, handler func(path string) string) ([]string, error)
1178
+ ```
1179
+
1180
+ - 示例:
1181
+
1182
+ ```go
1183
+ func ExampleScanDirFileFunc() {
1184
+ // init
1185
+ var (
1186
+ fileName = "gfile_example.txt"
1187
+ tempDir = gfile.TempDir("gfile_example_scan_dir_file_func")
1188
+ tempFile = gfile.Join(tempDir, fileName)
1189
+
1190
+ fileName1 = "gfile_example_ignores.txt"
1191
+ tempFile1 = gfile.Join(tempDir, fileName1)
1192
+
1193
+ tempSubDir = gfile.Join(tempDir, "sub_dir")
1194
+ tempSubFile = gfile.Join(tempSubDir, fileName)
1195
+ )
1196
+
1197
+ // write contents
1198
+ gfile.PutContents(tempFile, "goframe example content")
1199
+ gfile.PutContents(tempFile1, "goframe example content")
1200
+ gfile.PutContents(tempSubFile, "goframe example content")
1201
+
1202
+ // scans directory recursively exclusive of directories
1203
+ list, _ := gfile.ScanDirFileFunc(tempDir, "*.txt", true, func(path string) string {
1204
+ // ignores some files
1205
+ if gfile.Basename(path) == "gfile_example_ignores.txt" {
1206
+ return ""
1207
+ }
1208
+ return path
1209
+ })
1210
+ for _, v := range list {
1211
+ fmt.Println(gfile.Basename(v))
1212
+ }
1213
+
1214
+ // Output:
1215
+ // gfile_example.txt
1216
+ // gfile_example.txt
1217
+ }
1218
+ ```
1219
+
1220
+ ## 常用目录
1221
+
1222
+ ### `Pwd`
1223
+
1224
+ - 说明:获取当前工作路径。
1225
+ - 格式:
1226
+
1227
+ ```go
1228
+ func Pwd() string
1229
+ ```
1230
+
1231
+ - 示例:
1232
+
1233
+ ```go
1234
+ func ExamplePwd() {
1235
+ // Get absolute path of current working directory.
1236
+ fmt.Println(gfile.Pwd())
1237
+
1238
+ // May Output:
1239
+ // xxx/gf/os/gfile
1240
+ }
1241
+ ```
1242
+
1243
+ ### `Home`
1244
+
1245
+ - 说明:获取运行用户的主目录
1246
+ - 格式:
1247
+
1248
+ ```go
1249
+ func Home(names ...string) (string, error)
1250
+ ```
1251
+
1252
+ - 示例:
1253
+
1254
+ ```go
1255
+ func ExampleHome() {
1256
+ // user's home directory
1257
+ homePath, _ := gfile.Home()
1258
+ fmt.Println(homePath)
1259
+
1260
+ // May Output:
1261
+ // C:\Users\hailaz
1262
+ }
1263
+ ```
1264
+
1265
+ ### `Temp`
1266
+
1267
+ - 说明:获取拼接系统临时路径后的绝对地址。
1268
+
1269
+ - 格式:
1270
+
1271
+ ```go
1272
+ func Temp(names ...string) string
1273
+ ```
1274
+
1275
+ - 示例:
1276
+
1277
+ ```go
1278
+ func ExampleTempDir() {
1279
+ // init
1280
+ var (
1281
+ fileName = "gfile_example_basic_dir"
1282
+ )
1283
+
1284
+ // fetch an absolute representation of path.
1285
+ path := gfile.Temp(fileName)
1286
+
1287
+ fmt.Println(path)
1288
+
1289
+ // Output:
1290
+ // /tmp/gfile_example_basic_dir
1291
+ }
1292
+ ```
1293
+
1294
+ ### `SelfPath`
1295
+
1296
+ - 说明:获取当前运行程序的绝对路径。
1297
+
1298
+ - 格式:
1299
+
1300
+ ```go
1301
+ func SelfPath() string
1302
+ ```
1303
+
1304
+ - 示例:
1305
+
1306
+ ```go
1307
+ func ExampleSelfPath() {
1308
+
1309
+ // Get absolute file path of current running process
1310
+ fmt.Println(gfile.SelfPath())
1311
+
1312
+ // May Output:
1313
+ // xxx/___github_com_gogf_gf_v2_os_gfile__ExampleSelfPath
1314
+ }
1315
+ ```
1316
+
1317
+ ## 类型判断
1318
+
1319
+ ### `IsDir`
1320
+
1321
+ - 说明:检查给定的路径是否是文件夹。
1322
+ - 格式:
1323
+
1324
+ ```go
1325
+ func IsDir(path string) bool
1326
+ ```
1327
+
1328
+ - 示例:
1329
+
1330
+ ```go
1331
+ func ExampleIsDir() {
1332
+ // init
1333
+ var (
1334
+ path = gfile.TempDir("gfile_example_basic_dir")
1335
+ filePath = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file1")
1336
+ )
1337
+ // Checks whether given `path` a directory.
1338
+ fmt.Println(gfile.IsDir(path))
1339
+ fmt.Println(gfile.IsDir(filePath))
1340
+
1341
+ // Output:
1342
+ // true
1343
+ // false
1344
+ }
1345
+ ```
1346
+
1347
+ ### `IsFile`
1348
+
1349
+ - 说明:检查给定的路径是否是文件。
1350
+ - 格式:
1351
+
1352
+ ```go
1353
+ func IsFile(path string) bool
1354
+ ```
1355
+
1356
+ - 示例:
1357
+
1358
+ ```go
1359
+ func ExampleIsFile() {
1360
+ // init
1361
+ var (
1362
+ filePath = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file1")
1363
+ dirPath = gfile.TempDir("gfile_example_basic_dir")
1364
+ )
1365
+ // Checks whether given `path` a file, which means it's not a directory.
1366
+ fmt.Println(gfile.IsFile(filePath))
1367
+ fmt.Println(gfile.IsFile(dirPath))
1368
+
1369
+ // Output:
1370
+ // true
1371
+ // false
1372
+ }
1373
+ ```
1374
+
1375
+ ## 权限操作
1376
+
1377
+ ### `IsReadable`
1378
+
1379
+ - 说明:检查给定的路径是否可读。
1380
+
1381
+ - 格式:
1382
+
1383
+ ```go
1384
+ func IsReadable(path string) bool
1385
+ ```
1386
+
1387
+ - 示例:
1388
+
1389
+ ```go
1390
+ func ExampleIsReadable() {
1391
+ // init
1392
+ var (
1393
+ path = gfile.Pwd() + gfile.Separator + "testdata/readline/file.log"
1394
+ )
1395
+
1396
+ // Checks whether given `path` is readable.
1397
+ fmt.Println(gfile.IsReadable(path))
1398
+
1399
+ // Output:
1400
+ // true
1401
+ }
1402
+ ```
1403
+
1404
+ ### `IsWritable`
1405
+
1406
+ - 说明:检查指定路径是否可写,如果路径是目录,则会创建临时文件检查是否可写,如果是文件则判断是否可以打开
1407
+
1408
+ - 格式:
1409
+
1410
+ ```go
1411
+ func IsWritable(path string) bool
1412
+ ```
1413
+
1414
+ - 示例:
1415
+
1416
+ ```go
1417
+ func ExampleIsWritable() {
1418
+ // init
1419
+ var (
1420
+ path = gfile.Pwd() + gfile.Separator + "testdata/readline/file.log"
1421
+ )
1422
+
1423
+ // Checks whether given `path` is writable.
1424
+ fmt.Println(gfile.IsWritable(path))
1425
+
1426
+ // Output:
1427
+ // true
1428
+ }
1429
+ ```
1430
+
1431
+ ### `Chmod`
1432
+
1433
+ - 说明:使用指定的权限,更改指定路径的文件权限。
1434
+
1435
+ - 格式:
1436
+
1437
+ ```go
1438
+ func Chmod(path string, mode os.FileMode) error
1439
+ ```
1440
+
1441
+ - 示例:
1442
+
1443
+ ```go
1444
+ func ExampleChmod() {
1445
+ // init
1446
+ var (
1447
+ path = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file1")
1448
+ )
1449
+
1450
+ // Get a FileInfo describing the named file.
1451
+ stat, err := gfile.Stat(path)
1452
+ if err != nil {
1453
+ fmt.Println(err.Error())
1454
+ }
1455
+ // Show original mode
1456
+ fmt.Println(stat.Mode())
1457
+
1458
+ // Change file model
1459
+ gfile.Chmod(path, gfile.DefaultPermCopy)
1460
+
1461
+ // Get a FileInfo describing the named file.
1462
+ stat, _ = gfile.Stat(path)
1463
+ // Show the modified mode
1464
+ fmt.Println(stat.Mode())
1465
+
1466
+ // Output:
1467
+ // -rw-r--r--
1468
+ // -rwxrwxrwx
1469
+ }
1470
+ ```
1471
+
1472
+ ## 文件/目录操作
1473
+
1474
+ ### `Mkdir`
1475
+
1476
+ - 说明:创建文件夹,支持递归创建(建议采用绝对路径),创建后的文件夹权限为: `drwxr-xr-x`。
1477
+ - 格式:
1478
+
1479
+ ```go
1480
+ func Mkdir(path string) error
1481
+ ```
1482
+
1483
+ - 示例:
1484
+
1485
+ ```go
1486
+ func ExampleMkdir() {
1487
+ // init
1488
+ var (
1489
+ path = gfile.TempDir("gfile_example_basic_dir")
1490
+ )
1491
+
1492
+ // Creates directory
1493
+ gfile.Mkdir(path)
1494
+
1495
+ // Check if directory exists
1496
+ fmt.Println(gfile.IsDir(path))
1497
+
1498
+ // Output:
1499
+ // true
1500
+ }
1501
+ ```
1502
+
1503
+ ### `Create`
1504
+
1505
+ - 说明:创建文件/文件夹,如果传入的路径中的文件夹不存在,则会自动创建文件夹以及文件,其中创建的文件权限为 `-rw-r–r–`。
1506
+ - 注意:如果需要创建文件的已存在,则会清空该文件的内容!
1507
+ - 格式:
1508
+
1509
+ ```go
1510
+ func Create(path string) (*os.File, error)
1511
+ ```
1512
+
1513
+ - 示例:
1514
+
1515
+ ```go
1516
+ func ExampleCreate() {
1517
+ // init
1518
+ var (
1519
+ path = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file1")
1520
+ dataByte = make([]byte, 50)
1521
+ )
1522
+ // Check whether the file exists
1523
+ isFile := gfile.IsFile(path)
1524
+
1525
+ fmt.Println(isFile)
1526
+
1527
+ // Creates file with given `path` recursively
1528
+ fileHandle, _ := gfile.Create(path)
1529
+ defer fileHandle.Close()
1530
+
1531
+ // Write some content to file
1532
+ n, _ := fileHandle.WriteString("hello goframe")
1533
+
1534
+ // Check whether the file exists
1535
+ isFile = gfile.IsFile(path)
1536
+
1537
+ fmt.Println(isFile)
1538
+
1539
+ // Reset file uintptr
1540
+ unix.Seek(int(fileHandle.Fd()), 0, 0)
1541
+ // Reads len(b) bytes from the File
1542
+ fileHandle.Read(dataByte)
1543
+
1544
+ fmt.Println(string(dataByte[:n]))
1545
+
1546
+ // Output:
1547
+ // false
1548
+ // true
1549
+ // hello goframe
1550
+ }
1551
+ ```
1552
+
1553
+ ### `Open`
1554
+
1555
+ - 说明:以只读的方式打开文件/文件夹。
1556
+ - 格式:
1557
+
1558
+ ```go
1559
+ func Open(path string) (*os.File, error)
1560
+ ```
1561
+
1562
+ - 示例:
1563
+
1564
+ ```go
1565
+ func ExampleOpen() {
1566
+ // init
1567
+ var (
1568
+ path = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file1")
1569
+ dataByte = make([]byte, 4096)
1570
+ )
1571
+ // Open file or directory with READONLY model
1572
+ file, _ := gfile.Open(path)
1573
+ defer file.Close()
1574
+
1575
+ // Read data
1576
+ n, _ := file.Read(dataByte)
1577
+
1578
+ fmt.Println(string(dataByte[:n]))
1579
+
1580
+ // Output:
1581
+ // hello goframe
1582
+ }
1583
+ ```
1584
+
1585
+ ### `OpenFile`
1586
+
1587
+ - 说明:以指定\`flag\`以及\`perm\`的方式打开文件/文件夹。
1588
+ - 格式:
1589
+
1590
+ ```go
1591
+ func OpenFile(path string, flag int, perm os.FileMode) (*os.File, error)
1592
+ ```
1593
+
1594
+ - 示例:
1595
+
1596
+ ```go
1597
+ func ExampleOpenFile() {
1598
+ // init
1599
+ var (
1600
+ path = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file1")
1601
+ dataByte = make([]byte, 4096)
1602
+ )
1603
+ // Opens file/directory with custom `flag` and `perm`
1604
+ // Create if file does not exist,it is created in a readable and writable mode,prem 0777
1605
+ openFile, _ := gfile.OpenFile(path, os.O_CREATE|os.O_RDWR, gfile.DefaultPermCopy)
1606
+ defer openFile.Close()
1607
+
1608
+ // Write some content to file
1609
+ writeLength, _ := openFile.WriteString("hello goframe test open file")
1610
+
1611
+ fmt.Println(writeLength)
1612
+
1613
+ // Read data
1614
+ unix.Seek(int(openFile.Fd()), 0, 0)
1615
+ n, _ := openFile.Read(dataByte)
1616
+
1617
+ fmt.Println(string(dataByte[:n]))
1618
+
1619
+ // Output:
1620
+ // 28
1621
+ // hello goframe test open file
1622
+ }
1623
+ ```
1624
+
1625
+ ### `OpenWithFalg`
1626
+
1627
+ - 说明:以指定\`flag\`的方式打开文件/文件夹。
1628
+ - 格式:
1629
+
1630
+ ```go
1631
+ func OpenWithFlag(path string, flag int) (*os.File, error)
1632
+ ```
1633
+
1634
+ - 示例:
1635
+
1636
+ ```go
1637
+ func ExampleOpenWithFlag() {
1638
+ // init
1639
+ var (
1640
+ path = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file1")
1641
+ dataByte = make([]byte, 4096)
1642
+ )
1643
+
1644
+ // Opens file/directory with custom `flag`
1645
+ // Create if file does not exist,it is created in a readable and writable mode with default `perm` is 0666
1646
+ openFile, _ := gfile.OpenWithFlag(path, os.O_CREATE|os.O_RDWR)
1647
+ defer openFile.Close()
1648
+
1649
+ // Write some content to file
1650
+ writeLength, _ := openFile.WriteString("hello goframe test open file with flag")
1651
+
1652
+ fmt.Println(writeLength)
1653
+
1654
+ // Read data
1655
+ unix.Seek(int(openFile.Fd()), 0, 0)
1656
+ n, _ := openFile.Read(dataByte)
1657
+
1658
+ fmt.Println(string(dataByte[:n]))
1659
+
1660
+ // Output:
1661
+ // 38
1662
+ // hello goframe test open file with flag
1663
+ }
1664
+ ```
1665
+
1666
+ ### `OpenWithFalgPerm`
1667
+
1668
+ - 说明:以指定\`flag\`以及\`perm\`的方式打开文件/文件夹。
1669
+ - 格式:
1670
+
1671
+ ```go
1672
+ func OpenWithFlagPerm(path string, flag int, perm os.FileMode) (*os.File, error)
1673
+ ```
1674
+
1675
+ - 示例:
1676
+
1677
+ ```go
1678
+ func ExampleOpenWithFlagPerm() {
1679
+ // init
1680
+ var (
1681
+ path = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file1")
1682
+ dataByte = make([]byte, 4096)
1683
+ )
1684
+
1685
+ // Opens file/directory with custom `flag` and `perm`
1686
+ // Create if file does not exist,it is created in a readable and writable mode with `perm` is 0777
1687
+ openFile, _ := gfile.OpenWithFlagPerm(path, os.O_CREATE|os.O_RDWR, gfile.DefaultPermCopy)
1688
+ defer openFile.Close()
1689
+
1690
+ // Write some content to file
1691
+ writeLength, _ := openFile.WriteString("hello goframe test open file with flag and perm")
1692
+
1693
+ fmt.Println(writeLength)
1694
+
1695
+ // Read data
1696
+ unix.Seek(int(openFile.Fd()), 0, 0)
1697
+ n, _ := openFile.Read(dataByte)
1698
+
1699
+ fmt.Println(string(dataByte[:n]))
1700
+
1701
+ // Output:
1702
+ // 38
1703
+ // hello goframe test open file with flag
1704
+ }
1705
+ ```
1706
+
1707
+ ### `Stat`
1708
+
1709
+ - 说明:获取给定路径的文件详情。
1710
+ - 格式:
1711
+
1712
+ ```go
1713
+ func Stat(path string) (os.FileInfo, error)
1714
+ ```
1715
+
1716
+ - 示例:
1717
+
1718
+ ```go
1719
+ func ExampleStat() {
1720
+ // init
1721
+ var (
1722
+ path = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file1")
1723
+ )
1724
+ // Get a FileInfo describing the named file.
1725
+ stat, _ := gfile.Stat(path)
1726
+
1727
+ fmt.Println(stat.Name())
1728
+ fmt.Println(stat.IsDir())
1729
+ fmt.Println(stat.Mode())
1730
+ fmt.Println(stat.ModTime())
1731
+ fmt.Println(stat.Size())
1732
+ fmt.Println(stat.Sys())
1733
+
1734
+ // May Output:
1735
+ // file1
1736
+ // false
1737
+ // -rwxr-xr-x
1738
+ // 2021-12-02 11:01:27.261441694 +0800 CST
1739
+ // &{16777220 33261 1 8597857090 501 20 0 [0 0 0 0] {1638414088 192363490} {1638414087 261441694} {1638414087 261441694} {1638413480 485068275} 38 8 4096 0 0 0 [0 0]}
1740
+ }
1741
+ ```
1742
+
1743
+ ### `Copy`
1744
+
1745
+ - 说明:支持复制文件或目录
1746
+ - 格式:
1747
+
1748
+ ```go
1749
+ func Copy(src string, dst string) error
1750
+ ```
1751
+
1752
+ - 示例:
1753
+
1754
+ ```go
1755
+ func ExampleCopy() {
1756
+ // init
1757
+ var (
1758
+ srcFileName = "gfile_example.txt"
1759
+ srcTempDir = gfile.TempDir("gfile_example_copy_src")
1760
+ srcTempFile = gfile.Join(srcTempDir, srcFileName)
1761
+
1762
+ // copy file
1763
+ dstFileName = "gfile_example_copy.txt"
1764
+ dstTempFile = gfile.Join(srcTempDir, dstFileName)
1765
+
1766
+ // copy dir
1767
+ dstTempDir = gfile.TempDir("gfile_example_copy_dst")
1768
+ )
1769
+
1770
+ // write contents
1771
+ gfile.PutContents(srcTempFile, "goframe example copy")
1772
+
1773
+ // copy file
1774
+ gfile.Copy(srcTempFile, dstTempFile)
1775
+
1776
+ // read contents after copy file
1777
+ fmt.Println(gfile.GetContents(dstTempFile))
1778
+
1779
+ // copy dir
1780
+ gfile.Copy(srcTempDir, dstTempDir)
1781
+
1782
+ // list copy dir file
1783
+ fList, _ := gfile.ScanDir(dstTempDir, "*", false)
1784
+ for _, v := range fList {
1785
+ fmt.Println(gfile.Basename(v))
1786
+ }
1787
+
1788
+ // Output:
1789
+ // goframe example copy
1790
+ // gfile_example.txt
1791
+ // gfile_example_copy.txt
1792
+ }
1793
+ ```
1794
+
1795
+ ### `CopyFile`
1796
+
1797
+ - 说明:复制文件
1798
+ - 格式:
1799
+
1800
+ ```go
1801
+ func CopyFile(src, dst string) (err error)
1802
+ ```
1803
+
1804
+ - 示例:
1805
+
1806
+ ```go
1807
+ func ExampleCopyFile() {
1808
+ // init
1809
+ var (
1810
+ srcFileName = "gfile_example.txt"
1811
+ srcTempDir = gfile.TempDir("gfile_example_copy_src")
1812
+ srcTempFile = gfile.Join(srcTempDir, srcFileName)
1813
+
1814
+ // copy file
1815
+ dstFileName = "gfile_example_copy.txt"
1816
+ dstTempFile = gfile.Join(srcTempDir, dstFileName)
1817
+ )
1818
+
1819
+ // write contents
1820
+ gfile.PutContents(srcTempFile, "goframe example copy")
1821
+
1822
+ // copy file
1823
+ gfile.CopyFile(srcTempFile, dstTempFile)
1824
+
1825
+ // read contents after copy file
1826
+ fmt.Println(gfile.GetContents(dstTempFile))
1827
+
1828
+ // Output:
1829
+ // goframe example copy
1830
+ }
1831
+ ```
1832
+
1833
+ ### `CopyDir`
1834
+
1835
+ - 说明:支持复制文件或目录
1836
+ - 格式:
1837
+
1838
+ ```go
1839
+ func CopyDir(src string, dst string) error
1840
+ ```
1841
+
1842
+ - 示例:
1843
+
1844
+ ```go
1845
+ func ExampleCopyDir() {
1846
+ // init
1847
+ var (
1848
+ srcTempDir = gfile.TempDir("gfile_example_copy_src")
1849
+
1850
+ // copy file
1851
+ dstFileName = "gfile_example_copy.txt"
1852
+ dstTempFile = gfile.Join(srcTempDir, dstFileName)
1853
+
1854
+ // copy dir
1855
+ dstTempDir = gfile.TempDir("gfile_example_copy_dst")
1856
+ )
1857
+ // read contents after copy file
1858
+ fmt.Println(gfile.GetContents(dstTempFile))
1859
+
1860
+ // copy dir
1861
+ gfile.CopyDir(srcTempDir, dstTempDir)
1862
+
1863
+ // list copy dir file
1864
+ fList, _ := gfile.ScanDir(dstTempDir, "*", false)
1865
+ for _, v := range fList {
1866
+ fmt.Println(gfile.Basename(v))
1867
+ }
1868
+
1869
+ // Output:
1870
+ // gfile_example.txt
1871
+ // gfile_example_copy.txt
1872
+ }
1873
+ ```
1874
+
1875
+ ### `Move`
1876
+
1877
+ - 说明:将 `src` 重命名为 `dst`。
1878
+
1879
+ - 注意:如果 `dst` 已经存在并且是文件,将会被替换造成数据丢失!
1880
+ - 格式:
1881
+
1882
+ ```go
1883
+ func Move(src string, dst string) error
1884
+ ```
1885
+
1886
+ - 示例:
1887
+
1888
+ ```go
1889
+ func ExampleMove() {
1890
+ // init
1891
+ var (
1892
+ srcPath = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file1")
1893
+ dstPath = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file2")
1894
+ )
1895
+ // Check is file
1896
+ fmt.Println(gfile.IsFile(dstPath))
1897
+
1898
+ // Moves `src` to `dst` path.
1899
+ // If `dst` already exists and is not a directory, it'll be replaced.
1900
+ gfile.Move(srcPath, dstPath)
1901
+
1902
+ fmt.Println(gfile.IsFile(srcPath))
1903
+ fmt.Println(gfile.IsFile(dstPath))
1904
+
1905
+ // Output:
1906
+ // false
1907
+ // false
1908
+ // true
1909
+ }
1910
+ ```
1911
+
1912
+ ### `Rename`
1913
+
1914
+ - 说明: `Move` 的别名,将 `src` 重命名为 `dst`。
1915
+
1916
+ - 注意:如果 `dst` 已经存在并且是文件,将会被替换造成数据丢失!
1917
+ - 格式:
1918
+
1919
+ ```go
1920
+ func Rename(src string, dst string) error
1921
+ ```
1922
+
1923
+ - 示例:
1924
+
1925
+ ```go
1926
+ func ExampleRename() {
1927
+ // init
1928
+ var (
1929
+ srcPath = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file2")
1930
+ dstPath = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file1")
1931
+ )
1932
+ // Check is file
1933
+ fmt.Println(gfile.IsFile(dstPath))
1934
+
1935
+ // renames (moves) `src` to `dst` path.
1936
+ // If `dst` already exists and is not a directory, it'll be replaced.
1937
+ gfile.Rename(srcPath, dstPath)
1938
+
1939
+ fmt.Println(gfile.IsFile(srcPath))
1940
+ fmt.Println(gfile.IsFile(dstPath))
1941
+
1942
+ // Output:
1943
+ // false
1944
+ // false
1945
+ // true
1946
+ }
1947
+ ```
1948
+
1949
+ ### `Remove`
1950
+
1951
+ - 说明:删除给定路径的文件或文件夹。
1952
+
1953
+ - 格式:
1954
+
1955
+ ```go
1956
+ func Remove(path string) error
1957
+ ```
1958
+
1959
+ - 示例:
1960
+
1961
+ ```go
1962
+ func ExampleRemove() {
1963
+ // init
1964
+ var (
1965
+ path = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file1")
1966
+ )
1967
+
1968
+ // Checks whether given `path` a file, which means it's not a directory.
1969
+ fmt.Println(gfile.IsFile(path))
1970
+
1971
+ // deletes all file/directory with `path` parameter.
1972
+ gfile.Remove(path)
1973
+
1974
+ // Check again
1975
+ fmt.Println(gfile.IsFile(path))
1976
+
1977
+ // Output:
1978
+ // true
1979
+ // false
1980
+ }
1981
+ ```
1982
+
1983
+ ### `IsEmpty`
1984
+
1985
+ - 说明:检查给定的路径,如果是文件夹则检查是否包含文件,如果是文件则检查文件大小是否为空。
1986
+
1987
+ - 格式:
1988
+
1989
+ ```go
1990
+ func IsEmpty(path string) bool
1991
+ ```
1992
+
1993
+ - 示例:
1994
+
1995
+ ```go
1996
+ func ExampleIsEmpty() {
1997
+ // init
1998
+ var (
1999
+ path = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file1")
2000
+ )
2001
+
2002
+ // Check whether the `path` is empty
2003
+ fmt.Println(gfile.IsEmpty(path))
2004
+
2005
+ // Truncate file
2006
+ gfile.Truncate(path, 0)
2007
+
2008
+ // Check whether the `path` is empty
2009
+ fmt.Println(gfile.IsEmpty(path))
2010
+
2011
+ // Output:
2012
+ // false
2013
+ // true
2014
+ }
2015
+ ```
2016
+
2017
+ ### `DirNames`
2018
+
2019
+ - 说明:获取给定路径下的文件列表,返回的是一个切片。
2020
+
2021
+ - 格式:
2022
+
2023
+ ```go
2024
+ func DirNames(path string) ([]string, error)
2025
+ ```
2026
+
2027
+ - 示例:
2028
+
2029
+ ```go
2030
+ func ExampleDirNames() {
2031
+ // init
2032
+ var (
2033
+ path = gfile.TempDir("gfile_example_basic_dir")
2034
+ )
2035
+ // Get sub-file names of given directory `path`.
2036
+ dirNames, _ := gfile.DirNames(path)
2037
+
2038
+ fmt.Println(dirNames)
2039
+
2040
+ // May Output:
2041
+ // [file1]
2042
+ }
2043
+ ```
2044
+
2045
+ ### `Glob`
2046
+
2047
+ - 说明:模糊搜索给定路径下的文件列表,支持正则,第二个参数控制返回的结果是否带上绝对路径。
2048
+
2049
+ - 格式:
2050
+
2051
+ ```go
2052
+ func Glob(pattern string, onlyNames ...bool) ([]string, error)
2053
+ ```
2054
+
2055
+ - 示例:
2056
+
2057
+ ```go
2058
+ func ExampleGlob() {
2059
+ // init
2060
+ var (
2061
+ path = gfile.Pwd() + gfile.Separator + "*_example_basic_test.go"
2062
+ )
2063
+ // Get sub-file names of given directory `path`.
2064
+ // Only show file name
2065
+ matchNames, _ := gfile.Glob(path, true)
2066
+
2067
+ fmt.Println(matchNames)
2068
+
2069
+ // Show full path of the file
2070
+ matchNames, _ = gfile.Glob(path, false)
2071
+
2072
+ fmt.Println(matchNames)
2073
+
2074
+ // May Output:
2075
+ // [gfile_z_example_basic_test.go]
2076
+ // [xxx/gf/os/gfile/gfile_z_example_basic_test.go]
2077
+ }
2078
+ ```
2079
+
2080
+ ### `MatchGlob`
2081
+
2082
+ :::tip
2083
+ 版本要求:`v2.10.0`
2084
+ :::
2085
+
2086
+ - 说明:`MatchGlob` 方法用于判断给定的文件名是否匹配指定的`shell`模式。它扩展了标准库的 `filepath.Match` 功能,支持 `**`(`globstar`)通配符模式,类似于`bash`的`globstar`和 `gitignore`的模式规则。
2087
+
2088
+ - 格式:
2089
+
2090
+ ```go
2091
+ func MatchGlob(pattern, name string) (bool, error)
2092
+ ```
2093
+
2094
+ - 参数说明:
2095
+ - `pattern`:匹配模式字符串,支持通配符。
2096
+ - `name`:要匹配的文件名或路径。
2097
+ - 返回值:第一个返回值表示是否匹配,第二个返回值表示可能的错误(例如模式格式错误)。
2098
+
2099
+ - 模式语法:
2100
+ - `*` 匹配任意非分隔符字符序列
2101
+ - `**` 匹配任意字符序列,包括路径分隔符(`globstar`)
2102
+ - `?` 匹配任意单个非分隔符字符
2103
+ - `[abc]` 匹配括号内的任意一个字符
2104
+ - `[a-z]` 匹配指定范围内的任意字符
2105
+ - `[^abc]` 匹配不在括号内的任意字符(取反)
2106
+ - `[^a-z]` 匹配不在指定范围内的任意字符(取反)
2107
+
2108
+ - `Globstar`规则:
2109
+ - `**` 仅当作为完整路径组件出现时才具有 `globstar` 语义(例如:`a/**/b`、`**/a`、`a/**`、`**`)
2110
+ - 像 `a**b` 或 `**a` 这样的模式中,`**` 被视为两个普通的 `*` 通配符,只匹配单个路径组件内的字符
2111
+ - `/` 和 `\` 都被视为路径分隔符(支持跨平台)
2112
+
2113
+ - 错误处理:
2114
+ - 对于格式错误的模式(例如未闭合的括号 `[abc`)会返回错误
2115
+ - 来自 `filepath.Match` 的错误会被传播
2116
+
2117
+ - 示例:
2118
+
2119
+ ```go
2120
+ func ExampleMatchGlob() {
2121
+ var pattern, name string
2122
+ var matched bool
2123
+ var err error
2124
+
2125
+ // 基本通配符匹配
2126
+ pattern = "*.go"
2127
+ name = "main.go"
2128
+ matched, err = gfile.MatchGlob(pattern, name)
2129
+ fmt.Printf("Pattern: %s, Name: %s, Matched: %v, Error: %v\n", pattern, name, matched, err)
2130
+
2131
+ // 使用 ? 通配符
2132
+ pattern = "test_?.go"
2133
+ name = "test_1.go"
2134
+ matched, err = gfile.MatchGlob(pattern, name)
2135
+ fmt.Printf("Pattern: %s, Name: %s, Matched: %v, Error: %v\n", pattern, name, matched, err)
2136
+
2137
+ // 使用 ** 匹配任意深度的目录
2138
+ pattern = "**/*.go"
2139
+ name = "src/foo/bar/main.go"
2140
+ matched, err = gfile.MatchGlob(pattern, name)
2141
+ fmt.Printf("Pattern: %s, Name: %s, Matched: %v, Error: %v\n", pattern, name, matched, err)
2142
+
2143
+ // 使用 ** 匹配所有内容
2144
+ pattern = "**"
2145
+ name = "any/path/to/file.go"
2146
+ matched, err = gfile.MatchGlob(pattern, name)
2147
+ fmt.Printf("Pattern: %s, Name: %s, Matched: %v, Error: %v\n", pattern, name, matched, err)
2148
+
2149
+ // 使用中间的 ** 通配符
2150
+ pattern = "src/**/test/*.go"
2151
+ name = "src/foo/bar/test/main.go"
2152
+ matched, err = gfile.MatchGlob(pattern, name)
2153
+ fmt.Printf("Pattern: %s, Name: %s, Matched: %v, Error: %v\n", pattern, name, matched, err)
2154
+
2155
+ // 字符范围匹配
2156
+ pattern = "[a-z].go"
2157
+ name = "x.go"
2158
+ matched, err = gfile.MatchGlob(pattern, name)
2159
+ fmt.Printf("Pattern: %s, Name: %s, Matched: %v, Error: %v\n", pattern, name, matched, err)
2160
+
2161
+ // Output:
2162
+ // Pattern: *.go, Name: main.go, Matched: true, Error: <nil>
2163
+ // Pattern: test_?.go, Name: test_1.go, Matched: true, Error: <nil>
2164
+ // Pattern: **/*.go, Name: src/foo/bar/main.go, Matched: true, Error: <nil>
2165
+ // Pattern: **, Name: any/path/to/file.go, Matched: true, Error: <nil>
2166
+ // Pattern: src/**/test/*.go, Name: src/foo/bar/test/main.go, Matched: true, Error: <nil>
2167
+ // Pattern: [a-z].go, Name: x.go, Matched: true, Error: <nil>
2168
+ }
2169
+ ```
2170
+
2171
+ :::tip
2172
+ - `**` 通配符特别适合在构建工具、文件搜索等场景中使用,可以灵活匹配任意深度的目录结构。
2173
+ - 该方法与 `.gitignore` 文件的模式规则兼容,便于实现文件过滤功能。
2174
+ - 如果只需要标准的通配符匹配(不包含 `**`),可以直接使用标准库的 `filepath.Match`,性能更优。
2175
+ :::
2176
+
2177
+ ### `Exists`
2178
+
2179
+ - 说明:检查给定的路径是否存在 。
2180
+ - 格式:
2181
+
2182
+ ```go
2183
+ func Exists(path string) bool
2184
+ ```
2185
+
2186
+ - 示例:
2187
+
2188
+ ```go
2189
+ func ExampleExists() {
2190
+ // init
2191
+ var (
2192
+ path = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file1")
2193
+ )
2194
+ // Checks whether given `path` exist.
2195
+ fmt.Println(gfile.Exists(path))
2196
+
2197
+ // Output:
2198
+ // true
2199
+ }
2200
+ ```
2201
+
2202
+ ### `Chdir`
2203
+
2204
+ - 说明:使用给定的路径,更改当前的工作路径。
2205
+ - 格式:
2206
+
2207
+ ```go
2208
+ func Chdir(dir string) error
2209
+ ```
2210
+
2211
+ - 示例:
2212
+
2213
+ ```go
2214
+ func ExampleChdir() {
2215
+ // init
2216
+ var (
2217
+ path = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file1")
2218
+ )
2219
+ // Get current working directory
2220
+ fmt.Println(gfile.Pwd())
2221
+
2222
+ // Changes the current working directory to the named directory.
2223
+ gfile.Chdir(path)
2224
+
2225
+ // Get current working directory
2226
+ fmt.Println(gfile.Pwd())
2227
+
2228
+ // May Output:
2229
+ // xxx/gf/os/gfile
2230
+ // /tmp/gfile_example_basic_dir/file1
2231
+ }
2232
+ ```
2233
+
2234
+ ## 路径操作
2235
+
2236
+ ### `Join`
2237
+
2238
+ - 说明:将多个字符串路径通过\`/\`进行连接。
2239
+ - 格式:
2240
+
2241
+ ```go
2242
+ func Join(paths ...string) string
2243
+ ```
2244
+
2245
+ - 示例:
2246
+
2247
+ ```go
2248
+ func ExampleJoin() {
2249
+ // init
2250
+ var (
2251
+ dirPath = gfile.TempDir("gfile_example_basic_dir")
2252
+ filePath = "file1"
2253
+ )
2254
+
2255
+ // Joins string array paths with file separator of current system.
2256
+ joinString := gfile.Join(dirPath, filePath)
2257
+
2258
+ fmt.Println(joinString)
2259
+
2260
+ // Output:
2261
+ // /tmp/gfile_example_basic_dir/file1
2262
+ }
2263
+ ```
2264
+
2265
+ ### `Abs`
2266
+
2267
+ - 说明:返回路径的绝对路径。
2268
+
2269
+ - 格式:
2270
+
2271
+ ```go
2272
+ func Abs(path string) string
2273
+ ```
2274
+
2275
+ - 示例:
2276
+
2277
+ ```go
2278
+ func ExampleAbs() {
2279
+ // init
2280
+ var (
2281
+ path = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file1")
2282
+ )
2283
+
2284
+ // Get an absolute representation of path.
2285
+ fmt.Println(gfile.Abs(path))
2286
+
2287
+ // Output:
2288
+ // /tmp/gfile_example_basic_dir/file1
2289
+ }
2290
+ ```
2291
+
2292
+ ### `RealPath`
2293
+
2294
+ - 说明:获取给定路径的绝对路径地址。
2295
+
2296
+ - 注意:如果文件不存在则返回空。
2297
+
2298
+ - 格式:
2299
+
2300
+ ```go
2301
+ func RealPath(path string) string
2302
+ ```
2303
+
2304
+ - 示例:
2305
+
2306
+ ```go
2307
+ func ExampleRealPath() {
2308
+ // init
2309
+ var (
2310
+ realPath = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file1")
2311
+ worryPath = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "worryFile")
2312
+ )
2313
+
2314
+ // fetch an absolute representation of path.
2315
+ fmt.Println(gfile.RealPath(realPath))
2316
+ fmt.Println(gfile.RealPath(worryPath))
2317
+
2318
+ // Output:
2319
+ // /tmp/gfile_example_basic_dir/file1
2320
+ //
2321
+ }
2322
+ ```
2323
+
2324
+ ### `SelfName`
2325
+
2326
+ - 说明:获取当前运行程序的名称。
2327
+
2328
+ - 格式:
2329
+
2330
+ ```go
2331
+ func SelfName() string
2332
+ ```
2333
+
2334
+ - 示例:
2335
+
2336
+ ```go
2337
+ func ExampleSelfName() {
2338
+
2339
+ // Get file name of current running process
2340
+ fmt.Println(gfile.SelfName())
2341
+
2342
+ // May Output:
2343
+ // ___github_com_gogf_gf_v2_os_gfile__ExampleSelfName
2344
+ }
2345
+ ```
2346
+
2347
+ ### `Basename`
2348
+
2349
+ - 说明:获取给定路径中的最后一个元素,包含扩展名。
2350
+
2351
+ - 格式:
2352
+
2353
+ ```go
2354
+ func Basename(path string) string
2355
+ ```
2356
+
2357
+ - 示例:
2358
+
2359
+ ```go
2360
+ func ExampleBasename() {
2361
+ // init
2362
+ var (
2363
+ path = gfile.Pwd() + gfile.Separator + "testdata/readline/file.log"
2364
+ )
2365
+
2366
+ // Get the last element of path, which contains file extension.
2367
+ fmt.Println(gfile.Basename(path))
2368
+
2369
+ // Output:
2370
+ // file.log
2371
+ }
2372
+ ```
2373
+
2374
+ ### `Name`
2375
+
2376
+ - 说明:获取给定路径中的最后一个元素,不包含扩展名。
2377
+
2378
+ - 格式:
2379
+
2380
+ ```go
2381
+ func Name(path string) string
2382
+ ```
2383
+
2384
+ - 示例:
2385
+
2386
+ ```go
2387
+ func ExampleName() {
2388
+ // init
2389
+ var (
2390
+ path = gfile.Pwd() + gfile.Separator + "testdata/readline/file.log"
2391
+ )
2392
+
2393
+ // Get the last element of path without file extension.
2394
+ fmt.Println(gfile.Name(path))
2395
+
2396
+ // Output:
2397
+ // file
2398
+ }
2399
+ ```
2400
+
2401
+ ### `Dir`
2402
+
2403
+ - 说明:获取给定路径的目录部分,排除最后的元素。
2404
+
2405
+ - 格式:
2406
+
2407
+ ```go
2408
+ func Dir(path string) string
2409
+ ```
2410
+
2411
+ - 示例:
2412
+
2413
+ ```go
2414
+ func ExampleDir() {
2415
+ // init
2416
+ var (
2417
+ path = gfile.Join(gfile.TempDir("gfile_example_basic_dir"), "file1")
2418
+ )
2419
+
2420
+ // Get all but the last element of path, typically the path's directory.
2421
+ fmt.Println(gfile.Dir(path))
2422
+
2423
+ // Output:
2424
+ // /tmp/gfile_example_basic_dir
2425
+ }
2426
+ ```
2427
+
2428
+ ### `Ext`
2429
+
2430
+ - 说明:获取给定路径的扩展名,包含\`.\`。
2431
+
2432
+ - 格式:
2433
+
2434
+ ```go
2435
+ func Ext(path string) string
2436
+ ```
2437
+
2438
+ - 示例:
2439
+
2440
+ ```go
2441
+ func ExampleExt() {
2442
+ // init
2443
+ var (
2444
+ path = gfile.Pwd() + gfile.Separator + "testdata/readline/file.log"
2445
+ )
2446
+
2447
+ // Get the file name extension used by path.
2448
+ fmt.Println(gfile.Ext(path))
2449
+
2450
+ // Output:
2451
+ // .log
2452
+ }
2453
+ ```
2454
+
2455
+ ### `ExtName`
2456
+
2457
+ - 说明:获取给定路径的扩展名,不包含\`.\`。
2458
+
2459
+ - 格式:
2460
+
2461
+ ```go
2462
+ func ExtName(path string) string
2463
+ ```
2464
+
2465
+ - 示例:
2466
+
2467
+ ```go
2468
+ func ExampleExtName() {
2469
+ // init
2470
+ var (
2471
+ path = gfile.Pwd() + gfile.Separator + "testdata/readline/file.log"
2472
+ )
2473
+
2474
+ // Get the file name extension used by path but the result does not contains symbol '.'.
2475
+ fmt.Println(gfile.ExtName(path))
2476
+
2477
+ // Output:
2478
+ // log
2479
+ }
2480
+ ```
2481
+
2482
+ ### `MainPkgPath`
2483
+
2484
+ - 说明:获取main文件(主入口)所在的绝对路径,。
2485
+
2486
+ - 注意:
2487
+ - `该方法仅在开发环境中可用,同时仅在源代码开发环境中有效,build二进制后将显示源代码的路径地址。`
2488
+ - `第一次调用该方法时,如果处于异步的goroutine中,可能会无法获取主包的路径`
2489
+ - 格式:
2490
+
2491
+ ```go
2492
+ func MainPkgPath() string
2493
+ ```
2494
+
2495
+ - 示例:
2496
+
2497
+ ```go
2498
+ func Test() {
2499
+ fmt.Println("main pkg path on main :", gfile.MainPkgPath())
2500
+ char := make(chan int, 1)
2501
+ go func() {
2502
+ fmt.Println("main pkg path on goroutine :", gfile.MainPkgPath())
2503
+ char <- 1
2504
+ }()
2505
+ select {
2506
+ case <-char:
2507
+ }
2508
+ // Output:
2509
+ // /xxx/xx/xxx/xx
2510
+ // /xxx/xx/xxx/xx
2511
+ }
2512
+ // 二进制包
2513
+ $ ./testDemo
2514
+ main pkg path on main : /xxx/xx/xxx/xx
2515
+ main pkg path on goroutine : /xxx/xx/xxx/xx
2516
+
2517
+ ```