cfdns 2.1.3 → 2.2.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 +2 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -6
- package/package.json +18 -16
package/README.md
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export {}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import
|
|
3
|
-
`:`
|
|
4
|
-
`)+n,i=r+1,r=e.indexOf(`
|
|
5
|
-
`,i)}while(r!==-1);return a+=e.slice(i),a}const{stdout:O,stderr:k}=se,A=Symbol(`GENERATOR`),j=Symbol(`STYLER`),M=Symbol(`IS_EMPTY`),ue=[`ansi`,`ansi`,`ansi256`,`ansi16m`],N=Object.create(null),de=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw Error("The `level` option should be an integer from 0 to 3");let n=O?O.level:0;e.level=t.level===void 0?n:t.level},fe=e=>{let t=(...e)=>e.join(` `);return de(t,e),Object.setPrototypeOf(t,P.prototype),t};function P(e){return fe(e)}Object.setPrototypeOf(P.prototype,Function.prototype);for(let[e,t]of Object.entries(C))N[e]={get(){let n=L(this,I(t.open,t.close,this[j]),this[M]);return Object.defineProperty(this,e,{value:n}),n}};N.visible={get(){let e=L(this,this[j],!0);return Object.defineProperty(this,"visible",{value:e}),e}};const F=(e,t,n,...r)=>e===`rgb`?t===`ansi16m`?C[n].ansi16m(...r):t===`ansi256`?C[n].ansi256(C.rgbToAnsi256(...r)):C[n].ansi(C.rgbToAnsi(...r)):e===`hex`?F(`rgb`,t,n,...C.hexToRgb(...r)):C[n][e](...r);for(let e of[`rgb`,`hex`,`ansi256`]){N[e]={get(){let{level:t}=this;return function(...n){let r=I(F(e,ue[t],`color`,...n),C.color.close,this[j]);return L(this,r,this[M])}}};let t=`bg`+e[0].toUpperCase()+e.slice(1);N[t]={get(){let{level:t}=this;return function(...n){let r=I(F(e,ue[t],`bgColor`,...n),C.bgColor.close,this[j]);return L(this,r,this[M])}}}}const pe=Object.defineProperties(()=>{},{...N,level:{enumerable:!0,get(){return this[A].level},set(e){this[A].level=e}}}),I=(e,t,n)=>{let r,i;return n===void 0?(r=e,i=t):(r=n.openAll+e,i=t+n.closeAll),{open:e,close:t,openAll:r,closeAll:i,parent:n}},L=(e,t,n)=>{let r=(...e)=>me(r,e.length===1?``+e[0]:e.join(` `));return Object.setPrototypeOf(r,pe),r[A]=e,r[j]=t,r[M]=n,r},me=(e,t)=>{if(e.level<=0||!t)return e[M]?``:t;let n=e[j];if(n===void 0)return t;let{openAll:r,closeAll:i}=n;if(t.includes(`\x1B`))for(;n!==void 0;)t=ce(t,n.close,n.open),n=n.parent;let a=t.indexOf(`
|
|
6
|
-
`);return a!==-1&&(t=le(t,i,r,a)),r+t+i};Object.defineProperties(P.prototype,N);const R=P();P({level:k?k.level:0});var he=`2.1.3`;const z=(0,v.default)(t.slice(2),{boolean:[`c`,`color`,`h`,`help`,`n`,`no-color`,`v`,`version`],string:[`_`],alias:{c:`color`,h:`help`,n:`no-color`,v:`version`}});function B(e){e&&console.info(`Error: ${e}`),n(+!!e)}z.version&&(console.info(he),B());const V={login:[2,2],logout:[0,0],get:[2,2],set:[3,4],add:[3,4],del:[2,2]},[H,...U]=z._,ge=H&&V[H]&&U.length>=V[H][0]&&U.length<=V[H][1];(!H||z.help||!Object.keys(V).includes(H)||!ge)&&(console.info(`usage: cfdns [options] command [args]
|
|
2
|
+
import{parseArgs as e,styleText as t}from"node:util";import{join as n}from"node:path";import{homedir as r}from"node:os";import{chmod as i,readFile as a,unlink as o,writeFile as s}from"node:fs/promises";import{argv as c,exit as l}from"node:process";var u=`2.2.0`;function d(t){try{return e(t)}catch(e){return h(e.message)}}const{values:f,positionals:p}=d({args:c.slice(2),options:{color:{type:`boolean`,short:`c`},help:{type:`boolean`,short:`h`},"no-color":{type:`boolean`,short:`n`},version:{type:`boolean`,short:`v`}},allowPositionals:!0,strict:!0});function m(e,n){return f[`no-color`]?n:t(e,n,{validateStream:!f.color})}function h(e){e&&console.info(`Error: ${e}`),l(+!!e)}f.version&&(console.info(u),h());const g={login:[2,2],logout:[0,0],get:[2,2],set:[3,4],add:[3,4],del:[2,2]},[_,...v]=p,y=_&&g[_]&&v.length>=g[_][0]&&v.length<=g[_][1];(!_||f.help||!Object.keys(g).includes(_)||!y)&&(console.info(`usage: cfdns [options] command [args]
|
|
7
3
|
|
|
8
4
|
Commands:
|
|
9
5
|
login <email> <key> Log in to the API
|
|
@@ -22,4 +18,4 @@ import e,{argv as t,exit as n}from"node:process";import r,{homedir as i}from"nod
|
|
|
22
18
|
$ cfdns login user@example.com 4c689aa3462a44a121c1f199c1081240b9be4
|
|
23
19
|
$ cfdns set example.com a 1.2.3.4 120
|
|
24
20
|
$ cfdns get example.com a
|
|
25
|
-
$ cfdns del example.com a`),
|
|
21
|
+
$ cfdns del example.com a`),h());let b,x;async function S(e,t,n){let r=await fetch(`https://api.cloudflare.com/client/v4/${t}`,{method:e.toUpperCase(),headers:{"Content-Type":`application/json`,"X-Auth-Email":b,"X-Auth-Key":x},body:n===void 0?void 0:JSON.stringify(n)}),i=await r.json();if(!r.ok)throw Error(`${r.status} ${r.statusText}: ${JSON.stringify(i)}`);return i.result}const C=n(r(),`.cfdnsrc`);if(_===`login`||_===`logout`){if(_===`login`)[b,x]=v,await s(C,JSON.stringify({email:b,key:x})),await i(C,384),console.info(`login data saved`);else try{await o(C),console.info(`login data deleted`)}catch{console.info(`no login data found`)}h()}else try{({email:b,key:x}=JSON.parse(await a(C,`utf8`)))}catch{h(`login data not found, please log in first.`)}v[1]&&=v[1].toUpperCase();let[w,T,E,D]=v;D||=120,typeof D==`string`&&(D=Number(D));const O=(await S(`get`,`zones`)).find(e=>w.endsWith(e.name));O||h(`no matching zone found`);const k=(await S(`get`,`zones/${O.id}/dns_records?name=${w}&type=${T}`))[0];_===`get`?console.info(k):_===`set`||_===`add`?k?E!==k.content||D!==k.ttl?(await S(`put`,`zones/${O.id}/dns_records/${k.id}`,{name:w,type:T,content:E,ttl:D,proxied:k.proxied}),console.info(`updated ${m(`magenta`,w)} ${D} IN ${T} ${m(`green`,E)}`)):console.info(`${m(`magenta`,w)} is up to date`):(await S(`post`,`zones/${O.id}/dns_records`,{name:w,type:T,content:E,ttl:D,proxied:!1}),console.info(`created ${m(`magenta`,w)} ${D} IN ${T} ${m(`green`,E)}`)):_===`del`&&k&&(await S(`delete`,`zones/${O.id}/dns_records/${k.id}`),console.info(`deleted ${m(`magenta`,w)} ${k.ttl} IN ${T} ${m(`green`,k.content)}`)),h();export{};
|
package/package.json
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cfdns",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "CLI to modify DNS records hosted on Cloudflare",
|
|
5
5
|
"author": "silverwind <me@silverwind.io>",
|
|
6
|
-
"repository":
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/silverwind/cfdns.git"
|
|
9
|
+
},
|
|
7
10
|
"type": "module",
|
|
8
11
|
"sideEffects": false,
|
|
9
12
|
"license": "BSD-2-Clause",
|
|
10
|
-
"bin":
|
|
13
|
+
"bin": {
|
|
14
|
+
"cfdns": "./dist/index.js"
|
|
15
|
+
},
|
|
11
16
|
"engines": {
|
|
12
17
|
"node": ">=22",
|
|
13
18
|
"bun": "*"
|
|
@@ -24,19 +29,16 @@
|
|
|
24
29
|
"ddns"
|
|
25
30
|
],
|
|
26
31
|
"devDependencies": {
|
|
27
|
-
"@types/
|
|
28
|
-
"@
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"minimist": "1.2.8",
|
|
34
|
-
"tsdown": "0.22.0",
|
|
35
|
-
"tsdown-config-silverwind": "3.0.1",
|
|
32
|
+
"@types/node": "26.6.2",
|
|
33
|
+
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
34
|
+
"eslint": "10.11.0",
|
|
35
|
+
"eslint-config-silverwind": "151.0.0",
|
|
36
|
+
"tsdown": "0.23.0",
|
|
37
|
+
"tsdown-config-silverwind": "4.1.1",
|
|
36
38
|
"typescript": "6.0.3",
|
|
37
|
-
"typescript-config-silverwind": "
|
|
38
|
-
"updates": "
|
|
39
|
-
"updates-config-silverwind": "
|
|
40
|
-
"versions": "15.0
|
|
39
|
+
"typescript-config-silverwind": "21.0.0",
|
|
40
|
+
"updates": "19.0.0",
|
|
41
|
+
"updates-config-silverwind": "4.0.6",
|
|
42
|
+
"versions": "15.5.0"
|
|
41
43
|
}
|
|
42
44
|
}
|