@tinycloud/sdk-services 1.6.0 → 2.0.1

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 (49) hide show
  1. package/dist/duckdb/DuckDbService.d.ts.map +1 -1
  2. package/dist/duckdb/DuckDbService.js +12 -4
  3. package/dist/duckdb/DuckDbService.js.map +1 -1
  4. package/dist/errors.d.ts +19 -0
  5. package/dist/errors.d.ts.map +1 -1
  6. package/dist/errors.js +39 -1
  7. package/dist/errors.js.map +1 -1
  8. package/dist/index.d.ts +6 -4
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +4 -2
  11. package/dist/index.js.map +1 -1
  12. package/dist/kv/KVService.d.ts +2 -0
  13. package/dist/kv/KVService.d.ts.map +1 -1
  14. package/dist/kv/KVService.js +83 -1
  15. package/dist/kv/KVService.js.map +1 -1
  16. package/dist/quota/TinyCloudQuota.d.ts +27 -0
  17. package/dist/quota/TinyCloudQuota.d.ts.map +1 -0
  18. package/dist/quota/TinyCloudQuota.js +31 -0
  19. package/dist/quota/TinyCloudQuota.js.map +1 -0
  20. package/dist/quota/index.d.ts +3 -0
  21. package/dist/quota/index.d.ts.map +1 -0
  22. package/dist/quota/index.js +2 -0
  23. package/dist/quota/index.js.map +1 -0
  24. package/dist/sql/SQLService.d.ts.map +1 -1
  25. package/dist/sql/SQLService.js +12 -4
  26. package/dist/sql/SQLService.js.map +1 -1
  27. package/dist/types.d.ts +11 -0
  28. package/dist/types.d.ts.map +1 -1
  29. package/dist/types.js +4 -0
  30. package/dist/types.js.map +1 -1
  31. package/dist/vault/DataVaultService.d.ts +15 -6
  32. package/dist/vault/DataVaultService.d.ts.map +1 -1
  33. package/dist/vault/DataVaultService.js +92 -27
  34. package/dist/vault/DataVaultService.js.map +1 -1
  35. package/dist/vault/IDataVaultService.d.ts +10 -2
  36. package/dist/vault/IDataVaultService.d.ts.map +1 -1
  37. package/dist/vault/SignatureCache.d.ts +20 -0
  38. package/dist/vault/SignatureCache.d.ts.map +1 -0
  39. package/dist/vault/SignatureCache.js +167 -0
  40. package/dist/vault/SignatureCache.js.map +1 -0
  41. package/dist/vault/index.d.ts +2 -1
  42. package/dist/vault/index.d.ts.map +1 -1
  43. package/dist/vault/index.js +2 -1
  44. package/dist/vault/index.js.map +1 -1
  45. package/dist/vault/types.d.ts +9 -12
  46. package/dist/vault/types.d.ts.map +1 -1
  47. package/dist/vault/types.js +13 -11
  48. package/dist/vault/types.js.map +1 -1
  49. package/package.json +1 -1
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Caches vault signatures in IndexedDB, encrypted with a
3
+ * non-extractable CryptoKey. Browser-only — no-ops in Node.
4
+ */
5
+ const DB_NAME = "tinycloud-vault-cache";
6
+ const DB_VERSION = 1;
7
+ const STORE_NAME = "signatures";
8
+ const WRAP_KEY_ID = "__wrap_key__";
9
+ /** Check whether we're in a browser with IndexedDB + SubtleCrypto support. */
10
+ function isBrowser() {
11
+ try {
12
+ return (typeof indexedDB !== "undefined" &&
13
+ typeof crypto !== "undefined" &&
14
+ typeof crypto.subtle !== "undefined");
15
+ }
16
+ catch {
17
+ return false;
18
+ }
19
+ }
20
+ /** Open (or create) the IndexedDB database. */
21
+ function openDB() {
22
+ return new Promise((resolve, reject) => {
23
+ const request = indexedDB.open(DB_NAME, DB_VERSION);
24
+ request.onupgradeneeded = () => {
25
+ const db = request.result;
26
+ if (!db.objectStoreNames.contains(STORE_NAME)) {
27
+ db.createObjectStore(STORE_NAME);
28
+ }
29
+ };
30
+ request.onsuccess = () => resolve(request.result);
31
+ request.onerror = () => reject(request.error);
32
+ });
33
+ }
34
+ /** Generic IDB get helper. */
35
+ function idbGet(db, key) {
36
+ return new Promise((resolve, reject) => {
37
+ const tx = db.transaction(STORE_NAME, "readonly");
38
+ const store = tx.objectStore(STORE_NAME);
39
+ const req = store.get(key);
40
+ req.onsuccess = () => resolve(req.result);
41
+ req.onerror = () => reject(req.error);
42
+ });
43
+ }
44
+ /** Generic IDB put helper. */
45
+ function idbPut(db, key, value) {
46
+ return new Promise((resolve, reject) => {
47
+ const tx = db.transaction(STORE_NAME, "readwrite");
48
+ const store = tx.objectStore(STORE_NAME);
49
+ const req = store.put(value, key);
50
+ req.onsuccess = () => resolve();
51
+ req.onerror = () => reject(req.error);
52
+ });
53
+ }
54
+ /** Generic IDB delete helper. */
55
+ function idbDelete(db, key) {
56
+ return new Promise((resolve, reject) => {
57
+ const tx = db.transaction(STORE_NAME, "readwrite");
58
+ const store = tx.objectStore(STORE_NAME);
59
+ const req = store.delete(key);
60
+ req.onsuccess = () => resolve();
61
+ req.onerror = () => reject(req.error);
62
+ });
63
+ }
64
+ /** List all keys in the store. */
65
+ function idbKeys(db) {
66
+ return new Promise((resolve, reject) => {
67
+ const tx = db.transaction(STORE_NAME, "readonly");
68
+ const store = tx.objectStore(STORE_NAME);
69
+ const req = store.getAllKeys();
70
+ req.onsuccess = () => resolve(req.result.filter((k) => typeof k === "string"));
71
+ req.onerror = () => reject(req.error);
72
+ });
73
+ }
74
+ /**
75
+ * Get or create the non-extractable AES-GCM wrapping key.
76
+ * The key is stored directly in IndexedDB (structured-clone preserves CryptoKey).
77
+ */
78
+ async function getWrapKey(db) {
79
+ const existing = await idbGet(db, WRAP_KEY_ID);
80
+ if (existing)
81
+ return existing;
82
+ const key = await crypto.subtle.generateKey({ name: "AES-GCM", length: 256 }, false, // non-extractable
83
+ ["encrypt", "decrypt"]);
84
+ await idbPut(db, WRAP_KEY_ID, key);
85
+ return key;
86
+ }
87
+ /** Encrypt signature bytes with the wrap key. */
88
+ async function encryptSig(wrapKey, sigBytes) {
89
+ const iv = crypto.getRandomValues(new Uint8Array(12));
90
+ const ciphertext = new Uint8Array(await crypto.subtle.encrypt({ name: "AES-GCM", iv }, wrapKey, sigBytes));
91
+ return { iv, ciphertext };
92
+ }
93
+ /** Decrypt an encrypted entry back to signature bytes. */
94
+ async function decryptSig(wrapKey, entry) {
95
+ const plaintext = await crypto.subtle.decrypt({ name: "AES-GCM", iv: entry.iv }, wrapKey, entry.ciphertext);
96
+ return new Uint8Array(plaintext);
97
+ }
98
+ /** Cache key for a given spaceId. */
99
+ function cacheKey(spaceId) {
100
+ return `sig:${spaceId}`;
101
+ }
102
+ // ============================================================================
103
+ // Public API
104
+ // ============================================================================
105
+ /**
106
+ * Load a cached signature for the given spaceId.
107
+ * Returns null on cache miss or in non-browser environments.
108
+ */
109
+ export async function loadCachedSignature(spaceId) {
110
+ if (!isBrowser())
111
+ return null;
112
+ try {
113
+ const db = await openDB();
114
+ const entry = await idbGet(db, cacheKey(spaceId));
115
+ if (!entry)
116
+ return null;
117
+ const wrapKey = await getWrapKey(db);
118
+ return await decryptSig(wrapKey, entry);
119
+ }
120
+ catch {
121
+ return null;
122
+ }
123
+ }
124
+ /**
125
+ * Cache a signature for the given spaceId.
126
+ * No-ops in non-browser environments.
127
+ */
128
+ export async function cacheSignature(spaceId, sigBytes) {
129
+ if (!isBrowser())
130
+ return;
131
+ try {
132
+ const db = await openDB();
133
+ const wrapKey = await getWrapKey(db);
134
+ const encrypted = await encryptSig(wrapKey, sigBytes);
135
+ await idbPut(db, cacheKey(spaceId), encrypted);
136
+ }
137
+ catch {
138
+ // Best-effort — swallow errors
139
+ }
140
+ }
141
+ /**
142
+ * Clear cached signature(s).
143
+ * If spaceId is provided, clears only that entry; otherwise clears all.
144
+ */
145
+ export async function clearSignatureCache(spaceId) {
146
+ if (!isBrowser())
147
+ return;
148
+ try {
149
+ const db = await openDB();
150
+ if (spaceId) {
151
+ await idbDelete(db, cacheKey(spaceId));
152
+ }
153
+ else {
154
+ // Clear all sig entries but keep the wrap key
155
+ const keys = await idbKeys(db);
156
+ for (const k of keys) {
157
+ if (k.startsWith("sig:")) {
158
+ await idbDelete(db, k);
159
+ }
160
+ }
161
+ }
162
+ }
163
+ catch {
164
+ // Best-effort
165
+ }
166
+ }
167
+ //# sourceMappingURL=SignatureCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SignatureCache.js","sourceRoot":"","sources":["../../src/vault/SignatureCache.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  export type { IDataVaultService } from "./IDataVaultService";
7
7
  export { DataVaultService, type VaultCrypto } from "./DataVaultService";
