ApiLogicServer 15.0.25__py3-none-any.whl → 15.0.27__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. api_logic_server_cli/api_logic_server.py +2 -2
  2. api_logic_server_cli/api_logic_server_info.yaml +3 -3
  3. api_logic_server_cli/genai/genai_admin_app.py +29 -19
  4. api_logic_server_cli/prototypes/.DS_Store +0 -0
  5. api_logic_server_cli/prototypes/basic_demo/.DS_Store +0 -0
  6. api_logic_server_cli/prototypes/basic_demo/customizations/.DS_Store +0 -0
  7. api_logic_server_cli/prototypes/basic_demo/customizations/ui/.DS_Store +0 -0
  8. api_logic_server_cli/prototypes/basic_demo/customizations/ui/admin/.DS_Store +0 -0
  9. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/.DS_Store +0 -0
  10. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/README.md +17 -0
  11. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/README_create_react_app.md +70 -0
  12. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/package-lock.json +18469 -0
  13. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/package.json +47 -0
  14. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/public/favicon.ico +0 -0
  15. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/public/index.html +43 -0
  16. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/public/logo192.png +0 -0
  17. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/public/logo512.png +0 -0
  18. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/public/manifest.json +25 -0
  19. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/public/robots.txt +3 -0
  20. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/App.css +38 -0
  21. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/App.js +61 -0
  22. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/App.test.js +8 -0
  23. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/Config-reference.js +527 -0
  24. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/Config.js +527 -0
  25. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/Customer-reference.js +216 -0
  26. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/Customer.js +230 -0
  27. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/Item.js +170 -0
  28. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/Order.js +207 -0
  29. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/Product.js +140 -0
  30. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/SysEmail.js +157 -0
  31. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/SysMcp.js +110 -0
  32. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/app_loader.js +24 -0
  33. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/index.css +13 -0
  34. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/index.js +17 -0
  35. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/logo.svg +1 -0
  36. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/.eslintrc +5 -0
  37. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/.yarnrc.yml +4 -0
  38. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/default-settings.js +25 -0
  39. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/default-settings.ts +25 -0
  40. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/errors.js +116 -0
  41. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/errors.ts +116 -0
  42. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/index.test.tsx +7 -0
  43. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/index.tsx +11 -0
  44. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/ra-jsonapi-client.js +577 -0
  45. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/ra-jsonapi-client.ts +577 -0
  46. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/resourceLookup.js +124 -0
  47. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/resourceLookup.ts +124 -0
  48. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/styles.module.css +9 -0
  49. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/reportWebVitals.js +13 -0
  50. api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/setupTests.js +5 -0
  51. api_logic_server_cli/prototypes/manager/system/genai/app_templates/app_learning/Admin-App-Resource-Learning-Prompt.md +37 -3
  52. {apilogicserver-15.0.25.dist-info → apilogicserver-15.0.27.dist-info}/METADATA +1 -1
  53. {apilogicserver-15.0.25.dist-info → apilogicserver-15.0.27.dist-info}/RECORD +57 -11
  54. {apilogicserver-15.0.25.dist-info → apilogicserver-15.0.27.dist-info}/WHEEL +0 -0
  55. {apilogicserver-15.0.25.dist-info → apilogicserver-15.0.27.dist-info}/entry_points.txt +0 -0
  56. {apilogicserver-15.0.25.dist-info → apilogicserver-15.0.27.dist-info}/licenses/LICENSE +0 -0
  57. {apilogicserver-15.0.25.dist-info → apilogicserver-15.0.27.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,124 @@
1
+ interface Relationship {
2
+ data: null | { id: string; type: string } | Array<{ id: string; type: string }>;
3
+ relationships?: { [key: string]: Relationship };
4
+ }
5
+
6
+ /**
7
+ * A map-like class that maps resource linkage objects {id: 1, type: "user"} to concrete resources with attributes and
8
+ * relationships
9
+ */
10
+ export default class ResourceLookup {
11
+ lookup: Map<any, any>;
12
+ includes: string[];
13
+
14
+ /**
15
+ * Constructs a new lookup map
16
+ * @param {Object} response A JSON API response, in JSON format
17
+ */
18
+ constructor(response: any) {
19
+ this.lookup = new Map();
20
+ this.includes = [];
21
+
22
+ // If the response wasn't a JSON dictionary, we can't and don't need to build a lookup
23
+ if (typeof response !== 'object') return;
24
+
25
+ let resources;
26
+ // if (response.hasOwnProperty('included')) {
27
+ if (Object.prototype.hasOwnProperty.call(response, 'included')) {
28
+ resources = [...response.data, ...response.included];
29
+ } else {
30
+ resources = response.data;
31
+ }
32
+
33
+ // Iterate over each resource returned and put each in the lookup
34
+ for (const entry of resources) {
35
+ const key = this.getKey(entry);
36
+ this.lookup.set(key, entry);
37
+ }
38
+ }
39
+
40
+ /**
41
+ * Calculates a hashable key for JSON API resources
42
+ * @param resource A resource linkage object
43
+ * @returns {string}
44
+ */
45
+ getKey(resource: any) {
46
+ return `${resource.type}:${resource.id}`;
47
+ }
48
+
49
+ /**
50
+ * Looks up a resource
51
+ * @param resource A resource linkage object
52
+ * @returns {Object}
53
+ */
54
+ get(resource: any) {
55
+ // If we don't have included data for this resource, just return the Resource Linkage object, since that's still
56
+ // useful
57
+ if (this.has(resource)) {
58
+ return this.lookup.get(this.getKey(resource));
59
+ } else {
60
+ return structuredClone(resource);
61
+ }
62
+ }
63
+
64
+ /**
65
+ * Returns true if the resource is in the lookup
66
+ * @param resource
67
+ * @returns {boolean}
68
+ */
69
+ has(resource: any) {
70
+ return this.lookup.has(this.getKey(resource));
71
+ }
72
+
73
+ /**
74
+ * Converts a JSON API data object (with id, type, and attributes fields) into a flattened object
75
+ * @param {Object} response A JSON API data object
76
+ */
77
+ unwrapData(response: any) {
78
+ // The base resource object, merge the attributes and the id/type fields
79
+ const result = Object.assign(
80
+ {
81
+ id: response?.id,
82
+ ja_type: response?.type,
83
+ type: response?.Type || response?.type,
84
+ attributes: response.attributes || {},
85
+ },
86
+ response.attributes
87
+ );
88
+
89
+ // Deal with relationships
90
+ if (Object.prototype.hasOwnProperty.call(response, 'relationships')) {
91
+ result.relationships = response.relationships;
92
+ for (const [relationshipName, relationship] of Object.entries(response.relationships)) {
93
+ if ((relationship as Relationship).data === null) {
94
+ result[relationshipName] = null;
95
+ }
96
+
97
+ if (!(relationship as Relationship).data) {
98
+ continue;
99
+ } else if (Array.isArray((relationship as Relationship).data && (relationship as Relationship).data)) {
100
+ result[relationshipName] = (relationship as Relationship).data?.map((linkage: any) => {
101
+ const resource = this.get(linkage);
102
+ const lresult = structuredClone(this.unwrapData(resource));
103
+ Object.entries(lresult.attributes || {}).map(([key, value]) => {
104
+ lresult[key] = value;
105
+ });
106
+ result.relationships[relationshipName].data = result[relationshipName];
107
+ return lresult;
108
+ });
109
+ } else if ((relationship as Relationship).data?.id) {
110
+ const resource = this.get((relationship as Relationship).data);
111
+ result[relationshipName] = this.unwrapData(resource);
112
+ result.relationships[relationshipName].data = result[relationshipName];
113
+ }
114
+ }
115
+ }
116
+
117
+ try {
118
+ JSON.stringify(structuredClone(result));
119
+ } catch (e) {
120
+ return null;
121
+ }
122
+ return structuredClone(result);
123
+ }
124
+ }
@@ -0,0 +1,9 @@
1
+ /* add css module styles here (optional) */
2
+
3
+ .test {
4
+ margin: 2em;
5
+ padding: 0.5em;
6
+ border: 2px solid #000;
7
+ font-size: 2em;
8
+ text-align: center;
9
+ }
@@ -0,0 +1,13 @@
1
+ const reportWebVitals = onPerfEntry => {
2
+ if (onPerfEntry && onPerfEntry instanceof Function) {
3
+ import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
4
+ getCLS(onPerfEntry);
5
+ getFID(onPerfEntry);
6
+ getFCP(onPerfEntry);
7
+ getLCP(onPerfEntry);
8
+ getTTFB(onPerfEntry);
9
+ });
10
+ }
11
+ };
12
+
13
+ export default reportWebVitals;
@@ -0,0 +1,5 @@
1
+ // jest-dom adds custom jest matchers for asserting on DOM nodes.
2
+ // allows you to do things like:
3
+ // expect(element).toHaveTextContent(/react/i)
4
+ // learn more: https://github.com/testing-library/jest-dom
5
+ import '@testing-library/jest-dom';
@@ -11,12 +11,15 @@ Sample code (follow these guidelines EXACTLY):
11
11
  <sample-code>
