@osdk/generator 0.0.11 → 0.0.12
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 +9 -0
- package/build/js/index.js +38 -38
- package/build/js/index.js.map +1 -1
- package/build/js/index.mjs +38 -38
- package/build/js/index.mjs.map +1 -1
- package/package.json +3 -3
package/build/js/index.mjs
CHANGED
|
@@ -3,18 +3,18 @@ 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 $(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,
|
|
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 $(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,n=[];for(let a of e.actionTypes){let s=Object.entries(a.parameters),y=$(a),m=Array.from(y.addedObjects),l=Array.from(y.modifiedObjects);m.forEach(t.add,t),l.forEach(t.add,t);let i=["/**"];a.description&&i.push(`* ${a.description}`);let p="";if(s.length>0){p=`params: {
|
|
7
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("*/"),
|
|
8
|
+
`,i.push(`* @param {${E}} params.${f}`);}p+="}, ";}i.push("*/"),n.push(`
|
|
9
9
|
${i.join(`
|
|
10
10
|
`)}
|
|
11
|
-
${
|
|
11
|
+
${a.apiName}<O extends ActionExecutionOptions>(${p}options?: O):
|
|
12
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(
|
|
14
|
+
${Array.from(t).map(a=>`import type { ${a} } from "../objects/${a}";`).join(`
|
|
15
15
|
`)}
|
|
16
16
|
export interface Actions {
|
|
17
|
-
${
|
|
17
|
+
${n.join(`
|
|
18
18
|
`)}
|
|
19
19
|
}
|
|
20
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} | ${t}["__primaryKey"]`}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(`
|
|
@@ -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 I(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,7 +99,7 @@ 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 w(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
|
|
102
|
+
`));}function w(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 L(e,r,o){let t=Object.keys(e.objectTypes),n=e.actionTypes.map(i=>i.apiName),a=e.queryTypes.map(i=>i.apiName),s=new Map,y=new Map,m=new Set(t);for(let i of n)m.has(i)?s.set(i,`${i}Action`):m.add(i);for(let i of a)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
105
|
import type { Objects } from "./ontology/objects/Objects";
|
|
@@ -107,9 +107,9 @@ function F(e){return {...e,actionTypes:e.actionTypes.map(r=>({...r,apiName:ie(r.
|
|
|
107
107
|
import type { Queries } from "./ontology/queries/Queries";
|
|
108
108
|
${t.map(i=>`import {${i}} from "./ontology/objects/${i}";`).join(`
|
|
109
109
|
`)}
|
|
110
|
-
${
|
|
110
|
+
${n.map(i=>`import {${l(i,s)}} from "./ontology/actions/${i}";`).join(`
|
|
111
111
|
`)}
|
|
112
|
-
${
|
|
112
|
+
${a.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(
|
|
125
|
+
${h(n,s)}
|
|
126
126
|
},
|
|
127
127
|
queries: {
|
|
128
|
-
${h(
|
|
128
|
+
${h(a,y)}
|
|
129
129
|
},
|
|
130
130
|
} = {
|
|
131
131
|
metadata: {
|
|
@@ -137,10 +137,10 @@ function F(e){return {...e,actionTypes:e.actionTypes.map(r=>({...r,apiName:ie(r.
|
|
|
137
137
|
${w(t)}
|
|
138
138
|
},
|
|
139
139
|
actions: {
|
|
140
|
-
${w(
|
|
140
|
+
${w(n,s)}
|
|
141
141
|
},
|
|
142
142
|
queries: {
|
|
143
|
-
${w(
|
|
143
|
+
${w(a,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,7 +148,7 @@ 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 M(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
|
`)}
|
|
@@ -157,23 +157,23 @@ export interface Ontology extends ClientOntology<typeof Ontology> {
|
|
|
157
157
|
${Object.keys(e.objectTypes).map(t=>`${t} : BaseObjectSet<${t}>;`).join(`
|
|
158
158
|
`)}
|
|
159
159
|
}
|
|
160
|
-
;`));}async function
|
|
160
|
+
;`));}async function R(e,r){await e.mkdir(r,{recursive:!0}),await e.writeFile(j.join(r,"index.ts"),await c(`
|
|
161
161
|
export type { ObjectSet } from "@osdk/legacy-client";
|
|
162
|
-
`));}function _(e){let r=$(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
|
|
162
|
+
`));}function _(e){let r=$(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 n=new Set(de(t));await r.writeFile(j__default.join(o,`${t.apiName}.ts`),await c(`
|
|
163
163
|
import { ActionDefinition } from "@osdk/api";
|
|
164
164
|
|
|
165
|
-
export const ${t.apiName} = ${JSON.stringify(_(t),null,2)} satisfies ActionDefinition<"${t.apiName}", ${
|
|
165
|
+
export const ${t.apiName} = ${JSON.stringify(_(t),null,2)} satisfies ActionDefinition<"${t.apiName}", ${n.size>0?[...n].map(a=>`"${a}"`).join("|"):"never"}>;`));})),await r.writeFile(j__default.join(o,"index.ts"),await c(`
|
|
166
166
|
${e.actionTypes.map(t=>`export * from "./${t.apiName}";`).join(`
|
|
167
167
|
`)}
|
|
168
|
-
`));}function de(e){let r=Object.values(e.parameters).flatMap(({dataType:t})=>{let
|
|
168
|
+
`));}function de(e){let r=Object.values(e.parameters).flatMap(({dataType:t})=>{let n=U(t);return n?[n]:[]});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";
|
|
169
169
|
${Array.from(o).map(t=>`import type { ${t} } from "./${t}";`).join(`
|
|
170
170
|
`)}
|
|
171
171
|
|
|
172
172
|
${J(e.description)}export interface ${e.apiName} extends OntologyObject {
|
|
173
173
|
readonly __apiName: "${e.apiName}";
|
|
174
174
|
readonly __primaryKey: ${S(e.properties[e.primaryKey].dataType)};
|
|
175
|
-
${Object.entries(e.properties).flatMap(([t,
|
|
176
|
-
readonly ${t}_: ${
|
|
175
|
+
${Object.entries(e.properties).flatMap(([t,n])=>{let a=S(n.dataType),s=[`${J(n.description)}readonly ${t}: ${a} | undefined`];return B(t)&&s.push(`/** @deprecated please migrate to '${t}' instead */
|
|
176
|
+
readonly ${t}_: ${a} | undefined`),s}).join(`;
|
|
177
177
|
`)}
|
|
178
178
|
${r.flatMap(t=>[`readonly ${t.apiName}: ${t.cardinality==="MANY"?"MultiLink":"SingleLink"}<${t.objectTypeApiName}>`]).join(`;
|
|
179
179
|
`)}
|
|
@@ -181,43 +181,43 @@ ${r.flatMap(t=>[`readonly ${t.apiName}: ${t.cardinality==="MANY"?"MultiLink":"Si
|
|
|
181
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?`/**
|
|
182
182
|
* ${e}
|
|
183
183
|
*/
|
|
184
|
-
`:""}async function Z(e,r,o){await r.mkdir(o,{recursive:!0}),await Promise.all(Object.values(e.objectTypes).map(async t=>{let
|
|
184
|
+
`:""}async function Z(e,r,o){await r.mkdir(o,{recursive:!0}),await Promise.all(Object.values(e.objectTypes).map(async t=>{let n=e.linkTypes[t.apiName],a=new Set(n?.map(s=>s.objectTypeApiName));await r.writeFile(j__default.join(o,`${t.apiName}.ts`),await c(`
|
|
185
185
|
import { ObjectDefinition } from "@osdk/api";
|
|
186
|
-
${W(t,
|
|
186
|
+
${W(t,n)}
|
|
187
187
|
|
|
188
|
-
export const ${t.apiName} = ${JSON.stringify(O(t,
|
|
188
|
+
export const ${t.apiName} = ${JSON.stringify(O(t,n),null,2)} satisfies ObjectDefinition<"${t.apiName}", ${a.size>0?[...a].map(s=>`"${s}"`).join("|"):"never"}>;`));})),await r.writeFile(j__default.join(o,"index.ts"),await c(`
|
|
189
189
|
${Object.keys(e.objectTypes).map(t=>`export * from "./${t}";`).join(`
|
|
190
190
|
`)}
|
|
191
191
|
export type { ObjectSet } from "@osdk/legacy-client";
|
|
192
192
|
|
|
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(
|
|
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(n=>n.type!==null);if(t)return {...u(t),nullable:!0}}return {type:{type:"union",union:e.unionTypes.reduce((t,n)=>(n.type==="null"||t.push(u(n)),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 n=je(t);await r.writeFile(j__default.join(o,`${t.apiName}.ts`),await c(`
|
|
194
194
|
import { QueryDefinition } from "@osdk/api";
|
|
195
195
|
|
|
196
|
-
export const ${t.apiName} = ${JSON.stringify(X(t))} satisfies QueryDefinition<"${t.apiName}", ${
|
|
196
|
+
export const ${t.apiName} = ${JSON.stringify(X(t))} satisfies QueryDefinition<"${t.apiName}", ${n.length>0?n.map(a=>`"${a}"`).join("|"):"never"}>;`));})),await r.writeFile(j__default.join(o,"index.ts"),await c(`
|
|
197
197
|
${e.queryTypes.map(t=>`export * from "./${t.apiName}";`).join(`
|
|
198
198
|
`)}
|
|
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,
|
|
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,n=[];for(let a of e.queryTypes){let s=["/**"];a.description&&s.push(`* ${a.description}`);let y=g(a.output,t,!0),m=[];for(let[i,p]of Object.entries(a.parameters)){let f=d(p.dataType),b=g(p.dataType,t,!1);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)}`,"*/"),n.push(`
|
|
200
200
|
${s.join(`
|
|
201
201
|
`)}
|
|
202
|
-
${
|
|
202
|
+
${a.apiName}(${l}): Promise<Result<QueryResponse<${y}>, QueryError>>;
|
|
203
203
|
`);}await r.mkdir(o,{recursive:!0}),await r.writeFile(j__default.join(o,"Queries.ts"),await c(`
|
|
204
204
|
import type { QueryResponse, QueryError, Result, Timestamp, LocalDate, Range, Attachment, ObjectSet, TwoDimensionalAggregation, ThreeDimensionalAggregation } from "@osdk/legacy-client";
|
|
205
|
-
${Array.from(t).map(
|
|
205
|
+
${Array.from(t).map(a=>`import type { ${a} } from "../objects/${a}";`).join(`
|
|
206
206
|
`)}
|
|
207
207
|
|
|
208
208
|
export interface Queries {
|
|
209
|
-
${
|
|
209
|
+
${n.join(`
|
|
210
210
|
`)}
|
|
211
211
|
}
|
|
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)
|
|
213
|
-
`)} }`;case"union":return e.unionTypes.map(a=>g(a,r)).filter(a=>a!=="null").join("|");case"twoDimensionalAggregation":return e.valueType,`TwoDimensionalAggregation<
|
|
212
|
+
`));}function g(e,r,o){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,o)}>`;case"object":{let a=e.objectTypeApiName;return r.add(a),o?a:`${a} | ${a}["__primaryKey"]`}case"objectSet":{let a=e.objectTypeApiName;return r.add(a),`ObjectSet<${a}>`}case"set":return `Set<${g(e.subType,r,o)}>`;case"struct":return `{ ${e.fields.map(a=>{let s=d(a.fieldType);return `${a.name}${s?"?":""}: ${g(a.fieldType,r,o)}`}).join(`,
|
|
213
|
+
`)} }`;case"union":return e.unionTypes.map(a=>g(a,r,o)).filter(a=>a!=="null").join("|");case"twoDimensionalAggregation":return e.valueType,`TwoDimensionalAggregation<
|
|
214
214
|
${x(e.keyType)},
|
|
215
215
|
${re(e.valueType)}
|
|
216
216
|
>`;case"threeDimensionalAggregation":return `ThreeDimensionalAggregation<
|
|
217
217
|
${x(e.keyType)},
|
|
218
218
|
${x(e.valueType.keyType)},
|
|
219
219
|
${re(e.valueType.valueType)}
|
|
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<${we(e.subType)}>`;default:throw new Error(`Unknown TwoDimensionalAggregation keyType ${e.type}`)}}function we(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"),
|
|
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<${we(e.subType)}>`;default:throw new Error(`Unknown TwoDimensionalAggregation keyType ${e.type}`)}}function we(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"),n=j.join(o,"ontology","actions"),a=j.join(o,"ontology","queries"),s=F(e);await v(r,o),await L(s,r,o),await R(r,j.join(o,"ontology")),await M(s,r,t),await Z(s,r,t),await Q(s,r,n),await K(s,r,n),await ae(s,r,a),await te(s,r,a),await I(r,o);}function ne(e){return `
|
|
221
221
|
export interface ${e.apiName} extends ObjectDefinition<"${e.apiName}", "${e.apiName}">{
|
|
222
222
|
apiName: "${e.apiName}";
|
|
223
223
|
properties: {
|
|
@@ -237,7 +237,7 @@ ${r.flatMap(t=>[`readonly ${t.apiName}: ${t.cardinality==="MANY"?"MultiLink":"Si
|
|
|
237
237
|
export { Ontology } from "./Ontology";
|
|
238
238
|
`));let t=Object.keys(e.objectTypes);r.writeFile(j__default.join(o,"Ontology.ts"),await c(`
|
|
239
239
|
import type { OntologyDefinition } from "@osdk/api";
|
|
240
|
-
${t.map(
|
|
240
|
+
${t.map(n=>`import {${n}} from "./objects/${n}";`).join(`
|
|
241
241
|
`)}
|
|
242
242
|
|
|
243
243
|
import { OntologyMetadata } from "./OntologyMetadata";
|
|
@@ -245,17 +245,17 @@ ${r.flatMap(t=>[`readonly ${t.apiName}: ${t.cardinality==="MANY"?"MultiLink":"Si
|
|
|
245
245
|
export const Ontology = {
|
|
246
246
|
metadata: OntologyMetadata,
|
|
247
247
|
objects: {
|
|
248
|
-
${t.map(
|
|
248
|
+
${t.map(n=>`${n}: ${n},`).join(`
|
|
249
249
|
`)}
|
|
250
250
|
},
|
|
251
|
-
} satisfies OntologyDefinition<${t.map(
|
|
252
|
-
`));for(let
|
|
251
|
+
} satisfies OntologyDefinition<${t.map(n=>`"${n}"`).join("|")}>;
|
|
252
|
+
`));for(let n of t){let a=e.objectTypes[n];r.writeFile(j__default.join(o,"objects",`${n}.ts`),await c(`
|
|
253
253
|
|
|
254
254
|
import type { ObjectDefinition } from "@osdk/api";
|
|
255
255
|
|
|
256
|
-
export const ${
|
|
256
|
+
export const ${n} = ${JSON.stringify(O(a),null,2)} satisfies ${n};
|
|
257
257
|
|
|
258
|
-
${ne(
|
|
258
|
+
${ne(a)}
|
|
259
259
|
`));}}
|
|
260
260
|
|
|
261
261
|
export { he as generateClientSdkVersionOneDotOne, Oe as generateClientSdkVersionTwoPointZero };
|