@vercube/storage 0.0.23 → 0.0.24

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.
@@ -0,0 +1,179 @@
1
+ import { SCHEMA, __esm, __toESM, init_schema, require_dist_cjs } from "./schema-DfAlCaU9.mjs";
2
+
3
+ //#region ../../node_modules/.pnpm/@smithy+core@3.11.1/node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js
4
+ var import_dist_cjs, EventStreamSerde;
5
+ var init_EventStreamSerde = __esm({ "../../node_modules/.pnpm/@smithy+core@3.11.1/node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js": (() => {
6
+ init_schema();
7
+ import_dist_cjs = /* @__PURE__ */ __toESM(require_dist_cjs());
8
+ EventStreamSerde = class {
9
+ constructor({ marshaller, serializer, deserializer, serdeContext, defaultContentType }) {
10
+ this.marshaller = marshaller;
11
+ this.serializer = serializer;
12
+ this.deserializer = deserializer;
13
+ this.serdeContext = serdeContext;
14
+ this.defaultContentType = defaultContentType;
15
+ }
16
+ async serializeEventStream({ eventStream, requestSchema, initialRequest }) {
17
+ const marshaller = this.marshaller;
18
+ const eventStreamMember = requestSchema.getEventStreamMember();
19
+ const unionSchema = requestSchema.getMemberSchema(eventStreamMember);
20
+ unionSchema.getMemberSchemas();
21
+ const serializer = this.serializer;
22
+ const defaultContentType = this.defaultContentType;
23
+ const initialRequestMarker = Symbol("initialRequestMarker");
24
+ const eventStreamIterable = { async *[Symbol.asyncIterator]() {
25
+ if (initialRequest) {
26
+ const headers = {
27
+ ":event-type": {
28
+ type: "string",
29
+ value: "initial-request"
30
+ },
31
+ ":message-type": {
32
+ type: "string",
33
+ value: "event"
34
+ },
35
+ ":content-type": {
36
+ type: "string",
37
+ value: defaultContentType
38
+ }
39
+ };
40
+ serializer.write(requestSchema, initialRequest);
41
+ const body = serializer.flush();
42
+ yield {
43
+ [initialRequestMarker]: true,
44
+ headers,
45
+ body
46
+ };
47
+ }
48
+ for await (const page of eventStream) yield page;
49
+ } };
50
+ return marshaller.serialize(eventStreamIterable, (event) => {
51
+ if (event[initialRequestMarker]) return {
52
+ headers: event.headers,
53
+ body: event.body
54
+ };
55
+ const unionMember = Object.keys(event).find((key) => {
56
+ return key !== "__type";
57
+ }) ?? "";
58
+ const { additionalHeaders, body, eventType, explicitPayloadContentType } = this.writeEventBody(unionMember, unionSchema, event);
59
+ return {
60
+ headers: {
61
+ ":event-type": {
62
+ type: "string",
63
+ value: eventType
64
+ },
65
+ ":message-type": {
66
+ type: "string",
67
+ value: "event"
68
+ },
69
+ ":content-type": {
70
+ type: "string",
71
+ value: explicitPayloadContentType ?? defaultContentType
72
+ },
73
+ ...additionalHeaders
74
+ },
75
+ body
76
+ };
77
+ });
78
+ }
79
+ async deserializeEventStream({ response, responseSchema, initialResponseContainer }) {
80
+ const marshaller = this.marshaller;
81
+ const eventStreamMember = responseSchema.getEventStreamMember();
82
+ const memberSchemas = responseSchema.getMemberSchema(eventStreamMember).getMemberSchemas();
83
+ const initialResponseMarker = Symbol("initialResponseMarker");
84
+ const asyncIterable = marshaller.deserialize(response.body, async (event) => {
85
+ const unionMember = Object.keys(event).find((key) => {
86
+ return key !== "__type";
87
+ }) ?? "";
88
+ if (unionMember === "initial-response") {
89
+ const dataObject = await this.deserializer.read(responseSchema, event[unionMember].body);
90
+ delete dataObject[eventStreamMember];
91
+ return {
92
+ [initialResponseMarker]: true,
93
+ ...dataObject
94
+ };
95
+ } else if (unionMember in memberSchemas) {
96
+ const eventStreamSchema = memberSchemas[unionMember];
97
+ return { [unionMember]: await this.deserializer.read(eventStreamSchema, event[unionMember].body) };
98
+ } else return { $unknown: event };
99
+ });
100
+ const asyncIterator = asyncIterable[Symbol.asyncIterator]();
101
+ const firstEvent = await asyncIterator.next();
102
+ if (firstEvent.done) return asyncIterable;
103
+ if (firstEvent.value?.[initialResponseMarker]) {
104
+ if (!responseSchema) throw new Error("@smithy::core/protocols - initial-response event encountered in event stream but no response schema given.");
105
+ for (const [key, value] of Object.entries(firstEvent.value)) initialResponseContainer[key] = value;
106
+ }
107
+ return { async *[Symbol.asyncIterator]() {
108
+ if (!firstEvent?.value?.[initialResponseMarker]) yield firstEvent.value;
109
+ while (true) {
110
+ const { done, value } = await asyncIterator.next();
111
+ if (done) break;
112
+ yield value;
113
+ }
114
+ } };
115
+ }
116
+ writeEventBody(unionMember, unionSchema, event) {
117
+ const serializer = this.serializer;
118
+ let eventType = unionMember;
119
+ let explicitPayloadMember = null;
120
+ let explicitPayloadContentType;
121
+ const isKnownSchema = unionSchema.hasMemberSchema(unionMember);
122
+ const additionalHeaders = {};
123
+ if (!isKnownSchema) {
124
+ const [type, value] = event[unionMember];
125
+ eventType = type;
126
+ serializer.write(SCHEMA.DOCUMENT, value);
127
+ } else {
128
+ const eventSchema = unionSchema.getMemberSchema(unionMember);
129
+ if (eventSchema.isStructSchema()) {
130
+ for (const [memberName, memberSchema] of eventSchema.structIterator()) {
131
+ const { eventHeader, eventPayload } = memberSchema.getMergedTraits();
132
+ if (eventPayload) {
133
+ explicitPayloadMember = memberName;
134
+ break;
135
+ } else if (eventHeader) {
136
+ const value = event[unionMember][memberName];
137
+ let type = "binary";
138
+ if (memberSchema.isNumericSchema()) if ((-2) ** 31 <= value && value <= 2 ** 31 - 1) type = "integer";
139
+ else type = "long";
140
+ else if (memberSchema.isTimestampSchema()) type = "timestamp";
141
+ else if (memberSchema.isStringSchema()) type = "string";
142
+ else if (memberSchema.isBooleanSchema()) type = "boolean";
143
+ if (value != null) {
144
+ additionalHeaders[memberName] = {
145
+ type,
146
+ value
147
+ };
148
+ delete event[unionMember][memberName];
149
+ }
150
+ }
151
+ }
152
+ if (explicitPayloadMember !== null) {
153
+ const payloadSchema = eventSchema.getMemberSchema(explicitPayloadMember);
154
+ if (payloadSchema.isBlobSchema()) explicitPayloadContentType = "application/octet-stream";
155
+ else if (payloadSchema.isStringSchema()) explicitPayloadContentType = "text/plain";
156
+ serializer.write(payloadSchema, event[unionMember][explicitPayloadMember]);
157
+ } else serializer.write(eventSchema, event[unionMember]);
158
+ } else throw new Error("@smithy/core/event-streams - non-struct member not supported in event stream union.");
159
+ }
160
+ const messageSerialization = serializer.flush();
161
+ return {
162
+ body: typeof messageSerialization === "string" ? (this.serdeContext?.utf8Decoder ?? import_dist_cjs.fromUtf8)(messageSerialization) : messageSerialization,
163
+ eventType,
164
+ explicitPayloadContentType,
165
+ additionalHeaders
166
+ };
167
+ }
168
+ };
169
+ }) });
170
+
171
+ //#endregion
172
+ //#region ../../node_modules/.pnpm/@smithy+core@3.11.1/node_modules/@smithy/core/dist-es/submodules/event-streams/index.js
173
+ var init_event_streams = __esm({ "../../node_modules/.pnpm/@smithy+core@3.11.1/node_modules/@smithy/core/dist-es/submodules/event-streams/index.js": (() => {
174
+ init_EventStreamSerde();
175
+ }) });
176
+
177
+ //#endregion
178
+ init_event_streams();
179
+ export { EventStreamSerde };
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { Storage } from "./Storage-KmyCHv2F.mjs";
1
+ import { Storage } from "./Storage-D-QyQ5of.mjs";
2
2
  import { IOC } from "@vercube/di";