12
12
  // begin MANDATORY imports (always generated EXACTLY)
13
13
  import React from 'react';
14
- import { List, FunctionField, Datagrid, TextField, DateField, NumberField } from 'react-admin';
14
+ import { List, FunctionField, Datagrid, TextField, EmailField, DateField, NumberField } from 'react-admin';
15
15
  import { ReferenceField, ReferenceManyField } from 'react-admin';
16
16
  import { TabbedShowLayout, Tab, SimpleShowLayout, TextInput, NumberInput, DateTimeInput } from 'react-admin';
17
17
  import { ReferenceInput, SelectInput, SimpleForm, Show, Edit, Create } from 'react-admin';
18
18
  import { Filter, Pagination, BooleanField, BooleanInput, Labeled } from 'react-admin';
19
- import { Grid, Typography, Box, Divider } from '@mui/material';
19
+ import { EditButton, DeleteButton, CreateButton, ShowButton } from 'react-admin';
20
+ import { Grid, Typography, Box, Divider, Button } from '@mui/material';
21
+ import { useRecordContext, useRedirect, Link, required } from 'react-admin';
22
+ import AddIcon from '@mui/icons-material/Add';
20
23
  // end mandatory imports
21
24
 
22
25
  // Filter for Customer List
@@ -79,8 +82,11 @@ export const CustomerShow = (props) => {
79
82
  <DateField source="CreatedOn" label="Created On" />
80
83
  <NumberField source="amount_total" label="Amount Total" options={{ style: 'currency', currency: 'USD' }} />
81
84
  <DateField source="date_shipped" label="Date Shipped" />
85
+ <EditButton />
86
+ <DeleteButton />
82
87
  </Datagrid>
83
88
  </ReferenceManyField>
89
+ <AddOrderButton />
84
90
  </Tab>
85
91
  ...
86
92
  </TabbedShowLayout>
@@ -88,6 +94,29 @@ export const CustomerShow = (props) => {
88
94
  );
89
95
  };
