@osdk/generator 2.2.0-beta.21 → 2.2.0-beta.23

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 (33) hide show
  1. package/CHANGELOG.md +124 -0
  2. package/build/browser/GenerateContext/GenerateContext.js.map +1 -1
  3. package/build/browser/util/test/TodoWireOntology.js +2 -2
  4. package/build/browser/util/test/TodoWireOntology.js.map +1 -1
  5. package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.js +3 -2
  6. package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.js.map +1 -1
  7. package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.test.js +396 -12
  8. package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.test.js.map +1 -1
  9. package/build/browser/v2.0/generatePerQueryDataFiles.js +6 -8
  10. package/build/browser/v2.0/generatePerQueryDataFiles.js.map +1 -1
  11. package/build/browser/v2.0/generatePerQueryDataFiles.test.js +16 -8
  12. package/build/browser/v2.0/generatePerQueryDataFiles.test.js.map +1 -1
  13. package/build/cjs/index.cjs +9 -5
  14. package/build/cjs/index.cjs.map +1 -1
  15. package/build/cjs/index.d.cts +1 -1
  16. package/build/esm/GenerateContext/GenerateContext.js.map +1 -1
  17. package/build/esm/util/test/TodoWireOntology.js +2 -2
  18. package/build/esm/util/test/TodoWireOntology.js.map +1 -1
  19. package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.js +3 -2
  20. package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.js.map +1 -1
  21. package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.test.js +396 -12
  22. package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.test.js.map +1 -1
  23. package/build/esm/v2.0/generatePerQueryDataFiles.js +6 -8
  24. package/build/esm/v2.0/generatePerQueryDataFiles.js.map +1 -1
  25. package/build/esm/v2.0/generatePerQueryDataFiles.test.js +16 -8
  26. package/build/esm/v2.0/generatePerQueryDataFiles.test.js.map +1 -1
  27. package/build/types/GenerateContext/GenerateContext.d.ts +1 -0
  28. package/build/types/GenerateContext/GenerateContext.d.ts.map +1 -1
  29. package/build/types/v2.0/generateClientSdkVersionTwoPointZero.d.ts +1 -1
  30. package/build/types/v2.0/generateClientSdkVersionTwoPointZero.d.ts.map +1 -1
  31. package/build/types/v2.0/generatePerQueryDataFiles.d.ts +1 -1
  32. package/build/types/v2.0/generatePerQueryDataFiles.d.ts.map +1 -1
  33. package/package.json +6 -6
