@voxgig/create-sdkgen 0.26.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +23 -0
  2. package/dist/project/standard/CreateRoot.js +40 -32
  3. package/dist/project/standard/CreateRoot.js.map +1 -1
  4. package/dist/project/standard/ModelSdk.js +2 -2
  5. package/dist/project/standard/ModelSdk.js.map +1 -1
  6. package/dist/project/standard/migrate.d.ts +9 -0
  7. package/dist/project/standard/migrate.js +137 -0
  8. package/dist/project/standard/migrate.js.map +1 -0
  9. package/dist/tsconfig.tsbuildinfo +1 -1
  10. package/package.json +4 -4
  11. package/project/standard/.sdk/model/.model-config/{model-config.aon → model-config.aontu} +1 -1
  12. package/project/standard/.sdk/model/guide/guide.aontu +8 -0
  13. package/project/standard/.sdk/model/sdk.fragment.aontu +39 -0
  14. package/project/standard/.sdk/package.json +12 -12
  15. package/project/standard/.sdk/test/.model-config/model-config.aontu +4 -0
  16. package/project/standard/.sdk/test/feature/{feature-test-index.aon → feature-test-index.aontu} +1 -1
  17. package/project/standard/.sdk/test/primary/primary-test-index.aontu +30 -0
  18. package/project/standard/.sdk/test/struct/test.aontu +26 -0
  19. package/project/standard/.sdk/test/test.aontu +4 -0
  20. package/src/project/standard/CreateRoot.ts +44 -33
  21. package/src/project/standard/ModelSdk.ts +2 -2
  22. package/src/project/standard/migrate.ts +172 -0
  23. package/project/standard/.sdk/model/guide/guide.aon +0 -8
  24. package/project/standard/.sdk/model/sdk.fragment.aon +0 -39
  25. package/project/standard/.sdk/test/.model-config/model-config.aon +0 -4
  26. package/project/standard/.sdk/test/primary/primary-test-index.aon +0 -30
  27. package/project/standard/.sdk/test/struct/test.aon +0 -26
  28. package/project/standard/.sdk/test/test.aon +0 -4
  29. /package/project/standard/.sdk/model/api/{api-info.aon → api-info.aontu} +0 -0
  30. /package/project/standard/.sdk/model/{config.aon → config.aontu} +0 -0
  31. /package/project/standard/.sdk/model/edition/{edition-index.aon → edition-index.aontu} +0 -0
  32. /package/project/standard/.sdk/model/entity/{entity-index.aon → entity-index.aontu} +0 -0
  33. /package/project/standard/.sdk/model/feature/{feature-index.aon → feature-index.aontu} +0 -0
  34. /package/project/standard/.sdk/model/flow/{flow-index.aon → flow-index.aontu} +0 -0
  35. /package/project/standard/.sdk/model/target/{target-index.aon → target-index.aontu} +0 -0
  36. /package/project/standard/.sdk/test/feature/{cost.aon → cost.aontu} +0 -0
  37. /package/project/standard/.sdk/test/primary/{clean.aon → clean.aontu} +0 -0
  38. /package/project/standard/.sdk/test/primary/{done.aon → done.aontu} +0 -0
  39. /package/project/standard/.sdk/test/primary/{featureAdd.aon → featureAdd.aontu} +0 -0
  40. /package/project/standard/.sdk/test/primary/{featureHook.aon → featureHook.aontu} +0 -0
  41. /package/project/standard/.sdk/test/primary/{featureInit.aon → featureInit.aontu} +0 -0
  42. /package/project/standard/.sdk/test/primary/{fetcher.aon → fetcher.aontu} +0 -0
  43. /package/project/standard/.sdk/test/primary/{makeContext.aon → makeContext.aontu} +0 -0
  44. /package/project/standard/.sdk/test/primary/{makeError.aon → makeError.aontu} +0 -0
  45. /package/project/standard/.sdk/test/primary/{makeFetchDef.aon → makeFetchDef.aontu} +0 -0
  46. /package/project/standard/.sdk/test/primary/{makeOptions.aon → makeOptions.aontu} +0 -0
  47. /package/project/standard/.sdk/test/primary/{makePoint.aon → makePoint.aontu} +0 -0
  48. /package/project/standard/.sdk/test/primary/{makeRequest.aon → makeRequest.aontu} +0 -0
  49. /package/project/standard/.sdk/test/primary/{makeResponse.aon → makeResponse.aontu} +0 -0
  50. /package/project/standard/.sdk/test/primary/{makeResult.aon → makeResult.aontu} +0 -0
  51. /package/project/standard/.sdk/test/primary/{makeSpec.aon → makeSpec.aontu} +0 -0
  52. /package/project/standard/.sdk/test/primary/{makeUrl.aon → makeUrl.aontu} +0 -0
  53. /package/project/standard/.sdk/test/primary/{operator.aon → operator.aontu} +0 -0
  54. /package/project/standard/.sdk/test/primary/{param.aon → param.aontu} +0 -0
  55. /package/project/standard/.sdk/test/primary/{prepareAuth.aon → prepareAuth.aontu} +0 -0
  56. /package/project/standard/.sdk/test/primary/{prepareBody.aon → prepareBody.aontu} +0 -0
  57. /package/project/standard/.sdk/test/primary/{prepareHeaders.aon → prepareHeaders.aontu} +0 -0
  58. /package/project/standard/.sdk/test/primary/{prepareMethod.aon → prepareMethod.aontu} +0 -0
  59. /package/project/standard/.sdk/test/primary/{prepareParams.aon → prepareParams.aontu} +0 -0
  60. /package/project/standard/.sdk/test/primary/{preparePath.aon → preparePath.aontu} +0 -0
  61. /package/project/standard/.sdk/test/primary/{prepareQuery.aon → prepareQuery.aontu} +0 -0
  62. /package/project/standard/.sdk/test/primary/{resultBasic.aon → resultBasic.aontu} +0 -0
  63. /package/project/standard/.sdk/test/primary/{resultBody.aon → resultBody.aontu} +0 -0
  64. /package/project/standard/.sdk/test/primary/{resultHeaders.aon → resultHeaders.aontu} +0 -0
  65. /package/project/standard/.sdk/test/primary/{transformRequest.aon → transformRequest.aontu} +0 -0
  66. /package/project/standard/.sdk/test/primary/{transformResponse.aon → transformResponse.aontu} +0 -0
  67. /package/project/standard/.sdk/test/struct/{getpath.aon → getpath.aontu} +0 -0
  68. /package/project/standard/.sdk/test/struct/{inject.aon → inject.aontu} +0 -0
  69. /package/project/standard/.sdk/test/struct/{merge.aon → merge.aontu} +0 -0
  70. /package/project/standard/.sdk/test/struct/{minor.aon → minor.aontu} +0 -0
  71. /package/project/standard/.sdk/test/struct/{nullsem.aon → nullsem.aontu} +0 -0
  72. /package/project/standard/.sdk/test/struct/{select.aon → select.aontu} +0 -0
  73. /package/project/standard/.sdk/test/struct/{transform.aon → transform.aontu} +0 -0
  74. /package/project/standard/.sdk/test/struct/{validate.aon → validate.aontu} +0 -0
  75. /package/project/standard/.sdk/test/struct/{walk.aon → walk.aontu} +0 -0
