@o-t-p-y/cli 0.4.0 → 0.5.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.
- package/README.md +3 -1
- package/dist/detector.d.ts +1 -0
- package/dist/detector.js +24 -7
- package/dist/detector.js.map +1 -1
- package/dist/index.js +28 -10
- package/dist/index.js.map +1 -1
- package/dist/templates.d.ts +1 -0
- package/dist/templates.js +51 -0
- package/dist/templates.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,6 +17,8 @@ The CLI will:
|
|
|
17
17
|
|
|
18
18
|
The supplied key is checked against `GET /v1/usage`; an unavailable or rejected check prints a warning and the wizard continues. If no supported framework is detected, the wizard prints the REST integration guide and does not create framework files.
|
|
19
19
|
|
|
20
|
+
The CLI works with any code stack. Hybrid repos are detected by their non-JS markers (`requirements.txt`/`pyproject.toml`, `composer.json`, `go.mod`) even when a bare `package.json` is present, so mixed stacks get REST instructions instead of JavaScript files. Django projects get a framework-neutral REST client (`otpy_client.py`) rather than the FastAPI router.
|
|
21
|
+
|
|
20
22
|
## Other Commands
|
|
21
23
|
|
|
22
24
|
### Send a Test OTP
|
|
@@ -37,7 +39,7 @@ npx @o-t-p-y/cli usage
|
|
|
37
39
|
npx @o-t-p-y/cli init --ai
|
|
38
40
|
```
|
|
39
41
|
|
|
40
|
-
Outputs prompt instructions for AI coding assistants (Cursor, Windsurf, Claude Code, GitHub Copilot).
|
|
42
|
+
Outputs prompt instructions for AI coding assistants (Cursor, Windsurf, Claude Code, GitHub Copilot). The instructions are framework-aware: JavaScript projects get `@o-t-p-y/sdk` guidance, while Python, Go, PHP, and unknown projects get REST API instructions.
|
|
41
43
|
|
|
42
44
|
## License
|
|
43
45
|
|
package/dist/detector.d.ts
CHANGED
|
@@ -7,5 +7,6 @@ export interface ProjectInfo {
|
|
|
7
7
|
envFilePath: string;
|
|
8
8
|
}
|
|
9
9
|
export type NextPagesRoot = "pages" | "src/pages";
|
|
10
|
+
export declare function usesJsSdk(framework: Framework): boolean;
|
|
10
11
|
export declare function detectNextPagesRoot(cwd?: string): NextPagesRoot;
|
|
11
12
|
export declare function detectProject(cwd?: string): ProjectInfo;
|
package/dist/detector.js
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
+
// Explicit JS-SDK list: everything else gets REST instructions. Inverting the
|
|
4
|
+
// default this way keeps future non-JS frameworks on the safe REST path.
|
|
5
|
+
export function usesJsSdk(framework) {
|
|
6
|
+
return (framework === "next-app" ||
|
|
7
|
+
framework === "next-pages" ||
|
|
8
|
+
framework === "sveltekit" ||
|
|
9
|
+
framework === "express" ||
|
|
10
|
+
framework === "node-generic");
|
|
11
|
+
}
|
|
3
12
|
// Next.js ignores src/pages when a root pages dir exists — root wins.
|
|
4
13
|
export function detectNextPagesRoot(cwd = process.cwd()) {
|
|
5
14
|
if (existsSync(join(cwd, "pages")))
|
|
@@ -51,13 +60,11 @@ export function detectProject(cwd = process.cwd()) {
|
|
|
51
60
|
envFilePath,
|
|
52
61
|
};
|
|
53
62
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
envFilePath,
|
|
60
|
-
};
|
|
63
|
+
// A bare package.json is not an explicit JavaScript declaration: fall
|
|
64
|
+
// through so non-JS markers below win. Hybrid repos (e.g. a Python
|
|
65
|
+
// backend with a tooling package.json) must not get JS files generated
|
|
66
|
+
// into them. An explicit framework dependency above still wins — a
|
|
67
|
+
// declared dependency is intent, a bare package.json is not.
|
|
61
68
|
}
|
|
62
69
|
catch {
|
|
63
70
|
// Fall through
|
|
@@ -105,6 +112,16 @@ export function detectProject(cwd = process.cwd()) {
|
|
|
105
112
|
envFilePath,
|
|
106
113
|
};
|
|
107
114
|
}
|
|
115
|
+
// Bare package.json with no framework deps and no non-JS markers: plain Node.
|
|
116
|
+
if (hasPkgJson) {
|
|
117
|
+
return {
|
|
118
|
+
framework: "node-generic",
|
|
119
|
+
isTypeScript: hasTsConfig,
|
|
120
|
+
hasSrcDir,
|
|
121
|
+
hasEnvFile,
|
|
122
|
+
envFilePath,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
108
125
|
return {
|
|
109
126
|
framework: "unknown",
|
|
110
127
|
isTypeScript: hasTsConfig,
|
package/dist/detector.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../src/detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AA0BjC,sEAAsE;AACtE,MAAM,UAAU,mBAAmB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAC7D,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IACnD,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAAE,OAAO,WAAW,CAAC;IAC9D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACvD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,QAAQ,IAAI,OAAO,CAAC;IACvC,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAE3E,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YACxE,MAAM,OAAO,GAAG;gBACd,GAAG,GAAG,CAAC,YAAY;gBACnB,GAAG,GAAG,CAAC,eAAe;aACvB,CAAC;YAEF,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBACtF,OAAO;oBACL,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY;oBAChD,YAAY,EAAE,WAAW;oBACzB,SAAS;oBACT,UAAU;oBACV,WAAW;iBACZ,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC7B,OAAO;oBACL,SAAS,EAAE,WAAW;oBACtB,YAAY,EAAE,WAAW;oBACzB,SAAS;oBACT,UAAU;oBACV,WAAW;iBACZ,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClF,OAAO;oBACL,SAAS,EAAE,SAAS;oBACpB,YAAY,EAAE,WAAW;oBACzB,SAAS;oBACT,UAAU;oBACV,WAAW;iBACZ,CAAC;YACJ,CAAC;YAED,
|
|
1
|
+
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../src/detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AA0BjC,8EAA8E;AAC9E,yEAAyE;AACzE,MAAM,UAAU,SAAS,CAAC,SAAoB;IAC5C,OAAO,CACL,SAAS,KAAK,UAAU;QACxB,SAAS,KAAK,YAAY;QAC1B,SAAS,KAAK,WAAW;QACzB,SAAS,KAAK,SAAS;QACvB,SAAS,KAAK,cAAc,CAC7B,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,mBAAmB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAC7D,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IACnD,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAAE,OAAO,WAAW,CAAC;IAC9D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACvD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,QAAQ,IAAI,OAAO,CAAC;IACvC,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAE3E,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YACxE,MAAM,OAAO,GAAG;gBACd,GAAG,GAAG,CAAC,YAAY;gBACnB,GAAG,GAAG,CAAC,eAAe;aACvB,CAAC;YAEF,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBACtF,OAAO;oBACL,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY;oBAChD,YAAY,EAAE,WAAW;oBACzB,SAAS;oBACT,UAAU;oBACV,WAAW;iBACZ,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC7B,OAAO;oBACL,SAAS,EAAE,WAAW;oBACtB,YAAY,EAAE,WAAW;oBACzB,SAAS;oBACT,UAAU;oBACV,WAAW;iBACZ,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClF,OAAO;oBACL,SAAS,EAAE,SAAS;oBACpB,YAAY,EAAE,WAAW;oBACzB,SAAS;oBACT,UAAU;oBACV,WAAW;iBACZ,CAAC;YACJ,CAAC;YAED,sEAAsE;YACtE,mEAAmE;YACnE,uEAAuE;YACvE,mEAAmE;YACnE,6DAA6D;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,eAAe;QACjB,CAAC;IACH,CAAC;IAED,eAAe;IACf,IACE,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QACvC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QACzC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAChC,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;YACvC,OAAO;gBACL,SAAS,EAAE,eAAe;gBAC1B,YAAY,EAAE,KAAK;gBACnB,SAAS;gBACT,UAAU;gBACV,WAAW;aACZ,CAAC;QACJ,CAAC;QACD,OAAO;YACL,SAAS,EAAE,gBAAgB;YAC3B,YAAY,EAAE,KAAK;YACnB,SAAS;YACT,UAAU;YACV,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,YAAY;IACZ,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;QACnD,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa;YACpD,YAAY,EAAE,KAAK;YACnB,SAAS;YACT,UAAU;YACV,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,WAAW;IACX,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACpC,OAAO;YACL,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,KAAK;YACnB,SAAS;YACT,UAAU;YACV,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;YACL,SAAS,EAAE,cAAc;YACzB,YAAY,EAAE,WAAW;YACzB,SAAS;YACT,UAAU;YACV,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,OAAO;QACL,SAAS,EAAE,SAAS;QACpB,YAAY,EAAE,WAAW;QACzB,SAAS;QACT,UAAU;QACV,WAAW;KACZ,CAAC;AACJ,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,9 +3,9 @@ import { createInterface } from "node:readline";
|
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
4
|
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
5
5
|
import packageMetadata from "../package.json" with { type: "json" };
|
|
6
|
-
import { detectNextPagesRoot, detectProject } from "./detector.js";
|
|
6
|
+
import { detectNextPagesRoot, detectProject, usesJsSdk } from "./detector.js";
|
|
7
7
|
import { appendOrUpdateEnvKey, ensureEnvFileIgnored, getExistingEnvKey, validateApiKey } from "./env.js";
|
|
8
|
-
import { generateExpressTemplates, generateGoTemplates, generateNextAppTemplates, generateNextPagesTemplates, generatePhpLaravelTemplates, generatePythonFastApiTemplates, generateSvelteKitTemplates, phpLaravelRoutesSnippet, } from "./templates.js";
|
|
8
|
+
import { generateExpressTemplates, generateGoTemplates, generateNextAppTemplates, generateNextPagesTemplates, generatePhpLaravelTemplates, generatePythonFastApiTemplates, generatePythonTemplates, generateSvelteKitTemplates, phpLaravelRoutesSnippet, } from "./templates.js";
|
|
9
9
|
import { printBanner, spinner } from "./ui.js";
|
|
10
10
|
const args = process.argv.slice(2);
|
|
11
11
|
const command = args[0] || "init";
|
|
@@ -71,9 +71,14 @@ async function runInit() {
|
|
|
71
71
|
else if (info.framework === "express" || info.framework === "node-generic") {
|
|
72
72
|
filesToGenerate = generateExpressTemplates(info.hasSrcDir, info.isTypeScript);
|
|
73
73
|
}
|
|
74
|
-
else if (info.framework === "python-fastapi"
|
|
74
|
+
else if (info.framework === "python-fastapi") {
|
|
75
75
|
filesToGenerate = generatePythonFastApiTemplates();
|
|
76
76
|
}
|
|
77
|
+
else if (info.framework === "python-django") {
|
|
78
|
+
// routers/otp.py is a FastAPI router — dead code in Django. Django gets
|
|
79
|
+
// the framework-neutral REST client instead.
|
|
80
|
+
filesToGenerate = generatePythonTemplates();
|
|
81
|
+
}
|
|
77
82
|
else if (info.framework === "go") {
|
|
78
83
|
filesToGenerate = generateGoTemplates();
|
|
79
84
|
}
|
|
@@ -125,19 +130,21 @@ async function runInit() {
|
|
|
125
130
|
}
|
|
126
131
|
if (args.includes("--ai")) {
|
|
127
132
|
console.log(`\n🤖 AI assistant instructions (Cursor / Windsurf / Claude Code):`);
|
|
128
|
-
if (info.framework
|
|
129
|
-
console.log(` - REST API: https://api.otpy.ir`);
|
|
130
|
-
console.log(` - Send: POST /v1/otp/send with body {"phone": "09123456789"}`);
|
|
131
|
-
console.log(` - Verify: POST /v1/otp/verify with body {"phone": "09123456789", "code": "123456"} → {verified: boolean}`);
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
133
|
+
if (usesJsSdk(info.framework)) {
|
|
134
134
|
console.log(` - Library: @o-t-p-y/sdk`);
|
|
135
135
|
console.log(` - Send: otpy.sendOtp(phone) -> { request_id, ttl_seconds }`);
|
|
136
136
|
console.log(` - Verify: otpy.verifyOtp(phone, code) -> { verified: true }`);
|
|
137
137
|
}
|
|
138
|
+
else {
|
|
139
|
+
console.log(` - REST API: https://api.otpy.ir`);
|
|
140
|
+
console.log(` - Send: POST /v1/otp/send with body {"phone": "09123456789"}`);
|
|
141
|
+
console.log(` - Verify: POST /v1/otp/verify with body {"phone": "09123456789", "code": "123456"} → {verified: boolean}`);
|
|
142
|
+
}
|
|
138
143
|
}
|
|
139
144
|
if (info.framework === "php-generic") {
|
|
140
145
|
console.log(`
|
|
146
|
+
🎉 Integration complete!
|
|
147
|
+
|
|
141
148
|
For the full manual integration guide, see https://otpy.ir/docs
|
|
142
149
|
Dashboard & live stats: https://dash.otpy.ir
|
|
143
150
|
`);
|
|
@@ -152,7 +159,7 @@ Next steps:
|
|
|
152
159
|
3. Dashboard & live stats: https://dash.otpy.ir
|
|
153
160
|
`);
|
|
154
161
|
}
|
|
155
|
-
else {
|
|
162
|
+
else if (usesJsSdk(info.framework)) {
|
|
156
163
|
console.log(`
|
|
157
164
|
🎉 Integration complete!
|
|
158
165
|
|
|
@@ -160,6 +167,16 @@ Next steps:
|
|
|
160
167
|
1. Install the SDK: npm install @o-t-p-y/sdk
|
|
161
168
|
2. Send a test SMS: npx @o-t-p-y/cli test 09123456789
|
|
162
169
|
3. Dashboard & live stats: https://dash.otpy.ir
|
|
170
|
+
`);
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
console.log(`
|
|
174
|
+
🎉 Integration complete!
|
|
175
|
+
|
|
176
|
+
Next steps:
|
|
177
|
+
1. REST API base: https://api.otpy.ir — integrate over HTTP; no npm package needed
|
|
178
|
+
2. Send a test SMS: npx @o-t-p-y/cli test 09123456789
|
|
179
|
+
3. Dashboard & live stats: https://dash.otpy.ir
|
|
163
180
|
`);
|
|
164
181
|
}
|
|
165
182
|
}
|
|
@@ -207,6 +224,7 @@ async function runUsage() {
|
|
|
207
224
|
const info = detectProject(process.cwd());
|
|
208
225
|
const apiKey = getExistingEnvKey(info.envFilePath);
|
|
209
226
|
if (!apiKey) {
|
|
227
|
+
// Error lines stay on stdout (behavior preserved); only the spinner uses stderr.
|
|
210
228
|
console.log("❌ OTPY_API_KEY not found in .env — run npx @o-t-p-y/cli init first.");
|
|
211
229
|
process.exit(1);
|
|
212
230
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,eAAe,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/templates.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export declare function generateNextPagesTemplates(hasSrcPages: boolean, isTs: b
|
|
|
7
7
|
export declare function generateSvelteKitTemplates(): GeneratedFile[];
|
|
8
8
|
export declare function generateExpressTemplates(hasSrc: boolean, isTs: boolean): GeneratedFile[];
|
|
9
9
|
export declare function generatePythonFastApiTemplates(): GeneratedFile[];
|
|
10
|
+
export declare function generatePythonTemplates(): GeneratedFile[];
|
|
10
11
|
export declare const phpLaravelRoutesSnippet = "Route::post('/auth/otp/send', [OtpController::class, 'send']);\nRoute::post('/auth/otp/verify', [OtpController::class, 'verify']);\n";
|
|
11
12
|
export declare function generatePhpLaravelTemplates(): GeneratedFile[];
|
|
12
13
|
export declare function generateGoTemplates(): GeneratedFile[];
|
package/dist/templates.js
CHANGED
|
@@ -391,6 +391,57 @@ def verify_otp(req: VerifyOtpRequest):
|
|
|
391
391
|
`;
|
|
392
392
|
return [{ path: "routers/otp.py", content: code }];
|
|
393
393
|
}
|
|
394
|
+
// Framework-neutral Python client: works in FastAPI, Django, Flask, or plain
|
|
395
|
+
// scripts — anything that can `pip install requests`. Django projects get this
|
|
396
|
+
// instead of the FastAPI router, which is dead code outside FastAPI. Its
|
|
397
|
+
// contents are written to disk only (never printed), so the CLI's
|
|
398
|
+
// English-only terminal output invariant is unaffected by the docstrings.
|
|
399
|
+
export function generatePythonTemplates() {
|
|
400
|
+
const code = `"""OTPy REST client - framework-neutral: works with FastAPI, Django, Flask, or plain scripts.
|
|
401
|
+
|
|
402
|
+
Requires: pip install requests
|
|
403
|
+
Reads OTPY_API_KEY (and optionally OTPY_BASE_URL) from the environment.
|
|
404
|
+
"""
|
|
405
|
+
|
|
406
|
+
import os
|
|
407
|
+
|
|
408
|
+
import requests
|
|
409
|
+
|
|
410
|
+
BASE_URL = os.getenv("OTPY_BASE_URL", "https://api.otpy.ir")
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
def _headers() -> dict:
|
|
414
|
+
return {
|
|
415
|
+
"Authorization": f"Bearer {os.getenv('OTPY_API_KEY', '')}",
|
|
416
|
+
"Content-Type": "application/json",
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
def send_otp(phone: str) -> dict:
|
|
421
|
+
"""Send an OTP SMS. Returns the API response (request_id, free, ...)."""
|
|
422
|
+
res = requests.post(
|
|
423
|
+
f"{BASE_URL}/v1/otp/send",
|
|
424
|
+
json={"phone": phone},
|
|
425
|
+
headers=_headers(),
|
|
426
|
+
timeout=10,
|
|
427
|
+
)
|
|
428
|
+
res.raise_for_status()
|
|
429
|
+
return res.json()
|
|
430
|
+
|
|
431
|
+
|
|
432
|
+
def verify_otp(phone: str, code: str) -> bool:
|
|
433
|
+
"""Verify an OTP code. Returns the boolean verdict; a wrong code is not an error."""
|
|
434
|
+
res = requests.post(
|
|
435
|
+
f"{BASE_URL}/v1/otp/verify",
|
|
436
|
+
json={"phone": phone, "code": code},
|
|
437
|
+
headers=_headers(),
|
|
438
|
+
timeout=10,
|
|
439
|
+
)
|
|
440
|
+
res.raise_for_status()
|
|
441
|
+
return bool(res.json().get("verified", False))
|
|
442
|
+
`;
|
|
443
|
+
return [{ path: "otpy_client.py", content: code }];
|
|
444
|
+
}
|
|
394
445
|
// Printed to the terminal via index.ts — keep this snippet ASCII-only so the
|
|
395
446
|
// CLI's English-only output invariant holds. Never print other template
|
|
396
447
|
// contents (they carry intentional Persian end-user error strings).
|
package/dist/templates.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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"}
|