@voxgig/create-sdkgen 0.17.1 → 0.18.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.
@@ -69,7 +69,13 @@ function CreateSdkGen(opts) {
69
69
  const rootModule = require(rootPath);
70
70
  const CreateRoot = rootModule.CreateRoot;
71
71
  const name = spec.name;
72
- spec.def = (null == spec.def || '' === spec.def) ? name + '-openapi3.yml' : spec.def;
72
+ const defGiven = null != spec.def && '' !== spec.def;
73
+ // A given-but-missing --def is a mistake; omitting --def entirely
74
+ // legitimately gets the placeholder spec below.
75
+ if (defGiven && !fs.existsSync(spec.def)) {
76
+ throw new Error(`OpenAPI definition file not found: ${spec.def}`);
77
+ }
78
+ spec.def = defGiven ? spec.def : name + '-openapi3.yml';
73
79
  spec.sdk_folder = SDK_FOLDER;
74
80
  const cwd = process.cwd();
75
81
  const folder = (null == spec.folder || '' == spec.folder) ?
@@ -1 +1 @@
1
- {"version":3,"file":"create-sdkgen.js","sourceRoot":"","sources":["../src/create-sdkgen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-sdkgen.js","sourceRoot":"","sources":["../src/create-sdkgen.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
+ declare function sanitizeDefName(filename: string): string;
1
2
  declare const CreateRoot: import("jostraca").Component;
2
- export { CreateRoot };
3
+ export { CreateRoot, sanitizeDefName, };
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.CreateRoot = void 0;
7
+ exports.sanitizeDefName = sanitizeDefName;
7
8
  const node_path_1 = __importDefault(require("node:path"));
8
9
  // import * as Fs from 'node:fs'
9
10
  const jostraca_1 = require("jostraca");
@@ -88,6 +89,36 @@ function mergeGuide(existing, template) {
88
89
  }
89
90
  return missing.join('\n') + '\n\n' + existing;
90
91
  }
92
+ // The OpenAPI filename is inherited from the upstream API slug, and upstream
93
+ // slugs are not constrained: the freepublicapis corpus contains apostrophes
94
+ // (catherine-shulman's-quotes), accents (dólar-y-monedas, kölner-adressen),
95
+ // and '!' / '>' / '_'. That name is copied into .sdk/def/ AND written verbatim
96
+ // into a single-quoted aontu string in sdk.aontu:
97
+ //
98
+ // def: 'catherine-shulman's-quotes_0.1.0.json'
99
+ // ^ terminates the string -> AontuError, no SDK
100
+ //
101
+ // Slugs are [a-z0-9-]; a filename additionally needs '.' and '_' for the
102
+ // version segment and extension, so those are kept — which also means every
103
+ // already-conforming name (including cedar's dotted gitlab-v4-swagger-2.0.yaml)
104
+ // is untouched and no repo churns. Everything else is folded to '-'.
105
+ function sanitizeDefName(filename) {
106
+ const clean = filename
107
+ .normalize('NFKD').replace(/[\u0300-\u036f]/g, '') // dólar -> dolar
108
+ .toLowerCase()
109
+ // Quotes are ELIDED, not folded to '-', so the filename agrees with the
110
+ // repo name apidef's sanitizeSlug derives from the same slug:
111
+ // catherine-shulman's-quotes -> catherine-shulmans-quotes(-sdk).
112
+ .replace(/['’"]/g, '')
113
+ .replace(/[^a-z0-9._-]+/g, '-')
114
+ .replace(/-+/g, '-')
115
+ // yu-gi-oh!_0.1.0.json would otherwise keep the '!' as a dangling '-'
116
+ // before the version separator: yu-gi-oh-_0.1.0.json.
117
+ .replace(/-+([._])/g, '$1')
118
+ .replace(/([._])-+/g, '$1')
119
+ .replace(/^-|-$/g, '');
120
+ return '' === clean ? 'openapi.yml' : clean;
121
+ }
91
122
  // TODO: rename to RootSdk
92
123
  const CreateRoot = (0, jostraca_1.cmp)(function CreateRoot(props) {
93
124
  const { ctx$, ctx$: { folder }, spec, model } = props;
@@ -115,7 +146,7 @@ const CreateRoot = (0, jostraca_1.cmp)(function CreateRoot(props) {
115
146
  (0, jostraca_1.Content)(GITIGNORE_TOP);
116
147
  });
117
148
  const origdef = spec.def;
118
- const projdef = node_path_1.default.basename(origdef);
149
+ const projdef = sanitizeDefName(node_path_1.default.basename(origdef));
119
150
  spec.def = projdef;
120
151
  (0, jostraca_1.Folder)({ name: spec.sdk_folder }, () => {
121
152
  (0, jostraca_1.File)({ name: '.gitignore' }, () => {
@@ -1 +1 @@
1
- {"version":3,"file":"CreateRoot.js","sourceRoot":"","sources":["../../../src/project/standard/CreateRoot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CreateRoot.js","sourceRoot":"","sources":["../../../src/project/standard/CreateRoot.ts"],"names":[],"mappings":";;;;;;QAmOE,eAAe;AAjOjB,0DAA4B;AAC5B,gCAAgC;AAEhC,uCAUiB;AAGjB,yCAAqC;AAGrC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;CAkBrB,CAAA;AAGD,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;CAmBrB,CAAA;AAGD,yDAAyD;AACzD,EAAE;AACF,+EAA+E;AAC/E,gFAAgF;AAChF,+EAA+E;AAC/E,sEAAsE;AACtE,wEAAwE;AACxE,4EAA4E;AAC5E,yEAAyE;AACzE,yEAAyE;AACzE,YAAY;AACZ,EAAE;AACF,yEAAyE;AACzE,MAAM,UAAU,GAAG,aAAa,CAAA;AAChC,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;AAGhD,2DAA2D;AAC3D,EAAE;AACF,2EAA2E;AAC3E,0EAA0E;AAC1E,4EAA4E;AAC5E,2EAA2E;AAC3E,gCAAgC;AAChC,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,qEAAqE;AACrE,SAAS,UAAU,CAAC,QAAuB,EAAE,QAAgB;IAC3D,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IAE/D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAC7E,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;SACjC,MAAM,CAAC,SAAS,CAAC;SACjB,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAClC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IAE5C,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,QAAQ,CAAA;AAC/C,CAAC;AAGD,6EAA6E;AAC7E,4EAA4E;AAC5E,4EAA4E;AAC5E,+EAA+E;AAC/E,kDAAkD;AAClD,EAAE;AACF,mDAAmD;AACnD,6EAA6E;AAC7E,EAAE;AACF,yEAAyE;AACzE,4EAA4E;AAC5E,gFAAgF;AAChF,qEAAqE;AACrE,SAAS,eAAe,CAAC,QAAgB;IACvC,MAAM,KAAK,GAAG,QAAQ;SACnB,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAE,iBAAiB;SACpE,WAAW,EAAE;QACd,wEAAwE;QACxE,8DAA8D;QAC9D,iEAAiE;SAChE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACpB,sEAAsE;QACtE,sDAAsD;SACrD,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;SAC1B,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;SAC1B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IACxB,OAAO,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAA;AAC7C,CAAC;AAGD,0BAA0B;AAC1B,MAAM,UAAU,GAAG,IAAA,cAAG,EAAC,SAAS,UAAU,CAAC,KAAU;IACnD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACrD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;IAEpB,2CAA2C;IAC3C,KAAK,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;IAClC,IAAA,gBAAK,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9B,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC3C,yEAAyE;IACzE,4EAA4E;IAC5E,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAA;IAE3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IAElB,IAAA,kBAAO,EAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE;QACvB,MAAM,IAAI,GACR,mBAAI,CAAC,OAAO,CAAC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAA;QAE7E,4BAA4B;QAE5B,yEAAyE;QACzE,uEAAuE;QACvE,qCAAqC;QACrC,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAE9D,IAAA,eAAI,EAAC;YACH,IAAI;YACJ,OAAO,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC;SACxC,CAAC,CAAA;QAEF,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE;YAChC,IAAA,kBAAO,EAAC,aAAa,CAAC,CAAA;QACxB,CAAC,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAA;QACxB,MAAM,OAAO,GAAG,eAAe,CAAC,mBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;QACvD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAA;QAElB,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE;YACrC,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE;gBAChC,IAAA,kBAAO,EAAC,aAAa,CAAC,CAAA;YACxB,CAAC,CAAC,CAAA;YAEF,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;gBAC3B,qDAAqD;gBACrD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3B,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;gBACtC,CAAC;qBACI,CAAC;oBACJ,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE;wBAC3B,IAAA,kBAAO,EAAC,sBAAsB,CAAC,CAAA;oBACjC,CAAC,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE;gBAC7B,IAAA,mBAAQ,EAAC,EAAE,IAAI,EAAE,CAAC,CAAA;gBAElB,sEAAsE;gBACtE,uEAAuE;gBACvE,wEAAwE;gBACxE,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE;oBAC7B,MAAM,aAAa,GACjB,EAAE,CAAC,YAAY,CAAC,mBAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,SAAS,CAAC,EAAE,MAAM,CAAC,CAAA;oBACzE,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,SAAS,CAAC,CAAA;oBAClE,MAAM,aAAa,GACjB,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;oBAEtE,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE;wBAC9B,IAAA,kBAAO,EAAC,UAAU,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAA;oBACnD,CAAC,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IAEJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;QAIA,UAAU"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voxgig/create-sdkgen",
3
- "version": "0.17.1",
3
+ "version": "0.18.0",
4
4
  "main": "dist/create-sdkgen.js",
5
5
  "type": "commonjs",
6
6
  "types": "dist/create-sdkgen.d.ts",
@@ -46,9 +46,9 @@ jobs:
46
46
  go:
47
47
  runs-on: ubuntu-latest
48
48
  steps:
49
- - uses: actions/checkout@v4
49
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
50
50
  - if: hashFiles('go/go.mod') != ''
51
- uses: actions/setup-go@v5
51
+ uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7
52
52
  with:
53
53
  go-version: '1.24'
54
54
  - if: hashFiles('go/go.mod') != ''
@@ -64,9 +64,9 @@ jobs:
64
64
  env:
65
65
  GOSUMDB: 'off'
66
66
  steps:
67
- - uses: actions/checkout@v4
67
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
68
68
  - if: hashFiles('go-cli/go.mod') != ''
69
- uses: actions/setup-go@v5
69
+ uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7
70
70
  with:
71
71
  go-version: '1.24'
72
72
  - if: hashFiles('go-cli/go.mod') != ''
@@ -80,9 +80,9 @@ jobs:
80
80
  go-mcp:
81
81
  runs-on: ubuntu-latest
82
82
  steps:
83
- - uses: actions/checkout@v4
83
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
84
84
  - if: hashFiles('go-mcp/go.mod') != ''
85
- uses: actions/setup-go@v5
85
+ uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7
86
86
  with:
87
87
  go-version: '1.24'
88
88
  - if: hashFiles('go-mcp/go.mod') != ''
@@ -96,9 +96,9 @@ jobs:
96
96
  ts:
97
97
  runs-on: ubuntu-latest
98
98
  steps:
99
- - uses: actions/checkout@v4
99
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
100
100
  - if: hashFiles('ts/package.json') != ''
101
- uses: actions/setup-node@v4
101
+ uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
102
102
  with:
103
103
  node-version: '24'
104
104
  - if: hashFiles('ts/package.json') != ''
@@ -114,9 +114,9 @@ jobs:
114
114
  py:
115
115
  runs-on: ubuntu-latest
116
116
  steps:
117
- - uses: actions/checkout@v4
117
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
118
118
  - if: hashFiles('py/Makefile') != ''
119
- uses: actions/setup-python@v5
119
+ uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
120
120
  with:
121
121
  python-version: '3.13'
122
122
  - if: hashFiles('py/Makefile') != ''
@@ -127,9 +127,9 @@ jobs:
127
127
  rb:
128
128
  runs-on: ubuntu-latest
129
129
  steps:
130
- - uses: actions/checkout@v4
130
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
131
131
  - if: hashFiles('rb/Makefile') != ''
132
- uses: ruby/setup-ruby@v1
132
+ uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1
133
133
  with:
134
134
  ruby-version: '3.3'
135
135
  - if: hashFiles('rb/Makefile') != ''
@@ -138,9 +138,9 @@ jobs:
138
138
  php:
139
139
  runs-on: ubuntu-latest
140
140
  steps:
141
- - uses: actions/checkout@v4
141
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
142
142
  - if: hashFiles('php/composer.json') != ''
143
- uses: shivammathur/setup-php@v2
143
+ uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2
144
144
  with:
145
145
  php-version: '8.3'
146
146
  - if: hashFiles('php/composer.json') != ''
@@ -151,13 +151,13 @@ jobs:
151
151
  lua:
152
152
  runs-on: ubuntu-latest
153
153
  steps:
154
- - uses: actions/checkout@v4
154
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
155
155
  - if: hashFiles('lua/Makefile') != ''
156
- uses: leafo/gh-actions-lua@v10
156
+ uses: leafo/gh-actions-lua@6919171ccf181b826f44b9bca76307b577217377 # v13
157
157
  with:
158
158
  luaVersion: '5.4'
159
159
  - if: hashFiles('lua/Makefile') != ''
160
- uses: leafo/gh-actions-luarocks@v4
160
+ uses: leafo/gh-actions-luarocks@35d062def313a7699a0d513e996bcf4352f05389 # v6
161
161
  - if: hashFiles('lua/Makefile') != ''
162
162
  run: luarocks install busted
163
163
  - if: hashFiles('lua/Makefile') != ''
@@ -169,9 +169,9 @@ jobs:
169
169
  runs-on: ubuntu-latest
170
170
  continue-on-error: true
171
171
  steps:
172
- - uses: actions/checkout@v4
172
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
173
173
  - if: hashFiles('js/Makefile') != ''
174
- uses: actions/setup-node@v4
174
+ uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
175
175
  with:
176
176
  node-version: '24'
177
177
  - if: hashFiles('js/package.json') != ''
@@ -183,9 +183,9 @@ jobs:
183
183
  runs-on: ubuntu-latest
184
184
  continue-on-error: true
185
185
  steps:
186
- - uses: actions/checkout@v4
186
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
187
187
  - if: hashFiles('csharp/Makefile') != ''
188
- uses: actions/setup-dotnet@v4
188
+ uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6
189
189
  with:
190
190
  dotnet-version: '8.0.x'
191
191
  - if: hashFiles('csharp/Makefile') != ''
@@ -195,9 +195,9 @@ jobs:
195
195
  runs-on: ubuntu-latest
196
196
  continue-on-error: true
197
197
  steps:
198
- - uses: actions/checkout@v4
198
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
199
199
  - if: hashFiles('java/Makefile') != ''
200
- uses: actions/setup-java@v4
200
+ uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
201
201
  with:
202
202
  distribution: temurin
203
203
  java-version: '21'
@@ -208,9 +208,9 @@ jobs:
208
208
  runs-on: ubuntu-latest
209
209
  continue-on-error: true
210
210
  steps:
211
- - uses: actions/checkout@v4
211
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
212
212
  - if: hashFiles('kotlin/Makefile') != ''
213
- uses: actions/setup-java@v4
213
+ uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
214
214
  with:
215
215
  distribution: temurin
216
216
  java-version: '21'
@@ -221,9 +221,9 @@ jobs:
221
221
  runs-on: ubuntu-latest
222
222
  continue-on-error: true
223
223
  steps:
224
- - uses: actions/checkout@v4
224
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
225
225
  - if: hashFiles('scala/Makefile') != ''
226
- uses: actions/setup-java@v4
226
+ uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
227
227
  with:
228
228
  distribution: temurin
229
229
  java-version: '21'
@@ -235,7 +235,7 @@ jobs:
235
235
  # what executes in every consumer's CI with no change or review in their
236
236
  # repo. Matches how the other third-party setup actions here are pinned.
237
237
  - if: hashFiles('scala/Makefile') != ''
238
- uses: VirtusLab/scala-cli-setup@v1.5.1
238
+ uses: VirtusLab/scala-cli-setup@8db5313925605c20e292348c1749e80dac7eed0f # v1.16.0
239
239
  - if: hashFiles('scala/Makefile') != ''
240
240
  run: make -C scala test
241
241
 
@@ -243,9 +243,13 @@ jobs:
243
243
  runs-on: ubuntu-latest
244
244
  continue-on-error: true
245
245
  steps:
246
- - uses: actions/checkout@v4
246
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
247
+ # NODE24 EXCEPTION: every other action here runs on the node24 runtime.
248
+ # setup-swift has no node24 release — v2 and v3 are both node20 — so it
249
+ # stays on v2 and will emit a deprecation warning. Revisit when upstream
250
+ # ships one.
247
251
  - if: hashFiles('swift/Makefile') != ''
248
- uses: swift-actions/setup-swift@v2
252
+ uses: swift-actions/setup-swift@7ca6abe6b3b0e8b5421b88be48feee39cbf52c6a # v2
249
253
  with:
250
254
  swift-version: '6.0'
251
255
  - if: hashFiles('swift/Makefile') != ''
@@ -255,9 +259,9 @@ jobs:
255
259
  runs-on: ubuntu-latest
256
260
  continue-on-error: true
257
261
  steps:
258
- - uses: actions/checkout@v4
262
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
259
263
  - if: hashFiles('dart/Makefile') != ''
260
- uses: dart-lang/setup-dart@v1
264
+ uses: dart-lang/setup-dart@65eb853c7ba17dde3be364c3d2858773e7144260 # v1
261
265
  with:
262
266
  sdk: stable
263
267
  - if: hashFiles('dart/pubspec.yaml') != ''
@@ -269,9 +273,14 @@ jobs:
269
273
  runs-on: ubuntu-latest
270
274
  continue-on-error: true
271
275
  steps:
272
- - uses: actions/checkout@v4
276
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
273
277
  - if: hashFiles('rust/Makefile') != ''
274
- uses: dtolnay/rust-toolchain@stable
278
+ # The SHA is the head of this action's `stable` BRANCH, whose action.yml
279
+ # carries `toolchain: default: stable`. State it explicitly anyway, so
280
+ # the intended toolchain survives a future re-pin to another branch.
281
+ uses: dtolnay/rust-toolchain@4360b52568e2003a75bf9bc1d59f33a8e3fc893c # stable
282
+ with:
283
+ toolchain: stable
275
284
  - if: hashFiles('rust/Makefile') != ''
276
285
  run: make -C rust test
277
286
 
@@ -279,7 +288,7 @@ jobs:
279
288
  runs-on: ubuntu-latest
280
289
  continue-on-error: true
281
290
  steps:
282
- - uses: actions/checkout@v4
291
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
283
292
  # gcc/make are preinstalled on ubuntu-latest — no setup step needed.
284
293
  - if: hashFiles('c/Makefile') != ''
285
294
  run: make -C c test
@@ -288,7 +297,7 @@ jobs:
288
297
  runs-on: ubuntu-latest
289
298
  continue-on-error: true
290
299
  steps:
291
- - uses: actions/checkout@v4
300
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
292
301
  - if: hashFiles('cpp/Makefile') != ''
293
302
  run: make -C cpp test
294
303
 
@@ -296,13 +305,16 @@ jobs:
296
305
  runs-on: ubuntu-latest
297
306
  continue-on-error: true
298
307
  steps:
299
- - uses: actions/checkout@v4
308
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
300
309
  # 0.13, NOT 0.14+: the generated build.zig.zon declares `.name` as a
301
310
  # plain string, which 0.14 rejects ("expected enum literal"). Package_zig
302
311
  # says the string form matches the target's toolchain pin — keep the two
303
312
  # in step, or move both to the enum-literal + fingerprint form together.
313
+ # NODE24 EXCEPTION: setup-zig has no node24 release — v1 and v2 are both
314
+ # node20 — so it stays on v1 and will emit a deprecation warning.
315
+ # Revisit when upstream ships one.
304
316
  - if: hashFiles('zig/build.zig') != ''
305
- uses: mlugg/setup-zig@v1
317
+ uses: mlugg/setup-zig@53fc45b17fe98b52f92ee5ea08ff48a85a3e7eb7 # v1
306
318
  with:
307
319
  version: '0.13.0'
308
320
  - if: hashFiles('zig/build.zig') != ''
@@ -312,7 +324,7 @@ jobs:
312
324
  runs-on: ubuntu-latest
313
325
  continue-on-error: true
314
326
  steps:
315
- - uses: actions/checkout@v4
327
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
316
328
  # perl is preinstalled on ubuntu-latest.
317
329
  - if: hashFiles('perl/Makefile') != ''
318
330
  run: make -C perl test
@@ -321,14 +333,14 @@ jobs:
321
333
  runs-on: ubuntu-latest
322
334
  continue-on-error: true
323
335
  steps:
324
- - uses: actions/checkout@v4
336
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
325
337
  - if: hashFiles('clojure/Makefile') != ''
326
- uses: actions/setup-java@v4
338
+ uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
327
339
  with:
328
340
  distribution: temurin
329
341
  java-version: '21'
330
342
  - if: hashFiles('clojure/Makefile') != ''
331
- uses: DeLaGuardo/setup-clojure@13
343
+ uses: DeLaGuardo/setup-clojure@4c7a6f613e5089821bb3bb2a33a3ee115578580d # 13
332
344
  with:
333
345
  cli: latest
334
346
  - if: hashFiles('clojure/Makefile') != ''
@@ -338,9 +350,9 @@ jobs:
338
350
  runs-on: ubuntu-latest
339
351
  continue-on-error: true
340
352
  steps:
341
- - uses: actions/checkout@v4
353
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
342
354
  - if: hashFiles('elixir/Makefile') != ''
343
- uses: erlef/setup-beam@v1
355
+ uses: erlef/setup-beam@54075bcc5e249e4758d363f27d099f55d843f124 # v1
344
356
  with:
345
357
  otp-version: '27'
346
358
  elixir-version: '1.17'
@@ -351,9 +363,9 @@ jobs:
351
363
  runs-on: ubuntu-latest
352
364
  continue-on-error: true
353
365
  steps:
354
- - uses: actions/checkout@v4
366
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
355
367
  - if: hashFiles('ocaml/Makefile') != ''
356
- uses: ocaml/setup-ocaml@v3
368
+ uses: ocaml/setup-ocaml@605a7e998e76e035b82c14d618a6e1010732c4ce # v3
357
369
  with:
358
370
  ocaml-compiler: '5.2'
359
371
  - if: hashFiles('ocaml/Makefile') != ''
@@ -363,9 +375,9 @@ jobs:
363
375
  runs-on: ubuntu-latest
364
376
  continue-on-error: true
365
377
  steps:
366
- - uses: actions/checkout@v4
378
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
367
379
  - if: hashFiles('haskell/Makefile') != ''
368
- uses: haskell-actions/setup@v2
380
+ uses: haskell-actions/setup@6037f33647c3f17758a2356c80fc4a53d7e0685d # v2
369
381
  with:
370
382
  ghc-version: '9.6'
371
383
  - if: hashFiles('haskell/Makefile') != ''
@@ -105,7 +105,7 @@ const Root = cmp(function Root(props: any) {
105
105
  false !== (phase[name] && phase[name].active)
106
106
 
107
107
  if (phaseActive('entity')) {
108
- each(entity, (entity: any) => {
108
+ each(entity).filter((entity: any) => entity.active).map((entity: any) => {
109
109
  names(entity, entity.name)
110
110
  Entity({ target, entity })
111
111
  })
@@ -1,11 +1,15 @@
1
1
 
2
2
  # PENDING — this section is deliberately empty.
3
3
  #
4
- # Requires a constructed feature registry on a client instance.
4
+ # featureAdd(ctx, f) mutates client._features, so a case would have to assert
5
+ # on the shared client every other section also uses, and undo itself
6
+ # afterwards. The runner constructs one client per spec (DEF.client) rather
7
+ # than one per entry, so there is no isolation to build that on yet.
5
8
  #
6
9
  # An empty `set` runs ZERO cases. Runners must not treat that as a pass by
7
- # accident: test/parity.test.ts in @voxgig/sdkgen asserts that every empty
8
- # fixture carries this PENDING marker, so an accidentally-blanked fixture
9
- # fails the build while a knowingly-deferred one does not.
10
+ # accident: `basic: pending` below is the MACHINE-READABLE form of this note,
11
+ # so the guard travels into test.json with the fixture instead of living only
12
+ # in a comment the consumer never sees.
10
13
 
14
+ basic: pending: 'featureAdd mutates client._features; the runner builds one client per spec, not per entry, so a case cannot isolate or undo itself.'
11
15
  basic: set: []
@@ -1,11 +1,14 @@
1
1
 
2
2
  # PENDING — this section is deliberately empty.
3
3
  #
4
- # Requires a constructed feature registry on a client instance.
4
+ # featureHook(ctx, name) calls f[name] on each registered feature. Asserting
5
+ # it needs features whose hooks are FUNCTIONS; a fixture compiles to JSON and
6
+ # cannot carry one. Covered per-language by the feature suites.
5
7
  #
6
8
  # An empty `set` runs ZERO cases. Runners must not treat that as a pass by
7
- # accident: test/parity.test.ts in @voxgig/sdkgen asserts that every empty
8
- # fixture carries this PENDING marker, so an accidentally-blanked fixture
9
- # fails the build while a knowingly-deferred one does not.
9
+ # accident: `basic: pending` below is the MACHINE-READABLE form of this note,
10
+ # so the guard travels into test.json with the fixture instead of living only
11
+ # in a comment the consumer never sees.
10
12
 
13
+ basic: pending: 'featureHook calls f[name] on each registered feature; a fixture compiles to JSON and cannot carry a function.'
11
14
  basic: set: []
@@ -1,11 +1,14 @@
1
1
 
2
2
  # PENDING — this section is deliberately empty.
3
3
  #
4
- # Requires a constructed feature registry on a client instance.
4
+ # featureInit(ctx, f) calls f.init(ctx, fopts). `init` is a function, and a
5
+ # fixture compiles to JSON, so the subject of the test cannot be expressed
6
+ # here at all. Covered per-language by the feature suites.
5
7
  #
6
8
  # An empty `set` runs ZERO cases. Runners must not treat that as a pass by
7
- # accident: test/parity.test.ts in @voxgig/sdkgen asserts that every empty
8
- # fixture carries this PENDING marker, so an accidentally-blanked fixture
9
- # fails the build while a knowingly-deferred one does not.
9
+ # accident: `basic: pending` below is the MACHINE-READABLE form of this note,
10
+ # so the guard travels into test.json with the fixture instead of living only
11
+ # in a comment the consumer never sees.
10
12
 
13
+ basic: pending: 'featureInit calls f.init(ctx, fopts); init is a function, and a fixture compiles to JSON, so the subject cannot be expressed here.'
11
14
  basic: set: []
@@ -1,13 +1,14 @@
1
1
 
2
2
  # PENDING — this section is deliberately empty.
3
3
  #
4
- # Needs a live/mocked transport and a client instance; the shared
5
- # runner has no transport-injection hook yet. Covered per-language by the
6
- # feature/netsim suites until this fixture can express a transport.
4
+ # Needs a live or mocked transport and a client instance; the shared runner
5
+ # has no transport-injection hook. Covered per-language by the netsim and
6
+ # feature suites until this fixture can express a transport.
7
7
  #
8
8
  # An empty `set` runs ZERO cases. Runners must not treat that as a pass by
9
- # accident: test/parity.test.ts in @voxgig/sdkgen asserts that every empty
10
- # fixture carries this PENDING marker, so an accidentally-blanked fixture
11
- # fails the build while a knowingly-deferred one does not.
9
+ # accident: `basic: pending` below is the MACHINE-READABLE form of this note,
10
+ # so the guard travels into test.json with the fixture instead of living only
11
+ # in a comment the consumer never sees.
12
12
 
13
+ basic: pending: 'Needs a live or mocked transport and a client instance; the shared runner has no transport-injection hook.'
13
14
  basic: set: []
@@ -1,13 +1,14 @@
1
1
 
2
2
  # PENDING — this section is deliberately empty.
3
3
  #
4
- # Depends on a fully built ctx (spec + point + options) that the
5
- # shared runner cannot assemble from a literal; covered by makeSpec/makeUrl
6
- # upstream and by the per-language pipeline suites.
4
+ # Depends on a fully built ctx (spec + point + options) that the shared
5
+ # runner cannot assemble from a literal map. Covered indirectly by
6
+ # makeSpec/makeUrl, and by the per-language pipeline suites.
7
7
  #
8
8
  # An empty `set` runs ZERO cases. Runners must not treat that as a pass by
9
- # accident: test/parity.test.ts in @voxgig/sdkgen asserts that every empty
10
- # fixture carries this PENDING marker, so an accidentally-blanked fixture
11
- # fails the build while a knowingly-deferred one does not.
9
+ # accident: `basic: pending` below is the MACHINE-READABLE form of this note,
10
+ # so the guard travels into test.json with the fixture instead of living only
11
+ # in a comment the consumer never sees.
12
12
 
13
+ basic: pending: 'Depends on a fully built ctx (spec + point + options) that the runner cannot assemble from a literal map.'
13
14
  basic: set: []
@@ -1,12 +1,126 @@
1
1
 
2
- # PENDING — this section is deliberately empty.
2
+ # makePoint chooses which endpoint definition ("point") an operation call
3
+ # should use, and records it on ctx.point.
3
4
  #
4
- # Requires an op with points plus SDK options.allow.op, i.e. a real
5
- # client; the runner has no client-construction hook for it yet.
5
+ # The whole selection is driven by DATA: `op` is rebuilt by Context from
6
+ # `opname` + `entity.name` + `config.entity.<name>.op.<opname>.points`, and
7
+ # `options.allow.op` gates the call. So every branch below is expressible as
8
+ # a literal ctx, contrary to the deferral note this fixture used to carry,
9
+ # which claimed it needed a real client.
6
10
  #
7
- # An empty `set` runs ZERO cases. Runners must not treat that as a pass by
8
- # accident: test/parity.test.ts in @voxgig/sdkgen asserts that every empty
9
- # fixture carries this PENDING marker, so an accidentally-blanked fixture
10
- # fails the build while a knowingly-deferred one does not.
11
+ # Errors are RETURNED, not thrown, and their JSON embeds a random ctx id, so
12
+ # the error cases assert `match: out: code` rather than a whole-value `out`.
13
+ # Go returns the error as a second result instead, and its runner normalises
14
+ # it to the same `{code}` shape.
15
+ #
16
+ # `allow.op` is a COMMA-SEPARATED STRING, not a list — that is what the client
17
+ # actually carries. Go reads it with strings.Contains and type-asserts to
18
+ # string, so a list here silently denies every operation; TS's .includes()
19
+ # accepts either and would have hidden the mismatch.
20
+
21
+ basic: set: [
22
+
23
+ # One point: no selection to do, it is simply the point.
24
+ {
25
+ ctx: {
26
+ opname: 'list'
27
+ entity: { name: 'planet' }
28
+ options: { allow: { op: 'list' } }
29
+ config: { entity: { planet: { op: { list: { points: [
30
+ { method: 'GET', path: ['api', 'planet'], select: {} }
31
+ ] } } } } }
32
+ }
33
+ out: { method: 'GET', path: ['api', 'planet'], select: {} }
34
+ }
35
+
36
+ # allow.op is the gate: an operation missing from it is refused before any
37
+ # point is considered.
38
+ {
39
+ ctx: {
40
+ opname: 'list'
41
+ entity: { name: 'planet' }
42
+ options: { allow: { op: 'load' } }
43
+ config: { entity: { planet: { op: { list: { points: [
44
+ { method: 'GET', path: ['api', 'planet'], select: {} }
45
+ ] } } } } }
46
+ }
47
+ match: { out: { code: 'point_op_allow' } }
48
+ }
49
+
50
+ # An operation declared with no points at all is a model error, reported
51
+ # rather than returning an undefined point.
52
+ {
53
+ ctx: {
54
+ opname: 'list'
55
+ entity: { name: 'planet' }
56
+ options: { allow: { op: 'list' } }
57
+ config: { entity: { planet: { op: { list: { points: [] } } } } }
58
+ }
59
+ match: { out: { code: 'point_no_points' } }
60
+ }
61
+
62
+ # Two points: `select.exist` picks the one whose required keys are present
63
+ # in the match. `id` is supplied, so the by-id point wins.
64
+ {
65
+ ctx: {
66
+ opname: 'list'
67
+ entity: { name: 'planet' }
68
+ options: { allow: { op: 'list' } }
69
+ match: { id: 'p01' }
70
+ config: { entity: { planet: { op: { list: { points: [
71
+ { method: 'GET', path: ['byid'], select: { exist: ['id'] } }
72
+ { method: 'GET', path: ['all'], select: {} }
73
+ ] } } } } }
74
+ }
75
+ out: { method: 'GET', path: ['byid'], select: { exist: ['id'] } }
76
+ }
77
+
78
+ # Same two points, but `id` is absent — the exist check fails and selection
79
+ # falls through to the unconstrained point.
80
+ {
81
+ ctx: {
82
+ opname: 'list'
83
+ entity: { name: 'planet' }
84
+ options: { allow: { op: 'list' } }
85
+ match: { name: 'earth' }
86
+ config: { entity: { planet: { op: { list: { points: [
87
+ { method: 'GET', path: ['byid'], select: { exist: ['id'] } }
88
+ { method: 'GET', path: ['all'], select: {} }
89
+ ] } } } } }
90
+ }
91
+ out: { method: 'GET', path: ['all'], select: {} }
92
+ }
93
+
94
+ # $action selects among points. It is read from reqmatch (the operation
95
+ # argument) only, never from the entity data.
96
+ {
97
+ ctx: {
98
+ opname: 'list'
99
+ entity: { name: 'planet' }
100
+ options: { allow: { op: 'list' } }
101
+ reqmatch: { '$action': 'stop' }
102
+ config: { entity: { planet: { op: { list: { points: [
103
+ { method: 'POST', path: ['start'], select: { '$action': 'start' } }
104
+ { method: 'POST', path: ['stop'], select: { '$action': 'stop' } }
105
+ ] } } } } }
106
+ }
107
+ out: { method: 'POST', path: ['stop'], select: { '$action': 'stop' } }
108
+ }
109
+
110
+ # An $action naming no point is refused rather than silently falling back
111
+ # to the last one considered.
112
+ {
113
+ ctx: {
114
+ opname: 'list'
115
+ entity: { name: 'planet' }
116
+ options: { allow: { op: 'list' } }
117
+ reqmatch: { '$action': 'nope' }
118
+ config: { entity: { planet: { op: { list: { points: [
119
+ { method: 'POST', path: ['start'], select: { '$action': 'start' } }
120
+ { method: 'POST', path: ['stop'], select: { '$action': 'stop' } }
121
+ ] } } } } }
122
+ }
123
+ match: { out: { code: 'point_action_invalid' } }
124
+ }
11
125
 
12
- basic: set: []
126
+ ]
@@ -1,17 +1,18 @@
1
1
 
2
2
  # PENDING — this section is deliberately empty.
3
3
  #
4
- # makeResult needs a ctx carrying a constructed Spec AND Result (built via the
5
- # SDK's own NewSpec/NewResult constructors), plus the error path for each being
6
- # absent. The shared runner builds a ctx from a literal map and has no
7
- # constructor hook, so the cases cannot be expressed here yet. Covered
8
- # per-language today (e.g. go's makeResult-basic / -no-spec / -no-result),
9
- # which is exactly the drift risk this corpus exists to remove — promoting it
10
- # needs a runner change, not just fixture data.
4
+ # makeResult needs a ctx carrying a constructed Spec AND Result, built via the
5
+ # SDK's own NewSpec/NewResult constructors, plus the absent-error path for
6
+ # each. The runner builds ctx from a literal map and has no constructor hook,
7
+ # so these cannot be expressed here yet — covered per-language today (e.g.
8
+ # go's makeResult-basic / -no-spec / -no-result), which is exactly the drift
9
+ # this corpus exists to remove. Promoting it needs a runner change, not just
10
+ # fixture data.
11
11
  #
12
12
  # An empty `set` runs ZERO cases. Runners must not treat that as a pass by
13
- # accident: test/corpus.test.ts here, and the PENDING lists in the language
14
- # runners, keep a deliberately-deferred section distinct from an accidentally
15
- # blanked one.
13
+ # accident: `basic: pending` below is the MACHINE-READABLE form of this note,
14
+ # so the guard travels into test.json with the fixture instead of living only
15
+ # in a comment the consumer never sees.
16
16
 
17
+ basic: pending: 'Needs a ctx carrying a Spec AND Result built via the SDK constructors; the runner builds ctx from a literal map and has no constructor hook.'
17
18
  basic: set: []
@@ -16716,21 +16716,25 @@
16716
16716
  },
16717
16717
  "featureAdd": {
16718
16718
  "basic": {
16719
+ "pending": "featureAdd mutates client._features; the runner builds one client per spec, not per entry, so a case cannot isolate or undo itself.",
16719
16720
  "set": []
16720
16721
  }
16721
16722
  },
16722
16723
  "featureHook": {
16723
16724
  "basic": {
16725
+ "pending": "featureHook calls f[name] on each registered feature; a fixture compiles to JSON and cannot carry a function.",
16724
16726
  "set": []
16725
16727
  }
16726
16728
  },
16727
16729
  "featureInit": {
16728
16730
  "basic": {
16731
+ "pending": "featureInit calls f.init(ctx, fopts); init is a function, and a fixture compiles to JSON, so the subject cannot be expressed here.",
16729
16732
  "set": []
16730
16733
  }
16731
16734
  },
16732
16735
  "fetcher": {
16733
16736
  "basic": {
16737
+ "pending": "Needs a live or mocked transport and a client instance; the shared runner has no transport-injection hook.",
16734
16738
  "set": []
16735
16739
  }
16736
16740
  },
@@ -16831,6 +16835,7 @@
16831
16835
  },
16832
16836
  "makeFetchDef": {
16833
16837
  "basic": {
16838
+ "pending": "Depends on a fully built ctx (spec + point + options) that the runner cannot assemble from a literal map.",
16834
16839
  "set": []
16835
16840
  }
16836
16841
  },
@@ -16979,6 +16984,7 @@
16979
16984
  },
16980
16985
  "makeResult": {
16981
16986
  "basic": {
16987
+ "pending": "Needs a ctx carrying a Spec AND Result built via the SDK constructors; the runner builds ctx from a literal map and has no constructor hook.",
16982
16988
  "set": []
16983
16989
  }
16984
16990
  },
@@ -17029,7 +17035,332 @@
17029
17035
  },
17030
17036
  "makePoint": {
17031
17037
  "basic": {
17032
- "set": []
17038
+ "set": [
17039
+ {
17040
+ "ctx": {
17041
+ "config": {
17042
+ "entity": {
17043
+ "planet": {
17044
+ "op": {
17045
+ "list": {
17046
+ "points": [
17047
+ {
17048
+ "method": "GET",
17049
+ "path": [
17050
+ "api",
17051
+ "planet"
17052
+ ],
17053
+ "select": {}
17054
+ }
17055
+ ]
17056
+ }
17057
+ }
17058
+ }
17059
+ }
17060
+ },
17061
+ "entity": {
17062
+ "name": "planet"
17063
+ },
17064
+ "opname": "list",
17065
+ "options": {
17066
+ "allow": {
17067
+ "op": "list"
17068
+ }
17069
+ }
17070
+ },
17071
+ "out": {
17072
+ "method": "GET",
17073
+ "path": [
17074
+ "api",
17075
+ "planet"
17076
+ ],
17077
+ "select": {}
17078
+ }
17079
+ },
17080
+ {
17081
+ "ctx": {
17082
+ "config": {
17083
+ "entity": {
17084
+ "planet": {
17085
+ "op": {
17086
+ "list": {
17087
+ "points": [
17088
+ {
17089
+ "method": "GET",
17090
+ "path": [
17091
+ "api",
17092
+ "planet"
17093
+ ],
17094
+ "select": {}
17095
+ }
17096
+ ]
17097
+ }
17098
+ }
17099
+ }
17100
+ }
17101
+ },
17102
+ "entity": {
17103
+ "name": "planet"
17104
+ },
17105
+ "opname": "list",
17106
+ "options": {
17107
+ "allow": {
17108
+ "op": "load"
17109
+ }
17110
+ }
17111
+ },
17112
+ "match": {
17113
+ "out": {
17114
+ "code": "point_op_allow"
17115
+ }
17116
+ }
17117
+ },
17118
+ {
17119
+ "ctx": {
17120
+ "config": {
17121
+ "entity": {
17122
+ "planet": {
17123
+ "op": {
17124
+ "list": {
17125
+ "points": []
17126
+ }
17127
+ }
17128
+ }
17129
+ }
17130
+ },
17131
+ "entity": {
17132
+ "name": "planet"
17133
+ },
17134
+ "opname": "list",
17135
+ "options": {
17136
+ "allow": {
17137
+ "op": "list"
17138
+ }
17139
+ }
17140
+ },
17141
+ "match": {
17142
+ "out": {
17143
+ "code": "point_no_points"
17144
+ }
17145
+ }
17146
+ },
17147
+ {
17148
+ "ctx": {
17149
+ "config": {
17150
+ "entity": {
17151
+ "planet": {
17152
+ "op": {
17153
+ "list": {
17154
+ "points": [
17155
+ {
17156
+ "method": "GET",
17157
+ "path": [
17158
+ "byid"
17159
+ ],
17160
+ "select": {
17161
+ "exist": [
17162
+ "id"
17163
+ ]
17164
+ }
17165
+ },
17166
+ {
17167
+ "method": "GET",
17168
+ "path": [
17169
+ "all"
17170
+ ],
17171
+ "select": {}
17172
+ }
17173
+ ]
17174
+ }
17175
+ }
17176
+ }
17177
+ }
17178
+ },
17179
+ "entity": {
17180
+ "name": "planet"
17181
+ },
17182
+ "match": {
17183
+ "id": "p01"
17184
+ },
17185
+ "opname": "list",
17186
+ "options": {
17187
+ "allow": {
17188
+ "op": "list"
17189
+ }
17190
+ }
17191
+ },
17192
+ "out": {
17193
+ "method": "GET",
17194
+ "path": [
17195
+ "byid"
17196
+ ],
17197
+ "select": {
17198
+ "exist": [
17199
+ "id"
17200
+ ]
17201
+ }
17202
+ }
17203
+ },
17204
+ {
17205
+ "ctx": {
17206
+ "config": {
17207
+ "entity": {
17208
+ "planet": {
17209
+ "op": {
17210
+ "list": {
17211
+ "points": [
17212
+ {
17213
+ "method": "GET",
17214
+ "path": [
17215
+ "byid"
17216
+ ],
17217
+ "select": {
17218
+ "exist": [
17219
+ "id"
17220
+ ]
17221
+ }
17222
+ },
17223
+ {
17224
+ "method": "GET",
17225
+ "path": [
17226
+ "all"
17227
+ ],
17228
+ "select": {}
17229
+ }
17230
+ ]
17231
+ }
17232
+ }
17233
+ }
17234
+ }
17235
+ },
17236
+ "entity": {
17237
+ "name": "planet"
17238
+ },
17239
+ "match": {
17240
+ "name": "earth"
17241
+ },
17242
+ "opname": "list",
17243
+ "options": {
17244
+ "allow": {
17245
+ "op": "list"
17246
+ }
17247
+ }
17248
+ },
17249
+ "out": {
17250
+ "method": "GET",
17251
+ "path": [
17252
+ "all"
17253
+ ],
17254
+ "select": {}
17255
+ }
17256
+ },
17257
+ {
17258
+ "ctx": {
17259
+ "config": {
17260
+ "entity": {
17261
+ "planet": {
17262
+ "op": {
17263
+ "list": {
17264
+ "points": [
17265
+ {
17266
+ "method": "POST",
17267
+ "path": [
17268
+ "start"
17269
+ ],
17270
+ "select": {
17271
+ "$action": "start"
17272
+ }
17273
+ },
17274
+ {
17275
+ "method": "POST",
17276
+ "path": [
17277
+ "stop"
17278
+ ],
17279
+ "select": {
17280
+ "$action": "stop"
17281
+ }
17282
+ }
17283
+ ]
17284
+ }
17285
+ }
17286
+ }
17287
+ }
17288
+ },
17289
+ "entity": {
17290
+ "name": "planet"
17291
+ },
17292
+ "opname": "list",
17293
+ "options": {
17294
+ "allow": {
17295
+ "op": "list"
17296
+ }
17297
+ },
17298
+ "reqmatch": {
17299
+ "$action": "stop"
17300
+ }
17301
+ },
17302
+ "out": {
17303
+ "method": "POST",
17304
+ "path": [
17305
+ "stop"
17306
+ ],
17307
+ "select": {
17308
+ "$action": "stop"
17309
+ }
17310
+ }
17311
+ },
17312
+ {
17313
+ "ctx": {
17314
+ "config": {
17315
+ "entity": {
17316
+ "planet": {
17317
+ "op": {
17318
+ "list": {
17319
+ "points": [
17320
+ {
17321
+ "method": "POST",
17322
+ "path": [
17323
+ "start"
17324
+ ],
17325
+ "select": {
17326
+ "$action": "start"
17327
+ }
17328
+ },
17329
+ {
17330
+ "method": "POST",
17331
+ "path": [
17332
+ "stop"
17333
+ ],
17334
+ "select": {
17335
+ "$action": "stop"
17336
+ }
17337
+ }
17338
+ ]
17339
+ }
17340
+ }
17341
+ }
17342
+ }
17343
+ },
17344
+ "entity": {
17345
+ "name": "planet"
17346
+ },
17347
+ "opname": "list",
17348
+ "options": {
17349
+ "allow": {
17350
+ "op": "list"
17351
+ }
17352
+ },
17353
+ "reqmatch": {
17354
+ "$action": "nope"
17355
+ }
17356
+ },
17357
+ "match": {
17358
+ "out": {
17359
+ "code": "point_action_invalid"
17360
+ }
17361
+ }
17362
+ }
17363
+ ]
17033
17364
  }
17034
17365
  },
17035
17366
  "makeUrl": {
@@ -75,7 +75,15 @@ function CreateSdkGen(opts: FullCreateSdkGenOptions) {
75
75
  const CreateRoot = rootModule.CreateRoot
76
76
 
77
77
  const name = spec.name
78
- spec.def = (null == spec.def || '' === spec.def) ? name + '-openapi3.yml' : spec.def
78
+ const defGiven = null != spec.def && '' !== spec.def
79
+
80
+ // A given-but-missing --def is a mistake; omitting --def entirely
81
+ // legitimately gets the placeholder spec below.
82
+ if (defGiven && !fs.existsSync(spec.def)) {
83
+ throw new Error(`OpenAPI definition file not found: ${spec.def}`)
84
+ }
85
+
86
+ spec.def = defGiven ? spec.def : name + '-openapi3.yml'
79
87
 
80
88
  spec.sdk_folder = SDK_FOLDER
81
89
 
@@ -111,6 +111,38 @@ function mergeGuide(existing: string | null, template: string): string {
111
111
  }
112
112
 
113
113
 
114
+ // The OpenAPI filename is inherited from the upstream API slug, and upstream
115
+ // slugs are not constrained: the freepublicapis corpus contains apostrophes
116
+ // (catherine-shulman's-quotes), accents (dólar-y-monedas, kölner-adressen),
117
+ // and '!' / '>' / '_'. That name is copied into .sdk/def/ AND written verbatim
118
+ // into a single-quoted aontu string in sdk.aontu:
119
+ //
120
+ // def: 'catherine-shulman's-quotes_0.1.0.json'
121
+ // ^ terminates the string -> AontuError, no SDK
122
+ //
123
+ // Slugs are [a-z0-9-]; a filename additionally needs '.' and '_' for the
124
+ // version segment and extension, so those are kept — which also means every
125
+ // already-conforming name (including cedar's dotted gitlab-v4-swagger-2.0.yaml)
126
+ // is untouched and no repo churns. Everything else is folded to '-'.
127
+ function sanitizeDefName(filename: string): string {
128
+ const clean = filename
129
+ .normalize('NFKD').replace(/[\u0300-\u036f]/g, '') // dólar -> dolar
130
+ .toLowerCase()
131
+ // Quotes are ELIDED, not folded to '-', so the filename agrees with the
132
+ // repo name apidef's sanitizeSlug derives from the same slug:
133
+ // catherine-shulman's-quotes -> catherine-shulmans-quotes(-sdk).
134
+ .replace(/['’"]/g, '')
135
+ .replace(/[^a-z0-9._-]+/g, '-')
136
+ .replace(/-+/g, '-')
137
+ // yu-gi-oh!_0.1.0.json would otherwise keep the '!' as a dangling '-'
138
+ // before the version separator: yu-gi-oh-_0.1.0.json.
139
+ .replace(/-+([._])/g, '$1')
140
+ .replace(/([._])-+/g, '$1')
141
+ .replace(/^-|-$/g, '')
142
+ return '' === clean ? 'openapi.yml' : clean
143
+ }
144
+
145
+
114
146
  // TODO: rename to RootSdk
115
147
  const CreateRoot = cmp(function CreateRoot(props: any) {
116
148
  const { ctx$, ctx$: { folder }, spec, model } = props
@@ -147,7 +179,7 @@ const CreateRoot = cmp(function CreateRoot(props: any) {
147
179
  })
148
180
 
149
181
  const origdef = spec.def
150
- const projdef = Path.basename(origdef)
182
+ const projdef = sanitizeDefName(Path.basename(origdef))
151
183
  spec.def = projdef
152
184
 
153
185
  Folder({ name: spec.sdk_folder }, () => {
@@ -192,5 +224,6 @@ const CreateRoot = cmp(function CreateRoot(props: any) {
192
224
 
193
225
 
194
226
  export {
195
- CreateRoot
227
+ CreateRoot,
228
+ sanitizeDefName,
196
229
  }