@microsoft/teams.common 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +36 -0
  2. package/dist/events/event-emitter.d.mts +20 -0
  3. package/dist/events/event-emitter.d.ts +20 -0
  4. package/dist/events/event-emitter.js +38 -0
  5. package/dist/events/event-emitter.js.map +1 -0
  6. package/dist/events/event-emitter.mjs +36 -0
  7. package/dist/events/event-emitter.mjs.map +1 -0
  8. package/dist/events/index.d.mts +1 -0
  9. package/dist/events/index.d.ts +1 -0
  10. package/dist/events/index.js +14 -0
  11. package/dist/events/index.js.map +1 -0
  12. package/dist/events/index.mjs +3 -0
  13. package/dist/events/index.mjs.map +1 -0
  14. package/dist/http/client.d.mts +83 -0
  15. package/dist/http/client.d.ts +83 -0
  16. package/dist/http/client.js +159 -0
  17. package/dist/http/client.js.map +1 -0
  18. package/dist/http/client.mjs +153 -0
  19. package/dist/http/client.mjs.map +1 -0
  20. package/dist/http/index.d.mts +5 -0
  21. package/dist/http/index.d.ts +5 -0
  22. package/dist/http/index.js +28 -0
  23. package/dist/http/index.js.map +1 -0
  24. package/dist/http/index.mjs +5 -0
  25. package/dist/http/index.mjs.map +1 -0
  26. package/dist/http/interceptor.d.mts +53 -0
  27. package/dist/http/interceptor.d.ts +53 -0
  28. package/dist/http/interceptor.js +4 -0
  29. package/dist/http/interceptor.js.map +1 -0
  30. package/dist/http/interceptor.mjs +3 -0
  31. package/dist/http/interceptor.mjs.map +1 -0
  32. package/dist/http/token.d.mts +9 -0
  33. package/dist/http/token.d.ts +9 -0
  34. package/dist/http/token.js +4 -0
  35. package/dist/http/token.js.map +1 -0
  36. package/dist/http/token.mjs +3 -0
  37. package/dist/http/token.mjs.map +1 -0
  38. package/dist/index.d.mts +10 -0
  39. package/dist/index.d.ts +10 -0
  40. package/dist/index.js +35 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/index.mjs +6 -0
  43. package/dist/index.mjs.map +1 -0
  44. package/dist/logging/ansi.d.mts +34 -0
  45. package/dist/logging/ansi.d.ts +34 -0
  46. package/dist/logging/ansi.js +39 -0
  47. package/dist/logging/ansi.js.map +1 -0
  48. package/dist/logging/ansi.mjs +37 -0
  49. package/dist/logging/ansi.mjs.map +1 -0
  50. package/dist/logging/console.d.mts +18 -0
  51. package/dist/logging/console.d.ts +18 -0
  52. package/dist/logging/console.js +91 -0
  53. package/dist/logging/console.js.map +1 -0
  54. package/dist/logging/console.mjs +89 -0
  55. package/dist/logging/console.mjs.map +1 -0
  56. package/dist/logging/index.d.mts +3 -0
  57. package/dist/logging/index.d.ts +3 -0
  58. package/dist/logging/index.js +28 -0
  59. package/dist/logging/index.js.map +1 -0
  60. package/dist/logging/index.mjs +5 -0
  61. package/dist/logging/index.mjs.map +1 -0
  62. package/dist/logging/logger.d.mts +45 -0
  63. package/dist/logging/logger.d.ts +45 -0
  64. package/dist/logging/logger.js +4 -0
  65. package/dist/logging/logger.js.map +1 -0
  66. package/dist/logging/logger.mjs +3 -0
  67. package/dist/logging/logger.mjs.map +1 -0
  68. package/dist/logging/string.d.mts +36 -0
  69. package/dist/logging/string.d.ts +36 -0
  70. package/dist/logging/string.js +121 -0
  71. package/dist/logging/string.js.map +1 -0
  72. package/dist/logging/string.mjs +119 -0
  73. package/dist/logging/string.mjs.map +1 -0
  74. package/dist/storage/index.d.mts +2 -0
  75. package/dist/storage/index.d.ts +2 -0
  76. package/dist/storage/index.js +21 -0
  77. package/dist/storage/index.js.map +1 -0
  78. package/dist/storage/index.mjs +4 -0
  79. package/dist/storage/index.mjs.map +1 -0
  80. package/dist/storage/local-storage.d.mts +23 -0
  81. package/dist/storage/local-storage.d.ts +23 -0
  82. package/dist/storage/local-storage.js +69 -0
  83. package/dist/storage/local-storage.js.map +1 -0
  84. package/dist/storage/local-storage.mjs +67 -0
  85. package/dist/storage/local-storage.mjs.map +1 -0
  86. package/dist/storage/storage.d.mts +22 -0
  87. package/dist/storage/storage.d.ts +22 -0
  88. package/dist/storage/storage.js +4 -0
  89. package/dist/storage/storage.js.map +1 -0
  90. package/dist/storage/storage.mjs +3 -0
  91. package/dist/storage/storage.mjs.map +1 -0
  92. package/package.json +91 -0
