@aidc-toolkit/core 1.0.41 → 1.0.43-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-data-storage.d.ts +118 -0
- package/dist/app-data-storage.d.ts.map +1 -0
- package/dist/app-data-storage.js +117 -0
- package/dist/app-data-storage.js.map +1 -0
- package/dist/app-data.d.ts +26 -0
- package/dist/app-data.d.ts.map +1 -0
- package/dist/app-data.js +79 -0
- package/dist/app-data.js.map +1 -0
- package/dist/browser-app-data-storage.d.ts +26 -0
- package/dist/browser-app-data-storage.d.ts.map +1 -0
- package/dist/browser-app-data-storage.js +34 -0
- package/dist/browser-app-data-storage.js.map +1 -0
- package/dist/cache.d.ts +58 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +12 -0
- package/dist/cache.js.map +1 -0
- package/dist/file-app-data-storage.d.ts +27 -0
- package/dist/file-app-data-storage.d.ts.map +1 -0
- package/dist/file-app-data-storage.js +52 -0
- package/dist/file-app-data-storage.js.map +1 -0
- package/dist/http-fetch.d.ts +45 -0
- package/dist/http-fetch.d.ts.map +1 -0
- package/dist/http-fetch.js +26 -0
- package/dist/http-fetch.js.map +1 -0
- package/dist/hyperlink.d.ts +18 -0
- package/dist/hyperlink.d.ts.map +1 -0
- package/dist/hyperlink.js +2 -0
- package/dist/hyperlink.js.map +1 -0
- package/dist/index.d.ts +30 -761
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -0
- package/dist/local-app-data-storage.d.ts +8 -0
- package/dist/local-app-data-storage.d.ts.map +1 -0
- package/dist/local-app-data-storage.js +11 -0
- package/dist/local-app-data-storage.js.map +1 -0
- package/dist/locale/en/locale-resources.d.ts +10 -0
- package/dist/locale/en/locale-resources.d.ts.map +1 -0
- package/dist/locale/en/locale-resources.js +9 -0
- package/dist/locale/en/locale-resources.js.map +1 -0
- package/dist/locale/fr/locale-resources.d.ts +10 -0
- package/dist/locale/fr/locale-resources.d.ts.map +1 -0
- package/dist/locale/fr/locale-resources.js +9 -0
- package/dist/locale/fr/locale-resources.js.map +1 -0
- package/dist/locale/i18n.d.ts +83 -0
- package/dist/locale/i18n.d.ts.map +1 -0
- package/dist/locale/i18n.js +157 -0
- package/dist/locale/i18n.js.map +1 -0
- package/dist/logger.d.ts +136 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +256 -0
- package/dist/logger.js.map +1 -0
- package/dist/parse-version.d.ts +36 -0
- package/dist/parse-version.d.ts.map +1 -0
- package/dist/parse-version.js +23 -0
- package/dist/parse-version.js.map +1 -0
- package/dist/remote-app-data-storage.d.ts +23 -0
- package/dist/remote-app-data-storage.d.ts.map +1 -0
- package/dist/remote-app-data-storage.js +42 -0
- package/dist/remote-app-data-storage.js.map +1 -0
- package/dist/type-helper.d.ts +115 -0
- package/dist/type-helper.d.ts.map +1 -0
- package/dist/type-helper.js +163 -0
- package/dist/type-helper.js.map +1 -0
- package/dist/type.d.ts +111 -0
- package/dist/type.d.ts.map +1 -0
- package/dist/type.js +2 -0
- package/dist/type.js.map +1 -0
- package/dist/website-url.d.ts +29 -0
- package/dist/website-url.d.ts.map +1 -0
- package/dist/website-url.js +60 -0
- package/dist/website-url.js.map +1 -0
- package/package.json +2 -2
- package/src/file-app-data-storage.ts +27 -13
- package/src/http-fetch.ts +59 -0
- package/src/index.ts +1 -0
- package/src/remote-app-data-storage.ts +23 -15
- package/tsconfig-src.tsbuildinfo +1 -1
- package/dist/browser-app-data-storage-G62WSQ5Z.js +0 -1
- package/dist/chunk-FIUBVWNN.js +0 -1
- package/dist/file-app-data-storage-Y5AB6YOB.js +0 -1
- package/dist/index.cjs +0 -18
- package/dist/index.d.cts +0 -761
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,mBAAmB,WAAW,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AAEjC,cAAc,aAAa,CAAC;AAE5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,YAAY,CAAC;AAE3B,mBAAmB,gBAAgB,CAAC;AAEpC,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import{a as W,b as H,c as T,d as z}from"./chunk-FIUBVWNN.js";function x(e,t,...o){return Object.fromEntries(Object.entries(t).filter(([r])=>o.includes(r)!==e))}function K(e,...t){return x(!0,e,...t)}function P(e,...t){return x(!1,e,...t)}function G(e,t){return K(e,...Object.keys(t))}function J(e,t){return P(e,...Object.keys(t))}function X(e,t){return t in e?{[t]:e[t]}:{}}function Y(e){return e==null}import{Logger as _}from"tslog";import j from"i18next";import N from"i18next-browser-languagedetector";import S from"i18next-cli-language-detector";var h={Logger:{unknownLogLevel:'Unknown log level "{{logLevel}}"'},RemoteAppDataStorage:{httpError:"HTTP error {{status, number}} retrieving file"}};var y={Logger:{unknownLogLevel:"Niveau de journalisation inconnu \xAB{{logLevel}}\xBB"},RemoteAppDataStorage:{httpError:"Erreur HTTP {{status, number}} lors de la r\xE9cup\xE9ration du fichier"}};var L={CLI:0,Server:1,Browser:2};function O(e){return typeof e=="string"?e.split(" ").map(t=>/[a-z]/u.test(t)?t.toLowerCase():t).join(" "):String(e)}var C="aidct_core",V={en:{aidct_core:h},fr:{aidct_core:y}},c=j.createInstance();async function v(e,t,o,r,n,...s){if(!e.isInitialized){let u=function(f){for(let[l,A]of Object.entries(f)){l in i||(i[l]={});let b=i[l];for(let[m,D]of Object.entries(A)){if(m in b)throw new Error(`Duplicate namespace ${m} in merged resource bundle for language ${l}`);b[m]=D}}};var a=u;let i={};u(n);for(let f of s)await f(t,o).then(u);let p;switch(t){case L.CLI:p=S;break;case L.Browser:p=N;break;default:throw new Error("Not supported")}await e.use(p).init({debug:o,defaultNS:r,resources:i,nonExplicitSupportedLngs:!0,fallbackLng:Object.keys(i)[0],detection:{caches:[]}}).then(()=>{e.services.formatter?.add("toLowerCase",O)})}return n}async function se(e,t=!1){return v(c,e,t,C,V)}var d={Silly:0,Trace:1,Debug:2,Info:3,Warn:4,Error:5,Fatal:6};function M(e){let t;if(typeof e=="string")if(e in d)t=d[e];else throw new RangeError(c.t("Logger.unknownLogLevel",{logLevel:e}));else if(e!==void 0)if(Object.values(d).includes(e))t=e;else throw new RangeError(c.t("Logger.unknownLogLevel",{logLevel:e}));else t=d.Info;return t}function ue(e,t,o){let r=M(e);return new _({hideLogPositionForProduction:r>=d.Info,...t??{},minLevel:r},o)}function g(e){let t;switch(typeof e){case"string":case"number":case"boolean":case"undefined":t=e;break;case"bigint":t=e>=Number.MIN_SAFE_INTEGER&&e<=Number.MAX_SAFE_INTEGER?Number(e):e.toString(10);break;case"object":e===null?t=e:Array.isArray(e)?t=(e.length<=10?e:[...e.slice(0,4),"...",...e.slice(-4)]).map(o=>g(o)):e instanceof Error?t=g({name:e.name,message:e.message,stack:e.stack?.split(`
|
|
2
|
-
`)}):t=Object.fromEntries(Object.entries(e).map(([o,r])=>[o,g(r)]));break;case"symbol":t=e.toString();break;case"function":t=`Function(${e.name})`;break}return t}var w=class{#t=new Map;#e=[];#r=0;#o=0;constructor(t,o,r){this.resize(o,r),t.attachTransport(n=>{this.#e.length>=this.#r&&this.#e.splice(0,this.#r-this.#o);let s=JSON.stringify(n);this.#e.push(s);for(let a of this.#t.values())a(s,this.#e)})}get messages(){return this.#e}get maximumLength(){return this.#r}get truncateLength(){return this.#o}addNotificationCallback(t,o){let r=!this.#t.has(t);return r&&(this.#t.set(t,o),o(void 0,this.#e)),r}removeNotificationCallback(t){this.#t.delete(t)}resize(t,o){this.#r=t,this.#o=o!==void 0?Math.min(o,Math.floor(t*.8)):Math.floor(t/2)}};function k(e){let t=/^(?<majorVersion>\d+)\.(?<minorVersion>\d+)\.(?<patchVersion>\d+)(?:-(?<preReleaseIdentifier>alpha|beta)(?:\.(?<dateTime>\d{12}))?)?$/u.exec(e)?.groups;if(t===void 0)throw new Error(`Invalid package version ${e}`);return{majorVersion:Number(t.majorVersion),minorVersion:Number(t.minorVersion),patchVersion:Number(t.patchVersion),preReleaseIdentifier:t.preReleaseIdentifier,dateTime:t.dateTime}}var R=globalThis.localStorage===void 0?import("./file-app-data-storage-Y5AB6YOB.js").then(e=>e.FileAppDataStorage):import("./browser-app-data-storage-G62WSQ5Z.js").then(e=>e.BrowserAppDataStorage);var $="http://localhost:5173",U="config",B="resources.local",ge=R.then(async e=>new e(U).read(B)).then(e=>e?.alphaURL??$),F="https://aidc-toolkit.com";function be(e,t,o,r){let n=k(e),s=n.preReleaseIdentifier,a;if(s==="alpha")a=o;else{let i=s!==void 0?`/${s}`:"",u=s!==void 0||t?`/v${n.majorVersion}.${n.minorVersion}`:"",p=r!==void 0&&r!==""?`/${r}`:"";a=`${F}${i}${u}${p}`}return a}var I=class extends T{constructor(t){super(!0,t)}async doRead(t,o){return fetch(t).then(async r=>{let n;if(r.ok)n=o===!0?new Uint8Array(await r.arrayBuffer()):await r.text();else if(r.status===404)n=void 0;else throw new RangeError(c.t("RemoteAppDataStorage.httpError",{status:r.status}));return n})}};var E=class{};export{ge as ALPHA_URL,z as AppDataStorage,E as Cache,L as I18nEnvironments,R as LocalAppDataStorage,d as LogLevels,w as MemoryTransport,T as ReadOnlyAppDataStorage,I as RemoteAppDataStorage,F as WEBSITE_BASE_URL,C as coreNS,V as coreResourceBundle,W as decodeAppData,H as encodeAppData,G as exclude,ue as getLogger,se as i18nCoreInit,v as i18nInit,c as i18nextCore,J as include,Y as isNullish,M as logLevelOf,g as loggableValue,K as omit,k as parseVersion,P as pick,X as propertyAs,be as websiteURL};
|
|
3
1
|
/*!
|
|
4
2
|
* Copyright © 2024-2026 Dolphin Data Development Ltd. and AIDC Toolkit
|
|
5
3
|
* contributors
|
|
@@ -16,3 +14,15 @@ import{a as W,b as H,c as T,d as z}from"./chunk-FIUBVWNN.js";function x(e,t,...o
|
|
|
16
14
|
* See the License for the specific language governing permissions and
|
|
17
15
|
* limitations under the License.
|
|
18
16
|
*/
|
|
17
|
+
export * from "./type-helper.js";
|
|
18
|
+
export * from "./logger.js";
|
|
19
|
+
export * from "./parse-version.js";
|
|
20
|
+
export * from "./website-url.js";
|
|
21
|
+
export * from "./app-data.js";
|
|
22
|
+
export * from "./app-data-storage.js";
|
|
23
|
+
export * from "./local-app-data-storage.js";
|
|
24
|
+
export * from "./http-fetch.js";
|
|
25
|
+
export * from "./remote-app-data-storage.js";
|
|
26
|
+
export * from "./cache.js";
|
|
27
|
+
export * from "./locale/i18n.js";
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,cAAc,kBAAkB,CAAC;AAEjC,cAAc,aAAa,CAAC;AAE5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,YAAY,CAAC;AAI3B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AppDataStorage } from "./app-data-storage.js";
|
|
2
|
+
/**
|
|
3
|
+
* Local application data storage class for the current environment. This is a variable representing a `Promise` as the
|
|
4
|
+
* implementing class is loaded dynamically to prevent the inclusion of unnecessary node dependencies in a browser
|
|
5
|
+
* environment.
|
|
6
|
+
*/
|
|
7
|
+
export declare const LocalAppDataStorage: Promise<new (path?: string) => AppDataStorage<boolean>>;
|
|
8
|
+
//# sourceMappingURL=local-app-data-storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-app-data-storage.d.ts","sourceRoot":"","sources":["../src/local-app-data-storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,MAAM,KAAK,cAAc,CAAC,OAAO,CAAC,CAII,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local application data storage class for the current environment. This is a variable representing a `Promise` as the
|
|
3
|
+
* implementing class is loaded dynamically to prevent the inclusion of unnecessary node dependencies in a browser
|
|
4
|
+
* environment.
|
|
5
|
+
*/
|
|
6
|
+
export const LocalAppDataStorage =
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- localStorage is undefined when running under Node.js.
|
|
8
|
+
globalThis.localStorage === undefined ?
|
|
9
|
+
import("./file-app-data-storage.js").then(module => module.FileAppDataStorage) :
|
|
10
|
+
import("./browser-app-data-storage.js").then(module => module.BrowserAppDataStorage);
|
|
11
|
+
//# sourceMappingURL=local-app-data-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-app-data-storage.js","sourceRoot":"","sources":["../src/local-app-data-storage.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB;AAC5B,gIAAgI;AAChI,UAAU,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC;IACnC,MAAM,CAAC,4BAA4B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAChF,MAAM,CAAC,+BAA+B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale-resources.d.ts","sourceRoot":"","sources":["../../../src/locale/en/locale-resources.ts"],"names":[],"mappings":";;;;;;;;AAAA,wBAOE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale-resources.js","sourceRoot":"","sources":["../../../src/locale/en/locale-resources.ts"],"names":[],"mappings":"AAAA,eAAe;IACX,MAAM,EAAE;QACJ,eAAe,EAAE,oCAAoC;KACxD;IACD,oBAAoB,EAAE;QAClB,SAAS,EAAE,+CAA+C;KAC7D;CACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale-resources.d.ts","sourceRoot":"","sources":["../../../src/locale/fr/locale-resources.ts"],"names":[],"mappings":";;;;;;;;AAAA,wBAOE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
Logger: {
|
|
3
|
+
unknownLogLevel: "Niveau de journalisation inconnu «{{logLevel}}»"
|
|
4
|
+
},
|
|
5
|
+
RemoteAppDataStorage: {
|
|
6
|
+
httpError: "Erreur HTTP {{status, number}} lors de la récupération du fichier"
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=locale-resources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale-resources.js","sourceRoot":"","sources":["../../../src/locale/fr/locale-resources.ts"],"names":[],"mappings":"AAAA,eAAe;IACX,MAAM,EAAE;QACJ,eAAe,EAAE,iDAAiD;KACrE;IACD,oBAAoB,EAAE;QAClB,SAAS,EAAE,mEAAmE;KACjF;CACJ,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { type i18n, type Resource } from "i18next";
|
|
2
|
+
import enLocaleResources from "./en/locale-resources.js";
|
|
3
|
+
/**
|
|
4
|
+
* Locale strings type for generic manipulation.
|
|
5
|
+
*/
|
|
6
|
+
export interface LocaleResources {
|
|
7
|
+
[key: string]: LocaleResources | string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Internationalization operating environments.
|
|
11
|
+
*/
|
|
12
|
+
export declare const I18nEnvironments: {
|
|
13
|
+
/**
|
|
14
|
+
* Command-line interface (e.g., unit tests).
|
|
15
|
+
*/
|
|
16
|
+
readonly CLI: 0;
|
|
17
|
+
/**
|
|
18
|
+
* Web server.
|
|
19
|
+
*/
|
|
20
|
+
readonly Server: 1;
|
|
21
|
+
/**
|
|
22
|
+
* Web browser.
|
|
23
|
+
*/
|
|
24
|
+
readonly Browser: 2;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Internationalization operating environment key.
|
|
28
|
+
*/
|
|
29
|
+
export type I18nEnvironmentKey = keyof typeof I18nEnvironments;
|
|
30
|
+
/**
|
|
31
|
+
* Internationalization operating environment.
|
|
32
|
+
*/
|
|
33
|
+
export type I18nEnvironment = typeof I18nEnvironments[I18nEnvironmentKey];
|
|
34
|
+
export declare const coreNS = "aidct_core";
|
|
35
|
+
/**
|
|
36
|
+
* Locale resources type is extracted from the English locale resources object.
|
|
37
|
+
*/
|
|
38
|
+
export type CoreLocaleResources = typeof enLocaleResources;
|
|
39
|
+
/**
|
|
40
|
+
* Core resource bundle.
|
|
41
|
+
*/
|
|
42
|
+
export declare const coreResourceBundle: Resource;
|
|
43
|
+
export declare const i18nextCore: i18n;
|
|
44
|
+
/**
|
|
45
|
+
* Initialize internationalization.
|
|
46
|
+
*
|
|
47
|
+
* @param i18next
|
|
48
|
+
* Internationalization object. As multiple objects exist, this parameter represents the one for the module for which
|
|
49
|
+
* internationalization is being initialized.
|
|
50
|
+
*
|
|
51
|
+
* @param environment
|
|
52
|
+
* Environment in which the application is running.
|
|
53
|
+
*
|
|
54
|
+
* @param debug
|
|
55
|
+
* Debug setting.
|
|
56
|
+
*
|
|
57
|
+
* @param defaultNS
|
|
58
|
+
* Default namespace.
|
|
59
|
+
*
|
|
60
|
+
* @param defaultResourceBundle
|
|
61
|
+
* Default resource bundle.
|
|
62
|
+
*
|
|
63
|
+
* @param i18nDependencyInits
|
|
64
|
+
* Dependency internationalization initialization functions.
|
|
65
|
+
*
|
|
66
|
+
* @returns
|
|
67
|
+
* Default resource bundle.
|
|
68
|
+
*/
|
|
69
|
+
export declare function i18nInit(i18next: i18n, environment: I18nEnvironment, debug: boolean, defaultNS: string, defaultResourceBundle: Resource, ...i18nDependencyInits: Array<(environment: I18nEnvironment, debug: boolean) => Promise<Resource>>): Promise<Resource>;
|
|
70
|
+
/**
|
|
71
|
+
* Initialize internationalization.
|
|
72
|
+
*
|
|
73
|
+
* @param environment
|
|
74
|
+
* Environment in which the application is running.
|
|
75
|
+
*
|
|
76
|
+
* @param debug
|
|
77
|
+
* Debug setting.
|
|
78
|
+
*
|
|
79
|
+
* @returns
|
|
80
|
+
* Core resource bundle.
|
|
81
|
+
*/
|
|
82
|
+
export declare function i18nCoreInit(environment: I18nEnvironment, debug?: boolean): Promise<Resource>;
|
|
83
|
+
//# sourceMappingURL=i18n.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/locale/i18n.ts"],"names":[],"mappings":"AAAA,OAAgB,EACZ,KAAK,IAAI,EAKT,KAAK,QAAQ,EAChB,MAAM,SAAS,CAAC;AAGjB,OAAO,iBAAiB,MAAM,0BAA0B,CAAC;AAGzD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,MAAM,CAAC;CAC3C;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB;IACzB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEG,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;AAkB1E,eAAO,MAAM,MAAM,eAAe,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,iBAAiB,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAOhC,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,IAA+B,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CA4ErQ;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,eAAe,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAEjG"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import i18next from "i18next";
|
|
2
|
+
import I18nextBrowserLanguageDetector from "i18next-browser-languagedetector";
|
|
3
|
+
import I18nextCLILanguageDetector from "i18next-cli-language-detector";
|
|
4
|
+
import enLocaleResources from "./en/locale-resources.js";
|
|
5
|
+
import frLocaleResources from "./fr/locale-resources.js";
|
|
6
|
+
/**
|
|
7
|
+
* Internationalization operating environments.
|
|
8
|
+
*/
|
|
9
|
+
export const I18nEnvironments = {
|
|
10
|
+
/**
|
|
11
|
+
* Command-line interface (e.g., unit tests).
|
|
12
|
+
*/
|
|
13
|
+
CLI: 0,
|
|
14
|
+
/**
|
|
15
|
+
* Web server.
|
|
16
|
+
*/
|
|
17
|
+
Server: 1,
|
|
18
|
+
/**
|
|
19
|
+
* Web browser.
|
|
20
|
+
*/
|
|
21
|
+
Browser: 2
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Convert a string to lower case, skipping words that are all upper case.
|
|
25
|
+
*
|
|
26
|
+
* @param value
|
|
27
|
+
* Value.
|
|
28
|
+
*
|
|
29
|
+
* @returns
|
|
30
|
+
* Lower case string if value is a string. If not, value is returned as a string but not converted to lower case.
|
|
31
|
+
*/
|
|
32
|
+
function toLowerCase(value) {
|
|
33
|
+
return typeof value === "string" ?
|
|
34
|
+
// Words with no lower case letters are preserved as they are likely mnemonics.
|
|
35
|
+
value.split(" ").map(word => /[a-z]/u.test(word) ? word.toLowerCase() : word).join(" ") :
|
|
36
|
+
String(value);
|
|
37
|
+
}
|
|
38
|
+
export const coreNS = "aidct_core";
|
|
39
|
+
/**
|
|
40
|
+
* Core resource bundle.
|
|
41
|
+
*/
|
|
42
|
+
export const coreResourceBundle = {
|
|
43
|
+
en: {
|
|
44
|
+
aidct_core: enLocaleResources
|
|
45
|
+
},
|
|
46
|
+
fr: {
|
|
47
|
+
aidct_core: frLocaleResources
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
// Explicit type is necessary because type can't be inferred without additional references.
|
|
51
|
+
export const i18nextCore = i18next.createInstance();
|
|
52
|
+
/**
|
|
53
|
+
* Initialize internationalization.
|
|
54
|
+
*
|
|
55
|
+
* @param i18next
|
|
56
|
+
* Internationalization object. As multiple objects exist, this parameter represents the one for the module for which
|
|
57
|
+
* internationalization is being initialized.
|
|
58
|
+
*
|
|
59
|
+
* @param environment
|
|
60
|
+
* Environment in which the application is running.
|
|
61
|
+
*
|
|
62
|
+
* @param debug
|
|
63
|
+
* Debug setting.
|
|
64
|
+
*
|
|
65
|
+
* @param defaultNS
|
|
66
|
+
* Default namespace.
|
|
67
|
+
*
|
|
68
|
+
* @param defaultResourceBundle
|
|
69
|
+
* Default resource bundle.
|
|
70
|
+
*
|
|
71
|
+
* @param i18nDependencyInits
|
|
72
|
+
* Dependency internationalization initialization functions.
|
|
73
|
+
*
|
|
74
|
+
* @returns
|
|
75
|
+
* Default resource bundle.
|
|
76
|
+
*/
|
|
77
|
+
export async function i18nInit(i18next, environment, debug, defaultNS, defaultResourceBundle, ...i18nDependencyInits) {
|
|
78
|
+
// Initialization may be called more than once.
|
|
79
|
+
if (!i18next.isInitialized) {
|
|
80
|
+
const mergedResourceBundle = {};
|
|
81
|
+
/**
|
|
82
|
+
* Merge a package resource bundle into the merged resource bundle.
|
|
83
|
+
*
|
|
84
|
+
* @param resourceBundle
|
|
85
|
+
* Package resource bundle.
|
|
86
|
+
*/
|
|
87
|
+
function mergeResourceBundle(resourceBundle) {
|
|
88
|
+
// Merge languages.
|
|
89
|
+
for (const [language, languageResourceBundle] of Object.entries(resourceBundle)) {
|
|
90
|
+
if (!(language in mergedResourceBundle)) {
|
|
91
|
+
mergedResourceBundle[language] = {};
|
|
92
|
+
}
|
|
93
|
+
const mergedLanguageResourceBundle = mergedResourceBundle[language];
|
|
94
|
+
// Merge namespaces.
|
|
95
|
+
for (const [namespace, resourceKey] of Object.entries(languageResourceBundle)) {
|
|
96
|
+
if (namespace in mergedLanguageResourceBundle) {
|
|
97
|
+
// Error prior to internationalization initialization; no localization possible.
|
|
98
|
+
throw new Error(`Duplicate namespace ${namespace} in merged resource bundle for language ${language}`);
|
|
99
|
+
}
|
|
100
|
+
mergedLanguageResourceBundle[namespace] = resourceKey;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
mergeResourceBundle(defaultResourceBundle);
|
|
105
|
+
// Initialize dependencies and merge their resource bundles.
|
|
106
|
+
for (const i18nDependencyInit of i18nDependencyInits) {
|
|
107
|
+
// eslint-disable-next-line no-await-in-loop -- Dependencies must initialized first.
|
|
108
|
+
await i18nDependencyInit(environment, debug).then(mergeResourceBundle);
|
|
109
|
+
}
|
|
110
|
+
let module;
|
|
111
|
+
switch (environment) {
|
|
112
|
+
case I18nEnvironments.CLI:
|
|
113
|
+
// TODO Refactor when https://github.com/neet/i18next-cli-language-detector/issues/281 resolved.
|
|
114
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Per above.
|
|
115
|
+
module = I18nextCLILanguageDetector;
|
|
116
|
+
break;
|
|
117
|
+
case I18nEnvironments.Browser:
|
|
118
|
+
module = I18nextBrowserLanguageDetector;
|
|
119
|
+
break;
|
|
120
|
+
default:
|
|
121
|
+
throw new Error("Not supported");
|
|
122
|
+
}
|
|
123
|
+
await i18next.use(module).init({
|
|
124
|
+
debug,
|
|
125
|
+
defaultNS,
|
|
126
|
+
resources: mergedResourceBundle,
|
|
127
|
+
// Allow fallback by removing variant code then country code until match is found.
|
|
128
|
+
nonExplicitSupportedLngs: true,
|
|
129
|
+
// Fallback to first language defined.
|
|
130
|
+
fallbackLng: Object.keys(mergedResourceBundle)[0],
|
|
131
|
+
detection: {
|
|
132
|
+
// Disabling cache allows read but requires explicit saving of i18nextLng attribute (e.g., via UI).
|
|
133
|
+
caches: []
|
|
134
|
+
}
|
|
135
|
+
}).then(() => {
|
|
136
|
+
// Add toLowerCase formatter.
|
|
137
|
+
i18next.services.formatter?.add("toLowerCase", toLowerCase);
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
return defaultResourceBundle;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Initialize internationalization.
|
|
144
|
+
*
|
|
145
|
+
* @param environment
|
|
146
|
+
* Environment in which the application is running.
|
|
147
|
+
*
|
|
148
|
+
* @param debug
|
|
149
|
+
* Debug setting.
|
|
150
|
+
*
|
|
151
|
+
* @returns
|
|
152
|
+
* Core resource bundle.
|
|
153
|
+
*/
|
|
154
|
+
export async function i18nCoreInit(environment, debug = false) {
|
|
155
|
+
return i18nInit(i18nextCore, environment, debug, coreNS, coreResourceBundle);
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=i18n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/locale/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,OAON,MAAM,SAAS,CAAC;AACjB,OAAO,8BAA8B,MAAM,kCAAkC,CAAC;AAC9E,OAAO,0BAA0B,MAAM,+BAA+B,CAAC;AACvE,OAAO,iBAAiB,MAAM,0BAA0B,CAAC;AACzD,OAAO,iBAAiB,MAAM,0BAA0B,CAAC;AASzD;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B;;OAEG;IACH,GAAG,EAAE,CAAC;IAEN;;OAEG;IACH,MAAM,EAAE,CAAC;IAET;;OAEG;IACH,OAAO,EAAE,CAAC;CACJ,CAAC;AAYX;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;QAC9B,+EAA+E;QAC/E,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACzF,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC;AAOnC;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAa;IACxC,EAAE,EAAE;QACA,UAAU,EAAE,iBAAiB;KAChC;IACD,EAAE,EAAE;QACA,UAAU,EAAE,iBAAiB;KAChC;CACJ,CAAC;AAEF,2FAA2F;AAC3F,MAAM,CAAC,MAAM,WAAW,GAAS,OAAO,CAAC,cAAc,EAAE,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAa,EAAE,WAA4B,EAAE,KAAc,EAAE,SAAiB,EAAE,qBAA+B,EAAE,GAAG,mBAA+F;IAC9O,+CAA+C;IAC/C,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QACzB,MAAM,oBAAoB,GAAa,EAAE,CAAC;QAE1C;;;;;WAKG;QACH,SAAS,mBAAmB,CAAC,cAAwB;YACjD,mBAAmB;YACnB,KAAK,MAAM,CAAC,QAAQ,EAAE,sBAAsB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC9E,IAAI,CAAC,CAAC,QAAQ,IAAI,oBAAoB,CAAC,EAAE,CAAC;oBACtC,oBAAoB,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACxC,CAAC;gBAED,MAAM,4BAA4B,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;gBAEpE,oBAAoB;gBACpB,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,CAAC;oBAC5E,IAAI,SAAS,IAAI,4BAA4B,EAAE,CAAC;wBAC5C,gFAAgF;wBAChF,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,2CAA2C,QAAQ,EAAE,CAAC,CAAC;oBAC3G,CAAC;oBAED,4BAA4B,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;gBAC1D,CAAC;YACL,CAAC;QACL,CAAC;QAED,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAE3C,4DAA4D;QAC5D,KAAK,MAAM,kBAAkB,IAAI,mBAAmB,EAAE,CAAC;YACnD,oFAAoF;YACpF,MAAM,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,MAAwD,CAAC;QAE7D,QAAQ,WAAW,EAAE,CAAC;YAClB,KAAK,gBAAgB,CAAC,GAAG;gBACrB,gGAAgG;gBAChG,qFAAqF;gBACrF,MAAM,GAAG,0BAA+D,CAAC;gBACzE,MAAM;YAEV,KAAK,gBAAgB,CAAC,OAAO;gBACzB,MAAM,GAAG,8BAA8B,CAAC;gBACxC,MAAM;YAEV;gBACI,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;YAC3B,KAAK;YACL,SAAS;YACT,SAAS,EAAE,oBAAoB;YAC/B,kFAAkF;YAClF,wBAAwB,EAAE,IAAI;YAC9B,sCAAsC;YACtC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;YACjD,SAAS,EAAE;gBACP,mGAAmG;gBACnG,MAAM,EAAE,EAAE;aACb;SACJ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACT,6BAA6B;YAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,qBAAqB,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAA4B,EAAE,KAAK,GAAG,KAAK;IAC1E,OAAO,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;AACjF,CAAC"}
|
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { type ISettingsParam, Logger } from "tslog";
|
|
2
|
+
/**
|
|
3
|
+
* Log levels.
|
|
4
|
+
*/
|
|
5
|
+
export declare const LogLevels: {
|
|
6
|
+
readonly Silly: 0;
|
|
7
|
+
readonly Trace: 1;
|
|
8
|
+
readonly Debug: 2;
|
|
9
|
+
readonly Info: 3;
|
|
10
|
+
readonly Warn: 4;
|
|
11
|
+
readonly Error: 5;
|
|
12
|
+
readonly Fatal: 6;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Log level key.
|
|
16
|
+
*/
|
|
17
|
+
export type LogLevelKey = keyof typeof LogLevels;
|
|
18
|
+
/**
|
|
19
|
+
* Log level.
|
|
20
|
+
*/
|
|
21
|
+
export type LogLevel = typeof LogLevels[LogLevelKey];
|
|
22
|
+
/**
|
|
23
|
+
* Get the log level enumeration value corresponding to a string or number.
|
|
24
|
+
*
|
|
25
|
+
* @param untypedLogLevel
|
|
26
|
+
* Untyped log level.
|
|
27
|
+
*
|
|
28
|
+
* @returns
|
|
29
|
+
* Typed log level or default `LogLevels.Info` if untyped log level not provided..
|
|
30
|
+
*/
|
|
31
|
+
export declare function logLevelOf(untypedLogLevel?: string | number): LogLevel;
|
|
32
|
+
/**
|
|
33
|
+
* Get a logger with an optional log level. The underlying implementation is
|
|
34
|
+
* [`tslog`](https://tslog.js.org/).
|
|
35
|
+
*
|
|
36
|
+
* @param logLevel
|
|
37
|
+
* Log level as enumeration value or string. Mapped to `minLevel` and sets `hideLogPositionForProduction` to true in
|
|
38
|
+
* settings if at {@linkcode LogLevels.Info} or higher. Default is {@linkcode LogLevels.Info}.
|
|
39
|
+
*
|
|
40
|
+
* @param settings
|
|
41
|
+
* Detailed settings. See [`tslog`](https://tslog.js.org/#/?id=settings) documentation for details. The `minLevel` is
|
|
42
|
+
* ignored in favour of `logLevel` but `hideLogPositionForProduction` will override the default logic.
|
|
43
|
+
*
|
|
44
|
+
* @param logObj
|
|
45
|
+
* Default log object. See [`tslog`](https://tslog.js.org/#/?id=defining-and-accessing-logobj) documentation for
|
|
46
|
+
* details.
|
|
47
|
+
*
|
|
48
|
+
* @returns
|
|
49
|
+
* Logger.
|
|
50
|
+
*
|
|
51
|
+
* @template T
|
|
52
|
+
* Log object type.
|
|
53
|
+
*/
|
|
54
|
+
export declare function getLogger<T extends object = object>(logLevel?: string | number, settings?: ISettingsParam<T>, logObj?: T): Logger<T>;
|
|
55
|
+
/**
|
|
56
|
+
* Get a loggable representation of a value. Values are returned unmodified, except as follows:
|
|
57
|
+
*
|
|
58
|
+
* - Big integers are converted to whole numbers where possible, otherwise as their decimal string representations.
|
|
59
|
+
* - Arrays are limited to a maximum of ten elements. Any array longer than ten elements is replaced with the first four
|
|
60
|
+
* elements, a string of three dots, and the last four elements. This may still create large results for
|
|
61
|
+
* multidimensional arrays.
|
|
62
|
+
* - Errors are converted to objects with `name`, `message`, and `stack` properties.
|
|
63
|
+
* - Symbols are converted to their string representations.
|
|
64
|
+
* - Functions are converted to strings of the form `Function(name)`.
|
|
65
|
+
*
|
|
66
|
+
* @param value
|
|
67
|
+
* Value.
|
|
68
|
+
*
|
|
69
|
+
* @returns
|
|
70
|
+
* Loggable value.
|
|
71
|
+
*/
|
|
72
|
+
export declare function loggableValue(value: unknown): unknown;
|
|
73
|
+
/**
|
|
74
|
+
* Logger transport that stores messages in memory.
|
|
75
|
+
*/
|
|
76
|
+
export declare class MemoryTransport<T extends object> {
|
|
77
|
+
#private;
|
|
78
|
+
/**
|
|
79
|
+
* Constructor.
|
|
80
|
+
*
|
|
81
|
+
* @param logger
|
|
82
|
+
* Logger.
|
|
83
|
+
*
|
|
84
|
+
* @param maximumLength
|
|
85
|
+
* Maximum length of messages array.
|
|
86
|
+
*
|
|
87
|
+
* @param truncateLength
|
|
88
|
+
* Length to which messages array is truncated when maximum is reached. Default is 50% of `maximumLength`, maximum
|
|
89
|
+
* is 80% of `maximumLength`.
|
|
90
|
+
*/
|
|
91
|
+
constructor(logger: Logger<T>, maximumLength: number, truncateLength?: number);
|
|
92
|
+
/**
|
|
93
|
+
* Get the messages.
|
|
94
|
+
*/
|
|
95
|
+
get messages(): string[];
|
|
96
|
+
/**
|
|
97
|
+
* Get the maximum length of messages array.
|
|
98
|
+
*/
|
|
99
|
+
get maximumLength(): number;
|
|
100
|
+
/**
|
|
101
|
+
* Get the length to which messages array is truncated when maximum is reached.
|
|
102
|
+
*/
|
|
103
|
+
get truncateLength(): number;
|
|
104
|
+
/**
|
|
105
|
+
* Add a notification callback. If one already exists under the current name, do nothing.
|
|
106
|
+
*
|
|
107
|
+
* @param name
|
|
108
|
+
* Callback name.
|
|
109
|
+
*
|
|
110
|
+
* @param notificationCallback
|
|
111
|
+
* Callback.
|
|
112
|
+
*
|
|
113
|
+
* @returns
|
|
114
|
+
* True if successfully added.
|
|
115
|
+
*/
|
|
116
|
+
addNotificationCallback(name: string, notificationCallback: (message: string | undefined, messages: readonly string[]) => void): boolean;
|
|
117
|
+
/**
|
|
118
|
+
* Remove a notification callback.
|
|
119
|
+
*
|
|
120
|
+
* @param name
|
|
121
|
+
* Callback name.
|
|
122
|
+
*/
|
|
123
|
+
removeNotificationCallback(name: string): void;
|
|
124
|
+
/**
|
|
125
|
+
* Resize the messages array.
|
|
126
|
+
*
|
|
127
|
+
* @param maximumLength
|
|
128
|
+
* Maximum length of messages array.
|
|
129
|
+
*
|
|
130
|
+
* @param truncateLength
|
|
131
|
+
* Length to which messages array is truncated when maximum is reached. Default is 50% of `maximumLength`, maximum
|
|
132
|
+
* is 80% of `maximumLength`.
|
|
133
|
+
*/
|
|
134
|
+
resize(maximumLength: number, truncateLength?: number): void;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAGpD;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;CAQZ,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,SAAS,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC;AAErD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CA2BtE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAUpI;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CA4CrD;AAED;;GAEG;AACH,qBAAa,eAAe,CAAC,CAAC,SAAS,MAAM;;IAqBzC;;;;;;;;;;;;OAYG;gBACS,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;IAoB7E;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,EAAE,CAEvB;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED;;;;;;;;;;;OAWG;IACH,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,GAAG,OAAO;IAaxI;;;;;OAKG;IACH,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9C;;;;;;;;;OASG;IACH,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI;CAI/D"}
|