aj-tool 0.1.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 (120) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +167 -0
  3. package/bin/aj.js +2 -0
  4. package/dist/cli.d.ts +2 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +64 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/commands/apikey/get.d.ts +3 -0
  9. package/dist/commands/apikey/get.d.ts.map +1 -0
  10. package/dist/commands/apikey/get.js +25 -0
  11. package/dist/commands/apikey/get.js.map +1 -0
  12. package/dist/commands/auth/login.d.ts +3 -0
  13. package/dist/commands/auth/login.d.ts.map +1 -0
  14. package/dist/commands/auth/login.js +38 -0
  15. package/dist/commands/auth/login.js.map +1 -0
  16. package/dist/commands/auth/logout.d.ts +3 -0
  17. package/dist/commands/auth/logout.d.ts.map +1 -0
  18. package/dist/commands/auth/logout.js +12 -0
  19. package/dist/commands/auth/logout.js.map +1 -0
  20. package/dist/commands/auth/whoami.d.ts +3 -0
  21. package/dist/commands/auth/whoami.d.ts.map +1 -0
  22. package/dist/commands/auth/whoami.js +24 -0
  23. package/dist/commands/auth/whoami.js.map +1 -0
  24. package/dist/commands/request/get.d.ts +3 -0
  25. package/dist/commands/request/get.d.ts.map +1 -0
  26. package/dist/commands/request/get.js +46 -0
  27. package/dist/commands/request/get.js.map +1 -0
  28. package/dist/commands/request/index.d.ts +3 -0
  29. package/dist/commands/request/index.d.ts.map +1 -0
  30. package/dist/commands/request/index.js +10 -0
  31. package/dist/commands/request/index.js.map +1 -0
  32. package/dist/commands/request/list.d.ts +3 -0
  33. package/dist/commands/request/list.d.ts.map +1 -0
  34. package/dist/commands/request/list.js +37 -0
  35. package/dist/commands/request/list.js.map +1 -0
  36. package/dist/commands/rule/create.d.ts +3 -0
  37. package/dist/commands/rule/create.d.ts.map +1 -0
  38. package/dist/commands/rule/create.js +35 -0
  39. package/dist/commands/rule/create.js.map +1 -0
  40. package/dist/commands/rule/delete.d.ts +3 -0
  41. package/dist/commands/rule/delete.d.ts.map +1 -0
  42. package/dist/commands/rule/delete.js +32 -0
  43. package/dist/commands/rule/delete.js.map +1 -0
  44. package/dist/commands/rule/index.d.ts +3 -0
  45. package/dist/commands/rule/index.d.ts.map +1 -0
  46. package/dist/commands/rule/index.js +12 -0
  47. package/dist/commands/rule/index.js.map +1 -0
  48. package/dist/commands/rule/list.d.ts +3 -0
  49. package/dist/commands/rule/list.d.ts.map +1 -0
  50. package/dist/commands/rule/list.js +34 -0
  51. package/dist/commands/rule/list.js.map +1 -0
  52. package/dist/commands/site/create.d.ts +3 -0
  53. package/dist/commands/site/create.d.ts.map +1 -0
  54. package/dist/commands/site/create.js +29 -0
  55. package/dist/commands/site/create.js.map +1 -0
  56. package/dist/commands/site/delete.d.ts +3 -0
  57. package/dist/commands/site/delete.d.ts.map +1 -0
  58. package/dist/commands/site/delete.js +32 -0
  59. package/dist/commands/site/delete.js.map +1 -0
  60. package/dist/commands/site/index.d.ts +3 -0
  61. package/dist/commands/site/index.d.ts.map +1 -0
  62. package/dist/commands/site/index.js +12 -0
  63. package/dist/commands/site/index.js.map +1 -0
  64. package/dist/commands/site/list.d.ts +3 -0
  65. package/dist/commands/site/list.d.ts.map +1 -0
  66. package/dist/commands/site/list.js +22 -0
  67. package/dist/commands/site/list.js.map +1 -0
  68. package/dist/commands/site/rename.d.ts +3 -0
  69. package/dist/commands/site/rename.d.ts.map +1 -0
  70. package/dist/commands/site/rename.js +27 -0
  71. package/dist/commands/site/rename.js.map +1 -0
  72. package/dist/commands/team/create.d.ts +3 -0
  73. package/dist/commands/team/create.d.ts.map +1 -0
  74. package/dist/commands/team/create.js +24 -0
  75. package/dist/commands/team/create.js.map +1 -0
  76. package/dist/commands/team/delete.d.ts +3 -0
  77. package/dist/commands/team/delete.d.ts.map +1 -0
  78. package/dist/commands/team/delete.js +34 -0
  79. package/dist/commands/team/delete.js.map +1 -0
  80. package/dist/commands/team/index.d.ts +3 -0
  81. package/dist/commands/team/index.d.ts.map +1 -0
  82. package/dist/commands/team/index.js +10 -0
  83. package/dist/commands/team/index.js.map +1 -0
  84. package/dist/commands/team/list.d.ts +3 -0
  85. package/dist/commands/team/list.d.ts.map +1 -0
  86. package/dist/commands/team/list.js +24 -0
  87. package/dist/commands/team/list.js.map +1 -0
  88. package/dist/lib/api-client.d.ts +25 -0
  89. package/dist/lib/api-client.d.ts.map +1 -0
  90. package/dist/lib/api-client.js +130 -0
  91. package/dist/lib/api-client.js.map +1 -0
  92. package/dist/lib/auth.d.ts +5 -0
  93. package/dist/lib/auth.d.ts.map +1 -0
  94. package/dist/lib/auth.js +29 -0
  95. package/dist/lib/auth.js.map +1 -0
  96. package/dist/lib/config.d.ts +8 -0
  97. package/dist/lib/config.d.ts.map +1 -0
  98. package/dist/lib/config.js +36 -0
  99. package/dist/lib/config.js.map +1 -0
  100. package/dist/lib/constants.d.ts +7 -0
  101. package/dist/lib/constants.d.ts.map +1 -0
  102. package/dist/lib/constants.js +12 -0
  103. package/dist/lib/constants.js.map +1 -0
  104. package/dist/lib/errors.d.ts +18 -0
  105. package/dist/lib/errors.d.ts.map +1 -0
  106. package/dist/lib/errors.js +35 -0
  107. package/dist/lib/errors.js.map +1 -0
  108. package/dist/lib/output.d.ts +18 -0
  109. package/dist/lib/output.d.ts.map +1 -0
  110. package/dist/lib/output.js +101 -0
  111. package/dist/lib/output.js.map +1 -0
  112. package/dist/lib/types.d.ts +508 -0
  113. package/dist/lib/types.d.ts.map +1 -0
  114. package/dist/lib/types.js +104 -0
  115. package/dist/lib/types.js.map +1 -0
  116. package/dist/lib/validators.d.ts +10 -0
  117. package/dist/lib/validators.d.ts.map +1 -0
  118. package/dist/lib/validators.js +60 -0
  119. package/dist/lib/validators.js.map +1 -0
  120. package/package.json +40 -0
