oazapfts 7.5.0-alpha.5 → 7.5.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 (46) hide show
  1. package/dist/asyncToGenerator-DANjdFmB.cjs +1 -0
  2. package/dist/cli.cjs +5 -5
  3. package/dist/cli.cjs.map +1 -1
  4. package/dist/cli.js +55 -77
  5. package/dist/cli.js.map +1 -1
  6. package/dist/context-9l26yjuA.cjs +5 -0
  7. package/dist/context-9l26yjuA.cjs.map +1 -0
  8. package/dist/context-BZ7CId2F.js +305 -0
  9. package/dist/context-BZ7CId2F.js.map +1 -0
  10. package/dist/context.cjs +1 -2
  11. package/dist/context.d.ts +76 -73
  12. package/dist/context.js +2 -9
  13. package/dist/generate.cjs +1 -2
  14. package/dist/generate.d.ts +280 -272
  15. package/dist/generate.js +3 -18
  16. package/dist/generateClientMethod-B8zYb-98.cjs +5 -0
  17. package/dist/generateClientMethod-B8zYb-98.cjs.map +1 -0
  18. package/dist/generateClientMethod-CQwJveeR.js +678 -0
  19. package/dist/generateClientMethod-CQwJveeR.js.map +1 -0
  20. package/dist/index.cjs +1 -4
  21. package/dist/index.d.ts +112 -109
  22. package/dist/index.js +4 -128
  23. package/dist/plugin.cjs +2 -2
  24. package/dist/plugin.cjs.map +1 -1
  25. package/dist/plugin.d.ts +183 -177
  26. package/dist/plugin.js +59 -56
  27. package/dist/plugin.js.map +1 -1
  28. package/dist/src-CbQmhGca.js +91 -0
  29. package/dist/src-CbQmhGca.js.map +1 -0
  30. package/dist/src-DvHaU3Vh.cjs +4 -0
  31. package/dist/src-DvHaU3Vh.cjs.map +1 -0
  32. package/package.json +2 -2
  33. package/dist/context-CW7QVVIl.cjs +0 -7
  34. package/dist/context-CW7QVVIl.cjs.map +0 -1
  35. package/dist/context-CaMQiN45.js +0 -603
  36. package/dist/context-CaMQiN45.js.map +0 -1
  37. package/dist/context.cjs.map +0 -1
  38. package/dist/context.js.map +0 -1
  39. package/dist/generate.cjs.map +0 -1
  40. package/dist/generate.js.map +0 -1
  41. package/dist/generateClientMethod-B2Dw3fhE.js +0 -1111
  42. package/dist/generateClientMethod-B2Dw3fhE.js.map +0 -1
  43. package/dist/generateClientMethod-XbWWacyy.cjs +0 -7
  44. package/dist/generateClientMethod-XbWWacyy.cjs.map +0 -1
  45. package/dist/index.cjs.map +0 -1
  46. package/dist/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ function e(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){n(e);return}s.done?t(c):Promise.resolve(c).then(r,i)}function t(t){return function(){var n=this,r=arguments;return new Promise(function(i,a){var o=t.apply(n,r);function s(t){e(o,i,a,s,c,`next`,t)}function c(t){e(o,i,a,s,c,`throw`,t)}s(void 0)})}}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return t}});