3
3
 
4
4
  //#region src/Types/StorageTypes.d.ts
package/dist/index.mjs CHANGED
@@ -1,22 +1,17 @@
1
- import { __commonJS, __toESM } from "./chunk-UoOzN6Vc.mjs";
2
1
  import { Storage } from "./Storage-Cr72sGff.mjs";
3
2
  import { Container, Init, Inject, InjectOptional } from "@vercube/di";
4
3
  import { Logger } from "@vercube/logger";
5
4
 
6
- //#region ../../node_modules/.pnpm/@oxc-project+runtime@0.82.3/node_modules/@oxc-project/runtime/src/helpers/decorate.js
7
- var require_decorate = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/@oxc-project+runtime@0.82.3/node_modules/@oxc-project/runtime/src/helpers/decorate.js": ((exports, module) => {
8
- function __decorate(decorators, target, key, desc) {
9
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
10
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
11
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12
- return c > 3 && r && Object.defineProperty(target, key, r), r;
13
- }
14
- module.exports = __decorate, module.exports.__esModule = true, module.exports["default"] = module.exports;
15
- }) });
5
+ //#region \0@oxc-project+runtime@0.90.0/helpers/decorate.js
6
+ function __decorate(decorators, target, key, desc) {
7
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
9
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
10
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
11
+ }
16
12
 