8
- export { VaultAction, VaultHeaders, type DataVaultConfig, type VaultPutOptions, type VaultGetOptions, type VaultListOptions, type VaultGrantOptions, type VaultEntry, type VaultError, type VaultActionType, } from "./types";
8
+ export { VaultHeaders, VaultPublicSpaceKVActions, VaultVersionConfig, CURRENT_VAULT_VERSION, type DataVaultConfig, type VaultPutOptions, type VaultGetOptions, type VaultListOptions, type VaultGrantOptions, type VaultEntry, type VaultError, } from "./types";
9
9
  export { createVaultCrypto, type WasmVaultFunctions } from "./createVaultCrypto";
10
+ export { clearSignatureCache } from "./SignatureCache";
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vault/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAE,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGxE,OAAO,EACL,WAAW,EACX,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,eAAe,GACrB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vault/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAE,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGxE,OAAO,EACL,YAAY,EACZ,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,UAAU,GAChB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -6,6 +6,7 @@
6
6
  // Implementation
7
7
  export { DataVaultService } from "./DataVaultService";
8
8
  // Types
9
- export { VaultAction, VaultHeaders, } from "./types";
9
+ export { VaultHeaders, VaultPublicSpaceKVActions, VaultVersionConfig, CURRENT_VAULT_VERSION, } from "./types";
10
10
  export { createVaultCrypto } from "./createVaultCrypto";
