diff --git a/dist-test/docgen.test.js b/dist-test/docgen.test.js
index 371fa69..e95ebff 100644
--- a/dist-test/docgen.test.js
+++ b/dist-test/docgen.test.js
@@ -27,7 +27,7 @@ const Index_1 = require("../dist/static/Index");
(0, code_1.expect)(JSON.parse(voljson['/top/.jostraca/jostraca.json.log']).exclude).equal([]);
(0, code_1.expect)(voljson).equal({
'/top/doc/static/src': null,
- '/top/doc/static/dist/index.html': '\n\n\n
\n \n \n \n \n \n \n \n\n \n \n\n\n undefined SDK Documentation \n\n \n \n\n \n \n\n',
+ '/top/doc/static/dist/index.html': `\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n\n\n\n\n\n\n\n \n \n Sections\n + \n \n \n \n\n\n\n \n Getting Started\n + \n \n \n \n \n \n \n \n\n \n \n
\n
\n Introduction \n\n \n Welcome to the undefined SDK documentation. This guide will help you integrate and use our SDK effectively.\n
\n\n \n This comprehensive documentation will guide you through the undefined SDK, designed to simplify integration with our APIs.\n Whether working with multiple languages, you'll find everything you need to\n get started and efficiently manage its business entities.\n
\n\n \n The undefined SDK adopts an entity-oriented approach, mapping business logic directly to your code without the need to \n handle individual endpoint paths. With this SDK, you can create multiple concurrent client instances, each providing\n intuitive methods for managing and interacting with your business entities.\n
\n\n \n Browse the sections below to explore how to install, initialize, and use the SDK for each supported language.\n
\n\n \n
\n \n
\n
Getting Started \n\n\n
\n
Entities \n\n \n
\n \n \n \n \n\n \n \n \n\n`,
'/top/.jostraca/jostraca.json.log': voljson['/top/.jostraca/jostraca.json.log'],
});
});
diff --git a/dist-test/docgen.test.js.map b/dist-test/docgen.test.js.map
index 579b472..481311d 100644
--- a/dist-test/docgen.test.js.map
+++ b/dist-test/docgen.test.js.map
@@ -1 +1 @@
-{"version":3,"file":"docgen.test.js","sourceRoot":"","sources":["../test/docgen.test.ts"],"names":[],"mappings":";;AACA,yCAA0C;AAC1C,qCAAmC;AAEnC,iCAA6B;AAC7B,iCAA6B;AAG7B,uCAAoE;AAEpE,2BAEY;AAGZ,gDAE6B;AAI7B,IAAA,oBAAQ,EAAC,QAAQ,EAAE,GAAG,EAAE;IAEtB,IAAA,gBAAI,EAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QACvB,IAAA,aAAM,EAAC,UAAM,CAAC,CAAC,KAAK,EAAE,CAAA;QAEtB,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAA,aAAK,EAAC,EAEzB,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,IAAA,UAAM,EAAC;YACpB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;SAC7B,CAAC,CAAA;QACF,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;QAEtB,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAA;QACvB,MAAM,KAAK,GAAG,SAAS,EAAE,CAAA;QACzB,8BAA8B;QAE9B,MAAM,IAAI,GAAG;YACX,KAAK;YACL,IAAI;SACL,CAAA;QAED,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAE3B,MAAM,OAAO,GAAQ,GAAG,CAAC,MAAM,EAAE,CAAA;QACjC,IAAA,aAAM,EAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAEjF,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,KAAK,CAAC;YACpB,qBAAqB,EAAE,IAAI;YAC3B,iCAAiC,EAC/B,2jBAA2jB;YAC7jB,kCAAkC,EAAE,OAAO,CAAC,kCAAkC,CAAC;SAChF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAGF,SAAS,SAAS;QAChB,OAAO,IAAA,aAAK,EAAC;;;;;;;;;;;;;;;;CAgBhB,CAAC,CAAC,GAAG,EAAE,CAAA;IACN,CAAC;IAGD,SAAS,QAAQ;QACf,OAAO,IAAA,cAAG,EAAC,SAAS,IAAI,CAAC,KAAU;YACjC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;YAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;YAElB,IAAA,kBAAO,EAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE;gBAC1D,IAAA,aAAK,EAAC,EAAE,CAAC,CAAA;YACX,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;AAEH,CAAC,CAAC,CAAA"}
\ No newline at end of file
+{"version":3,"file":"docgen.test.js","sourceRoot":"","sources":["../test/docgen.test.ts"],"names":[],"mappings":";;AACA,yCAA0C;AAC1C,qCAAmC;AAEnC,iCAA6B;AAC7B,iCAA6B;AAG7B,uCAAoE;AAEpE,2BAEY;AAGZ,gDAE6B;AAI7B,IAAA,oBAAQ,EAAC,QAAQ,EAAE,GAAG,EAAE;IAEtB,IAAA,gBAAI,EAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QACvB,IAAA,aAAM,EAAC,UAAM,CAAC,CAAC,KAAK,EAAE,CAAA;QAEtB,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAA,aAAK,EAAC,EAEzB,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,IAAA,UAAM,EAAC;YACpB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;SAC7B,CAAC,CAAA;QACF,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;QAEtB,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAA;QACvB,MAAM,KAAK,GAAG,SAAS,EAAE,CAAA;QACzB,8BAA8B;QAE9B,MAAM,IAAI,GAAG;YACX,KAAK;YACL,IAAI;SACL,CAAA;QAED,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAE3B,MAAM,OAAO,GAAQ,GAAG,CAAC,MAAM,EAAE,CAAA;QACjC,IAAA,aAAM,EAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAEjF,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,KAAK,CAAC;YACpB,qBAAqB,EAAE,IAAI;YAC3B,iCAAiC,EAC/B,s7LAAs7L;YACx7L,kCAAkC,EAAE,OAAO,CAAC,kCAAkC,CAAC;SAChF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAGF,SAAS,SAAS;QAChB,OAAO,IAAA,aAAK,EAAC;;;;;;;;;;;;;;;;CAgBhB,CAAC,CAAC,GAAG,EAAE,CAAA;IACN,CAAC;IAGD,SAAS,QAAQ;QACf,OAAO,IAAA,cAAG,EAAC,SAAS,IAAI,CAAC,KAAU;YACjC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;YAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;YAElB,IAAA,kBAAO,EAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE;gBAC1D,IAAA,aAAK,EAAC,EAAE,CAAC,CAAA;YACX,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;AAEH,CAAC,CAAC,CAAA"}
\ No newline at end of file
diff --git a/dist/static/Entities.d.ts b/dist/static/Entities.d.ts
new file mode 100644
index 0000000..ba36b25
--- /dev/null
+++ b/dist/static/Entities.d.ts
@@ -0,0 +1,2 @@
+declare const Entities: import("jostraca").Component;
+export { Entities };
diff --git a/dist/static/Entities.js b/dist/static/Entities.js
new file mode 100644
index 0000000..84083ca
--- /dev/null
+++ b/dist/static/Entities.js
@@ -0,0 +1,206 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Entities = void 0;
+const jostraca_1 = require("jostraca");
+const languagesSpec_1 = require("./languagesSpec");
+const Entities = (0, jostraca_1.cmp)(function Entities(props) {
+ const { ctx$ } = props;
+ const { model } = ctx$;
+ const { entity, build } = model.main.sdk;
+ (0, jostraca_1.Content)(`
+
+
Entities `);
+ (0, jostraca_1.each)(entity, (entity) => {
+ (0, jostraca_1.Content)(`
+
+ ${entity.Name}
+ `);
+ (0, jostraca_1.each)(build, (lg) => {
+ const spec = languagesSpec_1.languagesSpec[lg.name$];
+ (0, jostraca_1.Content)(`
+
+
+
+
+ Methods
+ `);
+ (0, jostraca_1.each)(entity.op, (op) => {
+ if (op.name == "list") {
+ (0, jostraca_1.Content)(`
+
+
+ ${op.Name} ${entity.Name}
+
+ Lists all matching ${entity.Name} entities based on the provided query criteria.
+ This method is ideal for retrieving collections of ${entity.Name} entities that meet certain criteria,
+ enabling batch operations and bulk data handling.
+
+ Parameters:
+
+ query :
+ optional -
+ The criteria to filter ${entity.name} entities for listing.
+ If omitted, all entities are listed.
+
+
+ Return:
+ List of ${entity.Name} Entities -
+ A list with one or more ${entity.Name} instances.
+
+
+
+ `);
+ spec.list(op, entity);
+ (0, jostraca_1.Content)(`
+
+
+ `);
+ }
+ else if (op.name == "create") {
+ (0, jostraca_1.Content)(`
+
+
+ ${op.Name} ${entity.Name}
+
+ ${op.Name} an instance of ${entity.name}.
+ Returns the created ${entity.name},
+ allowing easy access and manipulation within your application.
+
+
+ Parameters:
+
+ data :
+ optional -
+ The data for the new ${entity.name}.
+
+ Return:
+ ${entity.Name} -
+ The created ${entity.Name} instance.
+
+
+
+
+ `);
+ spec.create(op, entity);
+ (0, jostraca_1.Content)(`
+
+
+ `);
+ }
+ else if (op.name == "save") {
+ (0, jostraca_1.Content)(`
+
+
+ ${op.Name} ${entity.Name}
+
+ It saves an instance of ${entity.Name},
+ optionally updating it with new data.
+ This method persists the instance's data,
+ ensuring updates are stored consistently.
+
+ Parameters:
+
+ id :
+ required -
+ The ${entity.name} identifier to be updated.
+
+ data :
+ optional -
+ The new ${entity.name} data.
+
+
+ Return:
+ ${entity.Name} -
+ The updated ${entity.Name} instance.
+
+
+
+
+ `);
+ spec.save(op, entity);
+ (0, jostraca_1.Content)(`
+
+
+ `);
+ }
+ else if (op.name == "remove") {
+ (0, jostraca_1.Content)(`
+
+
+ ${op.Name} ${entity.Name}
+
+
+ Deletes a matching ${entity.Name} specified by the query parameter.
+ This method removes a single ${entity.Name} instance based on the query parameters.
+
+ Parameters:
+
+ query :
+ required -
+ The query criteria for identifying the ${entity.name} to remove.
+
+
+ Return:
+ N/A
+
+
+
+
+
+ `);
+ spec.remove(op, entity);
+ (0, jostraca_1.Content)(`
+
+
+ `);
+ }
+ else {
+ (0, jostraca_1.Content)(`
+
+
+ ${op.Name} ${entity.Name}
+
+
+ Loads a single, matching ${entity.name}'s data into its instance.
+ The query parameter should specify the identifier or criteria for the ${entity.Name} to be retrieved,
+ effectively syncing the instance with stored entity data.
+
+ Parameters:
+
+ query :
+ required -
+ The query criteria used to identify and load the ${entity.name} data.
+
+
+ Return:
+ ${entity.Name} -
+ The ${entity.Name} instance.
+
+
+
+
+
+ `);
+ spec.load(op, entity);
+ (0, jostraca_1.Content)(`
+
+
+ `);
+ }
+ });
+ (0, jostraca_1.Content)(`
+
+
+ `);
+ });
+ (0, jostraca_1.Content)(`
+
+
+ `);
+ });
+ (0, jostraca_1.Content)(`
+
+ `);
+});
+exports.Entities = Entities;
+//# sourceMappingURL=Entities.js.map
\ No newline at end of file
diff --git a/dist/static/Entities.js.map b/dist/static/Entities.js.map
new file mode 100644
index 0000000..73b0f51
--- /dev/null
+++ b/dist/static/Entities.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"Entities.js","sourceRoot":"","sources":["../../src/static/Entities.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/static/GettingStarted.d.ts b/dist/static/GettingStarted.d.ts
new file mode 100644
index 0000000..ec08a14
--- /dev/null
+++ b/dist/static/GettingStarted.d.ts
@@ -0,0 +1,2 @@
+declare const GettingStarted: import("jostraca").Component;
+export { GettingStarted };
diff --git a/dist/static/GettingStarted.js b/dist/static/GettingStarted.js
new file mode 100644
index 0000000..3f87af6
--- /dev/null
+++ b/dist/static/GettingStarted.js
@@ -0,0 +1,60 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.GettingStarted = void 0;
+const jostraca_1 = require("jostraca");
+const languagesSpec_1 = require("./languagesSpec");
+const GettingStarted = (0, jostraca_1.cmp)(function GettingStarted(props) {
+ const { ctx$ } = props;
+ const { model } = ctx$;
+ const { option, options, build } = model.main.sdk;
+ const parsedOptions = option ? option : options;
+ (0, jostraca_1.Content)(`
+
+
Getting Started `);
+ (0, jostraca_1.each)(build, (lg) => {
+ const spec = languagesSpec_1.languagesSpec[lg.name$];
+ (0, jostraca_1.Content)(`
+
+
+
+
+
+
+ 1. Install SDK
+
+ Use the following command to install the SDK for ${spec.Name}. This SDK provides all necessary functions to interact with our APIs easily.
+
+
+
+
+ ${spec.install(model)}
+
+
+
+
+
+ 2. Initialize SDK
+
+ The ${model.Name} SDK provides a simple interface to interact with the API, allowing you to easily create client instances for working with different business entities. This is a code snippet to initialize the SDK using environment variables.
+
+
+
+
+
+ `);
+ spec.init(model, parsedOptions);
+ (0, jostraca_1.Content)(`
+
+
+
+
+
+`);
+ });
+ (0, jostraca_1.Content)(`
+
+`);
+});
+exports.GettingStarted = GettingStarted;
+//# sourceMappingURL=GettingStarted.js.map
\ No newline at end of file
diff --git a/dist/static/GettingStarted.js.map b/dist/static/GettingStarted.js.map
new file mode 100644
index 0000000..2a1eb5b
--- /dev/null
+++ b/dist/static/GettingStarted.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"GettingStarted.js","sourceRoot":"","sources":["../../src/static/GettingStarted.ts"],"names":[],"mappings":";;;AAAA,uCAA6C;AAE7C,mDAA+C;AAG/C,MAAM,cAAc,GAAG,IAAA,cAAG,EAAC,SAAS,cAAc,CAAC,KAAU;IAC3D,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IACtB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;IAEtB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA;IAEjD,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;IAE/C,IAAA,kBAAO,EAAC;;6DAEmD,CAAC,CAAA;IAC5D,IAAA,eAAI,EAAC,KAAK,EAAE,CAAC,EAAO,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,6BAAa,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QACpC,IAAA,kBAAO,EAAC;mCACuB,IAAI,CAAC,IAAI;cAC9B,IAAI,CAAC,IAAI,+CAA+C,IAAI,CAAC,IAAI;;mBAE5D,IAAI,CAAC,IAAI;;;;;yDAK6B,IAAI,CAAC,IAAI;;;;;0EAKQ,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;;;;;;;;cAQ7F,KAAK,CAAC,IAAI;;;;;;0EAMkD,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAAC,IAAA,kBAAO,EAAC;;;;;;;CAOlI,CAAC,CAAA;IACA,CAAC,CAAC,CAAA;IACF,IAAA,kBAAO,EAAC;;CAET,CAAC,CAAA;AACF,CAAC,CAAC,CAAA;AAIA,wCAAc"}
\ No newline at end of file
diff --git a/dist/static/Index.js b/dist/static/Index.js
index ad57c34..183d7d6 100644
--- a/dist/static/Index.js
+++ b/dist/static/Index.js
@@ -25,6 +25,10 @@ const Index = (0, jostraca_1.cmp)(function Index(props) {
+
+
+
+
+
+
+
`);
- (0, jostraca_1.each)(entity, (entity) => {
- (0, jostraca_1.Content)(`
- ${entity.Name}
-`);
- });
+ (0, Sidebar_1.Sidebar)({ ctx$ });
+ (0, jostraca_1.Content)(`
+
+
+ `);
+ (0, Intro_1.Intro)({ ctx$ });
+ (0, GettingStarted_1.GettingStarted)({ ctx$ });
+ (0, Entities_1.Entities)({ ctx$ });
+ (0, jostraca_1.Content)(`
+
+
+ `);
});
exports.Main = Main;
//# sourceMappingURL=Main.js.map
\ No newline at end of file
diff --git a/dist/static/Main.js.map b/dist/static/Main.js.map
index b34cc32..fed642a 100644
--- a/dist/static/Main.js.map
+++ b/dist/static/Main.js.map
@@ -1 +1 @@
-{"version":3,"file":"Main.js","sourceRoot":"","sources":["../../src/static/Main.ts"],"names":[],"mappings":";;;AACA,uCAAqE;AAKrE,MAAM,IAAI,GAAG,IAAA,cAAG,EAAC,SAAS,IAAI,CAAC,KAAU;IACvC,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IACtB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;IAEtB,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA;IAEjC,IAAA,kBAAO,EAAC;OACH,KAAK,CAAC,IAAI;CAChB,CAAC,CAAA;IAEA,IAAA,eAAI,EAAC,MAAM,EAAE,CAAC,MAAW,EAAE,EAAE;QAC3B,IAAA,kBAAO,EAAC;QACJ,MAAM,CAAC,IAAI;CAClB,CAAC,CAAA;IACA,CAAC,CAAC,CAAA;AAEJ,CAAC,CAAC,CAAA;AAIA,oBAAI"}
\ No newline at end of file
+{"version":3,"file":"Main.js","sourceRoot":"","sources":["../../src/static/Main.ts"],"names":[],"mappings":";;;AACA,uCAAqE;AAIrE,uCAAmC;AACnC,qDAAiD;AACjD,yCAAqC;AACrC,mCAA+B;AAG/B,MAAM,IAAI,GAAG,IAAA,cAAG,EAAC,SAAS,IAAI,CAAC,KAAU;IACvC,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IACtB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;IAGtB,IAAA,kBAAO,EAAC;;;;;;;;;;;;;;;;;;;;;;;CAuBT,CAAC,CAAA;IACA,IAAA,iBAAO,EAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IACjB,IAAA,kBAAO,EAAC;;+GAEqG,KAAK,CAAC,IAAI;MACnH,CAAC,CAAA;IACL,IAAA,aAAK,EAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IAEf,IAAA,+BAAc,EAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IAExB,IAAA,mBAAQ,EAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IAElB,IAAA,kBAAO,EAAC;;;WAGC,CAAC,CAAA;AACZ,CAAC,CAAC,CAAA;AAGA,oBAAI"}
\ No newline at end of file
diff --git a/dist/static/Sidebar.d.ts b/dist/static/Sidebar.d.ts
new file mode 100644
index 0000000..6639bed
--- /dev/null
+++ b/dist/static/Sidebar.d.ts
@@ -0,0 +1,2 @@
+declare const Sidebar: import("jostraca").Component;
+export { Sidebar };
diff --git a/dist/static/Sidebar.js b/dist/static/Sidebar.js
new file mode 100644
index 0000000..bd63d57
--- /dev/null
+++ b/dist/static/Sidebar.js
@@ -0,0 +1,71 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Sidebar = void 0;
+const jostraca_1 = require("jostraca");
+const languagesSpec_1 = require("./languagesSpec");
+const Sidebar = (0, jostraca_1.cmp)(function Sidebar(props) {
+ const { ctx$ } = props;
+ const { model } = ctx$;
+ const { entity, build } = model.main.sdk;
+ (0, jostraca_1.Content)(`
+
+
+
+ Sections
+ +
+
+
+
+
+
+
+
+ Getting Started
+ +
+
+ `);
+ (0, jostraca_1.each)(build, (lg) => {
+ const spec = languagesSpec_1.languagesSpec[lg.name$];
+ (0, jostraca_1.Content)(`
+ ${spec.Name}
+`);
+ });
+ (0, jostraca_1.Content)(`
+
+
+ `);
+ (0, jostraca_1.each)(entity, (entity) => {
+ (0, jostraca_1.Content)(`
+
+
+ ${entity.Name}
+ +
+
+ `);
+ (0, jostraca_1.each)(build, (lg) => {
+ const spec = languagesSpec_1.languagesSpec[lg.name];
+ (0, jostraca_1.Content)(`
+
+`);
+ });
+ (0, jostraca_1.Content)(`
+
+
+ `);
+ });
+ (0, jostraca_1.Content)(`
+
+
+ `);
+});
+exports.Sidebar = Sidebar;
+//# sourceMappingURL=Sidebar.js.map
\ No newline at end of file
diff --git a/dist/static/Sidebar.js.map b/dist/static/Sidebar.js.map
new file mode 100644
index 0000000..203264e
--- /dev/null
+++ b/dist/static/Sidebar.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../src/static/Sidebar.ts"],"names":[],"mappings":";;;AAAA,uCAA6C;AAG7C,mDAA+C;AAG/C,MAAM,OAAO,GAAG,IAAA,cAAG,EAAC,SAAS,OAAO,CAAC,KAAU;IAC7C,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IACtB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;IAEtB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA;IAExC,IAAA,kBAAO,EAAC;;;gDAGsC,KAAK,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;mEAsBS,CAAC,CAAA;IAClE,IAAA,eAAI,EAAC,KAAK,EAAE,CAAC,EAAO,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,6BAAa,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QACpC,IAAA,kBAAO,EAAC;+FACmF,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;CACrH,CAAC,CAAA;IACA,CAAC,CAAC,CAAA;IACF,IAAA,kBAAO,EAAC;;;YAGE,CAAC,CAAA;IAEX,IAAA,eAAI,EAAC,MAAM,EAAE,CAAC,MAAW,EAAE,EAAE;QAC3B,IAAA,kBAAO,EAAC;kBACM,MAAM;8HACsG,MAAM,CAAC,IAAI;MACnI,MAAM,CAAC,IAAI;;;2BAGU,MAAM,CAAC,IAAI,kCAAkC,CAAC,CAAA;QACrE,IAAA,eAAI,EAAC,KAAK,EAAE,CAAC,EAAO,EAAE,EAAE;YACtB,MAAM,IAAI,GAAG,6BAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YACnC,IAAA,kBAAO,EAAC;iFACmE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;CACtH,CAAC,CAAA;QACE,CAAC,CAAC,CAAA;QACF,IAAA,kBAAO,EAAC;;;WAGD,CAAC,CAAA;IACV,CAAC,CAAC,CAAA;IAEF,IAAA,kBAAO,EAAC;;;UAGA,CAAC,CAAA;AACX,CAAC,CAAC,CAAA;AAIA,0BAAO"}
\ No newline at end of file
diff --git a/dist/static/languagesSpec.d.ts b/dist/static/languagesSpec.d.ts
new file mode 100644
index 0000000..fab4532
--- /dev/null
+++ b/dist/static/languagesSpec.d.ts
@@ -0,0 +1 @@
+export declare const languagesSpec: Record;
diff --git a/dist/static/languagesSpec.js b/dist/static/languagesSpec.js
new file mode 100644
index 0000000..9345362
--- /dev/null
+++ b/dist/static/languagesSpec.js
@@ -0,0 +1,284 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.languagesSpec = void 0;
+const jostraca_1 = require("jostraca");
+exports.languagesSpec = {
+ js: {
+ Name: "JavaScript",
+ name: "javascript",
+ install: (model) => `npm install ${model.name}-sdk`,
+ init: (model, option) => {
+ (0, jostraca_1.Content)(`
+ const client = ${model.Name}SDK.make({`);
+ (0, jostraca_1.each)(option, (opt) => {
+ if (opt.kind == "String") {
+ (0, jostraca_1.Content)(`
+ ${opt.name}: process.env.${model.NAME}_${opt.name.toUpperCase()},`);
+ }
+ });
+ (0, jostraca_1.Content)(`
+ })`);
+ },
+ create: (op, entity) => (0, jostraca_1.Content)(`
+ ${entity.name} = await client.${entity.Name}().${op.name}({
+ foo: "baa",
+ })
+
+ console.log('${entity.Name}', ${entity.name})
+ `),
+ save: (op, entity) => (0, jostraca_1.Content)(`
+ ${entity.name} = await client.${entity.Name}().${op.name}({
+ id: 1,
+ foo: "baa",
+ })
+
+ console.log('${entity.Name}', ${entity.name})
+ `),
+ load: (op, entity) => (0, jostraca_1.Content)(`
+ ${entity.name} = await client.${entity.Name}().${op.name}({
+ id: 1
+ })
+
+ console.log('${entity.Name}', ${entity.name})
+ `),
+ remove: (op, entity) => (0, jostraca_1.Content)(`
+ await client.${entity.Name}().${op.name}({
+ id: 1
+ })
+ `),
+ list: (op, entity) => (0, jostraca_1.Content)(`
+ ${entity.name} = await client.${entity.Name}().${op.name}()
+ console.log('${entity.Name}', ${entity.name})
+ `),
+ },
+ go: {
+ Name: "Go",
+ name: "go",
+ install: (model) => `go get github.com/${model.name}/${model.name}-sdk`,
+ init: (model, option) => {
+ (0, jostraca_1.Content)(`
+ options := ${model.name}sdk.Options{`);
+ (0, jostraca_1.each)(option, (opt) => {
+ if (opt.kind == "String") {
+ const capName = opt.name.charAt(0).toUpperCase() + opt.name.substring(1, opt.name.length);
+ (0, jostraca_1.Content)(`
+ ${capName}: os.Getenv("${model.NAME}_${opt.name.toUpperCase()}"),`);
+ }
+ });
+ (0, jostraca_1.Content)(`
+ }`);
+ },
+ create: (op, entity) => (0, jostraca_1.Content)(`
+ data := ${entity.Name}Data{
+ Foo: "baa"
+ }
+
+ ${entity.name}, err := client.${entity.Name}().${op.Name}(data)
+ if err != nil {
+ fmt.Println("Error running ${entity.Name} ${op.Name}:", err)
+ return
+ }
+
+ fmt.Printf("${entity.Name} %+v\\n", ${entity.name})
+ `),
+ save: (op, entity) => (0, jostraca_1.Content)(`
+ data := ${entity.Name}Data{
+ Id: 1,
+ Foo: "baa",
+ }
+
+ ${entity.name}, err := client.${entity.Name}().${op.Name}(data)
+ if err != nil {
+ fmt.Println("Error running ${entity.Name} ${op.Name}:", err)
+ return
+ }
+
+ fmt.Printf("${entity.Name} %+v\\n", ${entity.name})
+ `),
+ load: (op, entity) => (0, jostraca_1.Content)(`
+ query := Query{
+ Id: 1
+ }
+
+ ${entity.name}, err := client.${entity.Name}().${op.Name}(query)
+ if err != nil {
+ fmt.Println("Error running ${entity.Name} ${op.Name}:", err)
+ return
+ }
+
+ fmt.Printf("${entity.Name} %+v\\n", ${entity.name})
+ `),
+ remove: (op, entity) => (0, jostraca_1.Content)(`
+ query := Query{
+ Id: 1
+ }
+
+ _, err := client.${entity.Name}().${op.Name}(query)
+ if err != nil {
+ fmt.Println("Error running ${entity.Name} ${op.Name}:", err)
+ return
+ }
+ `),
+ list: (op, entity) => (0, jostraca_1.Content)(`
+ ${entity.name}, err := client.${entity.Name}().${op.Name}()
+ if err != nil {
+ log.Println("Error running ${entity.name} ${op.Name}:", err)
+ return
+ }
+
+ log.Printf("${entity.Name} %+v\\n", ${entity.name})
+ `),
+ },
+ py: {
+ Name: "Python",
+ name: "python",
+ install: (model) => `pip3 install ${model.name}_sdk`,
+ init: (model, option) => {
+ (0, jostraca_1.Content)(`
+ client = ${model.Name}SDK.make((`);
+ (0, jostraca_1.each)(option, (opt) => {
+ if (opt.kind == "String") {
+ (0, jostraca_1.Content)(`
+ ${opt.name}: environ['${model.NAME}_${opt.name.toUpperCase()}'],`);
+ }
+ });
+ (0, jostraca_1.Content)(`
+ ))`);
+ },
+ create: (op, entity) => (0, jostraca_1.Content)(`
+ ${entity.name} = client.${entity.Name}().${op.name}(Data(
+ foo: "baa",
+ ))
+
+ print('${entity.Name}', ${entity.name})
+ `),
+ save: (op, entity) => (0, jostraca_1.Content)(`
+ ${entity.name} = client.${entity.Name}().${op.name}(Data(
+ id = 1,
+ foo = "baa",
+ ))
+
+ print('${entity.Name}', ${entity.name})
+ `),
+ load: (op, entity) => (0, jostraca_1.Content)(`
+ ${entity.name} = client.${entity.Name}().${op.name}({
+ "id": 1
+ })
+
+ print('${entity.Name}', ${entity.name})
+ `),
+ remove: (op, entity) => (0, jostraca_1.Content)(`
+ client.${entity.Name}().${op.name}({
+ "id": 1
+ })
+ `),
+ list: (op, entity) => (0, jostraca_1.Content)(`
+ ${entity.name} = client.${entity.Name}().${op.name}()
+ print('${entity.Name}', ${entity.name})
+ `),
+ },
+ php: {
+ Name: "PHP",
+ name: "php",
+ install: (model) => `composer install ${model.name}-sdk`,
+ init: (model, option) => {
+ (0, jostraca_1.Content)(`
+ $client = ${model.Name}SDK([ `);
+ (0, jostraca_1.each)(option, (opt) => {
+ if (opt.kind == "String") {
+ (0, jostraca_1.Content)(`
+ '${opt.name}' => getenv('${model.NAME}_${opt.name.toUpperCase()}'),`);
+ }
+ });
+ (0, jostraca_1.Content)(`
+ ]);`);
+ },
+ create: (op, entity) => (0, jostraca_1.Content)(`
+ $${entity.name} = new ${entity.Name}($client);
+ $${entity.name} = $${entity.name}->${op.name}([
+ 'foo' => "baa",
+ ]);
+
+ print_r("${entity.Name} " . $${entity.name});
+ `),
+ save: (op, entity) => (0, jostraca_1.Content)(`
+ $${entity.name} = new ${entity.Name}($client);
+ $${entity.name} = $${entity.name}->${op.name}([
+ 'id' => 1,
+ 'foo' => "baa",
+ ]);
+
+ print_r("${entity.Name} " . $${entity.name});
+ `),
+ load: (op, entity) => (0, jostraca_1.Content)(`
+ $${entity.name} = new ${entity.Name}($client);
+ $${entity.name} = $${entity.name}->${op.name}([
+ "id" => 1
+ ]);
+
+ print_r("${entity.Name} " . $${entity.name});
+ `),
+ remove: (op, entity) => (0, jostraca_1.Content)(`
+ $${entity.name} = new ${entity.Name}($client);
+ $${entity.name}->${op.name}([
+ "id" => 1
+ ]);
+ `),
+ list: (op, entity) => (0, jostraca_1.Content)(`
+ $${entity.name} = new ${entity.Name}($client);
+ $${entity.name} = $${entity.name}->${op.name}();
+ print_r("${entity.Name} " . $${entity.name});
+ `),
+ },
+ rb: {
+ Name: "Ruby",
+ name: "ruby",
+ install: (model) => `gem install ${model.name}-sdk`,
+ init: (model, option) => {
+ (0, jostraca_1.Content)(`
+ const client = ${model.Name}SDK.new({`);
+ (0, jostraca_1.each)(option, (opt) => {
+ if (opt.kind == "String") {
+ const capName = opt.name.charAt(0).toUpperCase() + opt.name.substring(1, opt.name.length);
+ (0, jostraca_1.Content)(`
+ ${capName}: ENV['${model.NAME}_${opt.name.toUpperCase()}'],`);
+ }
+ });
+ (0, jostraca_1.Content)(`
+ }`);
+ },
+ create: (op, entity) => (0, jostraca_1.Content)(`
+ ${entity.name} = client.${entity.Name}.${op.name}({
+ foo: "baa"
+ })
+
+ puts "${entity.Name} #{${entity.name}}"
+ `),
+ save: (op, entity) => (0, jostraca_1.Content)(`
+ ${entity.name} = client.${entity.Name}.${op.name}({
+ id: 1,
+ foo: "baa",
+ })
+
+ puts "${entity.Name} #{${entity.name}}"
+ `),
+ load: (op, entity) => (0, jostraca_1.Content)(`
+ ${entity.name} = client.${entity.Name}.${op.name}({
+ id: 1
+ })
+
+ puts "${entity.Name} #{${entity.name}}"
+ `),
+ remove: (op, entity) => (0, jostraca_1.Content)(`
+ client.${entity.Name}.${op.name}({
+ id: 1
+ })
+
+ `),
+ list: (op, entity) => (0, jostraca_1.Content)(`
+ ${entity.name} = client.${entity.Name}.${op.name}()
+ puts "${entity.Name} #{${entity.name}}"
+ `),
+ },
+};
+//# sourceMappingURL=languagesSpec.js.map
\ No newline at end of file
diff --git a/dist/static/languagesSpec.js.map b/dist/static/languagesSpec.js.map
new file mode 100644
index 0000000..3c26da3
--- /dev/null
+++ b/dist/static/languagesSpec.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"languagesSpec.js","sourceRoot":"","sources":["../../src/static/languagesSpec.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 8f65007..e7b31ae 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "@voxgig/docgen",
- "version": "0.2.2",
+ "version": "0.3.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@voxgig/docgen",
- "version": "0.2.2",
+ "version": "0.3.0",
"license": "MIT",
"dependencies": {
"@redocly/openapi-core": "^1.25.7",
@@ -29,6 +29,7 @@
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz",
"integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -44,6 +45,7 @@
"ppc64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"aix"
@@ -60,6 +62,7 @@
"arm"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"android"
@@ -76,6 +79,7 @@
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"android"
@@ -92,6 +96,7 @@
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"android"
@@ -108,6 +113,7 @@
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
@@ -124,6 +130,7 @@
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
@@ -140,6 +147,7 @@
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"freebsd"
@@ -156,6 +164,7 @@
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"freebsd"
@@ -172,6 +181,7 @@
"arm"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
@@ -188,6 +198,7 @@
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
@@ -204,6 +215,7 @@
"ia32"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
@@ -220,6 +232,7 @@
"loong64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
@@ -236,6 +249,7 @@
"mips64el"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
@@ -252,6 +266,7 @@
"ppc64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
@@ -268,6 +283,7 @@
"riscv64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
@@ -284,6 +300,7 @@
"s390x"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
@@ -300,6 +317,7 @@
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
@@ -316,6 +334,7 @@
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"netbsd"
@@ -332,6 +351,7 @@
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"openbsd"
@@ -348,6 +368,7 @@
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"openbsd"
@@ -364,6 +385,7 @@
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"sunos"
@@ -380,6 +402,7 @@
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"win32"
@@ -396,6 +419,7 @@
"ia32"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"win32"
@@ -412,6 +436,7 @@
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"win32"
@@ -425,6 +450,7 @@
"resolved": "https://registry.npmjs.org/@hapi/code/-/code-9.0.3.tgz",
"integrity": "sha512-g50b7qz861Xfnt1NWtcba1zVxlHLPDJh/4ys6pva6jMmQgbTDLgAkbORDHYbVSA7mYxZ2cHZ2n7ZeFb5j/ZhQw==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"@hapi/hoek": "^11.0.2"
}
@@ -433,13 +459,15 @@
"version": "11.0.4",
"resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-11.0.4.tgz",
"integrity": "sha512-PnsP5d4q7289pS2T2EgGz147BFJ2Jpb4yrEdkpz2IhgEUzos1S7HTl7ezWh1yfYzYlj89KzLdCRkqsP6SIryeQ==",
- "dev": true
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/@jsonic/directive": {
"version": "0.11.4",
"resolved": "https://registry.npmjs.org/@jsonic/directive/-/directive-0.11.4.tgz",
"integrity": "sha512-rzZ5bQJ8jAO2B2+DhQ6puo9AVF+lqVMFCdU/DKRb5ZGGpiMcnsdPW55x//yWY/LHfA4IXTPVhav4z+O+1iZjhg==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"@jsonic/jsonic-next": ">=2.12.1"
}
@@ -449,6 +477,7 @@
"resolved": "https://registry.npmjs.org/@jsonic/expr/-/expr-0.8.3.tgz",
"integrity": "sha512-4AtK7L6C4FVju65CqEnsX6nZtSAtLyw3vSJ84hXz+2FnFfghaugP97uAzqFR0iNUqnyujQWdzeOVM51LowGZKA==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"@jsonic/jsonic-next": ">=2.12.0"
}
@@ -457,6 +486,7 @@
"version": "2.12.1",
"resolved": "https://registry.npmjs.org/@jsonic/jsonic-next/-/jsonic-next-2.12.1.tgz",
"integrity": "sha512-5s9YUgiYLyKgwBbawEvtMGzuwWHqZobJ7eDH06KihV9INst/S9PxRxA7/OYrMX6TD7Cs5rKPH5uM1qBCH5JVKQ==",
+ "license": "MIT",
"bin": {
"jsonic": "bin/jsonic"
}
@@ -466,6 +496,7 @@
"resolved": "https://registry.npmjs.org/@jsonic/multisource/-/multisource-1.2.0.tgz",
"integrity": "sha512-Bp6sDAYPLrNsnT4b8jKsS26kTZfHTYdDlKqjkL5WENKsOiNN0r6pOFXr/+808JedodNm5UINLUdKKqRCDJ17WQ==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"@jsonic/directive": ">=0.11.4",
"@jsonic/jsonic-next": ">=2.12.1"
@@ -476,6 +507,7 @@
"resolved": "https://registry.npmjs.org/@jsonic/path/-/path-0.7.0.tgz",
"integrity": "sha512-YfEGrCxfNvcdqkvnIGPswaSOOuCAd67E/xcBn/x4iF9ZKxFTGPbY3aFO/89xJlvaqH9wgogDyIycmwP6q4jsyA==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"@jsonic/jsonic-next": ">=2.12.1"
}
@@ -485,6 +517,7 @@
"resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz",
"integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=10.0"
},
@@ -501,6 +534,7 @@
"resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz",
"integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@jsonjoy.com/base64": "^1.1.1",
"@jsonjoy.com/util": "^1.1.2",
@@ -523,6 +557,7 @@
"resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.5.0.tgz",
"integrity": "sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=10.0"
},
@@ -538,6 +573,7 @@
"version": "8.11.2",
"resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.2.tgz",
"integrity": "sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==",
+ "license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
"json-schema-traverse": "^1.0.0",
@@ -552,12 +588,14 @@
"node_modules/@redocly/config": {
"version": "0.12.1",
"resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.12.1.tgz",
- "integrity": "sha512-RW3rSirfsPdr0uvATijRDU3f55SuZV3m7/ppdTDvGw4IB0cmeZRkFmqTrchxMqWP50Gfg1tpHnjdxUCNo0E2qg=="
+ "integrity": "sha512-RW3rSirfsPdr0uvATijRDU3f55SuZV3m7/ppdTDvGw4IB0cmeZRkFmqTrchxMqWP50Gfg1tpHnjdxUCNo0E2qg==",
+ "license": "MIT"
},
"node_modules/@redocly/openapi-core": {
"version": "1.25.7",
"resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.25.7.tgz",
"integrity": "sha512-qidGKk4Bq0Ud0O8gRuXnDSLwVopwrf5+roNvpkvdQPVIHFSYJ5dscJkThdsn7OW8bNqahumQPWWczEh9l93FZw==",
+ "license": "MIT",
"dependencies": {
"@redocly/ajv": "^8.11.2",
"@redocly/config": "^0.12.1",
@@ -580,13 +618,15 @@
"version": "4.0.9",
"resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz",
"integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/node": {
"version": "22.7.6",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.6.tgz",
"integrity": "sha512-/d7Rnj0/ExXDMcioS78/kf1lMzYk4BZV8MZGTBKzTGZ6/406ukkbYlIsZmMPhcR5KlkunDHQLrtAVmSq7r+mSw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"undici-types": "~6.19.2"
}
@@ -595,6 +635,7 @@
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/@voxgig/apidef/-/apidef-0.2.0.tgz",
"integrity": "sha512-lHuzmqRliCEZe+Y3b3GcrWcxqsJsUNrx1MxOjD8zhTo2Kj1AJncT8dNVn8qRbopuXg2MvvIggUeqGkbZOavIqg==",
+ "license": "MIT",
"dependencies": {
"@redocly/openapi-core": "^1.25.7",
"chokidar": "^4.0.1",
@@ -605,6 +646,7 @@
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
"integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
+ "license": "MIT",
"dependencies": {
"debug": "^4.3.4"
},
@@ -617,6 +659,7 @@
"resolved": "https://registry.npmjs.org/aontu/-/aontu-0.22.0.tgz",
"integrity": "sha512-Vd2IkAZu0Xlpwx9H5ICIqVK6oMSXi8vuGT2mhwvotzXBY5O7dPPfZ3Z5BdvBgyBfBJCqJXMHnERnq8QB52yNfQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jsonic/directive": "^0.11.4",
"@jsonic/expr": "^0.8.3",
@@ -631,17 +674,20 @@
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "license": "Python-2.0"
},
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "license": "MIT"
},
"node_modules/brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
@@ -650,6 +696,7 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz",
"integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==",
+ "license": "MIT",
"dependencies": {
"readdirp": "^4.0.1"
},
@@ -663,12 +710,14 @@
"node_modules/colorette": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
- "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g=="
+ "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==",
+ "license": "MIT"
},
"node_modules/debug": {
"version": "4.3.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
"integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "license": "MIT",
"dependencies": {
"ms": "^2.1.3"
},
@@ -687,6 +736,7 @@
"integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==",
"dev": true,
"hasInstallScript": true,
+ "license": "MIT",
"bin": {
"esbuild": "bin/esbuild"
},
@@ -723,12 +773,14 @@
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "license": "MIT"
},
"node_modules/https-proxy-agent": {
"version": "7.0.5",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz",
"integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==",
+ "license": "MIT",
"dependencies": {
"agent-base": "^7.0.2",
"debug": "4"
@@ -742,6 +794,7 @@
"resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz",
"integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10.18"
}
@@ -750,6 +803,7 @@
"version": "0.7.7",
"resolved": "https://registry.npmjs.org/jostraca/-/jostraca-0.7.7.tgz",
"integrity": "sha512-II9yzfSqvtMER7GuX1vJXY9Rg87tA3Nk+sOb1ZypZV0I/b54R+O5P1Nzmmpp2WnHS1m+xfIM35AanrfIY4I5Xg==",
+ "license": "MIT",
"dependencies": {
"@jsonic/jsonic-next": "^2.12.1"
}
@@ -758,6 +812,7 @@
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz",
"integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -766,6 +821,7 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -778,6 +834,7 @@
"resolved": "https://registry.npmjs.org/json-schema-to-ts/-/json-schema-to-ts-3.1.1.tgz",
"integrity": "sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.18.3",
"ts-algebra": "^2.0.0"
@@ -789,18 +846,21 @@
"node_modules/json-schema-traverse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "license": "MIT"
},
"node_modules/lodash.isequal": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
- "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
+ "license": "MIT"
},
"node_modules/memfs": {
"version": "4.14.0",
"resolved": "https://registry.npmjs.org/memfs/-/memfs-4.14.0.tgz",
"integrity": "sha512-JUeY0F/fQZgIod31Ja1eJgiSxLn7BfQlCnqhwXFBzFHEw63OdLK7VJUJ7bnzNsWgCyoUP5tEp1VRY8rDaYzqOA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@jsonjoy.com/json-pack": "^1.0.3",
"@jsonjoy.com/util": "^1.3.0",
@@ -819,6 +879,7 @@
"version": "5.1.6",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -829,12 +890,14 @@
"node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT"
},
"node_modules/node-fetch": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "license": "MIT",
"dependencies": {
"whatwg-url": "^5.0.0"
},
@@ -854,6 +917,7 @@
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
"integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -862,6 +926,7 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz",
"integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==",
+ "license": "MIT",
"engines": {
"node": ">= 14.16.0"
},
@@ -874,12 +939,14 @@
"version": "0.14.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/require-from-string": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -889,6 +956,7 @@
"resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz",
"integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==",
"dev": true,
+ "license": "Unlicense",
"engines": {
"node": ">=10.18"
},
@@ -899,13 +967,15 @@
"node_modules/tr46": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "license": "MIT"
},
"node_modules/tree-dump": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz",
"integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=10.0"
},
@@ -921,19 +991,22 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ts-algebra/-/ts-algebra-2.0.0.tgz",
"integrity": "sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/tslib": {
"version": "2.8.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz",
"integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==",
- "dev": true
+ "dev": true,
+ "license": "0BSD"
},
"node_modules/typescript": {
"version": "5.6.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
"integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
"dev": true,
+ "license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -946,22 +1019,26 @@
"version": "6.19.8",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
"integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/uri-js-replace": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/uri-js-replace/-/uri-js-replace-1.0.1.tgz",
- "integrity": "sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g=="
+ "integrity": "sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==",
+ "license": "MIT"
},
"node_modules/webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "license": "BSD-2-Clause"
},
"node_modules/whatwg-url": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "license": "MIT",
"dependencies": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
@@ -970,7 +1047,8 @@
"node_modules/yaml-ast-parser": {
"version": "0.0.43",
"resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz",
- "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A=="
+ "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==",
+ "license": "Apache-2.0"
}
}
}
diff --git a/src/static/Entities.ts b/src/static/Entities.ts
new file mode 100644
index 0000000..09df1ae
--- /dev/null
+++ b/src/static/Entities.ts
@@ -0,0 +1,198 @@
+import { cmp, each, Content } from 'jostraca'
+
+
+import { languagesSpec } from './languagesSpec'
+
+
+const Entities = cmp(function Entities(props: any) {
+ const { ctx$ } = props
+ const { model } = ctx$
+
+ const { entity, build } = model.main.sdk
+
+ Content(`
+
+
Entities `)
+ each(entity, (entity: any) => {
+ Content(`
+
+ ${entity.Name}
+ `)
+ each(build, (lg: any) => {
+ const spec = languagesSpec[lg.name$]
+ Content(`
+
+
+
+
+ Methods
+ `)
+ each(entity.op, (op: any) => {
+ if (op.name == "list") {
+ Content(`
+
+
+ ${op.Name} ${entity.Name}
+
+ Lists all matching ${entity.Name} entities based on the provided query criteria.
+ This method is ideal for retrieving collections of ${entity.Name} entities that meet certain criteria,
+ enabling batch operations and bulk data handling.
+
+ Parameters:
+
+ query :
+ optional -
+ The criteria to filter ${entity.name} entities for listing.
+ If omitted, all entities are listed.
+
+
+ Return:
+ List of ${entity.Name} Entities -
+ A list with one or more ${entity.Name} instances.
+
+
+
+ `); spec.list(op, entity); Content(`
+
+
+ `)
+ } else if (op.name == "create") {
+ Content(`
+
+
+ ${op.Name} ${entity.Name}
+
+ ${op.Name} an instance of ${entity.name}.
+ Returns the created ${entity.name},
+ allowing easy access and manipulation within your application.
+
+
+ Parameters:
+
+ data :
+ optional -
+ The data for the new ${entity.name}.
+
+ Return:
+ ${entity.Name} -
+ The created ${entity.Name} instance.
+
+
+
+
+ `); spec.create(op, entity); Content(`
+
+
+ `)
+ } else if (op.name == "save") {
+ Content(`
+
+
+ ${op.Name} ${entity.Name}
+
+ It saves an instance of ${entity.Name},
+ optionally updating it with new data.
+ This method persists the instance's data,
+ ensuring updates are stored consistently.
+
+ Parameters:
+
+ id :
+ required -
+ The ${entity.name} identifier to be updated.
+
+ data :
+ optional -
+ The new ${entity.name} data.
+
+
+ Return:
+ ${entity.Name} -
+ The updated ${entity.Name} instance.
+
+
+
+
+ `); spec.save(op, entity); Content(`
+
+
+ `)
+ } else if (op.name == "remove") {
+ Content(`
+
+
+ ${op.Name} ${entity.Name}
+
+
+ Deletes a matching ${entity.Name} specified by the query parameter.
+ This method removes a single ${entity.Name} instance based on the query parameters.
+
+ Parameters:
+
+ query :
+ required -
+ The query criteria for identifying the ${entity.name} to remove.
+
+
+ Return:
+ N/A
+
+
+
+
+
+ `); spec.remove(op, entity); Content(`
+
+
+ `)
+ } else {
+ Content(`
+
+
+ ${op.Name} ${entity.Name}
+
+
+ Loads a single, matching ${entity.name}'s data into its instance.
+ The query parameter should specify the identifier or criteria for the ${entity.Name} to be retrieved,
+ effectively syncing the instance with stored entity data.
+
+ Parameters:
+
+ query :
+ required -
+ The query criteria used to identify and load the ${entity.name} data.
+
+
+ Return:
+ ${entity.Name} -
+ The ${entity.Name} instance.
+
+
+
+
+
+ `); spec.load(op, entity); Content(`
+
+
+ `)
+ }
+ })
+ Content(`
+
+
+ `)
+ })
+ Content(`
+
+
+ `)
+ })
+ Content(`
+
+ `)
+})
+
+
+export {
+ Entities
+}
diff --git a/src/static/GettingStarted.ts b/src/static/GettingStarted.ts
new file mode 100644
index 0000000..3a49969
--- /dev/null
+++ b/src/static/GettingStarted.ts
@@ -0,0 +1,66 @@
+import { cmp, each, Content } from 'jostraca'
+
+import { languagesSpec } from './languagesSpec'
+
+
+const GettingStarted = cmp(function GettingStarted(props: any) {
+ const { ctx$ } = props
+ const { model } = ctx$
+
+ const { option, options, build } = model.main.sdk
+
+ const parsedOptions = option ? option : options
+
+ Content(`
+
+
Getting Started `)
+ each(build, (lg: any) => {
+ const spec = languagesSpec[lg.name$]
+ Content(`
+
+
+
+
+
+
+ 1. Install SDK
+
+ Use the following command to install the SDK for ${spec.Name}. This SDK provides all necessary functions to interact with our APIs easily.
+
+
+
+
+ ${spec.install(model)}
+
+
+
+
+
+ 2. Initialize SDK
+
+ The ${model.Name} SDK provides a simple interface to interact with the API, allowing you to easily create client instances for working with different business entities. This is a code snippet to initialize the SDK using environment variables.
+
+
+
+
+
+ `); spec.init(model, parsedOptions); Content(`
+
+
+
+
+
+`)
+ })
+ Content(`
+
+`)
+})
+
+
+export {
+ GettingStarted
+}
+
+
diff --git a/src/static/Index.ts b/src/static/Index.ts
index cad3105..f0c7fbc 100644
--- a/src/static/Index.ts
+++ b/src/static/Index.ts
@@ -37,6 +37,10 @@ const Index = cmp(function Index(props: any) {
+
+
+
+
- each(entity, (entity: any) => {
- Content(`
- ${entity.Name}
+
+
`)
- })
+ Sidebar({ ctx$ })
+ Content(`
+
+
+ `)
+ Intro({ ctx$ })
-})
+ GettingStarted({ ctx$ })
+ Entities({ ctx$ })
+
+ Content(`
+
+
+ `)
+})
export {
Main
diff --git a/src/static/Sidebar.ts b/src/static/Sidebar.ts
new file mode 100644
index 0000000..512c203
--- /dev/null
+++ b/src/static/Sidebar.ts
@@ -0,0 +1,79 @@
+import { cmp, each, Content } from 'jostraca'
+
+
+import { languagesSpec } from './languagesSpec'
+
+
+const Sidebar = cmp(function Sidebar(props: any) {
+ const { ctx$ } = props
+ const { model } = ctx$
+
+ const { entity, build } = model.main.sdk
+
+ Content(`
+
+
+
+ Sections
+ +
+
+
+
+
+
+
+
+ Getting Started
+ +
+
+ `)
+ each(build, (lg: any) => {
+ const spec = languagesSpec[lg.name$]
+ Content(`
+ ${spec.Name}
+`)
+ })
+ Content(`
+
+
+ `)
+
+ each(entity, (entity: any) => {
+ Content(`
+
+
+ ${entity.Name}
+ +
+
+ `)
+ each(build, (lg: any) => {
+ const spec = languagesSpec[lg.name]
+ Content(`
+
+`)
+ })
+ Content(`
+
+
+ `)
+ })
+
+ Content(`
+
+
+ `)
+})
+
+
+export {
+ Sidebar
+}
diff --git a/src/static/index.css b/src/static/index.css
index d224431..adc68fa 100644
--- a/src/static/index.css
+++ b/src/static/index.css
@@ -1,3 +1,3 @@
h1 {
- color: red;
+ color: red;
}
diff --git a/src/static/languagesSpec.ts b/src/static/languagesSpec.ts
new file mode 100644
index 0000000..ad4916a
--- /dev/null
+++ b/src/static/languagesSpec.ts
@@ -0,0 +1,282 @@
+
+import { each, Content } from 'jostraca'
+
+export const languagesSpec: Record = {
+ js: {
+ Name: "JavaScript",
+ name: "javascript",
+ install: (model: any) => `npm install ${model.name}-sdk`,
+ init: (model: any, option: any) => {
+ Content(`
+ const client = ${model.Name}SDK.make({`)
+ each(option, (opt: any) => {
+ if (opt.kind == "String") {
+ Content(`
+ ${opt.name}: process.env.${model.NAME}_${opt.name.toUpperCase()},`)
+ }
+ })
+ Content(`
+ })`)
+ },
+ create: (op: any, entity: any) => Content(`
+ ${entity.name} = await client.${entity.Name}().${op.name}({
+ foo: "baa",
+ })
+
+ console.log('${entity.Name}', ${entity.name})
+ `),
+ save: (op: any, entity: any) => Content(`
+ ${entity.name} = await client.${entity.Name}().${op.name}({
+ id: 1,
+ foo: "baa",
+ })
+
+ console.log('${entity.Name}', ${entity.name})
+ `),
+ load: (op: any, entity: any) => Content(`
+ ${entity.name} = await client.${entity.Name}().${op.name}({
+ id: 1
+ })
+
+ console.log('${entity.Name}', ${entity.name})
+ `),
+ remove: (op: any, entity: any) => Content(`
+ await client.${entity.Name}().${op.name}({
+ id: 1
+ })
+ `),
+ list: (op: any, entity: any) => Content(`
+ ${entity.name} = await client.${entity.Name}().${op.name}()
+ console.log('${entity.Name}', ${entity.name})
+ `),
+ },
+ go: {
+ Name: "Go",
+ name: "go",
+ install: (model: any) => `go get github.com/${model.name}/${model.name}-sdk`,
+ init: (model: any, option: any) => {
+ Content(`
+ options := ${model.name}sdk.Options{`)
+ each(option, (opt: any) => {
+ if (opt.kind == "String") {
+ const capName = opt.name.charAt(0).toUpperCase() + opt.name.substring(1, opt.name.length);
+ Content(`
+ ${capName}: os.Getenv("${model.NAME}_${opt.name.toUpperCase()}"),`)
+ }
+ })
+ Content(`
+ }`)
+ },
+ create: (op: any, entity: any) => Content(`
+ data := ${entity.Name}Data{
+ Foo: "baa"
+ }
+
+ ${entity.name}, err := client.${entity.Name}().${op.Name}(data)
+ if err != nil {
+ fmt.Println("Error running ${entity.Name} ${op.Name}:", err)
+ return
+ }
+
+ fmt.Printf("${entity.Name} %+v\\n", ${entity.name})
+ `),
+ save: (op: any, entity: any) => Content(`
+ data := ${entity.Name}Data{
+ Id: 1,
+ Foo: "baa",
+ }
+
+ ${entity.name}, err := client.${entity.Name}().${op.Name}(data)
+ if err != nil {
+ fmt.Println("Error running ${entity.Name} ${op.Name}:", err)
+ return
+ }
+
+ fmt.Printf("${entity.Name} %+v\\n", ${entity.name})
+ `),
+ load: (op: any, entity: any) => Content(`
+ query := Query{
+ Id: 1
+ }
+
+ ${entity.name}, err := client.${entity.Name}().${op.Name}(query)
+ if err != nil {
+ fmt.Println("Error running ${entity.Name} ${op.Name}:", err)
+ return
+ }
+
+ fmt.Printf("${entity.Name} %+v\\n", ${entity.name})
+ `),
+ remove: (op: any, entity: any) => Content(`
+ query := Query{
+ Id: 1
+ }
+
+ _, err := client.${entity.Name}().${op.Name}(query)
+ if err != nil {
+ fmt.Println("Error running ${entity.Name} ${op.Name}:", err)
+ return
+ }
+ `),
+ list: (op: any, entity: any) => Content(`
+ ${entity.name}, err := client.${entity.Name}().${op.Name}()
+ if err != nil {
+ log.Println("Error running ${entity.name} ${op.Name}:", err)
+ return
+ }
+
+ log.Printf("${entity.Name} %+v\\n", ${entity.name})
+ `),
+ },
+ py: {
+ Name: "Python",
+ name: "python",
+ install: (model: any) => `pip3 install ${model.name}_sdk`,
+ init: (model: any, option: any) => {
+ Content(`
+ client = ${model.Name}SDK.make((`)
+ each(option, (opt: any) => {
+ if (opt.kind == "String") {
+ Content(`
+ ${opt.name}: environ['${model.NAME}_${opt.name.toUpperCase()}'],`)
+ }
+ })
+ Content(`
+ ))`)
+ },
+ create: (op: any, entity: any) => Content(`
+ ${entity.name} = client.${entity.Name}().${op.name}(Data(
+ foo: "baa",
+ ))
+
+ print('${entity.Name}', ${entity.name})
+ `),
+ save: (op: any, entity: any) => Content(`
+ ${entity.name} = client.${entity.Name}().${op.name}(Data(
+ id = 1,
+ foo = "baa",
+ ))
+
+ print('${entity.Name}', ${entity.name})
+ `),
+ load: (op: any, entity: any) => Content(`
+ ${entity.name} = client.${entity.Name}().${op.name}({
+ "id": 1
+ })
+
+ print('${entity.Name}', ${entity.name})
+ `),
+ remove: (op: any, entity: any) => Content(`
+ client.${entity.Name}().${op.name}({
+ "id": 1
+ })
+ `),
+ list: (op: any, entity: any) => Content(`
+ ${entity.name} = client.${entity.Name}().${op.name}()
+ print('${entity.Name}', ${entity.name})
+ `),
+ },
+ php: {
+ Name: "PHP",
+ name: "php",
+ install: (model: any) => `composer install ${model.name}-sdk`,
+ init: (model: any, option: any) => {
+ Content(`
+ $client = ${model.Name}SDK([ `)
+ each(option, (opt: any) => {
+ if (opt.kind == "String") {
+ Content(`
+ '${opt.name}' => getenv('${model.NAME}_${opt.name.toUpperCase()}'),`)
+ }
+ })
+ Content(`
+ ]);`)
+ },
+ create: (op: any, entity: any) => Content(`
+ $${entity.name} = new ${entity.Name}($client);
+ $${entity.name} = $${entity.name}->${op.name}([
+ 'foo' => "baa",
+ ]);
+
+ print_r("${entity.Name} " . $${entity.name});
+ `),
+ save: (op: any, entity: any) => Content(`
+ $${entity.name} = new ${entity.Name}($client);
+ $${entity.name} = $${entity.name}->${op.name}([
+ 'id' => 1,
+ 'foo' => "baa",
+ ]);
+
+ print_r("${entity.Name} " . $${entity.name});
+ `),
+ load: (op: any, entity: any) => Content(`
+ $${entity.name} = new ${entity.Name}($client);
+ $${entity.name} = $${entity.name}->${op.name}([
+ "id" => 1
+ ]);
+
+ print_r("${entity.Name} " . $${entity.name});
+ `),
+ remove: (op: any, entity: any) => Content(`
+ $${entity.name} = new ${entity.Name}($client);
+ $${entity.name}->${op.name}([
+ "id" => 1
+ ]);
+ `),
+ list: (op: any, entity: any) => Content(`
+ $${entity.name} = new ${entity.Name}($client);
+ $${entity.name} = $${entity.name}->${op.name}();
+ print_r("${entity.Name} " . $${entity.name});
+ `),
+ },
+ rb: {
+ Name: "Ruby",
+ name: "ruby",
+ install: (model: any) => `gem install ${model.name}-sdk`,
+ init: (model: any, option: any) => {
+ Content(`
+ const client = ${model.Name}SDK.new({`)
+ each(option, (opt: any) => {
+ if (opt.kind == "String") {
+ const capName = opt.name.charAt(0).toUpperCase() + opt.name.substring(1, opt.name.length);
+ Content(`
+ ${capName}: ENV['${model.NAME}_${opt.name.toUpperCase()}'],`)
+ }
+ })
+ Content(`
+ }`)
+ },
+ create: (op: any, entity: any) => Content(`
+ ${entity.name} = client.${entity.Name}.${op.name}({
+ foo: "baa"
+ })
+
+ puts "${entity.Name} #{${entity.name}}"
+ `),
+ save: (op: any, entity: any) => Content(`
+ ${entity.name} = client.${entity.Name}.${op.name}({
+ id: 1,
+ foo: "baa",
+ })
+
+ puts "${entity.Name} #{${entity.name}}"
+ `),
+ load: (op: any, entity: any) => Content(`
+ ${entity.name} = client.${entity.Name}.${op.name}({
+ id: 1
+ })
+
+ puts "${entity.Name} #{${entity.name}}"
+ `),
+ remove: (op: any, entity: any) => Content(`
+ client.${entity.Name}.${op.name}({
+ id: 1
+ })
+
+ `),
+ list: (op: any, entity: any) => Content(`
+ ${entity.name} = client.${entity.Name}.${op.name}()
+ puts "${entity.Name} #{${entity.name}}"
+ `),
+ },
+}
diff --git a/test/docgen.test.ts b/test/docgen.test.ts
index 07f071a..8fe3aa9 100644
--- a/test/docgen.test.ts
+++ b/test/docgen.test.ts
@@ -49,7 +49,7 @@ describe('docgen', () => {
expect(voljson).equal({
'/top/doc/static/src': null,
'/top/doc/static/dist/index.html':
- '\n\n\n \n \n \n \n \n \n \n \n\n \n \n\n\n undefined SDK Documentation \n\n \n \n\n \n \n\n',
+ `\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n\n\n\n\n\n\n\n \n \n Sections\n + \n \n \n \n\n\n\n \n Getting Started\n + \n \n \n \n \n \n \n \n\n \n \n
\n
\n Introduction \n\n \n Welcome to the undefined SDK documentation. This guide will help you integrate and use our SDK effectively.\n
\n\n \n This comprehensive documentation will guide you through the undefined SDK, designed to simplify integration with our APIs.\n Whether working with multiple languages, you'll find everything you need to\n get started and efficiently manage its business entities.\n
\n\n \n The undefined SDK adopts an entity-oriented approach, mapping business logic directly to your code without the need to \n handle individual endpoint paths. With this SDK, you can create multiple concurrent client instances, each providing\n intuitive methods for managing and interacting with your business entities.\n
\n\n \n Browse the sections below to explore how to install, initialize, and use the SDK for each supported language.\n
\n\n \n
\n \n
\n
Getting Started \n\n\n
\n
Entities \n\n \n
\n \n \n \n \n\n \n \n \n\n`,
'/top/.jostraca/jostraca.json.log': voljson['/top/.jostraca/jostraca.json.log'],
})
})