@statezero/core 0.2.37 → 0.2.38
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/adaptors/vue/components/LayoutRenderer.js +166 -0
- package/dist/adaptors/vue/components/defaults/AlertElement.js +31 -0
- package/dist/adaptors/vue/components/defaults/DisplayElement.js +44 -0
- package/dist/adaptors/vue/components/defaults/DividerElement.js +10 -0
- package/dist/adaptors/vue/components/defaults/ErrorBlock.js +24 -0
- package/dist/adaptors/vue/components/defaults/GroupElement.js +41 -0
- package/dist/adaptors/vue/components/defaults/LabelElement.js +21 -0
- package/dist/adaptors/vue/components/defaults/TabsElement.js +38 -0
- package/package.json +6 -4
- package/dist/actions/backend1/django_app/calculate-hash.d.ts +0 -57
- package/dist/actions/backend1/django_app/calculate-hash.js +0 -80
- package/dist/actions/backend1/django_app/calculate-hash.schema.json +0 -148
- package/dist/actions/backend1/django_app/get-current-username.d.ts +0 -29
- package/dist/actions/backend1/django_app/get-current-username.js +0 -65
- package/dist/actions/backend1/django_app/get-current-username.schema.json +0 -47
- package/dist/actions/backend1/django_app/get-server-status.d.ts +0 -38
- package/dist/actions/backend1/django_app/get-server-status.js +0 -68
- package/dist/actions/backend1/django_app/get-server-status.schema.json +0 -93
- package/dist/actions/backend1/django_app/get-user-info.d.ts +0 -44
- package/dist/actions/backend1/django_app/get-user-info.js +0 -70
- package/dist/actions/backend1/django_app/get-user-info.schema.json +0 -127
- package/dist/actions/backend1/django_app/index.d.ts +0 -1
- package/dist/actions/backend1/django_app/index.js +0 -6
- package/dist/actions/backend1/django_app/process-data.d.ts +0 -51
- package/dist/actions/backend1/django_app/process-data.js +0 -78
- package/dist/actions/backend1/django_app/process-data.schema.json +0 -117
- package/dist/actions/backend1/django_app/send-notification.d.ts +0 -55
- package/dist/actions/backend1/django_app/send-notification.js +0 -81
- package/dist/actions/backend1/django_app/send-notification.schema.json +0 -175
- package/dist/actions/backend1/index.d.ts +0 -1
- package/dist/actions/backend1/index.js +0 -1
- package/dist/actions/default/django_app/calculate-hash.d.ts +0 -57
- package/dist/actions/default/django_app/calculate-hash.js +0 -80
- package/dist/actions/default/django_app/calculate-hash.schema.json +0 -148
- package/dist/actions/default/django_app/get-current-username.d.ts +0 -29
- package/dist/actions/default/django_app/get-current-username.js +0 -65
- package/dist/actions/default/django_app/get-current-username.schema.json +0 -47
- package/dist/actions/default/django_app/get-server-status.d.ts +0 -38
- package/dist/actions/default/django_app/get-server-status.js +0 -68
- package/dist/actions/default/django_app/get-server-status.schema.json +0 -93
- package/dist/actions/default/django_app/get-user-info.d.ts +0 -44
- package/dist/actions/default/django_app/get-user-info.js +0 -70
- package/dist/actions/default/django_app/get-user-info.schema.json +0 -127
- package/dist/actions/default/django_app/index.d.ts +0 -1
- package/dist/actions/default/django_app/index.js +0 -6
- package/dist/actions/default/django_app/process-data.d.ts +0 -51
- package/dist/actions/default/django_app/process-data.js +0 -78
- package/dist/actions/default/django_app/process-data.schema.json +0 -117
- package/dist/actions/default/django_app/send-notification.d.ts +0 -55
- package/dist/actions/default/django_app/send-notification.js +0 -81
- package/dist/actions/default/django_app/send-notification.schema.json +0 -175
- package/dist/actions/default/index.d.ts +0 -1
- package/dist/actions/default/index.js +0 -1
- package/dist/actions/index.d.ts +0 -1
- package/dist/actions/index.js +0 -5
- package/dist/adaptors/react/composables.d.ts +0 -1
- package/dist/adaptors/react/composables.js +0 -4
- package/dist/adaptors/react/index.d.ts +0 -1
- package/dist/adaptors/react/index.js +0 -1
- package/dist/adaptors/vue/components/LayoutRenderer.vue +0 -361
- package/dist/adaptors/vue/components/defaults/AlertElement.vue +0 -38
- package/dist/adaptors/vue/components/defaults/DisplayElement.vue +0 -57
- package/dist/adaptors/vue/components/defaults/DividerElement.vue +0 -13
- package/dist/adaptors/vue/components/defaults/ErrorBlock.vue +0 -28
- package/dist/adaptors/vue/components/defaults/GroupElement.vue +0 -53
- package/dist/adaptors/vue/components/defaults/LabelElement.vue +0 -25
- package/dist/adaptors/vue/components/defaults/TabsElement.vue +0 -54
- package/dist/adaptors/vue/components/defaults/index.d.ts +0 -7
- package/dist/adaptors/vue/components/defaults/index.js +0 -31
- package/dist/adaptors/vue/components/index.d.ts +0 -1
- package/dist/adaptors/vue/components/index.js +0 -7
- package/dist/adaptors/vue/composables.d.ts +0 -2
- package/dist/adaptors/vue/composables.js +0 -44
- package/dist/adaptors/vue/index.d.ts +0 -3
- package/dist/adaptors/vue/index.js +0 -4
- package/dist/adaptors/vue/reactivity.d.ts +0 -18
- package/dist/adaptors/vue/reactivity.js +0 -132
- package/dist/cli/commands/sync.d.ts +0 -6
- package/dist/cli/commands/sync.js +0 -30
- package/dist/cli/commands/syncActions.d.ts +0 -46
- package/dist/cli/commands/syncActions.js +0 -717
- package/dist/cli/commands/syncModels.d.ts +0 -132
- package/dist/cli/commands/syncModels.js +0 -1120
- package/dist/cli/configFileLoader.d.ts +0 -10
- package/dist/cli/configFileLoader.js +0 -85
- package/dist/cli/index.d.ts +0 -2
- package/dist/cli/index.js +0 -22
- package/dist/config.d.ts +0 -57
- package/dist/config.js +0 -273
- package/dist/core/eventReceivers.d.ts +0 -185
- package/dist/core/eventReceivers.js +0 -266
- package/dist/core/utils.d.ts +0 -8
- package/dist/core/utils.js +0 -62
- package/dist/errorHandler.d.ts +0 -21
- package/dist/errorHandler.js +0 -27
- package/dist/filtering/localFiltering.d.ts +0 -110
- package/dist/filtering/localFiltering.js +0 -1080
- package/dist/flavours/django/dates.d.ts +0 -34
- package/dist/flavours/django/dates.js +0 -113
- package/dist/flavours/django/errors.d.ts +0 -138
- package/dist/flavours/django/errors.js +0 -195
- package/dist/flavours/django/f.d.ts +0 -6
- package/dist/flavours/django/f.js +0 -91
- package/dist/flavours/django/files.d.ts +0 -62
- package/dist/flavours/django/files.js +0 -355
- package/dist/flavours/django/makeApiCall.d.ts +0 -36
- package/dist/flavours/django/makeApiCall.js +0 -169
- package/dist/flavours/django/manager.d.ts +0 -204
- package/dist/flavours/django/manager.js +0 -222
- package/dist/flavours/django/model.d.ts +0 -137
- package/dist/flavours/django/model.js +0 -366
- package/dist/flavours/django/operationFactory.d.ts +0 -73
- package/dist/flavours/django/operationFactory.js +0 -248
- package/dist/flavours/django/q.d.ts +0 -70
- package/dist/flavours/django/q.js +0 -43
- package/dist/flavours/django/queryExecutor.d.ts +0 -149
- package/dist/flavours/django/queryExecutor.js +0 -590
- package/dist/flavours/django/querySet.d.ts +0 -301
- package/dist/flavours/django/querySet.js +0 -736
- package/dist/flavours/django/serializers.d.ts +0 -39
- package/dist/flavours/django/serializers.js +0 -296
- package/dist/flavours/django/tempPk.d.ts +0 -31
- package/dist/flavours/django/tempPk.js +0 -92
- package/dist/flavours/django/utils.d.ts +0 -19
- package/dist/flavours/django/utils.js +0 -29
- package/dist/index.d.ts +0 -46
- package/dist/index.js +0 -48
- package/dist/models/backend1/django_app/comprehensivemodel.d.ts +0 -894
- package/dist/models/backend1/django_app/comprehensivemodel.js +0 -71
- package/dist/models/backend1/django_app/comprehensivemodel.schema.json +0 -870
- package/dist/models/backend1/django_app/custompkmodel.d.ts +0 -92
- package/dist/models/backend1/django_app/custompkmodel.js +0 -69
- package/dist/models/backend1/django_app/custompkmodel.schema.json +0 -71
- package/dist/models/backend1/django_app/dailyrate.d.ts +0 -230
- package/dist/models/backend1/django_app/dailyrate.js +0 -71
- package/dist/models/backend1/django_app/dailyrate.schema.json +0 -212
- package/dist/models/backend1/django_app/deepmodellevel1.d.ts +0 -140
- package/dist/models/backend1/django_app/deepmodellevel1.js +0 -72
- package/dist/models/backend1/django_app/deepmodellevel1.schema.json +0 -114
- package/dist/models/backend1/django_app/deepmodellevel2.d.ts +0 -118
- package/dist/models/backend1/django_app/deepmodellevel2.js +0 -71
- package/dist/models/backend1/django_app/deepmodellevel2.schema.json +0 -92
- package/dist/models/backend1/django_app/deepmodellevel3.d.ts +0 -92
- package/dist/models/backend1/django_app/deepmodellevel3.js +0 -69
- package/dist/models/backend1/django_app/deepmodellevel3.schema.json +0 -69
- package/dist/models/backend1/django_app/dummymodel.d.ts +0 -134
- package/dist/models/backend1/django_app/dummymodel.js +0 -71
- package/dist/models/backend1/django_app/dummymodel.schema.json +0 -109
- package/dist/models/backend1/django_app/dummyrelatedmodel.d.ts +0 -92
- package/dist/models/backend1/django_app/dummyrelatedmodel.js +0 -69
- package/dist/models/backend1/django_app/dummyrelatedmodel.schema.json +0 -69
- package/dist/models/backend1/django_app/filetest.d.ts +0 -140
- package/dist/models/backend1/django_app/filetest.js +0 -69
- package/dist/models/backend1/django_app/filetest.schema.json +0 -111
- package/dist/models/backend1/django_app/index.d.ts +0 -1
- package/dist/models/backend1/django_app/index.js +0 -21
- package/dist/models/backend1/django_app/m2mdepthtestlevel1.d.ts +0 -118
- package/dist/models/backend1/django_app/m2mdepthtestlevel1.js +0 -71
- package/dist/models/backend1/django_app/m2mdepthtestlevel1.schema.json +0 -94
- package/dist/models/backend1/django_app/m2mdepthtestlevel2.d.ts +0 -118
- package/dist/models/backend1/django_app/m2mdepthtestlevel2.js +0 -71
- package/dist/models/backend1/django_app/m2mdepthtestlevel2.schema.json +0 -94
- package/dist/models/backend1/django_app/m2mdepthtestlevel3.d.ts +0 -134
- package/dist/models/backend1/django_app/m2mdepthtestlevel3.js +0 -71
- package/dist/models/backend1/django_app/m2mdepthtestlevel3.schema.json +0 -112
- package/dist/models/backend1/django_app/modelwithcustompkrelation.d.ts +0 -118
- package/dist/models/backend1/django_app/modelwithcustompkrelation.js +0 -71
- package/dist/models/backend1/django_app/modelwithcustompkrelation.schema.json +0 -93
- package/dist/models/backend1/django_app/modelwithrestrictedfields.d.ts +0 -134
- package/dist/models/backend1/django_app/modelwithrestrictedfields.js +0 -71
- package/dist/models/backend1/django_app/modelwithrestrictedfields.schema.json +0 -111
- package/dist/models/backend1/django_app/namefiltercustompkmodel.d.ts +0 -92
- package/dist/models/backend1/django_app/namefiltercustompkmodel.js +0 -69
- package/dist/models/backend1/django_app/namefiltercustompkmodel.schema.json +0 -71
- package/dist/models/backend1/django_app/order.d.ts +0 -220
- package/dist/models/backend1/django_app/order.js +0 -71
- package/dist/models/backend1/django_app/order.schema.json +0 -203
- package/dist/models/backend1/django_app/orderitem.d.ts +0 -172
- package/dist/models/backend1/django_app/orderitem.js +0 -72
- package/dist/models/backend1/django_app/orderitem.schema.json +0 -149
- package/dist/models/backend1/django_app/product.d.ts +0 -254
- package/dist/models/backend1/django_app/product.js +0 -71
- package/dist/models/backend1/django_app/product.schema.json +0 -277
- package/dist/models/backend1/django_app/productcategory.d.ts +0 -92
- package/dist/models/backend1/django_app/productcategory.js +0 -69
- package/dist/models/backend1/django_app/productcategory.schema.json +0 -70
- package/dist/models/backend1/django_app/rateplan.d.ts +0 -92
- package/dist/models/backend1/django_app/rateplan.js +0 -69
- package/dist/models/backend1/django_app/rateplan.schema.json +0 -70
- package/dist/models/backend1/django_app/restrictedfieldrelatedmodel.d.ts +0 -108
- package/dist/models/backend1/django_app/restrictedfieldrelatedmodel.js +0 -69
- package/dist/models/backend1/django_app/restrictedfieldrelatedmodel.schema.json +0 -87
- package/dist/models/backend1/fileobject.d.ts +0 -4
- package/dist/models/backend1/fileobject.js +0 -9
- package/dist/models/backend1/index.d.ts +0 -2
- package/dist/models/backend1/index.js +0 -2
- package/dist/models/default/django_app/comprehensivemodel.d.ts +0 -894
- package/dist/models/default/django_app/comprehensivemodel.js +0 -71
- package/dist/models/default/django_app/comprehensivemodel.schema.json +0 -870
- package/dist/models/default/django_app/custompkmodel.d.ts +0 -92
- package/dist/models/default/django_app/custompkmodel.js +0 -69
- package/dist/models/default/django_app/custompkmodel.schema.json +0 -71
- package/dist/models/default/django_app/dailyrate.d.ts +0 -230
- package/dist/models/default/django_app/dailyrate.js +0 -71
- package/dist/models/default/django_app/dailyrate.schema.json +0 -212
- package/dist/models/default/django_app/deepmodellevel1.d.ts +0 -128
- package/dist/models/default/django_app/deepmodellevel1.js +0 -72
- package/dist/models/default/django_app/deepmodellevel1.schema.json +0 -102
- package/dist/models/default/django_app/deepmodellevel2.d.ts +0 -106
- package/dist/models/default/django_app/deepmodellevel2.js +0 -71
- package/dist/models/default/django_app/deepmodellevel2.schema.json +0 -80
- package/dist/models/default/django_app/deepmodellevel3.d.ts +0 -80
- package/dist/models/default/django_app/deepmodellevel3.js +0 -69
- package/dist/models/default/django_app/deepmodellevel3.schema.json +0 -57
- package/dist/models/default/django_app/dummymodel.d.ts +0 -122
- package/dist/models/default/django_app/dummymodel.js +0 -71
- package/dist/models/default/django_app/dummymodel.schema.json +0 -97
- package/dist/models/default/django_app/dummyrelatedmodel.d.ts +0 -80
- package/dist/models/default/django_app/dummyrelatedmodel.js +0 -69
- package/dist/models/default/django_app/dummyrelatedmodel.schema.json +0 -57
- package/dist/models/default/django_app/filetest.d.ts +0 -128
- package/dist/models/default/django_app/filetest.js +0 -69
- package/dist/models/default/django_app/filetest.schema.json +0 -99
- package/dist/models/default/django_app/index.d.ts +0 -1
- package/dist/models/default/django_app/index.js +0 -21
- package/dist/models/default/django_app/m2mdepthtestlevel1.d.ts +0 -118
- package/dist/models/default/django_app/m2mdepthtestlevel1.js +0 -71
- package/dist/models/default/django_app/m2mdepthtestlevel1.schema.json +0 -94
- package/dist/models/default/django_app/m2mdepthtestlevel2.d.ts +0 -118
- package/dist/models/default/django_app/m2mdepthtestlevel2.js +0 -71
- package/dist/models/default/django_app/m2mdepthtestlevel2.schema.json +0 -94
- package/dist/models/default/django_app/m2mdepthtestlevel3.d.ts +0 -134
- package/dist/models/default/django_app/m2mdepthtestlevel3.js +0 -71
- package/dist/models/default/django_app/m2mdepthtestlevel3.schema.json +0 -112
- package/dist/models/default/django_app/modelwithcustompkrelation.d.ts +0 -118
- package/dist/models/default/django_app/modelwithcustompkrelation.js +0 -71
- package/dist/models/default/django_app/modelwithcustompkrelation.schema.json +0 -93
- package/dist/models/default/django_app/modelwithrestrictedfields.d.ts +0 -134
- package/dist/models/default/django_app/modelwithrestrictedfields.js +0 -71
- package/dist/models/default/django_app/modelwithrestrictedfields.schema.json +0 -111
- package/dist/models/default/django_app/namefiltercustompkmodel.d.ts +0 -92
- package/dist/models/default/django_app/namefiltercustompkmodel.js +0 -69
- package/dist/models/default/django_app/namefiltercustompkmodel.schema.json +0 -71
- package/dist/models/default/django_app/order.d.ts +0 -220
- package/dist/models/default/django_app/order.js +0 -71
- package/dist/models/default/django_app/order.schema.json +0 -203
- package/dist/models/default/django_app/orderitem.d.ts +0 -172
- package/dist/models/default/django_app/orderitem.js +0 -72
- package/dist/models/default/django_app/orderitem.schema.json +0 -149
- package/dist/models/default/django_app/product.d.ts +0 -254
- package/dist/models/default/django_app/product.js +0 -71
- package/dist/models/default/django_app/product.schema.json +0 -277
- package/dist/models/default/django_app/productcategory.d.ts +0 -92
- package/dist/models/default/django_app/productcategory.js +0 -69
- package/dist/models/default/django_app/productcategory.schema.json +0 -70
- package/dist/models/default/django_app/rateplan.d.ts +0 -92
- package/dist/models/default/django_app/rateplan.js +0 -69
- package/dist/models/default/django_app/rateplan.schema.json +0 -70
- package/dist/models/default/django_app/restrictedfieldrelatedmodel.d.ts +0 -108
- package/dist/models/default/django_app/restrictedfieldrelatedmodel.js +0 -69
- package/dist/models/default/django_app/restrictedfieldrelatedmodel.schema.json +0 -87
- package/dist/models/default/fileobject.d.ts +0 -4
- package/dist/models/default/fileobject.js +0 -9
- package/dist/models/default/index.d.ts +0 -2
- package/dist/models/default/index.js +0 -2
- package/dist/models/index.d.ts +0 -1
- package/dist/models/index.js +0 -5
- package/dist/react-entry.d.ts +0 -2
- package/dist/react-entry.js +0 -2
- package/dist/reactiveAdaptor.d.ts +0 -24
- package/dist/reactiveAdaptor.js +0 -38
- package/dist/reset.d.ts +0 -15
- package/dist/reset.js +0 -97
- package/dist/setup.d.ts +0 -15
- package/dist/setup.js +0 -33
- package/dist/syncEngine/cache/cache.d.ts +0 -75
- package/dist/syncEngine/cache/cache.js +0 -355
- package/dist/syncEngine/metrics/metricOptCalcs.d.ts +0 -79
- package/dist/syncEngine/metrics/metricOptCalcs.js +0 -284
- package/dist/syncEngine/registries/metricRegistry.d.ts +0 -58
- package/dist/syncEngine/registries/metricRegistry.js +0 -171
- package/dist/syncEngine/registries/modelStoreRegistry.d.ts +0 -11
- package/dist/syncEngine/registries/modelStoreRegistry.js +0 -63
- package/dist/syncEngine/registries/querysetStoreGraph.d.ts +0 -41
- package/dist/syncEngine/registries/querysetStoreGraph.js +0 -174
- package/dist/syncEngine/registries/querysetStoreRegistry.d.ts +0 -72
- package/dist/syncEngine/registries/querysetStoreRegistry.js +0 -335
- package/dist/syncEngine/stores/metricStore.d.ts +0 -55
- package/dist/syncEngine/stores/metricStore.js +0 -222
- package/dist/syncEngine/stores/modelStore.d.ts +0 -53
- package/dist/syncEngine/stores/modelStore.js +0 -565
- package/dist/syncEngine/stores/operation.d.ts +0 -139
- package/dist/syncEngine/stores/operation.js +0 -291
- package/dist/syncEngine/stores/operationEventHandlers.d.ts +0 -8
- package/dist/syncEngine/stores/operationEventHandlers.js +0 -322
- package/dist/syncEngine/stores/querysetStore.d.ts +0 -60
- package/dist/syncEngine/stores/querysetStore.js +0 -294
- package/dist/syncEngine/stores/reactivity.d.ts +0 -3
- package/dist/syncEngine/stores/reactivity.js +0 -4
- package/dist/syncEngine/stores/utils.d.ts +0 -14
- package/dist/syncEngine/stores/utils.js +0 -32
- package/dist/syncEngine/sync.d.ts +0 -46
- package/dist/syncEngine/sync.js +0 -389
- package/dist/testing.d.ts +0 -63
- package/dist/testing.js +0 -175
- package/dist/vue-entry.d.ts +0 -15
- package/dist/vue-entry.js +0 -7
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { computed as c, provide as q, unref as m, inject as G, onMounted as T, resolveComponent as U, createElementBlock as d, openBlock as r, Fragment as v, createBlock as y, createCommentVNode as g, resolveDynamicComponent as i, normalizeClass as F, renderList as b, withCtx as z, createVNode as H, toDisplayString as M } from "vue";
|
|
2
|
+
const N = {
|
|
3
|
+
key: 11,
|
|
4
|
+
class: "text-red-500 text-sm"
|
|
5
|
+
}, I = {
|
|
6
|
+
__name: "LayoutRenderer",
|
|
7
|
+
props: {
|
|
8
|
+
// The layout element to render (root or nested)
|
|
9
|
+
layout: { type: Object, required: !0 },
|
|
10
|
+
// Schema with field definitions (input_properties/properties)
|
|
11
|
+
schema: { type: Object, default: () => ({}) },
|
|
12
|
+
// Component registry: { Control, Display, Alert, Label, Divider, Group, Tabs, ErrorBlock }
|
|
13
|
+
components: { type: Object, required: !0 },
|
|
14
|
+
// Form data (v-model for Controls)
|
|
15
|
+
formData: { type: Object, default: () => ({}) },
|
|
16
|
+
// Workflow context (for Display elements)
|
|
17
|
+
context: { type: Object, default: () => ({}) },
|
|
18
|
+
// Errors object - can be raw DRF response: { fieldName: ['error'], non_field_errors: ['global error'] }
|
|
19
|
+
// The renderer automatically extracts non_field_errors/__all__ for the ErrorBlock
|
|
20
|
+
errors: { type: Object, default: () => ({}) },
|
|
21
|
+
// Explicit non-field errors (optional override - if not provided, extracted from errors.non_field_errors)
|
|
22
|
+
nonFieldErrors: { type: Array, default: null },
|
|
23
|
+
// Whether this is the root renderer (internal)
|
|
24
|
+
isRoot: { type: Boolean, default: !0 }
|
|
25
|
+
},
|
|
26
|
+
emits: ["update:formData"],
|
|
27
|
+
setup(e, { emit: E }) {
|
|
28
|
+
const t = e, D = E, h = c(() => {
|
|
29
|
+
var l, a;
|
|
30
|
+
if (t.nonFieldErrors !== null)
|
|
31
|
+
return t.nonFieldErrors;
|
|
32
|
+
const n = ((l = t.errors) == null ? void 0 : l.non_field_errors) || ((a = t.errors) == null ? void 0 : a.__all__);
|
|
33
|
+
return n ? Array.isArray(n) ? n.map((o) => typeof o == "string" ? o : o != null && o.message ? o.message : String(o)) : [String(n)] : [];
|
|
34
|
+
}), L = c(() => t.components), A = c(() => t.schema), R = c(() => t.formData), S = c(() => t.context), j = c(() => t.errors);
|
|
35
|
+
t.isRoot && q("layoutRenderer", {
|
|
36
|
+
components: L,
|
|
37
|
+
schema: A,
|
|
38
|
+
formData: R,
|
|
39
|
+
context: S,
|
|
40
|
+
errors: j,
|
|
41
|
+
updateField: (n, l) => {
|
|
42
|
+
const a = m(R) || {};
|
|
43
|
+
D("update:formData", { ...a, [n]: l });
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
const s = t.isRoot ? null : G("layoutRenderer", null), u = c(() => t.isRoot ? t.components : s && m(s.components) || t.components), p = c(() => t.isRoot ? t.schema : s && m(s.schema) || t.schema), x = c(() => t.isRoot ? t.formData : s && m(s.formData) || t.formData), f = c(() => t.isRoot ? t.context : s && m(s.context) || t.context), B = c(() => t.isRoot ? t.errors : s && m(s.errors) || t.errors), O = t.isRoot ? (n, l) => D("update:formData", { ...t.formData, [n]: l }) : (s == null ? void 0 : s.updateField) || (() => {
|
|
47
|
+
});
|
|
48
|
+
T(() => {
|
|
49
|
+
t.isRoot;
|
|
50
|
+
});
|
|
51
|
+
function w(n) {
|
|
52
|
+
try {
|
|
53
|
+
return new Function("formData", "context", `return ${n}`)(x.value, f.value);
|
|
54
|
+
} catch (l) {
|
|
55
|
+
return console.warn("[LayoutRenderer] Conditional eval failed:", n, l), !1;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function V(n) {
|
|
59
|
+
var a, o;
|
|
60
|
+
return (((a = p.value) == null ? void 0 : a.properties) || ((o = p.value) == null ? void 0 : o.input_properties) || {})[n] || {};
|
|
61
|
+
}
|
|
62
|
+
function $(n) {
|
|
63
|
+
var a;
|
|
64
|
+
if (n === "non_field_errors" || n === "__all__") return [];
|
|
65
|
+
const l = (a = B.value) == null ? void 0 : a[n];
|
|
66
|
+
return l ? Array.isArray(l) ? l.map((o) => typeof o == "string" ? o : o != null && o.message ? o.message : String(o)) : [String(l)] : [];
|
|
67
|
+
}
|
|
68
|
+
function C(n) {
|
|
69
|
+
if (!n) return;
|
|
70
|
+
const l = n.split(".");
|
|
71
|
+
let a = f.value;
|
|
72
|
+
for (const o of l) {
|
|
73
|
+
if (a == null) return;
|
|
74
|
+
a = a[o];
|
|
75
|
+
}
|
|
76
|
+
return a;
|
|
77
|
+
}
|
|
78
|
+
return (n, l) => {
|
|
79
|
+
const a = U("LayoutRenderer", !0);
|
|
80
|
+
return r(), d(v, null, [
|
|
81
|
+
e.isRoot && h.value.length > 0 && u.value.ErrorBlock ? (r(), y(i(u.value.ErrorBlock), {
|
|
82
|
+
key: 0,
|
|
83
|
+
errors: h.value
|
|
84
|
+
}, null, 8, ["errors"])) : g("", !0),
|
|
85
|
+
e.layout.type === "VerticalLayout" ? (r(), d("div", {
|
|
86
|
+
key: 1,
|
|
87
|
+
class: F(["sz-layout sz-layout-vertical", `sz-gap-${e.layout.gap || "md"}`])
|
|
88
|
+
}, [
|
|
89
|
+
(r(!0), d(v, null, b(e.layout.elements, (o, k) => (r(), y(a, {
|
|
90
|
+
key: k,
|
|
91
|
+
layout: o,
|
|
92
|
+
components: u.value,
|
|
93
|
+
"is-root": !1
|
|
94
|
+
}, null, 8, ["layout", "components"]))), 128))
|
|
95
|
+
], 2)) : e.layout.type === "HorizontalLayout" ? (r(), d("div", {
|
|
96
|
+
key: 2,
|
|
97
|
+
class: F(["sz-layout sz-layout-horizontal", [`sz-gap-${e.layout.gap || "md"}`, `sz-align-${e.layout.align || "start"}`]])
|
|
98
|
+
}, [
|
|
99
|
+
(r(!0), d(v, null, b(e.layout.elements, (o, k) => (r(), y(a, {
|
|
100
|
+
key: k,
|
|
101
|
+
layout: o,
|
|
102
|
+
components: u.value,
|
|
103
|
+
"is-root": !1
|
|
104
|
+
}, null, 8, ["layout", "components"]))), 128))
|
|
105
|
+
], 2)) : e.layout.type === "Group" ? (r(), y(i(u.value.Group), {
|
|
106
|
+
key: 3,
|
|
107
|
+
element: e.layout
|
|
108
|
+
}, {
|
|
109
|
+
default: z(() => [
|
|
110
|
+
e.layout.layout ? (r(), y(a, {
|
|
111
|
+
key: 0,
|
|
112
|
+
layout: e.layout.layout,
|
|
113
|
+
components: u.value,
|
|
114
|
+
"is-root": !1
|
|
115
|
+
}, null, 8, ["layout", "components"])) : g("", !0)
|
|
116
|
+
]),
|
|
117
|
+
_: 1
|
|
118
|
+
}, 8, ["element"])) : e.layout.type === "Tabs" ? (r(), y(i(u.value.Tabs), {
|
|
119
|
+
key: 4,
|
|
120
|
+
element: e.layout
|
|
121
|
+
}, {
|
|
122
|
+
tab: z(({ tab: o }) => [
|
|
123
|
+
H(a, {
|
|
124
|
+
layout: o.layout,
|
|
125
|
+
components: u.value,
|
|
126
|
+
"is-root": !1
|
|
127
|
+
}, null, 8, ["layout", "components"])
|
|
128
|
+
]),
|
|
129
|
+
_: 1
|
|
130
|
+
}, 8, ["element"])) : e.layout.type === "Conditional" ? (r(), d(v, { key: 5 }, [
|
|
131
|
+
w(e.layout.when) ? (r(), y(a, {
|
|
132
|
+
key: 0,
|
|
133
|
+
layout: e.layout.layout,
|
|
134
|
+
components: u.value,
|
|
135
|
+
"is-root": !1
|
|
136
|
+
}, null, 8, ["layout", "components"])) : g("", !0)
|
|
137
|
+
], 64)) : e.layout.type === "Control" ? (r(), y(i(u.value.Control), {
|
|
138
|
+
key: 6,
|
|
139
|
+
element: e.layout,
|
|
140
|
+
"model-value": x.value[e.layout.field_name],
|
|
141
|
+
errors: $(e.layout.field_name),
|
|
142
|
+
context: f.value,
|
|
143
|
+
"form-data": x.value,
|
|
144
|
+
schema: V(e.layout.field_name),
|
|
145
|
+
"onUpdate:modelValue": l[0] || (l[0] = (o) => m(O)(e.layout.field_name, o))
|
|
146
|
+
}, null, 8, ["element", "model-value", "errors", "context", "form-data", "schema"])) : e.layout.type === "Display" ? (r(), y(i(u.value.Display), {
|
|
147
|
+
key: 7,
|
|
148
|
+
element: e.layout,
|
|
149
|
+
context: f.value,
|
|
150
|
+
value: C(e.layout.context_path)
|
|
151
|
+
}, null, 8, ["element", "context", "value"])) : e.layout.type === "Alert" ? (r(), y(i(u.value.Alert), {
|
|
152
|
+
key: 8,
|
|
153
|
+
element: e.layout,
|
|
154
|
+
context: f.value,
|
|
155
|
+
text: e.layout.text || C(e.layout.context_path)
|
|
156
|
+
}, null, 8, ["element", "context", "text"])) : e.layout.type === "Label" ? (r(), y(i(u.value.Label), {
|
|
157
|
+
key: 9,
|
|
158
|
+
element: e.layout
|
|
159
|
+
}, null, 8, ["element"])) : e.layout.type === "Divider" ? (r(), y(i(u.value.Divider), { key: 10 })) : (r(), d("div", N, " [LayoutRenderer] Unknown element type: " + M(e.layout.type), 1))
|
|
160
|
+
], 64);
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
export {
|
|
165
|
+
I as default
|
|
166
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { createElementBlock as o, openBlock as l, normalizeClass as c, createElementVNode as s, toDisplayString as n } from "vue";
|
|
2
|
+
const i = { class: "flex-shrink-0" }, a = { class: "text-sm" }, g = {
|
|
3
|
+
__name: "AlertElement",
|
|
4
|
+
props: {
|
|
5
|
+
element: { type: Object, required: !0 },
|
|
6
|
+
context: { type: Object, default: () => ({}) },
|
|
7
|
+
text: { type: String, default: "" }
|
|
8
|
+
},
|
|
9
|
+
setup(e) {
|
|
10
|
+
const t = {
|
|
11
|
+
info: "bg-blue-500/10 border-blue-500/20 text-blue-400",
|
|
12
|
+
warning: "bg-yellow-500/10 border-yellow-500/20 text-yellow-400",
|
|
13
|
+
error: "bg-red-500/10 border-red-500/20 text-red-400",
|
|
14
|
+
success: "bg-green-500/10 border-green-500/20 text-green-400"
|
|
15
|
+
}, r = {
|
|
16
|
+
info: "ℹ️",
|
|
17
|
+
warning: "⚠️",
|
|
18
|
+
error: "❌",
|
|
19
|
+
success: "✓"
|
|
20
|
+
};
|
|
21
|
+
return (d, b) => (l(), o("div", {
|
|
22
|
+
class: c(["flex items-start gap-3 p-3 rounded-lg border", t[e.element.severity] || t.info])
|
|
23
|
+
}, [
|
|
24
|
+
s("span", i, n(r[e.element.severity] || r.info), 1),
|
|
25
|
+
s("p", a, n(e.text), 1)
|
|
26
|
+
], 2));
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
export {
|
|
30
|
+
g as default
|
|
31
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { createElementBlock as t, openBlock as n, createCommentVNode as c, createElementVNode as o, toDisplayString as l, Fragment as s } from "vue";
|
|
2
|
+
const m = { class: "space-y-1" }, u = {
|
|
3
|
+
key: 0,
|
|
4
|
+
class: "block text-sm font-medium text-muted-foreground"
|
|
5
|
+
}, i = { class: "text-sm" }, r = { key: 0 }, y = {
|
|
6
|
+
key: 1,
|
|
7
|
+
class: "text-muted-foreground italic"
|
|
8
|
+
}, x = {
|
|
9
|
+
key: 1,
|
|
10
|
+
class: "px-2 py-1 bg-muted rounded font-mono text-sm"
|
|
11
|
+
}, f = {
|
|
12
|
+
key: 2,
|
|
13
|
+
class: "flex items-center gap-2"
|
|
14
|
+
}, v = { class: "flex-1 px-2 py-1 bg-muted rounded font-mono text-xs truncate" }, b = { class: "text-xs text-muted-foreground ml-2" }, k = {
|
|
15
|
+
__name: "DisplayElement",
|
|
16
|
+
props: {
|
|
17
|
+
element: { type: Object, required: !0 },
|
|
18
|
+
context: { type: Object, default: () => ({}) },
|
|
19
|
+
value: { default: null }
|
|
20
|
+
},
|
|
21
|
+
setup(e) {
|
|
22
|
+
return (d, a) => (n(), t("div", m, [
|
|
23
|
+
e.element.label ? (n(), t("label", u, l(e.element.label), 1)) : c("", !0),
|
|
24
|
+
o("div", i, [
|
|
25
|
+
!e.element.display_component || e.element.display_component === "text" ? (n(), t(s, { key: 0 }, [
|
|
26
|
+
e.value !== null && e.value !== void 0 ? (n(), t("span", r, l(e.value), 1)) : (n(), t("span", y, "—"))
|
|
27
|
+
], 64)) : e.element.display_component === "code" ? (n(), t("code", x, l(e.value), 1)) : e.element.display_component === "copy-url" ? (n(), t("div", f, [
|
|
28
|
+
o("code", v, l(e.value), 1),
|
|
29
|
+
o("button", {
|
|
30
|
+
type: "button",
|
|
31
|
+
class: "px-2 py-1 text-xs bg-primary text-primary-foreground rounded hover:bg-primary/90",
|
|
32
|
+
onClick: a[0] || (a[0] = (p) => d.navigator.clipboard.writeText(e.value))
|
|
33
|
+
}, " Copy ")
|
|
34
|
+
])) : (n(), t(s, { key: 3 }, [
|
|
35
|
+
o("span", null, l(e.value), 1),
|
|
36
|
+
o("span", b, "(" + l(e.element.display_component) + ")", 1)
|
|
37
|
+
], 64))
|
|
38
|
+
])
|
|
39
|
+
]));
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
export {
|
|
43
|
+
k as default
|
|
44
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createElementBlock as e, createCommentVNode as d, openBlock as r, createElementVNode as o, Fragment as l, renderList as c, toDisplayString as i } from "vue";
|
|
2
|
+
const m = {
|
|
3
|
+
key: 0,
|
|
4
|
+
class: "flex items-start gap-3 p-3 rounded-lg border bg-red-500/10 border-red-500/20"
|
|
5
|
+
}, p = { class: "space-y-1" }, g = {
|
|
6
|
+
__name: "ErrorBlock",
|
|
7
|
+
props: {
|
|
8
|
+
errors: { type: Array, required: !0 }
|
|
9
|
+
},
|
|
10
|
+
setup(t) {
|
|
11
|
+
return (u, s) => t.errors.length > 0 ? (r(), e("div", m, [
|
|
12
|
+
s[0] || (s[0] = o("span", { class: "flex-shrink-0 text-red-400" }, "❌", -1)),
|
|
13
|
+
o("div", p, [
|
|
14
|
+
(r(!0), e(l, null, c(t.errors, (n, a) => (r(), e("p", {
|
|
15
|
+
key: a,
|
|
16
|
+
class: "text-sm text-red-400"
|
|
17
|
+
}, i(n), 1))), 128))
|
|
18
|
+
])
|
|
19
|
+
])) : d("", !0);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
export {
|
|
23
|
+
g as default
|
|
24
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ref as a, createElementBlock as o, openBlock as s, createElementVNode as t, withDirectives as m, normalizeClass as u, createCommentVNode as c, toDisplayString as n, renderSlot as p, vShow as f } from "vue";
|
|
2
|
+
const v = { class: "border border-border rounded-lg overflow-hidden" }, h = { class: "flex items-center justify-between" }, b = { class: "font-medium" }, g = {
|
|
3
|
+
key: 0,
|
|
4
|
+
class: "text-sm text-muted-foreground mt-0.5"
|
|
5
|
+
}, _ = {
|
|
6
|
+
key: 0,
|
|
7
|
+
class: "text-muted-foreground"
|
|
8
|
+
}, x = { class: "p-4" }, C = {
|
|
9
|
+
__name: "GroupElement",
|
|
10
|
+
props: {
|
|
11
|
+
element: { type: Object, required: !0 }
|
|
12
|
+
},
|
|
13
|
+
setup(e) {
|
|
14
|
+
const r = e, l = a(r.element.collapsed || !1);
|
|
15
|
+
function i() {
|
|
16
|
+
r.element.collapsible && (l.value = !l.value);
|
|
17
|
+
}
|
|
18
|
+
return (d, y) => (s(), o("div", v, [
|
|
19
|
+
t("div", {
|
|
20
|
+
class: u(["px-4 py-3 bg-muted/50", { "cursor-pointer hover:bg-muted/70": e.element.collapsible }]),
|
|
21
|
+
onClick: i
|
|
22
|
+
}, [
|
|
23
|
+
t("div", h, [
|
|
24
|
+
t("div", null, [
|
|
25
|
+
t("h4", b, n(e.element.label), 1),
|
|
26
|
+
e.element.description ? (s(), o("p", g, n(e.element.description), 1)) : c("", !0)
|
|
27
|
+
]),
|
|
28
|
+
e.element.collapsible ? (s(), o("span", _, n(l.value ? "▶" : "▼"), 1)) : c("", !0)
|
|
29
|
+
])
|
|
30
|
+
], 2),
|
|
31
|
+
m(t("div", x, [
|
|
32
|
+
p(d.$slots, "default")
|
|
33
|
+
], 512), [
|
|
34
|
+
[f, !l.value]
|
|
35
|
+
])
|
|
36
|
+
]));
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
export {
|
|
40
|
+
C as default
|
|
41
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { createElementBlock as n, openBlock as a, normalizeClass as o, toDisplayString as r } from "vue";
|
|
2
|
+
const i = {
|
|
3
|
+
__name: "LabelElement",
|
|
4
|
+
props: {
|
|
5
|
+
element: { type: Object, required: !0 }
|
|
6
|
+
},
|
|
7
|
+
setup(e) {
|
|
8
|
+
const t = {
|
|
9
|
+
heading: "text-lg font-semibold",
|
|
10
|
+
subheading: "text-base font-medium text-muted-foreground",
|
|
11
|
+
body: "text-sm",
|
|
12
|
+
caption: "text-xs text-muted-foreground"
|
|
13
|
+
};
|
|
14
|
+
return (s, l) => (a(), n("p", {
|
|
15
|
+
class: o(t[e.element.variant] || t.body)
|
|
16
|
+
}, r(e.element.text), 3));
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
export {
|
|
20
|
+
i as default
|
|
21
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ref as b, createElementBlock as t, openBlock as r, createElementVNode as a, Fragment as c, renderList as u, normalizeClass as m, toDisplayString as d, withDirectives as p, renderSlot as v, vShow as f } from "vue";
|
|
2
|
+
const y = { class: "flex border-b border-border" }, _ = ["onClick"], h = { class: "pt-4" }, E = {
|
|
3
|
+
__name: "TabsElement",
|
|
4
|
+
props: {
|
|
5
|
+
element: { type: Object, required: !0 }
|
|
6
|
+
},
|
|
7
|
+
setup(o) {
|
|
8
|
+
const n = b(o.element.default_tab || 0);
|
|
9
|
+
function i(l) {
|
|
10
|
+
n.value = l;
|
|
11
|
+
}
|
|
12
|
+
return (l, x) => (r(), t("div", null, [
|
|
13
|
+
a("div", y, [
|
|
14
|
+
(r(!0), t(c, null, u(o.element.tabs, (s, e) => (r(), t("button", {
|
|
15
|
+
key: e,
|
|
16
|
+
type: "button",
|
|
17
|
+
class: m(["px-4 py-2 text-sm font-medium transition-colors", [
|
|
18
|
+
n.value === e ? "text-primary border-b-2 border-primary -mb-px" : "text-muted-foreground hover:text-foreground"
|
|
19
|
+
]]),
|
|
20
|
+
onClick: (g) => i(e)
|
|
21
|
+
}, d(s.label), 11, _))), 128))
|
|
22
|
+
]),
|
|
23
|
+
a("div", h, [
|
|
24
|
+
(r(!0), t(c, null, u(o.element.tabs, (s, e) => p((r(), t("div", { key: e }, [
|
|
25
|
+
v(l.$slots, "tab", {
|
|
26
|
+
tab: s,
|
|
27
|
+
index: e
|
|
28
|
+
})
|
|
29
|
+
], 512)), [
|
|
30
|
+
[f, n.value === e]
|
|
31
|
+
])), 128))
|
|
32
|
+
])
|
|
33
|
+
]));
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
export {
|
|
37
|
+
E as default
|
|
38
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@statezero/core",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.38",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"module": "ESNext",
|
|
6
6
|
"description": "The type-safe frontend client for StateZero - connect directly to your backend models with zero boilerplate",
|
|
@@ -27,7 +27,6 @@
|
|
|
27
27
|
"require": "./dist/vue-entry.js"
|
|
28
28
|
},
|
|
29
29
|
"./vue/layout.css": "./dist/adaptors/vue/components/layout.css",
|
|
30
|
-
"./vue/layout.tailwind.css": "./dist/adaptors/vue/components/layout.tailwind.css",
|
|
31
30
|
"./testing": {
|
|
32
31
|
"import": "./dist/testing.js",
|
|
33
32
|
"require": "./dist/testing.js"
|
|
@@ -42,8 +41,9 @@
|
|
|
42
41
|
"generate:test-apps": "ts-node scripts/generate-test-apps.js",
|
|
43
42
|
"test:adaptors": "playwright test tests/adaptors",
|
|
44
43
|
"test:coverage": "vitest run --coverage",
|
|
45
|
-
"build": "tsc && npm run copy-
|
|
46
|
-
"
|
|
44
|
+
"build": "tsc && npm run build:vue && npm run copy-css",
|
|
45
|
+
"build:vue": "vite build --config vite.vue.config.ts",
|
|
46
|
+
"copy-css": "cp src/adaptors/vue/components/*.css dist/adaptors/vue/components/",
|
|
47
47
|
"parse-queries": "node scripts/perfect-query-parser.js",
|
|
48
48
|
"sync": "node src/cli/index.js sync",
|
|
49
49
|
"sync:dev": "npx cross-env NODE_ENV=test npm run sync",
|
|
@@ -121,6 +121,8 @@
|
|
|
121
121
|
"rimraf": "^5.0.5",
|
|
122
122
|
"ts-node": "^10.9.2",
|
|
123
123
|
"typescript": "^5.7.3",
|
|
124
|
+
"vite": "^6.0.0",
|
|
125
|
+
"@vitejs/plugin-vue": "^5.2.0",
|
|
124
126
|
"vitest": "^3.0.5",
|
|
125
127
|
"vue": "^3.2.0"
|
|
126
128
|
},
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Calculate hash of input text (demonstrates string processing)
|
|
3
|
-
*
|
|
4
|
-
* @param string text - Text to hash
|
|
5
|
-
* @param 'md5' | 'sha1' | 'sha256' algorithm - Hash algorithm to use
|
|
6
|
-
* @param {Object} [axiosOverrides] - Allows overriding Axios request parameters.
|
|
7
|
-
* @returns {Promise<Object>} A promise that resolves with the action's result.
|
|
8
|
-
*/
|
|
9
|
-
export function calculateHash(text: any, algorithm?: string, axiosOverrides?: Object): Promise<Object>;
|
|
10
|
-
export namespace calculateHash {
|
|
11
|
-
let actionName: string;
|
|
12
|
-
let title: string;
|
|
13
|
-
let app: string;
|
|
14
|
-
let permissions: string[];
|
|
15
|
-
let configKey: string;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Zod schema for the input of calculateHash.
|
|
19
|
-
* NOTE: This is an object schema for validating the data payload.
|
|
20
|
-
*/
|
|
21
|
-
export const calculateHashInputSchema: z.ZodObject<{
|
|
22
|
-
text: z.ZodString;
|
|
23
|
-
algorithm: z.ZodDefault<z.ZodOptional<z.ZodEnum<["md5", "sha1", "sha256"]>>>;
|
|
24
|
-
}, "strip", z.ZodTypeAny, {
|
|
25
|
-
algorithm: "md5" | "sha1" | "sha256";
|
|
26
|
-
text: string;
|
|
27
|
-
}, {
|
|
28
|
-
text: string;
|
|
29
|
-
algorithm?: "md5" | "sha1" | "sha256" | undefined;
|
|
30
|
-
}>;
|
|
31
|
-
/**
|
|
32
|
-
* Zod schema for the response of calculateHash.
|
|
33
|
-
*/
|
|
34
|
-
export const calculateHashResponseSchema: z.ZodObject<{
|
|
35
|
-
original_text: z.ZodString;
|
|
36
|
-
algorithm: z.ZodString;
|
|
37
|
-
hash: z.ZodString;
|
|
38
|
-
text_length: z.ZodNumber;
|
|
39
|
-
processed_by: z.ZodString;
|
|
40
|
-
processed_at: z.ZodString;
|
|
41
|
-
}, "strip", z.ZodTypeAny, {
|
|
42
|
-
original_text: string;
|
|
43
|
-
algorithm: string;
|
|
44
|
-
hash: string;
|
|
45
|
-
text_length: number;
|
|
46
|
-
processed_by: string;
|
|
47
|
-
processed_at: string;
|
|
48
|
-
}, {
|
|
49
|
-
original_text: string;
|
|
50
|
-
algorithm: string;
|
|
51
|
-
hash: string;
|
|
52
|
-
text_length: number;
|
|
53
|
-
processed_by: string;
|
|
54
|
-
processed_at: string;
|
|
55
|
-
}>;
|
|
56
|
-
export default calculateHash;
|
|
57
|
-
import { z } from 'zod';
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file was auto-generated. Do not make direct changes to the file.
|
|
3
|
-
* Action: Calculate Hash
|
|
4
|
-
* App: django_app
|
|
5
|
-
*/
|
|
6
|
-
import axios from 'axios';
|
|
7
|
-
import { z } from 'zod';
|
|
8
|
-
import { configInstance, parseStateZeroError, serializeActionPayload } from '../../../../src';
|
|
9
|
-
import actionSchema from './calculate-hash.schema.json' assert { type: 'json' };
|
|
10
|
-
/**
|
|
11
|
-
* Zod schema for the input of calculateHash.
|
|
12
|
-
* NOTE: This is an object schema for validating the data payload.
|
|
13
|
-
*/
|
|
14
|
-
export const calculateHashInputSchema = z.object({ text: z.string(),
|
|
15
|
-
algorithm: z.enum(["md5", "sha1", "sha256"]).optional().default("sha256") });
|
|
16
|
-
/**
|
|
17
|
-
* Zod schema for the response of calculateHash.
|
|
18
|
-
*/
|
|
19
|
-
export const calculateHashResponseSchema = z.object({ original_text: z.string(),
|
|
20
|
-
algorithm: z.string(),
|
|
21
|
-
hash: z.string(),
|
|
22
|
-
text_length: z.number().int(),
|
|
23
|
-
processed_by: z.string(),
|
|
24
|
-
processed_at: z.string().datetime({ message: "Invalid ISO 8601 datetime string" }) });
|
|
25
|
-
/**
|
|
26
|
-
* Calculate hash of input text (demonstrates string processing)
|
|
27
|
-
*
|
|
28
|
-
* @param string text - Text to hash
|
|
29
|
-
* @param 'md5' | 'sha1' | 'sha256' algorithm - Hash algorithm to use
|
|
30
|
-
* @param {Object} [axiosOverrides] - Allows overriding Axios request parameters.
|
|
31
|
-
* @returns {Promise<Object>} A promise that resolves with the action's result.
|
|
32
|
-
*/
|
|
33
|
-
export async function calculateHash(text, algorithm = "sha256", axiosOverrides = {}) {
|
|
34
|
-
// Construct the data payload from the function arguments
|
|
35
|
-
const rawPayload = {
|
|
36
|
-
text,
|
|
37
|
-
algorithm
|
|
38
|
-
};
|
|
39
|
-
// Serialize payload - handles model instances (extracts PK), files, dates, etc.
|
|
40
|
-
const payload = serializeActionPayload(rawPayload, actionSchema.input_properties);
|
|
41
|
-
const config = configInstance.getConfig();
|
|
42
|
-
const backend = config.backendConfigs['backend1'];
|
|
43
|
-
if (!backend) {
|
|
44
|
-
throw new Error(`No backend configuration found for key: backend1`);
|
|
45
|
-
}
|
|
46
|
-
const baseUrl = backend.API_URL.replace(/\/+$/, '');
|
|
47
|
-
const actionUrl = `${baseUrl}/actions/calculate_hash/`;
|
|
48
|
-
const headers = backend.getAuthHeaders ? backend.getAuthHeaders() : {};
|
|
49
|
-
try {
|
|
50
|
-
const response = await axios.post(actionUrl, payload, {
|
|
51
|
-
headers: { 'Content-Type': 'application/json', ...headers },
|
|
52
|
-
...axiosOverrides,
|
|
53
|
-
});
|
|
54
|
-
return calculateHashResponseSchema.parse(response.data);
|
|
55
|
-
}
|
|
56
|
-
catch (error) {
|
|
57
|
-
if (error instanceof z.ZodError) {
|
|
58
|
-
throw new Error(`Calculate Hash failed: Invalid response from server. Details: ${error.message}`);
|
|
59
|
-
}
|
|
60
|
-
if (error.response && error.response.data) {
|
|
61
|
-
const parsedError = parseStateZeroError(error.response.data);
|
|
62
|
-
if (Error.captureStackTrace) {
|
|
63
|
-
Error.captureStackTrace(parsedError, calculateHash);
|
|
64
|
-
}
|
|
65
|
-
throw parsedError;
|
|
66
|
-
}
|
|
67
|
-
else if (error.request) {
|
|
68
|
-
throw new Error(`Calculate Hash failed: No response received from server.`);
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
throw new Error(`Calculate Hash failed: ${error.message}`);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
export default calculateHash;
|
|
76
|
-
calculateHash.actionName = 'calculate_hash';
|
|
77
|
-
calculateHash.title = 'Calculate Hash';
|
|
78
|
-
calculateHash.app = 'django_app';
|
|
79
|
-
calculateHash.permissions = ['ValidatedIsAuthenticated'];
|
|
80
|
-
calculateHash.configKey = 'backend1';
|