@rosoftlab/rdict 1.0.0-alpha-19 → 1.0.1-alpha-3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,173 +0,0 @@
1
- import { BehaviorSubject } from "rxjs";
2
- export class ReactiveDictionary extends Map {
3
- static { this.instance = new Map; }
4
- constructor(socketService, authToken) {
5
- super();
6
- this.changes$ = new BehaviorSubject(null);
7
- this.isInitialized = false;
8
- this._authToken = null;
9
- this._authToken = authToken;
10
- this._socketService = socketService;
11
- this._socketService.initSocket(authToken);
12
- this._socketService.getSetEvent(this);
13
- }
14
- // Method to get the singleton instance
15
- static getInstance(socketService, authToken, instance_key) {
16
- if (!instance_key)
17
- instance_key = 'root';
18
- if (!ReactiveDictionary.instance.has(instance_key)) {
19
- ReactiveDictionary.instance.set(instance_key, new ReactiveDictionary(socketService, authToken));
20
- }
21
- const instance = ReactiveDictionary.instance.get(instance_key);
22
- if (!instance) {
23
- throw new Error(`No instance found for key: ${instance_key}`); // Handle undefined case
24
- }
25
- return instance; // Now TypeScript knows 'instance' is not undefined
26
- }
27
- // str_keys(): string[] {
28
- keys() {
29
- const excludedKeys = ['__guid', '__type']; // Key to exclude
30
- const iterator = super.keys();
31
- const filteredIterator = {
32
- [Symbol.iterator]: () => ({
33
- next: () => {
34
- let result;
35
- // Loop until we find a valid key or run out of keys
36
- do {
37
- result = iterator.next(); // Get the next entry ([key, value])
38
- if (result.done)
39
- return { done: true }; // Stop if done
40
- const key = result.value; // Destructure the entry
41
- const value = super.get(key);
42
- // Check if the key is in excludedKeys or if the value is an object
43
- if (!excludedKeys.includes(key) &&
44
- !(typeof value === 'object' && value !== null)) {
45
- return { value: key, done: false }; // Return the valid key
46
- }
47
- } while (true); // Continue until a valid key is found
48
- }
49
- })
50
- };
51
- return filteredIterator;
52
- }
53
- // Asynchronous method to get a value by key
54
- async asyncGet(key) {
55
- // console.log('Get key: ', key);
56
- const keys = key.split('.');
57
- if (keys.length === 1) {
58
- if (this.has(key)) {
59
- const value = this.get(key);
60
- if (value instanceof ReactiveDictionary) {
61
- return value;
62
- }
63
- if (typeof value === 'object' && value !== null) {
64
- const dict_type = value['__type'];
65
- // console.log('value type : ', dict_type);
66
- if (dict_type === 'dict' || dict_type === 'lazy') {
67
- const lazyLoadData = await this.lazyLoadSync(this.get('__guid'), key);
68
- // console.log(lazyLoadData)
69
- if (lazyLoadData) {
70
- const dict = new ReactiveDictionary(this._socketService, this._authToken);
71
- await dict.asyncInit(lazyLoadData.data);
72
- this.set(key, dict);
73
- return dict;
74
- }
75
- }
76
- }
77
- return value;
78
- }
79
- }
80
- else {
81
- const obj = await this.asyncGet(keys[0]);
82
- if (obj)
83
- return await obj.asyncGet(keys.slice(1).join('.'));
84
- else
85
- return null;
86
- }
87
- }
88
- // Asynchronous method to set a value by key
89
- async asyncSet(key, value, emmit_event = true) {
90
- if (emmit_event) {
91
- try {
92
- await this._socketService.emitSet(this.get('__guid'), key, value);
93
- }
94
- catch (error) {
95
- console.error('Error emitting set event:', error);
96
- }
97
- }
98
- this.set(key, value);
99
- this.changes$.next({ key, value });
100
- }
101
- // Asynchronous method to initialize with a set of key-value pairs
102
- async asyncInit(initialData) {
103
- if (!this.isInitialized) {
104
- try {
105
- // If initial data is not provided, fetch it
106
- const data = initialData || await this._socketService.getInitialData();
107
- // this.known_dicts.set(data.__guid,data);
108
- // Set the initial properties on the proxy
109
- for (const [key, value] of Object.entries(data)) {
110
- this.set(key, value);
111
- }
112
- this.isInitialized = true;
113
- }
114
- catch (error) {
115
- console.error('Error during initialization:', error);
116
- }
117
- }
118
- }
119
- async lazyLoadSync(guid, prop) {
120
- try {
121
- const data = await this._socketService.requestLazyLoad(guid, String(prop));
122
- return data;
123
- }
124
- catch (error) {
125
- console.error('Error fetching data:', error);
126
- throw error;
127
- }
128
- }
129
- getPlainObject() {
130
- const plainObject = {};
131
- this.forEach((value, key) => {
132
- if (value instanceof ReactiveDictionary)
133
- plainObject[key] = value.getPlainObject();
134
- else
135
- plainObject[key] = value; // Add key-value pairs to the plain object
136
- });
137
- return plainObject; // Return the plain object
138
- }
139
- async getTable(key) {
140
- const data = await this.asyncGet(key); // Get rooms from the ReactiveDictionary
141
- if (!data) {
142
- return []; // Return an empty array if data is undefined
143
- }
144
- // Filter and get only entries that are instances of ReactiveDictionary
145
- const result = await Promise.all(Array.from(data.entries()).map(async (key) => await data.asyncGet(key[0])) // Get data from asyncGet
146
- ) || []; // Return an empty array if the above yields undefined
147
- return result.filter((entry) => entry instanceof ReactiveDictionary);
148
- }
149
- async getTableWithoutGuid(key) {
150
- const data = await this.asyncGet(key); // Get rooms from the ReactiveDictionary
151
- if (!data) {
152
- return []; // Return an empty array if data is undefined
153
- }
154
- // Filter and get only entries that are instances of ReactiveDictionary
155
- const result = await Promise.all(Array.from(data.entries()).map(async (key) => await data.asyncGet(key[0])) // Get data from asyncGet
156
- ) || []; // Return an empty array if the above yields undefined
157
- var filteredResults = result.filter((entry) => entry instanceof ReactiveDictionary);
158
- return filteredResults.map(dictionary => {
159
- // Convert Map to object and filter out __guid
160
- const filteredObject = {};
161
- for (const [key, value] of dictionary.entries()) {
162
- if (key !== '__guid') {
163
- filteredObject[key] = value;
164
- }
165
- }
166
- return filteredObject;
167
- });
168
- }
169
- onChanges() {
170
- return this.changes$.asObservable();
171
- }
172
- }
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUtZGljdGlvbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9yZGljdC9zcmMvbGliL3JlYWN0aXZlLWRpY3Rpb25hcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUduRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsR0FBZ0I7YUFDckMsYUFBUSxHQUFvQyxJQUFJLEdBQStCLEFBQXZFLENBQXdFO0lBSy9GLFlBQW9CLGFBQTRCLEVBQzVDLFNBQWlCO1FBQ2pCLEtBQUssRUFBRSxDQUFDO1FBTEosYUFBUSxHQUF5QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzRCxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixlQUFVLEdBQVcsSUFBSSxDQUFDO1FBSTlCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3pDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3pDLENBQUM7SUFFRCx1Q0FBdUM7SUFDaEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxhQUE0QixFQUFFLFNBQWlCLEVBQUUsWUFBcUI7UUFDNUYsSUFBSSxDQUFDLFlBQVk7WUFDYixZQUFZLEdBQUcsTUFBTSxDQUFBO1FBQ3pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDakQsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNwRyxD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Q1IsT0FBTyxFQUFFLENBQUMsQ0FBQyw2Q0FBNkM7UUFDNUQsQ0FBQztRQUVELHVFQUF1RTtRQUN2RSxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQVEsRUFBRSxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMseUJBQXlCO1NBQ3pJLElBQUksRUFBRSxDQUFDLENBQUMsc0RBQXNEO1FBRy9ELElBQUksZUFBZSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssWUFBWSxrQkFBa0IsQ0FBQyxDQUFDO1FBRXpGLE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNwQyw4Q0FBOEM7WUFDOUMsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQzFCLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztnQkFDOUMsSUFBSSxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7b0JBQ25CLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQ2hDLENBQUM7WUFDTCxDQUFDO1lBQ0QsT0FBTyxjQUFjLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsU0FBUztRQUNMLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFNvY2tldFNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9zb2NrZXQuc2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgUmVhY3RpdmVEaWN0aW9uYXJ5IGV4dGVuZHMgTWFwPHN0cmluZywgYW55PiB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgaW5zdGFuY2U6IE1hcDxzdHJpbmcsIFJlYWN0aXZlRGljdGlvbmFyeT4gPSBuZXcgTWFwPHN0cmluZywgUmVhY3RpdmVEaWN0aW9uYXJ5PjtcbiAgICBwcml2YXRlIF9zb2NrZXRTZXJ2aWNlOiBTb2NrZXRTZXJ2aWNlO1xuICAgIHByaXZhdGUgY2hhbmdlcyQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgICBwcml2YXRlIGlzSW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcml2YXRlIF9hdXRoVG9rZW46IHN0cmluZyA9IG51bGw7XG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihzb2NrZXRTZXJ2aWNlOiBTb2NrZXRTZXJ2aWNlLFxuICAgICAgICBhdXRoVG9rZW46IHN0cmluZykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLl9hdXRoVG9rZW4gPSBhdXRoVG9rZW47XG4gICAgICAgIHRoaXMuX3NvY2tldFNlcnZpY2UgPSBzb2NrZXRTZXJ2aWNlO1xuICAgICAgICB0aGlzLl9zb2NrZXRTZXJ2aWNlLmluaXRTb2NrZXQoYXV0aFRva2VuKVxuICAgICAgICB0aGlzLl9zb2NrZXRTZXJ2aWNlLmdldFNldEV2ZW50KHRoaXMpXG4gICAgfVxuXG4gICAgLy8gTWV0aG9kIHRvIGdldCB0aGUgc2luZ2xldG9uIGluc3RhbmNlXG4gICAgcHVibGljIHN0YXRpYyBnZXRJbnN0YW5jZShzb2NrZXRTZXJ2aWNlOiBTb2NrZXRTZXJ2aWNlLCBhdXRoVG9rZW46IHN0cmluZywgaW5zdGFuY2Vfa2V5Pzogc3RyaW5nKTogUmVhY3RpdmVEaWN0aW9uYXJ5IHtcbiAgICAgICAgaWYgKCFpbnN0YW5jZV9rZXkpXG4gICAgICAgICAgICBpbnN0YW5jZV9rZXkgPSAncm9vdCdcbiAgICAgICAgaWYgKCFSZWFjdGl2ZURpY3Rpb25hcnkuaW5zdGFuY2UuaGFzKGluc3RhbmNlX2tleSkpIHtcbiAgICAgICAgICAgIFJlYWN0aXZlRGljdGlvbmFyeS5pbnN0YW5jZS5zZXQoaW5zdGFuY2Vfa2V5LCBuZXcgUmVhY3RpdmVEaWN0aW9uYXJ5KHNvY2tldFNlcnZpY2UsIGF1dGhUb2tlbikpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gUmVhY3RpdmVEaWN0aW9uYXJ5Lmluc3RhbmNlLmdldChpbnN0YW5jZV9rZXkpO1xuICAgICAgICBpZiAoIWluc3RhbmNlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGluc3RhbmNlIGZvdW5kIGZvciBrZXk6ICR7aW5zdGFuY2Vfa2V5fWApOyAvLyBIYW5kbGUgdW5kZWZpbmVkIGNhc2VcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpbnN0YW5jZTsgLy8gTm93IFR5cGVTY3JpcHQga25vd3MgJ2luc3RhbmNlJyBpcyBub3QgdW5kZWZpbmVkXG4gICAgfVxuICAgIC8vIHN0cl9rZXlzKCk6IHN0cmluZ1tdIHtcbiAgICBvdmVycmlkZSBrZXlzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGV4Y2x1ZGVkS2V5cyA9IFsnX19ndWlkJywgJ19fdHlwZSddOyAvLyBLZXkgdG8gZXhjbHVkZVxuICAgICAgICBjb25zdCBpdGVyYXRvciA9IHN1cGVyLmtleXMoKTtcblxuICAgICAgICBjb25zdCBmaWx0ZXJlZEl0ZXJhdG9yID0ge1xuICAgICAgICAgICAgW1N5bWJvbC5pdGVyYXRvcl06ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0O1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIExvb3AgdW50aWwgd2UgZmluZCBhIHZhbGlkIGtleSBvciBydW4gb3V0IG9mIGtleXNcbiAgICAgICAgICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gaXRlcmF0b3IubmV4dCgpOyAvLyBHZXQgdGhlIG5leHQgZW50cnkgKFtrZXksIHZhbHVlXSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZG9uZSkgcmV0dXJuIHsgZG9uZTogdHJ1ZSB9OyAvLyBTdG9wIGlmIGRvbmVcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gcmVzdWx0LnZhbHVlOyAvLyBEZXN0cnVjdHVyZSB0aGUgZW50cnlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gc3VwZXIuZ2V0KGtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBrZXkgaXMgaW4gZXhjbHVkZWRLZXlzIG9yIGlmIHRoZSB2YWx1ZSBpcyBhbiBvYmplY3RcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhZXhjbHVkZWRLZXlzLmluY2x1ZGVzKGtleSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwpXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyB2YWx1ZToga2V5LCBkb25lOiBmYWxzZSB9OyAvLyBSZXR1cm4gdGhlIHZhbGlkIGtleVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IHdoaWxlICh0cnVlKTsgLy8gQ29udGludWUgdW50aWwgYSB2YWxpZCBrZXkgaXMgZm91bmRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBmaWx0ZXJlZEl0ZXJhdG9yIGFzIEl0ZXJhYmxlSXRlcmF0b3I8c3RyaW5nPjtcbiAgICB9XG4gICAgLy8gQXN5bmNocm9ub3VzIG1ldGhvZCB0byBnZXQgYSB2YWx1ZSBieSBrZXlcbiAgICBhc3luYyBhc3luY0dldChrZXk6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdHZXQga2V5OiAnLCBrZXkpO1xuICAgICAgICBjb25zdCBrZXlzID0ga2V5LnNwbGl0KCcuJylcbiAgICAgICAgaWYgKGtleXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXQoa2V5KVxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFJlYWN0aXZlRGljdGlvbmFyeSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGljdF90eXBlID0gdmFsdWVbJ19fdHlwZSddXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCd2YWx1ZSB0eXBlIDogJywgZGljdF90eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRpY3RfdHlwZSA9PT0gJ2RpY3QnIHx8IGRpY3RfdHlwZSA9PT0gJ2xhenknKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXp5TG9hZERhdGEgPSBhd2FpdCB0aGlzLmxhenlMb2FkU3luYyh0aGlzLmdldCgnX19ndWlkJyksIGtleSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhsYXp5TG9hZERhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGF6eUxvYWREYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGljdCA9IG5ldyBSZWFjdGl2ZURpY3Rpb25hcnkodGhpcy5fc29ja2V0U2VydmljZSwgdGhpcy5fYXV0aFRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBkaWN0LmFzeW5jSW5pdChsYXp5TG9hZERhdGEuZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldChrZXksIGRpY3QpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRpY3RcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG9iaiA9IGF3YWl0IHRoaXMuYXN5bmNHZXQoa2V5c1swXSkgYXMgUmVhY3RpdmVEaWN0aW9uYXJ5XG4gICAgICAgICAgICBpZiAob2JqKVxuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBvYmouYXN5bmNHZXQoa2V5cy5zbGljZSgxKS5qb2luKCcuJykpXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBc3luY2hyb25vdXMgbWV0aG9kIHRvIHNldCBhIHZhbHVlIGJ5IGtleVxuICAgIGFzeW5jIGFzeW5jU2V0KGtleTogc3RyaW5nLCB2YWx1ZTogYW55LCBlbW1pdF9ldmVudDogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKGVtbWl0X2V2ZW50KSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NvY2tldFNlcnZpY2UuZW1pdFNldCh0aGlzLmdldCgnX19ndWlkJyksIGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBlbWl0dGluZyBzZXQgZXZlbnQ6JywgZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0KGtleSwgdmFsdWUpXG4gICAgICAgIHRoaXMuY2hhbmdlcyQubmV4dCh7IGtleSwgdmFsdWUgfSk7XG4gICAgfVxuXG4gICAgLy8gQXN5bmNocm9ub3VzIG1ldGhvZCB0byBpbml0aWFsaXplIHdpdGggYSBzZXQgb2Yga2V5LXZhbHVlIHBhaXJzXG4gICAgYXN5bmMgYXN5bmNJbml0KGluaXRpYWxEYXRhPzogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgICAgICBpZiAoIXRoaXMuaXNJbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAvLyBJZiBpbml0aWFsIGRhdGEgaXMgbm90IHByb3ZpZGVkLCBmZXRjaCBpdFxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBpbml0aWFsRGF0YSB8fCBhd2FpdCB0aGlzLl9zb2NrZXRTZXJ2aWNlLmdldEluaXRpYWxEYXRhKCk7XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5rbm93bl9kaWN0cy5zZXQoZGF0YS5fX2d1aWQsZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gU2V0IHRoZSBpbml0aWFsIHByb3BlcnRpZXMgb24gdGhlIHByb3h5XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IHRydWVcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZHVyaW5nIGluaXRpYWxpemF0aW9uOicsIGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGxhenlMb2FkU3luYyhndWlkOiBzdHJpbmcsIHByb3A6IHN0cmluZyB8IHN5bWJvbCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5fc29ja2V0U2VydmljZS5yZXF1ZXN0TGF6eUxvYWQoZ3VpZCwgU3RyaW5nKHByb3ApKTtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgZGF0YTonLCBlcnJvcik7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwdWJsaWMgZ2V0UGxhaW5PYmplY3QoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgICAgIGNvbnN0IHBsYWluT2JqZWN0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgICAgIHRoaXMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgUmVhY3RpdmVEaWN0aW9uYXJ5KVxuICAgICAgICAgICAgICAgIHBsYWluT2JqZWN0W2tleV0gPSB2YWx1ZS5nZXRQbGFpbk9iamVjdCgpXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgcGxhaW5PYmplY3Rba2V5XSA9IHZhbHVlOyAvLyBBZGQga2V5LXZhbHVlIHBhaXJzIHRvIHRoZSBwbGFpbiBvYmplY3RcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBwbGFpbk9iamVjdDsgLy8gUmV0dXJuIHRoZSBwbGFpbiBvYmplY3RcbiAgICB9XG4gICAgYXN5bmMgZ2V0VGFibGUoa2V5OiBzdHJpbmcpOiBQcm9taXNlPGFueVtdPiB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmFzeW5jR2V0KGtleSk7IC8vIEdldCByb29tcyBmcm9tIHRoZSBSZWFjdGl2ZURpY3Rpb25hcnlcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gW107IC8vIFJldHVybiBhbiBlbXB0eSBhcnJheSBpZiBkYXRhIGlzIHVuZGVmaW5lZFxuICAgICAgICB9XG5cbiAgICAgICAgLy8gRmlsdGVyIGFuZCBnZXQgb25seSBlbnRyaWVzIHRoYXQgYXJlIGluc3RhbmNlcyBvZiBSZWFjdGl2ZURpY3Rpb25hcnlcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgUHJvbWlzZS5hbGwoQXJyYXkuZnJvbShkYXRhLmVudHJpZXMoKSkubWFwKGFzeW5jIChrZXk6IGFueSkgPT4gYXdhaXQgZGF0YS5hc3luY0dldChrZXlbMF0pKSAvLyBHZXQgZGF0YSBmcm9tIGFzeW5jR2V0XG4gICAgICAgICkgfHwgW107IC8vIFJldHVybiBhbiBlbXB0eSBhcnJheSBpZiB0aGUgYWJvdmUgeWllbGRzIHVuZGVmaW5lZFxuXG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdC5maWx0ZXIoKGVudHJ5OiBhbnkpID0+IGVudHJ5IGluc3RhbmNlb2YgUmVhY3RpdmVEaWN0aW9uYXJ5KTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0VGFibGVXaXRob3V0R3VpZChrZXk6IHN0cmluZyk6IFByb21pc2U8YW55W10+IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuYXN5bmNHZXQoa2V5KTsgLy8gR2V0IHJvb21zIGZyb20gdGhlIFJlYWN0aXZlRGljdGlvbmFyeVxuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTsgLy8gUmV0dXJuIGFuIGVtcHR5IGFycmF5IGlmIGRhdGEgaXMgdW5kZWZpbmVkXG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaWx0ZXIgYW5kIGdldCBvbmx5IGVudHJpZXMgdGhhdCBhcmUgaW5zdGFuY2VzIG9mIFJlYWN0aXZlRGljdGlvbmFyeVxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBQcm9taXNlLmFsbChBcnJheS5mcm9tKGRhdGEuZW50cmllcygpKS5tYXAoYXN5bmMgKGtleTogYW55KSA9PiBhd2FpdCBkYXRhLmFzeW5jR2V0KGtleVswXSkpIC8vIEdldCBkYXRhIGZyb20gYXN5bmNHZXRcbiAgICAgICAgKSB8fCBbXTsgLy8gUmV0dXJuIGFuIGVtcHR5IGFycmF5IGlmIHRoZSBhYm92ZSB5aWVsZHMgdW5kZWZpbmVkXG5cblxuICAgICAgICB2YXIgZmlsdGVyZWRSZXN1bHRzID0gcmVzdWx0LmZpbHRlcigoZW50cnk6IGFueSkgPT4gZW50cnkgaW5zdGFuY2VvZiBSZWFjdGl2ZURpY3Rpb25hcnkpO1xuXG4gICAgICAgIHJldHVybiBmaWx0ZXJlZFJlc3VsdHMubWFwKGRpY3Rpb25hcnkgPT4ge1xuICAgICAgICAgICAgLy8gQ29udmVydCBNYXAgdG8gb2JqZWN0IGFuZCBmaWx0ZXIgb3V0IF9fZ3VpZFxuICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRPYmplY3QgPSB7fTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGRpY3Rpb25hcnkuZW50cmllcygpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGtleSAhPT0gJ19fZ3VpZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyZWRPYmplY3Rba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXJlZE9iamVjdDtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG9uQ2hhbmdlcygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGFuZ2VzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG59XG4iXX0=
@@ -1,4 +0,0 @@
1
- export { SocketService } from './socket.service';
2
- export { UserService } from './user.service';
3
- export { WsAuthService } from './ws-auth.service';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvcmRpY3Qvc3JjL2xpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFNvY2tldFNlcnZpY2UgfSBmcm9tICcuL3NvY2tldC5zZXJ2aWNlJ1xyXG5leHBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4vdXNlci5zZXJ2aWNlJ1xyXG5leHBvcnQgeyBXc0F1dGhTZXJ2aWNlIH0gZnJvbSAnLi93cy1hdXRoLnNlcnZpY2UnXHJcbiJdfQ==
@@ -1,92 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { io } from 'socket.io-client';
3
- import * as msgpackParser from 'socket.io-msgpack-parser';
4
- import { SOCKET_URL } from '../socket-config.token';
5
- import * as i0 from "@angular/core";
6
- export class SocketService {
7
- constructor(socketUrl) {
8
- this.socketUrl = socketUrl;
9
- // Replace with your actual server URL
10
- // this.socket.on("connect", () => {
11
- // const engine = this.socket.io.engine;
12
- // (engine.transport.name); // in most cases, prints "polling"
13
- // engine.once("upgrade", () => {
14
- // // called when the transport is upgraded (i.e. from HTTP long-polling to WebSocket)
15
- // (engine.transport.name); // in most cases, prints "websocket"
16
- // });
17
- // });
18
- }
19
- initSocket(authToken) {
20
- if (this.socket == null && authToken !== null) {
21
- this.socket = io(this.socketUrl, {
22
- withCredentials: true,
23
- parser: msgpackParser,
24
- auth: {
25
- token: authToken, // Include the authentication token
26
- },
27
- query: {
28
- "access_token": authToken
29
- }
30
- });
31
- }
32
- }
33
- getInitialData() {
34
- return new Promise((resolve, reject) => {
35
- this.socket.on('init', (data) => {
36
- if (data) {
37
- resolve(data["dict_data"]);
38
- }
39
- else {
40
- reject('No data received from init event');
41
- }
42
- });
43
- });
44
- }
45
- getSetEvent(rdict) {
46
- this.socket.on('set', (data) => {
47
- // (rdict.get('__guid'), data, this.socket.id)
48
- if (rdict.get('__guid') === data.did) {
49
- // ('Set the data')
50
- rdict.asyncSet(data.key, data.value, false);
51
- }
52
- });
53
- }
54
- // Emit the 'lazy_load' event with callback to get the response
55
- requestLazyLoad(did, key) {
56
- return new Promise((resolve, reject) => {
57
- this.socket.emit('lazy_load', { did, key }, (response) => {
58
- if (response && response.error) {
59
- reject(response.error); // Handle error if present
60
- }
61
- else {
62
- resolve(response); // Resolve with the response data
63
- }
64
- });
65
- });
66
- }
67
- // Emit the 'set' event to update the data on the server
68
- emitSet(did, key, value) {
69
- return new Promise((resolve, reject) => {
70
- this.socket.emit('set', { did, key, value }, (response) => {
71
- if (response && response.error) {
72
- reject(response.error);
73
- }
74
- else {
75
- resolve();
76
- }
77
- });
78
- });
79
- }
80
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: SocketService, deps: [{ token: SOCKET_URL }], target: i0.ɵɵFactoryTarget.Injectable }); }
81
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: SocketService, providedIn: 'root' }); }
82
- }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: SocketService, decorators: [{
84
- type: Injectable,
85
- args: [{
86
- providedIn: 'root'
87
- }]
88
- }], ctorParameters: () => [{ type: undefined, decorators: [{
89
- type: Inject,
90
- args: [SOCKET_URL]
91
- }] }] });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvcmRpY3Qvc3JjL2xpYi9zZXJ2aWNlcy9zb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsRUFBRSxFQUFVLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxLQUFLLGFBQWEsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBS3BELE1BQU0sT0FBTyxhQUFhO0lBR3hCLFlBQ3NCLFNBQWlCO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1FBQzFCLHNDQUFzQztRQUN0QyxvQ0FBb0M7UUFDcEMsMENBQTBDO1FBQzFDLGdFQUFnRTtRQUVoRSxtQ0FBbUM7UUFDbkMsMEZBQTBGO1FBQzFGLG9FQUFvRTtRQUNwRSxRQUFRO1FBRVIsTUFBTTtJQUNSLENBQUM7SUFDRCxVQUFVLENBQUMsU0FBaUI7UUFDMUIsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksSUFBSSxTQUFTLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDL0IsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLE1BQU0sRUFBRSxhQUFhO2dCQUNyQixJQUFJLEVBQUU7b0JBQ0osS0FBSyxFQUFFLFNBQVMsRUFBRSxtQ0FBbUM7aUJBQ3REO2dCQUVELEtBQUssRUFBRTtvQkFDTCxjQUFjLEVBQUUsU0FBUztpQkFDMUI7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUNELGNBQWM7UUFDWixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUNuQyxJQUFJLElBQUksRUFBRSxDQUFDO29CQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFDN0IsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO2dCQUM3QyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUNsQyw4Q0FBOEM7WUFDOUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDckMsbUJBQW1CO2dCQUNuQixLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUM3QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsK0RBQStEO0lBQy9ELGVBQWUsQ0FBQyxHQUFXLEVBQUUsR0FBVztRQUN0QyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUM1RCxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQy9CLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBRSwwQkFBMEI7Z0JBQ3JELENBQUM7cUJBQU0sQ0FBQztvQkFDTixPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBRSxpQ0FBaUM7Z0JBQ3ZELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHdEQUF3RDtJQUN4RCxPQUFPLENBQUMsR0FBVyxFQUFFLEdBQVcsRUFBRSxLQUFVO1FBQzFDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUM3RCxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQy9CLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pCLENBQUM7cUJBQU0sQ0FBQztvQkFDTixPQUFPLEVBQUUsQ0FBQztnQkFDWixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBN0VVLGFBQWEsa0JBSWQsVUFBVTtrSEFKVCxhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUtJLE1BQU07MkJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW8sIFNvY2tldCB9IGZyb20gJ3NvY2tldC5pby1jbGllbnQnO1xuaW1wb3J0ICogYXMgbXNncGFja1BhcnNlciBmcm9tICdzb2NrZXQuaW8tbXNncGFjay1wYXJzZXInO1xuaW1wb3J0IHsgU09DS0VUX1VSTCB9IGZyb20gJy4uL3NvY2tldC1jb25maWcudG9rZW4nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTb2NrZXRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzb2NrZXQ6IFNvY2tldDtcbiAgcHJpdmF0ZSBzb2NrZXRVcmw6IHN0cmluZ1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFNPQ0tFVF9VUkwpIHNvY2tldFVybDogc3RyaW5nLCkge1xuICAgIHRoaXMuc29ja2V0VXJsID0gc29ja2V0VXJsXG4gICAgLy8gUmVwbGFjZSB3aXRoIHlvdXIgYWN0dWFsIHNlcnZlciBVUkxcbiAgICAvLyB0aGlzLnNvY2tldC5vbihcImNvbm5lY3RcIiwgKCkgPT4ge1xuICAgIC8vICAgY29uc3QgZW5naW5lID0gdGhpcy5zb2NrZXQuaW8uZW5naW5lO1xuICAgIC8vICAgKGVuZ2luZS50cmFuc3BvcnQubmFtZSk7IC8vIGluIG1vc3QgY2FzZXMsIHByaW50cyBcInBvbGxpbmdcIlxuXG4gICAgLy8gICBlbmdpbmUub25jZShcInVwZ3JhZGVcIiwgKCkgPT4ge1xuICAgIC8vICAgICAvLyBjYWxsZWQgd2hlbiB0aGUgdHJhbnNwb3J0IGlzIHVwZ3JhZGVkIChpLmUuIGZyb20gSFRUUCBsb25nLXBvbGxpbmcgdG8gV2ViU29ja2V0KVxuICAgIC8vICAgICAoZW5naW5lLnRyYW5zcG9ydC5uYW1lKTsgLy8gaW4gbW9zdCBjYXNlcywgcHJpbnRzIFwid2Vic29ja2V0XCJcbiAgICAvLyAgIH0pO1xuXG4gICAgLy8gfSk7XG4gIH1cbiAgaW5pdFNvY2tldChhdXRoVG9rZW46IHN0cmluZykge1xuICAgIGlmICh0aGlzLnNvY2tldCA9PSBudWxsICYmIGF1dGhUb2tlbiAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5zb2NrZXQgPSBpbyh0aGlzLnNvY2tldFVybCwge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIHBhcnNlcjogbXNncGFja1BhcnNlcixcbiAgICAgICAgYXV0aDoge1xuICAgICAgICAgIHRva2VuOiBhdXRoVG9rZW4sIC8vIEluY2x1ZGUgdGhlIGF1dGhlbnRpY2F0aW9uIHRva2VuXG4gICAgICAgIH1cbiAgICAgICAgLFxuICAgICAgICBxdWVyeToge1xuICAgICAgICAgIFwiYWNjZXNzX3Rva2VuXCI6IGF1dGhUb2tlblxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgZ2V0SW5pdGlhbERhdGEoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuc29ja2V0Lm9uKCdpbml0JywgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgIHJlc29sdmUoZGF0YVtcImRpY3RfZGF0YVwiXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KCdObyBkYXRhIHJlY2VpdmVkIGZyb20gaW5pdCBldmVudCcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICBnZXRTZXRFdmVudChyZGljdDogYW55KSB7XG4gICAgdGhpcy5zb2NrZXQub24oJ3NldCcsIChkYXRhOiBhbnkpID0+IHtcbiAgICAgIC8vIChyZGljdC5nZXQoJ19fZ3VpZCcpLCBkYXRhLCB0aGlzLnNvY2tldC5pZClcbiAgICAgIGlmIChyZGljdC5nZXQoJ19fZ3VpZCcpID09PSBkYXRhLmRpZCkge1xuICAgICAgICAvLyAoJ1NldCB0aGUgZGF0YScpXG4gICAgICAgIHJkaWN0LmFzeW5jU2V0KGRhdGEua2V5LCBkYXRhLnZhbHVlLCBmYWxzZSlcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICAvLyBFbWl0IHRoZSAnbGF6eV9sb2FkJyBldmVudCB3aXRoIGNhbGxiYWNrIHRvIGdldCB0aGUgcmVzcG9uc2VcbiAgcmVxdWVzdExhenlMb2FkKGRpZDogc3RyaW5nLCBrZXk6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuc29ja2V0LmVtaXQoJ2xhenlfbG9hZCcsIHsgZGlkLCBrZXkgfSwgKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmVycm9yKSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLmVycm9yKTsgIC8vIEhhbmRsZSBlcnJvciBpZiBwcmVzZW50XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7ICAvLyBSZXNvbHZlIHdpdGggdGhlIHJlc3BvbnNlIGRhdGFcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBFbWl0IHRoZSAnc2V0JyBldmVudCB0byB1cGRhdGUgdGhlIGRhdGEgb24gdGhlIHNlcnZlclxuICBlbWl0U2V0KGRpZDogc3RyaW5nLCBrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLnNvY2tldC5lbWl0KCdzZXQnLCB7IGRpZCwga2V5LCB2YWx1ZSB9LCAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuZXJyb3IpIHtcbiAgICAgICAgICByZWplY3QocmVzcG9uc2UuZXJyb3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,37 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BaseService, DatastoreCore } from "@rosoftlab/core";
3
- import { Menu } from '../models/menu';
4
- import { Right } from '../models/right';
5
- import { User } from '../models/user';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@rosoftlab/core";
8
- export class UserService extends BaseService {
9
- constructor(datastore) {
10
- super(datastore);
11
- this.setModelType(User);
12
- }
13
- getRights() {
14
- const response = this.datastore.findAll(Right);
15
- return response;
16
- }
17
- hasRightForLink(link) {
18
- if (this.userRights && link) {
19
- const right = this.userRights.find(f => link.indexOf(f.pagePath) >= 0);
20
- return true;
21
- }
22
- return false;
23
- }
24
- getMenus() {
25
- const response = this.datastore.findAll(Menu);
26
- return response;
27
- }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UserService, deps: [{ token: i1.DatastoreCore }], target: i0.ɵɵFactoryTarget.Injectable }); }
29
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UserService, providedIn: 'root' }); }
30
- }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UserService, decorators: [{
32
- type: Injectable,
33
- args: [{
34
- providedIn: 'root'
35
- }]
36
- }], ctorParameters: () => [{ type: i1.DatastoreCore }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcm9zb2Z0bGFiL3JkaWN0L3NyYy9saWIvc2VydmljZXMvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFpQixXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFNUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUt0QyxNQUFNLE9BQU8sV0FBWSxTQUFRLFdBQWlCO0lBRWhELFlBQVksU0FBd0I7UUFDbEMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUNELFNBQVM7UUFDUCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBQ0QsZUFBZSxDQUFDLElBQVk7UUFFMUIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzVCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdkUsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsUUFBUTtRQUNOLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlDLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7OEdBckJVLFdBQVc7a0hBQVgsV0FBVyxjQUZWLE1BQU07OzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVF1ZXJ5RGF0YSwgQmFzZVNlcnZpY2UsIERhdGFzdG9yZUNvcmUgfSBmcm9tIFwiQHJvc29mdGxhYi9jb3JlXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZW51IH0gZnJvbSAnLi4vbW9kZWxzL21lbnUnO1xuaW1wb3J0IHsgUmlnaHQgfSBmcm9tICcuLi9tb2RlbHMvcmlnaHQnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL21vZGVscy91c2VyJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZTxVc2VyPiB7XG4gIHVzZXJSaWdodHMhOiBSaWdodFtdOyAgXG4gIGNvbnN0cnVjdG9yKGRhdGFzdG9yZTogRGF0YXN0b3JlQ29yZSkge1xuICAgIHN1cGVyKGRhdGFzdG9yZSk7XG4gICAgdGhpcy5zZXRNb2RlbFR5cGUoVXNlcik7XG4gIH1cbiAgZ2V0UmlnaHRzKCk6IE9ic2VydmFibGU8QmFzZVF1ZXJ5RGF0YTxSaWdodD4+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IHRoaXMuZGF0YXN0b3JlLmZpbmRBbGwoUmlnaHQpO1xuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuICBoYXNSaWdodEZvckxpbmsobGluazogc3RyaW5nKTogYm9vbGVhbiB7XG5cbiAgICBpZiAodGhpcy51c2VyUmlnaHRzICYmIGxpbmspIHtcbiAgICAgIGNvbnN0IHJpZ2h0ID0gdGhpcy51c2VyUmlnaHRzLmZpbmQoZiA9PiBsaW5rLmluZGV4T2YoZi5wYWdlUGF0aCkgPj0gMCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGdldE1lbnVzKCk6IE9ic2VydmFibGU8QmFzZVF1ZXJ5RGF0YTxNZW51Pj4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gdGhpcy5kYXRhc3RvcmUuZmluZEFsbChNZW51KTtcbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH0gIFxufVxuIl19
@@ -1,22 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class WsAuthService {
4
- constructor() {
5
- this.token = null;
6
- }
7
- get Token() {
8
- return this.token;
9
- }
10
- set Token(token) {
11
- this.token = token;
12
- }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: WsAuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
14
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: WsAuthService, providedIn: 'root' }); }
15
- }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: WsAuthService, decorators: [{
17
- type: Injectable,
18
- args: [{
19
- providedIn: 'root'
20
- }]
21
- }], ctorParameters: () => [] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcm9zb2Z0bGFiL3JkaWN0L3NyYy9saWIvc2VydmljZXMvd3MtYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxhQUFhO0lBRXhCO1FBRFEsVUFBSyxHQUFXLElBQUksQ0FBQTtJQUNaLENBQUM7SUFDakIsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQ25CLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ3BCLENBQUM7OEdBUlUsYUFBYTtrSEFBYixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFdzQXV0aFNlcnZpY2Uge1xuICBwcml2YXRlIHRva2VuOiBzdHJpbmcgPSBudWxsXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG4gIGdldCBUb2tlbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuXG4gIH1cbiAgc2V0IFRva2VuKHRva2VuOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRva2VuID0gdG9rZW5cbiAgfVxufVxuIl19
@@ -1,4 +0,0 @@
1
- // projects/my-library/src/lib/socket-config.token.ts
2
- import { InjectionToken } from '@angular/core';
3
- export const SOCKET_URL = new InjectionToken('SocketUrl');
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LWNvbmZpZy50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9yZGljdC9zcmMvbGliL3NvY2tldC1jb25maWcudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscURBQXFEO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksY0FBYyxDQUFTLFdBQVcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gcHJvamVjdHMvbXktbGlicmFyeS9zcmMvbGliL3NvY2tldC1jb25maWcudG9rZW4udHNcclxuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBjb25zdCBTT0NLRVRfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ1NvY2tldFVybCcpO1xyXG4iXX0=
@@ -1,6 +0,0 @@
1
- /*
2
- * Public API Surface of rdict
3
- */
4
- export * from './lib/core';
5
- export * from './lib/reactive-dictionary';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9yZGljdC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgcmRpY3RcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVhY3RpdmUtZGljdGlvbmFyeSc7XHJcblxyXG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9zb2Z0bGFiLXJkaWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcm9zb2Z0bGFiL3JkaWN0L3NyYy9yb3NvZnRsYWItcmRpY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==