@osdk/generator 0.0.8 → 0.0.9
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.
- package/CHANGELOG.md +11 -0
- package/build/js/index.js +43 -42
- package/build/js/index.js.map +1 -1
- package/build/js/index.mjs +43 -42
- package/build/js/index.mjs.map +1 -1
- package/build/types/util/commaSeparatedIdentifiers.d.ts +1 -1
- package/build/types/util/commaSeparatedTypeIdentifiers.d.ts +1 -1
- package/package.json +3 -3
package/build/js/index.mjs
CHANGED
|
@@ -3,21 +3,21 @@ import j__default from 'path';
|
|
|
3
3
|
import { format } from 'prettier';
|
|
4
4
|
import ce from 'prettier-plugin-organize-imports';
|
|
5
5
|
|
|
6
|
-
function F(e){return {...e,actionTypes:e.actionTypes.map(r=>({...r,apiName:ie(r.apiName)}))}}function ie(e){return e.replace(/-./g,r=>r[1].toUpperCase())}function
|
|
7
|
-
`;for(let[
|
|
8
|
-
`,
|
|
9
|
-
${
|
|
6
|
+
function F(e){return {...e,actionTypes:e.actionTypes.map(r=>({...r,apiName:ie(r.apiName)}))}}function ie(e){return e.replace(/-./g,r=>r[1].toUpperCase())}function w(e){let r=new Set,o=new Set;for(let t of e.operations)switch(t.type){case"createObject":r.add(t.objectTypeApiName);break;case"modifyObject":o.add(t.objectTypeApiName);break;}return {addedObjects:r,modifiedObjects:o}}function c(e){return format(e,{parser:"typescript",singleQuote:!0,trailingComma:"all",plugins:[ce],tabWidth:2,printWidth:120})}async function Q(e,r,o){let t=new Set,a=[];for(let n of e.actionTypes){let s=Object.entries(n.parameters),y=w(n),m=Array.from(y.addedObjects),l=Array.from(y.modifiedObjects);m.forEach(t.add,t),l.forEach(t.add,t);let i=["/**"];n.description&&i.push(`* ${n.description}`);let p="";if(s.length>0){p=`params: {
|
|
7
|
+
`;for(let[f,b]of s){p+=`"${f}"`,p+=b.required?": ":"?: ";let E=P(b.dataType,t);p+=`${E};
|
|
8
|
+
`,i.push(`* @param {${E}} params.${f}`);}p+="}, ";}i.push("*/"),a.push(`
|
|
9
|
+
${i.join(`
|
|
10
10
|
`)}
|
|
11
|
-
${n.apiName}<O extends ActionExecutionOptions>(${
|
|
12
|
-
Promise<Result<ActionResponseFromOptions<O, Edits<${m.length>0?m.join(" | "):"void"}, ${
|
|
11
|
+
${n.apiName}<O extends ActionExecutionOptions>(${p}options?: O):
|
|
12
|
+
Promise<Result<ActionResponseFromOptions<O, Edits<${m.length>0?m.join(" | "):"void"}, ${l.length>0?l.join(" | "):"void"}>>, ActionError>>;`);}await r.mkdir(o,{recursive:!0}),await r.writeFile(j__default.join(o,"Actions.ts"),await c(`
|
|
13
13
|
import type { ObjectSet, LocalDate, Timestamp, Attachment, Edits, ActionExecutionOptions, ActionError, Result, ActionResponseFromOptions } from "@osdk/legacy-client";
|
|
14
|
-
${Array.from(t).map(n=>`import type { ${n} } from "
|
|
14
|
+
${Array.from(t).map(n=>`import type { ${n} } from "../objects/${n}";`).join(`
|
|
15
15
|
`)}
|
|
16
16
|
export interface Actions {
|
|
17
17
|
${a.join(`
|
|
18
18
|
`)}
|
|
19
19
|
}
|
|
20
|
-
`));}function P(e,r){switch(e.type){case"objectSet":{let t=e.objectTypeApiName;return r.add(t),`ObjectSet<${t}>`}case"object":{let t=e.objectTypeApiName;return r.add(t),`${t}`}case"array":return `Array<${P(e.subType,r)}>`;case"string":return "string";case"boolean":return "boolean";case"attachment":return "Attachment";case"date":return "LocalDate";case"double":case"integer":case"long":return "number";case"timestamp":return "Timestamp";default:throw new Error(`Unsupported action parameter type: ${e}`)}}async function
|
|
20
|
+
`));}function P(e,r){switch(e.type){case"objectSet":{let t=e.objectTypeApiName;return r.add(t),`ObjectSet<${t}>`}case"object":{let t=e.objectTypeApiName;return r.add(t),`${t}`}case"array":return `Array<${P(e.subType,r)}>`;case"string":return "string";case"boolean":return "boolean";case"attachment":return "Attachment";case"date":return "LocalDate";case"double":case"integer":case"long":return "number";case"timestamp":return "Timestamp";default:throw new Error(`Unsupported action parameter type: ${e}`)}}async function v(e,r){await e.writeFile(j__default.join(r,"FoundryClient.ts"),await c(`
|
|
21
21
|
import { BaseFoundryClient } from "@osdk/legacy-client";
|
|
22
22
|
import type { Auth, FoundryClientOptions } from "@osdk/legacy-client";
|
|
23
23
|
import { Ontology } from "./Ontology";
|
|
@@ -30,7 +30,7 @@ function F(e){return {...e,actionTypes:e.actionTypes.map(r=>({...r,apiName:ie(r.
|
|
|
30
30
|
get ontology(): Ontology {
|
|
31
31
|
return super.ontology;
|
|
32
32
|
}
|
|
33
|
-
}`));}async function
|
|
33
|
+
}`));}async function C(e,r){await e.mkdir(r,{recursive:!0}),await e.writeFile(j.join(r,"index.ts"),await c(`
|
|
34
34
|
export {
|
|
35
35
|
ActionExecutionMode,
|
|
36
36
|
ActionResponse,
|
|
@@ -99,17 +99,17 @@ function F(e){return {...e,actionTypes:e.actionTypes.map(r=>({...r,apiName:ie(r.
|
|
|
99
99
|
} from '@osdk/legacy-client';
|
|
100
100
|
export { Ontology } from "./Ontology";
|
|
101
101
|
export { FoundryClient } from "./FoundryClient";
|
|
102
|
-
`));}function
|
|
102
|
+
`));}function $(e,r){return e.map(o=>{let t=r?.get(o);return t?`${o}: ${t}`:o}).join(",")}function h(e,r){return e.map(o=>`${o}: typeof ${r?.get(o)??o}`).join(",")}async function I(e,r,o){let t=Object.keys(e.objectTypes),a=e.actionTypes.map(i=>i.apiName),n=e.queryTypes.map(i=>i.apiName),s=new Map,y=new Map,m=new Set(t);for(let i of a)m.has(i)?s.set(i,`${i}Action`):m.add(i);for(let i of n)m.has(i)&&y.set(i,`${i}Query`);let l=(i,p)=>{let f=p.get(i);return f?`${i} as ${f}`:i};await r.writeFile(j__default.join(o,"Ontology.ts"),await c(`
|
|
103
103
|
import type { OntologyDefinition } from "@osdk/api";
|
|
104
104
|
import type { Ontology as ClientOntology } from "@osdk/legacy-client";
|
|
105
|
-
import type { Objects } from "./
|
|
106
|
-
import type { Actions } from "./
|
|
107
|
-
import type { Queries } from "./
|
|
105
|
+
import type { Objects } from "./ontology/objects/Objects";
|
|
106
|
+
import type { Actions } from "./ontology/actions/Actions";
|
|
107
|
+
import type { Queries } from "./ontology/queries/Queries";
|
|
108
108
|
${t.map(i=>`import {${i}} from "./ontology/objects/${i}";`).join(`
|
|
109
109
|
`)}
|
|
110
|
-
${a.map(i=>`import {${i}} from "./ontology/actions/${i}";`).join(`
|
|
110
|
+
${a.map(i=>`import {${l(i,s)}} from "./ontology/actions/${i}";`).join(`
|
|
111
111
|
`)}
|
|
112
|
-
${n.map(i=>`import {${i}} from "./ontology/queries/${i}";`).join(`
|
|
112
|
+
${n.map(i=>`import {${l(i,y)}} from "./ontology/queries/${i}";`).join(`
|
|
113
113
|
`)}
|
|
114
114
|
|
|
115
115
|
export const Ontology : {
|
|
@@ -122,10 +122,10 @@ function F(e){return {...e,actionTypes:e.actionTypes.map(r=>({...r,apiName:ie(r.
|
|
|
122
122
|
${h(t)}
|
|
123
123
|
},
|
|
124
124
|
actions: {
|
|
125
|
-
${h(a)}
|
|
125
|
+
${h(a,s)}
|
|
126
126
|
},
|
|
127
127
|
queries: {
|
|
128
|
-
${h(n)}
|
|
128
|
+
${h(n,y)}
|
|
129
129
|
},
|
|
130
130
|
} = {
|
|
131
131
|
metadata: {
|
|
@@ -134,13 +134,13 @@ function F(e){return {...e,actionTypes:e.actionTypes.map(r=>({...r,apiName:ie(r.
|
|
|
134
134
|
userAgent: "foundry-typescript-osdk/0.0.1" as const,
|
|
135
135
|
},
|
|
136
136
|
objects: {
|
|
137
|
-
${
|
|
137
|
+
${$(t)}
|
|
138
138
|
},
|
|
139
139
|
actions: {
|
|
140
|
-
${
|
|
140
|
+
${$(a,s)}
|
|
141
141
|
},
|
|
142
142
|
queries: {
|
|
143
|
-
${
|
|
143
|
+
${$(n,y)}
|
|
144
144
|
}
|
|
145
145
|
} satisfies OntologyDefinition<${t.map(i=>`"${i}"`).join("|")}, ${e.actionTypes.map(i=>`"${i.apiName}"`).join("|")}, ${e.queryTypes.map(i=>`"${i.apiName}"`).join("|")}>;
|
|
146
146
|
|
|
@@ -148,20 +148,21 @@ export interface Ontology extends ClientOntology<typeof Ontology> {
|
|
|
148
148
|
objects: Objects;
|
|
149
149
|
actions: Actions;
|
|
150
150
|
queries: Queries;
|
|
151
|
-
}`));}async function
|
|
151
|
+
}`));}async function L(e,r,o){await r.mkdir(o,{recursive:!0}),await r.writeFile(j__default.join(o,"Objects.ts"),await c(`
|
|
152
152
|
import { BaseObjectSet } from "@osdk/legacy-client";
|
|
153
|
-
|
|
153
|
+
${Array.from(Object.keys(e.objectTypes)).map(t=>`import type { ${t} } from "./${t}";`).join(`
|
|
154
|
+
`)}
|
|
154
155
|
|
|
155
156
|
export interface Objects {
|
|
156
157
|
${Object.keys(e.objectTypes).map(t=>`${t} : BaseObjectSet<${t}>;`).join(`
|
|
157
158
|
`)}
|
|
158
159
|
}
|
|
159
|
-
;`));}async function M(e,r){await e.mkdir(r,{recursive:!0}),await e.writeFile(j.join(r,"index.ts"),await
|
|
160
|
+
;`));}async function M(e,r){await e.mkdir(r,{recursive:!0}),await e.writeFile(j.join(r,"index.ts"),await c(`
|
|
160
161
|
export type { ObjectSet } from "@osdk/legacy-client";
|
|
161
|
-
`));}function
|
|
162
|
+
`));}function q(e){let r=w(e);return {apiName:e.apiName,parameters:Object.fromEntries(Object.entries(e.parameters).map(([o,t])=>[o,ue(t)])),displayName:e.displayName,description:e.description,modifiedEntities:fe(r.addedObjects,r.modifiedObjects)}}function ue(e){switch(e.dataType.type){case"string":case"boolean":case"object":case"attachment":case"date":case"double":case"integer":case"long":case"objectSet":case"timestamp":return {multiplicity:!1,type:A(e.dataType),nullable:!e.required,description:e.description};case"array":return {multiplicity:!0,type:A(e.dataType),nullable:!e.required,description:e.description}}}function A(e){switch(e.type){case"string":case"boolean":case"attachment":case"double":case"integer":case"long":case"timestamp":return e.type;case"date":return "datetime";case"objectSet":return {type:"objectSet",objectSet:e.objectTypeApiName};case"object":return {type:"object",object:e.objectTypeApiName};case"array":return A(e.subType)}}function fe(e,r){let o={};for(let t of e)o[t]={created:!0,modified:!1};for(let t of r)o[t]?o[t].modified=!0:o[t]={created:!1,modified:!0};return o}async function K(e,r,o){await r.mkdir(o,{recursive:!0}),await Promise.all(e.actionTypes.map(async t=>{let a=new Set(de(t));await r.writeFile(j__default.join(o,`${t.apiName}.ts`),await c(`
|
|
162
163
|
import { ActionDefinition } from "@osdk/api";
|
|
163
164
|
|
|
164
|
-
export const ${t.apiName} = ${JSON.stringify(
|
|
165
|
+
export const ${t.apiName} = ${JSON.stringify(q(t),null,2)} satisfies ActionDefinition<"${t.apiName}", ${a.size>0?[...a].map(n=>`"${n}"`).join("|"):"never"}>;`));})),await r.writeFile(j__default.join(o,"index.ts"),await c(`
|
|
165
166
|
${e.actionTypes.map(t=>`export * from "./${t.apiName}";`).join(`
|
|
166
167
|
`)}
|
|
167
168
|
`));}function de(e){let r=Object.values(e.parameters).flatMap(({dataType:t})=>{let a=U(t);return a?[a]:[]});return [...e.operations.flatMap(t=>{switch(t.type){case"createObject":return [t.objectTypeApiName];case"modifyObject":return [t.objectTypeApiName];case"deleteObject":case"createLink":case"deleteLink":return []}}),...r]}function U(e){switch(e.type){case"objectSet":case"object":return e.objectTypeApiName;case"array":return U(e.subType);case"string":case"boolean":case"attachment":case"date":case"double":case"integer":case"long":case"timestamp":return}}function G(e){switch(e.dataType.type){case"integer":case"double":case"string":case"boolean":case"attachment":case"byte":case"decimal":case"float":case"geopoint":case"geoshape":case"long":case"short":return e.dataType.type;case"date":return "datetime";case"timestamp":return "timestamp";case"timeseries":case"array":throw new Error(`Type not supported for primaryKey: ${e.dataType.type}`);default:e.dataType;throw new Error(`Unknown type encountered for primaryKey: ${e.dataType}`)}}function z(e){switch(e.dataType.type){case"integer":case"string":case"byte":case"decimal":case"double":case"float":case"long":case"short":case"boolean":case"date":case"attachment":case"geopoint":case"geoshape":case"timestamp":case"timeseries":return {multiplicity:!1,description:e.description,type:k(e.dataType),nullable:!0};case"array":return {multiplicity:!0,description:e.description,type:k(e.dataType),nullable:!0};default:e.dataType;throw new Error(`Unexpected data type ${JSON.stringify(e.dataType)}`)}}function k(e){switch(e.type){case"integer":case"string":case"byte":case"decimal":case"double":case"float":case"long":case"short":case"boolean":case"attachment":case"geopoint":case"geoshape":case"timestamp":return e.type;case"date":return "datetime";case"array":return k(e.subType);case"timeseries":return e.itemType.type==="string"?"stringTimeseries":"numericTimeseries";default:throw new Error(`Unexecpected data type ${e}`)}}function O(e,r=[]){return {apiName:e.apiName,description:e.description,primaryKeyType:G(e.properties[e.primaryKey]),links:Object.fromEntries(r.map(o=>[o.apiName,{multiplicity:o.cardinality==="MANY",targetType:o.objectTypeApiName}])),properties:Object.fromEntries(Object.entries(e.properties).map(([o,t])=>[o,z(t)]))}}var ge=new Set(["break","case","catch","class","const","continue","debugger","default","delete","do","else","enum","export","extends","false","finally","for","function","if","import","in","instanceof","new","null","return","super","switch","this","throw","true","try","typeof","var","void","while","with","implements","interface","let","package","private","protected","public","static","yield"]);function B(e){return ge.has(e)}function W(e,r=[]){let o=new Set(r.map(t=>t.objectTypeApiName).filter(t=>t!==e.apiName));return `import type { OntologyObject, LocalDate, Timestamp, GeoShape, GeoPoint, Attachment, TimeSeries, MultiLink, SingleLink } from "@osdk/legacy-client";
|
|
@@ -171,8 +172,8 @@ ${Array.from(o).map(t=>`import type { ${t} } from "./${t}";`).join(`
|
|
|
171
172
|
${J(e.description)}export interface ${e.apiName} extends OntologyObject {
|
|
172
173
|
readonly __apiName: "${e.apiName}";
|
|
173
174
|
readonly __primaryKey: ${S(e.properties[e.primaryKey].dataType)};
|
|
174
|
-
${Object.entries(e.properties).flatMap(([t,a])=>{let n=S(a.dataType),
|
|
175
|
-
readonly ${t}_: ${n} | undefined`),
|
|
175
|
+
${Object.entries(e.properties).flatMap(([t,a])=>{let n=S(a.dataType),s=[`${J(a.description)}readonly ${t}: ${n} | undefined`];return B(t)&&s.push(`/** @deprecated please migrate to '${t}' instead */
|
|
176
|
+
readonly ${t}_: ${n} | undefined`),s}).join(`;
|
|
176
177
|
`)}
|
|
177
178
|
${r.flatMap(t=>[`readonly ${t.apiName}: ${t.cardinality==="MANY"?"MultiLink":"SingleLink"}<${t.objectTypeApiName}>`]).join(`;
|
|
178
179
|
`)}
|
|
@@ -180,43 +181,43 @@ ${r.flatMap(t=>[`readonly ${t.apiName}: ${t.cardinality==="MANY"?"MultiLink":"Si
|
|
|
180
181
|
`}function S(e){switch(e.type){case"string":return "string";case"boolean":return "boolean";case"array":return S(e.subType)+"[]";case"integer":return "number";case"attachment":return "Attachment";case"byte":return "number";case"date":return "LocalDate";case"decimal":return "number";case"double":return "number";case"float":return "number";case"geopoint":return "GeoPoint";case"geoshape":return "GeoShape";case"long":return "number";case"short":return "number";case"timestamp":return "Timestamp";case"timeseries":return e.itemType.type==="string"?"TimeSeries<string>":"TimeSeries<number>";default:throw new Error(`Unknown property type ${e}`)}}function J(e){return e?`/**
|
|
181
182
|
* ${e}
|
|
182
183
|
*/
|
|
183
|
-
`:""}async function Z(e,r,o){await r.mkdir(o,{recursive:!0}),await Promise.all(Object.values(e.objectTypes).map(async t=>{let a=e.linkTypes[t.apiName],n=new Set(a?.map(
|
|
184
|
+
`:""}async function Z(e,r,o){await r.mkdir(o,{recursive:!0}),await Promise.all(Object.values(e.objectTypes).map(async t=>{let a=e.linkTypes[t.apiName],n=new Set(a?.map(s=>s.objectTypeApiName));await r.writeFile(j__default.join(o,`${t.apiName}.ts`),await c(`
|
|
184
185
|
import { ObjectDefinition } from "@osdk/api";
|
|
185
186
|
${W(t,a)}
|
|
186
187
|
|
|
187
|
-
export const ${t.apiName} = ${JSON.stringify(O(t,a),null,2)} satisfies ObjectDefinition<"${t.apiName}", ${n.size>0?[...n].map(
|
|
188
|
+
export const ${t.apiName} = ${JSON.stringify(O(t,a),null,2)} satisfies ObjectDefinition<"${t.apiName}", ${n.size>0?[...n].map(s=>`"${s}"`).join("|"):"never"}>;`));})),await r.writeFile(j__default.join(o,"index.ts"),await c(`
|
|
188
189
|
${Object.keys(e.objectTypes).map(t=>`export * from "./${t}";`).join(`
|
|
189
190
|
`)}
|
|
190
191
|
export type { ObjectSet } from "@osdk/legacy-client";
|
|
191
192
|
|
|
192
|
-
`));}function
|
|
193
|
+
`));}function d(e){return e.type==="null"?!0:e.type==="union"?e.unionTypes.some(r=>d(r)):!1}function u(e){switch(e.type){case"double":case"float":case"integer":case"long":case"attachment":case"boolean":case"date":case"string":case"timestamp":return {type:e.type,nullable:!1};case"object":return {type:{type:"object",object:e.objectTypeApiName},nullable:!1};case"objectSet":return {type:{type:"objectSet",objectSet:e.objectTypeApiName},nullable:!1};case"array":return {...u(e.subType),multiplicity:!0};case"set":return {type:{type:"set",set:u(e.subType)},nullable:!1};case"union":let r=d(e);if(r&&e.unionTypes.length===2){let t=e.unionTypes.find(a=>a.type!==null);if(t)return {...u(t),nullable:!0}}return {type:{type:"union",union:e.unionTypes.reduce((t,a)=>(a.type==="null"||t.push(u(a)),t),[])},nullable:r};case"struct":return {type:{type:"struct",struct:Object.fromEntries(e.fields.map(t=>[t.name,u(t.fieldType)]))},nullable:!1};case"twoDimensionalAggregation":return {type:{type:"twoDimensionalAggregation",twoDimensionalAggregation:N(e)}};case"threeDimensionalAggregation":return {type:{type:"threeDimensionalAggregation",threeDimensionalAggregation:be(e)}};case"null":case"unsupported":throw new Error(`Accidentally tried to handle QueryDataType.type ${e.type}`);default:throw new Error(`Unsupported QueryDataType.type ${e.type}`)}}function N(e){if(e.keyType.type==="range")return {keyType:e.keyType.type,keySubtype:e.keyType.subType.type,valueType:e.valueType.type};if(H(e.keyType))return {keyType:e.keyType.type,valueType:e.valueType.type};throw new Error(`Cannot create 2D aggregation with ${e.keyType.type} as its type`)}function be(e){if(e.keyType.type==="range")return {keyType:e.keyType.type,keySubtype:e.keyType.subType.type,valueType:N(e.valueType)};if(H(e.keyType))return {keyType:e.keyType.type,valueType:N(e.valueType)};throw new Error(`Cannot create 3D aggregation with ${e.keyType.type} as its type`)}function H(e){return e.type==="string"||e.type==="boolean"}function X(e){return {apiName:e.apiName,description:e.description,displayName:e.displayName,rid:e.rid,version:e.version,parameters:Object.fromEntries(Object.entries(e.parameters).map(([r,o])=>[r,Te(o)])),output:u(e.output)}}function Te(e){return {description:e.description,dataType:u(e.dataType)}}async function te(e,r,o){await r.mkdir(o,{recursive:!0}),await Promise.all(e.queryTypes.map(async t=>{let a=je(t);await r.writeFile(j__default.join(o,`${t.apiName}.ts`),await c(`
|
|
193
194
|
import { QueryDefinition } from "@osdk/api";
|
|
194
195
|
|
|
195
|
-
export const ${t.apiName} = ${JSON.stringify(X(t))} satisfies QueryDefinition<"${t.apiName}", ${a.length>0?a.map(n=>`"${n}"`).join("|"):"never"}>;`));})),await r.writeFile(j__default.join(o,"index.ts"),await
|
|
196
|
+
export const ${t.apiName} = ${JSON.stringify(X(t))} satisfies QueryDefinition<"${t.apiName}", ${a.length>0?a.map(n=>`"${n}"`).join("|"):"never"}>;`));})),await r.writeFile(j__default.join(o,"index.ts"),await c(`
|
|
196
197
|
${e.queryTypes.map(t=>`export * from "./${t.apiName}";`).join(`
|
|
197
198
|
`)}
|
|
198
|
-
`));}function je(e){let r=new Set;for(let{dataType:o}of Object.values(e.parameters))T(o,r);return T(e.output,r),Array.from(r)}function T(e,r){switch(e.type){case"array":case"set":T(e.subType,r);return;case"object":r.add(e.objectTypeApiName);return;case"objectSet":r.add(e.objectTypeApiName);return;case"struct":for(let t of Object.values(e.fields))T(t.fieldType,r);return;case"union":for(let t of e.unionTypes)T(t,r);return;case"attachment":case"boolean":case"date":case"double":case"float":case"integer":case"long":case"null":case"string":case"threeDimensionalAggregation":case"timestamp":case"twoDimensionalAggregation":case"unsupported":return;default:throw new Error(`Cannot find object types from unsupported QueryDataType ${e.type}`)}}async function ae(e,r,o){let t=new Set,a=[];for(let n of e.queryTypes){let
|
|
199
|
-
${
|
|
199
|
+
`));}function je(e){let r=new Set;for(let{dataType:o}of Object.values(e.parameters))T(o,r);return T(e.output,r),Array.from(r)}function T(e,r){switch(e.type){case"array":case"set":T(e.subType,r);return;case"object":r.add(e.objectTypeApiName);return;case"objectSet":r.add(e.objectTypeApiName);return;case"struct":for(let t of Object.values(e.fields))T(t.fieldType,r);return;case"union":for(let t of e.unionTypes)T(t,r);return;case"attachment":case"boolean":case"date":case"double":case"float":case"integer":case"long":case"null":case"string":case"threeDimensionalAggregation":case"timestamp":case"twoDimensionalAggregation":case"unsupported":return;default:throw new Error(`Cannot find object types from unsupported QueryDataType ${e.type}`)}}async function ae(e,r,o){let t=new Set,a=[];for(let n of e.queryTypes){let s=["/**"];n.description&&s.push(`* ${n.description}`);let y=g(n.output,t),m=[];for(let[i,p]of Object.entries(n.parameters)){let f=d(p.dataType),b=g(p.dataType,t);m.push(`"${i}"${f?"?":""}: ${b}`),s.push(`* @param {${oe(b)}} params.${i}${p.description?` - ${p.description}`:""}`);}let l=m.length===0?"":`params: { ${m.join("; ")} }`;s.push(`* @returns ${oe(y)}`,"*/"),a.push(`
|
|
200
|
+
${s.join(`
|
|
200
201
|
`)}
|
|
201
|
-
${n.apiName}(${
|
|
202
|
-
`);}await r.writeFile(j__default.join(o,"
|
|
202
|
+
${n.apiName}(${l}): Promise<Result<QueryResponse<${y}>, QueryError>>;
|
|
203
|
+
`);}await r.mkdir(o,{recursive:!0}),await r.writeFile(j__default.join(o,"Queries.ts"),await c(`
|
|
203
204
|
import type { QueryResponse, QueryError, Result, Timestamp, LocalDate, Range, Attachment, ObjectSet, TwoDimensionalAggregation, ThreeDimensionalAggregation } from "@osdk/legacy-client";
|
|
204
|
-
${Array.from(t).map(n=>`import type { ${n} } from "
|
|
205
|
+
${Array.from(t).map(n=>`import type { ${n} } from "../objects/${n}";`).join(`
|
|
205
206
|
`)}
|
|
206
207
|
|
|
207
208
|
export interface Queries {
|
|
208
209
|
${a.join(`
|
|
209
210
|
`)}
|
|
210
211
|
}
|
|
211
|
-
`));}function
|
|
212
|
-
`)} }`;case"union":return e.unionTypes.map(a=>
|
|
212
|
+
`));}function g(e,r){switch(e.type){case"boolean":return "boolean";case"string":return "string";case"double":case"float":case"integer":case"long":return "number";case"date":return "LocalDate";case"timestamp":return "Timestamp";case"attachment":return "Attachment";case"array":return `Array<${g(e.subType,r)}>`;case"object":{let a=e.objectTypeApiName;return r.add(a),a}case"objectSet":{let a=e.objectTypeApiName;return r.add(a),`ObjectSet<${a}>`}case"set":return `Set<${g(e.subType,r)}>`;case"struct":return `{ ${e.fields.map(a=>{let n=d(a.fieldType);return `${a.name}${n?"?":""}: ${g(a.fieldType,r)}`}).join(`,
|
|
213
|
+
`)} }`;case"union":return e.unionTypes.map(a=>g(a,r)).filter(a=>a!=="null").join("|");case"twoDimensionalAggregation":return e.valueType,`TwoDimensionalAggregation<
|
|
213
214
|
${x(e.keyType)},
|
|
214
215
|
${re(e.valueType)}
|
|
215
216
|
>`;case"threeDimensionalAggregation":return `ThreeDimensionalAggregation<
|
|
216
217
|
${x(e.keyType)},
|
|
217
218
|
${x(e.valueType.keyType)},
|
|
218
219
|
${re(e.valueType.valueType)}
|
|
219
|
-
>`;case"null":return "null";case"unsupported":throw new Error("Cannot generate queries for unsupported type");default:throw new Error(`Cannot generate queries for type ${e.type}`)}}function x(e){switch(e.type){case"boolean":return "boolean";case"double":case"integer":return "number";case"string":return "string";case"date":return "LocalDate";case"timestamp":return "Timestamp";case"range":return `Range<${$e(e.subType)}>`;default:throw new Error(`Unknown TwoDimensionalAggregation keyType ${e.type}`)}}function $e(e){switch(e.type){case"date":return "LocalDate";case"double":case"integer":return "number";case"timestamp":return "Timestamp";default:throw new Error(`Unsupported QueryAggregationRangeSubType ${e.type}`)}}function re(e){switch(e.type){case"date":return "LocalDate";case"double":return "number";case"timestamp":return "Timestamp";default:throw new Error(`Unsupported QueryAggregationValueType ${e.type}`)}}function oe(e){return e.replace(/\s/g,"")}async function he(e,r,o){let t=F(e);await
|
|
220
|
+
>`;case"null":return "null";case"unsupported":throw new Error("Cannot generate queries for unsupported type");default:throw new Error(`Cannot generate queries for type ${e.type}`)}}function x(e){switch(e.type){case"boolean":return "boolean";case"double":case"integer":return "number";case"string":return "string";case"date":return "LocalDate";case"timestamp":return "Timestamp";case"range":return `Range<${$e(e.subType)}>`;default:throw new Error(`Unknown TwoDimensionalAggregation keyType ${e.type}`)}}function $e(e){switch(e.type){case"date":return "LocalDate";case"double":case"integer":return "number";case"timestamp":return "Timestamp";default:throw new Error(`Unsupported QueryAggregationRangeSubType ${e.type}`)}}function re(e){switch(e.type){case"date":return "LocalDate";case"double":return "number";case"timestamp":return "Timestamp";default:throw new Error(`Unsupported QueryAggregationValueType ${e.type}`)}}function oe(e){return e.replace(/\s/g,"")}async function he(e,r,o){let t=j.join(o,"ontology","objects"),a=j.join(o,"ontology","actions"),n=j.join(o,"ontology","queries"),s=F(e);await v(r,o),await I(s,r,o),await M(r,j.join(o,"ontology")),await L(s,r,t),await Z(s,r,t),await Q(s,r,a),await K(s,r,a),await ae(s,r,n),await te(s,r,n),await C(r,o);}function ne(e){return `
|
|
220
221
|
export interface ${e.apiName} extends ObjectDefinition<"${e.apiName}", "${e.apiName}">{
|
|
221
222
|
apiName: "${e.apiName}";
|
|
222
223
|
properties: {
|
|
@@ -232,9 +233,9 @@ ${r.flatMap(t=>[`readonly ${t.apiName}: ${t.cardinality==="MANY"?"MultiLink":"Si
|
|
|
232
233
|
`)}
|
|
233
234
|
}
|
|
234
235
|
}
|
|
235
|
-
`}async function Oe(e,r,o){r.writeFile(j__default.join(o,"index.ts"),await
|
|
236
|
+
`}async function Oe(e,r,o){r.writeFile(j__default.join(o,"index.ts"),await c(`
|
|
236
237
|
export { Ontology } from "./Ontology";
|
|
237
|
-
`));let t=Object.keys(e.objectTypes);r.writeFile(j__default.join(o,"Ontology.ts"),await
|
|
238
|
+
`));let t=Object.keys(e.objectTypes);r.writeFile(j__default.join(o,"Ontology.ts"),await c(`
|
|
238
239
|
import type { OntologyDefinition } from "@osdk/api";
|
|
239
240
|
${t.map(a=>`import {${a}} from "./objects/${a}";`).join(`
|
|
240
241
|
`)}
|
|
@@ -248,7 +249,7 @@ ${r.flatMap(t=>[`readonly ${t.apiName}: ${t.cardinality==="MANY"?"MultiLink":"Si
|
|
|
248
249
|
`)}
|
|
249
250
|
},
|
|
250
251
|
} satisfies OntologyDefinition<${t.map(a=>`"${a}"`).join("|")}>;
|
|
251
|
-
`));for(let a of t){let n=e.objectTypes[a];r.writeFile(j__default.join(o,"objects",`${a}.ts`),await
|
|
252
|
+
`));for(let a of t){let n=e.objectTypes[a];r.writeFile(j__default.join(o,"objects",`${a}.ts`),await c(`
|
|
252
253
|
|
|
253
254
|
import type { ObjectDefinition } from "@osdk/api";
|
|
254
255
|
|