@@ -0,0 +1,119 @@
1
+ import { ANSI } from './ansi';
2
+
3
+ class String {
4
+ _value;
5
+ constructor(value = "") {
6
+ this._value = value;
7
+ }
8
+ clear() {
9
+ this._value = "";
10
+ return this;
11
+ }
12
+ append(...text) {
13
+ this._value += text.join("");
14
+ return this;
15
+ }
16
+ reset() {
17
+ this._value += ANSI.Reset;
18
+ return this;
19
+ }
20
+ bold(text) {
21
+ this._value += ANSI.Bold + text.toString() + ANSI.BoldReset;
22
+ return this;
23
+ }
24
+ italic(text) {
25
+ this._value += ANSI.Italic + text.toString() + ANSI.ItalicReset;
26
+ return this;
27
+ }
28
+ underline(text) {
29
+ this._value += ANSI.Underline + text.toString() + ANSI.UnderlineReset;
30
+ return this;
31
+ }
32
+ strike(text) {
33
+ this._value += ANSI.Strike + text.toString() + ANSI.StrikeReset;
34
+ return this;
35
+ }
36
+ black(text) {
37
+ this._value += ANSI.ForegroundBlack + text.toString() + ANSI.ForegroundReset;
38
+ return this;
39
+ }
40
+ bgBlack(text) {
41
+ this._value += ANSI.BackgroundBlack + text.toString() + ANSI.BackgroundReset;
42
+ return this;
43
+ }
44
+ red(text) {
45
+ this._value += ANSI.ForegroundRed + text.toString() + ANSI.ForegroundReset;
46
+ return this;
47
+ }
48
+ bgRed(text) {
49
+ this._value += ANSI.BackgroundRed + text.toString() + ANSI.BackgroundReset;
50
+ return this;
51
+ }
52
+ green(text) {
53
+ this._value += ANSI.ForegroundGreen + text.toString() + ANSI.ForegroundReset;
54
+ return this;
55
+ }
56
+ bgGreen(text) {
57
+ this._value += ANSI.BackgroundGreen + text.toString() + ANSI.BackgroundReset;
58
+ return this;
59
+ }
60
+ yellow(text) {
61
+ this._value += ANSI.ForegroundYellow + text.toString() + ANSI.ForegroundReset;
62
+ return this;
63
+ }
64
+ bgYellow(text) {
65
+ this._value += ANSI.BackgroundYellow + text.toString() + ANSI.BackgroundReset;
66
+ return this;
67
+ }
68
+ blue(text) {
69
+ this._value += ANSI.ForegroundBlue + text.toString() + ANSI.ForegroundReset;
70
+ return this;
71
+ }
72
+ bgBlue(text) {
73
+ this._value += ANSI.BackgroundBlue + text.toString() + ANSI.BackgroundReset;
74
+ return this;
75
+ }
76
+ magenta(text) {
77
+ this._value += ANSI.ForegroundMagenta + text.toString() + ANSI.ForegroundReset;
78
+ return this;
79
+ }
80
+ bgMagenta(text) {
81
+ this._value += ANSI.BackgroundMagenta + text.toString() + ANSI.BackgroundReset;
82
+ return this;
83
+ }
84
+ cyan(text) {
85
+ this._value += ANSI.ForegroundCyan + text.toString() + ANSI.ForegroundReset;
86
+ return this;
87
+ }
88
+ bgCyan(text) {
89
+ this._value += ANSI.BackgroundCyan + text.toString() + ANSI.BackgroundReset;
90
+ return this;
91
+ }
92
+ white(text) {
93
+ this._value += ANSI.ForegroundWhite + text.toString() + ANSI.ForegroundReset;
94
+ return this;
95
+ }
96
+ bgWhite(text) {
97
+ this._value += ANSI.BackgroundWhite + text.toString() + ANSI.BackgroundReset;
98
+ return this;
99
+ }
100
+ gray(text) {
101
+ this._value += ANSI.ForegroundGray + text.toString() + ANSI.ForegroundReset;
102
+ return this;
103
+ }
104
+ default(text) {
105
+ this._value += ANSI.ForegroundDefault + text.toString() + ANSI.ForegroundReset;
106
+ return this;
107
+ }
108
+ bgDefault(text) {
109
+ this._value += ANSI.BackgroundDefault + text.toString() + ANSI.BackgroundReset;
110
+ return this;
111
+ }
112
+ toString() {
113
+ return this._value;
114
+ }
115
+ }
116
+
117
+ export { String };
118
+ //# sourceMappingURL=string.mjs.map
119
+ //# sourceMappingURL=string.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/logging/string.ts"],"names":[],"mappings":"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","file":"string.mjs","sourcesContent":["import { ANSI } from './ansi';\n\ntype StringLike = {\n toString(): string;\n};\n\nexport class String implements StringLike {\n private _value: string;\n\n constructor(value = '') {\n this._value = value;\n }\n\n clear() {\n this._value = '';\n return this;\n }\n\n append(...text: StringLike[]) {\n this._value += text.join('');\n return this;\n }\n\n reset() {\n this._value += ANSI.Reset;\n return this;\n }\n\n bold(text: StringLike) {\n this._value += ANSI.Bold + text.toString() + ANSI.BoldReset;\n return this;\n }\n\n italic(text: StringLike) {\n this._value += ANSI.Italic + text.toString() + ANSI.ItalicReset;\n return this;\n }\n\n underline(text: StringLike) {\n this._value += ANSI.Underline + text.toString() + ANSI.UnderlineReset;\n return this;\n }\n\n strike(text: StringLike) {\n this._value += ANSI.Strike + text.toString() + ANSI.StrikeReset;\n return this;\n }\n\n black(text: StringLike) {\n this._value += ANSI.ForegroundBlack + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgBlack(text: StringLike) {\n this._value += ANSI.BackgroundBlack + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n red(text: StringLike) {\n this._value += ANSI.ForegroundRed + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgRed(text: StringLike) {\n this._value += ANSI.BackgroundRed + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n green(text: StringLike) {\n this._value += ANSI.ForegroundGreen + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgGreen(text: StringLike) {\n this._value += ANSI.BackgroundGreen + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n yellow(text: StringLike) {\n this._value += ANSI.ForegroundYellow + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgYellow(text: StringLike) {\n this._value += ANSI.BackgroundYellow + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n blue(text: StringLike) {\n this._value += ANSI.ForegroundBlue + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgBlue(text: StringLike) {\n this._value += ANSI.BackgroundBlue + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n magenta(text: StringLike) {\n this._value += ANSI.ForegroundMagenta + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgMagenta(text: StringLike) {\n this._value += ANSI.BackgroundMagenta + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n cyan(text: StringLike) {\n this._value += ANSI.ForegroundCyan + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgCyan(text: StringLike) {\n this._value += ANSI.BackgroundCyan + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n white(text: StringLike) {\n this._value += ANSI.ForegroundWhite + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgWhite(text: StringLike) {\n this._value += ANSI.BackgroundWhite + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n gray(text: StringLike) {\n this._value += ANSI.ForegroundGray + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n default(text: StringLike) {\n this._value += ANSI.ForegroundDefault + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgDefault(text: StringLike) {\n this._value += ANSI.BackgroundDefault + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n toString() {\n return this._value;\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export { IListStorage, IStorage } from './storage.mjs';
2
+ export { LocalStorage, LocalStorageOptions } from './local-storage.mjs';
@@ -0,0 +1,2 @@
1
+ export { IListStorage, IStorage } from './storage.js';
2
+ export { LocalStorage, LocalStorageOptions } from './local-storage.js';
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var storage = require('./storage');
4
+ var localStorage = require('./local-storage');
5
+
6
+
7
+
8
+ Object.keys(storage).forEach(function (k) {
9
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
10
+ enumerable: true,
11
+ get: function () { return storage[k]; }
12
+ });
13
+ });
14
+ Object.keys(localStorage).forEach(function (k) {
15
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
16
+ enumerable: true,
17
+ get: function () { return localStorage[k]; }
18
+ });
19
+ });
20
+ //# sourceMappingURL=index.js.map
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js","sourcesContent":[]}
@@ -0,0 +1,4 @@
1
+ export * from './storage';
2
+ export * from './local-storage';
3
+ //# sourceMappingURL=index.mjs.map
4
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs","sourcesContent":[]}
@@ -0,0 +1,23 @@
1
+ import { IStorage } from './storage.mjs';
2
+
3
+ type LocalStorageOptions = {
4
+ /**
5
+ * max number of records.
6
+ */
7
+ readonly max?: number;
8
+ };
9
+ declare class LocalStorage<T = any> implements IStorage<string, T> {
10
+ protected readonly _store: Map<string, T>;
11
+ protected readonly _keys: string[];
12
+ protected readonly _options: LocalStorageOptions;
13
+ get keys(): string[];
14
+ get size(): number;
15
+ constructor(data?: Record<string, T>, options?: LocalStorageOptions);
16
+ get(key: string): T | undefined;
17
+ set(key: string, value: T): void;
18
+ delete(key: string): void;
19
+ toString(): string;
20
+ protected _hit(key: string): boolean;
21
+ }
22
+
23
+ export { LocalStorage, type LocalStorageOptions };
@@ -0,0 +1,23 @@
1
+ import { IStorage } from './storage.js';
2
+
3
+ type LocalStorageOptions = {
4
+ /**
5
+ * max number of records.
6
+ */
7
+ readonly max?: number;
8
+ };
9
+ declare class LocalStorage<T = any> implements IStorage<string, T> {
10
+ protected readonly _store: Map<string, T>;
11
+ protected readonly _keys: string[];
12
+ protected readonly _options: LocalStorageOptions;
13
+ get keys(): string[];
14
+ get size(): number;
15
+ constructor(data?: Record<string, T>, options?: LocalStorageOptions);
16
+ get(key: string): T | undefined;
17
+ set(key: string, value: T): void;
18
+ delete(key: string): void;
19
+ toString(): string;
20
+ protected _hit(key: string): boolean;
21
+ }
22
+
23
+ export { LocalStorage, type LocalStorageOptions };
@@ -0,0 +1,69 @@
1
+ 'use strict';
2
+
3
+ class LocalStorage {
4
+ _store;
5
+ _keys;
6
+ _options;
7
+ get keys() {
8
+ return this._keys;
9
+ }
10
+ get size() {
11
+ return this._store.size;
12
+ }
13
+ constructor(data = {}, options = {}) {
14
+ this._store = new Map(Object.entries(data));
15
+ this._keys = Object.keys(data);
16
+ this._options = options;
17
+ }
18
+ get(key) {
19
+ this._hit(key);
20
+ return this._store.get(key);
21
+ }
22
+ set(key, value) {
23
+ if (!this._hit(key)) {
24
+ this._keys.push(key);
25
+ }
26
+ if (this._options.max) {
27
+ if (this._keys.length > this._options.max) {
28
+ const k = this._keys.shift();
29
+ if (k) {
30
+ this._store.delete(k);
31
+ }
32
+ }
33
+ }
34
+ this._store.set(key, value);
35
+ }
36
+ delete(key) {
37
+ const i = this._keys.findIndex((k) => key === k);
38
+ if (i > -1) {
39
+ this._keys.splice(i, 1);
40
+ }
41
+ this._store.delete(key);
42
+ }
43
+ toString() {
44
+ return JSON.stringify(
45
+ Array.from(this._store.entries()).map(([key, value]) => ({
46
+ key,
47
+ value
48
+ })),
49
+ null,
50
+ 2
51
+ );
52
+ }
53
+ _hit(key) {
54
+ if (!this._store.has(key)) return false;
55
+ if (this._keys[this._keys.length - 1] === key) return true;
56
+ const idx = this._keys.findIndex((k) => key === k);
57
+ if (idx < 0) return false;
58
+ for (let i = idx + 1; i < this._keys.length; i++) {
59
+ const tmp = this._keys[i - 1];
60
+ this._keys[i - 1] = this._keys[i];
61
+ this._keys[i] = tmp;
62
+ }
63
+ return true;
64
+ }
65
+ }
66
+
67
+ exports.LocalStorage = LocalStorage;
68
+ //# sourceMappingURL=local-storage.js.map
69
+ //# sourceMappingURL=local-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/storage/local-storage.ts"],"names":[],"mappings":"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","file":"local-storage.js","sourcesContent":["import { IStorage } from './storage';\n\nexport type LocalStorageOptions = {\n /**\n * max number of records.\n */\n readonly max?: number;\n};\n\nexport class LocalStorage<T = any> implements IStorage<string, T> {\n protected readonly _store: Map<string, T>;\n protected readonly _keys: string[];\n protected readonly _options: LocalStorageOptions;\n\n get keys() {\n return this._keys;\n }\n\n get size() {\n return this._store.size;\n }\n\n constructor(data: Record<string, T> = {}, options: LocalStorageOptions = {}) {\n this._store = new Map<string, T>(Object.entries(data));\n this._keys = Object.keys(data);\n this._options = options;\n }\n\n get(key: string) {\n this._hit(key);\n return this._store.get(key);\n }\n\n set(key: string, value: T) {\n if (!this._hit(key)) {\n this._keys.push(key);\n }\n\n if (this._options.max) {\n if (this._keys.length > this._options.max) {\n const k = this._keys.shift();\n\n if (k) {\n this._store.delete(k);\n }\n }\n }\n\n this._store.set(key, value);\n }\n\n delete(key: string) {\n const i = this._keys.findIndex((k) => key === k);\n\n if (i > -1) {\n this._keys.splice(i, 1);\n }\n\n this._store.delete(key);\n }\n\n toString() {\n return JSON.stringify(\n Array.from(this._store.entries()).map(([key, value]) => ({\n key,\n value,\n })),\n null,\n 2\n );\n }\n\n protected _hit(key: string) {\n if (!this._store.has(key)) return false;\n if (this._keys[this._keys.length - 1] === key) return true;\n\n const idx = this._keys.findIndex((k) => key === k);\n\n /* istanbul ignore next */\n if (idx < 0) return false;\n\n for (let i = idx + 1; i < this._keys.length; i++) {\n const tmp = this._keys[i - 1];\n this._keys[i - 1] = this._keys[i];\n this._keys[i] = tmp;\n }\n\n return true;\n }\n}\n"]}
@@ -0,0 +1,67 @@
1
+ class LocalStorage {
2
+ _store;
3
+ _keys;
4
+ _options;
5
+ get keys() {
6
+ return this._keys;
7
+ }
8
+ get size() {
9
+ return this._store.size;
10
+ }
11
+ constructor(data = {}, options = {}) {
12
+ this._store = new Map(Object.entries(data));
13
+ this._keys = Object.keys(data);
14
+ this._options = options;
15
+ }
16
+ get(key) {
17
+ this._hit(key);
18
+ return this._store.get(key);
19
+ }
20
+ set(key, value) {
21
+ if (!this._hit(key)) {
22
+ this._keys.push(key);
23
+ }
24
+ if (this._options.max) {
25
+ if (this._keys.length > this._options.max) {
26
+ const k = this._keys.shift();
27
+ if (k) {
28
+ this._store.delete(k);
29
+ }
30
+ }
31
+ }
32
+ this._store.set(key, value);
33
+ }
34
+ delete(key) {
35
+ const i = this._keys.findIndex((k) => key === k);
36
+ if (i > -1) {
37
+ this._keys.splice(i, 1);
38
+ }
39
+ this._store.delete(key);
40
+ }
41
+ toString() {
42
+ return JSON.stringify(
43
+ Array.from(this._store.entries()).map(([key, value]) => ({
44
+ key,
45
+ value
46
+ })),
47
+ null,
48
+ 2
49
+ );
50
+ }
51
+ _hit(key) {
52
+ if (!this._store.has(key)) return false;
53
+ if (this._keys[this._keys.length - 1] === key) return true;
54
+ const idx = this._keys.findIndex((k) => key === k);
55
+ if (idx < 0) return false;
56
+ for (let i = idx + 1; i < this._keys.length; i++) {
57
+ const tmp = this._keys[i - 1];
58
+ this._keys[i - 1] = this._keys[i];
59
+ this._keys[i] = tmp;
60
+ }
61
+ return true;
62
+ }
63
+ }
64
+
65
+ export { LocalStorage };
66
+ //# sourceMappingURL=local-storage.mjs.map
67
+ //# sourceMappingURL=local-storage.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/storage/local-storage.ts"],"names":[],"mappings":"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","file":"local-storage.mjs","sourcesContent":["import { IStorage } from './storage';\n\nexport type LocalStorageOptions = {\n /**\n * max number of records.\n */\n readonly max?: number;\n};\n\nexport class LocalStorage<T = any> implements IStorage<string, T> {\n protected readonly _store: Map<string, T>;\n protected readonly _keys: string[];\n protected readonly _options: LocalStorageOptions;\n\n get keys() {\n return this._keys;\n }\n\n get size() {\n return this._store.size;\n }\n\n constructor(data: Record<string, T> = {}, options: LocalStorageOptions = {}) {\n this._store = new Map<string, T>(Object.entries(data));\n this._keys = Object.keys(data);\n this._options = options;\n }\n\n get(key: string) {\n this._hit(key);\n return this._store.get(key);\n }\n\n set(key: string, value: T) {\n if (!this._hit(key)) {\n this._keys.push(key);\n }\n\n if (this._options.max) {\n if (this._keys.length > this._options.max) {\n const k = this._keys.shift();\n\n if (k) {\n this._store.delete(k);\n }\n }\n }\n\n this._store.set(key, value);\n }\n\n delete(key: string) {\n const i = this._keys.findIndex((k) => key === k);\n\n if (i > -1) {\n this._keys.splice(i, 1);\n }\n\n this._store.delete(key);\n }\n\n toString() {\n return JSON.stringify(\n Array.from(this._store.entries()).map(([key, value]) => ({\n key,\n value,\n })),\n null,\n 2\n );\n }\n\n protected _hit(key: string) {\n if (!this._store.has(key)) return false;\n if (this._keys[this._keys.length - 1] === key) return true;\n\n const idx = this._keys.findIndex((k) => key === k);\n\n /* istanbul ignore next */\n if (idx < 0) return false;\n\n for (let i = idx + 1; i < this._keys.length; i++) {\n const tmp = this._keys[i - 1];\n this._keys[i - 1] = this._keys[i];\n this._keys[i] = tmp;\n }\n\n return true;\n }\n}\n"]}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * a storage container that can
3
+ * get/set/delete items by a unique key
4
+ */
5
+ interface IStorage<TKey = any, TValue = any> {
6
+ get(key: TKey): TValue | undefined | Promise<TValue | undefined>;
7
+ set(key: TKey, value: TValue): void | Promise<void>;
8
+ delete(key: TKey): void | Promise<void>;
9
+ }
10
+ /**
11
+ * a list storage container that can
12
+ * store/query iterable data
13
+ */
14
+ interface IListStorage<TValue = any> extends IStorage<number, TValue> {
15
+ push(value: TValue): void | Promise<void>;
16
+ pop(): (TValue | undefined) | Promise<TValue | undefined>;
17
+ values(): Array<TValue> | Promise<Array<TValue>>;
18
+ length(): number | Promise<number>;
19
+ where(predicate: (value: TValue, index: number) => boolean): Array<TValue>;
20
+ }
21
+
22
+ export type { IListStorage, IStorage };
@@ -0,0 +1,22 @@
1
+ /**
2
+ * a storage container that can
3
+ * get/set/delete items by a unique key
4
+ */
5
+ interface IStorage<TKey = any, TValue = any> {
6
+ get(key: TKey): TValue | undefined | Promise<TValue | undefined>;
7
+ set(key: TKey, value: TValue): void | Promise<void>;
8
+ delete(key: TKey): void | Promise<void>;
9
+ }
10
+ /**
11
+ * a list storage container that can
12
+ * store/query iterable data
13
+ */
14
+ interface IListStorage<TValue = any> extends IStorage<number, TValue> {
15
+ push(value: TValue): void | Promise<void>;
16
+ pop(): (TValue | undefined) | Promise<TValue | undefined>;
17
+ values(): Array<TValue> | Promise<Array<TValue>>;
18
+ length(): number | Promise<number>;
19
+ where(predicate: (value: TValue, index: number) => boolean): Array<TValue>;
20
+ }
21
+
22
+ export type { IListStorage, IStorage };
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=storage.js.map
4
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"storage.js"}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=storage.mjs.map
3
+ //# sourceMappingURL=storage.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"storage.mjs"}
package/package.json ADDED
@@ -0,0 +1,91 @@
1
+ {
2
+ "name": "@microsoft/teams.common",
3
+ "version": "0.2.7",
4
+ "license": "MIT",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.mjs",
7
+ "types": "./dist/index.d.ts",
8
+ "homepage": "https://github.com/microsoft/teams.js",
9
+ "bugs": "https://github.com/microsoft/teams.js/issues",
10
+ "files": [
11
+ "dist",
12
+ "README.md"
13
+ ],
14
+ "engines": {
15
+ "node": ">=20"
16
+ },
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "https://github.com/microsoft/teams.js.git",
20
+ "directory": "packages/common"
21
+ },
22
+ "keywords": [
23
+ "microsoft",
24
+ "teams",
25
+ "msteams",
26
+ "copilot",
27
+ "ai",
28
+ "common"
29
+ ],
30
+ "exports": {
31
+ ".": {
32
+ "types": {
33
+ "require": "./dist/index.d.ts",
34
+ "import": "./dist/index.d.mts"
35
+ },
36
+ "require": "./dist/index.js",
37
+ "import": "./dist/index.mjs"
38
+ },
39
+ "./events": {
40
+ "types": {
41
+ "require": "./dist/events/index.d.ts",
42
+ "import": "./dist/events/index.d.mts"
43
+ },
44
+ "require": "./dist/events/index.js",
45
+ "import": "./dist/events/index.mjs"
46
+ },
47
+ "./http": {
48
+ "types": {
49
+ "require": "./dist/http/index.d.ts",
50
+ "import": "./dist/http/index.d.mts"
51
+ },
52
+ "require": "./dist/http/index.js",
53
+ "import": "./dist/http/index.mjs"
54
+ },
55
+ "./logging": {
56
+ "types": {
57
+ "require": "./dist/logging/index.d.ts",
58
+ "import": "./dist/logging/index.d.mts"
59
+ },
60
+ "require": "./dist/logging/index.js",
61
+ "import": "./dist/logging/index.mjs"
62
+ },
63
+ "./storage": {
64
+ "types": {
65
+ "require": "./dist/storage/index.d.ts",
66
+ "import": "./dist/storage/index.d.mts"
67
+ },
68
+ "require": "./dist/storage/index.js",
69
+ "import": "./dist/storage/index.mjs"
70
+ }
71
+ },
72
+ "scripts": {
73
+ "clean": "npx rimraf ./dist",
74
+ "lint": "npx eslint",
75
+ "lint:fix": "npx eslint --fix",
76
+ "build": "npx tsup",
77
+ "test": "npx jest"
78
+ },
79
+ "dependencies": {
80
+ "axios": "^1.8.2"
81
+ },
82
+ "devDependencies": {
83
+ "@microsoft/teams.config": "*",
84
+ "@types/jest": "^29.5.12",
85
+ "jest": "^29.7.0",
86
+ "rimraf": "^6.0.1",
87
+ "ts-jest": "^29.2.5",
88
+ "tsup": "^8.4.0",
89
+ "typescript": "^5.4.5"
90
+ }
91
+ }