@voxgig/sdkgen 4.1.0 → 4.2.1

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 (131) hide show
  1. package/bin/voxgig-sdkgen +1 -1
  2. package/dist/helpers/canonType.d.ts +2 -1
  3. package/dist/helpers/canonType.js +36 -0
  4. package/dist/helpers/canonType.js.map +1 -1
  5. package/dist/sdkgen.d.ts +2 -2
  6. package/dist/sdkgen.js +3 -2
  7. package/dist/sdkgen.js.map +1 -1
  8. package/dist/tsconfig.tsbuildinfo +1 -1
  9. package/package.json +1 -1
  10. package/project/.sdk/src/cmp/c/ReadmeEntity_c.ts +2 -2
  11. package/project/.sdk/src/cmp/c/ReadmeHowto_c.ts +2 -2
  12. package/project/.sdk/src/cmp/c/ReadmeQuick_c.ts +2 -2
  13. package/project/.sdk/src/cmp/c/ReadmeRef_c.ts +2 -2
  14. package/project/.sdk/src/cmp/c/ReadmeTopQuick_c.ts +2 -2
  15. package/project/.sdk/src/cmp/c/ReadmeTopTest_c.ts +2 -2
  16. package/project/.sdk/src/cmp/clojure/ReadmeEntity_clojure.ts +2 -2
  17. package/project/.sdk/src/cmp/clojure/ReadmeHowto_clojure.ts +2 -2
  18. package/project/.sdk/src/cmp/clojure/ReadmeQuick_clojure.ts +2 -2
  19. package/project/.sdk/src/cmp/clojure/ReadmeRef_clojure.ts +2 -2
  20. package/project/.sdk/src/cmp/clojure/ReadmeTopQuick_clojure.ts +2 -2
  21. package/project/.sdk/src/cmp/clojure/ReadmeTopTest_clojure.ts +2 -2
  22. package/project/.sdk/src/cmp/cpp/ReadmeEntity_cpp.ts +2 -2
  23. package/project/.sdk/src/cmp/cpp/ReadmeHowto_cpp.ts +2 -2
  24. package/project/.sdk/src/cmp/cpp/ReadmeQuick_cpp.ts +2 -2
  25. package/project/.sdk/src/cmp/cpp/ReadmeRef_cpp.ts +2 -2
  26. package/project/.sdk/src/cmp/cpp/ReadmeTopQuick_cpp.ts +2 -2
  27. package/project/.sdk/src/cmp/cpp/ReadmeTopTest_cpp.ts +2 -2
  28. package/project/.sdk/src/cmp/csharp/ReadmeEntity_csharp.ts +2 -2
  29. package/project/.sdk/src/cmp/csharp/ReadmeHowto_csharp.ts +2 -2
  30. package/project/.sdk/src/cmp/csharp/ReadmeQuick_csharp.ts +2 -2
  31. package/project/.sdk/src/cmp/csharp/ReadmeRef_csharp.ts +2 -2
  32. package/project/.sdk/src/cmp/csharp/ReadmeTopQuick_csharp.ts +2 -2
  33. package/project/.sdk/src/cmp/csharp/ReadmeTopTest_csharp.ts +2 -2
  34. package/project/.sdk/src/cmp/dart/ReadmeEntity_dart.ts +2 -2
  35. package/project/.sdk/src/cmp/dart/ReadmeHowto_dart.ts +2 -2
  36. package/project/.sdk/src/cmp/dart/ReadmeQuick_dart.ts +2 -2
  37. package/project/.sdk/src/cmp/dart/ReadmeRef_dart.ts +2 -2
  38. package/project/.sdk/src/cmp/dart/ReadmeTopQuick_dart.ts +2 -2
  39. package/project/.sdk/src/cmp/dart/ReadmeTopTest_dart.ts +2 -2
  40. package/project/.sdk/src/cmp/elixir/utility_elixir.ts +2 -1
  41. package/project/.sdk/src/cmp/go/ReadmeHowto_go.ts +2 -2
  42. package/project/.sdk/src/cmp/go/ReadmeTopTest_go.ts +2 -2
  43. package/project/.sdk/src/cmp/go/utility_go.ts +10 -1
  44. package/project/.sdk/src/cmp/java/ReadmeEntity_java.ts +2 -2
  45. package/project/.sdk/src/cmp/java/ReadmeHowto_java.ts +2 -2
  46. package/project/.sdk/src/cmp/java/ReadmeQuick_java.ts +2 -2
  47. package/project/.sdk/src/cmp/java/ReadmeRef_java.ts +2 -2
  48. package/project/.sdk/src/cmp/java/ReadmeTopQuick_java.ts +2 -2
  49. package/project/.sdk/src/cmp/java/ReadmeTopTest_java.ts +2 -2
  50. package/project/.sdk/src/cmp/js/utility_js.ts +10 -1
  51. package/project/.sdk/src/cmp/kotlin/ReadmeEntity_kotlin.ts +2 -2
  52. package/project/.sdk/src/cmp/kotlin/ReadmeHowto_kotlin.ts +2 -2
  53. package/project/.sdk/src/cmp/kotlin/ReadmeQuick_kotlin.ts +2 -2
  54. package/project/.sdk/src/cmp/kotlin/ReadmeRef_kotlin.ts +2 -2
  55. package/project/.sdk/src/cmp/kotlin/ReadmeTopQuick_kotlin.ts +2 -2
  56. package/project/.sdk/src/cmp/kotlin/ReadmeTopTest_kotlin.ts +2 -2
  57. package/project/.sdk/src/cmp/lua/ReadmeEntity_lua.ts +2 -2
  58. package/project/.sdk/src/cmp/lua/ReadmeHowto_lua.ts +2 -2
  59. package/project/.sdk/src/cmp/lua/ReadmeQuick_lua.ts +2 -2
  60. package/project/.sdk/src/cmp/lua/ReadmeRef_lua.ts +2 -2
  61. package/project/.sdk/src/cmp/lua/ReadmeTopQuick_lua.ts +2 -2
  62. package/project/.sdk/src/cmp/lua/ReadmeTopTest_lua.ts +2 -2
  63. package/project/.sdk/src/cmp/ocaml/ReadmeEntity_ocaml.ts +2 -2
  64. package/project/.sdk/src/cmp/ocaml/ReadmeHowto_ocaml.ts +2 -2
  65. package/project/.sdk/src/cmp/ocaml/ReadmeQuick_ocaml.ts +2 -2
  66. package/project/.sdk/src/cmp/ocaml/ReadmeRef_ocaml.ts +2 -2
  67. package/project/.sdk/src/cmp/ocaml/ReadmeTopQuick_ocaml.ts +2 -2
  68. package/project/.sdk/src/cmp/ocaml/ReadmeTopTest_ocaml.ts +2 -2
  69. package/project/.sdk/src/cmp/perl/ReadmeEntity_perl.ts +2 -2
  70. package/project/.sdk/src/cmp/perl/ReadmeHowto_perl.ts +2 -2
  71. package/project/.sdk/src/cmp/perl/ReadmeQuick_perl.ts +2 -2
  72. package/project/.sdk/src/cmp/perl/ReadmeRef_perl.ts +2 -2
  73. package/project/.sdk/src/cmp/perl/ReadmeTopQuick_perl.ts +2 -2
  74. package/project/.sdk/src/cmp/perl/ReadmeTopTest_perl.ts +2 -2
  75. package/project/.sdk/src/cmp/php/ReadmeEntity_php.ts +2 -2
  76. package/project/.sdk/src/cmp/php/ReadmeHowto_php.ts +2 -2
  77. package/project/.sdk/src/cmp/php/ReadmeQuick_php.ts +2 -2
  78. package/project/.sdk/src/cmp/php/ReadmeRef_php.ts +2 -2
  79. package/project/.sdk/src/cmp/php/ReadmeTopQuick_php.ts +2 -2
  80. package/project/.sdk/src/cmp/php/ReadmeTopTest_php.ts +2 -2
  81. package/project/.sdk/src/cmp/py/ReadmeEntity_py.ts +2 -2
  82. package/project/.sdk/src/cmp/py/ReadmeHowto_py.ts +2 -2
  83. package/project/.sdk/src/cmp/py/ReadmeQuick_py.ts +2 -2
  84. package/project/.sdk/src/cmp/py/ReadmeRef_py.ts +2 -2
  85. package/project/.sdk/src/cmp/py/ReadmeTopQuick_py.ts +2 -2
  86. package/project/.sdk/src/cmp/py/ReadmeTopTest_py.ts +2 -2
  87. package/project/.sdk/src/cmp/rb/ReadmeEntity_rb.ts +2 -2
  88. package/project/.sdk/src/cmp/rb/ReadmeHowto_rb.ts +2 -2
  89. package/project/.sdk/src/cmp/rb/ReadmeQuick_rb.ts +2 -2
  90. package/project/.sdk/src/cmp/rb/ReadmeRef_rb.ts +2 -2
  91. package/project/.sdk/src/cmp/rb/ReadmeTopQuick_rb.ts +2 -2
  92. package/project/.sdk/src/cmp/rb/ReadmeTopTest_rb.ts +2 -2
  93. package/project/.sdk/src/cmp/rust/ReadmeEntity_rust.ts +2 -2
  94. package/project/.sdk/src/cmp/rust/ReadmeHowto_rust.ts +2 -2
  95. package/project/.sdk/src/cmp/rust/ReadmeQuick_rust.ts +2 -2
  96. package/project/.sdk/src/cmp/rust/ReadmeRef_rust.ts +2 -2
  97. package/project/.sdk/src/cmp/rust/ReadmeTopQuick_rust.ts +2 -2
  98. package/project/.sdk/src/cmp/rust/ReadmeTopTest_rust.ts +2 -2
  99. package/project/.sdk/src/cmp/scala/ReadmeEntity_scala.ts +2 -2
  100. package/project/.sdk/src/cmp/scala/ReadmeHowto_scala.ts +2 -2
  101. package/project/.sdk/src/cmp/scala/ReadmeQuick_scala.ts +2 -2
  102. package/project/.sdk/src/cmp/scala/ReadmeRef_scala.ts +2 -2
  103. package/project/.sdk/src/cmp/scala/ReadmeTopQuick_scala.ts +2 -2
  104. package/project/.sdk/src/cmp/scala/ReadmeTopTest_scala.ts +2 -2
  105. package/project/.sdk/src/cmp/scala/TestDirect_scala.ts +1 -1
  106. package/project/.sdk/src/cmp/scala/TestEntity_scala.ts +1 -1
  107. package/project/.sdk/src/cmp/swift/ReadmeEntity_swift.ts +2 -2
  108. package/project/.sdk/src/cmp/swift/ReadmeHowto_swift.ts +2 -2
  109. package/project/.sdk/src/cmp/swift/ReadmeQuick_swift.ts +2 -2
  110. package/project/.sdk/src/cmp/swift/ReadmeRef_swift.ts +2 -2
  111. package/project/.sdk/src/cmp/swift/ReadmeTopQuick_swift.ts +2 -2
  112. package/project/.sdk/src/cmp/swift/ReadmeTopTest_swift.ts +2 -2
  113. package/project/.sdk/src/cmp/ts/utility_ts.ts +10 -1
  114. package/project/.sdk/src/cmp/zig/ReadmeEntity_zig.ts +2 -2
  115. package/project/.sdk/src/cmp/zig/ReadmeHowto_zig.ts +2 -2
  116. package/project/.sdk/src/cmp/zig/ReadmeQuick_zig.ts +2 -2
  117. package/project/.sdk/src/cmp/zig/ReadmeRef_zig.ts +2 -2
  118. package/project/.sdk/src/cmp/zig/ReadmeTopQuick_zig.ts +2 -2
  119. package/project/.sdk/src/cmp/zig/ReadmeTopTest_zig.ts +2 -2
  120. package/project/.sdk/tm/clojure/src/sdk/features.clj +21 -3
  121. package/project/.sdk/tm/cpp/Makefile +11 -1
  122. package/project/.sdk/tm/dart/lib/feature/test/TestFeature.dart +38 -10
  123. package/project/.sdk/tm/elixir/lib/projectname/feature/test.ex +1 -1
  124. package/project/.sdk/tm/lean/src/SdkRuntime.lean +19 -1
  125. package/project/.sdk/tm/lean/src/SdkUtility.lean +2 -2
  126. package/project/.sdk/tm/ocaml/sdk_features.ml +31 -12
  127. package/project/.sdk/tm/py-data/test/conftest.py +24 -0
  128. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/TestFeature.swift +10 -10
  129. package/project/sdkgen-package.json +1 -1
  130. package/src/helpers/canonType.ts +38 -0
  131. package/src/sdkgen.ts +2 -1
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, each, Content, canonKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, each, Content, canonKey, canonScalarKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -10,7 +10,7 @@ import {
10
10
  // A type-correct Clojure literal for a field's canonical type. The create
11
11
  // example builds a real struct map, so array/object render as (vs/jt)/(vs/jm).
12
12
  function cljLit(type: any, placeholder: string = 'example'): string {
13
- const k = canonKey(type)
13
+ const k = canonScalarKey(type)
14
14
  if ('INTEGER' === k || 'NUMBER' === k) return '1'
15
15
  if ('BOOLEAN' === k) return 'true'
16
16
  if ('ARRAY' === k) return '(vs/jt)'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, canonKey, entityIdField, pickExampleEntity, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, Content, canonKey, canonScalarKey, entityIdField, pickExampleEntity, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -9,7 +9,7 @@ import {
9
9
 
10
10
  // A type-correct Clojure literal for a field's canonical type.
11
11
  function cljLit(type: any): string {
12
- const k = canonKey(type)
12
+ const k = canonScalarKey(type)
13
13
  if ('INTEGER' === k || 'NUMBER' === k) return '1'
14
14
  if ('BOOLEAN' === k) return 'true'
15
15
  if ('ARRAY' === k) return '(vs/jt)'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, each, Content, isAuthActive, envName, canonKey, opRequestShape, entityIdField, entityDataIdField, entityOps } from '@voxgig/sdkgen'
2
+ import { cmp, each, Content, isAuthActive, envName, canonKey, canonScalarKey, opRequestShape, entityIdField, entityDataIdField, entityOps } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -31,7 +31,7 @@ const ReadmeQuick = cmp(function ReadmeQuick(props: any) {
31
31
 
32
32
  // A type-correct Clojure literal for a param.
33
33
  const cljLit = (type: any, placeholder: string = 'example'): string => {
34
- const k = canonKey(type)
34
+ const k = canonScalarKey(type)
35
35
  if ('INTEGER' === k || 'NUMBER' === k) return '1'
36
36
  if ('BOOLEAN' === k) return 'true'
37
37
  if ('ARRAY' === k) return '(vs/jt)'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, each, Content, canonKey, File, isAuthActive, entityIdField, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, each, Content, canonKey, canonScalarKey, File, isAuthActive, entityIdField, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -9,7 +9,7 @@ import {
9
9
 
10
10
  // A type-correct Clojure literal for a field's canonical type.
11
11
  function cljLit(type: any, placeholder: string = 'example'): string {
12
- const k = canonKey(type)
12
+ const k = canonScalarKey(type)
13
13
  if ('INTEGER' === k || 'NUMBER' === k) return '1'
14
14
  if ('BOOLEAN' === k) return 'true'
15
15
  if ('ARRAY' === k) return '(vs/jt)'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, isAuthActive, envName, canonKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, Content, isAuthActive, envName, canonKey, canonScalarKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -11,7 +11,7 @@ import {
11
11
  // A type-correct Clojure literal for a param: numeric/boolean/array/object
12
12
  // params render a typed literal; strings render the quoted placeholder.
13
13
  function cljLit(type: any, placeholder: string = 'example'): string {
14
- const k = canonKey(type)
14
+ const k = canonScalarKey(type)
15
15
  if ('INTEGER' === k || 'NUMBER' === k) return '1'
16
16
  if ('BOOLEAN' === k) return 'true'
17
17
  if ('ARRAY' === k) return '(vs/jt)'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, canonKey, entityIdField, pickExampleEntity, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, Content, canonKey, canonScalarKey, entityIdField, pickExampleEntity, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -9,7 +9,7 @@ import {
9
9
 
10
10
  // A type-correct Clojure literal for a field's canonical type.
11
11
  function cljLit(type: any): string {
12
- const k = canonKey(type)
12
+ const k = canonScalarKey(type)
13
13
  if ('INTEGER' === k || 'NUMBER' === k) return '1'
14
14
  if ('BOOLEAN' === k) return 'true'
15
15
  if ('ARRAY' === k) return '(vs/jt)'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, each, Content, canonToType, canonKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, each, Content, canonToType, canonKey, canonScalarKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -13,7 +13,7 @@ import { cppVarName } from './utility_cpp'
13
13
 
14
14
  // A type-correct C++ literal for a field's canonical type.
15
15
  function cppLit(type: any, placeholder: string = 'example'): string {
16
- const k = canonKey(type)
16
+ const k = canonScalarKey(type)
17
17
  if ('INTEGER' === k || 'NUMBER' === k) return 'Value(1)'
18
18
  if ('BOOLEAN' === k) return 'Value(true)'
19
19
  if ('ARRAY' === k) return 'vlist()'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, isAuthActive, envName, canonKey, entityIdField, pickExampleEntity, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, Content, isAuthActive, envName, canonKey, canonScalarKey, entityIdField, pickExampleEntity, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -11,7 +11,7 @@ import { cppVarName } from './utility_cpp'
11
11
 
12
12
  // A type-correct C++ literal for a field's canonical type.
13
13
  function cppLit(type: any): string {
14
- const k = canonKey(type)
14
+ const k = canonScalarKey(type)
15
15
  if ('INTEGER' === k || 'NUMBER' === k) return 'Value(1)'
16
16
  if ('BOOLEAN' === k) return 'Value(true)'
17
17
  if ('ARRAY' === k) return 'vlist()'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, isAuthActive, envName, canonKey, opRequestShape, entityIdField, entityDataIdField, entityOps } from '@voxgig/sdkgen'
2
+ import { cmp, Content, isAuthActive, envName, canonKey, canonScalarKey, opRequestShape, entityIdField, entityDataIdField, entityOps } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -56,7 +56,7 @@ ${ctor}
56
56
  // A type-correct C++ literal for a param: numeric/boolean/array/object
57
57
  // params render a typed sdk::Value; strings render the quoted placeholder.
58
58
  const cppLit = (type: any, placeholder: string = 'example'): string => {
59
- const k = canonKey(type)
59
+ const k = canonScalarKey(type)
60
60
  if ('INTEGER' === k || 'NUMBER' === k) return 'Value(1)'
61
61
  if ('BOOLEAN' === k) return 'Value(true)'
62
62
  if ('ARRAY' === k) return 'vlist()'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, each, Content, canonToType, canonKey, File, isAuthActive, entityIdField, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, each, Content, canonToType, canonKey, canonScalarKey, File, isAuthActive, entityIdField, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -13,7 +13,7 @@ import { cppVarName } from './utility_cpp'
13
13
 
14
14
  // A type-correct C++ literal for a field's canonical type.
15
15
  function cppLit(type: any, placeholder: string = 'example'): string {
16
- const k = canonKey(type)
16
+ const k = canonScalarKey(type)
17
17
  if ('INTEGER' === k || 'NUMBER' === k) return 'Value(1)'
18
18
  if ('BOOLEAN' === k) return 'Value(true)'
19
19
  if ('ARRAY' === k) return 'vlist()'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, isAuthActive, envName, canonKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, Content, isAuthActive, envName, canonKey, canonScalarKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -11,7 +11,7 @@ import { cppVarName } from './utility_cpp'
11
11
 
12
12
  // A type-correct C++ literal for a param.
13
13
  function cppLit(type: any, placeholder: string = 'example'): string {
14
- const k = canonKey(type)
14
+ const k = canonScalarKey(type)
15
15
  if ('INTEGER' === k || 'NUMBER' === k) return 'Value(1)'
16
16
  if ('BOOLEAN' === k) return 'Value(true)'
17
17
  if ('ARRAY' === k) return 'vlist()'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, canonKey, entityIdField, pickExampleEntity, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, Content, canonKey, canonScalarKey, entityIdField, pickExampleEntity, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -11,7 +11,7 @@ import { cppVarName } from './utility_cpp'
11
11
 
12
12
  // A type-correct C++ literal for a field's canonical type.
13
13
  function cppLit(type: any): string {
14
- const k = canonKey(type)
14
+ const k = canonScalarKey(type)
15
15
  if ('INTEGER' === k || 'NUMBER' === k) return 'Value(1)'
16
16
  if ('BOOLEAN' === k) return 'Value(true)'
17
17
  if ('ARRAY' === k) return 'vlist()'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, each, Content, canonToType, canonKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, each, Content, canonToType, canonKey, canonScalarKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -13,7 +13,7 @@ import { csVarName } from './utility_csharp'
13
13
 
14
14
  // A type-correct, JSON-serialisable C# literal for a field's canonical type.
15
15
  function csLit(type: any, placeholder: string = 'example'): string {
16
- const k = canonKey(type)
16
+ const k = canonScalarKey(type)
17
17
  if ('INTEGER' === k) return '1L'
18
18
  if ('NUMBER' === k) return '1.0'
19
19
  if ('BOOLEAN' === k) return 'true'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, isAuthActive, envName, canonKey, entityIdField, pickExampleEntity, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, Content, isAuthActive, envName, canonKey, canonScalarKey, entityIdField, pickExampleEntity, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -12,7 +12,7 @@ import { csVarName } from './utility_csharp'
12
12
 
13
13
  // A type-correct C# literal for a field's canonical type.
14
14
  function csLit(type: any): string {
15
- const k = canonKey(type)
15
+ const k = canonScalarKey(type)
16
16
  if ('INTEGER' === k) return '1L'
17
17
  if ('NUMBER' === k) return '1.0'
18
18
  if ('BOOLEAN' === k) return 'true'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, isAuthActive, envName, canonKey, opRequestShape, entityIdField, entityOps } from '@voxgig/sdkgen'
2
+ import { cmp, Content, isAuthActive, envName, canonKey, canonScalarKey, opRequestShape, entityIdField, entityOps } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -56,7 +56,7 @@ var client = ${ctor};
56
56
 
57
57
  // A type-correct C# literal for a param.
58
58
  const csLit = (type: any, placeholder: string = 'example'): string => {
59
- const k = canonKey(type)
59
+ const k = canonScalarKey(type)
60
60
  if ('INTEGER' === k) return '1L'
61
61
  if ('NUMBER' === k) return '1.0'
62
62
  if ('BOOLEAN' === k) return 'true'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, each, Content, canonToType, canonKey, File, isAuthActive, entityIdField, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, each, Content, canonToType, canonKey, canonScalarKey, File, isAuthActive, entityIdField, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -13,7 +13,7 @@ import { csVarName } from './utility_csharp'
13
13
 
14
14
  // A type-correct C# literal for a field's canonical type.
15
15
  function csLit(type: any, placeholder: string = 'example'): string {
16
- const k = canonKey(type)
16
+ const k = canonScalarKey(type)
17
17
  if ('INTEGER' === k) return '1L'
18
18
  if ('NUMBER' === k) return '1.0'
19
19
  if ('BOOLEAN' === k) return 'true'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, isAuthActive, envName, canonKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, Content, isAuthActive, envName, canonKey, canonScalarKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -14,7 +14,7 @@ import { csVarName } from './utility_csharp'
14
14
  // render a typed literal; strings render the quoted placeholder. The SDK's
15
15
  // loose object model means all values live in Dictionary<string, object?>.
16
16
  function csLit(type: any, placeholder: string = 'example'): string {
17
- const k = canonKey(type)
17
+ const k = canonScalarKey(type)
18
18
  if ('INTEGER' === k) return '1L'
19
19
  if ('NUMBER' === k) return '1.0'
20
20
  if ('BOOLEAN' === k) return 'true'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, canonKey, entityIdField, pickExampleEntity, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, Content, canonKey, canonScalarKey, entityIdField, pickExampleEntity, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -12,7 +12,7 @@ import { csVarName } from './utility_csharp'
12
12
 
13
13
  // A type-correct C# literal for a field's canonical type.
14
14
  function csLit(type: any): string {
15
- const k = canonKey(type)
15
+ const k = canonScalarKey(type)
16
16
  if ('INTEGER' === k) return '1L'
17
17
  if ('NUMBER' === k) return '1.0'
18
18
  if ('BOOLEAN' === k) return 'true'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, each, Content, canonToType, canonKey, entityIdField, opRequestShape, safeVarName, exampleVarName, matchArg, idLiteral } from '@voxgig/sdkgen'
2
+ import { cmp, each, Content, canonToType, canonKey, canonScalarKey, entityIdField, opRequestShape, safeVarName, exampleVarName, matchArg, idLiteral } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -12,7 +12,7 @@ import {
12
12
  // A type-correct Dart literal for a field's canonical type. Strings render
13
13
  // the quoted placeholder (single-quoted, matching the generated Dart style).
14
14
  function dartLit(type: any, placeholder: string = 'example'): string {
15
- const k = canonKey(type)
15
+ const k = canonScalarKey(type)
16
16
  if ('INTEGER' === k || 'NUMBER' === k) return '1'
17
17
  if ('BOOLEAN' === k) return 'true'
18
18
  if ('ARRAY' === k) return '<dynamic>[]'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, isAuthActive, envName, canonKey, entityIdField, pickExampleEntity, opRequestShape, safeVarName, exampleVarName } from '@voxgig/sdkgen'
2
+ import { cmp, Content, isAuthActive, envName, canonKey, canonScalarKey, entityIdField, pickExampleEntity, opRequestShape, safeVarName, exampleVarName } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -10,7 +10,7 @@ import {
10
10
 
11
11
  // A type-correct Dart literal for a field's canonical type.
12
12
  function dartLit(type: any): string {
13
- const k = canonKey(type)
13
+ const k = canonScalarKey(type)
14
14
  if ('INTEGER' === k || 'NUMBER' === k) return '1'
15
15
  if ('BOOLEAN' === k) return 'true'
16
16
  if ('ARRAY' === k) return '<dynamic>[]'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, each, Content, isAuthActive, envName, canonKey, opRequestShape, entityIdField, entityDataIdField, entityOps, safeVarName, exampleVarName, matchArg, idLiteral } from '@voxgig/sdkgen'
2
+ import { cmp, each, Content, isAuthActive, envName, canonKey, canonScalarKey, opRequestShape, entityIdField, entityDataIdField, entityOps, safeVarName, exampleVarName, matchArg, idLiteral } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -69,7 +69,7 @@ final client = ${ctor};
69
69
 
70
70
  // A type-correct, executable Dart literal for a param.
71
71
  const dartLit = (type: any, placeholder: string = 'example'): string => {
72
- const k = canonKey(type)
72
+ const k = canonScalarKey(type)
73
73
  if ('INTEGER' === k || 'NUMBER' === k) return '1'
74
74
  if ('BOOLEAN' === k) return 'true'
75
75
  if ('ARRAY' === k) return '<dynamic>[]'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, each, Content, canonToType, canonKey, File, isAuthActive, entityIdField, opRequestShape, safeVarName, exampleVarName, matchArg, idLiteral } from '@voxgig/sdkgen'
2
+ import { cmp, each, Content, canonToType, canonKey, canonScalarKey, File, isAuthActive, entityIdField, opRequestShape, safeVarName, exampleVarName, matchArg, idLiteral } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -14,7 +14,7 @@ import { dartPackageName } from './Package_dart'
14
14
  // A type-correct Dart literal for a field's canonical type. Strings render
15
15
  // the quoted placeholder (single-quoted, matching the generated Dart style).
16
16
  function dartLit(type: any, placeholder: string = 'example'): string {
17
- const k = canonKey(type)
17
+ const k = canonScalarKey(type)
18
18
  if ('INTEGER' === k || 'NUMBER' === k) return '1'
19
19
  if ('BOOLEAN' === k) return 'true'
20
20
  if ('ARRAY' === k) return '<dynamic>[]'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, isAuthActive, envName, canonKey, entityIdField, opRequestShape, safeVarName, exampleVarName, matchArg, idLiteral } from '@voxgig/sdkgen'
2
+ import { cmp, Content, isAuthActive, envName, canonKey, canonScalarKey, entityIdField, opRequestShape, safeVarName, exampleVarName, matchArg, idLiteral } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -14,7 +14,7 @@ import { dartPackageName } from './Package_dart'
14
14
  // array/object params render a typed literal; strings render the quoted
15
15
  // placeholder (single-quoted, matching the generated Dart style).
16
16
  function dartLit(type: any, placeholder: string = 'example'): string {
17
- const k = canonKey(type)
17
+ const k = canonScalarKey(type)
18
18
  if ('INTEGER' === k || 'NUMBER' === k) return '1'
19
19
  if ('BOOLEAN' === k) return 'true'
20
20
  if ('ARRAY' === k) return '<dynamic>[]'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, canonKey, entityIdField, pickExampleEntity, opRequestShape, safeVarName, exampleVarName } from '@voxgig/sdkgen'
2
+ import { cmp, Content, canonKey, canonScalarKey, entityIdField, pickExampleEntity, opRequestShape, safeVarName, exampleVarName } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -12,7 +12,7 @@ import { dartPackageName } from './Package_dart'
12
12
 
13
13
  // A type-correct Dart literal for a field's canonical type.
14
14
  function dartLit(type: any): string {
15
- const k = canonKey(type)
15
+ const k = canonScalarKey(type)
16
16
  if ('INTEGER' === k || 'NUMBER' === k) return '1'
17
17
  if ('BOOLEAN' === k) return 'true'
18
18
  if ('ARRAY' === k) return '<dynamic>[]'
@@ -8,6 +8,7 @@ import {
8
8
 
9
9
  import {
10
10
  canonKey,
11
+ canonScalarKey,
11
12
  canonToType,
12
13
  } from '@voxgig/sdkgen'
13
14
 
@@ -26,7 +27,7 @@ function elixirType(sentinel: unknown): string {
26
27
  // canonical type. Strings render the quoted placeholder; numeric/boolean/
27
28
  // collection types render a real literal so example blocks parse and run.
28
29
  function elixirLit(sentinel: unknown, placeholder: string = 'example'): string {
29
- switch (canonKey(sentinel)) {
30
+ switch (canonScalarKey(sentinel)) {
30
31
  case 'INTEGER':
31
32
  case 'NUMBER': return '1'
32
33
  case 'BOOLEAN': return 'true'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, isAuthActive, envName, canonKey, entityIdField, pickExampleEntity, opRequestShape, goModule } from '@voxgig/sdkgen'
2
+ import { cmp, Content, isAuthActive, envName, canonKey, canonScalarKey, entityIdField, pickExampleEntity, opRequestShape, goModule } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -12,7 +12,7 @@ import { goVarName } from './utility_go'
12
12
 
13
13
  // A type-correct Go literal for a field's canonical type.
14
14
  function goLit(type: any): string {
15
- const k = canonKey(type)
15
+ const k = canonScalarKey(type)
16
16
  if ('INTEGER' === k || 'NUMBER' === k) return '1'
17
17
  if ('BOOLEAN' === k) return 'true'
18
18
  if ('ARRAY' === k) return '[]any{}'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, canonKey, entityIdField, pickExampleEntity, opRequestShape, goModule } from '@voxgig/sdkgen'
2
+ import { cmp, Content, canonKey, canonScalarKey, entityIdField, pickExampleEntity, opRequestShape, goModule } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -10,7 +10,7 @@ import {
10
10
 
11
11
  // A type-correct Go literal for a field's canonical type.
12
12
  function goLit(type: any): string {
13
- const k = canonKey(type)
13
+ const k = canonScalarKey(type)
14
14
  if ('INTEGER' === k || 'NUMBER' === k) return '1'
15
15
  if ('BOOLEAN' === k) return 'true'
16
16
  if ('ARRAY' === k) return '[]any{}'
@@ -5,6 +5,7 @@ import * as Path from 'node:path'
5
5
  import {
6
6
  camelify,
7
7
  canonKey,
8
+ canonScalarKey,
8
9
  each,
9
10
  exampleVarName,
10
11
  names,
@@ -55,7 +56,12 @@ function paramCanonType(entity: any, op: any, paramName: string): unknown {
55
56
  // the empty `map[string]any{}`, everything else (STRING, unknown, missing)
56
57
  // as the quoted `placeholder`.
57
58
  function exampleValue(entity: any, op: any, paramName: string, placeholder: string): string {
58
- const key = canonKey(paramCanonType(entity, op, paramName))
59
+ // canonScalarKey, not canonKey: a nullable field's sentinel is the union
60
+ // ['`$ONE`', ['`$NUMBER`','`$NULL`']], which canonKey stringifies into
61
+ // nothing recognizable — so a `number | null` id fell through to the
62
+ // quoted placeholder and the example failed to compile against the type
63
+ // generated from that very sentinel.
64
+ const key = canonScalarKey(paramCanonType(entity, op, paramName))
59
65
  if ('INTEGER' === key || 'NUMBER' === key) {
60
66
  return '1'
61
67
  }
@@ -68,6 +74,9 @@ function exampleValue(entity: any, op: any, paramName: string, placeholder: stri
68
74
  if ('OBJECT' === key) {
69
75
  return 'map[string]any{}'
70
76
  }
77
+ if ('NULL' === key) {
78
+ return 'nil'
79
+ }
71
80
  return `"${placeholder}"`
72
81
  }
73
82
 
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, each, Content, canonToType, canonKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, each, Content, canonToType, canonKey, canonScalarKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -13,7 +13,7 @@ import { javaVarName } from './utility_java'
13
13
 
14
14
  // A type-correct, JSON-serialisable Java literal for a field's canonical type.
15
15
  function javaLit(type: any, placeholder: string = 'example'): string {
16
- const k = canonKey(type)
16
+ const k = canonScalarKey(type)
17
17
  if ('INTEGER' === k) return '1L'
18
18
  if ('NUMBER' === k) return '1.0'
19
19
  if ('BOOLEAN' === k) return 'true'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, isAuthActive, envName, canonKey, entityIdField, pickExampleEntity, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, Content, isAuthActive, envName, canonKey, canonScalarKey, entityIdField, pickExampleEntity, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -11,7 +11,7 @@ import { javaVarName } from './utility_java'
11
11
 
12
12
  // A type-correct Java literal for a field's canonical type.
13
13
  function javaLit(type: any): string {
14
- const k = canonKey(type)
14
+ const k = canonScalarKey(type)
15
15
  if ('INTEGER' === k) return '1L'
16
16
  if ('NUMBER' === k) return '1.0'
17
17
  if ('BOOLEAN' === k) return 'true'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, isAuthActive, envName, canonKey, opRequestShape, entityIdField, entityOps } from '@voxgig/sdkgen'
2
+ import { cmp, Content, isAuthActive, envName, canonKey, canonScalarKey, opRequestShape, entityIdField, entityOps } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -35,7 +35,7 @@ const ReadmeQuick = cmp(function ReadmeQuick(props: any) {
35
35
  // A type-correct Java literal for a param — the loose object model means
36
36
  // all values live in a Map<String, Object>.
37
37
  const javaLit = (type: any, placeholder: string = 'example'): string => {
38
- const k = canonKey(type)
38
+ const k = canonScalarKey(type)
39
39
  if ('INTEGER' === k) return '1L'
40
40
  if ('NUMBER' === k) return '1.0'
41
41
  if ('BOOLEAN' === k) return 'true'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, each, Content, canonToType, canonKey, File, isAuthActive, entityIdField, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, each, Content, canonToType, canonKey, canonScalarKey, File, isAuthActive, entityIdField, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -13,7 +13,7 @@ import { javaVarName } from './utility_java'
13
13
 
14
14
  // A type-correct Java literal for a field's canonical type.
15
15
  function javaLit(type: any, placeholder: string = 'example'): string {
16
- const k = canonKey(type)
16
+ const k = canonScalarKey(type)
17
17
  if ('INTEGER' === k) return '1L'
18
18
  if ('NUMBER' === k) return '1.0'
19
19
  if ('BOOLEAN' === k) return 'true'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, isAuthActive, envName, canonKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, Content, isAuthActive, envName, canonKey, canonScalarKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -14,7 +14,7 @@ import { javaVarName, javaPackage } from './utility_java'
14
14
  // render a typed literal; strings render the quoted placeholder. The SDK's
15
15
  // loose object model means all values live in Map<String, Object>.
16
16
  function javaLit(type: any, placeholder: string = 'example'): string {
17
- const k = canonKey(type)
17
+ const k = canonScalarKey(type)
18
18
  if ('INTEGER' === k) return '1L'
19
19
  if ('NUMBER' === k) return '1.0'
20
20
  if ('BOOLEAN' === k) return 'true'
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, canonKey, entityIdField, pickExampleEntity, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, Content, canonKey, canonScalarKey, entityIdField, pickExampleEntity, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -11,7 +11,7 @@ import { javaVarName } from './utility_java'
11
11
 
12
12
  // A type-correct Java literal for a field's canonical type.
13
13
  function javaLit(type: any): string {
14
- const k = canonKey(type)
14
+ const k = canonScalarKey(type)
15
15
  if ('INTEGER' === k) return '1L'
16
16
  if ('NUMBER' === k) return '1.0'
17
17
  if ('BOOLEAN' === k) return 'true'
@@ -4,6 +4,7 @@ import * as Path from 'node:path'
4
4
 
5
5
  import {
6
6
  canonKey,
7
+ canonScalarKey,
7
8
  each,
8
9
  } from '@voxgig/sdkgen'
9
10
 
@@ -47,7 +48,12 @@ function paramCanonType(entity: any, op: any, paramName: string): unknown {
47
48
  // `{}`, everything else (STRING, unknown, missing) as the quoted
48
49
  // `placeholder`.
49
50
  function exampleValue(entity: any, op: any, paramName: string, placeholder: string): string {
50
- const key = canonKey(paramCanonType(entity, op, paramName))
51
+ // canonScalarKey, not canonKey: a nullable field's sentinel is the union
52
+ // ['`$ONE`', ['`$NUMBER`','`$NULL`']], which canonKey stringifies into
53
+ // nothing recognizable — so a `number | null` id fell through to the
54
+ // quoted placeholder and the example failed to compile against the type
55
+ // generated from that very sentinel.
56
+ const key = canonScalarKey(paramCanonType(entity, op, paramName))
51
57
  if ('INTEGER' === key || 'NUMBER' === key) {
52
58
  return '1'
53
59
  }
@@ -60,6 +66,9 @@ function exampleValue(entity: any, op: any, paramName: string, placeholder: stri
60
66
  if ('OBJECT' === key) {
61
67
  return '{}'
62
68
  }
69
+ if ('NULL' === key) {
70
+ return 'null'
71
+ }
63
72
  return `'${placeholder}'`
64
73
  }
65
74
 
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, each, Content, canonToType, canonKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
2
+ import { cmp, each, Content, canonToType, canonKey, canonScalarKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -13,7 +13,7 @@ import { kotlinVarName } from './utility_kotlin'
13
13
 
14
14
  // A type-correct Kotlin literal for a field's canonical type.
15
15
  function kotlinLit(type: any, placeholder: string = 'example'): string {
16
- const k = canonKey(type)
16
+ const k = canonScalarKey(type)
17
17
  if ('INTEGER' === k) return '1L'
18
18
  if ('NUMBER' === k) return '1.0'
19
19
  if ('BOOLEAN' === k) return 'true'