@@ -0,0 +1,60 @@
1
+ import { TypeID } from "typeid-js";
2
+ import { z } from "zod";
3
+ import { ValidationError } from "./errors.js";
4
+ function createTypeIdSchema(prefix) {
5
+ return z.string().refine((val) => {
6
+ try {
7
+ const parsed = TypeID.fromString(val);
8
+ return parsed.getType() === prefix;
9
+ }
10
+ catch {
11
+ return false;
12
+ }
13
+ }, {
14
+ message: `Invalid ID format. Expected a TypeID with '${prefix}' prefix (e.g. ${prefix}_...)`,
15
+ });
16
+ }
17
+ export const teamIdSchema = createTypeIdSchema("team");
18
+ export const siteIdSchema = createTypeIdSchema("site");
19
+ export const requestIdSchema = z.string().refine((val) => {
20
+ try {
21
+ const parsed = TypeID.fromString(val);
22
+ const type = parsed.getType();
23
+ return type === "req" || type === "lreq";
24
+ }
25
+ catch {
26
+ return false;
27
+ }
28
+ }, {
29
+ message: "Invalid request ID format. Expected a TypeID with 'req' or 'lreq' prefix",
30
+ });
31
+ export const ruleIdSchema = createTypeIdSchema("remote_rule");
32
+ export function validateTeamId(value) {
33
+ const result = teamIdSchema.safeParse(value);
34
+ if (!result.success) {
35
+ throw new ValidationError(`Invalid team ID "${value}". Expected format: team_<ulid>`);
36
+ }
37
+ return result.data;
38
+ }
39
+ export function validateSiteId(value) {
40
+ const result = siteIdSchema.safeParse(value);
41
+ if (!result.success) {
42
+ throw new ValidationError(`Invalid site ID "${value}". Expected format: site_<ulid>`);
43
+ }
44
+ return result.data;
45
+ }
46
+ export function validateRequestId(value) {
47
+ const result = requestIdSchema.safeParse(value);
48
+ if (!result.success) {
49
+ throw new ValidationError(`Invalid request ID "${value}". Expected format: req_<ulid> or lreq_<ulid>`);
50
+ }
51
+ return result.data;
52
+ }
53
+ export function validateRuleId(value) {
54
+ const result = ruleIdSchema.safeParse(value);
55
+ if (!result.success) {
56
+ throw new ValidationError(`Invalid rule ID "${value}". Expected format: remote_rule_<ulid>`);
57
+ }
58
+ return result.data;
59
+ }
60
+ //# sourceMappingURL=validators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/lib/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,SAAS,kBAAkB,CAAC,MAAc;IACxC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CACtB,CAAC,GAAG,EAAE,EAAE;QACN,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACtC,OAAO,MAAM,CAAC,OAAO,EAAE,KAAK,MAAM,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,EACD;QACE,OAAO,EAAE,8CAA8C,MAAM,kBAAkB,MAAM,OAAO;KAC7F,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAC9C,CAAC,GAAG,EAAE,EAAE;IACN,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,OAAO,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,MAAM,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,EACD;IACE,OAAO,EACL,0EAA0E;CAC7E,CACF,CAAC;AACF,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAE9D,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,CACvB,oBAAoB,KAAK,iCAAiC,CAC3D,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,CACvB,oBAAoB,KAAK,iCAAiC,CAC3D,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,CACvB,uBAAuB,KAAK,+CAA+C,CAC5E,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,CACvB,oBAAoB,KAAK,wCAAwC,CAClE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "aj-tool",
3
+ "version": "0.1.0",
4
+ "description": "Arcjet CLI for managing teams, sites, and resources",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "bin": {
8
+ "aj": "./bin/aj.js"
9
+ },
10
+ "engines": {
11
+ "node": ">=22.0.0"
12
+ },
13
+ "files": [
14
+ "bin/",
15
+ "dist/",
16
+ "LICENSE",
17
+ "README.md"
18
+ ],
19
+ "scripts": {
20
+ "build": "tsc",
21
+ "dev": "tsc --watch",
22
+ "lint": "eslint src/",
23
+ "prepublishOnly": "npm run build",
24
+ "start": "node ./dist/cli.js"
25
+ },
26
+ "dependencies": {
27
+ "commander": "^13.0.0",
28
+ "picocolors": "^1.1.0",
29
+ "typeid-js": "^1.2.0",
30
+ "zod": "^3.24.0"
31
+ },
32
+ "devDependencies": {
33
+ "@eslint/js": "^9.0.0",
34
+ "@types/node": "^22.0.0",
35
+ "eslint": "^9.0.0",
36
+ "eslint-config-prettier": "^10.0.0",
37
+ "typescript": "^5.9.0",
38
+ "typescript-eslint": "^8.0.0"
39
+ }
40
+ }