@hideyukimori/nene2-client 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 (75) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +138 -0
  3. package/dist/client/config.d.ts +26 -0
  4. package/dist/client/config.d.ts.map +1 -0
  5. package/dist/client/config.js +19 -0
  6. package/dist/client/config.js.map +1 -0
  7. package/dist/client/create-nene2-client.d.ts +92 -0
  8. package/dist/client/create-nene2-client.d.ts.map +1 -0
  9. package/dist/client/create-nene2-client.js +54 -0
  10. package/dist/client/create-nene2-client.js.map +1 -0
  11. package/dist/client/errors.d.ts +17 -0
  12. package/dist/client/errors.d.ts.map +1 -0
  13. package/dist/client/errors.js +20 -0
  14. package/dist/client/errors.js.map +1 -0
  15. package/dist/client/index.d.ts +5 -0
  16. package/dist/client/index.d.ts.map +1 -0
  17. package/dist/client/index.js +4 -0
  18. package/dist/client/index.js.map +1 -0
  19. package/dist/client/path.d.ts +5 -0
  20. package/dist/client/path.d.ts.map +1 -0
  21. package/dist/client/path.js +17 -0
  22. package/dist/client/path.js.map +1 -0
  23. package/dist/client/request.d.ts +23 -0
  24. package/dist/client/request.d.ts.map +1 -0
  25. package/dist/client/request.js +99 -0
  26. package/dist/client/request.js.map +1 -0
  27. package/dist/client/validation-errors.d.ts +11 -0
  28. package/dist/client/validation-errors.d.ts.map +1 -0
  29. package/dist/client/validation-errors.js +28 -0
  30. package/dist/client/validation-errors.js.map +1 -0
  31. package/dist/index.d.ts +11 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +9 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/problem/constants.d.ts +7 -0
  36. package/dist/problem/constants.d.ts.map +1 -0
  37. package/dist/problem/constants.js +7 -0
  38. package/dist/problem/constants.js.map +1 -0
  39. package/dist/problem/guards.d.ts +38 -0
  40. package/dist/problem/guards.d.ts.map +1 -0
  41. package/dist/problem/guards.js +111 -0
  42. package/dist/problem/guards.js.map +1 -0
  43. package/dist/problem/index.d.ts +4 -0
  44. package/dist/problem/index.d.ts.map +1 -0
  45. package/dist/problem/index.js +3 -0
  46. package/dist/problem/index.js.map +1 -0
  47. package/dist/problem/types.d.ts +26 -0
  48. package/dist/problem/types.d.ts.map +1 -0
  49. package/dist/problem/types.js +6 -0
  50. package/dist/problem/types.js.map +1 -0
  51. package/dist/types/examples/index.d.ts +7 -0
  52. package/dist/types/examples/index.d.ts.map +1 -0
  53. package/dist/types/examples/index.js +4 -0
  54. package/dist/types/examples/index.js.map +1 -0
  55. package/dist/types/examples/notes.d.ts +28 -0
  56. package/dist/types/examples/notes.d.ts.map +1 -0
  57. package/dist/types/examples/notes.js +37 -0
  58. package/dist/types/examples/notes.js.map +1 -0
  59. package/dist/types/examples/protected.d.ts +10 -0
  60. package/dist/types/examples/protected.d.ts.map +1 -0
  61. package/dist/types/examples/protected.js +15 -0
  62. package/dist/types/examples/protected.js.map +1 -0
  63. package/dist/types/examples/tags.d.ts +23 -0
  64. package/dist/types/examples/tags.d.ts.map +1 -0
  65. package/dist/types/examples/tags.js +31 -0
  66. package/dist/types/examples/tags.js.map +1 -0
  67. package/dist/types/index.d.ts +8 -0
  68. package/dist/types/index.d.ts.map +1 -0
  69. package/dist/types/index.js +4 -0
  70. package/dist/types/index.js.map +1 -0
  71. package/dist/types/system.d.ts +36 -0
  72. package/dist/types/system.d.ts.map +1 -0
  73. package/dist/types/system.js +54 -0
  74. package/dist/types/system.js.map +1 -0
  75. package/package.json +64 -0