@@ -16,6 +16,7 @@ import {
16
16
 
17
17
 
18
18
  import { ModelSdk } from './ModelSdk'
19
+ import { migrateToAontu, scaffoldFiles } from './migrate'
19
20
 
20
21
 
21
22
  const GITIGNORE_TOP = `# Local config / secrets
@@ -61,15 +62,16 @@ log/
61
62
  `
62
63
 
63
64
 
64
- const PROJECT_FILE = 'project.aon'
65
+ const PROJECT_FILE = 'project.aontu'
65
66
  const PROJECT_STUB = `# Project overlay — YOURS. The scaffold creates this file once and never
66
- # overwrites it, unlike every other file it writes.
67
+ # overwrites it.
67
68
  #
68
- # Everything else under model/ is toolchain-derived and is deliberately
69
- # regenerated so that toolchain fixes propagate. Put anything here that is a
70
- # decision about THIS project rather than a fact about the API.
69
+ # Most of model/ is toolchain-derived and is deliberately regenerated so that
70
+ # toolchain fixes propagate; this file, the guide, and the target, feature and
71
+ # edition indexes are kept. Put anything here that is a decision about THIS
72
+ # project rather than a fact about the API.
71
73
  #
72
- # Included LAST by sdk.aon, after target/target-index.aon, because a key
74
+ # Included LAST by sdk.aontu, after target/target-index.aontu, because a key
73
75
  # under main.kit.target.<t> can only refine a target that has already been
74
76
  # defined. Declared earlier, the model build fails with "Cannot unify value:
75
77
  # nil with value: string / key ext value was: nil", which names nothing that
@@ -89,27 +91,18 @@ const PROJECT_STUB = `# Project overlay — YOURS. The scaffold creates this fil
89
91
  `
90
92
 
91
93
 
92
- const GUIDE_FILE = 'guide.aon'
94
+ const GUIDE_FILE = 'guide.aontu'
93
95
  const GUIDE_REL = ['model', 'guide', GUIDE_FILE]
94
96
 
97
+ const INDEX_KINDS = ['target', 'feature', 'edition']
98
+ const indexFile = (kind: string) => kind + '-index.aontu'
95
99
 
96
- function migrateOverlay(fs: any, dir: string, name: string): void {
97
- const next = Path.join(dir, name + '.aon')
98
- const prev = Path.join(dir, name + '.aontu')
99
- if (fs.existsSync(next) || !fs.existsSync(prev)) {
100
- return
101
- }
102
- try {
103
- const src = String(fs.readFileSync(prev))
104
- .replace(/(@['"][^'"]+)\.aontu(['"])/g, '$1.aon$2')
105
- fs.writeFileSync(next, src)
106
- fs.unlinkSync(prev)
107
- }
108
- catch (_err: any) {
109
- // A failed migration must not fail the scaffold: the worst case is the
110
- // template being written fresh, which is what would have happened anyway.
111
- }
112
- }
100
+ // Written back from the project rather than from the template.
101
+ const KEPT = [
102
+ ['model', PROJECT_FILE],
103
+ GUIDE_REL,
104
+ ...INDEX_KINDS.map((kind: string) => ['model', kind, indexFile(kind)]),
105
+ ].map((rel: string[]) => rel.join('/'))
113
106
 
114
107
 
115
108
  function mergeGuide(existing: string | null, template: string): string {
@@ -168,10 +161,12 @@ const CreateRoot = cmp(function CreateRoot(props: any) {
168
161
 
169
162
 
170
163
  const guideExclude = [spec.sdk_folder, ...GUIDE_REL].join('/')
164
+ const indexExclude = INDEX_KINDS.map((kind: string) =>
165
+ [spec.sdk_folder, 'model', kind, indexFile(kind)].join('/'))
171
166
 
172
167
  Copy({
173
168
  from,
174
- exclude: [/\.fragment\./, guideExclude, /^\.sdk\/admin\/.*\.sh$/]
169
+ exclude: [/\.fragment\./, guideExclude, ...indexExclude, /^\.sdk\/admin\/.*\.sh$/]
175
170
  })
176
171
 
177
172
  File({ name: '.gitignore' }, () => {
@@ -183,6 +178,16 @@ const CreateRoot = cmp(function CreateRoot(props: any) {
183
178
  spec.def = projdef
184
179
 
185
180
  Folder({ name: spec.sdk_folder }, () => {
181
+ // Before anything reads the project's own files, so a project from the
182
+ // .aon era is read under the names it now has.
183
+ if (!spec.dryrun) {
184
+ const sdk = Path.join(folder, spec.sdk_folder)
185
+ migrateToAontu(fs, sdk, scaffoldFiles(fs, Path.join(from, spec.sdk_folder), KEPT),
186
+ (file: string, note: string) => ctx$.log.warn({
187
+ point: 'migrate-aontu', file: Path.join(sdk, file), note: file + ': ' + note,
188
+ }))
189
+ }
190
+
186
191
  Folder({ name: 'admin' }, () => {
187
192
  const admin = Path.join(from, spec.sdk_folder, 'admin')
188
193
  for (const name of fs.readdirSync(admin).filter((name: string) => name.endsWith('.sh')).sort()) {
@@ -214,10 +219,6 @@ const CreateRoot = cmp(function CreateRoot(props: any) {
214
219
  const projectPath =
215
220
  Path.join(folder, spec.sdk_folder, 'model', PROJECT_FILE)
216
221
 
217
- // Same hazard, worse symptom: this file carries the release version,
218
- // so an ignored project.aontu silently resets every generated manifest
219
- // to the sdkgen default 0.0.1 — the exact bug fixed earlier this week.
220
- migrateOverlay(fs, Path.dirname(projectPath), 'project')
221
222
  const existingProject =
222
223
  fs.existsSync(projectPath) ? fs.readFileSync(projectPath, 'utf8') : null
223
224
 
@@ -225,6 +226,20 @@ const CreateRoot = cmp(function CreateRoot(props: any) {
225
226
  Content(null == existingProject ? PROJECT_STUB : existingProject)
226
227
  })
227
228
 
229
+ // `target add`, `feature add` and docgen register their items here, and
230
+ // docgen bootstraps only once, so a reset index would lose them for good.
231
+ for (const kind of INDEX_KINDS) {
232
+ Folder({ name: kind }, () => {
233
+ const name = indexFile(kind)
234
+ const indexPath = Path.join(folder, spec.sdk_folder, 'model', kind, name)
235
+ File({ name }, () => {
236
+ Content(fs.existsSync(indexPath) ?
237
+ fs.readFileSync(indexPath, 'utf8') :
238
+ fs.readFileSync(Path.join(from, spec.sdk_folder, 'model', kind, name), 'utf8'))
239
+ })
240
+ })
241
+ }
242
+
228
243
  // Re-emit the guide the Copy skipped, merged over whatever is already
229
244
  // there. On a fresh scaffold there is no existing file and this writes
230
245
  // the template unchanged; on a re-scaffold the user's overlay survives.
@@ -232,10 +247,6 @@ const CreateRoot = cmp(function CreateRoot(props: any) {
232
247
  const guideTemplate =
233
248
  fs.readFileSync(Path.join(from, spec.sdk_folder, ...GUIDE_REL), 'utf8')
234
249
  const guidePath = Path.join(folder, spec.sdk_folder, ...GUIDE_REL)
235
-
236
- // Before the merge looks for it — otherwise a project whose guide is
237
- // still named .aontu reads as having no overlay at all.
238
- migrateOverlay(fs, Path.dirname(guidePath), 'guide')
239
250
  const existingGuide =
240
251
  fs.existsSync(guidePath) ? fs.readFileSync(guidePath, 'utf8') : null
241
252
 
@@ -17,9 +17,9 @@ const ModelSdk = cmp(function ModelSdk(props: any) {
17
17
  const from =
18
18
  Path.resolve(Path.join(__dirname, '..', '..', '..', 'project', 'standard'))
19
19
 
20
- File({ name: 'sdk.aon' }, () => {
20
+ File({ name: 'sdk.aontu' }, () => {
21
21
  Fragment({
22
- from: Path.join(from, spec.sdk_folder, 'model', 'sdk.fragment.aon'),
22
+ from: Path.join(from, spec.sdk_folder, 'model', 'sdk.fragment.aontu'),
23
23
  replace: {
24
24
  ProjectName: spec.name,
25
25
  NAME: spec.name,
@@ -0,0 +1,172 @@
1
+ import Path from 'node:path'
2
+
3
+
4
+ const TREES = ['model', 'test']
5
+
6
+ const LEGACY = '.aon'
7
+ const CURRENT = '.aontu'
8
+
9
+ const TOOLCHAIN_RE = /^@voxgig\//
10
+ const APIDEF_WRITES_RE = /^model\/guide\/[^/]*base-guide\.aontu$/
11
+
12
+ // Comments and strings are matched whole, so an include is only ever an `@`
13
+ // outside both: a `.aon` named in a comment or held as data is not rewritten.
14
+ const TOKEN_RE =
15
+ /#[^\n]*|@([ \t]*)(["'`])([^"'`\n]*)\2|"(?:\\.|[^"\\\n])*"|'(?:\\.|[^'\\\n])*'|`(?:\\.|[^`\\])*`/g
16
+
17
+
18
+ type Warn = (file: string, note: string) => void
19
+
20
+ type Scaffold = {
21
+ kept: Set<string>
22
+ replaced: Set<string>
23
+ }
24
+
25
+
26
+ function rewriteIncludes(src: string, rename: (path: string) => boolean): string {
27
+ return src.replace(TOKEN_RE, (token: string, space: string, quote: string, path: string) =>
28
+ null != quote && path.endsWith(LEGACY) && rename(path) ?
29
+ '@' + space + quote + path.slice(0, -LEGACY.length) + CURRENT + quote : token)
30
+ }
31
+
32
+
33
+ function legacyIncludes(src: string): string[] {
34
+ return [...src.matchAll(TOKEN_RE)]
35
+ .filter((m) => null != m[2] && m[3].endsWith(LEGACY))
36
+ .map((m) => m[3])
37
+ }
38
+
39
+
40
+ function modelFiles(fs: any, sdk: string, ext: string): string[] {
41
+ const found: string[] = []
42
+ const walk = (rel: string) => {
43
+ let entries: any[]
44
+ try {
45
+ entries = fs.readdirSync(Path.join(sdk, rel), { withFileTypes: true })
46
+ }
47
+ catch (_err: any) {
48
+ return
49
+ }
50
+ for (const entry of entries) {
51
+ const child = rel + '/' + entry.name
52
+ if (entry.isDirectory()) {
53
+ walk(child)
54
+ }
55
+ else if (entry.isFile() && entry.name.endsWith(ext)) {
56
+ found.push(child)
57
+ }
58
+ }
59
+ }
60
+ TREES.forEach(walk)
61
+ return found.sort()
62
+ }
63
+
64
+
65
+ function scaffoldFiles(fs: any, templateSdk: string, kept: string[]): Scaffold {
66
+ const keep = new Set(kept)
67
+ const written = modelFiles(fs, templateSdk, CURRENT)
68
+ .map((rel: string) => rel.replace('.fragment.', '.'))
69
+ return { kept: keep, replaced: new Set(written.filter((rel) => !keep.has(rel))) }
70
+ }
71
+
72
+
73
+ // A failed step must not fail the scaffold: the file keeps the name it had.
74
+ function attempt(step: () => void): void {
75
+ try {
76
+ step()
77
+ }
78
+ catch (_err: any) {
79
+ }
80
+ }
81
+
82
+
83
+ // Written beside the target and renamed over it, so a write that fails part
84
+ // way leaves the file it would have replaced whole.
85
+ function writeWhole(fs: any, path: string, data: any): void {
86
+ const tmp = path + '.migrating'
87
+ try {
88
+ fs.writeFileSync(tmp, data)
89
+ fs.renameSync(tmp, path)
90
+ }
91
+ catch (err: any) {
92
+ attempt(() => fs.unlinkSync(tmp))
93
+ throw err
94
+ }
95
+ }
96
+
97
+
98
+ function migrateFile(fs: any, prev: string, next: string): void {
99
+ if (fs.existsSync(next) || !fs.existsSync(prev)) {
100
+ return
101
+ }
102
+ attempt(() => {
103
+ writeWhole(fs, next, fs.readFileSync(prev))
104
+ fs.unlinkSync(prev)
105
+ })
106
+ }
107
+
108
+
109
+ function includeRenamer(fs: any, sdk: string, scaffold: Scaffold, from: string) {
110
+ const dir = Path.dirname(Path.join(sdk, from))
111
+ return (path: string): boolean => {
112
+ if (TOOLCHAIN_RE.test(path)) {
113
+ return true
114
+ }
115
+ if (path.startsWith('@')) {
116
+ return false
117
+ }
118
+ const twin = Path.resolve(dir, path.slice(0, -LEGACY.length) + CURRENT)
119
+ const rel = Path.relative(sdk, twin).split(Path.sep).join('/')
120
+ return fs.existsSync(twin) || scaffold.kept.has(rel) || scaffold.replaced.has(rel) ||
121
+ APIDEF_WRITES_RE.test(rel)
122
+ }
123
+ }
124
+
125
+
126
+ // Renames first and rewrites after, so an include changes only once the file
127
+ // it names is on disk as .aontu.
128
+ function migrateToAontu(fs: any, sdk: string, scaffold: Scaffold, warn: Warn): void {
129
+ const legacy = modelFiles(fs, sdk, LEGACY)
130
+ const twin = (rel: string) => rel.slice(0, -LEGACY.length) + CURRENT
131
+ const abs = (rel: string) => Path.join(sdk, rel)
132
+
133
+ for (const rel of legacy.filter((rel) => !scaffold.replaced.has(twin(rel)))) {
134
+ migrateFile(fs, abs(rel), abs(twin(rel)))
135
+ }
136
+
137
+ const sources = modelFiles(fs, sdk, CURRENT).filter((rel) => !scaffold.replaced.has(rel))
138
+ for (const rel of sources) {
139
+ attempt(() => {
140
+ const src = String(fs.readFileSync(abs(rel)))
141
+ const out = rewriteIncludes(src, includeRenamer(fs, sdk, scaffold, rel))
142
+ if (out !== src) {
143
+ writeWhole(fs, abs(rel), out)
144
+ }
145
+ })
146
+ }
147
+
148
+ for (const rel of legacy.filter((rel) => scaffold.replaced.has(twin(rel)))) {
149
+ attempt(() => fs.unlinkSync(abs(rel)))
150
+ }
151
+
152
+ for (const rel of modelFiles(fs, sdk, LEGACY)) {
153
+ warn(rel, fs.existsSync(abs(twin(rel))) ?
154
+ 'left in place: ' + twin(rel) + ' exists, and is the file aontu reads' :
155
+ 'could not be migrated to ' + twin(rel))
156
+ }
157
+ for (const rel of sources) {
158
+ attempt(() => {
159
+ for (const path of legacyIncludes(String(fs.readFileSync(abs(rel))))) {
160
+ warn(rel, 'includes ' + path + ', which aontu refuses: rename that file ' +
161
+ 'to .aontu and update the include')
162
+ }
163
+ })
164
+ }
165
+ }
166
+
167
+
168
+ export {
169
+ migrateToAontu,
170
+ rewriteIncludes,
171
+ scaffoldFiles,
172
+ }
@@ -1,8 +0,0 @@
1
- # Guide
2
-
3
- @"@voxgig/apidef/model/guide.aon"
4
-
5
- @"./base-guide.aon"
6
-
7
-
8
-
@@ -1,39 +0,0 @@
1
-
2
- # Model definitions.
3
- @"@voxgig/apidef/model/apidef.aon"
4
- @"@voxgig/sdkgen/model/sdkgen.aon"
5
-
6
-
7
- name: 'NAME'
8
- origin: 'voxgig-sdk'
9
- def: 'DEF'
10
-
11
-
12
- # API Information
13
- @"api/api-info.aon"
14
-
15
-
16
- # SDK Configuration.
17
- @"./config.aon"
18
-
19
-
20
- # SDK Entities
21
- @"entity/entity-index.aon"
22
-
23
-
24
- # SDK Features.
25
- @"feature/feature-index.aon"
26
-
27
-
28
- # SDK Targets.
29
- @"target/target-index.aon"
30
-
31
-
32
- # Operation workflows.
33
- @"flow/flow-index.aon"
34
-
35
-
36
- @"./project.aon"
37
-
38
- # Documentation editions. Settings belong in project.aon.
39
- @"edition/edition-index.aon"
@@ -1,4 +0,0 @@
1
-
2
- @"@voxgig/model/model/.model-config/model-config.aon"
3
-
4
- sys: model: builders: {}
@@ -1,30 +0,0 @@
1
- primary: clean: @"./clean.aon"
2
- primary: done: @"./done.aon"
3
- primary: featureAdd: @"./featureAdd.aon"
4
- primary: featureHook: @"./featureHook.aon"
5
- primary: featureInit: @"./featureInit.aon"
6
- primary: fetcher: @"./fetcher.aon"
7
- primary: makeContext: @"./makeContext.aon"
8
- primary: makeError: @"./makeError.aon"
9
- primary: makeFetchDef: @"./makeFetchDef.aon"
10
- primary: makeOptions: @"./makeOptions.aon"
11
- primary: makeRequest: @"./makeRequest.aon"
12
- primary: makeResponse: @"./makeResponse.aon"
13
- primary: makeResult: @"./makeResult.aon"
14
- primary: makeSpec: @"./makeSpec.aon"
15
- primary: makePoint: @"./makePoint.aon"
16
- primary: makeUrl: @"./makeUrl.aon"
17
- primary: operator: @"./operator.aon"
18
- primary: param: @"./param.aon"
19
- primary: prepareAuth: @"./prepareAuth.aon"
20
- primary: prepareBody: @"./prepareBody.aon"
21
- primary: prepareHeaders: @"./prepareHeaders.aon"
22
- primary: prepareMethod: @"./prepareMethod.aon"
23
- primary: prepareParams: @"./prepareParams.aon"
24
- primary: preparePath: @"./preparePath.aon"
25
- primary: prepareQuery: @"./prepareQuery.aon"
26
- primary: resultBasic: @"./resultBasic.aon"
27
- primary: resultBody: @"./resultBody.aon"
28
- primary: resultHeaders: @"./resultHeaders.aon"
29
- primary: transformRequest: @"./transformRequest.aon"
30
- primary: transformResponse: @"./transformResponse.aon"
@@ -1,26 +0,0 @@
1
-
2
- struct: &: {
3
- name: key()
4
- set: []
5
- }
6
-
7
- struct: minor: @"./minor.aon"
8
- struct: getpath: @"./getpath.aon"
9
- struct: inject: @"./inject.aon"
10
- struct: merge: @"./merge.aon"
11
- struct: transform: @"./transform.aon"
12
- struct: walk: @"./walk.aon"
13
- struct: validate: @"./validate.aon"
14
- struct: select: @"./select.aon"
15
- struct: nullsem: @"./nullsem.aon"
16
-
17
- primary: check: {
18
- DEF: {
19
- client:a:test:options:foo:1
20
- }
21
- basic: set: [
22
- { ctx:meta:bar:BAR0, out:zed:ZED_BAR0 }
23
- { ctx:meta:bar:BAR1, client:a, out:zed:ZED1_BAR1 }
24
- ]
25
- }
26
-
@@ -1,4 +0,0 @@
1
-
2
- @"struct/test.aon"
3
- @"primary/primary-test-index.aon"
4
- @"feature/feature-test-index.aon"