@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.
- package/dist/Drivers/MemoryStorage.d.mts +1 -1
- package/dist/Drivers/S3Storage.d.mts +1 -1
- package/dist/Drivers/S3Storage.mjs +4296 -4722
- package/dist/event-streams-CEo-hsfG.mjs +179 -0
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +17 -29
- package/dist/schema-DfAlCaU9.mjs +1176 -0
- package/package.json +4 -4
- package/dist/chunk-UoOzN6Vc.mjs +0 -40
- /package/dist/{Storage-KmyCHv2F.d.mts → Storage-D-QyQ5of.d.mts} +0 -0
|
@@ -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
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
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
(
|
|
144
|
-
(
|
|
145
|
-
(
|
|
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 };
|