@@ -0,0 +1,54 @@
1
+ /**
2
+ * System endpoint response types (OpenAPI-aligned).
3
+ */
4
+ function isStringRecord(value) {
5
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
6
+ return false;
7
+ }
8
+ return Object.values(value).every((v) => typeof v === 'string');
9
+ }
10
+ /** Type guard for {@link HealthResponse}. */
11
+ export function isHealthResponse(value) {
12
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
13
+ return false;
14
+ }
15
+ const { status, service, checks } = value;
16
+ if (status !== 'ok' && status !== 'degraded') {
17
+ return false;
18
+ }
19
+ if (typeof service !== 'string') {
20
+ return false;
21
+ }
22
+ if (checks === undefined) {
23
+ return true;
24
+ }
25
+ if (!isStringRecord(checks)) {
26
+ return false;
27
+ }
28
+ return Object.values(checks).every((v) => v === 'ok' || v === 'error');
29
+ }
30
+ /** Type guard for {@link ExamplePingResponse}. */
31
+ export function isExamplePingResponse(value) {
32
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
33
+ return false;
34
+ }
35
+ const { message, status } = value;
36
+ return message === 'pong' && status === 'ok';
37
+ }
38
+ /** Type guard for {@link FrameworkSmokeResponse}. */
39
+ export function isFrameworkSmokeResponse(value) {
40
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
41
+ return false;
42
+ }
43
+ const { name, description, status } = value;
44
+ return typeof name === 'string' && typeof description === 'string' && status === 'ok';
45
+ }
46
+ /** Type guard for {@link MachineHealthResponse}. */
47
+ export function isMachineHealthResponse(value) {
48
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
49
+ return false;
50
+ }
51
+ const { status, service, credential_type } = value;
52
+ return status === 'ok' && typeof service === 'string' && typeof credential_type === 'string';
53
+ }
54
+ //# sourceMappingURL=system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/types/system.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgCH,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;AAClE,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAgC,CAAC;IACrE,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC;AACzE,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAgC,CAAC;IAC7D,OAAO,OAAO,KAAK,MAAM,IAAI,MAAM,KAAK,IAAI,CAAC;AAC/C,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,KAAgC,CAAC;IACvE,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC;AACxF,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,KAAgC,CAAC;IAC9E,OAAO,MAAM,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,eAAe,KAAK,QAAQ,CAAC;AAC/F,CAAC"}
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@hideyukimori/nene2-client",
3
+ "version": "0.1.0",
4
+ "description": "TypeScript client ecosystem for NENE2 JSON APIs (OpenAPI-aligned)",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "sideEffects": false,
8
+ "main": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.js",
14
+ "default": "./dist/index.js"
15
+ },
16
+ "./package.json": "./package.json"
17
+ },
18
+ "files": [
19
+ "dist",
20
+ "README.md",
21
+ "LICENSE"
22
+ ],
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "git+https://github.com/hideyukiMORI/nene2-js.git"
26
+ },
27
+ "engines": {
28
+ "node": ">=22 <25",
29
+ "npm": ">=10 <12"
30
+ },
31
+ "packageManager": "npm@11",
32
+ "scripts": {
33
+ "type-check": "tsc --noEmit",
34
+ "lint": "eslint .",
35
+ "format": "prettier --check .",
36
+ "format:fix": "prettier --write .",
37
+ "test": "vitest run",
38
+ "test:ft-marathon": "vitest run tests/field-trials/ft-marathon.test.ts",
39
+ "ft:reports": "node tools/ft-marathon/write-reports.mjs",
40
+ "ft:marathon": "npm run test:ft-marathon && npm run ft:reports",
41
+ "contracts:sync": "node tools/sync-openapi.mjs",
42
+ "contracts:check": "node tools/sync-openapi.mjs --check",
43
+ "build": "tsc -p tsconfig.build.json",
44
+ "pack:smoke": "node tools/smoke-pack.mjs",
45
+ "prepublishOnly": "npm run build",
46
+ "check": "npm run type-check && npm run lint && npm run format && npm run contracts:check && npm run build && npm run test && npm run pack:smoke"
47
+ },
48
+ "keywords": [
49
+ "nene2",
50
+ "openapi",
51
+ "typescript",
52
+ "api-client",
53
+ "problem-details"
54
+ ],
55
+ "devDependencies": {
56
+ "@eslint/js": "^9.39.3",
57
+ "@types/node": "^22.19.19",
58
+ "eslint": "^9.39.3",
59
+ "prettier": "^3.8.1",
60
+ "typescript": "^5.9.3",
61
+ "typescript-eslint": "^8.59.3",
62
+ "vitest": "^4.0.18"
63
+ }
64
+ }