@xemahq/api-client-generator 0.18.2 → 0.20.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 (34) hide show
  1. package/README.md +26 -0
  2. package/dist/.source-stamp.json +2 -2
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +1 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/lib/assert-declared-get-responses.d.ts.map +1 -1
  8. package/dist/lib/assert-declared-get-responses.js +0 -7
  9. package/dist/lib/assert-declared-get-responses.js.map +1 -1
  10. package/dist/lib/client-package.d.ts +1 -1
  11. package/dist/lib/client-package.d.ts.map +1 -1
  12. package/dist/lib/client-package.js +24 -2
  13. package/dist/lib/client-package.js.map +1 -1
  14. package/dist/lib/client-repository.d.ts +1 -0
  15. package/dist/lib/client-repository.d.ts.map +1 -1
  16. package/dist/lib/client-repository.js +28 -0
  17. package/dist/lib/client-repository.js.map +1 -1
  18. package/dist/lib/client-surface.d.ts +26 -0
  19. package/dist/lib/client-surface.d.ts.map +1 -0
  20. package/dist/lib/client-surface.js +240 -0
  21. package/dist/lib/client-surface.js.map +1 -0
  22. package/dist/lib/client-version.d.ts +13 -0
  23. package/dist/lib/client-version.d.ts.map +1 -1
  24. package/dist/lib/client-version.js +80 -9
  25. package/dist/lib/client-version.js.map +1 -1
  26. package/dist/lib/custom-fetch-template.d.ts +1 -1
  27. package/dist/lib/custom-fetch-template.d.ts.map +1 -1
  28. package/dist/lib/custom-fetch-template.js +47 -1
  29. package/dist/lib/custom-fetch-template.js.map +1 -1
  30. package/dist/lib/generate-clients.d.ts +10 -1
  31. package/dist/lib/generate-clients.d.ts.map +1 -1
  32. package/dist/lib/generate-clients.js +101 -4
  33. package/dist/lib/generate-clients.js.map +1 -1
  34. package/package.json +4 -4
package/README.md CHANGED
@@ -59,6 +59,32 @@ xema-openapi
59
59
  xema-client-generate
60
60
  ```
61
61
 
62
+ ### Version movement
63
+
64
+ Every surface client of a service lands on one derived version. When
65
+ regeneration changes the generated output, the version advances by a **bump
66
+ class** the generator works out from the published surface: an export removed is
67
+ a break, exports added only is additive, and bytes moving without any declaration
68
+ moving is a fix. On a `0.x` package the levels shift down by one, because `^0.9.6`
69
+ admits `>=0.9.6 <0.10.0` — a break has to move the minor to leave that range and
70
+ an addition is a patch because that is what stays inside it.
71
+
72
+ When the change cannot be classified — a retained export whose declaration
73
+ moved, where a request type and a response type have opposite variance — the run
74
+ **refuses** rather than guessing the smallest bump, and names what it could not
75
+ decide. State the class and re-run:
76
+
77
+ ```bash
78
+ xema-client-generate --bump-class=minor
79
+ # or, for a whole-repo refresh that reaches each service through turbo:
80
+ XEMA_CLIENT_BUMP_CLASS=minor pnpm refresh
81
+ ```
82
+
83
+ The flag wins over the environment variable. A stated class below one the
84
+ comparison proved is refused, not silently raised; a higher one is always
85
+ honoured. Decide it from the PUBLISHED tarball of the current version rather
86
+ than from the source tree.
87
+
62
88
  ## Peer requirements
63
89
 
64
90
  - `@nestjs/common`, `@nestjs/core`, `@nestjs/swagger`, `@nestjs/testing` — the
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "algorithm": "sha256/len-framed-v1",
3
- "hash": "6a1d80051770a73cb5c3f85097c916ad3559918ffab1439a17149acfd3b302f3",
4
- "fileCount": 20
3
+ "hash": "7dc475e8b2be8f4bb3928b8cdbc5adf3f895b682cf128122f4488b7fa1fbc3f8",
4
+ "fileCount": 21
5
5
  }
package/dist/index.d.ts CHANGED
@@ -6,5 +6,6 @@ export * from './lib/extract-openapi';
6
6
  export * from './lib/repo-post-process';
7
7
  export * from './lib/client-package';
8
8
  export * from './lib/client-version';
9
+ export * from './lib/client-surface';
9
10
  export * from './lib/generate-clients';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -22,5 +22,6 @@ __exportStar(require("./lib/extract-openapi"), exports);
22
22
  __exportStar(require("./lib/repo-post-process"), exports);
23
23
  __exportStar(require("./lib/client-package"), exports);
24
24
  __exportStar(require("./lib/client-version"), exports);
25
+ __exportStar(require("./lib/client-surface"), exports);
25
26
  __exportStar(require("./lib/generate-clients"), exports);
26
27
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,uDAAqC;AACrC,kDAAgC;AAChC,yDAAuC;AACvC,sDAAoC;AACpC,wDAAsC;AACtC,0DAAwC;AACxC,uDAAqC;AACrC,uDAAqC;AACrC,yDAAuC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,uDAAqC;AACrC,kDAAgC;AAChC,yDAAuC;AACvC,sDAAoC;AACpC,wDAAsC;AACtC,0DAAwC;AACxC,uDAAqC;AACrC,uDAAqC;AACrC,uDAAqC;AACrC,yDAAuC"}
@@ -1 +1 @@
1
- {"version":3,"file":"assert-declared-get-responses.d.ts","sourceRoot":"","sources":["../../src/lib/assert-declared-get-responses.ts"],"names":[],"mappings":"AA8CA,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAEzC,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;CAC1C;AAkBD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AASD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAK5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AASD,eAAO,MAAM,qBAAqB,EAAE,SAAS,mBAAmB,EA0H/D,CAAC;AAeF,eAAO,MAAM,oBAAoB,EAAE,SAAS,kBAAkB,EAgG7D,CAAC;AAGF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;CACtE;AAoBD,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,qBAAqB,GACzB,sBAAsB,EAAE,CA6C1B;AAmBD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAEnD,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC/D,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC9D;AA+BD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,wBAAwB,GAC9B,0BAA0B,CAwH5B;AAGD,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,0BAA0B,GAClC,MAAM,CAQR"}
1
+ {"version":3,"file":"assert-declared-get-responses.d.ts","sourceRoot":"","sources":["../../src/lib/assert-declared-get-responses.ts"],"names":[],"mappings":"AA8CA,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAEzC,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;CAC1C;AAkBD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AASD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAK5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AASD,eAAO,MAAM,qBAAqB,EAAE,SAAS,mBAAmB,EAyH/D,CAAC;AAeF,eAAO,MAAM,oBAAoB,EAAE,SAAS,kBAAkB,EAgG7D,CAAC;AAGF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;CACtE;AAoBD,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,qBAAqB,GACzB,sBAAsB,EAAE,CA6C1B;AAmBD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAEnD,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC/D,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC9D;AA+BD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,wBAAwB,GAC9B,0BAA0B,CAwH5B;AAGD,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,0BAA0B,GAClC,MAAM,CAQR"}
@@ -50,13 +50,6 @@ exports.STRUCTURAL_EXEMPTIONS = [
50
50
  'dispatched adapter host (@RawResponse, src/bundle-bytes/). Bytes, not a ' +
51
51
  'JSON document.',
52
52
  },
53
- {
54
- serviceId: 'policy-distributor-api',
55
- operationId: 'BundleServiceController_download',
56
- reason: 'OPA Bundle Service poll endpoint; streams the bundle tarball (raw gzip) ' +
57
- 'to @Res() (@RawResponse, src/bundles/bundle-service.controller.ts). The ' +
58
- 'consumer is the vendored OPA sidecar, which reads bytes.',
59
- },
60
53
  {
61
54
  serviceId: 'document-render-api',
62
55
  operationId: 'RendersController_download',
@@ -1 +1 @@
1
- {"version":3,"file":"assert-declared-get-responses.js","sourceRoot":"","sources":["../../src/lib/assert-declared-get-responses.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assert-declared-get-responses.js","sourceRoot":"","sources":["../../src/lib/assert-declared-get-responses.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export interface GeneratedClientXemaBlock {
10
10
  readonly source: string;
11
11
  }
12
12
  export declare function resolveGeneratedClientLicense(repoRoot: string): string;
13
- export declare function ensureClientPackage(ctx: ResolvedServiceContext, surface: ApiSurface, version: string, repositoryUrl: string): {
13
+ export declare function ensureClientPackage(ctx: ResolvedServiceContext, surface: ApiSurface, version: string, repositoryUrl: string, license: string): {
14
14
  clientDir: string;
15
15
  clientSrc: string;
16
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"client-package.d.ts","sourceRoot":"","sources":["../../src/lib/client-package.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAO1D,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAmCD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAqBtE;AAqDD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GACpB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CA0G1C"}
1
+ {"version":3,"file":"client-package.d.ts","sourceRoot":"","sources":["../../src/lib/client-package.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAO1D,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAmFD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAqBtE;AAqDD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,GACd;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CA4I1C"}
@@ -11,6 +11,26 @@ const REPOSITORY_LICENSES = new Map([
11
11
  ['Xema Business Source License 1.1', 'LicenseRef-Xema-BSL-1.1'],
12
12
  ['Xema Proprietary License', 'LicenseRef-Xema-Proprietary'],
13
13
  ]);
14
+ const CLIENT_EXPORTS = {
15
+ '.': { types: './dist/index.d.ts', default: './dist/index.js' },
16
+ './models': {
17
+ types: './dist/models/index.d.ts',
18
+ default: './dist/models/index.js',
19
+ },
20
+ './models/*': {
21
+ types: './dist/models/*.d.ts',
22
+ default: './dist/models/*.js',
23
+ },
24
+ './endpoints/*': {
25
+ types: './dist/endpoints/*.d.ts',
26
+ default: './dist/endpoints/*.js',
27
+ },
28
+ './custom-fetch': {
29
+ types: './dist/custom-fetch.d.ts',
30
+ default: './dist/custom-fetch.js',
31
+ },
32
+ './package.json': './package.json',
33
+ };
14
34
  const CLIENT_TSCONFIG = {
15
35
  compilerOptions: {
16
36
  target: 'ES2022',
@@ -66,7 +86,7 @@ function assertDeclaredRepository(packageName, declared, expected) {
66
86
  `package as written cannot be released. Correct it by hand — the ` +
67
87
  `generator never overwrites a declared \`repository\`.`);
68
88
  }