11
+ export { clearSignatureCache } from "./SignatureCache";
11
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vault/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,iBAAiB;AACjB,OAAO,EAAE,gBAAgB,EAAoB,MAAM,oBAAoB,CAAC;AAExE,QAAQ;AACR,OAAO,EACL,WAAW,EACX,YAAY,GASb,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,iBAAiB,EAA2B,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vault/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,iBAAiB;AACjB,OAAO,EAAE,gBAAgB,EAAoB,MAAM,oBAAoB,CAAC;AAExE,QAAQ;AACR,OAAO,EACL,YAAY,EACZ,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,GAQtB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,iBAAiB,EAA2B,MAAM,qBAAqB,CAAC;AAEjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -117,19 +117,16 @@ export type VaultError = VaultErrorInput & {
117
117
  service: "vault";
118
118
  message: string;
119
119
  };
120
- /**
121
- * Vault action types for UCAN invocations.
122
- */
123
- export declare const VaultAction: {
124
- readonly PUT: "tinycloud.vault/put";
125
- readonly GET: "tinycloud.vault/get";
126
- readonly LIST: "tinycloud.vault/list";
127
- readonly DELETE: "tinycloud.vault/del";
128
- readonly HEAD: "tinycloud.vault/metadata";
129
- readonly GRANT: "tinycloud.vault/grant";
130
- readonly REVOKE: "tinycloud.vault/revoke";
120
+ /** KV actions the vault needs on the public space for key publishing. */
121
+ export declare const VaultPublicSpaceKVActions: readonly ["tinycloud.kv/get", "tinycloud.kv/put", "tinycloud.kv/metadata"];
122
+ /** Version-keyed signing message configuration for vault key derivation. */
123
+ export declare const VaultVersionConfig: {
124
+ readonly "1": {
125
+ readonly masterMessage: (spaceId: string) => string;
126
+ readonly identityMessage: "tinycloud-encryption-identity-v1";
127
+ };
131
128
  };
132
- export type VaultActionType = (typeof VaultAction)[keyof typeof VaultAction];
129
+ export declare const CURRENT_VAULT_VERSION: "1";
133
130
  /** Metadata header keys used in vault envelopes */
134
131
  export declare const VaultHeaders: {
135
132
  readonly VERSION: "x-vault-version";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vault/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vault/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,UAAU,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,wEAAwE;IACxE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,CAAC,CAAC;IACtC,yDAAyD;IACzD,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,oFAAoF;IACpF,EAAE,CAAC,EAAE;QAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,OAAO,CAAA;SAAE,GAAG,OAAO,CAAC;YAAE,EAAE,EAAE,OAAO,CAAC;YAAC,IAAI,CAAC,EAAE;gBAAE,IAAI,EAAE,CAAC,CAAA;aAAE,CAAC;YAAC,KAAK,CAAC,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;CACtI;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,sBAAsB;IACtB,KAAK,EAAE,CAAC,CAAC;IACT,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAGjF,yEAAyE;AACzE,eAAO,MAAM,yBAAyB,4EAI5B,CAAC;AAEX,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB;;0CAEF,MAAM;;;CAGzB,CAAC;AAEX,eAAO,MAAM,qBAAqB,EAAG,GAAY,CAAC;AAElD,mDAAmD;AACnD,eAAO,MAAM,YAAY;;;;;;;;;CASf,CAAC"}
@@ -3,18 +3,20 @@
3
3
  *
4
4
  * Type definitions for the Data Vault (encrypted KV) service operations.
5
5
  */
6
- /**
7
- * Vault action types for UCAN invocations.
8
- */
9
- export const VaultAction = {
10
- PUT: "tinycloud.vault/put",
11
- GET: "tinycloud.vault/get",
12
- LIST: "tinycloud.vault/list",
13
- DELETE: "tinycloud.vault/del",
14
- HEAD: "tinycloud.vault/metadata",
15
- GRANT: "tinycloud.vault/grant",
16
- REVOKE: "tinycloud.vault/revoke",
6
+ /** KV actions the vault needs on the public space for key publishing. */
7
+ export const VaultPublicSpaceKVActions = [
8
+ "tinycloud.kv/get",
9
+ "tinycloud.kv/put",
10
+ "tinycloud.kv/metadata",
11
+ ];
12
+ /** Version-keyed signing message configuration for vault key derivation. */
13
+ export const VaultVersionConfig = {
14
+ "1": {
15
+ masterMessage: (spaceId) => `tinycloud-vault-master-v1:${spaceId}`,
16
+ identityMessage: "tinycloud-encryption-identity-v1",
17
+ },
17
18
  };
19
+ export const CURRENT_VAULT_VERSION = "1";
18
20
  /** Metadata header keys used in vault envelopes */
19
21
  export const VaultHeaders = {
20
22
  VERSION: "x-vault-version",
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/vault/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAwFH;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,qBAAqB;IAC1B,IAAI,EAAE,sBAAsB;IAC5B,MAAM,EAAE,qBAAqB;IAC7B,IAAI,EAAE,0BAA0B;IAChC,KAAK,EAAE,uBAAuB;IAC9B,MAAM,EAAE,wBAAwB;CACxB,CAAC;AAIX,mDAAmD;AACnD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,iBAAiB;IAC1B,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB;IACxB,YAAY,EAAE,sBAAsB;IACpC,GAAG,EAAE,aAAa;IAClB,YAAY,EAAE,sBAAsB;IACpC,aAAa,EAAE,uBAAuB;IACtC,OAAO,EAAE,iBAAiB;CAClB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/vault/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAyFH,yEAAyE;AACzE,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,kBAAkB;IAClB,kBAAkB;IAClB,uBAAuB;CACf,CAAC;AAEX,4EAA4E;AAC5E,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,GAAG,EAAE;QACH,aAAa,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,6BAA6B,OAAO,EAAE;QAC1E,eAAe,EAAE,kCAAkC;KACpD;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAY,CAAC;AAElD,mDAAmD;AACnD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,iBAAiB;IAC1B,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB;IACxB,YAAY,EAAE,sBAAsB;IACpC,GAAG,EAAE,aAAa;IAClB,YAAY,EAAE,sBAAsB;IACpC,aAAa,EAAE,uBAAuB;IACtC,OAAO,EAAE,iBAAiB;CAClB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tinycloud/sdk-services",
3
- "version": "1.6.0",
3
+ "version": "2.0.1",
4
4
  "description": "TinyCloud SDK Services - Platform-agnostic service implementations",
5
5
  "author": "TinyCloud, Inc.",
6
6
  "license": "EGPL",