package/dist/cli.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- "use strict";var y=(n,l,t)=>new Promise((a,u)=>{var o=e=>{try{s(t.next(e))}catch(r){u(r)}},c=e=>{try{s(t.throw(e))}catch(r){u(r)}},s=e=>e.done?a(e.value):Promise.resolve(e.value).then(o,c);s((t=t.apply(n,l)).next())});const g=require("fs/promises"),w=require("minimist"),b=require("path"),j=require("./index.cjs"),i=require("./generateClientMethod-XbWWacyy.cjs");function $(n){return y(this,null,function*(){const{include:l,exclude:t,optimistic:a,useEnumType:u,enumStyle:o,mergeReadWriteOnly:c,useUnknown:s,argumentStyle:e,allSchemas:r,numericBooleanQueryParameters:f,futureStripLegacyMethods:h,help:x,version:O}=n,[m,p]=n._;if(x&&(S(),process.exit(0)),O){const v=JSON.parse(yield g.readFile(b.join(__dirname,"..","package.json"),"utf8"));console.log(v.version),process.exit(0)}m||(S(),process.exit(1)),e!==void 0&&!i.argumentStyleOptions.includes(e)&&(console.error(`--argumentStyle should be one of <${i.argumentStyleOptions.join(" | ")}>, but got "${e}"`),process.exit(1)),o!==void 0&&!i.enumStyleOptions.includes(o)&&(console.error(`--enumStyle should be one of <${i.enumStyleOptions.join(" | ")}>, but got "${o}"`),process.exit(1));const d=yield j.generateSource(m,{include:l,exclude:t,optimistic:a,useEnumType:u,enumStyle:o,useUnknown:s,mergeReadWriteOnly:c,argumentStyle:e,allSchemas:r,numericBooleanQueryParameters:f,futureStripLegacyMethods:h});p?yield g.writeFile(p,d):console.log(d)})}function S(){console.error(`
2
+ const e=require(`./context-9l26yjuA.cjs`),t=require(`./generateClientMethod-B8zYb-98.cjs`),n=require(`./asyncToGenerator-DANjdFmB.cjs`),r=require(`./src-DvHaU3Vh.cjs`);let i=require(`fs/promises`),a=require(`minimist`);a=e.T(a);let o=require(`path`);function s(e){return c.apply(this,arguments)}function c(){return c=n.t(function*(e){let{include:n,exclude:a,optimistic:s,useEnumType:c,enumStyle:u,mergeReadWriteOnly:d,useUnknown:f,argumentStyle:p,allSchemas:m,numericBooleanQueryParameters:h,futureStripLegacyMethods:g,help:_,version:v}=e,[y,b]=e._;if(_&&(l(),process.exit(0)),v){let e=JSON.parse(yield(0,i.readFile)((0,o.join)(__dirname,`..`,`package.json`),`utf8`));console.log(e.version),process.exit(0)}y||(l(),process.exit(1)),p!==void 0&&!t.t.includes(p)&&(console.error(`--argumentStyle should be one of <${t.t.join(` | `)}>, but got "${p}"`),process.exit(1)),u!==void 0&&!t.h.includes(u)&&(console.error(`--enumStyle should be one of <${t.h.join(` | `)}>, but got "${u}"`),process.exit(1));let x=yield r.n(y,{include:n,exclude:a,optimistic:s,useEnumType:c,enumStyle:u,useUnknown:f,mergeReadWriteOnly:d,argumentStyle:p,allSchemas:m,numericBooleanQueryParameters:h,futureStripLegacyMethods:g});b?yield(0,i.writeFile)(b,x):console.log(x)}),c.apply(this,arguments)}function l(){console.error(`
3
3
  Usage:
4
4
  oazapfts <spec> [filename]
5
5
 
@@ -10,12 +10,12 @@
10
10
  --version, -v
11
11
  --optimistic
12
12
  --useEnumType (deprecated, use --enumStyle=enum)
13
- --enumStyle=<${i.enumStyleOptions.join(" | ")}> (default: union)
13
+ --enumStyle=<${t.h.join(` | `)}> (default: union)
14
14
  --useUnknown
15
15
  --mergeReadWriteOnly
16
- --argumentStyle=<${i.argumentStyleOptions.join(" | ")}> (default: positional)
16
+ --argumentStyle=<${t.t.join(` | `)}> (default: positional)
17
17
  --allSchemas
18
18
  --numericBooleanQueryParameters
19
19
  --futureStripLegacyMethods
20
- `)}$(w(process.argv.slice(2),{alias:{h:"help",v:"version",i:"include",e:"exclude"},boolean:["help","version","optimistic","useEnumType","mergeReadWriteOnly","useUnknown","allSchemas","numericBooleanQueryParameters","futureStripLegacyMethods"],string:["argumentStyle","enumStyle"]})).catch(n=>{console.error(n),process.exit(1)});
21
- //# sourceMappingURL=cli.cjs.map
20
+ `)}s((0,a.default)(process.argv.slice(2),{alias:{h:`help`,v:`version`,i:`include`,e:`exclude`},boolean:[`help`,`version`,`optimistic`,`useEnumType`,`mergeReadWriteOnly`,`useUnknown`,`allSchemas`,`numericBooleanQueryParameters`,`futureStripLegacyMethods`],string:[`argumentStyle`,`enumStyle`]})).catch(e=>{console.error(e),process.exit(1)});
21
+ //# sourceMappingURL=cli.cjs.map
package/dist/cli.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.cjs","sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { readFile, writeFile } from \"fs/promises\";\nimport minimist, { type ParsedArgs } from \"minimist\";\nimport { join } from \"path\";\n\nimport { generateSource } from \"./\";\nimport { argumentStyleOptions } from \"./generate/generateClientMethod\";\nimport { enumStyleOptions } from \"./helpers/getEnumStyle\";\n\nasync function run(argv: ParsedArgs) {\n const {\n include,\n exclude,\n optimistic,\n useEnumType,\n enumStyle,\n mergeReadWriteOnly,\n useUnknown,\n argumentStyle,\n allSchemas,\n numericBooleanQueryParameters,\n futureStripLegacyMethods,\n help,\n version,\n } = argv;\n const [spec, dest] = argv._;\n\n if (help) {\n printUsage();\n process.exit(0);\n }\n\n if (version) {\n const pkg = JSON.parse(\n await readFile(join(__dirname, \"..\", \"package.json\"), \"utf8\"),\n );\n console.log(pkg.version);\n process.exit(0);\n }\n\n if (!spec) {\n printUsage();\n process.exit(1);\n }\n\n if (\n argumentStyle !== undefined &&\n !argumentStyleOptions.includes(argumentStyle)\n ) {\n console.error(\n `--argumentStyle should be one of <${argumentStyleOptions.join(\n \" | \",\n )}>, but got \"${argumentStyle}\"`,\n );\n process.exit(1);\n }\n\n if (enumStyle !== undefined && !enumStyleOptions.includes(enumStyle)) {\n console.error(\n `--enumStyle should be one of <${enumStyleOptions.join(\n \" | \",\n )}>, but got \"${enumStyle}\"`,\n );\n process.exit(1);\n }\n\n const code = await generateSource(spec, {\n include,\n exclude,\n optimistic,\n useEnumType,\n enumStyle,\n useUnknown,\n mergeReadWriteOnly,\n argumentStyle,\n allSchemas,\n numericBooleanQueryParameters,\n futureStripLegacyMethods,\n });\n\n if (dest) await writeFile(dest, code);\n else console.log(code);\n}\n\nfunction printUsage() {\n console.error(`\n Usage:\n oazapfts <spec> [filename]\n\n Options:\n --exclude, -e <tag to exclude>\n --include, -i <tag to include>\n --help, -h\n --version, -v\n --optimistic\n --useEnumType (deprecated, use --enumStyle=enum)\n --enumStyle=<${enumStyleOptions.join(\" | \")}> (default: union)\n --useUnknown\n --mergeReadWriteOnly\n --argumentStyle=<${argumentStyleOptions.join(\" | \")}> (default: positional)\n --allSchemas\n --numericBooleanQueryParameters\n --futureStripLegacyMethods\n`);\n}\n\nrun(\n minimist(process.argv.slice(2), {\n alias: {\n h: \"help\",\n v: \"version\",\n i: \"include\",\n e: \"exclude\",\n },\n boolean: [\n \"help\",\n \"version\",\n \"optimistic\",\n \"useEnumType\",\n \"mergeReadWriteOnly\",\n \"useUnknown\",\n \"allSchemas\",\n \"numericBooleanQueryParameters\",\n \"futureStripLegacyMethods\",\n ],\n string: [\"argumentStyle\", \"enumStyle\"],\n }),\n).catch((error) => {\n console.error(error);\n process.exit(1);\n});\n"],"names":["run","argv","__async","include","exclude","optimistic","useEnumType","enumStyle","mergeReadWriteOnly","useUnknown","argumentStyle","allSchemas","numericBooleanQueryParameters","futureStripLegacyMethods","help","version","spec","dest","printUsage","pkg","readFile","join","argumentStyleOptions","enumStyleOptions","code","generateSource","writeFile","minimist","error"],"mappings":";2WAUA,SAAeA,EAAIC,EAAkB,QAAAC,EAAA,sBACnC,KAAM,CACJ,QAAAC,EACA,QAAAC,EACA,WAAAC,EACA,YAAAC,EACA,UAAAC,EACA,mBAAAC,EACA,WAAAC,EACA,cAAAC,EACA,WAAAC,EACA,8BAAAC,EACA,yBAAAC,EACA,KAAAC,EACA,QAAAC,CAAA,EACEd,EACE,CAACe,EAAMC,CAAI,EAAIhB,EAAK,EAO1B,GALIa,IACFI,EAAA,EACA,QAAQ,KAAK,CAAC,GAGZH,EAAS,CACX,MAAMI,EAAM,KAAK,MACf,MAAMC,EAAAA,SAASC,EAAAA,KAAK,UAAW,KAAM,cAAc,EAAG,MAAM,CAAA,EAE9D,QAAQ,IAAIF,EAAI,OAAO,EACvB,QAAQ,KAAK,CAAC,CAChB,CAEKH,IACHE,EAAA,EACA,QAAQ,KAAK,CAAC,GAIdR,IAAkB,QAClB,CAACY,EAAAA,qBAAqB,SAASZ,CAAa,IAE5C,QAAQ,MACN,qCAAqCY,EAAAA,qBAAqB,KACxD,KAAA,CACD,eAAeZ,CAAa,GAAA,EAE/B,QAAQ,KAAK,CAAC,GAGZH,IAAc,QAAa,CAACgB,EAAAA,iBAAiB,SAAShB,CAAS,IACjE,QAAQ,MACN,iCAAiCgB,EAAAA,iBAAiB,KAChD,KAAA,CACD,eAAehB,CAAS,GAAA,EAE3B,QAAQ,KAAK,CAAC,GAGhB,MAAMiB,EAAO,MAAMC,EAAAA,eAAeT,EAAM,CACtC,QAAAb,EACA,QAAAC,EACA,WAAAC,EACA,YAAAC,EACA,UAAAC,EACA,WAAAE,EACA,mBAAAD,EACA,cAAAE,EACA,WAAAC,EACA,8BAAAC,EACA,yBAAAC,CAAA,CACD,EAEGI,EAAM,MAAMS,YAAUT,EAAMO,CAAI,EAC/B,QAAQ,IAAIA,CAAI,CACvB,GAEA,SAASN,GAAa,CACpB,QAAQ,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAWGK,EAAAA,iBAAiB,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA,uBAGxBD,EAAAA,qBAAqB,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA,CAItD,CACD,CAEAtB,EACE2B,EAAS,QAAQ,KAAK,MAAM,CAAC,EAAG,CAC9B,MAAO,CACL,EAAG,OACH,EAAG,UACH,EAAG,UACH,EAAG,SAAA,EAEL,QAAS,CACP,OACA,UACA,aACA,cACA,qBACA,aACA,aACA,gCACA,0BAAA,EAEF,OAAQ,CAAC,gBAAiB,WAAW,CAAA,CACtC,CACH,EAAE,MAAOC,GAAU,CACjB,QAAQ,MAAMA,CAAK,EACnB,QAAQ,KAAK,CAAC,CAChB,CAAC"}
1
+ {"version":3,"file":"cli.cjs","names":[],"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { readFile, writeFile } from \"fs/promises\";\nimport minimist, { type ParsedArgs } from \"minimist\";\nimport { join } from \"path\";\n\nimport { generateSource } from \"./\";\nimport { argumentStyleOptions } from \"./generate/generateClientMethod\";\nimport { enumStyleOptions } from \"./helpers/getEnumStyle\";\n\nasync function run(argv: ParsedArgs) {\n const {\n include,\n exclude,\n optimistic,\n useEnumType,\n enumStyle,\n mergeReadWriteOnly,\n useUnknown,\n argumentStyle,\n allSchemas,\n numericBooleanQueryParameters,\n futureStripLegacyMethods,\n help,\n version,\n } = argv;\n const [spec, dest] = argv._;\n\n if (help) {\n printUsage();\n process.exit(0);\n }\n\n if (version) {\n const pkg = JSON.parse(\n await readFile(join(__dirname, \"..\", \"package.json\"), \"utf8\"),\n );\n console.log(pkg.version);\n process.exit(0);\n }\n\n if (!spec) {\n printUsage();\n process.exit(1);\n }\n\n if (\n argumentStyle !== undefined &&\n !argumentStyleOptions.includes(argumentStyle)\n ) {\n console.error(\n `--argumentStyle should be one of <${argumentStyleOptions.join(\n \" | \",\n )}>, but got \"${argumentStyle}\"`,\n );\n process.exit(1);\n }\n\n if (enumStyle !== undefined && !enumStyleOptions.includes(enumStyle)) {\n console.error(\n `--enumStyle should be one of <${enumStyleOptions.join(\n \" | \",\n )}>, but got \"${enumStyle}\"`,\n );\n process.exit(1);\n }\n\n const code = await generateSource(spec, {\n include,\n exclude,\n optimistic,\n useEnumType,\n enumStyle,\n useUnknown,\n mergeReadWriteOnly,\n argumentStyle,\n allSchemas,\n numericBooleanQueryParameters,\n futureStripLegacyMethods,\n });\n\n if (dest) await writeFile(dest, code);\n else console.log(code);\n}\n\nfunction printUsage() {\n console.error(`\n Usage:\n oazapfts <spec> [filename]\n\n Options:\n --exclude, -e <tag to exclude>\n --include, -i <tag to include>\n --help, -h\n --version, -v\n --optimistic\n --useEnumType (deprecated, use --enumStyle=enum)\n --enumStyle=<${enumStyleOptions.join(\" | \")}> (default: union)\n --useUnknown\n --mergeReadWriteOnly\n --argumentStyle=<${argumentStyleOptions.join(\" | \")}> (default: positional)\n --allSchemas\n --numericBooleanQueryParameters\n --futureStripLegacyMethods\n`);\n}\n\nrun(\n minimist(process.argv.slice(2), {\n alias: {\n h: \"help\",\n v: \"version\",\n i: \"include\",\n e: \"exclude\",\n },\n boolean: [\n \"help\",\n \"version\",\n \"optimistic\",\n \"useEnumType\",\n \"mergeReadWriteOnly\",\n \"useUnknown\",\n \"allSchemas\",\n \"numericBooleanQueryParameters\",\n \"futureStripLegacyMethods\",\n ],\n string: [\"argumentStyle\", \"enumStyle\"],\n }),\n).catch((error) => {\n console.error(error);\n process.exit(1);\n});\n"],"mappings":";0PAUA,SAAe,EAAI,EAAA,sEAAkB,CACnC,GAAM,CACJ,UACA,UACA,aACA,cACA,YACA,qBACA,aACA,gBACA,aACA,gCACA,2BACA,OACA,WACE,EACE,CAAC,EAAM,GAAQ,EAAK,EAO1B,GALI,IACF,GAAY,CACZ,QAAQ,KAAK,EAAE,EAGb,EAAS,CACX,IAAM,EAAM,KAAK,MACf,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,MAAoB,UAAW,KAAM,eAAe,CAAE,OAAO,CAC9D,CACD,QAAQ,IAAI,EAAI,QAAQ,CACxB,QAAQ,KAAK,EAAE,CAGZ,IACH,GAAY,CACZ,QAAQ,KAAK,EAAE,EAIf,IAAkB,IAAA,IAClB,CAAC,EAAA,EAAqB,SAAS,EAAc,GAE7C,QAAQ,MACN,qCAAqC,EAAA,EAAqB,KACxD,MACD,CAAC,cAAc,EAAc,GAC/B,CACD,QAAQ,KAAK,EAAE,EAGb,IAAc,IAAA,IAAa,CAAC,EAAA,EAAiB,SAAS,EAAU,GAClE,QAAQ,MACN,iCAAiC,EAAA,EAAiB,KAChD,MACD,CAAC,cAAc,EAAU,GAC3B,CACD,QAAQ,KAAK,EAAE,EAGjB,IAAM,EAAO,MAAM,EAAA,EAAe,EAAM,CACtC,UACA,UACA,aACA,cACA,YACA,aACA,qBACA,gBACA,aACA,gCACA,2BACD,CAAC,CAEE,EAAM,MAAA,EAAA,EAAA,WAAgB,EAAM,EAAK,CAChC,QAAQ,IAAI,EAAK,2BAGxB,SAAS,GAAa,CACpB,QAAQ,MAAM;;;;;;;;;;;mBAWG,EAAA,EAAiB,KAAK,MAAM,CAAC;;;uBAGzB,EAAA,EAAqB,KAAK,MAAM,CAAC;;;;EAItD,CAGF,GAAA,EAAA,EAAA,SACW,QAAQ,KAAK,MAAM,EAAE,CAAE,CAC9B,MAAO,CACL,EAAG,OACH,EAAG,UACH,EAAG,UACH,EAAG,UACJ,CACD,QAAS,CACP,OACA,UACA,aACA,cACA,qBACA,aACA,aACA,gCACA,2BACD,CACD,OAAQ,CAAC,gBAAiB,YAAY,CACvC,CAAC,CACH,CAAC,MAAO,GAAU,CACjB,QAAQ,MAAM,EAAM,CACpB,QAAQ,KAAK,EAAE,EACf"}
package/dist/cli.js CHANGED
@@ -1,57 +1,35 @@
1
1
  #!/usr/bin/env node
