zova-module-a-openapi 5.1.55 → 5.1.56
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/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/monkey.d.ts +1 -0
- package/dist/monkey.d.ts.map +1 -1
- package/dist/types/rest.d.ts +1 -0
- package/dist/types/rest.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/monkey.ts +7 -5
- package/src/types/rest.ts +2 -0
package/dist/index.js
CHANGED
|
@@ -434,6 +434,7 @@ var Monkey = class extends BeanSimple {
|
|
|
434
434
|
constructor(...args) {
|
|
435
435
|
super(...args);
|
|
436
436
|
this._modelSdk = ref();
|
|
437
|
+
this._sdkGeneration = 0;
|
|
437
438
|
}
|
|
438
439
|
async beanInit(bean, beanInstance) {
|
|
439
440
|
const self = this;
|
|
@@ -456,7 +457,10 @@ var Monkey = class extends BeanSimple {
|
|
|
456
457
|
});
|
|
457
458
|
}
|
|
458
459
|
async _loadSdk() {
|
|
459
|
-
|
|
460
|
+
const generation = ++this._sdkGeneration;
|
|
461
|
+
const locale = this.app.meta.locale.current;
|
|
462
|
+
const sdk = await this.app.bean._getBeanSelector("a-openapi.model.sdk", true, locale);
|
|
463
|
+
if (generation === this._sdkGeneration && locale === this.app.meta.locale.current) this._modelSdk.value = sdk;
|
|
460
464
|
}
|
|
461
465
|
};
|
|
462
466
|
//#endregion
|
|
@@ -471,6 +475,7 @@ var ScopeModuleAOpenapi = (_dec = Scope(), _dec2 = BeanInfo({ module: "a-openapi
|
|
|
471
475
|
//#endregion
|
|
472
476
|
//#region src/types/rest.ts
|
|
473
477
|
var renderFormFieldTopPropsSystem = [
|
|
478
|
+
"draft",
|
|
474
479
|
"order",
|
|
475
480
|
"table",
|
|
476
481
|
"form",
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/types/database.ts","../src/lib/schema.ts","../src/model/sdk.ts","../src/types/sdk.ts","../src/bean/sys.sdk.ts","../src/config/config.ts","../src/monkey.ts","../src/.metadata/index.ts","../src/types/rest.ts"],"sourcesContent":["export const OrderCoreBase = 100;\nexport const OrderBusinessBase = 1000;\nexport const OrderUnknownBase = 10000;\nexport const OrderMaxBase = 100000;","import jsonSchemaToZod from '@cabloy/json-schema-to-zod';\nimport { evaluateSimple } from '@cabloy/utils';\nimport { toRaw } from 'vue';\nimport { z } from 'zod';\nimport { cast, deepExtend } from 'zova';\nimport { OrderUnknownBase } from '../types/database.js';\nconst __FilterColumnsIgnore = ['columns', 'where', 'orders', 'pageNo', 'pageSize'];\nexport function loadSchemaProperties(schema, onGetSchema, schemaScene) {\n if (!schema) return;\n const properties = schema.properties;\n const result = [];\n // filter\n for (let key in properties) {\n let property = properties[key];\n if (property.$ref) {\n property = onGetSchema(property.$ref);\n }\n if (!property) continue;\n const schemaKey = key;\n const propertyRest = deepExtend({}, property.rest, schemaScene && ['form-view', 'form-create', 'filter'].includes(schemaScene) ? property.rest?.form : undefined, schemaScene ? property.rest?.[schemaScene] : undefined);\n const fieldSource = propertyRest?.fieldSource;\n if (fieldSource) {\n const parts = fieldSource.split('.');\n let propertyParent = parts[0] === schemaKey ? property : properties[parts[0]];\n if (propertyParent?.$ref) {\n propertyParent = onGetSchema(propertyParent.$ref);\n }\n property = propertyParent?.properties?.[parts[1]];\n key = fieldSource;\n }\n if (!property) continue;\n property = deepExtend({\n key\n }, property, schemaScene && ['form-view', 'form-create', 'filter'].includes(schemaScene) ? {\n rest: property.rest?.['form'] ?? {}\n } : undefined, schemaScene ? {\n rest: property.rest?.[schemaScene] ?? {}\n } : undefined);\n if (schemaKey !== key) {\n property.schemaKey = schemaKey;\n }\n const propertyExisting = result.find(item => item.key === key);\n if (propertyExisting) {\n propertyExisting.schemaKeys = [...(propertyExisting.schemaKeys ?? []), schemaKey];\n continue;\n }\n result.push(property);\n }\n // sort\n result.sort((a, b) => {\n return (a.rest?.order ?? OrderUnknownBase) - (b.rest?.order ?? OrderUnknownBase);\n });\n // ok\n return result;\n}\nexport function schemaToZodSchema(schema, onGetSchema) {\n const schemaNormalize = _normalizeSchema(toRaw(schema), onGetSchema);\n const code = jsonSchemaToZod(schemaNormalize);\n return evaluateSimple(code, {\n z\n });\n}\nfunction _normalizeSchema(schema, onGetSchema) {\n if (!schema.properties) return schema;\n const schemaNew = Object.assign({}, schema, {\n properties: {}\n });\n for (const key in schema.properties) {\n let property = schema.properties[key];\n property = _normalizePropertySchema(property, onGetSchema);\n if (!property) continue;\n // items.$ref\n if (property.items?.$ref) {\n const propertyItems = _normalizePropertySchema(property.items, onGetSchema);\n if (!propertyItems) continue;\n property = {\n ...property,\n items: propertyItems\n };\n }\n // _normalizeSchema\n schemaNew.properties[key] = property;\n }\n return schemaNew;\n}\nfunction _normalizePropertySchema(property, onGetSchema) {\n if (property?.$ref) {\n property = onGetSchema(property.$ref);\n }\n if (!property) return;\n return _normalizeSchema(property, onGetSchema);\n}\nexport function getSchemaOfRequestBody(operationObject) {\n return cast(operationObject?.requestBody)?.content?.['application/json']?.schema;\n}\nexport function getSchemaOfResponseBody(operationObject) {\n return operationObject?.responses?.['200']?.content?.['application/json']?.schema;\n}\nexport function getSchemaOfRequestQuery(operationObject) {\n const parameters = operationObject?.parameters;\n if (!parameters) return;\n const schema = {\n type: 'object',\n required: [],\n properties: {}\n };\n for (const _parameter of parameters) {\n const parameter = _parameter;\n if (parameter.in !== 'query') continue;\n const name = parameter.name;\n const fieldSchema = parameter.schema;\n schema.properties[name] = fieldSchema;\n if (parameter.required) schema.required.push(name);\n }\n return schema;\n}\nexport function getSchemaOfRequestQueryFilter(operationObject, options) {\n const parameters = operationObject?.parameters;\n if (!parameters) return;\n const schema = {\n type: 'object',\n required: [],\n properties: {}\n };\n for (const _parameter of parameters) {\n const parameter = _parameter;\n if (parameter.in !== 'query') continue;\n const name = parameter.name;\n if (__FilterColumnsIgnore.includes(name)) continue;\n const fieldSchema = parameter.schema;\n if (options?.where === true && fieldSchema.filter?.capabilities?.where !== false || options?.order === true && fieldSchema.filter?.capabilities?.order !== false) {\n schema.properties[name] = fieldSchema;\n if (parameter.required) schema.required.push(name);\n }\n }\n return schema;\n}","var _dec, _dec2, _dec3, _dec4, _dec5, _class, _class2;\nfunction _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, (\"value\" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { isNil } from '@cabloy/utils';\nimport { cast, Use, usePrepareArg } from 'zova';\nimport { $QueryEnsureLoaded, BeanModelBase, Model } from 'zova-module-a-model';\nimport { getSchemaOfRequestBody, getSchemaOfRequestQuery, getSchemaOfRequestQueryFilter, getSchemaOfResponseBody, loadSchemaProperties, schemaToZodSchema } from '../lib/schema.js';\nconst __schemaRefPrefix = '#/components/schemas/';\nexport let ModelSdk = (_dec = Model({\n enableSelector: true\n}), _dec2 = __z_BeanInfo({\n module: \"a-openapi\"\n}), _dec3 = Use({\n beanFullName: 'a-openapi.sys.sdk'\n}), _dec4 = Reflect.metadata(\"design:type\", Function), _dec5 = Reflect.metadata(\"design:paramtypes\", []), _dec(_class = _dec2(_class = (_class2 = class ModelSdk extends BeanModelBase {\n constructor(...args) {\n super(...args);\n this._eventSsrHmrReload = void 0;\n }\n get $$sysSdk() {\n return usePrepareArg(this.selector, true);\n }\n async __init__(locale) {\n if (!locale) throw new Error('locale not specified');\n await super.__init__(locale);\n // event\n if (process.env.CLIENT && this.sys.config.ssr.hmr) {\n this._eventSsrHmrReload = this.sys.meta.event.on('a-ssrhmr:reload', async (_data, next) => {\n await this.$refetchQueries({\n queryKey: ['bootstrap']\n });\n await this.$refetchQueries({\n queryKey: ['sdk']\n });\n return next();\n });\n }\n }\n __dispose__() {\n if (this._eventSsrHmrReload) {\n this._eventSsrHmrReload();\n }\n }\n getBootstrap(resource) {\n return this.$useStateData({\n queryKey: ['bootstrap', resource],\n queryFn: async () => {\n const bootstrap = await this.$$sysSdk.loadBootstrap(this.$fetch, resource);\n if (!bootstrap) throw new Error('load bootstrap error');\n if (process.env.SERVER) {\n if (!this.ctx.meta.$ssr.cookieDisabledOnServer) {\n await $QueryEnsureLoaded(() => this.getPermissions(resource));\n }\n } else {\n await this.$refetchQueries({\n queryKey: ['permissions', resource]\n });\n }\n return bootstrap ?? null;\n },\n staleTime: Infinity\n });\n }\n getPermissions(resource) {\n return this.$useStateData({\n queryKey: ['permissions', resource],\n queryFn: async () => {\n const permissions = await this.$fetch.get(this.sys.util.apiActionPathTranslate(this.scope.config.api.permissions, {\n resource\n }), this.sys.util.apiActionConfigPrepare());\n return permissions ?? null;\n },\n staleTime: Infinity\n });\n }\n getSdk(api, apiMethod, apiOptions) {\n if (!api) throw new Error('should specify api');\n const [api2, apiMethod2] = this.$$sysSdk.prepareApiMeta(api, apiMethod);\n return this.$useStateData({\n queryKey: ['sdk', api2, apiMethod2],\n queryFn: async () => {\n const sdk = await this.$$sysSdk.loadSdk(this.$fetch, api, apiMethod, apiOptions);\n if (!sdk) throw new Error('load sdk error');\n for (const schemaName of sdk.schemas) {\n if (process.env.SERVER) {\n await $QueryEnsureLoaded(() => this.getSchema(schemaName));\n } else {\n await this.$refetchQueries({\n queryKey: ['schema', schemaName]\n });\n }\n }\n return sdk;\n },\n staleTime: Infinity\n });\n }\n getSchema(schemaName) {\n if (schemaName.startsWith(__schemaRefPrefix)) {\n schemaName = schemaName.substring(__schemaRefPrefix.length);\n }\n return this.$useStateData({\n queryKey: ['schema', schemaName],\n queryFn: async () => {\n const schema = this.$$sysSdk.getSchema(schemaName);\n return schema ?? null;\n },\n staleTime: Infinity\n });\n }\n getZodSchema(schemaName) {\n return this.$useStateComputed({\n queryKey: ['zodSchema', schemaName],\n queryFn: () => {\n const querySchema = this.getSchema(schemaName);\n if (!querySchema.data) return null;\n const zodSchema = this.schemaToZodSchema(querySchema.data);\n return zodSchema;\n }\n });\n }\n getSchemaDefaultValue(schemaName) {\n return this.$useStateComputed({\n queryKey: ['schemaDefaultValue', schemaName],\n queryFn: () => {\n const querySchema = this.getSchema(schemaName);\n if (!querySchema.data) return null;\n const schema = querySchema.data;\n // const schema = this.$$sysSdk.getSchema(schemaName);\n // if (!schema) return null;\n const defaultValues = {};\n for (const key in schema.properties) {\n const property = schema.properties[key];\n if (!isNil(property.default)) {\n defaultValues[key] = property.default;\n }\n }\n return defaultValues;\n }\n });\n }\n createApiSchemas(api, apiMethod, apiOptions) {\n // eslint-disable-next-line\n const self = this;\n const sdk = this.getSdk(api, apiMethod, apiOptions);\n return {\n get sdk() {\n return sdk;\n },\n get query() {\n const operationObject = sdk.data?.operationObject;\n return getSchemaOfRequestQuery(operationObject);\n },\n get filter() {\n const operationObject = sdk.data?.operationObject;\n return getSchemaOfRequestQueryFilter(operationObject, {\n where: true\n });\n },\n get order() {\n const operationObject = sdk.data?.operationObject;\n return getSchemaOfRequestQueryFilter(operationObject, {\n order: true\n });\n },\n get requestBody() {\n const operationObject = sdk.data?.operationObject;\n const schemaBody = getSchemaOfRequestBody(operationObject);\n const schemaName = cast(schemaBody)?.$ref;\n if (schemaName) return self.getSchema(schemaName).data;\n return schemaBody;\n },\n get responseBody() {\n const operationObject = sdk.data?.operationObject;\n const schemaBody = getSchemaOfResponseBody(operationObject);\n const schemaData = schemaBody?.properties?.data;\n const schemaName = cast(schemaData)?.$ref;\n if (schemaName) return self.getSchema(schemaName).data;\n return schemaData;\n },\n get paged() {\n const operationObject = sdk.data?.operationObject;\n const schemaBody = getSchemaOfResponseBody(operationObject);\n if (!schemaBody) return;\n const schemaName = cast(schemaBody?.properties?.data)?.items?.$ref;\n if (schemaName) return;\n // pages\n return this.responseBody;\n },\n get row() {\n const operationObject = sdk.data?.operationObject;\n const schemaBody = getSchemaOfResponseBody(operationObject);\n if (!schemaBody) return;\n // schemaData\n let schemaData;\n if (schemaBody?.properties?.data.$ref) {\n schemaData = self.getSchema(schemaBody?.properties?.data.$ref).data;\n } else {\n schemaData = schemaBody?.properties?.data;\n }\n // entry\n const schemaName = cast(schemaData)?.items?.$ref;\n if (schemaName) {\n return self.getSchema(schemaName).data;\n }\n // pages\n const schemaRow = cast(schemaData?.properties?.list)?.items;\n if (schemaRow?.$ref) {\n return self.getSchema(schemaRow?.$ref).data;\n }\n return schemaRow;\n }\n };\n }\n loadSchemaProperties(schema, schemaScene) {\n return loadSchemaProperties(schema, schemaName => this.getSchema(schemaName).data, schemaScene);\n }\n schemaToZodSchema(schema) {\n return schemaToZodSchema(schema, schemaName => this.getSchema(schemaName).data);\n }\n}, _applyDecoratedDescriptor(_class2.prototype, \"$$sysSdk\", [_dec3, _dec4, _dec5], Object.getOwnPropertyDescriptor(_class2.prototype, \"$$sysSdk\"), _class2.prototype), _class2)) || _class) || _class);","export const SymbolOpenapiSchemaName = '__schemaName__';","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { shallowReactive } from 'vue';\nimport { BeanBase } from 'zova';\nimport { Sys } from 'zova-module-a-bean';\nimport { SymbolOpenapiSchemaName } from '../types/sdk.js';\n\n// const PATH_PARAM_RE = /\\{([^{}/]+)\\}/g;\n\nexport let SysSdk = (_dec = Sys(), _dec2 = __z_BeanInfo({\n module: \"a-openapi\"\n}), _dec(_class = _dec2(_class = class SysSdk extends BeanBase {\n constructor(...args) {\n super(...args);\n this.locale = void 0;\n this.bootstraps = void 0;\n this.schemas = void 0;\n this.sdks = void 0;\n this._eventSsrHmrReload = void 0;\n this._fetch = void 0;\n }\n async __init__(locale) {\n this.locale = locale;\n this.bootstraps = shallowReactive({});\n this.schemas = shallowReactive({});\n this.sdks = shallowReactive({});\n // event\n if (this.sys.config.ssr.hmr) {\n this._eventSsrHmrReload = this.sys.meta.event.on('a-ssrhmr:reload', async (_data, next) => {\n await this.reload();\n return next();\n });\n }\n }\n __dispose__() {\n if (this._eventSsrHmrReload) {\n this._eventSsrHmrReload();\n }\n }\n async reload() {\n // server\n if (process.env.SERVER) {\n this.bootstraps = shallowReactive({});\n this.schemas = shallowReactive({});\n this.sdks = shallowReactive({});\n return;\n }\n // client\n // bootstraps\n const bootstraps = this.bootstraps;\n this.bootstraps = shallowReactive({});\n for (const resource in bootstraps) {\n await this.loadBootstrap(this._fetch, resource);\n }\n // sdks\n const sdks = this.sdks;\n this.sdks = shallowReactive({});\n for (const api in sdks) {\n for (const apiMethod in sdks[api]) {\n await this.loadSdk(this._fetch, api, apiMethod, {\n authToken: false\n });\n }\n }\n }\n getBootstrap(resource) {\n return this.bootstraps[resource];\n }\n getSdk(api, apiMethod) {\n if (!api) return;\n const [api2, apiMethod2] = this.prepareApiMeta(api, apiMethod);\n return this.sdks[api2]?.[apiMethod2];\n }\n getSchema(schemaName) {\n return this.schemas[schemaName];\n }\n async loadBootstrap($fetch, resource) {\n if (process.env.CLIENT) {\n this._fetch = $fetch;\n }\n if (!this.bootstraps[resource]) {\n this.bootstraps[resource] = await $fetch.get(this.sys.util.apiActionPathTranslate(this.scope.config.api.bootstrap, {\n resource\n }), this.sys.util.apiActionConfigPrepare(undefined, undefined, false));\n }\n return this.bootstraps[resource];\n }\n async loadSdk($fetch, api, apiMethod, apiOptions) {\n if (process.env.CLIENT) {\n this._fetch = $fetch;\n }\n if (!api) return;\n const [api2, apiMethod2] = this.prepareApiMeta(api, apiMethod);\n if (this.sdks[api2]?.[apiMethod2]) return this.sdks[api2][apiMethod2];\n // params\n const params = [this.sys.util.apiActionPathTranslate(api2)];\n // body\n if (!['get', 'delete'].includes(apiMethod2)) {\n params.push(undefined);\n }\n // options\n const options = {\n authToken: apiOptions?.authToken,\n openapiSchema: true,\n headers: {}\n };\n const localeKey = this.sys.env.APP_LOCALE_HEADER_KEY;\n if (localeKey) {\n options.headers[localeKey] = this.locale;\n }\n params.push(this.sys.util.apiActionConfigPrepare(undefined, options));\n const data = await $fetch[apiMethod2](...params);\n // schemas\n const schemaNames = [];\n const schemas = data.doc.components?.schemas;\n if (schemas) {\n for (const key in schemas) {\n const schema = schemas[key];\n if (!schema[SymbolOpenapiSchemaName]) {\n schema[SymbolOpenapiSchemaName] = key;\n }\n this.schemas[key] = schema;\n schemaNames.push(key);\n }\n }\n // paths\n const paths = data.doc.paths;\n if (paths) {\n for (const key in paths) {\n // const path = key.replace(PATH_PARAM_RE, ':$1');\n if (!this.sdks[api2]) this.sdks[api2] = shallowReactive({});\n for (const method in paths[key]) {\n this.sdks[api2][method] = {\n schemas: schemaNames,\n operationObject: paths[key][method],\n meta: data.meta\n };\n }\n }\n }\n // ok\n return this.sdks[api2][apiMethod2];\n }\n prepareApiMeta(api, apiMethod) {\n return [api, apiMethod ?? 'get'];\n }\n}) || _class) || _class);","export const config = _sys => {\n return {\n formProvider: {},\n api: {\n bootstrap: '/api/openapischema/resource/bootstrap/:resource',\n permissions: '/api/home/base/permission/:resource'\n }\n };\n};","import { ref, watch } from 'vue';\nimport { BeanSimple } from 'zova';\nexport class Monkey extends BeanSimple {\n constructor(...args) {\n super(...args);\n this._modelSdk = ref();\n }\n async beanInit(bean, beanInstance) {\n const self = this;\n // $sdk\n bean.defineProperty(beanInstance, '$sdk', {\n enumerable: false,\n configurable: true,\n get() {\n return self._modelSdk;\n }\n });\n }\n async appInitialize() {\n await this._loadSdk();\n this.ctx.util.instanceScope(() => {\n watch(() => {\n return this.app.meta.locale.current;\n }, async () => {\n await this._loadSdk();\n });\n });\n }\n async _loadSdk() {\n this._modelSdk.value = await this.app.bean._getBeanSelector('a-openapi.model.sdk', true, this.app.meta.locale.current);\n }\n}","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\n// eslint-disable\n/** model: begin */\nexport * from '../model/sdk.js';\nimport 'zova-module-a-model';\n/** model: end */\n/** model: begin */\nimport { ModelSdk } from '../model/sdk.js';\nimport 'zova';\n/** model: end */\n/** sys: begin */\nexport * from '../bean/sys.sdk.js';\nimport 'zova';\n/** sys: end */\n/** sys: begin */\nimport { SysSdk } from '../bean/sys.sdk.js';\nimport 'zova';\n/** sys: end */\n/** config: begin */\nexport * from '../config/config.js';\n/** config: end */\n/** monkey: begin */\nexport * from '../monkey.js';\n/** monkey: end */\n/** scope: begin */\nimport { BeanScopeBase } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\nexport let ScopeModuleAOpenapi = (_dec = Scope(), _dec2 = __z_BeanInfo({\n module: \"a-openapi\"\n}), _dec(_class = _dec2(_class = class ScopeModuleAOpenapi extends BeanScopeBase {}) || _class) || _class);\nimport 'zova';\n\n/** scope: end */","import 'openapi3-ts/oas30';\nimport 'openapi3-ts/oas31';\nexport const renderFormFieldTopPropsSystem = ['order', 'table', 'form', 'form-view', 'form-create', 'filter'];\nexport const renderTableColumnTopPropsSystem = ['order', 'table', 'form', 'form-view', 'form-create', 'filter'];\n\n// | 'text'\n// | 'captcha'\n// | 'currency'\n// | 'date'\n// | 'dateRange'\n// | 'toggle'\n// | 'select'\n// | 'textarea'\n// | 'resourcePicker';\n// | 'checkbox';\n// | 'radio'\n// | 'switch';\n// | 'image'\n// | 'file'\n// | 'color'\n// | 'password'\n// | 'email'\n// | 'url';\n\n// form\n\n// should use input for config.ts of a-openapi\n\n// | 'input'\n// | 'textarea'\n// | 'select';\n\n// table"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/types/database.ts","../src/lib/schema.ts","../src/model/sdk.ts","../src/types/sdk.ts","../src/bean/sys.sdk.ts","../src/config/config.ts","../src/monkey.ts","../src/.metadata/index.ts","../src/types/rest.ts"],"sourcesContent":["export const OrderCoreBase = 100;\nexport const OrderBusinessBase = 1000;\nexport const OrderUnknownBase = 10000;\nexport const OrderMaxBase = 100000;","import jsonSchemaToZod from '@cabloy/json-schema-to-zod';\nimport { evaluateSimple } from '@cabloy/utils';\nimport { toRaw } from 'vue';\nimport { z } from 'zod';\nimport { cast, deepExtend } from 'zova';\nimport { OrderUnknownBase } from '../types/database.js';\nconst __FilterColumnsIgnore = ['columns', 'where', 'orders', 'pageNo', 'pageSize'];\nexport function loadSchemaProperties(schema, onGetSchema, schemaScene) {\n if (!schema) return;\n const properties = schema.properties;\n const result = [];\n // filter\n for (let key in properties) {\n let property = properties[key];\n if (property.$ref) {\n property = onGetSchema(property.$ref);\n }\n if (!property) continue;\n const schemaKey = key;\n const propertyRest = deepExtend({}, property.rest, schemaScene && ['form-view', 'form-create', 'filter'].includes(schemaScene) ? property.rest?.form : undefined, schemaScene ? property.rest?.[schemaScene] : undefined);\n const fieldSource = propertyRest?.fieldSource;\n if (fieldSource) {\n const parts = fieldSource.split('.');\n let propertyParent = parts[0] === schemaKey ? property : properties[parts[0]];\n if (propertyParent?.$ref) {\n propertyParent = onGetSchema(propertyParent.$ref);\n }\n property = propertyParent?.properties?.[parts[1]];\n key = fieldSource;\n }\n if (!property) continue;\n property = deepExtend({\n key\n }, property, schemaScene && ['form-view', 'form-create', 'filter'].includes(schemaScene) ? {\n rest: property.rest?.['form'] ?? {}\n } : undefined, schemaScene ? {\n rest: property.rest?.[schemaScene] ?? {}\n } : undefined);\n if (schemaKey !== key) {\n property.schemaKey = schemaKey;\n }\n const propertyExisting = result.find(item => item.key === key);\n if (propertyExisting) {\n propertyExisting.schemaKeys = [...(propertyExisting.schemaKeys ?? []), schemaKey];\n continue;\n }\n result.push(property);\n }\n // sort\n result.sort((a, b) => {\n return (a.rest?.order ?? OrderUnknownBase) - (b.rest?.order ?? OrderUnknownBase);\n });\n // ok\n return result;\n}\nexport function schemaToZodSchema(schema, onGetSchema) {\n const schemaNormalize = _normalizeSchema(toRaw(schema), onGetSchema);\n const code = jsonSchemaToZod(schemaNormalize);\n return evaluateSimple(code, {\n z\n });\n}\nfunction _normalizeSchema(schema, onGetSchema) {\n if (!schema.properties) return schema;\n const schemaNew = Object.assign({}, schema, {\n properties: {}\n });\n for (const key in schema.properties) {\n let property = schema.properties[key];\n property = _normalizePropertySchema(property, onGetSchema);\n if (!property) continue;\n // items.$ref\n if (property.items?.$ref) {\n const propertyItems = _normalizePropertySchema(property.items, onGetSchema);\n if (!propertyItems) continue;\n property = {\n ...property,\n items: propertyItems\n };\n }\n // _normalizeSchema\n schemaNew.properties[key] = property;\n }\n return schemaNew;\n}\nfunction _normalizePropertySchema(property, onGetSchema) {\n if (property?.$ref) {\n property = onGetSchema(property.$ref);\n }\n if (!property) return;\n return _normalizeSchema(property, onGetSchema);\n}\nexport function getSchemaOfRequestBody(operationObject) {\n return cast(operationObject?.requestBody)?.content?.['application/json']?.schema;\n}\nexport function getSchemaOfResponseBody(operationObject) {\n return operationObject?.responses?.['200']?.content?.['application/json']?.schema;\n}\nexport function getSchemaOfRequestQuery(operationObject) {\n const parameters = operationObject?.parameters;\n if (!parameters) return;\n const schema = {\n type: 'object',\n required: [],\n properties: {}\n };\n for (const _parameter of parameters) {\n const parameter = _parameter;\n if (parameter.in !== 'query') continue;\n const name = parameter.name;\n const fieldSchema = parameter.schema;\n schema.properties[name] = fieldSchema;\n if (parameter.required) schema.required.push(name);\n }\n return schema;\n}\nexport function getSchemaOfRequestQueryFilter(operationObject, options) {\n const parameters = operationObject?.parameters;\n if (!parameters) return;\n const schema = {\n type: 'object',\n required: [],\n properties: {}\n };\n for (const _parameter of parameters) {\n const parameter = _parameter;\n if (parameter.in !== 'query') continue;\n const name = parameter.name;\n if (__FilterColumnsIgnore.includes(name)) continue;\n const fieldSchema = parameter.schema;\n if (options?.where === true && fieldSchema.filter?.capabilities?.where !== false || options?.order === true && fieldSchema.filter?.capabilities?.order !== false) {\n schema.properties[name] = fieldSchema;\n if (parameter.required) schema.required.push(name);\n }\n }\n return schema;\n}","var _dec, _dec2, _dec3, _dec4, _dec5, _class, _class2;\nfunction _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, (\"value\" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { isNil } from '@cabloy/utils';\nimport { cast, Use, usePrepareArg } from 'zova';\nimport { $QueryEnsureLoaded, BeanModelBase, Model } from 'zova-module-a-model';\nimport { getSchemaOfRequestBody, getSchemaOfRequestQuery, getSchemaOfRequestQueryFilter, getSchemaOfResponseBody, loadSchemaProperties, schemaToZodSchema } from '../lib/schema.js';\nconst __schemaRefPrefix = '#/components/schemas/';\nexport let ModelSdk = (_dec = Model({\n enableSelector: true\n}), _dec2 = __z_BeanInfo({\n module: \"a-openapi\"\n}), _dec3 = Use({\n beanFullName: 'a-openapi.sys.sdk'\n}), _dec4 = Reflect.metadata(\"design:type\", Function), _dec5 = Reflect.metadata(\"design:paramtypes\", []), _dec(_class = _dec2(_class = (_class2 = class ModelSdk extends BeanModelBase {\n constructor(...args) {\n super(...args);\n this._eventSsrHmrReload = void 0;\n }\n get $$sysSdk() {\n return usePrepareArg(this.selector, true);\n }\n async __init__(locale) {\n if (!locale) throw new Error('locale not specified');\n await super.__init__(locale);\n // event\n if (process.env.CLIENT && this.sys.config.ssr.hmr) {\n this._eventSsrHmrReload = this.sys.meta.event.on('a-ssrhmr:reload', async (_data, next) => {\n await this.$refetchQueries({\n queryKey: ['bootstrap']\n });\n await this.$refetchQueries({\n queryKey: ['sdk']\n });\n return next();\n });\n }\n }\n __dispose__() {\n if (this._eventSsrHmrReload) {\n this._eventSsrHmrReload();\n }\n }\n getBootstrap(resource) {\n return this.$useStateData({\n queryKey: ['bootstrap', resource],\n queryFn: async () => {\n const bootstrap = await this.$$sysSdk.loadBootstrap(this.$fetch, resource);\n if (!bootstrap) throw new Error('load bootstrap error');\n if (process.env.SERVER) {\n if (!this.ctx.meta.$ssr.cookieDisabledOnServer) {\n await $QueryEnsureLoaded(() => this.getPermissions(resource));\n }\n } else {\n await this.$refetchQueries({\n queryKey: ['permissions', resource]\n });\n }\n return bootstrap ?? null;\n },\n staleTime: Infinity\n });\n }\n getPermissions(resource) {\n return this.$useStateData({\n queryKey: ['permissions', resource],\n queryFn: async () => {\n const permissions = await this.$fetch.get(this.sys.util.apiActionPathTranslate(this.scope.config.api.permissions, {\n resource\n }), this.sys.util.apiActionConfigPrepare());\n return permissions ?? null;\n },\n staleTime: Infinity\n });\n }\n getSdk(api, apiMethod, apiOptions) {\n if (!api) throw new Error('should specify api');\n const [api2, apiMethod2] = this.$$sysSdk.prepareApiMeta(api, apiMethod);\n return this.$useStateData({\n queryKey: ['sdk', api2, apiMethod2],\n queryFn: async () => {\n const sdk = await this.$$sysSdk.loadSdk(this.$fetch, api, apiMethod, apiOptions);\n if (!sdk) throw new Error('load sdk error');\n for (const schemaName of sdk.schemas) {\n if (process.env.SERVER) {\n await $QueryEnsureLoaded(() => this.getSchema(schemaName));\n } else {\n await this.$refetchQueries({\n queryKey: ['schema', schemaName]\n });\n }\n }\n return sdk;\n },\n staleTime: Infinity\n });\n }\n getSchema(schemaName) {\n if (schemaName.startsWith(__schemaRefPrefix)) {\n schemaName = schemaName.substring(__schemaRefPrefix.length);\n }\n return this.$useStateData({\n queryKey: ['schema', schemaName],\n queryFn: async () => {\n const schema = this.$$sysSdk.getSchema(schemaName);\n return schema ?? null;\n },\n staleTime: Infinity\n });\n }\n getZodSchema(schemaName) {\n return this.$useStateComputed({\n queryKey: ['zodSchema', schemaName],\n queryFn: () => {\n const querySchema = this.getSchema(schemaName);\n if (!querySchema.data) return null;\n const zodSchema = this.schemaToZodSchema(querySchema.data);\n return zodSchema;\n }\n });\n }\n getSchemaDefaultValue(schemaName) {\n return this.$useStateComputed({\n queryKey: ['schemaDefaultValue', schemaName],\n queryFn: () => {\n const querySchema = this.getSchema(schemaName);\n if (!querySchema.data) return null;\n const schema = querySchema.data;\n // const schema = this.$$sysSdk.getSchema(schemaName);\n // if (!schema) return null;\n const defaultValues = {};\n for (const key in schema.properties) {\n const property = schema.properties[key];\n if (!isNil(property.default)) {\n defaultValues[key] = property.default;\n }\n }\n return defaultValues;\n }\n });\n }\n createApiSchemas(api, apiMethod, apiOptions) {\n // eslint-disable-next-line\n const self = this;\n const sdk = this.getSdk(api, apiMethod, apiOptions);\n return {\n get sdk() {\n return sdk;\n },\n get query() {\n const operationObject = sdk.data?.operationObject;\n return getSchemaOfRequestQuery(operationObject);\n },\n get filter() {\n const operationObject = sdk.data?.operationObject;\n return getSchemaOfRequestQueryFilter(operationObject, {\n where: true\n });\n },\n get order() {\n const operationObject = sdk.data?.operationObject;\n return getSchemaOfRequestQueryFilter(operationObject, {\n order: true\n });\n },\n get requestBody() {\n const operationObject = sdk.data?.operationObject;\n const schemaBody = getSchemaOfRequestBody(operationObject);\n const schemaName = cast(schemaBody)?.$ref;\n if (schemaName) return self.getSchema(schemaName).data;\n return schemaBody;\n },\n get responseBody() {\n const operationObject = sdk.data?.operationObject;\n const schemaBody = getSchemaOfResponseBody(operationObject);\n const schemaData = schemaBody?.properties?.data;\n const schemaName = cast(schemaData)?.$ref;\n if (schemaName) return self.getSchema(schemaName).data;\n return schemaData;\n },\n get paged() {\n const operationObject = sdk.data?.operationObject;\n const schemaBody = getSchemaOfResponseBody(operationObject);\n if (!schemaBody) return;\n const schemaName = cast(schemaBody?.properties?.data)?.items?.$ref;\n if (schemaName) return;\n // pages\n return this.responseBody;\n },\n get row() {\n const operationObject = sdk.data?.operationObject;\n const schemaBody = getSchemaOfResponseBody(operationObject);\n if (!schemaBody) return;\n // schemaData\n let schemaData;\n if (schemaBody?.properties?.data.$ref) {\n schemaData = self.getSchema(schemaBody?.properties?.data.$ref).data;\n } else {\n schemaData = schemaBody?.properties?.data;\n }\n // entry\n const schemaName = cast(schemaData)?.items?.$ref;\n if (schemaName) {\n return self.getSchema(schemaName).data;\n }\n // pages\n const schemaRow = cast(schemaData?.properties?.list)?.items;\n if (schemaRow?.$ref) {\n return self.getSchema(schemaRow?.$ref).data;\n }\n return schemaRow;\n }\n };\n }\n loadSchemaProperties(schema, schemaScene) {\n return loadSchemaProperties(schema, schemaName => this.getSchema(schemaName).data, schemaScene);\n }\n schemaToZodSchema(schema) {\n return schemaToZodSchema(schema, schemaName => this.getSchema(schemaName).data);\n }\n}, _applyDecoratedDescriptor(_class2.prototype, \"$$sysSdk\", [_dec3, _dec4, _dec5], Object.getOwnPropertyDescriptor(_class2.prototype, \"$$sysSdk\"), _class2.prototype), _class2)) || _class) || _class);","export const SymbolOpenapiSchemaName = '__schemaName__';","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { shallowReactive } from 'vue';\nimport { BeanBase } from 'zova';\nimport { Sys } from 'zova-module-a-bean';\nimport { SymbolOpenapiSchemaName } from '../types/sdk.js';\n\n// const PATH_PARAM_RE = /\\{([^{}/]+)\\}/g;\n\nexport let SysSdk = (_dec = Sys(), _dec2 = __z_BeanInfo({\n module: \"a-openapi\"\n}), _dec(_class = _dec2(_class = class SysSdk extends BeanBase {\n constructor(...args) {\n super(...args);\n this.locale = void 0;\n this.bootstraps = void 0;\n this.schemas = void 0;\n this.sdks = void 0;\n this._eventSsrHmrReload = void 0;\n this._fetch = void 0;\n }\n async __init__(locale) {\n this.locale = locale;\n this.bootstraps = shallowReactive({});\n this.schemas = shallowReactive({});\n this.sdks = shallowReactive({});\n // event\n if (this.sys.config.ssr.hmr) {\n this._eventSsrHmrReload = this.sys.meta.event.on('a-ssrhmr:reload', async (_data, next) => {\n await this.reload();\n return next();\n });\n }\n }\n __dispose__() {\n if (this._eventSsrHmrReload) {\n this._eventSsrHmrReload();\n }\n }\n async reload() {\n // server\n if (process.env.SERVER) {\n this.bootstraps = shallowReactive({});\n this.schemas = shallowReactive({});\n this.sdks = shallowReactive({});\n return;\n }\n // client\n // bootstraps\n const bootstraps = this.bootstraps;\n this.bootstraps = shallowReactive({});\n for (const resource in bootstraps) {\n await this.loadBootstrap(this._fetch, resource);\n }\n // sdks\n const sdks = this.sdks;\n this.sdks = shallowReactive({});\n for (const api in sdks) {\n for (const apiMethod in sdks[api]) {\n await this.loadSdk(this._fetch, api, apiMethod, {\n authToken: false\n });\n }\n }\n }\n getBootstrap(resource) {\n return this.bootstraps[resource];\n }\n getSdk(api, apiMethod) {\n if (!api) return;\n const [api2, apiMethod2] = this.prepareApiMeta(api, apiMethod);\n return this.sdks[api2]?.[apiMethod2];\n }\n getSchema(schemaName) {\n return this.schemas[schemaName];\n }\n async loadBootstrap($fetch, resource) {\n if (process.env.CLIENT) {\n this._fetch = $fetch;\n }\n if (!this.bootstraps[resource]) {\n this.bootstraps[resource] = await $fetch.get(this.sys.util.apiActionPathTranslate(this.scope.config.api.bootstrap, {\n resource\n }), this.sys.util.apiActionConfigPrepare(undefined, undefined, false));\n }\n return this.bootstraps[resource];\n }\n async loadSdk($fetch, api, apiMethod, apiOptions) {\n if (process.env.CLIENT) {\n this._fetch = $fetch;\n }\n if (!api) return;\n const [api2, apiMethod2] = this.prepareApiMeta(api, apiMethod);\n if (this.sdks[api2]?.[apiMethod2]) return this.sdks[api2][apiMethod2];\n // params\n const params = [this.sys.util.apiActionPathTranslate(api2)];\n // body\n if (!['get', 'delete'].includes(apiMethod2)) {\n params.push(undefined);\n }\n // options\n const options = {\n authToken: apiOptions?.authToken,\n openapiSchema: true,\n headers: {}\n };\n const localeKey = this.sys.env.APP_LOCALE_HEADER_KEY;\n if (localeKey) {\n options.headers[localeKey] = this.locale;\n }\n params.push(this.sys.util.apiActionConfigPrepare(undefined, options));\n const data = await $fetch[apiMethod2](...params);\n // schemas\n const schemaNames = [];\n const schemas = data.doc.components?.schemas;\n if (schemas) {\n for (const key in schemas) {\n const schema = schemas[key];\n if (!schema[SymbolOpenapiSchemaName]) {\n schema[SymbolOpenapiSchemaName] = key;\n }\n this.schemas[key] = schema;\n schemaNames.push(key);\n }\n }\n // paths\n const paths = data.doc.paths;\n if (paths) {\n for (const key in paths) {\n // const path = key.replace(PATH_PARAM_RE, ':$1');\n if (!this.sdks[api2]) this.sdks[api2] = shallowReactive({});\n for (const method in paths[key]) {\n this.sdks[api2][method] = {\n schemas: schemaNames,\n operationObject: paths[key][method],\n meta: data.meta\n };\n }\n }\n }\n // ok\n return this.sdks[api2][apiMethod2];\n }\n prepareApiMeta(api, apiMethod) {\n return [api, apiMethod ?? 'get'];\n }\n}) || _class) || _class);","export const config = _sys => {\n return {\n formProvider: {},\n api: {\n bootstrap: '/api/openapischema/resource/bootstrap/:resource',\n permissions: '/api/home/base/permission/:resource'\n }\n };\n};","import { ref, watch } from 'vue';\nimport { BeanSimple } from 'zova';\nexport class Monkey extends BeanSimple {\n constructor(...args) {\n super(...args);\n this._modelSdk = ref();\n this._sdkGeneration = 0;\n }\n async beanInit(bean, beanInstance) {\n const self = this;\n // $sdk\n bean.defineProperty(beanInstance, '$sdk', {\n enumerable: false,\n configurable: true,\n get() {\n return self._modelSdk;\n }\n });\n }\n async appInitialize() {\n await this._loadSdk();\n this.ctx.util.instanceScope(() => {\n watch(() => {\n return this.app.meta.locale.current;\n }, async () => {\n await this._loadSdk();\n });\n });\n }\n async _loadSdk() {\n const generation = ++this._sdkGeneration;\n const locale = this.app.meta.locale.current;\n const sdk = await this.app.bean._getBeanSelector('a-openapi.model.sdk', true, locale);\n if (generation === this._sdkGeneration && locale === this.app.meta.locale.current) {\n this._modelSdk.value = sdk;\n }\n }\n}","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\n// eslint-disable\n/** model: begin */\nexport * from '../model/sdk.js';\nimport 'zova-module-a-model';\n/** model: end */\n/** model: begin */\nimport { ModelSdk } from '../model/sdk.js';\nimport 'zova';\n/** model: end */\n/** sys: begin */\nexport * from '../bean/sys.sdk.js';\nimport 'zova';\n/** sys: end */\n/** sys: begin */\nimport { SysSdk } from '../bean/sys.sdk.js';\nimport 'zova';\n/** sys: end */\n/** config: begin */\nexport * from '../config/config.js';\n/** config: end */\n/** monkey: begin */\nexport * from '../monkey.js';\n/** monkey: end */\n/** scope: begin */\nimport { BeanScopeBase } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\nexport let ScopeModuleAOpenapi = (_dec = Scope(), _dec2 = __z_BeanInfo({\n module: \"a-openapi\"\n}), _dec(_class = _dec2(_class = class ScopeModuleAOpenapi extends BeanScopeBase {}) || _class) || _class);\nimport 'zova';\n\n/** scope: end */","import 'openapi3-ts/oas30';\nimport 'openapi3-ts/oas31';\nexport const renderFormFieldTopPropsSystem = ['draft', 'order', 'table', 'form', 'form-view', 'form-create', 'filter'];\nexport const renderTableColumnTopPropsSystem = ['order', 'table', 'form', 'form-view', 'form-create', 'filter'];\n\n// | 'text'\n// | 'captcha'\n// | 'currency'\n// | 'date'\n// | 'dateRange'\n// | 'toggle'\n// | 'select'\n// | 'textarea'\n// | 'resourcePicker';\n// | 'checkbox';\n// | 'radio'\n// | 'switch';\n// | 'image'\n// | 'file'\n// | 'color'\n// | 'password'\n// | 'email'\n// | 'url';\n\n// form\n\n// should use input for config.ts of a-openapi\n\n// | 'input'\n// | 'textarea'\n// | 'select';\n\n// table"],"mappings":"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"}
|
package/dist/monkey.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { BeanBase, BeanContainer, IMonkeyAppInitialize, IMonkeyBeanInit } f
|
|
|
2
2
|
import { BeanSimple } from 'zova';
|
|
3
3
|
export declare class Monkey extends BeanSimple implements IMonkeyBeanInit, IMonkeyAppInitialize {
|
|
4
4
|
private _modelSdk;
|
|
5
|
+
private _sdkGeneration;
|
|
5
6
|
beanInit(bean: BeanContainer, beanInstance: BeanBase): Promise<void>;
|
|
6
7
|
appInitialize(): Promise<void>;
|
|
7
8
|
private _loadSdk;
|
package/dist/monkey.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monkey.d.ts","sourceRoot":"","sources":["../src/monkey.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAG3F,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAIlC,qBAAa,MAAO,SAAQ,UAAW,YAAW,eAAe,EAAE,oBAAoB;IACrF,OAAO,CAAC,SAAS,CAAoC;
|
|
1
|
+
{"version":3,"file":"monkey.d.ts","sourceRoot":"","sources":["../src/monkey.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAG3F,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAIlC,qBAAa,MAAO,SAAQ,UAAW,YAAW,eAAe,EAAE,oBAAoB;IACrF,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,cAAc,CAAK;IAErB,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ;IAYpD,aAAa;YAcL,QAAQ;CAQvB"}
|
package/dist/types/rest.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ export interface ISchemaObjectExtensionFieldRest extends ITableColumnOptions {
|
|
|
28
28
|
'visible'?: boolean;
|
|
29
29
|
'disableNotifyChanged'?: boolean;
|
|
30
30
|
'readonly'?: boolean;
|
|
31
|
+
'draft'?: boolean;
|
|
31
32
|
'onEffect'?: TypeFormFieldOnEffect;
|
|
32
33
|
'render'?: TypeFormFieldRenderComponentNormal | TypeTableCellRenderComponentNormal;
|
|
33
34
|
'table'?: Omit<ISchemaObjectExtensionFieldRest, TypeSchemaScene>;
|
package/dist/types/rest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../src/types/rest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,MAAM,MAAM,CAAC;AAC3F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,OAAO,mBAAmB,CAAC;AAC3B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAE7E,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;AAEzD,MAAM,WAAW,kCAAmC,SAAQ,wBAAwB;CAAG;AAEvF,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC/D,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpD,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,+BAAgC,SAAQ,mBAAmB;IAC1E,QAAQ,CAAC,EAAE,gCAAgC,EAAE,CAAC;IAC9C,aAAa,CAAC,EAAE,eAAe,CAAC;IAEhC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,qBAAqB,CAAC;IAEnC,QAAQ,CAAC,EAAE,kCAAkC,GAAG,kCAAkC,CAAC;IACnF,OAAO,CAAC,EAAE,IAAI,CAAC,+BAA+B,EAAE,eAAe,CAAC,CAAC;IACjE,MAAM,CAAC,EAAE,IAAI,CAAC,+BAA+B,EAAE,eAAe,CAAC,CAAC;IAChE,WAAW,CAAC,EAAE,IAAI,CAAC,+BAA+B,EAAE,eAAe,CAAC,CAAC;IACrE,aAAa,CAAC,EAAE,IAAI,CAAC,+BAA+B,EAAE,eAAe,CAAC,CAAC;IACvE,QAAQ,CAAC,EAAE,IAAI,CAAC,+BAA+B,EAAE,eAAe,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,6CAA6C;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,KAAK,CAAC,EAAE,OAAO,CAAC;CAEjB;AAED,MAAM,WAAW,iCAAiC;IAChD,YAAY,CAAC,EAAE,6CAA6C,CAAC;CAC9D;AAED,MAAM,WAAW,2BAA4B,SAAQ,YAAY;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,+BAA+B,CAAC;IACvC,MAAM,CAAC,EAAE,iCAAiC,CAAC;CAC5C;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,mBAAmB,CAAC;AAC5D,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,WAAW,GAAG,aAAa,GAAG,QAAQ,CAAC;AAElF,eAAO,MAAM,6BAA6B,
|
|
1
|
+
{"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../src/types/rest.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/monkey.ts
CHANGED
|
@@ -8,6 +8,7 @@ import type { ModelSdk } from './model/sdk.js';
|
|
|
8
8
|
|
|
9
9
|
export class Monkey extends BeanSimple implements IMonkeyBeanInit, IMonkeyAppInitialize {
|
|
10
10
|
private _modelSdk: Ref<ModelSdk | undefined> = ref();
|
|
11
|
+
private _sdkGeneration = 0;
|
|
11
12
|
|
|
12
13
|
async beanInit(bean: BeanContainer, beanInstance: BeanBase) {
|
|
13
14
|
const self = this;
|
|
@@ -36,10 +37,11 @@ export class Monkey extends BeanSimple implements IMonkeyBeanInit, IMonkeyAppIni
|
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
private async _loadSdk() {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
const generation = ++this._sdkGeneration;
|
|
41
|
+
const locale = this.app.meta.locale.current;
|
|
42
|
+
const sdk = await this.app.bean._getBeanSelector('a-openapi.model.sdk', true, locale);
|
|
43
|
+
if (generation === this._sdkGeneration && locale === this.app.meta.locale.current) {
|
|
44
|
+
this._modelSdk.value = sdk;
|
|
45
|
+
}
|
|
44
46
|
}
|
|
45
47
|
}
|
package/src/types/rest.ts
CHANGED
|
@@ -35,6 +35,7 @@ export interface ISchemaObjectExtensionFieldRest extends ITableColumnOptions {
|
|
|
35
35
|
'visible'?: boolean;
|
|
36
36
|
'disableNotifyChanged'?: boolean;
|
|
37
37
|
'readonly'?: boolean;
|
|
38
|
+
'draft'?: boolean;
|
|
38
39
|
'onEffect'?: TypeFormFieldOnEffect;
|
|
39
40
|
//
|
|
40
41
|
'render'?: TypeFormFieldRenderComponentNormal | TypeTableCellRenderComponentNormal;
|
|
@@ -70,6 +71,7 @@ export type TypeSchemaScene = 'table' | TypeFormSchemaScene;
|
|
|
70
71
|
export type TypeFormSchemaScene = 'form' | 'form-view' | 'form-create' | 'filter';
|
|
71
72
|
|
|
72
73
|
export const renderFormFieldTopPropsSystem = [
|
|
74
|
+
'draft',
|
|
73
75
|
'order',
|
|
74
76
|
'table',
|
|
75
77
|
'form',
|