@@ -905,7 +905,8 @@ describe("generator", () => {
905
905
  apiName: 'getCount';
906
906
  rid: 'rid.query.1';
907
907
  type: 'query';
908
- version: '0';
908
+ version: '1.1.0';
909
+ isFixedVersion: false;
909
910
  parameters: {
910
911
  /**
911
912
  * (no ontology metadata)
@@ -923,14 +924,15 @@ describe("generator", () => {
923
924
  };
924
925
  apiName: 'getCount';
925
926
  type: 'query';
926
- version: '0';
927
+ version: '1.1.0';
927
928
  osdkMetadata: typeof $osdkMetadata;
928
929
  }
929
930
 
930
931
  export const getCount: getCount = {
931
932
  apiName: 'getCount',
932
933
  type: 'query',
933
- version: '0',
934
+ version: '1.1.0',
935
+ isFixedVersion: false,
934
936
  osdkMetadata: $osdkMetadata,
935
937
  };
936
938
  ",
@@ -959,7 +961,8 @@ describe("generator", () => {
959
961
  apiName: 'returnsTodo';
960
962
  rid: 'rid.query.2';
961
963
  type: 'query';
962
- version: '0';
964
+ version: '3.2.0';
965
+ isFixedVersion: false;
963
966
  parameters: {
964
967
  /**
965
968
  * description: Random desc so we test jsdoc
@@ -982,14 +985,15 @@ describe("generator", () => {
982
985
  };
983
986
  apiName: 'returnsTodo';
984
987
  type: 'query';
985
- version: '0';
988
+ version: '3.2.0';
986
989
  osdkMetadata: typeof $osdkMetadata;
987
990
  }
988
991
 
989
992
  export const returnsTodo: returnsTodo = {
990
993
  apiName: 'returnsTodo',
991
994
  type: 'query',
992
- version: '0',
995
+ version: '3.2.0',
996
+ isFixedVersion: false,
993
997
  osdkMetadata: $osdkMetadata,
994
998
  };
995
999
  ",
@@ -1505,7 +1509,8 @@ describe("generator", () => {
1505
1509
  apiName: 'foo.bar.getCount';
1506
1510
  rid: 'rid.query.1';
1507
1511
  type: 'query';
1508
- version: '0';
1512
+ version: '1.1.0';
1513
+ isFixedVersion: false;
1509
1514
  parameters: {
1510
1515
  /**
1511
1516
  * (no ontology metadata)
@@ -1523,14 +1528,15 @@ describe("generator", () => {
1523
1528
  };
1524
1529
  apiName: 'foo.bar.getCount';
1525
1530
  type: 'query';
1526
- version: '0';
1531
+ version: '1.1.0';
1527
1532
  osdkMetadata: typeof $osdkMetadata;
1528
1533
  }
1529
1534
 
1530
1535
  export const getCount: getCount = {
1531
1536
  apiName: 'foo.bar.getCount',
1532
1537
  type: 'query',
1533
- version: '0',
1538
+ version: '1.1.0',
1539
+ isFixedVersion: false,
1534
1540
  osdkMetadata: $osdkMetadata,
1535
1541
  };
1536
1542
  ",
@@ -1559,7 +1565,8 @@ describe("generator", () => {
1559
1565
  apiName: 'foo.bar.returnsTodo';
1560
1566
  rid: 'rid.query.2';
1561
1567
  type: 'query';
1562
- version: '0';
1568
+ version: '3.2.0';
1569
+ isFixedVersion: false;
1563
1570
  parameters: {
1564
1571
  /**
1565
1572
  * description: Random desc so we test jsdoc
@@ -1582,14 +1589,15 @@ describe("generator", () => {
1582
1589
  };
1583
1590
  apiName: 'foo.bar.returnsTodo';
1584
1591
  type: 'query';
1585
- version: '0';
1592
+ version: '3.2.0';
1586
1593
  osdkMetadata: typeof $osdkMetadata;
1587
1594
  }
1588
1595
 
1589
1596
  export const returnsTodo: returnsTodo = {
1590
1597
  apiName: 'foo.bar.returnsTodo',
1591
1598
  type: 'query',
1592
- version: '0',
1599
+ version: '3.2.0',
1600
+ isFixedVersion: false,
1593
1601
  osdkMetadata: $osdkMetadata,
1594
1602
  };
1595
1603
  ",
@@ -1671,6 +1679,7 @@ describe("generator", () => {
1671
1679
  rid: 'ri.a.b.c';
1672
1680
  type: 'query';
1673
1681
  version: '0';
1682
+ isFixedVersion: false;
1674
1683
  parameters: {
1675
1684
  /**
1676
1685
  * (no ontology metadata)
@@ -1700,6 +1709,7 @@ describe("generator", () => {
1700
1709
  apiName: 'getTask',
1701
1710
  type: 'query',
1702
1711
  version: '0',
1712
+ isFixedVersion: false,
1703
1713
  osdkMetadata: $osdkMetadata,
1704
1714
  };
1705
1715
  "
@@ -1890,6 +1900,380 @@ describe("generator", () => {
1890
1900
  `);
1891
1901
  });
1892
1902
  });
1903
+ describe("queries with versions", () => {
1904
+ it("can generate properly when queries have versions and optionally have fixed versions", async () => {
1905
+ await generateClientSdkVersionTwoPointZero({
1906
+ ontology: TodoWireOntology.ontology,
1907
+ actionTypes: {},
1908
+ interfaceTypes: {},
1909
+ objectTypes: TodoWireOntology.objectTypes,
1910
+ queryTypes: {
1911
+ "getCount:1.1.0": {
1912
+ ...TodoWireOntology.queryTypes.getCount
1913
+ },
1914
+ "returnsTodo:3.2.0": {
1915
+ ...TodoWireOntology.queryTypes.returnsTodo,
1916
+ version: "0"
1917
+ }
1918
+ },
1919
+ sharedPropertyTypes: {}
1920
+ }, "typescript-sdk/0.0.0 osdk-cli/0.0.0", helper.minimalFiles, BASE_PATH, "module", new Map(), new Map(), new Map(), false, ["getCount"]);
1921
+ expect(tweakedFilesForSnapshotConsistency(helper.getFiles())).toMatchInlineSnapshot(`
1922
+ {
1923
+ "/foo/OntologyMetadata.ts": "export type $ExpectedClientVersion = 'PLACEHOLDER';
1924
+ export const $osdkMetadata = { extraUserAgent: 'typescript-sdk/0.0.0 osdk-cli/0.0.0' };
1925
+
1926
+ export const $ontologyRid = 'ridHere';
1927
+ ",
1928
+ "/foo/index.ts": "export {} from './ontology/actions.js';
1929
+ export * as $Actions from './ontology/actions.js';
1930
+ export {} from './ontology/interfaces.js';
1931
+ export * as $Interfaces from './ontology/interfaces.js';
1932
+ export { Person, Todo } from './ontology/objects.js';
1933
+ export * as $Objects from './ontology/objects.js';
1934
+ export { getCount, returnsTodo } from './ontology/queries.js';
1935
+ export * as $Queries from './ontology/queries.js';
1936
+ export { $osdkMetadata } from './OntologyMetadata.js';
1937
+ export { $ontologyRid } from './OntologyMetadata.js';
1938
+ ",
1939
+ "/foo/ontology/actions.ts": "export {};
1940
+ ",
1941
+ "/foo/ontology/interfaces.ts": "export {};
1942
+ ",
1943
+ "/foo/ontology/objects.ts": "export { Person } from './objects/Person.js';
1944
+ export { Todo } from './objects/Todo.js';
1945
+ ",
1946
+ "/foo/ontology/objects/Person.ts": "import type { PropertyDef as $PropertyDef } from '@osdk/client';
1947
+ import { $osdkMetadata } from '../../OntologyMetadata.js';
1948
+ import type { $ExpectedClientVersion } from '../../OntologyMetadata.js';
1949
+ import type { Todo } from './Todo.js';
1950
+ import type {
1951
+ PropertyKeys as $PropertyKeys,
1952
+ ObjectTypeDefinition as $ObjectTypeDefinition,
1953
+ ObjectMetadata as $ObjectMetadata,
1954
+ } from '@osdk/client';
1955
+ import type {
1956
+ ObjectSet as $ObjectSet,
1957
+ Osdk as $Osdk,
1958
+ OsdkObject as $OsdkObject,
1959
+ PropertyValueWireToClient as $PropType,
1960
+ SingleLinkAccessor as $SingleLinkAccessor,
1961
+ } from '@osdk/client';
1962
+
1963
+ export namespace Person {
1964
+ export type PropertyKeys = 'email';
1965
+
1966
+ export interface Links {
1967
+ readonly Todos: Todo.ObjectSet;
1968
+ }
1969
+
1970
+ export interface Props {
1971
+ /**
1972
+ * (no ontology metadata)
1973
+ */
1974
+ readonly email: $PropType['string'];
1975
+ }
1976
+ export type StrictProps = Props;
1977
+
1978
+ export interface ObjectSet extends $ObjectSet<Person, Person.ObjectSet> {}
1979
+
1980
+ export type OsdkInstance<
1981
+ OPTIONS extends never | '$rid' = never,
1982
+ K extends keyof Person.Props = keyof Person.Props,
1983
+ > = $Osdk.Instance<Person, OPTIONS, K>;
1984
+
1985
+ /** @deprecated use OsdkInstance */
1986
+ export type OsdkObject<
1987
+ OPTIONS extends never | '$rid' = never,
1988
+ K extends keyof Person.Props = keyof Person.Props,
1989
+ > = OsdkInstance<OPTIONS, K>;
1990
+ }
1991
+
1992
+ export interface Person extends $ObjectTypeDefinition {
1993
+ osdkMetadata: typeof $osdkMetadata;
1994
+ type: 'object';
1995
+ apiName: 'Person';
1996
+ __DefinitionMetadata?: {
1997
+ objectSet: Person.ObjectSet;
1998
+ props: Person.Props;
1999
+ linksType: Person.Links;
2000
+ strictProps: Person.StrictProps;
2001
+ apiName: 'Person';
2002
+ description: 'A person';
2003
+ displayName: 'Person';
2004
+ icon: {
2005
+ type: 'blueprint';
2006
+ name: 'document';
2007
+ color: 'blue';
2008
+ };
2009
+ implements: [];
2010
+ interfaceMap: {};
2011
+ inverseInterfaceMap: {};
2012
+ links: {
2013
+ Todos: $ObjectMetadata.Link<Todo, true>;
2014
+ };
2015
+ pluralDisplayName: 'Persons';
2016
+ primaryKeyApiName: 'email';
2017
+ primaryKeyType: 'string';
2018
+ properties: {
2019
+ /**
2020
+ * (no ontology metadata)
2021
+ */
2022
+ email: $PropertyDef<'string', 'non-nullable', 'single'>;
2023
+ };
2024
+ rid: 'ridForPerson';
2025
+ status: 'ACTIVE';
2026
+ titleProperty: 'email';
2027
+ type: 'object';
2028
+ };
2029
+ }
2030
+
2031
+ export const Person: Person = {
2032
+ type: 'object',
2033
+ apiName: 'Person',
2034
+ osdkMetadata: $osdkMetadata,
2035
+ };
2036
+ ",
2037
+ "/foo/ontology/objects/Todo.ts": "import type { PropertyDef as $PropertyDef } from '@osdk/client';
2038
+ import { $osdkMetadata } from '../../OntologyMetadata.js';
2039
+ import type { $ExpectedClientVersion } from '../../OntologyMetadata.js';
2040
+ import type { Person } from './Person.js';
2041
+ import type {
2042
+ PropertyKeys as $PropertyKeys,
2043
+ ObjectTypeDefinition as $ObjectTypeDefinition,
2044
+ ObjectMetadata as $ObjectMetadata,
2045
+ } from '@osdk/client';
2046
+ import type {
2047
+ ObjectSet as $ObjectSet,
2048
+ Osdk as $Osdk,
2049
+ OsdkObject as $OsdkObject,
2050
+ PropertyValueWireToClient as $PropType,
2051
+ SingleLinkAccessor as $SingleLinkAccessor,
2052
+ } from '@osdk/client';
2053
+
2054
+ export namespace Todo {
2055
+ export type PropertyKeys = 'id' | 'body' | 'complete';
2056
+
2057
+ export interface Links {
2058
+ readonly Assignee: $SingleLinkAccessor<Person>;
2059
+ }
2060
+
2061
+ export interface Props {
2062
+ /**
2063
+ * display name: 'Body',
2064
+ * description: The text of the todo
2065
+ */
2066
+ readonly body: $PropType['string'] | undefined;
2067
+ /**
2068
+ * (no ontology metadata)
2069
+ */
2070
+ readonly complete: $PropType['boolean'] | undefined;
2071
+ /**
2072
+ * (no ontology metadata)
2073
+ */
2074
+ readonly id: $PropType['integer'];
2075
+ }
2076
+ export type StrictProps = Props;
2077
+
2078
+ export interface ObjectSet extends $ObjectSet<Todo, Todo.ObjectSet> {}
2079
+
2080
+ export type OsdkInstance<
2081
+ OPTIONS extends never | '$rid' = never,
2082
+ K extends keyof Todo.Props = keyof Todo.Props,
2083
+ > = $Osdk.Instance<Todo, OPTIONS, K>;
2084
+
2085
+ /** @deprecated use OsdkInstance */
2086
+ export type OsdkObject<
2087
+ OPTIONS extends never | '$rid' = never,
2088
+ K extends keyof Todo.Props = keyof Todo.Props,
2089
+ > = OsdkInstance<OPTIONS, K>;
2090
+ }
2091
+
2092
+ export interface Todo extends $ObjectTypeDefinition {
2093
+ osdkMetadata: typeof $osdkMetadata;
2094
+ type: 'object';
2095
+ apiName: 'Todo';
2096
+ __DefinitionMetadata?: {
2097
+ objectSet: Todo.ObjectSet;
2098
+ props: Todo.Props;
2099
+ linksType: Todo.Links;
2100
+ strictProps: Todo.StrictProps;
2101
+ apiName: 'Todo';
2102
+ description: 'Its a todo item.';
2103
+ displayName: 'AwesomeTodoDisplayname';
2104
+ icon: {
2105
+ type: 'blueprint';
2106
+ name: 'document';
2107
+ color: 'blue';
2108
+ };
2109
+ implements: ['SomeInterface'];
2110
+ interfaceMap: {
2111
+ SomeInterface: {
2112
+ SomeProperty: 'body';
2113
+ };
2114
+ };
2115
+ inverseInterfaceMap: {
2116
+ SomeInterface: {
2117
+ body: 'SomeProperty';
2118
+ };
2119
+ };
2120
+ links: {
2121
+ Assignee: $ObjectMetadata.Link<Person, false>;
2122
+ };
2123
+ pluralDisplayName: 'AwesomeTodoDisplayNames';
2124
+ primaryKeyApiName: 'id';
2125
+ primaryKeyType: 'integer';
2126
+ properties: {
2127
+ /**
2128
+ * display name: 'Body',
2129
+ * description: The text of the todo
2130
+ */
2131
+ body: $PropertyDef<'string', 'nullable', 'single'>;
2132
+ /**
2133
+ * (no ontology metadata)
2134
+ */
2135
+ complete: $PropertyDef<'boolean', 'nullable', 'single'>;
2136
+ /**
2137
+ * (no ontology metadata)
2138
+ */
2139
+ id: $PropertyDef<'integer', 'non-nullable', 'single'>;
2140
+ };
2141
+ rid: 'ridForTodo';
2142
+ status: 'ACTIVE';
2143
+ titleProperty: 'body';
2144
+ type: 'object';
2145
+ };
2146
+ }
2147
+
2148
+ export const Todo: Todo = {
2149
+ type: 'object',
2150
+ apiName: 'Todo',
2151
+ osdkMetadata: $osdkMetadata,
2152
+ };
2153
+ ",
2154
+ "/foo/ontology/queries.ts": "export { getCount } from './queries/getCount.js';
2155
+ export { returnsTodo } from './queries/returnsTodo.js';
2156
+ ",
2157
+ "/foo/ontology/queries/getCount.ts": "import type { ObjectSpecifier, QueryDefinition, QueryParam, QueryResult, VersionBound } from '@osdk/client';
2158
+ import type { $ExpectedClientVersion } from '../../OntologyMetadata.js';
2159
+ import { $osdkMetadata } from '../../OntologyMetadata.js';
2160
+
2161
+ export namespace getCount {
2162
+ export interface Signature {
2163
+ (query: getCount.Parameters): Promise<getCount.ReturnType>;
2164
+ }
2165
+
2166
+ export interface Parameters {
2167
+ /**
2168
+ * (no ontology metadata)
2169
+ */
2170
+ readonly completed: QueryParam.PrimitiveType<'boolean'>;
2171
+ }
2172
+
2173
+ export type ReturnType = QueryResult.PrimitiveType<'integer'>;
2174
+ }
2175
+
2176
+ export interface getCount extends QueryDefinition<getCount.Signature>, VersionBound<$ExpectedClientVersion> {
2177
+ __DefinitionMetadata?: {
2178
+ apiName: 'getCount';
2179
+ rid: 'rid.query.1';
2180
+ type: 'query';
2181
+ version: '1.1.0';
2182
+ isFixedVersion: true;
2183
+ parameters: {
2184
+ /**
2185
+ * (no ontology metadata)
2186
+ */
2187
+ completed: {
2188
+ nullable: false;
2189
+ type: 'boolean';
2190
+ };
2191
+ };
2192
+ output: {
2193
+ nullable: false;
2194
+ type: 'integer';
2195
+ };
2196
+ signature: getCount.Signature;
2197
+ };
2198
+ apiName: 'getCount';
2199
+ type: 'query';
2200
+ version: '1.1.0';
2201
+ osdkMetadata: typeof $osdkMetadata;
2202
+ }
2203
+
2204
+ export const getCount: getCount = {
2205
+ apiName: 'getCount',
2206
+ type: 'query',
2207
+ version: '1.1.0',
2208
+ isFixedVersion: true,
2209
+ osdkMetadata: $osdkMetadata,
2210
+ };
2211
+ ",
2212
+ "/foo/ontology/queries/returnsTodo.ts": "import type { ObjectSpecifier, QueryDefinition, QueryParam, QueryResult, VersionBound } from '@osdk/client';
2213
+ import type { $ExpectedClientVersion } from '../../OntologyMetadata.js';
2214
+ import { $osdkMetadata } from '../../OntologyMetadata.js';
2215
+ import type { Todo } from '../objects/Todo.js';
2216
+
2217
+ export namespace returnsTodo {
2218
+ export interface Signature {
2219
+ (query: returnsTodo.Parameters): Promise<returnsTodo.ReturnType>;
2220
+ }
2221
+
2222
+ export interface Parameters {
2223
+ /**
2224
+ * description: Random desc so we test jsdoc
2225
+ */
2226
+ readonly someTodo: QueryParam.ObjectType<Todo>;
2227
+ }
2228
+
2229
+ export type ReturnType = QueryResult.ObjectType<Todo>;
2230
+ }
2231
+
2232
+ export interface returnsTodo extends QueryDefinition<returnsTodo.Signature>, VersionBound<$ExpectedClientVersion> {
2233
+ __DefinitionMetadata?: {
2234
+ apiName: 'returnsTodo';
2235
+ rid: 'rid.query.2';
2236
+ type: 'query';
2237
+ version: '0';
2238
+ isFixedVersion: false;
2239
+ parameters: {
2240
+ /**
2241
+ * description: Random desc so we test jsdoc
2242
+ */
2243
+ someTodo: {
2244
+ description: 'Random desc so we test jsdoc';
2245
+ nullable: false;
2246
+ object: 'Todo';
2247
+ type: 'object';
2248
+ __OsdkTargetType?: Todo;
2249
+ };
2250
+ };
2251
+ output: {
2252
+ nullable: false;
2253
+ object: 'Todo';
2254
+ type: 'object';
2255
+ __OsdkTargetType?: Todo;
2256
+ };
2257
+ signature: returnsTodo.Signature;
2258
+ };
2259
+ apiName: 'returnsTodo';
2260
+ type: 'query';
2261
+ version: '0';
2262
+ osdkMetadata: typeof $osdkMetadata;
2263
+ }
2264
+
2265
+ export const returnsTodo: returnsTodo = {
2266
+ apiName: 'returnsTodo',
2267
+ type: 'query',
2268
+ version: '0',
2269
+ isFixedVersion: false,
2270
+ osdkMetadata: $osdkMetadata,
2271
+ };
2272
+ ",
2273
+ }
2274
+ `);
2275
+ });
2276
+ });
1893
2277
  it("can generate an sdk package that is entirely a library", async () => {
1894
2278
  const mockConsola = vi.spyOn(consola, "info");
1895
2279
  await expect(generateClientSdkVersionTwoPointZero(referencedOntology, "", helper.minimalFiles, BASE_PATH, "module")).resolves.toMatchInlineSnapshot(`undefined`);