2
- import { readFile as w, writeFile as O } from "fs/promises";
3
- import b from "minimist";
4
- import { join as j } from "path";
5
- import { generateSource as $ } from "./index.js";
6
- import { m as t, n as i } from "./generateClientMethod-B2Dw3fhE.js";
7
- async function k(e) {
8
- const {
9
- include: a,
10
- exclude: c,
11
- optimistic: m,
12
- useEnumType: p,
13
- enumStyle: o,
14
- mergeReadWriteOnly: d,
15
- useUnknown: y,
16
- argumentStyle: n,
17
- allSchemas: f,
18
- numericBooleanQueryParameters: g,
19
- futureStripLegacyMethods: S,
20
- help: h,
21
- version: v
22
- } = e, [r, s] = e._;
23
- if (h && (u(), process.exit(0)), v) {
24
- const x = JSON.parse(
25
- await w(j(__dirname, "..", "package.json"), "utf8")
26
- );
27
- console.log(x.version), process.exit(0);
28
- }
29
- r || (u(), process.exit(1)), n !== void 0 && !t.includes(n) && (console.error(
30
- `--argumentStyle should be one of <${t.join(
31
- " | "
32
- )}>, but got "${n}"`
33
- ), process.exit(1)), o !== void 0 && !i.includes(o) && (console.error(
34
- `--enumStyle should be one of <${i.join(
35
- " | "
36
- )}>, but got "${o}"`
37
- ), process.exit(1));
38
- const l = await $(r, {
39
- include: a,
40
- exclude: c,
41
- optimistic: m,
42
- useEnumType: p,
43
- enumStyle: o,
44
- useUnknown: y,
45
- mergeReadWriteOnly: d,
46
- argumentStyle: n,
47
- allSchemas: f,
48
- numericBooleanQueryParameters: g,
49
- futureStripLegacyMethods: S
50
- });
51
- s ? await O(s, l) : console.log(l);
2
+ import "./context-BZ7CId2F.js";
3
+ import { h as e, t } from "./generateClientMethod-CQwJveeR.js";
4
+ import { n } from "./src-CbQmhGca.js";
5
+ import { readFile as r, writeFile as i } from "fs/promises";
6
+ import a from "minimist";
7
+ import { join as o } from "path";
8
+ //#region src/cli.ts
9
+ async function s(a) {
10
+ let { include: s, exclude: l, optimistic: u, useEnumType: d, enumStyle: f, mergeReadWriteOnly: p, useUnknown: m, argumentStyle: h, allSchemas: g, numericBooleanQueryParameters: _, futureStripLegacyMethods: v, help: y, version: b } = a, [x, S] = a._;
11
+ if (y && (c(), process.exit(0)), b) {
12
+ let e = JSON.parse(await r(o(__dirname, "..", "package.json"), "utf8"));
13
+ console.log(e.version), process.exit(0);
14
+ }
15
+ x || (c(), process.exit(1)), h !== void 0 && !t.includes(h) && (console.error(`--argumentStyle should be one of <${t.join(" | ")}>, but got "${h}"`), process.exit(1)), f !== void 0 && !e.includes(f) && (console.error(`--enumStyle should be one of <${e.join(" | ")}>, but got "${f}"`), process.exit(1));
16
+ let C = await n(x, {
17
+ include: s,
18
+ exclude: l,
19
+ optimistic: u,
20
+ useEnumType: d,
21
+ enumStyle: f,
22
+ useUnknown: m,
23
+ mergeReadWriteOnly: p,
24
+ argumentStyle: h,
25
+ allSchemas: g,
26
+ numericBooleanQueryParameters: _,
27
+ futureStripLegacyMethods: v
28
+ });
29
+ S ? await i(S, C) : console.log(C);
52
30
  }
53
- function u() {
54
- console.error(`
31
+ function c() {
32
+ console.error(`
55
33
  Usage:
56
34
  oazapfts <spec> [filename]
57
35
 
@@ -62,7 +40,7 @@ function u() {
62
40
  --version, -v
63
41
  --optimistic
64
42
  --useEnumType (deprecated, use --enumStyle=enum)
65
- --enumStyle=<${i.join(" | ")}> (default: union)
43
+ --enumStyle=<${e.join(" | ")}> (default: union)
66
44
  --useUnknown
67
45
  --mergeReadWriteOnly
68
46
  --argumentStyle=<${t.join(" | ")}> (default: positional)
@@ -71,28 +49,28 @@ function u() {
71
49
  --futureStripLegacyMethods
72
50
  `);
73
51
  }
74
- k(
75
- b(process.argv.slice(2), {
76
- alias: {
77
- h: "help",
78
- v: "version",
79
- i: "include",
80
- e: "exclude"
81
- },
82
- boolean: [
83
- "help",
84
- "version",
85
- "optimistic",
86
- "useEnumType",
87
- "mergeReadWriteOnly",
88
- "useUnknown",
89
- "allSchemas",
90
- "numericBooleanQueryParameters",
91
- "futureStripLegacyMethods"
92
- ],
93
- string: ["argumentStyle", "enumStyle"]
94
- })
95
- ).catch((e) => {
96
- console.error(e), process.exit(1);
52
+ s(a(process.argv.slice(2), {
53
+ alias: {
54
+ h: "help",
55
+ v: "version",
56
+ i: "include",
57
+ e: "exclude"
58
+ },
59
+ boolean: [
60
+ "help",
61
+ "version",
62
+ "optimistic",
63
+ "useEnumType",
64
+ "mergeReadWriteOnly",
65
+ "useUnknown",
66
+ "allSchemas",
67
+ "numericBooleanQueryParameters",
68
+ "futureStripLegacyMethods"
69
+ ],
70
+ string: ["argumentStyle", "enumStyle"]
71
+ })).catch((e) => {
72
+ console.error(e), process.exit(1);
97
73
  });
98
- //# sourceMappingURL=cli.js.map
74
+ //#endregion
75
+
76
+ //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { readFile, writeFile } from \"fs/promises\";\nimport minimist, { type ParsedArgs } from \"minimist\";\nimport { join } from \"path\";\n\nimport { generateSource } from \"./\";\nimport { argumentStyleOptions } from \"./generate/generateClientMethod\";\nimport { enumStyleOptions } from \"./helpers/getEnumStyle\";\n\nasync function run(argv: ParsedArgs) {\n const {\n include,\n exclude,\n optimistic,\n useEnumType,\n enumStyle,\n mergeReadWriteOnly,\n useUnknown,\n argumentStyle,\n allSchemas,\n numericBooleanQueryParameters,\n futureStripLegacyMethods,\n help,\n version,\n } = argv;\n const [spec, dest] = argv._;\n\n if (help) {\n printUsage();\n process.exit(0);\n }\n\n if (version) {\n const pkg = JSON.parse(\n await readFile(join(__dirname, \"..\", \"package.json\"), \"utf8\"),\n );\n console.log(pkg.version);\n process.exit(0);\n }\n\n if (!spec) {\n printUsage();\n process.exit(1);\n }\n\n if (\n argumentStyle !== undefined &&\n !argumentStyleOptions.includes(argumentStyle)\n ) {\n console.error(\n `--argumentStyle should be one of <${argumentStyleOptions.join(\n \" | \",\n )}>, but got \"${argumentStyle}\"`,\n );\n process.exit(1);\n }\n\n if (enumStyle !== undefined && !enumStyleOptions.includes(enumStyle)) {\n console.error(\n `--enumStyle should be one of <${enumStyleOptions.join(\n \" | \",\n )}>, but got \"${enumStyle}\"`,\n );\n process.exit(1);\n }\n\n const code = await generateSource(spec, {\n include,\n exclude,\n optimistic,\n useEnumType,\n enumStyle,\n useUnknown,\n mergeReadWriteOnly,\n argumentStyle,\n allSchemas,\n numericBooleanQueryParameters,\n futureStripLegacyMethods,\n });\n\n if (dest) await writeFile(dest, code);\n else console.log(code);\n}\n\nfunction printUsage() {\n console.error(`\n Usage:\n oazapfts <spec> [filename]\n\n Options:\n --exclude, -e <tag to exclude>\n --include, -i <tag to include>\n --help, -h\n --version, -v\n --optimistic\n --useEnumType (deprecated, use --enumStyle=enum)\n --enumStyle=<${enumStyleOptions.join(\" | \")}> (default: union)\n --useUnknown\n --mergeReadWriteOnly\n --argumentStyle=<${argumentStyleOptions.join(\" | \")}> (default: positional)\n --allSchemas\n --numericBooleanQueryParameters\n --futureStripLegacyMethods\n`);\n}\n\nrun(\n minimist(process.argv.slice(2), {\n alias: {\n h: \"help\",\n v: \"version\",\n i: \"include\",\n e: \"exclude\",\n },\n boolean: [\n \"help\",\n \"version\",\n \"optimistic\",\n \"useEnumType\",\n \"mergeReadWriteOnly\",\n \"useUnknown\",\n \"allSchemas\",\n \"numericBooleanQueryParameters\",\n \"futureStripLegacyMethods\",\n ],\n string: [\"argumentStyle\", \"enumStyle\"],\n }),\n).catch((error) => {\n console.error(error);\n process.exit(1);\n});\n"],"names":["run","argv","include","exclude","optimistic","useEnumType","enumStyle","mergeReadWriteOnly","useUnknown","argumentStyle","allSchemas","numericBooleanQueryParameters","futureStripLegacyMethods","help","version","spec","dest","printUsage","pkg","readFile","join","argumentStyleOptions","enumStyleOptions","code","generateSource","writeFile","minimist","error"],"mappings":";;;;;;AAUA,eAAeA,EAAIC,GAAkB;AACnC,QAAM;AAAA,IACJ,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;AAAA,IACA,YAAAC;AAAA,IACA,+BAAAC;AAAA,IACA,0BAAAC;AAAA,IACA,MAAAC;AAAA,IACA,SAAAC;AAAA,EAAA,IACEb,GACE,CAACc,GAAMC,CAAI,IAAIf,EAAK;AAO1B,MALIY,MACFI,EAAA,GACA,QAAQ,KAAK,CAAC,IAGZH,GAAS;AACX,UAAMI,IAAM,KAAK;AAAA,MACf,MAAMC,EAASC,EAAK,WAAW,MAAM,cAAc,GAAG,MAAM;AAAA,IAAA;AAE9D,YAAQ,IAAIF,EAAI,OAAO,GACvB,QAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,EAAKH,MACHE,EAAA,GACA,QAAQ,KAAK,CAAC,IAIdR,MAAkB,UAClB,CAACY,EAAqB,SAASZ,CAAa,MAE5C,QAAQ;AAAA,IACN,qCAAqCY,EAAqB;AAAA,MACxD;AAAA,IAAA,CACD,eAAeZ,CAAa;AAAA,EAAA,GAE/B,QAAQ,KAAK,CAAC,IAGZH,MAAc,UAAa,CAACgB,EAAiB,SAAShB,CAAS,MACjE,QAAQ;AAAA,IACN,iCAAiCgB,EAAiB;AAAA,MAChD;AAAA,IAAA,CACD,eAAehB,CAAS;AAAA,EAAA,GAE3B,QAAQ,KAAK,CAAC;AAGhB,QAAMiB,IAAO,MAAMC,EAAeT,GAAM;AAAA,IACtC,SAAAb;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,YAAAE;AAAA,IACA,oBAAAD;AAAA,IACA,eAAAE;AAAA,IACA,YAAAC;AAAA,IACA,+BAAAC;AAAA,IACA,0BAAAC;AAAA,EAAA,CACD;AAED,EAAII,IAAM,MAAMS,EAAUT,GAAMO,CAAI,IAC/B,QAAQ,IAAIA,CAAI;AACvB;AAEA,SAASN,IAAa;AACpB,UAAQ,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAWGK,EAAiB,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA,uBAGxBD,EAAqB,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA,CAItD;AACD;AAEArB;AAAA,EACE0B,EAAS,QAAQ,KAAK,MAAM,CAAC,GAAG;AAAA,IAC9B,OAAO;AAAA,MACL,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IAAA;AAAA,IAEL,SAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,QAAQ,CAAC,iBAAiB,WAAW;AAAA,EAAA,CACtC;AACH,EAAE,MAAM,CAACC,MAAU;AACjB,UAAQ,MAAMA,CAAK,GACnB,QAAQ,KAAK,CAAC;AAChB,CAAC;"}
1
+ {"version":3,"file":"cli.js","names":[],"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { readFile, writeFile } from \"fs/promises\";\nimport minimist, { type ParsedArgs } from \"minimist\";\nimport { join } from \"path\";\n\nimport { generateSource } from \"./\";\nimport { argumentStyleOptions } from \"./generate/generateClientMethod\";\nimport { enumStyleOptions } from \"./helpers/getEnumStyle\";\n\nasync function run(argv: ParsedArgs) {\n const {\n include,\n exclude,\n optimistic,\n useEnumType,\n enumStyle,\n mergeReadWriteOnly,\n useUnknown,\n argumentStyle,\n allSchemas,\n numericBooleanQueryParameters,\n futureStripLegacyMethods,\n help,\n version,\n } = argv;\n const [spec, dest] = argv._;\n\n if (help) {\n printUsage();\n process.exit(0);\n }\n\n if (version) {\n const pkg = JSON.parse(\n await readFile(join(__dirname, \"..\", \"package.json\"), \"utf8\"),\n );\n console.log(pkg.version);\n process.exit(0);\n }\n\n if (!spec) {\n printUsage();\n process.exit(1);\n }\n\n if (\n argumentStyle !== undefined &&\n !argumentStyleOptions.includes(argumentStyle)\n ) {\n console.error(\n `--argumentStyle should be one of <${argumentStyleOptions.join(\n \" | \",\n )}>, but got \"${argumentStyle}\"`,\n );\n process.exit(1);\n }\n\n if (enumStyle !== undefined && !enumStyleOptions.includes(enumStyle)) {\n console.error(\n `--enumStyle should be one of <${enumStyleOptions.join(\n \" | \",\n )}>, but got \"${enumStyle}\"`,\n );\n process.exit(1);\n }\n\n const code = await generateSource(spec, {\n include,\n exclude,\n optimistic,\n useEnumType,\n enumStyle,\n useUnknown,\n mergeReadWriteOnly,\n argumentStyle,\n allSchemas,\n numericBooleanQueryParameters,\n futureStripLegacyMethods,\n });\n\n if (dest) await writeFile(dest, code);\n else console.log(code);\n}\n\nfunction printUsage() {\n console.error(`\n Usage:\n oazapfts <spec> [filename]\n\n Options:\n --exclude, -e <tag to exclude>\n --include, -i <tag to include>\n --help, -h\n --version, -v\n --optimistic\n --useEnumType (deprecated, use --enumStyle=enum)\n --enumStyle=<${enumStyleOptions.join(\" | \")}> (default: union)\n --useUnknown\n --mergeReadWriteOnly\n --argumentStyle=<${argumentStyleOptions.join(\" | \")}> (default: positional)\n --allSchemas\n --numericBooleanQueryParameters\n --futureStripLegacyMethods\n`);\n}\n\nrun(\n minimist(process.argv.slice(2), {\n alias: {\n h: \"help\",\n v: \"version\",\n i: \"include\",\n e: \"exclude\",\n },\n boolean: [\n \"help\",\n \"version\",\n \"optimistic\",\n \"useEnumType\",\n \"mergeReadWriteOnly\",\n \"useUnknown\",\n \"allSchemas\",\n \"numericBooleanQueryParameters\",\n \"futureStripLegacyMethods\",\n ],\n string: [\"argumentStyle\", \"enumStyle\"],\n }),\n).catch((error) => {\n console.error(error);\n process.exit(1);\n});\n"],"mappings":";;;;;;;;AAUA,eAAe,EAAI,GAAkB;CACnC,IAAM,EACJ,YACA,YACA,eACA,gBACA,cACA,uBACA,eACA,kBACA,eACA,kCACA,6BACA,SACA,eACE,GACE,CAAC,GAAM,KAAQ,EAAK;AAO1B,KALI,MACF,GAAY,EACZ,QAAQ,KAAK,EAAE,GAGb,GAAS;EACX,IAAM,IAAM,KAAK,MACf,MAAM,EAAS,EAAK,WAAW,MAAM,eAAe,EAAE,OAAO,CAC9D;AAED,EADA,QAAQ,IAAI,EAAI,QAAQ,EACxB,QAAQ,KAAK,EAAE;;AAoBjB,CAjBK,MACH,GAAY,EACZ,QAAQ,KAAK,EAAE,GAIf,MAAkB,KAAA,KAClB,CAAC,EAAqB,SAAS,EAAc,KAE7C,QAAQ,MACN,qCAAqC,EAAqB,KACxD,MACD,CAAC,cAAc,EAAc,GAC/B,EACD,QAAQ,KAAK,EAAE,GAGb,MAAc,KAAA,KAAa,CAAC,EAAiB,SAAS,EAAU,KAClE,QAAQ,MACN,iCAAiC,EAAiB,KAChD,MACD,CAAC,cAAc,EAAU,GAC3B,EACD,QAAQ,KAAK,EAAE;CAGjB,IAAM,IAAO,MAAM,EAAe,GAAM;EACtC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,CAAI,IAAM,MAAM,EAAU,GAAM,EAAK,GAChC,QAAQ,IAAI,EAAK;;AAGxB,SAAS,IAAa;AACpB,SAAQ,MAAM;;;;;;;;;;;mBAWG,EAAiB,KAAK,MAAM,CAAC;;;uBAGzB,EAAqB,KAAK,MAAM,CAAC;;;;EAItD;;AAGF,EACE,EAAS,QAAQ,KAAK,MAAM,EAAE,EAAE;CAC9B,OAAO;EACL,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACJ;CACD,SAAS;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;CACD,QAAQ,CAAC,iBAAiB,YAAY;CACvC,CAAC,CACH,CAAC,OAAO,MAAU;AAEjB,CADA,QAAQ,MAAM,EAAM,EACpB,QAAQ,KAAK,EAAE;EACf"}
@@ -0,0 +1,5 @@
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let l=require(`typescript`);l=c(l);let u=require(`lodash`);u=c(u);var d={readOnly:`Read`,writeOnly:`Write`};function ee(e){return e?d[e]:``}function f(e,t=!1,n){let r=u.default.camelCase(e)+ee(n);return t&&(r=u.default.upperFirst(r)),Y(r)?r:`$`+r}var te=o({addComment:()=>W,appendNodes:()=>U,block:()=>E,changePropertyValue:()=>B,createArrowFunction:()=>D,createCall:()=>S,createClassDeclaration:()=>ie,createConstructor:()=>ae,createEnumTypeNode:()=>y,createFunctionDeclaration:()=>O,createIndexSignature:()=>N,createInterfaceAliasDeclaration:()=>re,createKeywordType:()=>ne,createLiteral:()=>v,createMethod:()=>k,createMethodCall:()=>C,createObjectBinding:()=>P,createObjectLiteral:()=>w,createParameter:()=>A,createPropertyAssignment:()=>T,createPropertySignature:()=>M,createQuestionToken:()=>h,createTemplateString:()=>F,createTypeAliasDeclaration:()=>b,findFirstVariableDeclaration:()=>z,findNode:()=>I,getFirstDeclarationName:()=>R,getName:()=>L,isValidIdentifier:()=>Y,keywordType:()=>g,modifier:()=>_,printFile:()=>J,printNode:()=>K,printNodes:()=>q,questionToken:()=>m,toExpression:()=>x,transform:()=>H,updateFunctionDeclaration:()=>se,updateVariableDeclaration:()=>oe}),p=l.default.factory,m=p.createToken(l.default.SyntaxKind.QuestionToken);function h(e){if(e)return e===!0?m:e}var g={any:p.createKeywordTypeNode(l.default.SyntaxKind.AnyKeyword),number:p.createKeywordTypeNode(l.default.SyntaxKind.NumberKeyword),integer:p.createKeywordTypeNode(l.default.SyntaxKind.NumberKeyword),object:p.createKeywordTypeNode(l.default.SyntaxKind.ObjectKeyword),string:p.createKeywordTypeNode(l.default.SyntaxKind.StringKeyword),boolean:p.createKeywordTypeNode(l.default.SyntaxKind.BooleanKeyword),undefined:p.createKeywordTypeNode(l.default.SyntaxKind.UndefinedKeyword),void:p.createKeywordTypeNode(l.default.SyntaxKind.VoidKeyword),never:p.createKeywordTypeNode(l.default.SyntaxKind.NeverKeyword),null:p.createLiteralTypeNode(p.createNull()),unknown:p.createKeywordTypeNode(l.default.SyntaxKind.UnknownKeyword)};function ne(e){return g[e]}var _={async:p.createModifier(l.default.SyntaxKind.AsyncKeyword),export:p.createModifier(l.default.SyntaxKind.ExportKeyword)};function v(e){switch(typeof e){case`string`:return p.createStringLiteral(e);case`boolean`:return e?p.createTrue():p.createFalse();case`number`:return String(e).charAt(0)===`-`?p.createPrefixUnaryExpression(l.default.SyntaxKind.MinusToken,p.createNumericLiteral(String(-e))):p.createNumericLiteral(String(e))}}function y(e){let t=e.map(e=>e===null?g.null:p.createLiteralTypeNode(v(e)));return t.length>1?p.createUnionTypeNode(t):t[0]}function b({modifiers:e,name:t,typeParameters:n,type:r}){return p.createTypeAliasDeclaration(e,t,n,r)}function re({modifiers:e,name:t,typeParameters:n,type:r,inheritedNodeNames:i}){let a=i?[p.createHeritageClause(l.default.SyntaxKind.ExtendsKeyword,i.map(e=>{let t=typeof e==`string`?e:e.escapedText.toString();return p.createExpressionWithTypeArguments(p.createIdentifier(f(t,!0)),void 0)}))]:[];return p.createInterfaceDeclaration(e,t,n,a,r.members)}function x(e){return typeof e==`string`?p.createIdentifier(e):e}function S(e,{typeArgs:t,args:n}={}){return p.createCallExpression(x(e),t,n)}function C(e,t){return S(p.createPropertyAccessExpression(p.createThis(),e),t)}function w(e){return p.createObjectLiteralExpression(e.map(([e,t])=>T(e,x(t))),!0)}function T(e,t){return l.default.isIdentifier(t)&&t.text===e?p.createShorthandPropertyAssignment(e):p.createPropertyAssignment(j(e),t)}function E(...e){return p.createBlock(e,!0)}function D(e,t,{modifiers:n,typeParameters:r,type:i,equalsGreaterThanToken:a}={}){return p.createArrowFunction(n,r,e,i,a,t)}function O(e,{modifiers:t,asteriskToken:n,typeParameters:r,type:i},a,o){return p.createFunctionDeclaration(t,n,e,r,a,i,o)}function ie({modifiers:e,name:t,typeParameters:n,heritageClauses:r,members:i}){return p.createClassDeclaration(e,t,n,r,i)}function ae({modifiers:e,parameters:t,body:n}){return p.createConstructorDeclaration(e,t,n)}function k(e,{modifiers:t,asteriskToken:n,questionToken:r,typeParameters:i,type:a}={},o=[],s){return p.createMethodDeclaration(t,n,e,h(r),i,o,a,s)}function A(e,{modifiers:t,dotDotDotToken:n,questionToken:r,type:i,initializer:a}){return p.createParameterDeclaration(t,n,e,h(r),i,a)}function j(e){return typeof e==`string`?Y(e)?p.createIdentifier(e):p.createStringLiteral(e):e}function M({modifiers:e,name:t,questionToken:n,type:r}){return p.createPropertySignature(e,j(t),h(n),r)}function N(e,{modifiers:t,indexName:n=`key`,indexType:r=g.string}={}){return p.createIndexSignature(t,[A(n,{type:r})],e)}function P(e){return p.createObjectBindingPattern(e.map(({dotDotDotToken:e,propertyName:t,name:n,initializer:r})=>p.createBindingElement(e,t,n,r)))}function F(e,t){return t.length?p.createTemplateExpression(p.createTemplateHead(e),t.map(({expression:e,literal:n},r)=>p.createTemplateSpan(e,r===t.length-1?p.createTemplateTail(n):p.createTemplateMiddle(n)))):p.createStringLiteral(e)}function I(e,t,n){let r=e.find(e=>e.kind===t&&(!n||n(e)));if(!r)throw Error(`Node not found: ${t}`);return r}function L(e){return l.default.isIdentifier(e)?e.escapedText:l.default.isLiteralExpression(e)?e.text:``}function R(e){let t=l.default.getNameOfDeclaration(e.declarationList.declarations[0]);return t?L(t):``}function z(e,t){let[n]=I(e,l.default.SyntaxKind.VariableStatement,e=>R(e)===t).declarationList.declarations;if(!n)throw Error(`Missing ${t} declaration`);return n}function B(e,t,n){let r=e.properties.find(e=>l.default.isPropertyAssignment(e)&&L(e.name)===t);if(r&&l.default.isPropertyAssignment(r))Object.assign(r,{initializer:n});else throw Error(`No such property: ${t}`)}function V(e){return t=>n=>{function r(n){return e(n,t)||l.default.visitEachChild(n,r,t)}return l.default.visitNode(n,r)}}function H(e,...t){return l.default.transform(e,t.map(V)).transformed[0]}function U(e,...t){return p.createNodeArray([...e,...t])}function W(e,t){return t?l.default.addSyntheticLeadingComment(e,l.default.SyntaxKind.MultiLineCommentTrivia,`*\n * ${t.replace(/\n/g,`
2
+ * `)}\n `,!0):e}var G=l.default.createPrinter({newLine:l.default.NewLineKind.LineFeed});function K(e){let t=l.default.createSourceFile(`someFileName.ts`,``,l.default.ScriptTarget.Latest,!1,l.default.ScriptKind.TS);return G.printNode(l.default.EmitHint.Unspecified,e,t)}function q(e){let t=l.default.createSourceFile(`someFileName.ts`,``,l.default.ScriptTarget.Latest,!1,l.default.ScriptKind.TS);return e.map(e=>G.printNode(l.default.EmitHint.Unspecified,e,t)).join(`
3
+ `)}function J(e){return G.printFile(e)}function Y(e){if(!e.length||e.trim()!==e)return!1;let t=l.default.parseIsolatedEntityName(e,l.default.ScriptTarget.Latest);return!!t&&t.kind===l.default.SyntaxKind.Identifier&&l.default.identifierToKeywordKind(t)===void 0}function oe(e,t){return l.default.factory.updateVariableDeclaration(e,t.name||e.name,t.exclamationToken||e.exclamationToken,t.type||e.type,t.initializer||e.initializer)}function se(e,t){return l.default.factory.updateFunctionDeclaration(e,t.modifiers||e.modifiers,t.asteriskToken||e.asteriskToken,t.name||e.name,t.typeParameters||e.typeParameters,t.parameters||e.parameters,t.type||e.type,t.body||e.body)}var X=l.default.factory;function ce(e){let t=e.split(/{([\s\S]+?)}/g),n=u.default.chunk(t.slice(1),2);return F(t[0],n.map(([e,t])=>({expression:X.createIdentifier(e),literal:t})))}function le(e,t){return D([A(P(Object.entries(t||{}).map(([e,t])=>({name:e,initializer:v(t.default)}))),{type:X.createTypeLiteralNode(Object.entries(t||{}).map(([e,t])=>M({name:e,type:t.enum?y(t.enum):X.createUnionTypeNode([g.string,g.number,g.boolean])})))})],ce(e))}function ue(e){return e.variables?le(e.url,e.variables):X.createStringLiteral(e.url)}function de(e){if(!e)return`/`;let{url:t,variables:n}=e;return n?t.replace(/\{(.+?)\}/g,(e,t)=>n[t]?String(n[t].default):e):t}function fe(e){return de(e==null?void 0:e[0])}function pe(e,t){return e.description?u.default.camelCase(e.description.replace(/\W+/,` `)):`server${t+1}`}function me(e){return w(e.map((e,t)=>[pe(e,t),ue(e)]))}function he(e){return l.default.factory.createVariableStatement([l.default.factory.createModifier(l.default.SyntaxKind.ExportKeyword)],l.default.factory.createVariableDeclarationList([l.default.factory.createVariableDeclaration(`servers`,void 0,void 0,me(e))],l.default.NodeFlags.Const))}function Z(e){"@babel/helpers - typeof";return Z=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Z(e)}function ge(e,t){if(Z(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Z(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function _e(e){var t=ge(e,`string`);return Z(t)==`symbol`?t:t+``}function ve(e,t,n){return(t=_e(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function $(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Q(Object(n),!0).forEach(function(t){ve(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Q(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ye(e,t={}){let n=u.default.cloneDeep(e);return{opts:t,spec:n,mode:void 0,banner:`DO NOT MODIFY - This file has been generated using oazapfts.
4
+ See https://www.npmjs.com/package/oazapfts`,imports:[[{namespace:`Oazapfts`},{from:`@oazapfts/runtime`}],[{namespace:`QS`},{from:`@oazapfts/runtime/query`}]],defaults:{baseUrl:fe(n.servers),headers:{}},servers:n.servers||[],init:xe(),discriminatingSchemas:new Set,aliases:[],enumAliases:[],enumRefs:{},refs:{},refsOnlyMode:new Map,typeAliases:{},operationNames:new Map}}function be(e,t){return $($({},e),{},{mode:t})}function xe(){return[l.default.factory.createVariableStatement(void 0,l.default.factory.createVariableDeclarationList([l.default.factory.createVariableDeclaration(`oazapfts`,void 0,void 0,l.default.factory.createCallExpression(l.default.factory.createPropertyAccessExpression(l.default.factory.createIdentifier(`Oazapfts`),`runtime`),void 0,[l.default.factory.createIdentifier(`defaults`)]))],l.default.NodeFlags.Const))]}Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return be}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return ye}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return Y}});
5
+ //# sourceMappingURL=context-9l26yjuA.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-9l26yjuA.cjs","names":[],"sources":["../src/helpers/getOnlyModeSuffix.ts","../src/helpers/toIdentifier.ts","../src/generate/tscodegen.ts","../src/generate/generateServers.ts","../src/context.ts"],"sourcesContent":["import { OnlyMode } from \"../context\";\n\nconst onlyModeSuffixes: Record<OnlyMode, string> = {\n readOnly: \"Read\",\n writeOnly: \"Write\",\n};\n\nexport function getOnlyModeSuffix(onlyMode?: OnlyMode) {\n if (!onlyMode) return \"\";\n return onlyModeSuffixes[onlyMode];\n}\n","import _ from \"lodash\";\nimport { OnlyMode } from \"../context\";\nimport { isValidIdentifier } from \"../generate/tscodegen\";\nimport { getOnlyModeSuffix } from \"./getOnlyModeSuffix\";\n\nexport function toIdentifier(s: string, upper = false, onlyMode?: OnlyMode) {\n let cc = _.camelCase(s) + getOnlyModeSuffix(onlyMode);\n if (upper) cc = _.upperFirst(cc);\n if (isValidIdentifier(cc)) return cc;\n return \"$\" + cc;\n}\n","import ts from \"typescript\";\nimport { toIdentifier } from \"../helpers/toIdentifier\";\n\nconst factory = ts.factory;\n\nexport const questionToken = factory.createToken(ts.SyntaxKind.QuestionToken);\n\nexport function createQuestionToken(token?: boolean | ts.QuestionToken) {\n if (!token) return undefined;\n if (token === true) return questionToken;\n return token;\n}\n\nexport const keywordType = {\n any: factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),\n number: factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword),\n integer: factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword),\n object: factory.createKeywordTypeNode(ts.SyntaxKind.ObjectKeyword),\n string: factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),\n boolean: factory.createKeywordTypeNode(ts.SyntaxKind.BooleanKeyword),\n undefined: factory.createKeywordTypeNode(ts.SyntaxKind.UndefinedKeyword),\n void: factory.createKeywordTypeNode(ts.SyntaxKind.VoidKeyword),\n never: factory.createKeywordTypeNode(ts.SyntaxKind.NeverKeyword),\n null: factory.createLiteralTypeNode(factory.createNull()),\n unknown: factory.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword),\n};\n\ntype KeywordTypeName = keyof typeof keywordType;\n\nexport function createKeywordType(type: KeywordTypeName) {\n return keywordType[type];\n}\n\nexport const modifier = {\n async: factory.createModifier(ts.SyntaxKind.AsyncKeyword),\n export: factory.createModifier(ts.SyntaxKind.ExportKeyword),\n};\n\nexport function createLiteral(v: string | boolean | number) {\n switch (typeof v) {\n case \"string\":\n return factory.createStringLiteral(v);\n case \"boolean\":\n return v ? factory.createTrue() : factory.createFalse();\n case \"number\":\n return String(v).charAt(0) === \"-\"\n ? factory.createPrefixUnaryExpression(\n ts.SyntaxKind.MinusToken,\n factory.createNumericLiteral(String(-v)),\n )\n : factory.createNumericLiteral(String(v));\n }\n}\n\nexport function createEnumTypeNode(values: Array<string | boolean | number>) {\n const types = values.map((v) =>\n v === null\n ? keywordType.null\n : factory.createLiteralTypeNode(createLiteral(v)),\n );\n return types.length > 1 ? factory.createUnionTypeNode(types) : types[0];\n}\n\nexport function createTypeAliasDeclaration({\n modifiers,\n name,\n typeParameters,\n type,\n}: {\n modifiers?: Array<ts.Modifier>;\n name: string | ts.Identifier;\n typeParameters?: Array<ts.TypeParameterDeclaration>;\n type: ts.TypeNode;\n}) {\n return factory.createTypeAliasDeclaration(\n modifiers,\n name,\n typeParameters,\n type,\n );\n}\n\nexport function createInterfaceAliasDeclaration({\n modifiers,\n name,\n typeParameters,\n type,\n inheritedNodeNames,\n}: {\n modifiers?: Array<ts.Modifier>;\n name: string | ts.Identifier;\n typeParameters?: Array<ts.TypeParameterDeclaration>;\n type: ts.TypeNode;\n inheritedNodeNames?: (string | ts.Identifier)[];\n}) {\n const heritageClauses = inheritedNodeNames\n ? [\n factory.createHeritageClause(\n ts.SyntaxKind.ExtendsKeyword,\n inheritedNodeNames.map((name) => {\n const extendedInterfaceName =\n typeof name === \"string\" ? name : name.escapedText.toString();\n return factory.createExpressionWithTypeArguments(\n factory.createIdentifier(\n toIdentifier(extendedInterfaceName, true),\n ),\n undefined,\n );\n }),\n ),\n ]\n : [];\n return factory.createInterfaceDeclaration(\n modifiers,\n name,\n typeParameters,\n heritageClauses,\n (type as ts.TypeLiteralNode).members,\n );\n}\n\nexport function toExpression(ex: ts.Expression | string) {\n if (typeof ex === \"string\") return factory.createIdentifier(ex);\n return ex;\n}\n\nexport function createCall(\n expression: ts.Expression | string,\n {\n typeArgs,\n args,\n }: {\n typeArgs?: Array<ts.TypeNode>;\n args?: Array<ts.Expression>;\n } = {},\n) {\n return factory.createCallExpression(toExpression(expression), typeArgs, args);\n}\n\nexport function createMethodCall(\n method: string,\n opts: {\n typeArgs?: Array<ts.TypeNode>;\n args?: Array<ts.Expression>;\n },\n) {\n return createCall(\n factory.createPropertyAccessExpression(factory.createThis(), method),\n opts,\n );\n}\n\nexport function createObjectLiteral(props: [string, string | ts.Expression][]) {\n return factory.createObjectLiteralExpression(\n props.map(([name, identifier]) =>\n createPropertyAssignment(name, toExpression(identifier)),\n ),\n true,\n );\n}\n\nexport function createPropertyAssignment(\n name: string,\n expression: ts.Expression,\n) {\n if (ts.isIdentifier(expression)) {\n if (expression.text === name) {\n return factory.createShorthandPropertyAssignment(name);\n }\n }\n return factory.createPropertyAssignment(propertyName(name), expression);\n}\n\nexport function block(...statements: ts.Statement[]) {\n return factory.createBlock(statements, true);\n}\n\nexport function createArrowFunction(\n parameters: ts.ParameterDeclaration[],\n body: ts.ConciseBody,\n {\n modifiers,\n typeParameters,\n type,\n equalsGreaterThanToken,\n }: {\n modifiers?: ts.Modifier[];\n typeParameters?: ts.TypeParameterDeclaration[];\n type?: ts.TypeNode;\n equalsGreaterThanToken?: ts.EqualsGreaterThanToken;\n } = {},\n) {\n return factory.createArrowFunction(\n modifiers,\n typeParameters,\n parameters,\n type,\n equalsGreaterThanToken,\n body,\n );\n}\n\nexport function createFunctionDeclaration(\n name: string | ts.Identifier | undefined,\n {\n modifiers,\n asteriskToken,\n typeParameters,\n type,\n }: {\n modifiers?: ts.Modifier[];\n asteriskToken?: ts.AsteriskToken;\n typeParameters?: ts.TypeParameterDeclaration[];\n type?: ts.TypeNode;\n },\n parameters: ts.ParameterDeclaration[],\n body?: ts.Block,\n): ts.FunctionDeclaration {\n return factory.createFunctionDeclaration(\n modifiers,\n asteriskToken,\n name,\n typeParameters,\n parameters,\n type,\n body,\n );\n}\n\nexport function createClassDeclaration({\n modifiers,\n name,\n typeParameters,\n heritageClauses,\n members,\n}: {\n modifiers?: Array<ts.Modifier>;\n name?: string | ts.Identifier;\n typeParameters?: Array<ts.TypeParameterDeclaration>;\n heritageClauses?: Array<ts.HeritageClause>;\n members: Array<ts.ClassElement>;\n}) {\n return factory.createClassDeclaration(\n modifiers,\n name,\n typeParameters,\n heritageClauses,\n members,\n );\n}\n\nexport function createConstructor({\n modifiers,\n parameters,\n body,\n}: {\n modifiers?: Array<ts.Modifier>;\n parameters: Array<ts.ParameterDeclaration>;\n body?: ts.Block;\n}) {\n return factory.createConstructorDeclaration(modifiers, parameters, body);\n}\n\nexport function createMethod(\n name:\n | string\n | ts.Identifier\n | ts.StringLiteral\n | ts.NumericLiteral\n | ts.ComputedPropertyName,\n {\n modifiers,\n asteriskToken,\n questionToken,\n typeParameters,\n type,\n }: {\n modifiers?: ts.Modifier[];\n asteriskToken?: ts.AsteriskToken;\n questionToken?: ts.QuestionToken | boolean;\n typeParameters?: ts.TypeParameterDeclaration[];\n type?: ts.TypeNode;\n } = {},\n parameters: ts.ParameterDeclaration[] = [],\n body?: ts.Block,\n): ts.MethodDeclaration {\n return factory.createMethodDeclaration(\n modifiers,\n asteriskToken,\n name,\n createQuestionToken(questionToken),\n typeParameters,\n parameters,\n type,\n body,\n );\n}\n\nexport function createParameter(\n name: string | ts.BindingName,\n {\n modifiers,\n dotDotDotToken,\n questionToken,\n type,\n initializer,\n }: {\n modifiers?: Array<ts.Modifier>;\n dotDotDotToken?: ts.DotDotDotToken;\n questionToken?: ts.QuestionToken | boolean;\n type?: ts.TypeNode;\n initializer?: ts.Expression;\n },\n): ts.ParameterDeclaration {\n return factory.createParameterDeclaration(\n modifiers,\n dotDotDotToken,\n name,\n createQuestionToken(questionToken),\n type,\n initializer,\n );\n}\n\nfunction propertyName(name: string | ts.PropertyName): ts.PropertyName {\n if (typeof name === \"string\") {\n return isValidIdentifier(name)\n ? factory.createIdentifier(name)\n : factory.createStringLiteral(name);\n }\n return name;\n}\n\nexport function createPropertySignature({\n modifiers,\n name,\n questionToken,\n type,\n}: {\n modifiers?: Array<ts.Modifier>;\n name: ts.PropertyName | string;\n questionToken?: ts.QuestionToken | boolean;\n type?: ts.TypeNode;\n}) {\n return factory.createPropertySignature(\n modifiers,\n propertyName(name),\n createQuestionToken(questionToken),\n type,\n );\n}\n\nexport function createIndexSignature(\n type: ts.TypeNode,\n {\n modifiers,\n indexName = \"key\",\n indexType = keywordType.string,\n }: {\n indexName?: string;\n indexType?: ts.TypeNode;\n modifiers?: Array<ts.Modifier>;\n } = {},\n) {\n return factory.createIndexSignature(\n modifiers,\n [createParameter(indexName, { type: indexType })],\n type,\n );\n}\n\nexport function createObjectBinding(\n elements: Array<{\n name: string | ts.BindingName;\n dotDotDotToken?: ts.DotDotDotToken;\n propertyName?: string | ts.PropertyName;\n initializer?: ts.Expression;\n }>,\n) {\n return factory.createObjectBindingPattern(\n elements.map(({ dotDotDotToken, propertyName, name, initializer }) =>\n factory.createBindingElement(\n dotDotDotToken,\n propertyName,\n name,\n initializer,\n ),\n ),\n );\n}\n\nexport function createTemplateString(\n head: string,\n spans: Array<{ literal: string; expression: ts.Expression }>,\n) {\n if (!spans.length) return factory.createStringLiteral(head);\n return factory.createTemplateExpression(\n factory.createTemplateHead(head),\n spans.map(({ expression, literal }, i) =>\n factory.createTemplateSpan(\n expression,\n i === spans.length - 1\n ? factory.createTemplateTail(literal)\n : factory.createTemplateMiddle(literal),\n ),\n ),\n );\n}\n\nexport function findNode<T extends ts.Node>(\n nodes: ts.NodeArray<ts.Node>,\n kind: T extends { kind: infer K } ? K : never,\n test?: (node: T) => boolean | undefined,\n): T {\n const node = nodes.find(\n (s) => s.kind === kind && (!test || test(s as T)),\n ) as T;\n if (!node) throw new Error(`Node not found: ${kind}`);\n return node;\n}\n\nexport function getName(name: ts.Node) {\n if (ts.isIdentifier(name)) {\n return name.escapedText;\n }\n if (ts.isLiteralExpression(name)) {\n return name.text;\n }\n return \"\";\n}\n\nexport function getFirstDeclarationName(n: ts.VariableStatement) {\n const name = ts.getNameOfDeclaration(n.declarationList.declarations[0]);\n return name ? getName(name) : \"\";\n}\n\nexport function findFirstVariableDeclaration(\n nodes: ts.NodeArray<ts.Node>,\n name: string,\n) {\n const statement = findNode<ts.VariableStatement>(\n nodes,\n ts.SyntaxKind.VariableStatement,\n (n) => getFirstDeclarationName(n) === name,\n );\n const [first] = statement.declarationList.declarations;\n if (!first) throw new Error(`Missing ${name} declaration`);\n return first;\n}\n\nexport function changePropertyValue(\n o: ts.ObjectLiteralExpression,\n property: string,\n value: ts.Expression,\n) {\n const p = o.properties.find(\n (p) => ts.isPropertyAssignment(p) && getName(p.name) === property,\n );\n if (p && ts.isPropertyAssignment(p)) {\n // p.initializer is readonly, this might break in a future TS version, but works fine for now.\n Object.assign(p, { initializer: value });\n } else {\n throw new Error(`No such property: ${property}`);\n }\n}\n\ntype Visitor = (\n node: ts.Node,\n context: ts.TransformationContext,\n) => void | ts.Node;\n\nfunction createTransformer(visitor: Visitor) {\n return <T extends ts.Node>(context: ts.TransformationContext) =>\n (rootNode: T) => {\n function visit(node: ts.Node): ts.Node {\n const result = visitor(node, context);\n\n if (result) {\n return result;\n }\n\n return ts.visitEachChild(node, visit, context);\n }\n\n return ts.visitNode(rootNode, visit);\n };\n}\n\nexport function transform<T extends ts.Node>(\n source: T,\n ...visitors: Visitor[]\n) {\n const result = ts.transform(source, visitors.map(createTransformer));\n\n return result.transformed[0] as T;\n}\n\nexport function appendNodes<T extends ts.Node>(\n array: ts.NodeArray<T>,\n ...nodes: T[]\n) {\n return factory.createNodeArray([...array, ...nodes]);\n}\n\nexport function addComment<T extends ts.Node>(node: T, comment?: string) {\n if (!comment) return node;\n return ts.addSyntheticLeadingComment(\n node,\n ts.SyntaxKind.MultiLineCommentTrivia,\n `*\\n * ${comment.replace(/\\n/g, \"\\n * \")}\\n `,\n true,\n );\n}\n\nconst printer = ts.createPrinter({\n newLine: ts.NewLineKind.LineFeed,\n});\n\nexport function printNode(node: ts.Node) {\n const file = ts.createSourceFile(\n \"someFileName.ts\",\n \"\",\n ts.ScriptTarget.Latest,\n /*setParentNodes*/ false,\n ts.ScriptKind.TS,\n );\n return printer.printNode(ts.EmitHint.Unspecified, node, file);\n}\n\nexport function printNodes(nodes: ts.Node[]) {\n const file = ts.createSourceFile(\n \"someFileName.ts\",\n \"\",\n ts.ScriptTarget.Latest,\n /*setParentNodes*/ false,\n ts.ScriptKind.TS,\n );\n return nodes\n .map((node) => printer.printNode(ts.EmitHint.Unspecified, node, file))\n .join(\"\\n\");\n}\n\nexport function printFile(sourceFile: ts.SourceFile) {\n return printer.printFile(sourceFile);\n}\n\nexport function isValidIdentifier(str: string) {\n if (!str.length || str.trim() !== str) return false;\n const node = ts.parseIsolatedEntityName(str, ts.ScriptTarget.Latest);\n return (\n !!node &&\n node.kind === ts.SyntaxKind.Identifier &&\n ts.identifierToKeywordKind(node) === undefined\n );\n}\n\nexport function updateVariableDeclaration(\n node: ts.VariableDeclaration,\n updates: Partial<ts.VariableDeclaration>,\n) {\n return ts.factory.updateVariableDeclaration(\n node,\n updates.name || node.name,\n updates.exclamationToken || node.exclamationToken,\n updates.type || node.type,\n updates.initializer || node.initializer,\n );\n}\n\nexport function updateFunctionDeclaration(\n node: ts.FunctionDeclaration,\n updates: Partial<ts.FunctionDeclaration>,\n) {\n return ts.factory.updateFunctionDeclaration(\n node,\n updates.modifiers || node.modifiers,\n updates.asteriskToken || node.asteriskToken,\n updates.name || node.name,\n updates.typeParameters || node.typeParameters,\n updates.parameters || node.parameters,\n updates.type || node.type,\n updates.body || node.body,\n );\n}\n","import _ from \"lodash\";\nimport * as cg from \"./tscodegen\";\nimport ts from \"typescript\";\nimport { OpenAPIV3 } from \"openapi-types\";\nimport { ServerObject } from \"../helpers/openApi3-x\";\n\nconst factory = ts.factory;\n\nfunction createTemplate(url: string) {\n const tokens = url.split(/{([\\s\\S]+?)}/g);\n const chunks = _.chunk(tokens.slice(1), 2);\n return cg.createTemplateString(\n tokens[0],\n chunks.map(([expression, literal]) => ({\n expression: factory.createIdentifier(expression),\n literal,\n })),\n );\n}\n\nfunction createServerFunction(\n template: string,\n vars: Record<string, OpenAPIV3.ServerVariableObject>,\n) {\n const params = [\n cg.createParameter(\n cg.createObjectBinding(\n Object.entries(vars || {}).map(([name, value]) => {\n return {\n name,\n initializer: cg.createLiteral(value.default),\n };\n }),\n ),\n {\n type: factory.createTypeLiteralNode(\n Object.entries(vars || {}).map(([name, value]) => {\n return cg.createPropertySignature({\n name,\n type: value.enum\n ? cg.createEnumTypeNode(value.enum)\n : factory.createUnionTypeNode([\n cg.keywordType.string,\n cg.keywordType.number,\n cg.keywordType.boolean,\n ]),\n });\n }),\n ),\n },\n ),\n ];\n\n return cg.createArrowFunction(params, createTemplate(template));\n}\n\nfunction generateServerExpression(server: ServerObject) {\n return server.variables\n ? createServerFunction(server.url, server.variables)\n : factory.createStringLiteral(server.url);\n}\n\nfunction defaultUrl(server?: ServerObject) {\n if (!server) return \"/\";\n const { url, variables } = server;\n if (!variables) return url;\n return url.replace(/\\{(.+?)\\}/g, (m, name) =>\n variables[name] ? String(variables[name].default) : m,\n );\n}\n\nexport function defaultBaseUrl(servers?: ServerObject[]) {\n return defaultUrl(servers?.[0]);\n}\n\nfunction serverName(server: ServerObject, index: number) {\n return server.description\n ? _.camelCase(server.description.replace(/\\W+/, \" \"))\n : `server${index + 1}`;\n}\n\nexport function generateServers(servers: ServerObject[]) {\n return cg.createObjectLiteral(\n servers.map((server, i) => [\n serverName(server, i),\n generateServerExpression(server),\n ]),\n );\n}\n\nexport function createServersStatement(servers: ServerObject[]) {\n return ts.factory.createVariableStatement(\n [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],\n ts.factory.createVariableDeclarationList(\n [\n ts.factory.createVariableDeclaration(\n \"servers\",\n undefined,\n undefined,\n generateServers(servers),\n ),\n ],\n ts.NodeFlags.Const,\n ),\n );\n}\n","import ts, {\n InterfaceDeclaration,\n Statement,\n TypeAliasDeclaration,\n TypeReferenceNode,\n} from \"typescript\";\nimport type { OazapftsOptions } from \"./\";\nimport type {\n Document,\n SchemaObject,\n ServerObject,\n} from \"./helpers/openApi3-x\";\nimport { defaultBaseUrl } from \"./generate/generateServers\";\nimport _ from \"lodash\";\nimport { CustomHeaders } from \"@oazapfts/runtime\";\n\n// ─── Data types for template parts ──────────────────────────────────────────\n\nexport type ImportSpecifier = {\n name: string;\n as?: string;\n};\nexport type DefaultImport = [string, { from: string }];\nexport type NamespaceImport = [{ namespace: string }, { from: string }];\nexport type ImportsWithoutDefault = [\n (ImportSpecifier | string)[],\n { from: string },\n];\nexport type ImportWithDefault = [\n string,\n (ImportSpecifier | string)[],\n { from: string },\n];\n\nexport type Import =\n | string\n | ImportsWithoutDefault\n | DefaultImport\n | ImportWithDefault\n | NamespaceImport;\n\nexport type OnlyMode = \"readOnly\" | \"writeOnly\";\nexport type OnlyModes = Record<OnlyMode, boolean>;\n\nexport type ReadonlyDeep<T> = {\n readonly [P in keyof T]: ReadonlyDeep<T[P]>;\n};\n\nexport type Defaults = {\n baseUrl?: string;\n headers?: CustomHeaders;\n FormData?: ts.ClassExpression | ts.Identifier;\n fetch?: ts.FunctionExpression | ts.ArrowFunction | ts.Identifier;\n};\n\nexport type OazapftsContext = {\n readonly opts: ReadonlyDeep<OazapftsOptions>;\n readonly spec: Document;\n readonly mode?: OnlyMode;\n\n /** Banner comment at the top of the file (the text content, not including comment markers) */\n banner: string;\n /** Import declarations (AST nodes) */\n imports: Import[];\n /** Runtime defaults (baseUrl, etc.) - will be generated as `export const defaults = { ... }` */\n defaults: Defaults;\n /** Server definitions - will be generated as `export const servers = { ... }` */\n servers: ServerObject[];\n /** Initialization statements (e.g., `const oazapfts = Oazapfts.runtime(defaults)`) */\n init: Statement[];\n\n // see `preprocessComponents` for the definition of a discriminating schema\n discriminatingSchemas: Set<SchemaObject>;\n\n aliases: (TypeAliasDeclaration | InterfaceDeclaration)[];\n\n enumAliases: Statement[];\n enumRefs: Record<string, { values: string; type: TypeReferenceNode }>;\n\n // Collect the types of all referenced schemas so we can export them later\n // Referenced schemas can be pointing at the following versions:\n // - \"base\": The regular type/interface e.g. ExampleSchema\n // - \"readOnly\": The readOnly version e.g. ExampleSchemaRead\n // - \"writeOnly\": The writeOnly version e.g. ExampleSchemaWrite\n refs: Record<\n string,\n {\n base: TypeReferenceNode;\n readOnly?: TypeReferenceNode;\n writeOnly?: TypeReferenceNode;\n }\n >;\n\n // Maps a referenced schema to its readOnly/writeOnly status\n // This field should be used exclusively within the `checkSchemaOnlyMode` method\n refsOnlyMode: Map<string, OnlyModes>;\n\n // Keep track of already used type aliases\n typeAliases: Record<string, number>;\n // Keep track of already used operation names for collision handling\n operationNames: Map<string, number>;\n};\n\nexport function createContext(\n inputSpec: Document,\n opts: OazapftsContext[\"opts\"] = {},\n): OazapftsContext {\n const spec = _.cloneDeep(inputSpec);\n\n return {\n opts,\n spec,\n mode: undefined,\n\n // Template parts\n banner: `DO NOT MODIFY - This file has been generated using oazapfts.\nSee https://www.npmjs.com/package/oazapfts`,\n imports: [\n [{ namespace: \"Oazapfts\" }, { from: \"@oazapfts/runtime\" }],\n [{ namespace: \"QS\" }, { from: \"@oazapfts/runtime/query\" }],\n ],\n defaults: { baseUrl: defaultBaseUrl(spec.servers), headers: {} },\n servers: spec.servers || [],\n init: createInit(),\n\n // Internal state\n discriminatingSchemas: new Set(),\n aliases: [],\n enumAliases: [],\n enumRefs: {},\n refs: {},\n refsOnlyMode: new Map(),\n typeAliases: {},\n operationNames: new Map(),\n };\n}\n\nexport function withMode(\n ctx: OazapftsContext,\n mode?: OnlyMode,\n): OazapftsContext {\n return { ...ctx, mode };\n}\n\n/** Creates: const oazapfts = Oazapfts.runtime(defaults); */\nfunction createInit(): Statement[] {\n return [\n ts.factory.createVariableStatement(\n undefined,\n ts.factory.createVariableDeclarationList(\n [\n ts.factory.createVariableDeclaration(\n \"oazapfts\",\n undefined,\n undefined,\n ts.factory.createCallExpression(\n ts.factory.createPropertyAccessExpression(\n ts.factory.createIdentifier(\"Oazapfts\"),\n \"runtime\",\n ),\n undefined,\n [ts.factory.createIdentifier(\"defaults\")],\n ),\n ),\n ],\n ts.NodeFlags.Const,\n ),\n ),\n ];\n}\n"],"mappings":"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"}