90
96
 
97
+ // Custom Add Order Button
98
+ const AddOrderButton = () => {
99
+ const record = useRecordContext();
100
+ const redirect = useRedirect();
101
+
102
+ const handleClick = () => {
103
+ // Use the newer React Admin approach for pre-filling forms
104
+ redirect(`/Order/create?source=${encodeURIComponent(JSON.stringify({ customer_id: record?.id }))}`);
105
+ };
106
+
107
+ return (
108
+ <Button
109
+ variant="contained"
110
+ color="primary"
111
+ startIcon={<AddIcon />}
112
+ onClick={handleClick}
113
+ sx={{ mt: 2 }}
114
+ >
115
+ Add New Order
116
+ </Button>
117
+ );
118
+ };
119
+
91
120
  // Customer Create
92
121
  export const CustomerCreate = (props) => {
93
122
  return (
@@ -162,7 +191,12 @@ For each resource (`Customer`, `Order` etc) and **fully** implement:
162
191
  Use:
163
192
 
164
193
  - `<ReferenceField>` for foreign key displays
165
- - `<ReferenceInput>` for foreign key input
194
+ - `<ReferenceInput>` for foreign key input, like this (IMPORTANT: validate is on SelectInput, NEVER ReferenceInput )
195
+ ```
196
+ <ReferenceInput source="customer_id" reference="Customer" fullWidth>
197
+ <SelectInput optionText="name" validate={required()} />
198
+ </ReferenceInput>
199
+ ```
166
200
  - `<ReferenceManyField>` for tabbed child lists
167
201
 
168
202
  Use the attribute order from the schema.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ApiLogicServer
3
- Version: 15.0.25
3
+ Version: 15.0.27
4
4
  Author-email: Val Huber <apilogicserver@gmail.com>
5
5
  License: BSD-3-Clause
6
6
  Project-URL: Homepage, https://www.genai-logic.com
@@ -1,6 +1,6 @@
1
1
  api_logic_server_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- api_logic_server_cli/api_logic_server.py,sha256=3wWWl50qub5ryRBWJusrB42CIOuoIBOE1e09HjNKMkE,96384
3
- api_logic_server_cli/api_logic_server_info.yaml,sha256=Rmy2DSMNBLtlV9PP_hqmn2FojD2AAinPVOfnTbwu6oE,128
2
+ api_logic_server_cli/api_logic_server.py,sha256=irfi80OJ48Hkj85Lcf1F5pVfmU4ScDkpIeVk-59smDY,96392
3
+ api_logic_server_cli/api_logic_server_info.yaml,sha256=oBoJjcIDHfKqKhNLHCBLvOR6nGEX7Bw54Kq-avXK_Yc,127
4
4
  api_logic_server_cli/cli.py,sha256=bSc3sj9df94pIx0HyRYKOojOv3M360UNQgieJAgg9IM,85002
5
5
  api_logic_server_cli/cli_args_base.py,sha256=lr27KkOB7_WpZwTs7LgiK8LKDIHMKQkoZCTnE99BFxw,3280
6
6
  api_logic_server_cli/cli_args_project.py,sha256=I5no_fGRV_ZsK3SuttVDAaQYI4Q5zCjx6LojGkM024w,4645
@@ -476,7 +476,7 @@ api_logic_server_cli/genai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
476
476
  api_logic_server_cli/genai/client.py,sha256=36gyz-dqxj4dJj1SGtO9NZsy9-cfnf4d7uahHimwqHk,772
477
477
  api_logic_server_cli/genai/genai.py,sha256=rt4XW_xmo-D5fLD8DQBHMjrU7Teflw43S8lR-tJd4KU,47014
478
478
  api_logic_server_cli/genai/genai_admin_app copy.py,sha256=d1E6kNVhq-xqhUh2j52V4cOTJxEiZgWhja1_kLJXKX8,4665
479
- api_logic_server_cli/genai/genai_admin_app.py,sha256=GWtgynqOzUJOK1n_AalJPbzWxjGrqcc9Bw4rCQ5mfas,9627
479
+ api_logic_server_cli/genai/genai_admin_app.py,sha256=IO9aSvOXmY5wiJl74awPo3PxE1ibKjqtUDbpik46NkE,9754
480
480
  api_logic_server_cli/genai/genai_fatal_excp.py,sha256=1FmDVcXVRqmG0JMVZ7l4KqMOdpff3KGZ2LPAGtw304Q,179
481
481
  api_logic_server_cli/genai/genai_graphics.py,sha256=9ao0os6rUKY5u2caeLtgyDsNEuVQXq4KcKV575fNC58,20610
482
482
  api_logic_server_cli/genai/genai_logic_builder.py,sha256=u_89UtrALIfcMtW6p0SZ78lCmwRqerA5igyY2hDvjlk,26150
@@ -496,7 +496,7 @@ api_logic_server_cli/model_migrator/util.py,sha256=O7CgsZlU--8IDy2NrDSfIwjbghgkP
496
496
  api_logic_server_cli/model_migrator/system/free_sql.py,sha256=WaUeoSpcGezUJG5QYAZ8I0WLw92dnD89Op7nW9NeQBE,4436
497
497
  api_logic_server_cli/model_migrator/system/javascript.py,sha256=Bxbqha-3g-lDZ2oI0tynRfe3Str-1zkR-IigHNeEqPw,1500
498
498
  api_logic_server_cli/model_migrator/system/lac_endpoint.py,sha256=3rzyIZo8zPmXMvTYJ5ogiWFnNScY_TwobVjlULxP1Is,32168
499
- api_logic_server_cli/prototypes/.DS_Store,sha256=yBlDPury1UqZHqWV3Du07c2nk8x7PelUB_R-5oKC2fM,6148
499
+ api_logic_server_cli/prototypes/.DS_Store,sha256=3vWXmJiXZthUWQPRBw3OxLV8vFavyPH9ECS3BdZ_1Ks,6148
500
500
  api_logic_server_cli/prototypes/BudgetApp/README.md,sha256=NCDzJZmr7lZuwiw4pye-69S9Lz6NaFSPkwTm0-tGvhs,6602
501
501
  api_logic_server_cli/prototypes/BudgetApp/api/customize_api.py,sha256=_FA98vD6kAVhaPdG7A8w9Q6boSHp8YvxK5NmDU0HeHY,3879
502
502
  api_logic_server_cli/prototypes/BudgetApp/database/BudgetAppMySQL.sql,sha256=nPuw7duqzbbZ80wULrsZgEitkiXD8Hf19r1gOfz500A,5157
@@ -705,7 +705,9 @@ api_logic_server_cli/prototypes/base/venv_setup/requirements-no-cli.txt,sha256=s
705
705
  api_logic_server_cli/prototypes/base/venv_setup/venv-linux.sh,sha256=FDIxVyZ50CgLVLrAW942Kxnkv1n4WLR2UerzUnuhPwM,900
706
706
  api_logic_server_cli/prototypes/base/venv_setup/venv.ps1,sha256=_-LfKkLw5HOkZsF59BGCqM9Zsk3n1oDIyDb4emy0O08,698
707
707
  api_logic_server_cli/prototypes/base/venv_setup/venv.sh,sha256=aWX9fa8fe6aO9ifBIZEgGY5UGh4I0arOoCwBzDsxgU8,893
708
+ api_logic_server_cli/prototypes/basic_demo/.DS_Store,sha256=sij8zwzUCUY-cTmB_AJNRd5JqPXoK-aLIhIo495iLIA,6148
708
709
  api_logic_server_cli/prototypes/basic_demo/README.md,sha256=QHVOtJq7A_9RtTwrrecbbYbdBf3buxkhBgPpX342wAA,18685
710
+ api_logic_server_cli/prototypes/basic_demo/customizations/.DS_Store,sha256=9TTUzzmsI5vYa6wg5TIBWMNRsKivi_IDbgb05zReWN4,6148
709
711
  api_logic_server_cli/prototypes/basic_demo/customizations/api/.DS_Store,sha256=6F7pphfwiMhILhl_J6yVhDZFYXmar5V92iLCzSkfnyA,6148
710
712
  api_logic_server_cli/prototypes/basic_demo/customizations/api/api_discovery/openapi.py,sha256=kLQ7Fn1J7tzuNJHBXF2AiwtzvQ-0JxJ6z-MfFryAtLk,3887
711
713
  api_logic_server_cli/prototypes/basic_demo/customizations/config/default.env,sha256=-rjXJrjR4vjMr9YCVYVchaJw7qMBlbvQ3KfR_wri_XM,412
@@ -719,8 +721,52 @@ api_logic_server_cli/prototypes/basic_demo/customizations/logic/logic_discovery/
719
721
  api_logic_server_cli/prototypes/basic_demo/customizations/logic/logic_discovery/mcp_client_executor_request.py,sha256=Ci7VuiF41_E8jv3d3L6iOK8atZhSl1oBUJDZVzJM9eY,2075
720
722
  api_logic_server_cli/prototypes/basic_demo/customizations/logic/logic_discovery/simple_constraints.py,sha256=4HRLOXuLJP1eOosONeEtpA9DehxiZME0-FBKuG1RaI0,760
721
723
  api_logic_server_cli/prototypes/basic_demo/customizations/security/declare_security.py,sha256=gbdH29cPY656lgROPm_w20Q-g6AhlIMES3wiIrqBTdk,2439
724
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/.DS_Store,sha256=p8GZ6L0LUc4KC49tmFuC2JdX7AQI_t-nasZwLMXpdJA,6148
725
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/admin/.DS_Store,sha256=1lFlJ5EFymdzGAUAaI30vcaaLHt3F1LwpG7xILf9jsM,6148
722
726
  api_logic_server_cli/prototypes/basic_demo/customizations/ui/admin/admin.yaml,sha256=PynSqW6qUh5JcRJKkgX-aSv8GjmCXxBflBTzRVTa0R0,3503
723
727
  api_logic_server_cli/prototypes/basic_demo/customizations/ui/admin/home.js,sha256=0YSOlZAyhYOm7eKSVRMspzEc_P7PO-lRaUurYGCqQ10,3371
728
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/.DS_Store,sha256=AnV79PLm6F_E6PkLoTv-GaJZpUGP_xdRkNEqrAYGYuE,6148
729
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/README.md,sha256=XZWAqxnRWxZ1yVS65g3j6etrcdxX1QDf2TZSms67Yd0,489
730
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/README_create_react_app.md,sha256=cOr7x6X9RmqjITtafhsqQTg8vl1Ob8X0WC78WL21CdE,3359
731
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/package-lock.json,sha256=dG1s4WtUFp0ZhVWGwp_Ocv-Ii2c92Xb4FWqHFc0m7KU,698058
732
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/package.json,sha256=6_nHZ8UzSaDWUPv6DyGJ3QAO392tc2rc8JPOp7V7gz4,1114
733
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/public/favicon.ico,sha256=PRD32mxgMXg0AIFmjErFs66XQ8qaJiqw_NMS-7n0i90,3870
734
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/public/index.html,sha256=IK_Be2NYv99ddFEyJc1Kc0Q_oL0VuUSvceFD9pSlz3w,1721
735
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/public/logo192.png,sha256=w4Y5bscNs2CAdbX7-qxKscyqhroFpoqzk-xVHrZsPgA,5347
736
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/public/logo512.png,sha256=nqT02nBQwMxAiSb2o5wlNiTpursdQ8eXfNghRFpgtGE,9664
737
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/public/manifest.json,sha256=ULPYw5A68_eNhxuUVXqxT045yhkurKPSz6hjyGcnmhQ,492
738
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/public/robots.txt,sha256=kNJLw79pisHhc3OVAimMzKcq3x9WT6sF9IS4xI0crdI,67
739
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/App.css,sha256=xaxC5Wv4w063QddSvIeRRPGG18oKSPy7c7lnF396kkA,564
740
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/App.js,sha256=amA7OxZLZeWjxA_K7hOyIrIMUdcm85P5F47Gxxv4iHI,2465
741
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/App.test.js,sha256=93hGkxlLhlfRv3DDfqcPSi1pTEVm7EFVCo5lDrYAqqQ,246
742
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/Config-reference.js,sha256=c2H9MMc3h2STlHPfjFRnu1FR-drNTRKzC8zVeZk7UkI,15025
743
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/Config.js,sha256=c2H9MMc3h2STlHPfjFRnu1FR-drNTRKzC8zVeZk7UkI,15025
744
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/Customer-reference.js,sha256=dWyfDbulIcp5gbDQKOla-Y9ZTnIxW8LKapvnQmXfBCY,9211
745
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/Customer.js,sha256=97IizTpbR4z5K-9C2Y8vTJ2F3LTR65LJ7kJqzLG7xmM,10220
746
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/Item.js,sha256=ffMRl3fM0vgopjTW2cXymmGbrXx96NO3qz3rhHs1JW4,6578
747
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/Order.js,sha256=txX-HMt9oLfflurKIO1F24U3imARyGbVgoehCMeaeqo,8895
748
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/Product.js,sha256=e7iDE2TD0-b75BP_-QIMloqkD-8coh98m5BlASV8SRs,5488
749
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/SysEmail.js,sha256=fMkLMNMlQL_p57kxVjIm67p0I0DVLYNo8zE8wxBkf3g,6742
750
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/SysMcp.js,sha256=d8YIMuXHL4g0W3awYW60NE7-RgC0ZX2LG_Gya7wP3uw,4119
751
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/app_loader.js,sha256=Q_7ZzwnFdK-yjPC_SBLvXoZnckWNgl7b_QZ-D2Nhq4I,791
752
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/index.css,sha256=2vIsKWyAHT1TMIM2HMWfvcIuW_5SiqS60Zc7VMxUSKQ,366
753
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/index.js,sha256=OfaJG-vOhWzmBOpFDwis4m-huTFBWYWIH7syP2O6Jvs,535
754
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/logo.svg,sha256=YACw6bCwWz8RLeBPDQOXaKHbY1iP-bbvcJnb1xYy84M,2632
755
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/reportWebVitals.js,sha256=cUhRZphWFSgGwon5qsYkC0FLusUMYO5PfmJH8x6sDBw,362
756
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/setupTests.js,sha256=Ilg3WdAEX9-NYsnbCqy6n9i93eecZxqgjJfc_U6TDMY,241
757
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/.eslintrc,sha256=t-c1eTha4RlY0Hj-ZMVVOJeylWuhxL4EeYPQSOPmn7M,36
758
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/.yarnrc.yml,sha256=DxEgU1XD47JdoQr-a4zIOlcG5yaWPbDY83m1CAdEkBM,119
759
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/default-settings.js,sha256=6_SFVrGh7vADgTVNXWRvL5qBUTDUsjNEz_lRDtytMTU,758
760
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/default-settings.ts,sha256=6_SFVrGh7vADgTVNXWRvL5qBUTDUsjNEz_lRDtytMTU,758
761
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/errors.js,sha256=Z4ZMAs9yssl6O3Ua40W1TpWHb_v8Ys2B141k4QQg0Ic,2892
762
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/errors.ts,sha256=Z4ZMAs9yssl6O3Ua40W1TpWHb_v8Ys2B141k4QQg0Ic,2892
763
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/index.test.tsx,sha256=KNm7nE7RYvNe8hoL1FKzlzpvNCPR-rHNXnePVfJWKKg,151
764
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/index.tsx,sha256=N2XJTsQDCHD6KQxvqbqRxTgxiXSEZDUK0JzdV8wksi4,293
765
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/ra-jsonapi-client.js,sha256=VwwfvkCchZuPeRVF_QC_tMwpsfUIZynjI23k6MdNkf0,20598
766
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/ra-jsonapi-client.ts,sha256=tNd_iOOOXC9xsMqkqPamxQ0IbYQxKE0Afmz67P92zWw,20608
767
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/resourceLookup.js,sha256=nV_j3KpDeUpD8sPsGJeOqi6lUvcPbheJtLdqU5nENPs,4366
768
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/resourceLookup.ts,sha256=FlsEiPVX_U-22glUGoscj3qcYdnfMJ_9Wa2Vi4CV2xs,4471
769
+ api_logic_server_cli/prototypes/basic_demo/customizations/ui/basic_demo_app/src/rav4-jsonapi-client/styles.module.css,sha256=AuGbjqBQu2by4z5APJvQAWk44ocrdQ9lCopqYCJXCy0,154
724
770
  api_logic_server_cli/prototypes/basic_demo/iteration/api/api_discovery/order_b2b.py,sha256=hg9Bsz0_t-RjO9rFcW-YH3y26kq4IY5dd9FfVoYxB4w,3176
725
771
  api_logic_server_cli/prototypes/basic_demo/iteration/database/db.sqlite,sha256=QsU34YuKT_YjPF-v6vDtcNJWV6AV2mspqAqW1VoMH5M,28672
726
772
  api_logic_server_cli/prototypes/basic_demo/iteration/docs/er_diagram.png,sha256=-3aSv9ay7XeFqGU-cygRz5T5eYhY627BYmA6GXdUYH0,161072
@@ -1211,7 +1257,7 @@ api_logic_server_cli/prototypes/manager/system/app_model_editor/venv_setup/venv.
1211
1257
  api_logic_server_cli/prototypes/manager/system/app_model_editor/venv_setup/venv.sh,sha256=aWX9fa8fe6aO9ifBIZEgGY5UGh4I0arOoCwBzDsxgU8,893
1212
1258
  api_logic_server_cli/prototypes/manager/system/genai/.DS_Store,sha256=ndrcwHjeXXcVbvjdiQNuyCtmI6m-kvDLoEnr0fFJsuY,6148
1213
1259
  api_logic_server_cli/prototypes/manager/system/genai/app_templates/app_learning/Admin-App-Resource-Learning-Prompt copy.md,sha256=cDkLjSRPZxfmgDZhObilm1K67ZweOv9TkGT6cTpZNOM,6741
1214
- api_logic_server_cli/prototypes/manager/system/genai/app_templates/app_learning/Admin-App-Resource-Learning-Prompt.md,sha256=9smWe64B73X6xnxkPU-rLD4l2x692iAVf2zf0NAfsB4,6899
1260
+ api_logic_server_cli/prototypes/manager/system/genai/app_templates/app_learning/Admin-App-Resource-Learning-Prompt.md,sha256=jvBa4eF1-4Yi8bELO6ltjUV8_5mlsIpGcZFfTnNcnd8,8087
1215
1261
  api_logic_server_cli/prototypes/manager/system/genai/app_templates/app_learning/Admin-App-js-Learning-Prompt.md,sha256=75FA3txqJ1viIyqt9O6nGpi17As7aSgVyUJ1rImriKc,2054
1216
1262
  api_logic_server_cli/prototypes/manager/system/genai/app_templates/app_learning/Admin-config-prompt.md,sha256=fyP8X1q9tM3i6bTVioa7ieM_aTUfk4GPo08aOWZ60-0,932
1217
1263
  api_logic_server_cli/prototypes/manager/system/genai/app_templates/app_learning/Admin-json-api-model-prompt.md,sha256=5Zp9q_lpY225qceQ3UhF4Fyd-85hDKkD-r3BWYmcs6Y,2890
@@ -2275,9 +2321,9 @@ api_logic_server_cli/tools/mini_skel/database/system/SAFRSBaseX.py,sha256=p8C7AF
2275
2321
  api_logic_server_cli/tools/mini_skel/database/system/TestDataBase.py,sha256=U02SYqThsbY5g3DX7XGaiMxjZBuOpzvtPS6RfI1WQFg,371
2276
2322
  api_logic_server_cli/tools/mini_skel/logic/declare_logic.py,sha256=fTrlHyqMeZsw_TyEXFa1VlYBL7fzjZab5ONSXO7aApo,175
2277
2323
  api_logic_server_cli/tools/mini_skel/logic/load_verify_rules.py,sha256=Rr5bySJpYCZmNPF2h-phcPJ53nAOPcT_ohZpCD93-a0,7530
2278
- apilogicserver-15.0.25.dist-info/licenses/LICENSE,sha256=67BS7VC-Z8GpaR3wijngQJkHWV04qJrwQArVgn9ldoI,1485
2279
- apilogicserver-15.0.25.dist-info/METADATA,sha256=S1JbGhtzVFAiIu32hv3hVni1sa6t11SxWQJVdfg8ucE,6553
2280
- apilogicserver-15.0.25.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
2281
- apilogicserver-15.0.25.dist-info/entry_points.txt,sha256=KiLloZJ3c_RW-nIDqBtoE0WEsQTnZ3dELwHLWi23LMA,103
2282
- apilogicserver-15.0.25.dist-info/top_level.txt,sha256=-r0AT_GEApleihg-jIh0OMvzzc0BO1RuhhOpE91H5qI,21
2283
- apilogicserver-15.0.25.dist-info/RECORD,,
2324
+ apilogicserver-15.0.27.dist-info/licenses/LICENSE,sha256=67BS7VC-Z8GpaR3wijngQJkHWV04qJrwQArVgn9ldoI,1485
2325
+ apilogicserver-15.0.27.dist-info/METADATA,sha256=Z0zuAtACfNIdbFjT8wIQY_L2LOgD4J3XQxfuuo4Ab6k,6553
2326
+ apilogicserver-15.0.27.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
2327
+ apilogicserver-15.0.27.dist-info/entry_points.txt,sha256=KiLloZJ3c_RW-nIDqBtoE0WEsQTnZ3dELwHLWi23LMA,103
2328
+ apilogicserver-15.0.27.dist-info/top_level.txt,sha256=-r0AT_GEApleihg-jIh0OMvzzc0BO1RuhhOpE91H5qI,21
2329
+ apilogicserver-15.0.27.dist-info/RECORD,,