69
- function ensureClientPackage(ctx, surface, version, repositoryUrl) {
89
+ function ensureClientPackage(ctx, surface, version, repositoryUrl, license) {
70
90
  const clientDir = (0, service_config_1.surfaceClientDir)(ctx, surface);
71
91
  const clientSrc = (0, node_path_1.join)(clientDir, 'src');
72
92
  (0, node_fs_1.mkdirSync)(clientSrc, { recursive: true });
@@ -103,7 +123,7 @@ function ensureClientPackage(ctx, surface, version, repositoryUrl) {
103
123
  main: './dist/index.js',
104
124
  types: './dist/index.d.ts',
105
125
  files: ['dist'],
106
- license: resolveGeneratedClientLicense(ctx.repoRoot),
126
+ license,
107
127
  scripts: {
108
128
  ...existingScripts,
109
129
  build: 'tsc -p tsconfig.json',
@@ -119,6 +139,8 @@ function ensureClientPackage(ctx, surface, version, repositoryUrl) {
119
139
  typescript: 'catalog:',
120
140
  },
121
141
  xema,
142
+ exports: CLIENT_EXPORTS,
143
+ sideEffects: false,
122
144
  };
123
145
  (0, node_fs_1.writeFileSync)(pkgPath, `${JSON.stringify(pkg, null, 2)}\n`, 'utf8');
124
146
  const tsconfigPath = (0, node_path_1.join)(clientDir, 'tsconfig.json');
@@ -1 +1 @@
1
- {"version":3,"file":"client-package.js","sourceRoot":"","sources":["../../src/lib/client-package.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-package.js","sourceRoot":"","sources":["../../src/lib/client-package.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export interface GeneratedClientRepository {
6
6
  export declare const RELEASE_CONFIG_PATH = "tooling/ci/release.config.mjs";
7
7
  export declare function packageRepositoryUrl(repositorySlug: string): string;
8
8
  export declare function resolveClientRepositoryUrl(repoRoot: string): Promise<string>;
9
+ export declare function declaredClientLicense(repoRoot: string): Promise<string | undefined>;
9
10
  export declare function generatedClientRepository(params: {
10
11
  repositoryUrl: string;
11
12
  repoRoot: string;
@@ -1 +1 @@
1
- {"version":3,"file":"client-repository.d.ts","sourceRoot":"","sources":["../../src/lib/client-repository.ts"],"names":[],"mappings":"AAgCA,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAErB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAaD,eAAO,MAAM,mBAAmB,kCAAkC,CAAC;AAgBnE,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAEnE;AAqBD,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CA0BjB;AASD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,yBAAyB,CAW5B"}
1
+ {"version":3,"file":"client-repository.d.ts","sourceRoot":"","sources":["../../src/lib/client-repository.ts"],"names":[],"mappings":"AAgCA,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAErB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAaD,eAAO,MAAM,mBAAmB,kCAAkC,CAAC;AAgBnE,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAEnE;AAqBD,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CA0BjB;AAkCD,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAmB7B;AA6CD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,yBAAyB,CAW5B"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RELEASE_CONFIG_PATH = void 0;
4
4
  exports.packageRepositoryUrl = packageRepositoryUrl;
5
5
  exports.resolveClientRepositoryUrl = resolveClientRepositoryUrl;
6
+ exports.declaredClientLicense = declaredClientLicense;
6
7
  exports.generatedClientRepository = generatedClientRepository;
7
8
  const node_fs_1 = require("node:fs");
8
9
  const node_path_1 = require("node:path");
@@ -37,6 +38,33 @@ async function resolveClientRepositoryUrl(repoRoot) {
37
38
  }
38
39
  return packageRepositoryUrl(repository);
39
40
  }
41
+ async function declaredClientLicense(repoRoot) {
42
+ const configPath = (0, node_path_1.join)(repoRoot, exports.RELEASE_CONFIG_PATH);
43
+ if (!(0, node_fs_1.existsSync)(configPath)) {
44
+ return undefined;
45
+ }
46
+ const config = (await importModule(configPath)).default;
47
+ const license = config?.license;
48
+ if (license === undefined || license === null) {
49
+ return undefined;
50
+ }
51
+ if (typeof license !== 'string' || !isUsableNpmLicense(license)) {
52
+ throw new Error(`api-client-generator: ${configPath} declares a \`license\` npm cannot use ` +
53
+ `(found ${JSON.stringify(license)}). Expected an SPDX expression, ` +
54
+ `\`SEE LICENSE IN <file>\`, or \`UNLICENSED\`. ` +
55
+ `Ignoring it would publish this repository's clients under the ` +
56
+ `first-party licence, which for a customer-owned repository is a false ` +
57
+ `legal assertion.`);
58
+ }
59
+ return license;
60
+ }
61
+ const SPDX_EXPRESSION_PATTERN = /^[A-Za-z0-9][A-Za-z0-9.+-]*(?: (?:AND|OR|WITH) [A-Za-z0-9][A-Za-z0-9.+-]*)*$/u;
62
+ const SEE_LICENSE_IN_PATTERN = /^SEE LICENSE IN \S.*$/u;
63
+ function isUsableNpmLicense(value) {
64
+ return (value === 'UNLICENSED' ||
65
+ SEE_LICENSE_IN_PATTERN.test(value) ||
66
+ SPDX_EXPRESSION_PATTERN.test(value));
67
+ }
40
68
  function generatedClientRepository(params) {
41
69
  const { repositoryUrl, repoRoot, clientDir } = params;
42
70
  const directory = (0, node_path_1.relative)(repoRoot, clientDir).split(node_path_1.sep).join('/');
@@ -1 +1 @@
1
- {"version":3,"file":"client-repository.js","sourceRoot":"","sources":["../../src/lib/client-repository.ts"],"names":[],"mappings":";;;AAmEA,oDAEC;AAqBD,gEA4BC;AASD,8DAeC;AA9ID,qCAAqC;AACrC,yCAAgD;AAChD,uCAAyC;AAiD5B,QAAA,mBAAmB,GAAG,+BAA+B,CAAC;AAGnE,MAAM,uBAAuB,GAAG,2DAA2D,CAAC;AAa5F,SAAgB,oBAAoB,CAAC,cAAsB;IACzD,OAAO,0BAA0B,cAAc,MAAM,CAAC;AACxD,CAAC;AAQD,KAAK,UAAU,YAAY,CAAC,IAAY;IACtC,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAErB,CAAC;IACtC,OAAO,aAAa,CAAC,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC;AAQM,KAAK,UAAU,0BAA0B,CAC9C,QAAgB;IAEhB,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,QAAQ,EAAE,2BAAmB,CAAC,CAAC;IACvD,IAAI,CAAC,IAAA,oBAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,yBAAyB,QAAQ,WAAW,2BAAmB,SAAS;YACtE,mEAAmE;YACnE,wDAAwD;YACxD,gEAAgE;YAChE,kEAAkE;YAClE,+BAA+B,CAClC,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,OAEnC,CAAC;IACd,MAAM,UAAU,GAAG,MAAM,EAAE,UAAU,CAAC;IACtC,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAChF,MAAM,IAAI,KAAK,CACb,yBAAyB,UAAU,qCAAqC;YACtE,uCAAuC;YACvC,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,+BAA+B;YACpE,kEAAkE;YAClE,kCAAkC,CACrC,CAAC;IACJ,CAAC;IACD,OAAO,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAC1C,CAAC;AASD,SAAgB,yBAAyB,CAAC,MAIzC;IACC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IACtD,MAAM,SAAS,GAAG,IAAA,oBAAQ,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,eAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,IAAI,SAAS,KAAK,EAAE,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,8CAA8C,SAAS,iBAAiB;YACtE,uBAAuB,QAAQ,oCAAoC;YACnE,uEAAuE,CAC1E,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"client-repository.js","sourceRoot":"","sources":["../../src/lib/client-repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type BumpClass } from './client-version';
2
+ export interface ClientSurface {
3
+ readonly exports: ReadonlyMap<string, string>;
4
+ readonly unrecognised: readonly string[];
5
+ }
6
+ export declare function extractClientSurface(clientSrc: string): ClientSurface;
7
+ export type SurfaceVerdict = {
8
+ readonly kind: 'determinate';
9
+ readonly bumpClass: BumpClass;
10
+ readonly reasons: readonly string[];
11
+ } | {
12
+ readonly kind: 'indeterminate';
13
+ readonly reasons: readonly string[];
14
+ };
15
+ export declare function classifySurfaceChange(args: {
16
+ readonly before: ClientSurface;
17
+ readonly after: ClientSurface;
18
+ readonly contentChanged: boolean;
19
+ }): SurfaceVerdict;
20
+ export declare function resolveClientBumpClass(args: {
21
+ readonly verdict: SurfaceVerdict;
22
+ readonly explicit: BumpClass | undefined;
23
+ readonly serviceId: string;
24
+ readonly explicitOrigin: string | undefined;
25
+ }): BumpClass;
26
+ //# sourceMappingURL=client-surface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-surface.d.ts","sourceRoot":"","sources":["../../src/lib/client-surface.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,kBAAkB,CAAC;AAqF1B,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAQD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAsCrE;AA+HD,MAAM,MAAM,cAAc,GACtB;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAuB5E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC,GAAG,cAAc,CAgFjB;AAqBD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7C,GAAG,SAAS,CAoCZ"}
@@ -0,0 +1,240 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.extractClientSurface = extractClientSurface;
37
+ exports.classifySurfaceChange = classifySurfaceChange;
38
+ exports.resolveClientBumpClass = resolveClientBumpClass;
39
+ const node_fs_1 = require("node:fs");
40
+ const ts = __importStar(require("typescript"));
41
+ const client_version_1 = require("./client-version");
42
+ function extractClientSurface(clientSrc) {
43
+ const exports = new Map();
44
+ const unrecognised = [];
45
+ const printer = ts.createPrinter({
46
+ removeComments: true,
47
+ newLine: ts.NewLineKind.LineFeed,
48
+ });
49
+ for (const file of (0, client_version_1.listGeneratedSubtreeFiles)(clientSrc)) {
50
+ if (!file.rel.endsWith('.ts')) {
51
+ unrecognised.push(file.rel);
52
+ continue;
53
+ }
54
+ const moduleKey = file.rel.slice(0, -'.ts'.length);
55
+ const source = ts.createSourceFile(file.rel, (0, node_fs_1.readFileSync)(file.abs, 'utf8'), ts.ScriptTarget.Latest, false, ts.ScriptKind.TS);
56
+ for (const statement of source.statements) {
57
+ collectStatement({
58
+ statement,
59
+ source,
60
+ printer,
61
+ moduleKey,
62
+ rel: file.rel,
63
+ exports,
64
+ unrecognised,
65
+ });
66
+ }
67
+ }
68
+ return { exports, unrecognised };
69
+ }
70
+ function render(node, source, printer) {
71
+ return printer.printNode(ts.EmitHint.Unspecified, node, source);
72
+ }
73
+ function isExported(node) {
74
+ return (ts.canHaveModifiers(node) &&
75
+ (ts.getModifiers(node) ?? []).some((modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword));
76
+ }
77
+ function collectStatement(args) {
78
+ const { statement, source, printer, moduleKey, rel, exports, unrecognised } = args;
79
+ const put = (name, text) => {
80
+ exports.set(`${moduleKey}#${name}`, text);
81
+ };
82
+ if (ts.isExportDeclaration(statement)) {
83
+ const from = statement.moduleSpecifier
84
+ ? render(statement.moduleSpecifier, source, printer)
85
+ : '';
86
+ const typeOnly = statement.isTypeOnly ? 'type ' : '';
87
+ if (!statement.exportClause) {
88
+ put(`*${from}`, `export ${typeOnly}* from ${from}`);
89
+ return;
90
+ }
91
+ if (ts.isNamespaceExport(statement.exportClause)) {
92
+ put(statement.exportClause.name.text, `export ${typeOnly}* as ${statement.exportClause.name.text} from ${from}`);
93
+ return;
94
+ }
95
+ for (const element of statement.exportClause.elements) {
96
+ const local = element.propertyName?.text ?? element.name.text;
97
+ put(element.name.text, `export ${typeOnly}${element.isTypeOnly ? 'type ' : ''}{ ${local} as ${element.name.text} }${from ? ` from ${from}` : ''}`);
98
+ }
99
+ return;
100
+ }
101
+ if (ts.isExportAssignment(statement)) {
102
+ put(statement.isExportEquals ? 'export=' : 'default', render(statement, source, printer));
103
+ return;
104
+ }
105
+ if (!isExported(statement)) {
106
+ return;
107
+ }
108
+ if (ts.isInterfaceDeclaration(statement) ||
109
+ ts.isTypeAliasDeclaration(statement) ||
110
+ ts.isEnumDeclaration(statement) ||
111
+ ts.isClassDeclaration(statement) ||
112
+ ts.isFunctionDeclaration(statement) ||
113
+ ts.isModuleDeclaration(statement)) {
114
+ const name = statement.name;
115
+ if (!name || !ts.isIdentifier(name)) {
116
+ unrecognised.push(rel);
117
+ return;
118
+ }
119
+ put(name.text, render(statement, source, printer));
120
+ return;
121
+ }
122
+ if (ts.isVariableStatement(statement)) {
123
+ const list = statement.declarationList;
124
+ const kindWord = (list.flags & ts.NodeFlags.Const) !== 0
125
+ ? 'const'
126
+ : (list.flags & ts.NodeFlags.Let) !== 0
127
+ ? 'let'
128
+ : 'var';
129
+ for (const declaration of list.declarations) {
130
+ if (!ts.isIdentifier(declaration.name)) {
131
+ unrecognised.push(rel);
132
+ continue;
133
+ }
134
+ put(declaration.name.text, `export ${kindWord} ${render(declaration, source, printer)}`);
135
+ }
136
+ return;
137
+ }
138
+ unrecognised.push(rel);
139
+ }
140
+ const MAX_NAMED_REASONS = 8;
141
+ function summarise(label, keys) {
142
+ const named = keys.slice(0, MAX_NAMED_REASONS).join(', ');
143
+ const rest = keys.length - Math.min(keys.length, MAX_NAMED_REASONS);
144
+ return `${label} (${keys.length}): ${named}${rest > 0 ? `, +${rest} more` : ''}`;
145
+ }
146
+ function classifySurfaceChange(args) {
147
+ const { before, after, contentChanged } = args;
148
+ if (!contentChanged) {
149
+ return {
150
+ kind: 'determinate',
151
+ bumpClass: 'none',
152
+ reasons: ['no generated byte moved'],
153
+ };
154
+ }
155
+ const removed = [];
156
+ const changed = [];
157
+ for (const [key, text] of before.exports) {
158
+ const next = after.exports.get(key);
159
+ if (next === undefined) {
160
+ removed.push(key);
161
+ }
162
+ else if (next !== text) {
163
+ changed.push(key);
164
+ }
165
+ }
166
+ const added = [...after.exports.keys()].filter((key) => !before.exports.has(key));
167
+ if (removed.length > 0) {
168
+ return {
169
+ kind: 'determinate',
170
+ bumpClass: 'major',
171
+ reasons: [summarise('exports REMOVED from the published surface', removed.sort())],
172
+ };
173
+ }
174
+ const unreadable = [
175
+ ...new Set([...before.unrecognised, ...after.unrecognised]),
176
+ ].sort();
177
+ if (unreadable.length > 0) {
178
+ return {
179
+ kind: 'indeterminate',
180
+ reasons: [summarise('files carrying an export this generator cannot classify', unreadable)],
181
+ };
182
+ }
183
+ if (changed.length > 0) {
184
+ return {
185
+ kind: 'indeterminate',
186
+ reasons: [
187
+ summarise('exports whose DECLARATION changed', changed.sort()),
188
+ 'A retained export whose declaration moved may be widening or narrowing, ' +
189
+ 'and a generated client does not record whether a type is a REQUEST or ' +
190
+ 'a RESPONSE — the two have opposite variance, so the direction cannot be ' +
191
+ 'derived from the surface alone.',
192
+ ],
193
+ };
194
+ }
195
+ if (added.length > 0) {
196
+ return {
197
+ kind: 'determinate',
198
+ bumpClass: 'minor',
199
+ reasons: [summarise('exports ADDED, none removed or altered', added.sort())],
200
+ };
201
+ }
202
+ return {
203
+ kind: 'determinate',
204
+ bumpClass: 'patch',
205
+ reasons: [
206
+ 'generated bytes moved but no exported declaration did — a description ' +
207
+ 'or implementation change',
208
+ ],
209
+ };
210
+ }
211
+ function resolveClientBumpClass(args) {
212
+ const { verdict, explicit, serviceId, explicitOrigin } = args;
213
+ if (verdict.kind === 'indeterminate') {
214
+ if (explicit === undefined) {
215
+ throw new Error(`api-client-generator: ${serviceId} — regeneration changed the published ` +
216
+ 'client surface in a way this generator cannot classify, so it will not ' +
217
+ 'guess a version.\n' +
218
+ verdict.reasons.map((reason) => ` · ${reason}`).join('\n') +
219
+ '\nState the class explicitly and re-run:\n' +
220
+ ' xema-client-generate --bump-class=<patch|minor|major>\n' +
221
+ ' (or XEMA_CLIENT_BUMP_CLASS=<patch|minor|major>)\n' +
222
+ 'Decide it from the PUBLISHED tarball of the current version, not from ' +
223
+ 'this source tree — `npm pack <client>@<published>` and compare what a ' +
224
+ 'consumer can actually resolve.');
225
+ }
226
+ return explicit;
227
+ }
228
+ if (explicit === undefined) {
229
+ return verdict.bumpClass;
230
+ }
231
+ if ((0, client_version_1.bumpClassExceeds)(verdict.bumpClass, explicit)) {
232
+ throw new Error(`api-client-generator: ${serviceId} — ${explicitOrigin ?? 'the stated bump class'} ` +
233
+ `is "${explicit}", but the regenerated surface PROVES "${verdict.bumpClass}".\n` +
234
+ verdict.reasons.map((reason) => ` · ${reason}`).join('\n') +
235
+ `\nA proven class is a floor, never a suggestion. Raise the stated class to ` +
236
+ `"${verdict.bumpClass}" or higher, or remove it and let the proof decide.`);
237
+ }
238
+ return explicit;
239
+ }
240
+ //# sourceMappingURL=client-surface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-surface.js","sourceRoot":"","sources":["../../src/lib/client-surface.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,30 @@
1
1
  import { type ApiSurface } from '@xemahq/xema-decorators';
2
2
  import { type ResolvedServiceContext } from './service-config';
3
+ export type BumpClass = 'none' | 'patch' | 'minor' | 'major';
4
+ export declare const BUMP_CLASSES: readonly BumpClass[];
5
+ export declare function parseBumpClass(raw: string, origin: string): BumpClass;
6
+ export declare function bumpClassExceeds(a: BumpClass, b: BumpClass): boolean;
3
7
  export declare function parseVersionCore(v: string): [number, number, number] | null;
4
8
  export declare function compareVersionCore(a: string, b: string): number;
5
9
  export declare function bumpPatch(version: string): string;
10
+ export declare function applyBumpClass(version: string, bumpClass: BumpClass): string;
6
11
  export declare function resolveClientVersionBaseline(existingClientVersions: readonly string[], serviceVersion: string): string;
7
12
  export declare function advanceClientVersionLine(args: {
8
13
  readonly baseline: string;
9
14
  readonly contentChanged: boolean;
10
15
  readonly hadExistingClients: boolean;
16
+ readonly bumpClass: BumpClass;
11
17
  }): string;
12
18
  export declare function readExistingClientVersions(ctx: ResolvedServiceContext): {
13
19
  surface: ApiSurface;
14
20
  version: string;
15
21
  }[];
22
+ export declare const GENERATED_SUBTREES: readonly ["endpoints", "models"];
23
+ export interface GeneratedClientFile {
24
+ readonly subtree: string;
25
+ readonly rel: string;
26
+ readonly abs: string;
27
+ }
28
+ export declare function listGeneratedSubtreeFiles(clientSrc: string): GeneratedClientFile[];
16
29
  export declare function fingerprintGeneratedOutput(clientSrc: string): string;
17
30
  //# sourceMappingURL=client-version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-version.d.ts","sourceRoot":"","sources":["../../src/lib/client-version.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAwD1B,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAG3E;AAOD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAmB/D;AAGD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAUjD;AASD,wBAAgB,4BAA4B,CAC1C,sBAAsB,EAAE,SAAS,MAAM,EAAE,EACzC,cAAc,EAAE,MAAM,GACrB,MAAM,CAcR;AAUD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC,GAAG,MAAM,CAGT;AAaD,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,sBAAsB,GAC1B;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CAiC5C;AAcD,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAsBpE"}
1
+ {"version":3,"file":"client-version.d.ts","sourceRoot":"","sources":["../../src/lib/client-version.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AA2E1B,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAW7D,eAAO,MAAM,YAAY,EAAE,SAAS,SAAS,EAK5C,CAAC;AASF,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAUrE;AAGD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,OAAO,CAEpE;AAGD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAG3E;AAOD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAmB/D;AAGD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAUjD;AAuBD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,CAqB5E;AASD,wBAAgB,4BAA4B,CAC1C,sBAAsB,EAAE,SAAS,MAAM,EAAE,EACzC,cAAc,EAAE,MAAM,GACrB,MAAM,CAcR;AAsBD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CAC/B,GAAG,MAAM,CAcT;AAaD,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,sBAAsB,GAC1B;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CAiC5C;AAGD,eAAO,MAAM,kBAAkB,kCAAmC,CAAC;AAGnE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAWD,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,GAChB,mBAAmB,EAAE,CAYvB;AAWD,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAwBpE"}
@@ -1,17 +1,46 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GENERATED_SUBTREES = exports.BUMP_CLASSES = void 0;
4
+ exports.parseBumpClass = parseBumpClass;
5
+ exports.bumpClassExceeds = bumpClassExceeds;
3
6
  exports.parseVersionCore = parseVersionCore;
4
7
  exports.compareVersionCore = compareVersionCore;
5
8
  exports.bumpPatch = bumpPatch;
9
+ exports.applyBumpClass = applyBumpClass;
6
10
  exports.resolveClientVersionBaseline = resolveClientVersionBaseline;
7
11
  exports.advanceClientVersionLine = advanceClientVersionLine;
8
12
  exports.readExistingClientVersions = readExistingClientVersions;
13
+ exports.listGeneratedSubtreeFiles = listGeneratedSubtreeFiles;
9
14
  exports.fingerprintGeneratedOutput = fingerprintGeneratedOutput;
10
15
  const node_crypto_1 = require("node:crypto");
11
16
  const node_fs_1 = require("node:fs");
12
17
  const node_path_1 = require("node:path");
13
18
  const xema_decorators_1 = require("@xemahq/xema-decorators");
14
19
  const service_config_1 = require("./service-config");
20
+ const BUMP_CLASS_RANK = {
21
+ none: 0,
22
+ patch: 1,
23
+ minor: 2,
24
+ major: 3,
25
+ };
26
+ exports.BUMP_CLASSES = [
27
+ 'none',
28
+ 'patch',
29
+ 'minor',
30
+ 'major',
31
+ ];
32
+ function parseBumpClass(raw, origin) {
33
+ const value = raw.trim().toLowerCase();
34
+ const match = exports.BUMP_CLASSES.find((candidate) => candidate === value);
35
+ if (!match) {
36
+ throw new Error(`api-client-generator: ${origin} is "${raw}", which is not a bump class. ` +
37
+ `Use one of ${exports.BUMP_CLASSES.join(' | ')}.`);
38
+ }
39
+ return match;
40
+ }
41
+ function bumpClassExceeds(a, b) {
42
+ return BUMP_CLASS_RANK[a] > BUMP_CLASS_RANK[b];
43
+ }
15
44
  function parseVersionCore(v) {
16
45
  const m = /^(\d+)\.(\d+)\.(\d+)/.exec(v.trim());
17
46
  return m ? [Number(m[1]), Number(m[2]), Number(m[3])] : null;
@@ -43,6 +72,26 @@ function bumpPatch(version) {
43
72
  const [major, minor, patch] = parsed;
44
73
  return `${major}.${minor}.${patch + 1}`;
45
74
  }
75
+ function applyBumpClass(version, bumpClass) {
76
+ const parsed = parseVersionCore(version);
77
+ if (!parsed) {
78
+ throw new Error(`api-client-generator: cannot advance client version "${version}" — it is not ` +
79
+ 'release semver `x.y.z`.');
80
+ }
81
+ const [major, minor, patch] = parsed;
82
+ if (bumpClass === 'none') {
83
+ return `${major}.${minor}.${patch}`;
84
+ }
85
+ const stable = major >= 1;
86
+ switch (bumpClass) {
87
+ case 'major':
88
+ return stable ? `${major + 1}.0.0` : `${major}.${minor + 1}.0`;
89
+ case 'minor':
90
+ return stable ? `${major}.${minor + 1}.0` : `${major}.${minor}.${patch + 1}`;
91
+ case 'patch':
92
+ return `${major}.${minor}.${patch + 1}`;
93
+ }
94
+ }
46
95
  function resolveClientVersionBaseline(existingClientVersions, serviceVersion) {
47
96
  if (existingClientVersions.length === 0) {
48
97
  if (!parseVersionCore(serviceVersion)) {
@@ -55,8 +104,17 @@ function resolveClientVersionBaseline(existingClientVersions, serviceVersion) {
55
104
  return existingClientVersions.reduce((highest, candidate) => compareVersionCore(candidate, highest) > 0 ? candidate : highest);
56
105
  }
57
106
  function advanceClientVersionLine(args) {
58
- const { baseline, contentChanged, hadExistingClients } = args;
59
- return contentChanged && hadExistingClients ? bumpPatch(baseline) : baseline;
107
+ const { baseline, contentChanged, hadExistingClients, bumpClass } = args;
108
+ if (!contentChanged || !hadExistingClients) {
109
+ return baseline;
110
+ }
111
+ if (bumpClass === 'none') {
112
+ throw new Error('api-client-generator: regeneration changed the generated output but the ' +
113
+ 'resolved bump class is "none". Changed bytes under an already-published ' +
114
+ 'version is what the version-coverage gate refuses; the class must say how ' +
115
+ 'far the line moves.');
116
+ }
117
+ return applyBumpClass(baseline, bumpClass);
60
118
  }
61
119
  function readExistingClientVersions(ctx) {
62
120
  const found = [];
@@ -85,19 +143,32 @@ function readExistingClientVersions(ctx) {
85
143
  }
86
144
  return found;
87
145
  }
88
- const GENERATED_SUBTREES = ['endpoints', 'models'];
146
+ exports.GENERATED_SUBTREES = ['endpoints', 'models'];
147
+ function listGeneratedSubtreeFiles(clientSrc) {
148
+ const files = [];
149
+ for (const subtree of exports.GENERATED_SUBTREES) {
150
+ const root = (0, node_path_1.join)(clientSrc, subtree);
151
+ if (!(0, node_fs_1.existsSync)(root)) {
152
+ continue;
153
+ }
154
+ for (const rel of listFilesRecursively(root)) {
155
+ files.push({ subtree, rel: `${subtree}/${rel}`, abs: (0, node_path_1.join)(root, rel) });
156
+ }
157
+ }
158
+ return files;
159
+ }
89
160
  function fingerprintGeneratedOutput(clientSrc) {
90
161
  const hash = (0, node_crypto_1.createHash)('sha256');
91
- for (const subtree of GENERATED_SUBTREES) {
92
- const root = (0, node_path_1.join)(clientSrc, subtree);
162
+ const files = listGeneratedSubtreeFiles(clientSrc);
163
+ for (const subtree of exports.GENERATED_SUBTREES) {
93
164
  hash.update(`\u0000tree:${subtree}\u0000`);
94
- if (!(0, node_fs_1.existsSync)(root)) {
165
+ if (!(0, node_fs_1.existsSync)((0, node_path_1.join)(clientSrc, subtree))) {
95
166
  hash.update('absent');
96
167
  continue;
97
168
  }
98
- for (const rel of listFilesRecursively(root)) {
99
- hash.update(`\u0000${rel}\u0000`);
100
- hash.update((0, node_fs_1.readFileSync)((0, node_path_1.join)(root, rel)));
169
+ for (const file of files.filter((f) => f.subtree === subtree)) {
170
+ hash.update(`\u0000${file.rel}\u0000`);
171
+ hash.update((0, node_fs_1.readFileSync)(file.abs));
101
172
  }
102
173
  }
103
174
  return hash.digest('hex');
@@ -1 +1 @@
1
- {"version":3,"file":"client-version.js","sourceRoot":"","sources":["../../src/lib/client-version.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-version.js","sourceRoot":"","sources":["../../src/lib/client-version.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const CANONICAL_CUSTOM_FETCH = "/**\n * Configurable fetch wrapper for Orval-generated clients.\n *\n * GENERATED by `@xemahq/api-client-generator` \u2014 do not edit. Every client in\n * the fleet ships this file byte-for-byte; a local edit is erased by the next\n * `pnpm refresh` and, until then, makes this one client speak to the platform\n * differently from all of its siblings. Change the template instead:\n * `api-client-generator/src/lib/custom-fetch-template.ts`.\n *\n * Consumers must call `configureClient()` before using any endpoint function.\n * The baseUrl is prepended to the relative paths generated by Orval.\n *\n * By default this transport issues exactly ONE request and adds no delay of its\n * own, so a slow call is a slow server. Retrying is opt-in, and opting in\n * requires supplying an observer \u2014 see `maxRetries` / `onRetry` below.\n */\n\n/** What {@link ClientConfig.onRetry} is told before each re-attempt. */\nexport interface RetryNotice {\n /** 1-based index of the re-attempt about to be made. */\n attempt: number;\n /** The configured budget this re-attempt is spending from. */\n maxRetries: number;\n /** The response status that made the previous attempt retryable. */\n status: number;\n /** Delay before the re-attempt, in ms \u2014 from `Retry-After` when the server sent one. */\n waitMs: number;\n /** Whether {@link waitMs} came from the server's `Retry-After` header. */\n retryAfterHonoured: boolean;\n /** Absolute URL being re-requested. */\n url: string;\n /** HTTP method being re-requested. */\n method: string;\n}\n\nexport interface ClientConfig {\n /**\n * Static base URL (e.g. 'http://localhost:3140') \u2014 no trailing slash.\n * Mutually exclusive with `baseUrlResolver`; exactly one MUST be set.\n */\n baseUrl?: string;\n /**\n * Per-request base-URL resolver. When set, the peer URL is resolved from\n * the service registry on EVERY request (boot-order-safe). Wired by\n * `configureOrvalClientResolved` from `@xemahq/platform-common`.\n */\n baseUrlResolver?: () => string | Promise<string>;\n /** Optional async callback to get an auth token. Auto-sets Authorization header on every request. */\n getAuthToken?: () => Promise<string>;\n /** Optional callback returning headers to inject on every request. Per-call headers take precedence. */\n getHeaders?: () => Record<string, string> | Promise<Record<string, string>>;\n /**\n * Optional resolver for the CORRELATION ID of the request being made \u2014 the\n * handle that ties one causal chain together across every service hop.\n *\n * WHY IT IS A CALLBACK AND NOT A VALUE. `ClientConfig` is process-global\n * (`configureClient` is called once at wiring time), and a correlation id is\n * per-request. This is invoked INSIDE the request, so a server can point it\n * at whatever carries its ambient request context and get the CURRENT id\n * rather than the one that happened to be live at boot.\n *\n * WHY THE TRANSPORT DOES NOT MINT ONE. Returning `undefined` sends no header,\n * and the receiving service's `RequestContextMiddleware` mints its own \u2014 a\n * new trace, which is honest. A transport that minted per call would produce\n * a FRESH id on every hop while looking like propagation, which is strictly\n * worse than none: every row would carry a correlation id and no two rows\n * that belong together would share one. That is the exact defect this exists\n * to fix, so the transport must not reproduce it one layer down.\n *\n * A caller-supplied `X-Correlation-Id` header always wins, and so does one\n * from `getHeaders`.\n */\n getCorrelationId?: () =>\n | string\n | undefined\n | Promise<string | undefined>;\n /**\n * Optional callback invoked on a 401 before ONE re-attempt. Supplying it is\n * what opts this client into that re-attempt; without it a 401 comes back to\n * the caller as a `ClientError` like any other 4xx.\n */\n onUnauthorized?: () => Promise<void>;\n /**\n * Re-attempts for a retryable status. **Defaults to 0 \u2014 no retry.**\n *\n * Setting it above 0 REQUIRES `onRetry`; `configureClient` throws otherwise.\n * See the block above `customFetch` for why the budget is opt-in and why an\n * observer is mandatory rather than advisory.\n */\n maxRetries?: number;\n /**\n * Called immediately before every re-attempt, with the reason and the delay.\n *\n * Mandatory whenever `maxRetries` is above 0. It is the difference between a\n * retry and a hidden degradation path: without it a caller cannot tell a slow\n * server from this transport sleeping between attempts.\n */\n onRetry?: (notice: RetryNotice) => void;\n}\n\nexport class ClientError extends Error {\n constructor(\n public readonly status: number,\n public readonly url: string,\n public readonly body: unknown,\n ) {\n super(`HTTP ${status} from ${url}`);\n this.name = 'ClientError';\n }\n}\n\nlet clientConfig: ClientConfig | null = null;\n\nexport function configureClient(config: ClientConfig): void {\n // Fail at WIRING time, not on the request that happens to be retried. A\n // client configured to retry without an observer is the exact defect this\n // transport was rebuilt to remove, so it must not be constructible.\n if ((config.maxRetries ?? 0) > 0 && !config.onRetry) {\n throw new Error(\n 'configureClient: maxRetries above 0 requires onRetry. A retry nothing ' +\n 'reports is indistinguishable from a slow server, which is how two ' +\n 'silent re-attempts were read as a 3,312ms call.',\n );\n }\n clientConfig = config;\n}\n\nexport function getClientConfig(): ClientConfig {\n if (!clientConfig) {\n throw new Error(\n 'Client not configured. Call configureClient({ baseUrl }) before using endpoint functions.',\n );\n }\n return clientConfig;\n}\n\n/*\n * RETRYING IS OPT-IN, OBSERVED, AND NARROW. Do not widen any of the three.\n *\n * This transport used to retry up to `maxRetries` (defaulting to THREE) over\n * 429/502/503/504 AND over any thrown network error, backing off from 1000ms,\n * with no log line anywhere. Three properties were wrong:\n *\n * 1. The DEFAULT was on. ~99% of the fleet's client configurations never\n * mention `maxRetries`, so two re-attempts could add ~3s to any call with\n * nothing to distinguish that from a slow peer. Every caller that DID set\n * it set it LOWER \u2014 canopy's control plane to 1, \"so a hard outage\n * surfaces inside the turn's latency budget rather than after three\n * backoffs\"; two llm-registry callers to 1; a test to 0. Nobody ever\n * raised it. A default three separate call sites work around is not a\n * default, and `configureOrvalClientResolved` cannot express the field at\n * all, so most callers could not have opted out if they had wanted to.\n * 2. It retried AMBIGUOUS failures. 502 and 504 mean a gateway did not get a\n * timely answer from upstream \u2014 the upstream may well have APPLIED the\n * request. So did a thrown network error mid-flight. Re-sending a POST in\n * either case is a duplicate write, and no amount of logging makes that\n * safe. Only 429 and 503 state positively that the request was NOT\n * processed, so only those are retried; everything else surfaces at once.\n * 3. Nothing reported it. Now `onRetry` is mandatory whenever the budget is\n * above 0, enforced in `configureClient`.\n *\n * Also note `baseUrlResolver` is awaited ONCE, above the loop: a re-attempt\n * returns to the same resolved instance. In a registry-resolved fleet the cure\n * for an unhealthy peer is re-resolution, which lives above this file \u2014 which\n * is a further reason not to lean on retrying here.\n *\n * Retry policy a caller genuinely wants belongs in `@xemahq/managed-fetch`,\n * which has backoff, a circuit breaker, a token bucket and health reporting,\n * and reports what it did.\n *\n * Enforced fleet-wide by `check-client-transport-envelope`, which compares\n * every client's transport to this template.\n */\n\n/** The only statuses that state the request was NOT processed. See above. */\nconst RETRYABLE_STATUSES = [429, 503];\n\n/**\n * The platform's correlation header, spelled once.\n *\n * Value-identical to what `RequestContextMiddleware` reads in\n * `@xemahq/platform-common`. It is a literal here rather than an import\n * because this file has ZERO imports on purpose: it ships byte-identical into\n * browser-target clients as well as server-target ones, and a dependency on a\n * NestJS-peer package would follow it into every one of them.\n */\nconst CORRELATION_ID_HEADER = 'X-Correlation-Id';\n\n/** Backoff floor, doubling per attempt up to {@link MAX_BACKOFF_MS}. */\nconst BASE_BACKOFF_MS = 1000;\n\n/** Ceiling on a single backoff, however many attempts have elapsed. */\nconst MAX_BACKOFF_MS = 30_000;\n\nasync function buildHeaders(\n config: ClientConfig,\n callerHeaders: RequestInit['headers'],\n): Promise<Headers> {\n const headers = new Headers(callerHeaders);\n\n // Global headers from config (caller-provided headers take precedence)\n if (config.getHeaders) {\n const globalHeaders = await Promise.resolve(config.getHeaders());\n for (const [key, value] of Object.entries(globalHeaders)) {\n if (!headers.has(key)) {\n headers.set(key, value);\n }\n }\n }\n\n // Correlation id (caller and global headers still take precedence).\n //\n // Without this, every server-to-server hop through a generated client started\n // a NEW trace: the id is read-or-minted per hop by the receiving service's\n // RequestContextMiddleware, and nothing carried it outbound \u2014 so an audit\n // journal could record a whole causal chain and offer no way to join it back\n // together.\n //\n // Absent resolver, or a resolver that answers `undefined`: NO header. The\n // receiver mints and a new trace begins, which is the truthful outcome when\n // there is nothing to continue.\n if (config.getCorrelationId && !headers.has(CORRELATION_ID_HEADER)) {\n const correlationId = await Promise.resolve(config.getCorrelationId());\n if (correlationId) {\n headers.set(CORRELATION_ID_HEADER, correlationId);\n }\n }\n\n // Auth token (caller or global headers take precedence)\n if (config.getAuthToken && !headers.has('Authorization')) {\n const token = await config.getAuthToken();\n headers.set('Authorization', `Bearer ${token}`);\n }\n\n return headers;\n}\n\n/*\n * THE TRANSPORT RETURNS THE BODY UNCHANGED. Do not reintroduce an unwrap here.\n *\n * Xema services wrap every 2xx payload in a { data: T } envelope via the global\n * ResponseEnvelopeInterceptor (platform-common), and the generator emits types\n * that describe THAT ENVELOPE \u2014 every endpoint returns Promise<XDataEnvelope>\n * or Promise<XPaginatedEnvelope>, never a bare inner T. Consumers read the data\n * property themselves.\n *\n * This template used to peel data, justified by a comment claiming generated\n * types describe the inner T. That stopped being true when the generator moved\n * to envelope-typed returns, and the comment outlived the fact \u2014 so the peel\n * then contradicted every type in every package it seeded. Four clients shipped\n * that way (resource-governance x3, workload-runtime-api): declared\n * *DataEnvelope, returned the already-peeled inner object, so .data read\n * undefined at runtime on every non-paginated endpoint. Paginated calls hid it,\n * because the old peel deliberately preserved an envelope carrying pagination.\n *\n * Four MORE shipped it in repositories the gate could not see \u2014 license-api and\n * license-internal-api in xema-operator, plus their host-web mirrors \u2014 because\n * the gate ran in xema-base only. That is why it now runs in every repository\n * that ships a client, and why this file is generator-owned rather than seeded.\n */\n\nexport const customFetch = async <T>(\n url: string,\n options: RequestInit,\n): Promise<T> => {\n const config = getClientConfig();\n const base = config.baseUrlResolver\n ? await config.baseUrlResolver()\n : config.baseUrl;\n if (base === undefined) {\n throw new Error(\n 'Client not configured: set baseUrl or baseUrlResolver via configureClient().',\n );\n }\n const fullUrl = `${base}${url}`;\n const maxRetries = config.maxRetries ?? 0;\n\n // A caller that supplied its own Authorization header owns that credential.\n // `buildHeaders` lets it win, so refreshing the CLIENT-WIDE token and\n // re-sending would replay the identical failing request with the identical\n // credential: one wasted round trip, plus a global refresh nobody asked for.\n const callerSuppliedAuth = new Headers(options.headers).has('Authorization');\n\n const headers = await buildHeaders(config, options.headers);\n const requestInit: RequestInit = { ...options, headers };\n\n let delay = BASE_BACKOFF_MS;\n\n for (let attempt = 0; ; attempt++) {\n const response = await fetch(fullUrl, requestInit);\n\n if (\n response.status === 401 &&\n config.onUnauthorized &&\n !callerSuppliedAuth &&\n attempt === 0\n ) {\n await config.onUnauthorized();\n const refreshedHeaders = await buildHeaders(config, options.headers);\n const retryResponse = await fetch(fullUrl, {\n ...options,\n headers: refreshedHeaders,\n });\n const retryBody = await parseBody(retryResponse);\n if (retryResponse.status >= 400) {\n throw new ClientError(retryResponse.status, fullUrl, retryBody);\n }\n return retryBody as T;\n }\n\n if (\n !RETRYABLE_STATUSES.includes(response.status) ||\n attempt >= maxRetries\n ) {\n const body = await parseBody(response);\n if (response.status >= 400) {\n throw new ClientError(response.status, fullUrl, body);\n }\n return body as T;\n }\n\n const retryAfter = parseRetryAfter(response.headers.get('Retry-After'));\n const waitMs = retryAfter ?? addJitter(delay);\n // Non-null: `configureClient` refuses a budget above 0 without an observer,\n // and this line is unreachable unless `maxRetries` is above 0.\n (config.onRetry as (notice: RetryNotice) => void)({\n attempt: attempt + 1,\n maxRetries,\n status: response.status,\n waitMs,\n retryAfterHonoured: retryAfter !== undefined,\n url: fullUrl,\n method: options.method ?? 'GET',\n });\n await sleep(waitMs);\n delay = Math.min(delay * 2, MAX_BACKOFF_MS);\n }\n};\n\nasync function parseBody(response: Response): Promise<unknown> {\n const contentType = response.headers.get('content-type');\n if (contentType?.includes('application/json')) {\n return response.json();\n }\n if (response.status === 204) {\n return undefined;\n }\n return response.text();\n}\n\nfunction parseRetryAfter(value: string | null): number | undefined {\n if (!value) return undefined;\n const seconds = Number(value);\n if (!isNaN(seconds) && seconds >= 0) return seconds * 1000;\n const date = new Date(value);\n if (!isNaN(date.getTime())) return Math.max(0, date.getTime() - Date.now());\n return undefined;\n}\n\nfunction addJitter(delay: number): number {\n return delay + (Math.random() * 2 - 1) * delay * 0.25;\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport default customFetch;\n";
1
+ export declare const CANONICAL_CUSTOM_FETCH = "/**\n * Configurable fetch wrapper for Orval-generated clients.\n *\n * GENERATED by `@xemahq/api-client-generator` \u2014 do not edit. Every client in\n * the fleet ships this file byte-for-byte; a local edit is erased by the next\n * `pnpm refresh` and, until then, makes this one client speak to the platform\n * differently from all of its siblings. Change the template instead:\n * `api-client-generator/src/lib/custom-fetch-template.ts`.\n *\n * Consumers must call `configureClient()` before using any endpoint function.\n * The baseUrl is prepended to the relative paths generated by Orval.\n *\n * By default this transport issues exactly ONE request and adds no delay of its\n * own, so a slow call is a slow server. Retrying is opt-in, and opting in\n * requires supplying an observer \u2014 see `maxRetries` / `onRetry` below.\n */\n\n/** What {@link ClientConfig.onRetry} is told before each re-attempt. */\nexport interface RetryNotice {\n /** 1-based index of the re-attempt about to be made. */\n attempt: number;\n /** The configured budget this re-attempt is spending from. */\n maxRetries: number;\n /** The response status that made the previous attempt retryable. */\n status: number;\n /** Delay before the re-attempt, in ms \u2014 from `Retry-After` when the server sent one. */\n waitMs: number;\n /** Whether {@link waitMs} came from the server's `Retry-After` header. */\n retryAfterHonoured: boolean;\n /** Absolute URL being re-requested. */\n url: string;\n /** HTTP method being re-requested. */\n method: string;\n}\n\nexport interface ClientConfig {\n /**\n * Static base URL (e.g. 'http://localhost:3140') \u2014 no trailing slash.\n * Mutually exclusive with `baseUrlResolver`; exactly one MUST be set.\n */\n baseUrl?: string;\n /**\n * Per-request base-URL resolver. When set, the peer URL is resolved from\n * the service registry on EVERY request (boot-order-safe). Wired by\n * `configureOrvalClientResolved` from `@xemahq/platform-common`.\n */\n baseUrlResolver?: () => string | Promise<string>;\n /** Optional async callback to get an auth token. Auto-sets Authorization header on every request. */\n getAuthToken?: () => Promise<string>;\n /** Optional callback returning headers to inject on every request. Per-call headers take precedence. */\n getHeaders?: () => Record<string, string> | Promise<Record<string, string>>;\n /**\n * Optional resolver for the CORRELATION ID of the request being made \u2014 the\n * handle that ties one causal chain together across every service hop.\n *\n * WHY IT IS A CALLBACK AND NOT A VALUE. `ClientConfig` is process-global\n * (`configureClient` is called once at wiring time), and a correlation id is\n * per-request. This is invoked INSIDE the request, so a server can point it\n * at whatever carries its ambient request context and get the CURRENT id\n * rather than the one that happened to be live at boot.\n *\n * WHY THE TRANSPORT DOES NOT MINT ONE. Returning `undefined` sends no header,\n * and the receiving service's `RequestContextMiddleware` mints its own \u2014 a\n * new trace, which is honest. A transport that minted per call would produce\n * a FRESH id on every hop while looking like propagation, which is strictly\n * worse than none: every row would carry a correlation id and no two rows\n * that belong together would share one. That is the exact defect this exists\n * to fix, so the transport must not reproduce it one layer down.\n *\n * A caller-supplied `X-Correlation-Id` header always wins, and so does one\n * from `getHeaders`.\n */\n getCorrelationId?: () =>\n | string\n | undefined\n | Promise<string | undefined>;\n /**\n * Optional callback invoked on a 401 before ONE re-attempt. Supplying it is\n * what opts this client into that re-attempt; without it a 401 comes back to\n * the caller as a `ClientError` like any other 4xx.\n */\n onUnauthorized?: () => Promise<void>;\n /**\n * Re-attempts for a retryable status. **Defaults to 0 \u2014 no retry.**\n *\n * Setting it above 0 REQUIRES `onRetry`; `configureClient` throws otherwise.\n * See the block above `customFetch` for why the budget is opt-in and why an\n * observer is mandatory rather than advisory.\n */\n maxRetries?: number;\n /**\n * Called immediately before every re-attempt, with the reason and the delay.\n *\n * Mandatory whenever `maxRetries` is above 0. It is the difference between a\n * retry and a hidden degradation path: without it a caller cannot tell a slow\n * server from this transport sleeping between attempts.\n */\n onRetry?: (notice: RetryNotice) => void;\n}\n\nexport class ClientError extends Error {\n constructor(\n public readonly status: number,\n public readonly url: string,\n public readonly body: unknown,\n ) {\n super(`HTTP ${status} from ${url}`);\n this.name = 'ClientError';\n }\n}\n\nlet clientConfig: ClientConfig | null = null;\n\nexport function configureClient(config: ClientConfig): void {\n // Fail at WIRING time, not on the request that happens to be retried. A\n // client configured to retry without an observer is the exact defect this\n // transport was rebuilt to remove, so it must not be constructible.\n if ((config.maxRetries ?? 0) > 0 && !config.onRetry) {\n throw new Error(\n 'configureClient: maxRetries above 0 requires onRetry. A retry nothing ' +\n 'reports is indistinguishable from a slow server, which is how two ' +\n 'silent re-attempts were read as a 3,312ms call.',\n );\n }\n clientConfig = config;\n}\n\nexport function getClientConfig(): ClientConfig {\n if (!clientConfig) {\n throw new Error(\n 'Client not configured. Call configureClient({ baseUrl }) before using endpoint functions.',\n );\n }\n return clientConfig;\n}\n\n/*\n * RETRYING IS OPT-IN, OBSERVED, AND NARROW. Do not widen any of the three.\n *\n * This transport used to retry up to `maxRetries` (defaulting to THREE) over\n * 429/502/503/504 AND over any thrown network error, backing off from 1000ms,\n * with no log line anywhere. Three properties were wrong:\n *\n * 1. The DEFAULT was on. ~99% of the fleet's client configurations never\n * mention `maxRetries`, so two re-attempts could add ~3s to any call with\n * nothing to distinguish that from a slow peer. Every caller that DID set\n * it set it LOWER \u2014 canopy's control plane to 1, \"so a hard outage\n * surfaces inside the turn's latency budget rather than after three\n * backoffs\"; two llm-registry callers to 1; a test to 0. Nobody ever\n * raised it. A default three separate call sites work around is not a\n * default, and `configureOrvalClientResolved` cannot express the field at\n * all, so most callers could not have opted out if they had wanted to.\n * 2. It retried AMBIGUOUS failures. 502 and 504 mean a gateway did not get a\n * timely answer from upstream \u2014 the upstream may well have APPLIED the\n * request. So did a thrown network error mid-flight. Re-sending a POST in\n * either case is a duplicate write, and no amount of logging makes that\n * safe. Only 429 and 503 state positively that the request was NOT\n * processed, so only those are retried; everything else surfaces at once.\n * 3. Nothing reported it. Now `onRetry` is mandatory whenever the budget is\n * above 0, enforced in `configureClient`.\n *\n * Also note `baseUrlResolver` is awaited ONCE, above the loop: a re-attempt\n * returns to the same resolved instance. In a registry-resolved fleet the cure\n * for an unhealthy peer is re-resolution, which lives above this file \u2014 which\n * is a further reason not to lean on retrying here.\n *\n * Retry policy a caller genuinely wants belongs in `@xemahq/managed-fetch`,\n * which has backoff, a circuit breaker, a token bucket and health reporting,\n * and reports what it did.\n *\n * Enforced fleet-wide by `check-client-transport-envelope`, which compares\n * every client's transport to this template.\n */\n\n/** The only statuses that state the request was NOT processed. See above. */\nconst RETRYABLE_STATUSES = [429, 503];\n\n/**\n * The platform's correlation header, spelled once.\n *\n * Value-identical to what `RequestContextMiddleware` reads in\n * `@xemahq/platform-common`. It is a literal here rather than an import\n * because this file has ZERO imports on purpose: it ships byte-identical into\n * browser-target clients as well as server-target ones, and a dependency on a\n * NestJS-peer package would follow it into every one of them.\n */\nconst CORRELATION_ID_HEADER = 'X-Correlation-Id';\n\n/** Backoff floor, doubling per attempt up to {@link MAX_BACKOFF_MS}. */\nconst BASE_BACKOFF_MS = 1000;\n\n/** Ceiling on a single backoff, however many attempts have elapsed. */\nconst MAX_BACKOFF_MS = 30_000;\n\nasync function buildHeaders(\n config: ClientConfig,\n callerHeaders: RequestInit['headers'],\n): Promise<Headers> {\n const headers = new Headers(callerHeaders);\n\n // Global headers from config (caller-provided headers take precedence)\n if (config.getHeaders) {\n const globalHeaders = await Promise.resolve(config.getHeaders());\n for (const [key, value] of Object.entries(globalHeaders)) {\n if (!headers.has(key)) {\n headers.set(key, value);\n }\n }\n }\n\n // Correlation id (caller and global headers still take precedence).\n //\n // Without this, every server-to-server hop through a generated client started\n // a NEW trace: the id is read-or-minted per hop by the receiving service's\n // RequestContextMiddleware, and nothing carried it outbound \u2014 so an audit\n // journal could record a whole causal chain and offer no way to join it back\n // together.\n //\n // Absent resolver, or a resolver that answers `undefined`: NO header. The\n // receiver mints and a new trace begins, which is the truthful outcome when\n // there is nothing to continue.\n if (config.getCorrelationId && !headers.has(CORRELATION_ID_HEADER)) {\n const correlationId = await Promise.resolve(config.getCorrelationId());\n if (correlationId) {\n headers.set(CORRELATION_ID_HEADER, correlationId);\n }\n }\n\n // Auth token (caller or global headers take precedence)\n if (config.getAuthToken && !headers.has('Authorization')) {\n const token = await config.getAuthToken();\n headers.set('Authorization', `Bearer ${token}`);\n }\n\n return headers;\n}\n\n/*\n * THE TRANSPORT RETURNS THE BODY UNCHANGED. Do not reintroduce an unwrap here.\n *\n * Xema services wrap every 2xx payload in a { data: T } envelope via the global\n * ResponseEnvelopeInterceptor (platform-common), and the generator emits types\n * that describe THAT ENVELOPE \u2014 every endpoint returns Promise<XDataEnvelope>\n * or Promise<XPaginatedEnvelope>, never a bare inner T. Consumers read the data\n * property themselves.\n *\n * This template used to peel data, justified by a comment claiming generated\n * types describe the inner T. That stopped being true when the generator moved\n * to envelope-typed returns, and the comment outlived the fact \u2014 so the peel\n * then contradicted every type in every package it seeded. Four clients shipped\n * that way (resource-governance x3, workload-runtime-api): declared\n * *DataEnvelope, returned the already-peeled inner object, so .data read\n * undefined at runtime on every non-paginated endpoint. Paginated calls hid it,\n * because the old peel deliberately preserved an envelope carrying pagination.\n *\n * Four MORE shipped it in repositories the gate could not see \u2014 license-api and\n * license-internal-api in xema-operator, plus their host-web mirrors \u2014 because\n * the gate ran in xema-base only. That is why it now runs in every repository\n * that ships a client, and why this file is generator-owned rather than seeded.\n */\n\nexport const customFetch = async <T>(\n url: string,\n options: RequestInit,\n): Promise<T> => {\n const config = getClientConfig();\n const base = config.baseUrlResolver\n ? await config.baseUrlResolver()\n : config.baseUrl;\n if (base === undefined) {\n throw new Error(\n 'Client not configured: set baseUrl or baseUrlResolver via configureClient().',\n );\n }\n const fullUrl = `${base}${url}`;\n const maxRetries = config.maxRetries ?? 0;\n\n // A caller that supplied its own Authorization header owns that credential.\n // `buildHeaders` lets it win, so refreshing the CLIENT-WIDE token and\n // re-sending would replay the identical failing request with the identical\n // credential: one wasted round trip, plus a global refresh nobody asked for.\n const callerSuppliedAuth = new Headers(options.headers).has('Authorization');\n\n const headers = await buildHeaders(config, options.headers);\n const requestInit: RequestInit = { ...options, headers };\n\n let delay = BASE_BACKOFF_MS;\n\n for (let attempt = 0; ; attempt++) {\n const response = await fetch(fullUrl, requestInit);\n\n if (\n response.status === 401 &&\n config.onUnauthorized &&\n !callerSuppliedAuth &&\n attempt === 0\n ) {\n await config.onUnauthorized();\n const refreshedHeaders = await buildHeaders(config, options.headers);\n const retryResponse = await fetch(fullUrl, {\n ...options,\n headers: refreshedHeaders,\n });\n const retryBody = await parseBody(retryResponse);\n if (retryResponse.status >= 400) {\n throw new ClientError(retryResponse.status, fullUrl, retryBody);\n }\n return retryBody as T;\n }\n\n if (\n !RETRYABLE_STATUSES.includes(response.status) ||\n attempt >= maxRetries\n ) {\n const body = await parseBody(response);\n if (response.status >= 400) {\n throw new ClientError(response.status, fullUrl, body);\n }\n return body as T;\n }\n\n const retryAfter = parseRetryAfter(response.headers.get('Retry-After'));\n const waitMs = retryAfter ?? addJitter(delay);\n // Non-null: `configureClient` refuses a budget above 0 without an observer,\n // and this line is unreachable unless `maxRetries` is above 0.\n (config.onRetry as (notice: RetryNotice) => void)({\n attempt: attempt + 1,\n maxRetries,\n status: response.status,\n waitMs,\n retryAfterHonoured: retryAfter !== undefined,\n url: fullUrl,\n method: options.method ?? 'GET',\n });\n await sleep(waitMs);\n delay = Math.min(delay * 2, MAX_BACKOFF_MS);\n }\n};\n\n/**\n * Does this media type carry JSON?\n *\n * \u2500\u2500 THE OUTAGE THIS FIXES \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n *\n * This used to be `contentType?.includes('application/json')`, and EVERY error\n * this fleet returns failed that test. The platform's `GlobalExceptionFilter`\n * emits RFC 9457 problem documents and sets the media type explicitly \u2014\n * `.type(PROBLEM_DETAILS_CONTENT_TYPE)` before `.json()`, so it cannot be\n * overridden \u2014 and that constant is `application/problem+json`, which does NOT\n * contain the substring `application/json`: after `application/` comes\n * `problem+json`.\n *\n * So every non-2xx body fell through to `response.text()` and reached the\n * caller as an UNPARSED STRING. `ClientError.body` is typed `unknown`, so\n * nothing complained; every consumer that reads a machine-readable code off an\n * error \u2014 `error.body.code`, `error.body.details.code` \u2014 silently read\n * `undefined` instead, for every error, in every service.\n *\n * Measured in production on 2026-09-15: skill-registry-api's\n * `resolveOrNull()` absorbs `RELEASE_CHANNEL_NOT_FOUND` into `null` by exactly\n * that read. With the code unreadable the absorb never fired, a routine \"no\n * pointer on this channel\" 404 became a 500 on `GET /skills` and\n * `GET /describe-objects`, and agent-session-api's `apply_control_bundle` step\n * aborted EVERY session launch in the organisation \u2014 7,871 failed resolutions\n * an hour. A fix written for that exact page months earlier was present in the\n * running image and could not help, because the classifier it repaired was\n * being handed a string.\n *\n * \u2500\u2500 WHY THE STRUCTURED SUFFIX, NOT A SECOND SUBSTRING \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n *\n * Adding `|| includes('application/problem+json')` would fix this one media\n * type and leave the next one \u2014 `application/vnd.api+json`, and anything else\n * a service legitimately emits. RFC 6839 defines `+json` as the structured\n * syntax suffix meaning \"this is JSON\"; that is the actual rule, so it is the\n * rule implemented. Parameters are stripped first, because\n * `application/problem+json; charset=utf-8` is the same media type.\n */\nfunction isJsonMediaType(contentType: string | null): boolean {\n if (contentType === null) {\n return false;\n }\n const essence = contentType.split(';')[0]?.trim().toLowerCase() ?? '';\n return essence === 'application/json' || essence.endsWith('+json');\n}\n\nasync function parseBody(response: Response): Promise<unknown> {\n const contentType = response.headers.get('content-type');\n if (isJsonMediaType(contentType)) {\n return response.json();\n }\n if (response.status === 204) {\n return undefined;\n }\n return response.text();\n}\n\nfunction parseRetryAfter(value: string | null): number | undefined {\n if (!value) return undefined;\n const seconds = Number(value);\n if (!isNaN(seconds) && seconds >= 0) return seconds * 1000;\n const date = new Date(value);\n if (!isNaN(date.getTime())) return Math.max(0, date.getTime() - Date.now());\n return undefined;\n}\n\nfunction addJitter(delay: number): number {\n return delay + (Math.random() * 2 - 1) * delay * 0.25;\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport default customFetch;\n";
2
2
  //# sourceMappingURL=custom-fetch-template.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom-fetch-template.d.ts","sourceRoot":"","sources":["../../src/lib/custom-fetch-template.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,sBAAsB,iseAgXlC,CAAC"}
1
+ {"version":3,"file":"custom-fetch-template.d.ts","sourceRoot":"","sources":["../../src/lib/custom-fetch-template.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,sBAAsB,27jBA8ZlC,CAAC"}
@@ -340,9 +340,55 @@ export const customFetch = async <T>(
340
340
  }
341
341
  };
342
342
 
343
+ /**
344
+ * Does this media type carry JSON?
345
+ *
346
+ * ── THE OUTAGE THIS FIXES ────────────────────────────────────────────────
347
+ *
348
+ * This used to be \`contentType?.includes('application/json')\`, and EVERY error
349
+ * this fleet returns failed that test. The platform's \`GlobalExceptionFilter\`
350
+ * emits RFC 9457 problem documents and sets the media type explicitly —
351
+ * \`.type(PROBLEM_DETAILS_CONTENT_TYPE)\` before \`.json()\`, so it cannot be
352
+ * overridden — and that constant is \`application/problem+json\`, which does NOT
353
+ * contain the substring \`application/json\`: after \`application/\` comes
354
+ * \`problem+json\`.
355
+ *
356
+ * So every non-2xx body fell through to \`response.text()\` and reached the
357
+ * caller as an UNPARSED STRING. \`ClientError.body\` is typed \`unknown\`, so
358
+ * nothing complained; every consumer that reads a machine-readable code off an
359
+ * error — \`error.body.code\`, \`error.body.details.code\` — silently read
360
+ * \`undefined\` instead, for every error, in every service.
361
+ *
362
+ * Measured in production on 2026-09-15: skill-registry-api's
363
+ * \`resolveOrNull()\` absorbs \`RELEASE_CHANNEL_NOT_FOUND\` into \`null\` by exactly
364
+ * that read. With the code unreadable the absorb never fired, a routine "no
365
+ * pointer on this channel" 404 became a 500 on \`GET /skills\` and
366
+ * \`GET /describe-objects\`, and agent-session-api's \`apply_control_bundle\` step
367
+ * aborted EVERY session launch in the organisation — 7,871 failed resolutions
368
+ * an hour. A fix written for that exact page months earlier was present in the
369
+ * running image and could not help, because the classifier it repaired was
370
+ * being handed a string.
371
+ *
372
+ * ── WHY THE STRUCTURED SUFFIX, NOT A SECOND SUBSTRING ────────────────────
373
+ *
374
+ * Adding \`|| includes('application/problem+json')\` would fix this one media
375
+ * type and leave the next one — \`application/vnd.api+json\`, and anything else
376
+ * a service legitimately emits. RFC 6839 defines \`+json\` as the structured
377
+ * syntax suffix meaning "this is JSON"; that is the actual rule, so it is the
378
+ * rule implemented. Parameters are stripped first, because
379
+ * \`application/problem+json; charset=utf-8\` is the same media type.
380
+ */
381
+ function isJsonMediaType(contentType: string | null): boolean {
382
+ if (contentType === null) {
383
+ return false;
384
+ }
385
+ const essence = contentType.split(';')[0]?.trim().toLowerCase() ?? '';
386
+ return essence === 'application/json' || essence.endsWith('+json');
387
+ }
388
+
343
389
  async function parseBody(response: Response): Promise<unknown> {
344
390
  const contentType = response.headers.get('content-type');
345
- if (contentType?.includes('application/json')) {
391
+ if (isJsonMediaType(contentType)) {
346
392
  return response.json();
347
393
  }
348
394
  if (response.status === 204) {
@@ -1 +1 @@
1
- {"version":3,"file":"custom-fetch-template.js","sourceRoot":"","sources":["../../src/lib/custom-fetch-template.ts"],"names":[],"mappings":";;;AAca,QAAA,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgXrC,CAAC"}
1
+ {"version":3,"file":"custom-fetch-template.js","sourceRoot":"","sources":["../../src/lib/custom-fetch-template.ts"],"names":[],"mappings":";;;AAca,QAAA,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8ZrC,CAAC"}
@@ -1,4 +1,13 @@
1
1
  import { type ApiSurface } from '@xemahq/xema-decorators';
2
- export declare function generateClientsForService(serviceDir?: string): Promise<ApiSurface[]>;
2
+ import { type BumpClass } from './client-version';
3
+ export interface GenerateClientsOptions {
4
+ readonly bumpClass?: BumpClass | undefined;
5
+ readonly bumpClassOrigin?: string | undefined;
6
+ }
7
+ export declare function generateClientsForService(serviceDir?: string, options?: GenerateClientsOptions): Promise<ApiSurface[]>;
8
+ export declare function readCliBumpClass(argv: readonly string[], env: NodeJS.ProcessEnv): {
9
+ readonly bumpClass: BumpClass | undefined;
10
+ readonly bumpClassOrigin: string | undefined;
11
+ };
3
12
  export declare function runClientGenerateCli(): void;
4
13
  //# sourceMappingURL=generate-clients.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-clients.d.ts","sourceRoot":"","sources":["../../src/lib/generate-clients.ts"],"names":[],"mappings":"AAKA,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AA8OxE,wBAAsB,yBAAyB,CAC7C,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,UAAU,EAAE,CAAC,CA8GvB;AAGD,wBAAgB,oBAAoB,IAAI,IAAI,CAO3C"}
1
+ {"version":3,"file":"generate-clients.d.ts","sourceRoot":"","sources":["../../src/lib/generate-clients.ts"],"names":[],"mappings":"AAKA,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAcxE,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,kBAAkB,CAAC;AAyN1B,MAAM,WAAW,sBAAsB;IAQrC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAE3C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/C;AAgGD,wBAAsB,yBAAyB,CAC7C,UAAU,GAAE,MAAsB,EAClC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,UAAU,EAAE,CAAC,CA8IvB;AAmBD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG;IACjF,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9C,CA8BA;AAGD,wBAAgB,oBAAoB,IAAI,IAAI,CAe3C"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateClientsForService = generateClientsForService;
4
+ exports.readCliBumpClass = readCliBumpClass;
4
5
  exports.runClientGenerateCli = runClientGenerateCli;
5
6
  const node_child_process_1 = require("node:child_process");
6
7
  const node_fs_1 = require("node:fs");
@@ -10,6 +11,7 @@ const xema_decorators_1 = require("@xemahq/xema-decorators");
10
11
  const client_package_1 = require("./client-package");
11
12
  const client_readme_1 = require("./client-readme");
12
13
  const client_repository_1 = require("./client-repository");
14
+ const client_surface_1 = require("./client-surface");
13
15
  const client_version_1 = require("./client-version");
14
16
  const repo_post_process_1 = require("./repo-post-process");
15
17
  const service_config_1 = require("./service-config");
@@ -88,10 +90,53 @@ function restampClientVersion(clientDir, version) {
88
90
  pkg.version = version;
89
91
  (0, node_fs_1.writeFileSync)(pkgPath, `${JSON.stringify(pkg, null, 2)}\n`, 'utf8');
90
92
  }
91
- async function generateClientsForService(serviceDir = process.cwd()) {
93
+ function resolveSurfaceBumpClass(args) {
94
+ const { serviceId, surfaces, surfacesBefore, surfacesAfter, contentChanged, explicit, explicitOrigin, } = args;
95
+ const verdicts = surfaces.map((surface) => {
96
+ const before = surfacesBefore.get(surface);
97
+ const after = surfacesAfter.get(surface);
98
+ if (!before || !after) {
99
+ throw new Error(`api-client-generator: ${serviceId} — the ${surface} surface was generated ` +
100
+ 'without a before/after surface reading, so its change cannot be classified.');
101
+ }
102
+ return (0, client_surface_1.classifySurfaceChange)({ before, after, contentChanged });
103
+ });
104
+ const indeterminate = verdicts.filter((v) => v.kind === 'indeterminate');
105
+ if (indeterminate.length > 0) {
106
+ return (0, client_surface_1.resolveClientBumpClass)({
107
+ verdict: {
108
+ kind: 'indeterminate',
109
+ reasons: indeterminate.flatMap((v) => v.reasons),
110
+ },
111
+ explicit,
112
+ serviceId,
113
+ explicitOrigin,
114
+ });
115
+ }
116
+ let proven = 'none';
117
+ const reasons = [];
118
+ for (const verdict of verdicts) {
119
+ if (verdict.kind !== 'determinate') {
120
+ continue;
121
+ }
122
+ reasons.push(...verdict.reasons);
123
+ if ((0, client_version_1.bumpClassExceeds)(verdict.bumpClass, proven)) {
124
+ proven = verdict.bumpClass;
125
+ }
126
+ }
127
+ return (0, client_surface_1.resolveClientBumpClass)({
128
+ verdict: { kind: 'determinate', bumpClass: proven, reasons },
129
+ explicit,
130
+ serviceId,
131
+ explicitOrigin,
132
+ });
133
+ }
134
+ async function generateClientsForService(serviceDir = process.cwd(), options = {}) {
92
135
  const ctx = (0, service_config_1.resolveServiceContext)(serviceDir);
93
136
  const generate = await resolveOrvalGenerate(ctx.serviceDir);
94
137
  const repositoryUrl = await (0, client_repository_1.resolveClientRepositoryUrl)(ctx.repoRoot);
138
+ const license = (await (0, client_repository_1.declaredClientLicense)(ctx.repoRoot)) ??
139
+ (0, client_package_1.resolveGeneratedClientLicense)(ctx.repoRoot);
95
140
  const surfacesWithSpec = xema_decorators_1.ALL_SURFACES.filter((s) => (0, node_fs_1.existsSync)((0, service_config_1.surfaceSpecPath)(ctx, s)));
96
141
  assertNoOrphanedSurfaceClients(ctx, surfacesWithSpec);
97
142
  const existingClientVersions = (0, client_version_1.readExistingClientVersions)(ctx);
@@ -104,11 +149,14 @@ async function generateClientsForService(serviceDir = process.cwd()) {
104
149
  const generated = [];
105
150
  const clientDirs = new Map();
106
151
  let contentChanged = false;
152
+ const surfacesBefore = new Map();
153
+ const surfacesAfter = new Map();
107
154
  for (const surface of surfacesWithSpec) {
108
155
  const specPath = (0, service_config_1.surfaceSpecPath)(ctx, surface);
109
- const { clientDir, clientSrc } = (0, client_package_1.ensureClientPackage)(ctx, surface, baseline, repositoryUrl);
156
+ const { clientDir, clientSrc } = (0, client_package_1.ensureClientPackage)(ctx, surface, baseline, repositoryUrl, license);
110
157
  clientDirs.set(surface, clientDir);
111
158
  const fingerprintBefore = (0, client_version_1.fingerprintGeneratedOutput)(clientSrc);
159
+ surfacesBefore.set(surface, (0, client_surface_1.extractClientSurface)(clientSrc));
112
160
  (0, client_readme_1.ensureClientReadme)({
113
161
  clientDir,
114
162
  packageName: (0, service_config_1.surfaceClientPackageName)(ctx.api.serviceId, surface),
@@ -123,6 +171,7 @@ async function generateClientsForService(serviceDir = process.cwd()) {
123
171
  if ((0, client_version_1.fingerprintGeneratedOutput)(clientSrc) !== fingerprintBefore) {
124
172
  contentChanged = true;
125
173
  }
174
+ surfacesAfter.set(surface, (0, client_surface_1.extractClientSurface)(clientSrc));
126
175
  (0, node_fs_1.rmSync)((0, node_path_1.join)(clientDir, 'dist'), { recursive: true, force: true });
127
176
  (0, node_child_process_1.execFileSync)('pnpm', ['exec', 'tsc', '-p', 'tsconfig.json'], {
128
177
  cwd: clientDir,
@@ -130,10 +179,20 @@ async function generateClientsForService(serviceDir = process.cwd()) {
130
179
  });
131
180
  generated.push(surface);
132
181
  }
182
+ const bumpClass = resolveSurfaceBumpClass({
183
+ serviceId: ctx.api.serviceId,
184
+ surfaces: generated,
185
+ surfacesBefore,
186
+ surfacesAfter,
187
+ contentChanged,
188
+ explicit: options.bumpClass,
189
+ explicitOrigin: options.bumpClassOrigin,
190
+ });
133
191
  const resolvedVersion = (0, client_version_1.advanceClientVersionLine)({
134
192
  baseline,
135
193
  contentChanged,
136
194
  hadExistingClients: existingClientVersions.length > 0,
195
+ bumpClass,
137
196
  });
138
197
  for (const surface of generated) {
139
198
  restampClientVersion(clientDirs.get(surface), resolvedVersion);
@@ -141,11 +200,49 @@ async function generateClientsForService(serviceDir = process.cwd()) {
141
200
  console.log(`[xema-client-generate] ${ctx.api.serviceId}: generated ${generated.length} client(s) → ${generated.join(', ') || '(none)'} @ ${resolvedVersion}` +
142
201
  (resolvedVersion === baseline
143
202
  ? ' (unchanged output — version line held)'
144
- : ` (output changed — advanced from ${baseline})`));
203
+ : ` (output changed, ${bumpClass} — advanced from ${baseline})`));
145
204
  return generated;
146
205
  }
206
+ function readCliBumpClass(argv, env) {
207
+ const inline = argv.find((arg) => arg.startsWith('--bump-class='));
208
+ if (inline !== undefined) {
209
+ return {
210
+ bumpClass: (0, client_version_1.parseBumpClass)(inline.slice('--bump-class='.length), '--bump-class'),
211
+ bumpClassOrigin: '--bump-class',
212
+ };
213
+ }
214
+ const separated = argv.indexOf('--bump-class');
215
+ if (separated !== -1) {
216
+ const value = argv[separated + 1];
217
+ if (value === undefined) {
218
+ throw new Error('api-client-generator: --bump-class was given no value. Use ' +
219
+ '--bump-class=<patch|minor|major>.');
220
+ }
221
+ return {
222
+ bumpClass: (0, client_version_1.parseBumpClass)(value, '--bump-class'),
223
+ bumpClassOrigin: '--bump-class',
224
+ };
225
+ }
226
+ const fromEnv = env.XEMA_CLIENT_BUMP_CLASS;
227
+ if (fromEnv !== undefined && fromEnv.trim() !== '') {
228
+ return {
229
+ bumpClass: (0, client_version_1.parseBumpClass)(fromEnv, 'XEMA_CLIENT_BUMP_CLASS'),
230
+ bumpClassOrigin: 'XEMA_CLIENT_BUMP_CLASS',
231
+ };
232
+ }
233
+ return { bumpClass: undefined, bumpClassOrigin: undefined };
234
+ }
147
235
  function runClientGenerateCli() {
148
- generateClientsForService()
236
+ let options;
237
+ try {
238
+ options = readCliBumpClass(process.argv.slice(2), process.env);
239
+ }
240
+ catch (err) {
241
+ console.error('[xema-client-generate]', err.message);
242
+ process.exit(1);
243
+ return;
244
+ }
245
+ generateClientsForService(process.cwd(), options)
149
246
  .then(() => process.exit(0))
150
247
  .catch((err) => {
151
248
  console.error('[xema-client-generate] generation failed:', err);
@@ -1 +1 @@
1
- {"version":3,"file":"generate-clients.js","sourceRoot":"","sources":["../../src/lib/generate-clients.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-clients.js","sourceRoot":"","sources":["../../src/lib/generate-clients.ts"],"names":[],"mappings":";;AA+VA,8DAiJC;AAmBD,4CAiCC;AAGD,oDAeC;AAtjBD,2DAAkD;AAClD,qCAA0E;AAC1E,yCAAiC;AACjC,uCAAyC;AAEzC,6DAAwE;AAExE,qDAAsF;AACtF,mDAAqD;AACrD,2DAG6B;AAC7B,qDAK0B;AAC1B,qDAQ0B;AAC1B,2DAAwD;AACxD,qDAM0B;AAQ1B,KAAK,UAAU,iBAAiB,CAC9B,UAAkB,EAClB,OAAe;IAEf,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACnE,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAErB,CAAC;IACtC,OAAO,aAAa,CAAC,IAAA,wBAAa,EAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAID,KAAK,UAAU,oBAAoB,CACjC,UAAkB;IAElB,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACzD,MAAM,QAAQ,GACX,GAAG,CAAC,QAAsC;QAC1C,GAAG,CAAC,OAAoD,EAAE,QAAQ,CAAC;IACtE,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAiCD,SAAS,cAAc,CAAC,QAAgB,EAAE,SAAiB;IACzD,OAAO;QACL,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC3B,MAAM,EAAE;YACN,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,GAAG,SAAS,YAAY;YAChC,OAAO,EAAE,GAAG,SAAS,SAAS;YAC9B,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE;gBAMR,MAAM,EAAE,CAAC,IAA0C,EAAY,EAAE,CAAC;oBAChE,mEAAmE;oBACnE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACjD,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS;wBAC5B,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC,CAAC,yBAAyB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;iBAC/C;gBACD,KAAK,EAAE,EAAE,6BAA6B,EAAE,KAAK,EAAE;gBAC/C,OAAO,EAAE;oBACP,IAAI,EAAE,GAAG,SAAS,kBAAkB;oBACpC,IAAI,EAAE,aAAa;iBACpB;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAsBD,MAAM,8BAA8B,GAClC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAuBpB,SAAS,8BAA8B,CACrC,GAA2B,EAC3B,gBAAuC;IAEvC,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,8BAAY,CAAC,MAAM,CACjC,CAAC,OAAO,EAAE,EAAE,CACV,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC;QACnC,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,IAAA,iCAAgB,EAAC,GAAG,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CACvE,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAC3C,MAAM,CAAC,MAAM,CACX,8BAA8B,EAC9B,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,EAAE,CAClC,CACF,CAAC;IACF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3E,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,EAAE,CAAC;QAE9C,OAAO,CAAC,IAAI,CACV,uCAAuC,GAAG,MAAM,IAAA,iCAAgB,EAAC,GAAG,EAAE,OAAO,CAAC,GAAG;YAC/E,yCAAyC,8BAA8B,CAAC,GAAG,CAAC,EAAE,CACjF,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IACD,MAAM,IAAI,KAAK,CACb,yBAAyB,GAAG,CAAC,GAAG,CAAC,SAAS,gCAAgC;QACxE,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,mDAAmD;QACzE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,iCAAgB,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB;QAC3E,yEAAyE;QACzE,uEAAuE;QACvE,yBAAyB,CAC5B,CAAC;AACJ,CAAC;AASD,SAAS,oBAAoB,CAAC,SAAiB,EAAE,OAAe;IAC9D,MAAM,OAAO,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,OAAO,EAAE,MAAM,CAAC,CAGnD,CAAC;IACF,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO;IACT,CAAC;IACD,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACtB,IAAA,uBAAa,EAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC;AA6BD,SAAS,uBAAuB,CAAC,IAQhC;IACC,MAAM,EACJ,SAAS,EACT,QAAQ,EACR,cAAc,EACd,aAAa,EACb,cAAc,EACd,QAAQ,EACR,cAAc,GACf,GAAG,IAAI,CAAC;IACT,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACxC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAKtB,MAAM,IAAI,KAAK,CACb,yBAAyB,SAAS,UAAU,OAAO,yBAAyB;gBAC1E,6EAA6E,CAChF,CAAC;QACJ,CAAC;QACD,OAAO,IAAA,sCAAqB,EAAC,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAKH,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;IACzE,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAA,uCAAsB,EAAC;YAC5B,OAAO,EAAE;gBACP,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aACjD;YACD,QAAQ;YACR,SAAS;YACT,cAAc;SACf,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,GAAc,MAAM,CAAC;IAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACnC,SAAS;QACX,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,IAAA,iCAAgB,EAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;YAChD,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,IAAA,uCAAsB,EAAC;QAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;QAC5D,QAAQ;QACR,SAAS;QACT,cAAc;KACf,CAAC,CAAC;AACL,CAAC;AAcM,KAAK,UAAU,yBAAyB,CAC7C,aAAqB,OAAO,CAAC,GAAG,EAAE,EAClC,UAAkC,EAAE;IAEpC,MAAM,GAAG,GAA2B,IAAA,sCAAqB,EAAC,UAAU,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAO5D,MAAM,aAAa,GAAG,MAAM,IAAA,8CAA0B,EAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAQrE,MAAM,OAAO,GACX,CAAC,MAAM,IAAA,yCAAqB,EAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAA,8CAA6B,EAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE9C,MAAM,gBAAgB,GAAG,8BAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACjD,IAAA,oBAAU,EAAC,IAAA,gCAAe,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CACpC,CAAC;IACF,8BAA8B,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAKtD,MAAM,sBAAsB,GAAG,IAAA,2CAA0B,EAAC,GAAG,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAA,6CAA4B,EAC3C,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAC5C,GAAG,CAAC,OAAO,CACZ,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAInB,OAAO,CAAC,IAAI,CACV,0BAA0B,GAAG,CAAC,GAAG,CAAC,SAAS,sCAAsC;YAC/E,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iCAAiC,QAAQ,GAAG,CAC9E,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAiB,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAsB,CAAC;IACjD,IAAI,cAAc,GAAG,KAAK,CAAC;IAI3B,MAAM,cAAc,GAAG,IAAI,GAAG,EAA6B,CAAC;IAC5D,MAAM,aAAa,GAAG,IAAI,GAAG,EAA6B,CAAC;IAE3D,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAA,gCAAe,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAA,oCAAmB,EAClD,GAAG,EACH,OAAO,EACP,QAAQ,EACR,aAAa,EACb,OAAO,CACR,CAAC;QACF,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAInC,MAAM,iBAAiB,GAAG,IAAA,2CAA0B,EAAC,SAAS,CAAC,CAAC;QAChE,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,IAAA,qCAAoB,EAAC,SAAS,CAAC,CAAC,CAAC;QAC7D,IAAA,kCAAkB,EAAC;YACjB,SAAS;YACT,WAAW,EAAE,IAAA,yCAAwB,EAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC;YACjE,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK;YAC3B,OAAO;YACP,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB,CAAC,CAAC;QAIH,IAAA,gBAAM,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,IAAA,gBAAM,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,MAAM,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;QACpD,IAAA,qCAAiB,EAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC3D,IAAI,IAAA,2CAA0B,EAAC,SAAS,CAAC,KAAK,iBAAiB,EAAE,CAAC;YAChE,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,IAAA,qCAAoB,EAAC,SAAS,CAAC,CAAC,CAAC;QAW5D,IAAA,gBAAM,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAElE,IAAA,iCAAY,EAAC,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,EAAE;YAC3D,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IASD,MAAM,SAAS,GAAG,uBAAuB,CAAC;QACxC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS;QAC5B,QAAQ,EAAE,SAAS;QACnB,cAAc;QACd,aAAa;QACb,cAAc;QACd,QAAQ,EAAE,OAAO,CAAC,SAAS;QAC3B,cAAc,EAAE,OAAO,CAAC,eAAe;KACxC,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,IAAA,yCAAwB,EAAC;QAC/C,QAAQ;QACR,cAAc;QACd,kBAAkB,EAAE,sBAAsB,CAAC,MAAM,GAAG,CAAC;QACrD,SAAS;KACV,CAAC,CAAC;IACH,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAW,EAAE,eAAe,CAAC,CAAC;IAC3E,CAAC;IAGD,OAAO,CAAC,GAAG,CACT,0BAA0B,GAAG,CAAC,GAAG,CAAC,SAAS,eACzC,SAAS,CAAC,MACZ,gBAAgB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,MAAM,eAAe,EAAE;QACrE,CAAC,eAAe,KAAK,QAAQ;YAC3B,CAAC,CAAC,yCAAyC;YAC3C,CAAC,CAAC,qBAAqB,SAAS,oBAAoB,QAAQ,GAAG,CAAC,CACrE,CAAC;IACF,OAAO,SAAS,CAAC;AACnB,CAAC;AAmBD,SAAgB,gBAAgB,CAAC,IAAuB,EAAE,GAAsB;IAI9E,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;IACnE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO;YACL,SAAS,EAAE,IAAA,+BAAc,EAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;YAC/E,eAAe,EAAE,cAAc;SAChC,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/C,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,6DAA6D;gBAC3D,mCAAmC,CACtC,CAAC;QACJ,CAAC;QACD,OAAO;YACL,SAAS,EAAE,IAAA,+BAAc,EAAC,KAAK,EAAE,cAAc,CAAC;YAChD,eAAe,EAAE,cAAc;SAChC,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,sBAAsB,CAAC;IAC3C,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACnD,OAAO;YACL,SAAS,EAAE,IAAA,+BAAc,EAAC,OAAO,EAAE,wBAAwB,CAAC;YAC5D,eAAe,EAAE,wBAAwB;SAC1C,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;AAC9D,CAAC;AAGD,SAAgB,oBAAoB;IAClC,IAAI,OAA+B,CAAC;IACpC,IAAI,CAAC;QACH,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IACD,yBAAyB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC;SAC9C,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC3B,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACtB,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xemahq/api-client-generator",
3
- "version": "0.18.2",
3
+ "version": "0.20.0",
4
4
  "description": "Layer 1 — the single, central OpenAPI + ORVAL client generator for every Xema NestJS service. Replaces the per-service orval.config.ts / scripts/extract-openapi.ts / scripts/build-client-index.js trio with two bins (xema-openapi, xema-client-generate). Extracts one OpenAPI document per ApiSurface (public/internal/operator) using the @XemaApiSurface decorator metadata, generates one ORVAL client package per non-empty surface (every surface of a service landing on ONE derived version — the highest its clients already carry, advanced a patch when the generated output changes), and stamps deterministic `xema` provenance metadata into each generated client package.json. No heuristics: a route ships in a surface only if it (or its controller) is explicitly classified, and no client version is ever typed by hand.",
5
5
  "keywords": [
6
6
  "xema",
@@ -37,7 +37,7 @@
37
37
  "@nestjs/core": "^10 || ^11",
38
38
  "@nestjs/swagger": "^7 || ^8 || ^11",
39
39
  "@nestjs/testing": "^10 || ^11",
40
- "@xemahq/xema-decorators": ">=0.7.0 <0.15.0",
40
+ "@xemahq/xema-decorators": ">=0.7.0",
41
41
  "orval": "^8",
42
42
  "reflect-metadata": "^0.2",
43
43
  "ts-node": "^10",
@@ -62,8 +62,8 @@
62
62
  "prettier": "3.6.2",
63
63
  "reflect-metadata": "0.2.2",
64
64
  "typescript": "5.9.3",
65
- "@xemahq/xema-decorators": "0.14.0",
66
- "@xemahq/eslint-config": "0.3.0"
65
+ "@xemahq/eslint-config": "0.7.0",
66
+ "@xemahq/xema-decorators": "0.16.0"
67
67
  },
68
68
  "exports": {
69
69
  ".": {