namirasoft-site-map 1.4.46 → 1.4.48
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/SKILL.md +167 -0
- package/dist/NamirasoftMap.d.ts +4 -0
- package/dist/NamirasoftMap.js +4 -0
- package/dist/NamirasoftMap.js.map +1 -1
- package/logo.png +0 -0
- package/package.json +21 -19
- package/src/NamirasoftMap.ts +6 -0
- package/tsconfig.json +3 -0
package/SKILL.md
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: namirasoft-site-map
|
|
3
|
+
description: Use the namirasoft-site-map registry when working in projects that import "namirasoft-site-map" and need to resolve Namirasoft product metadata, locate a table across products, build front-end view/list/new/edit links, or wire a TokenManager into every Namirasoft<X>MetaDatabase at once. Trigger when the user asks how to look up a table by short name, find which product owns a given product_id, iterate over every Namirasoft product registered in an app, or when their package.json depends on "namirasoft-site-map".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# namirasoft-site-map
|
|
7
|
+
|
|
8
|
+
A single-class TypeScript package that aggregates every `Namirasoft<X>MetaDatabase` (account, access, payment, api-product, log, etc.) into one `NamirasoftMap` registry. It is the canonical entry point for cross-product table/product lookups and for fanning a `TokenManager` out to all product clients.
|
|
9
|
+
|
|
10
|
+
## When this skill applies
|
|
11
|
+
|
|
12
|
+
Trigger when the project's `package.json` lists `namirasoft-site-map` as a dependency, when the user imports `NamirasoftMap` from `"namirasoft-site-map"`, or when they need to resolve a table/product across the Namirasoft suite without hard-coding which `namirasoft-<product>` package owns it. Skip otherwise — this package only makes sense inside the Namirasoft ecosystem.
|
|
13
|
+
|
|
14
|
+
## Cardinal rules
|
|
15
|
+
|
|
16
|
+
1. **Construct `NamirasoftMap` once and pass it around.** It instantiates 38+ product `MetaDatabase` objects in its constructor; do not `new NamirasoftMap()` per request, per component, or per route. Make it a module-level singleton (or a context value in React) and reuse.
|
|
17
|
+
2. **Always pass the shared `TokenManager` to the constructor** (`new NamirasoftMap(manager, onError)`) so every authenticated product client (`account`, `access`, `payment`, …) shares the same token. Constructing without a manager only works for offline/lookup scenarios like the `check.ts` script.
|
|
18
|
+
3. **Import from the package root**: `import { NamirasoftMap } from "namirasoft-site-map";` — never deep-import from `dist/...`.
|
|
19
|
+
4. **Use the lookup helpers, don't search `tables` manually.** For "which product owns this id?" use `getByProductID`. For "which table has this short uuid?" use `getByShortName` (or `forEachProduct` + `getByShortNameOrNull` if you need a non-throwing path).
|
|
20
|
+
5. **Front-end links come from `table.front_end.getBaseLink/getListLink/getNewLink/getViewLink/getUpdateLink`** — do not concatenate URLs by hand. The map's constructor overrides a few `getViewLink`s (e.g. `api_product.product`, `account.user`, `account.session`); rely on those overrides instead of reimplementing them.
|
|
21
|
+
6. **`getByProductID` and `getByShortName` throw on miss.** If you can't guarantee a hit (user input, dynamic ids), call `forEachProduct` with a predicate that returns `null` and handle the null yourself.
|
|
22
|
+
7. **Property names use snake_case** on the map (`api_link`, `bill_watch`, `nws_max_mind`, `slack_sender`, `content_template`, …). They are not the same as the npm package names.
|
|
23
|
+
|
|
24
|
+
## API surface
|
|
25
|
+
|
|
26
|
+
The package exports exactly one symbol from its root: the `NamirasoftMap` class.
|
|
27
|
+
|
|
28
|
+
### Constructor
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
new NamirasoftMap(manager?: TokenManager, onError?: (error: Error) => void)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
- `manager` — a `TokenManager` from `namirasoft-account`. Forwarded to every authenticated product MetaDatabase.
|
|
35
|
+
- `onError` — optional global error callback wired into every product MetaDatabase.
|
|
36
|
+
|
|
37
|
+
### Product fields (each is a `Namirasoft<X>MetaDatabase`)
|
|
38
|
+
|
|
39
|
+
| Field | Type | Notes |
|
|
40
|
+
|---|---|---|
|
|
41
|
+
| `api_link` | `NamirasoftAPILinkMetaDatabase` | unauthenticated (no `manager`) |
|
|
42
|
+
| `api_news` | `NamirasoftAPINewsMetaDatabase` | unauthenticated |
|
|
43
|
+
| `api_product` | `NamirasoftAPIProductMetaDatabase` | unauthenticated; product viewLink overridden |
|
|
44
|
+
| `api_service` | `NamirasoftAPIServiceMetaDatabase` | unauthenticated |
|
|
45
|
+
| `api_work` | `NamirasoftAPIWorkMetaDatabase` | unauthenticated |
|
|
46
|
+
| `access` | `NamirasoftAccessMetaDatabase` | takes `manager` |
|
|
47
|
+
| `account` | `NamirasoftAccountMetaDatabase` | takes `manager`; user + session viewLinks overridden |
|
|
48
|
+
| `alarm` | `NamirasoftAlarmMetaDatabase` | takes `manager` |
|
|
49
|
+
| `balance` | `NamirasoftBalanceMetaDatabase` | takes `manager` |
|
|
50
|
+
| `bill_watch` | `NamirasoftBillWatchMetaDatabase` | takes `manager` |
|
|
51
|
+
| `container_registry` | `NamirasoftContainerRegistryMetaDatabase` | takes `manager` |
|
|
52
|
+
| `content_template` | `NamirasoftContentTemplateMetaDatabase` | takes `manager` |
|
|
53
|
+
| `cost` | `NamirasoftCostMetaDatabase` | takes `manager` |
|
|
54
|
+
| `credential` | `NamirasoftCredentialMetaDatabase` | takes `manager` |
|
|
55
|
+
| `data` | `NamirasoftDataMetaDatabase` | takes `manager` |
|
|
56
|
+
| `email_sender` | `NamirasoftEmailSenderMetaDatabase` | takes `manager` |
|
|
57
|
+
| `expert` | `NamirasoftExpertMetaDatabase` | takes `manager` |
|
|
58
|
+
| `field` | `NamirasoftFieldMetaDatabase` | takes `manager` |
|
|
59
|
+
| `history` | `NamirasoftHistoryMetaDatabase` | takes `manager` |
|
|
60
|
+
| `infra` | `NamirasoftInfraMetaDatabase` | takes `manager` |
|
|
61
|
+
| `job_arranger` | `NamirasoftJobArrangerMetaDatabase` | takes `manager` |
|
|
62
|
+
| `log` | `NamirasoftLogMetaDatabase` | takes `manager` |
|
|
63
|
+
| `message` | `NamirasoftMessageMetaDatabase` | takes `manager` |
|
|
64
|
+
| `nws_max_mind` | `NamirasoftNWSMaxMindMetaDatabase` | takes `manager` |
|
|
65
|
+
| `nws_region` | `NamirasoftNWSRegionMetaDatabase` | takes `manager` |
|
|
66
|
+
| `nws_volume` | `NamirasoftNWSVolumeMetaDatabase` | takes `manager` |
|
|
67
|
+
| `notification_sender` | `NamirasoftNotificationSenderMetaDatabase` | takes `manager` |
|
|
68
|
+
| `password` | `NamirasoftPasswordMetaDatabase` | takes `manager` |
|
|
69
|
+
| `payment` | `NamirasoftPaymentMetaDatabase` | takes `manager` |
|
|
70
|
+
| `quota` | `NamirasoftQuotaMetaDatabase` | takes `manager` |
|
|
71
|
+
| `scheduler` | `NamirasoftSchedulerMetaDatabase` | takes `manager` |
|
|
72
|
+
| `secret` | `NamirasoftSecretMetaDatabase` | takes `manager` |
|
|
73
|
+
| `slack_sender` | `NamirasoftSlackSenderMetaDatabase` | takes `manager` |
|
|
74
|
+
| `sms_sender` | `NamirasoftSMSSenderMetaDatabase` | takes `manager` |
|
|
75
|
+
| `support` | `NamirasoftSupportMetaDatabase` | takes `manager` |
|
|
76
|
+
| `teams_sender` | `NamirasoftTeamsSenderMetaDatabase` | takes `manager` |
|
|
77
|
+
| `telegram_sender` | `NamirasoftTelegramSenderMetaDatabase` | takes `manager` |
|
|
78
|
+
| `workspace` | `NamirasoftWorkspaceMetaDatabase` | takes `manager` |
|
|
79
|
+
|
|
80
|
+
Each product exposes `.product` (id/name/headline/description/logo/link), `.tables` (a `{ [name]: NSBaseMetaTable }` dict), and `.getByShortNameOrNull(short)`.
|
|
81
|
+
|
|
82
|
+
### Methods
|
|
83
|
+
|
|
84
|
+
- `forEachProduct<T>(handler: (meta: NSBaseMetaDatabase<NSBaseServer>) => T | null): T | null`
|
|
85
|
+
Walks every property whose value has a `tables` field and short-circuits on the first non-null return. Use it when `getByProductID` / `getByShortName` are too narrow.
|
|
86
|
+
|
|
87
|
+
- `getByProductID(product_id: string): NSBaseMetaDatabase<NSBaseServer>`
|
|
88
|
+
Returns the product whose `product.id` matches. **Throws** if no product matches.
|
|
89
|
+
|
|
90
|
+
- `getByShortName(short_name: string): { product, table }`
|
|
91
|
+
Scans every product's tables for one whose `uuid.short === short_name`. Returns the owning `product` metadata plus the `NSBaseMetaTable`. **Throws** on miss.
|
|
92
|
+
|
|
93
|
+
## Canonical examples
|
|
94
|
+
|
|
95
|
+
### App-wide singleton (React / browser)
|
|
96
|
+
|
|
97
|
+
```ts
|
|
98
|
+
// src/lib/map.ts
|
|
99
|
+
import { NamirasoftMap } from "namirasoft-site-map";
|
|
100
|
+
import { tokenManager } from "./auth"; // your shared TokenManager
|
|
101
|
+
|
|
102
|
+
export const namirasoftMap = new NamirasoftMap(tokenManager, (err) => {
|
|
103
|
+
console.error("Namirasoft API error:", err);
|
|
104
|
+
});
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
```ts
|
|
108
|
+
// usage anywhere
|
|
109
|
+
import { namirasoftMap } from "@/lib/map";
|
|
110
|
+
|
|
111
|
+
const users = await namirasoftMap.account.tables.user.back_end.list({ page: 1, size: 20 });
|
|
112
|
+
const newUserLink = namirasoftMap.account.tables.user.front_end.getNewLink();
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Resolve a table from a short uuid (e.g. universal search / deep links)
|
|
116
|
+
|
|
117
|
+
```ts
|
|
118
|
+
import { namirasoftMap } from "@/lib/map";
|
|
119
|
+
|
|
120
|
+
function openShortLink(short: string, id: string) {
|
|
121
|
+
const { product, table } = namirasoftMap.getByShortName(short);
|
|
122
|
+
// jumps to the right product + table without knowing which package owns it
|
|
123
|
+
window.location.href = table.front_end.getViewLink(id);
|
|
124
|
+
return product.name;
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Find which product a `product_id` belongs to
|
|
129
|
+
|
|
130
|
+
```ts
|
|
131
|
+
const meta = namirasoftMap.getByProductID("acc-uuid-...");
|
|
132
|
+
console.log(meta.product.name, Object.keys(meta.tables));
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Iterate every product (e.g. to build a sitemap or admin index)
|
|
136
|
+
|
|
137
|
+
```ts
|
|
138
|
+
import { namirasoftMap } from "@/lib/map";
|
|
139
|
+
|
|
140
|
+
const links: string[] = [];
|
|
141
|
+
namirasoftMap.forEachProduct((p) => {
|
|
142
|
+
for (const name in p.tables) {
|
|
143
|
+
links.push(p.tables[name].front_end.getListLink());
|
|
144
|
+
}
|
|
145
|
+
return null; // keep iterating
|
|
146
|
+
});
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
`forEachProduct` returns the first non-null result from the handler, so use it for both "do for each" (always return `null`) and "find first" patterns.
|
|
150
|
+
|
|
151
|
+
## Common mistakes to avoid
|
|
152
|
+
|
|
153
|
+
- ❌ Calling `new NamirasoftMap()` inside a render path, request handler, or hook — it instantiates ~38 MetaDatabases. Construct once.
|
|
154
|
+
- ❌ Constructing without a `TokenManager` in an authenticated app — every `manager`-taking product (`account`, `access`, `payment`, …) will be unable to attach auth headers.
|
|
155
|
+
- ❌ Hard-coding URLs like `"/account/user/" + id + "/view"` — use `map.account.tables.user.front_end.getViewLink(id)` so the constructor's `getViewLink` overrides apply (notably `account.user`, `account.session`, `api_product.product`).
|
|
156
|
+
- ❌ Mapping product field names from npm names by stripping `namirasoft-` — many use snake_case (`bill_watch`, `nws_max_mind`, `slack_sender`, `container_registry`, `content_template`). Look up the table above.
|
|
157
|
+
- ❌ Treating `getByProductID` / `getByShortName` as nullable — they throw. Use `forEachProduct` + `getByShortNameOrNull` when a miss is possible.
|
|
158
|
+
- ❌ Importing a `Namirasoft<X>MetaDatabase` directly from its package and instantiating it alongside `NamirasoftMap` — that defeats the registry. Reach through `map.<x>` instead.
|
|
159
|
+
- ❌ Importing types like `NSBaseMetaDatabase`, `NSBaseMetaTable`, `NSBaseServer` from `"namirasoft-site-map"` — they live in `namirasoft-site`. The map only re-exports the `NamirasoftMap` class.
|
|
160
|
+
- ❌ Deep-importing from `"namirasoft-site-map/dist/..."` — only the root path is supported.
|
|
161
|
+
|
|
162
|
+
## Peer expectations
|
|
163
|
+
|
|
164
|
+
- This package depends on, and only makes sense alongside, the full Namirasoft suite (`namirasoft-account`, `namirasoft-access`, `namirasoft-api-link`, `namirasoft-api-news`, `namirasoft-api-product`, `namirasoft-api-service`, `namirasoft-api-work`, `namirasoft-alarm`, `namirasoft-balance`, `namirasoft-bill-watch`, `namirasoft-container-registry`, `namirasoft-content-template`, `namirasoft-cost`, `namirasoft-credential`, `namirasoft-data`, `namirasoft-email-sender`, `namirasoft-expert`, `namirasoft-field`, `namirasoft-history`, `namirasoft-infra`, `namirasoft-job-arranger`, `namirasoft-log`, `namirasoft-message`, `namirasoft-notification-sender`, `namirasoft-nws-max-mind`, `namirasoft-nws-region`, `namirasoft-nws-volume`, `namirasoft-password`, `namirasoft-payment`, `namirasoft-quota`, `namirasoft-scheduler`, `namirasoft-secret`, `namirasoft-site`, `namirasoft-slack-sender`, `namirasoft-sms-sender`, `namirasoft-support`, `namirasoft-teams-sender`, `namirasoft-telegram-sender`, `namirasoft-workspace`). They are listed as `dependencies` (not peer) so installing `namirasoft-site-map` pulls them in, but importing one of them directly should still go through its own package.
|
|
165
|
+
- `TokenManager` is exported from `namirasoft-account`.
|
|
166
|
+
- Base types `NSBaseMetaDatabase`, `NSBaseMetaTable`, `NSBaseServer` are exported from `namirasoft-site`.
|
|
167
|
+
- Each product MetaDatabase resolves its server base URL via `NSBaseMetaDatabase.getServerBaseURL(product_name)`. In a React app, `namirasoft-site-react` installs a resolver that maps `Namirasoft<X>` → `REACT_APP_BASE_URL_<X>` env vars. In a Node app, set `NSBaseMetaDatabase.getServerBaseURL = ...` yourself before constructing the map.
|
package/dist/NamirasoftMap.d.ts
CHANGED
|
@@ -14,9 +14,11 @@ import { NamirasoftCostMetaDatabase } from "namirasoft-cost";
|
|
|
14
14
|
import { NamirasoftCredentialMetaDatabase } from "namirasoft-credential";
|
|
15
15
|
import { NamirasoftDataMetaDatabase } from "namirasoft-data";
|
|
16
16
|
import { NamirasoftEmailSenderMetaDatabase } from "namirasoft-email-sender";
|
|
17
|
+
import { NamirasoftErpMetaDatabase } from "namirasoft-erp";
|
|
17
18
|
import { NamirasoftExpertMetaDatabase } from "namirasoft-expert";
|
|
18
19
|
import { NamirasoftFieldMetaDatabase } from "namirasoft-field";
|
|
19
20
|
import { NamirasoftHistoryMetaDatabase } from "namirasoft-history";
|
|
21
|
+
import { NamirasoftInferenceMetaDatabase } from "namirasoft-inference";
|
|
20
22
|
import { NamirasoftInfraMetaDatabase } from "namirasoft-infra";
|
|
21
23
|
import { NamirasoftJobArrangerMetaDatabase } from "namirasoft-job-arranger";
|
|
22
24
|
import { NamirasoftLogMetaDatabase } from "namirasoft-log";
|
|
@@ -54,9 +56,11 @@ export declare class NamirasoftMap {
|
|
|
54
56
|
credential: NamirasoftCredentialMetaDatabase;
|
|
55
57
|
data: NamirasoftDataMetaDatabase;
|
|
56
58
|
email_sender: NamirasoftEmailSenderMetaDatabase;
|
|
59
|
+
erp: NamirasoftErpMetaDatabase;
|
|
57
60
|
expert: NamirasoftExpertMetaDatabase;
|
|
58
61
|
field: NamirasoftFieldMetaDatabase;
|
|
59
62
|
history: NamirasoftHistoryMetaDatabase;
|
|
63
|
+
inference: NamirasoftInferenceMetaDatabase;
|
|
60
64
|
infra: NamirasoftInfraMetaDatabase;
|
|
61
65
|
job_arranger: NamirasoftJobArrangerMetaDatabase;
|
|
62
66
|
log: NamirasoftLogMetaDatabase;
|
package/dist/NamirasoftMap.js
CHANGED
|
@@ -17,9 +17,11 @@ const namirasoft_cost_1 = require("namirasoft-cost");
|
|
|
17
17
|
const namirasoft_credential_1 = require("namirasoft-credential");
|
|
18
18
|
const namirasoft_data_1 = require("namirasoft-data");
|
|
19
19
|
const namirasoft_email_sender_1 = require("namirasoft-email-sender");
|
|
20
|
+
const namirasoft_erp_1 = require("namirasoft-erp");
|
|
20
21
|
const namirasoft_expert_1 = require("namirasoft-expert");
|
|
21
22
|
const namirasoft_field_1 = require("namirasoft-field");
|
|
22
23
|
const namirasoft_history_1 = require("namirasoft-history");
|
|
24
|
+
const namirasoft_inference_1 = require("namirasoft-inference");
|
|
23
25
|
const namirasoft_infra_1 = require("namirasoft-infra");
|
|
24
26
|
const namirasoft_job_arranger_1 = require("namirasoft-job-arranger");
|
|
25
27
|
const namirasoft_log_1 = require("namirasoft-log");
|
|
@@ -57,9 +59,11 @@ class NamirasoftMap {
|
|
|
57
59
|
this.credential = new namirasoft_credential_1.NamirasoftCredentialMetaDatabase(manager, onError);
|
|
58
60
|
this.data = new namirasoft_data_1.NamirasoftDataMetaDatabase(manager, onError);
|
|
59
61
|
this.email_sender = new namirasoft_email_sender_1.NamirasoftEmailSenderMetaDatabase(manager, onError);
|
|
62
|
+
this.erp = new namirasoft_erp_1.NamirasoftErpMetaDatabase(manager, onError);
|
|
60
63
|
this.expert = new namirasoft_expert_1.NamirasoftExpertMetaDatabase(manager, onError);
|
|
61
64
|
this.field = new namirasoft_field_1.NamirasoftFieldMetaDatabase(manager, onError);
|
|
62
65
|
this.history = new namirasoft_history_1.NamirasoftHistoryMetaDatabase(manager, onError);
|
|
66
|
+
this.inference = new namirasoft_inference_1.NamirasoftInferenceMetaDatabase(manager, onError);
|
|
63
67
|
this.infra = new namirasoft_infra_1.NamirasoftInfraMetaDatabase(manager, onError);
|
|
64
68
|
this.job_arranger = new namirasoft_job_arranger_1.NamirasoftJobArrangerMetaDatabase(manager, onError);
|
|
65
69
|
this.log = new namirasoft_log_1.NamirasoftLogMetaDatabase(manager, onError);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NamirasoftMap.js","sourceRoot":"","sources":["../src/NamirasoftMap.ts"],"names":[],"mappings":";;;AAAA,yDAAiE;AACjE,2DAAiF;AACjF,uDAA+D;AAC/D,6DAAoE;AACpE,6DAAoE;AACpE,mEAA0E;AAC1E,mEAA0E;AAC1E,6DAAoE;AACpE,2DAAmE;AACnE,iEAAwE;AACxE,iFAAwF;AACxF,6EAAoF;AACpF,qDAA6D;AAC7D,iEAAyE;AACzE,qDAA6D;AAC7D,qEAA4E;AAC5E,yDAAiE;AACjE,uDAA+D;AAC/D,2DAAmE;AACnE,uDAA+D;AAC/D,qEAA4E;AAC5E,mDAA2D;AAC3D,2DAAmE;AACnE,mFAA0F;AAC1F,qEAA2E;AAC3E,iEAAwE;AACxE,iEAAwE;AACxE,6DAAqE;AACrE,2DAAmE;AACnE,uDAA+D;AAC/D,+DAAuE;AACvE,yDAAiE;AAEjE,qEAA4E;AAC5E,iEAAwE;AACxE,2DAAmE;AACnE,qEAA4E;AAC5E,2EAAkF;AAClF,+DAAuE;AAEvE,MAAa,aAAa;
|
|
1
|
+
{"version":3,"file":"NamirasoftMap.js","sourceRoot":"","sources":["../src/NamirasoftMap.ts"],"names":[],"mappings":"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"}
|
package/logo.png
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"framework": "npm",
|
|
9
9
|
"application": "package",
|
|
10
10
|
"private": false,
|
|
11
|
-
"version": "1.4.
|
|
11
|
+
"version": "1.4.48",
|
|
12
12
|
"author": "Amir Abolhasani",
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"main": "./dist/index.js",
|
|
@@ -18,45 +18,47 @@
|
|
|
18
18
|
"check": "node ./dist/check.js"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@types/node": "^25.
|
|
22
|
-
"namirasoft-access": "^1.4.
|
|
23
|
-
"namirasoft-account": "^1.4.
|
|
21
|
+
"@types/node": "^25.9.2",
|
|
22
|
+
"namirasoft-access": "^1.4.75",
|
|
23
|
+
"namirasoft-account": "^1.4.108",
|
|
24
24
|
"namirasoft-alarm": "^1.4.31",
|
|
25
25
|
"namirasoft-api-link": "^1.4.22",
|
|
26
26
|
"namirasoft-api-news": "^1.4.15",
|
|
27
|
-
"namirasoft-api-product": "^1.4.
|
|
27
|
+
"namirasoft-api-product": "^1.4.54",
|
|
28
28
|
"namirasoft-api-service": "^1.4.13",
|
|
29
29
|
"namirasoft-api-work": "^1.4.15",
|
|
30
30
|
"namirasoft-balance": "^1.4.28",
|
|
31
31
|
"namirasoft-bill-watch": "^1.4.66",
|
|
32
|
-
"namirasoft-container-registry": "^1.4.
|
|
33
|
-
"namirasoft-content-template": "^1.4.
|
|
32
|
+
"namirasoft-container-registry": "^1.4.4",
|
|
33
|
+
"namirasoft-content-template": "^1.4.32",
|
|
34
34
|
"namirasoft-cost": "^1.4.69",
|
|
35
|
-
"namirasoft-credential": "^1.4.
|
|
35
|
+
"namirasoft-credential": "^1.4.38",
|
|
36
36
|
"namirasoft-data": "^1.4.5",
|
|
37
|
-
"namirasoft-email-sender": "^1.4.
|
|
38
|
-
"namirasoft-
|
|
37
|
+
"namirasoft-email-sender": "^1.4.42",
|
|
38
|
+
"namirasoft-erp": "^1.4.7",
|
|
39
|
+
"namirasoft-expert": "^1.4.61",
|
|
39
40
|
"namirasoft-field": "^1.4.29",
|
|
40
41
|
"namirasoft-history": "^1.4.18",
|
|
41
|
-
"namirasoft-
|
|
42
|
-
"namirasoft-
|
|
43
|
-
"namirasoft-
|
|
44
|
-
"namirasoft-
|
|
45
|
-
"namirasoft-
|
|
42
|
+
"namirasoft-inference": "^1.4.1",
|
|
43
|
+
"namirasoft-infra": "^1.4.55",
|
|
44
|
+
"namirasoft-job-arranger": "^1.4.70",
|
|
45
|
+
"namirasoft-log": "^1.4.45",
|
|
46
|
+
"namirasoft-message": "^1.4.25",
|
|
47
|
+
"namirasoft-notification-sender": "^1.4.34",
|
|
46
48
|
"namirasoft-nws-max-mind": "^1.4.9",
|
|
47
49
|
"namirasoft-nws-region": "^1.4.15",
|
|
48
50
|
"namirasoft-nws-volume": "^1.4.16",
|
|
49
|
-
"namirasoft-password": "^1.4.
|
|
50
|
-
"namirasoft-payment": "^1.4.
|
|
51
|
+
"namirasoft-password": "^1.4.26",
|
|
52
|
+
"namirasoft-payment": "^1.4.137",
|
|
51
53
|
"namirasoft-quota": "^1.4.25",
|
|
52
54
|
"namirasoft-scheduler": "^1.4.11",
|
|
53
|
-
"namirasoft-secret": "^1.4.
|
|
55
|
+
"namirasoft-secret": "^1.4.46",
|
|
54
56
|
"namirasoft-site": "^1.4.45",
|
|
55
57
|
"namirasoft-slack-sender": "^1.4.8",
|
|
56
58
|
"namirasoft-sms-sender": "^1.4.28",
|
|
57
59
|
"namirasoft-support": "^1.4.15",
|
|
58
60
|
"namirasoft-teams-sender": "^1.4.14",
|
|
59
61
|
"namirasoft-telegram-sender": "^1.4.6",
|
|
60
|
-
"namirasoft-workspace": "^1.4.
|
|
62
|
+
"namirasoft-workspace": "^1.4.28"
|
|
61
63
|
}
|
|
62
64
|
}
|
package/src/NamirasoftMap.ts
CHANGED
|
@@ -14,9 +14,11 @@ import { NamirasoftCostMetaDatabase } from "namirasoft-cost";
|
|
|
14
14
|
import { NamirasoftCredentialMetaDatabase } from "namirasoft-credential";
|
|
15
15
|
import { NamirasoftDataMetaDatabase } from "namirasoft-data";
|
|
16
16
|
import { NamirasoftEmailSenderMetaDatabase } from "namirasoft-email-sender";
|
|
17
|
+
import { NamirasoftErpMetaDatabase } from "namirasoft-erp";
|
|
17
18
|
import { NamirasoftExpertMetaDatabase } from "namirasoft-expert";
|
|
18
19
|
import { NamirasoftFieldMetaDatabase } from "namirasoft-field";
|
|
19
20
|
import { NamirasoftHistoryMetaDatabase } from "namirasoft-history";
|
|
21
|
+
import { NamirasoftInferenceMetaDatabase } from "namirasoft-inference";
|
|
20
22
|
import { NamirasoftInfraMetaDatabase } from "namirasoft-infra";
|
|
21
23
|
import { NamirasoftJobArrangerMetaDatabase } from "namirasoft-job-arranger";
|
|
22
24
|
import { NamirasoftLogMetaDatabase } from "namirasoft-log";
|
|
@@ -57,9 +59,11 @@ export class NamirasoftMap
|
|
|
57
59
|
public credential: NamirasoftCredentialMetaDatabase;
|
|
58
60
|
public data: NamirasoftDataMetaDatabase;
|
|
59
61
|
public email_sender: NamirasoftEmailSenderMetaDatabase;
|
|
62
|
+
public erp: NamirasoftErpMetaDatabase;
|
|
60
63
|
public expert: NamirasoftExpertMetaDatabase;
|
|
61
64
|
public field: NamirasoftFieldMetaDatabase;
|
|
62
65
|
public history: NamirasoftHistoryMetaDatabase;
|
|
66
|
+
public inference: NamirasoftInferenceMetaDatabase;
|
|
63
67
|
public infra: NamirasoftInfraMetaDatabase;
|
|
64
68
|
public job_arranger: NamirasoftJobArrangerMetaDatabase;
|
|
65
69
|
public log: NamirasoftLogMetaDatabase;
|
|
@@ -99,9 +103,11 @@ export class NamirasoftMap
|
|
|
99
103
|
this.credential = new NamirasoftCredentialMetaDatabase(manager, onError);
|
|
100
104
|
this.data = new NamirasoftDataMetaDatabase(manager, onError);
|
|
101
105
|
this.email_sender = new NamirasoftEmailSenderMetaDatabase(manager, onError);
|
|
106
|
+
this.erp = new NamirasoftErpMetaDatabase(manager, onError);
|
|
102
107
|
this.expert = new NamirasoftExpertMetaDatabase(manager, onError);
|
|
103
108
|
this.field = new NamirasoftFieldMetaDatabase(manager, onError);
|
|
104
109
|
this.history = new NamirasoftHistoryMetaDatabase(manager, onError);
|
|
110
|
+
this.inference = new NamirasoftInferenceMetaDatabase(manager, onError);
|
|
105
111
|
this.infra = new NamirasoftInfraMetaDatabase(manager, onError);
|
|
106
112
|
this.job_arranger = new NamirasoftJobArrangerMetaDatabase(manager, onError);
|
|
107
113
|
this.log = new NamirasoftLogMetaDatabase(manager, onError);
|