17
13
  //#endregion
18
14
  //#region src/Service/StorageManager.ts
19
- var import_decorate = /* @__PURE__ */ __toESM(require_decorate(), 1);
20
15
  /**
21
16
  * Manages multiple storage instances and provides a unified interface for storage operations.
22
17
  * Each storage instance is identified by a unique name and implements the Storage interface.
@@ -59,8 +54,7 @@ var StorageManager = class {
59
54
  * @returns {Promise<T | null>} A promise that resolves with the stored value or null if not found
60
55
  */
61
56
  async getItem({ storage, key }) {
62
- const storageInstance = this.getStorage(storage);
63
- return storageInstance?.getItem(key) ?? null;
57
+ return this.getStorage(storage)?.getItem(key) ?? null;
64
58
  }
65
59
  /**
66
60
  * Stores an item in the specified storage
@@ -72,8 +66,7 @@ var StorageManager = class {
72
66
  * @returns {Promise<void>} A promise that resolves when the value is stored
73
67
  */
74
68
  async setItem({ storage, key, value, options }) {
75
- const storageInstance = this.getStorage(storage);
76
- storageInstance?.setItem(key, value, options);
69
+ this.getStorage(storage)?.setItem(key, value, options);
77
70
  }
78
71
  /**
79
72
  * Deletes an item from the specified storage
@@ -83,8 +76,7 @@ var StorageManager = class {
83
76
  * @returns {Promise<void>} A promise that resolves when the item is deleted
84
77
  */
85
78
  async deleteItem({ storage, key }) {
86
- const storageInstance = this.getStorage(storage);
87
- storageInstance?.deleteItem(key);
79
+ this.getStorage(storage)?.deleteItem(key);
88
80
  }
89
81
  /**
90
82
  * Checks if an item exists in the specified storage
@@ -94,8 +86,7 @@ var StorageManager = class {
94
86
  * @returns {Promise<boolean>} A promise that resolves to true if the item exists, false otherwise
95
87
  */
96
88
  async hasItem({ storage, key }) {
97
- const storageInstance = this.getStorage(storage);
98
- return storageInstance?.hasItem(key) ?? false;
89
+ return this.getStorage(storage)?.hasItem(key) ?? false;
99
90
  }
100
91
  /**
101
92
  * Retrieves all keys from the specified storage
@@ -104,8 +95,7 @@ var StorageManager = class {
104
95
  * @returns {Promise<string[]>} A promise that resolves with an array of all keys
105
96
  */
106
97
  async getKeys({ storage }) {
107
- const storageInstance = this.getStorage(storage);
108
- return storageInstance?.getKeys() ?? [];
98
+ return this.getStorage(storage)?.getKeys() ?? [];
109
99
  }
110
100
  /**
111
101
  * Clears all items from the specified storage
@@ -114,8 +104,7 @@ var StorageManager = class {
114
104
  * @returns {Promise<void>} A promise that resolves when the storage is cleared
115
105
  */
116
106
  async clear({ storage }) {
117
- const storageInstance = this.getStorage(storage);
118
- storageInstance?.clear();
107
+ this.getStorage(storage)?.clear();
119
108
  }
120
109
  /**
121
110
  * Gets the number of items in the specified storage
@@ -124,8 +113,7 @@ var StorageManager = class {
124
113
  * @returns {Promise<number>} A promise that resolves with the number of items
125
114
  */
126
115
  async size({ storage }) {
127
- const storageInstance = this.getStorage(storage);
128
- return storageInstance?.size() ?? 0;
116
+ return this.getStorage(storage)?.size() ?? 0;
129
117
  }
130
118
  /**
131
119
  * Initializes all registered storage instances
@@ -140,9 +128,9 @@ var StorageManager = class {
140
128
  }
141
129
  }
142
130
  };
143
- (0, import_decorate.default)([Inject(Container)], StorageManager.prototype, "gContainer", void 0);
144
- (0, import_decorate.default)([InjectOptional(Logger)], StorageManager.prototype, "gLogger", void 0);
145
- (0, import_decorate.default)([Init()], StorageManager.prototype, "init", null);
131
+ __decorate([Inject(Container)], StorageManager.prototype, "gContainer", void 0);
132
+ __decorate([InjectOptional(Logger)], StorageManager.prototype, "gLogger", void 0);
133
+ __decorate([Init()], StorageManager.prototype, "init", null);
146
134
 
147
135
  //#endregion
148
136
  export { Storage, StorageManager };