@spiffcommerce/core 40.3.5 → 40.3.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.
- package/CHANGELOG.md +6 -0
- package/dist/index-BkPtU8DT.js +80347 -0
- package/dist/index-BkPtU8DT.js.map +1 -0
- package/dist/index-CDheCUX6.js +154 -0
- package/dist/index-CDheCUX6.js.map +1 -0
- package/dist/index-CaPBJxcG.cjs +2906 -0
- package/dist/index-CaPBJxcG.cjs.map +1 -0
- package/dist/index-Cgs9dElt.cjs +2 -0
- package/dist/index-Cgs9dElt.cjs.map +1 -0
- package/dist/index.cjs +1 -2689
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +184 -18154
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { t as z, f as x } from "./index-BkPtU8DT.js";
|
|
2
|
+
class T {
|
|
3
|
+
marshaller;
|
|
4
|
+
serializer;
|
|
5
|
+
deserializer;
|
|
6
|
+
serdeContext;
|
|
7
|
+
defaultContentType;
|
|
8
|
+
constructor({ marshaller: i, serializer: n, deserializer: o, serdeContext: c, defaultContentType: y }) {
|
|
9
|
+
this.marshaller = i, this.serializer = n, this.deserializer = o, this.serdeContext = c, this.defaultContentType = y;
|
|
10
|
+
}
|
|
11
|
+
async serializeEventStream({ eventStream: i, requestSchema: n, initialRequest: o }) {
|
|
12
|
+
const c = this.marshaller, y = n.getEventStreamMember(), p = n.getMemberSchema(y), d = this.serializer, u = this.defaultContentType, h = /* @__PURE__ */ Symbol("initialRequestMarker"), S = {
|
|
13
|
+
async *[Symbol.asyncIterator]() {
|
|
14
|
+
if (o) {
|
|
15
|
+
const r = {
|
|
16
|
+
":event-type": { type: "string", value: "initial-request" },
|
|
17
|
+
":message-type": { type: "string", value: "event" },
|
|
18
|
+
":content-type": { type: "string", value: u }
|
|
19
|
+
};
|
|
20
|
+
d.write(n, o);
|
|
21
|
+
const t = d.flush();
|
|
22
|
+
yield {
|
|
23
|
+
[h]: !0,
|
|
24
|
+
headers: r,
|
|
25
|
+
body: t
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
for await (const r of i)
|
|
29
|
+
yield r;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
return c.serialize(S, (r) => {
|
|
33
|
+
if (r[h])
|
|
34
|
+
return {
|
|
35
|
+
headers: r.headers,
|
|
36
|
+
body: r.body
|
|
37
|
+
};
|
|
38
|
+
const t = Object.keys(r).find((s) => s !== "__type") ?? "", { additionalHeaders: e, body: a, eventType: l, explicitPayloadContentType: m } = this.writeEventBody(t, p, r);
|
|
39
|
+
return {
|
|
40
|
+
headers: {
|
|
41
|
+
":event-type": { type: "string", value: l },
|
|
42
|
+
":message-type": { type: "string", value: "event" },
|
|
43
|
+
":content-type": { type: "string", value: m ?? u },
|
|
44
|
+
...e
|
|
45
|
+
},
|
|
46
|
+
body: a
|
|
47
|
+
};
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
async deserializeEventStream({ response: i, responseSchema: n, initialResponseContainer: o }) {
|
|
51
|
+
const c = this.marshaller, y = n.getEventStreamMember(), d = n.getMemberSchema(y).getMemberSchemas(), u = /* @__PURE__ */ Symbol("initialResponseMarker"), h = c.deserialize(i.body, async (t) => {
|
|
52
|
+
const e = Object.keys(t).find((l) => l !== "__type") ?? "", a = t[e].body;
|
|
53
|
+
if (e === "initial-response") {
|
|
54
|
+
const l = await this.deserializer.read(n, a);
|
|
55
|
+
return delete l[y], {
|
|
56
|
+
[u]: !0,
|
|
57
|
+
...l
|
|
58
|
+
};
|
|
59
|
+
} else if (e in d) {
|
|
60
|
+
const l = d[e];
|
|
61
|
+
if (l.isStructSchema()) {
|
|
62
|
+
const m = {};
|
|
63
|
+
let f = !1;
|
|
64
|
+
for (const [s, g] of l.structIterator()) {
|
|
65
|
+
const { eventHeader: v, eventPayload: w } = g.getMergedTraits();
|
|
66
|
+
if (f = f || !!(v || w), w)
|
|
67
|
+
g.isBlobSchema() ? m[s] = a : g.isStringSchema() ? m[s] = (this.serdeContext?.utf8Encoder ?? z)(a) : g.isStructSchema() && (m[s] = await this.deserializer.read(g, a));
|
|
68
|
+
else if (v) {
|
|
69
|
+
const b = t[e].headers[s]?.value;
|
|
70
|
+
b != null && (g.isNumericSchema() ? b && typeof b == "object" && "bytes" in b ? m[s] = BigInt(b.toString()) : m[s] = Number(b) : m[s] = b);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (f)
|
|
74
|
+
return {
|
|
75
|
+
[e]: m
|
|
76
|
+
};
|
|
77
|
+
if (a.byteLength === 0)
|
|
78
|
+
return {
|
|
79
|
+
[e]: {}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
[e]: await this.deserializer.read(l, a)
|
|
84
|
+
};
|
|
85
|
+
} else
|
|
86
|
+
return {
|
|
87
|
+
$unknown: t
|
|
88
|
+
};
|
|
89
|
+
}), S = h[Symbol.asyncIterator](), r = await S.next();
|
|
90
|
+
if (r.done)
|
|
91
|
+
return h;
|
|
92
|
+
if (r.value?.[u]) {
|
|
93
|
+
if (!n)
|
|
94
|
+
throw new Error("@smithy::core/protocols - initial-response event encountered in event stream but no response schema given.");
|
|
95
|
+
for (const [t, e] of Object.entries(r.value))
|
|
96
|
+
o[t] = e;
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
async *[Symbol.asyncIterator]() {
|
|
100
|
+
for (r?.value?.[u] || (yield r.value); ; ) {
|
|
101
|
+
const { done: t, value: e } = await S.next();
|
|
102
|
+
if (t)
|
|
103
|
+
break;
|
|
104
|
+
yield e;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
writeEventBody(i, n, o) {
|
|
110
|
+
const c = this.serializer;
|
|
111
|
+
let y = i, p = null, d;
|
|
112
|
+
const u = n.getSchema()[4].includes(i), h = {};
|
|
113
|
+
if (u) {
|
|
114
|
+
const t = n.getMemberSchema(i);
|
|
115
|
+
if (t.isStructSchema()) {
|
|
116
|
+
for (const [e, a] of t.structIterator()) {
|
|
117
|
+
const { eventHeader: l, eventPayload: m } = a.getMergedTraits();
|
|
118
|
+
if (m)
|
|
119
|
+
p = e;
|
|
120
|
+
else if (l) {
|
|
121
|
+
const f = o[i][e];
|
|
122
|
+
let s = "binary";
|
|
123
|
+
a.isNumericSchema() ? (-2) ** 31 <= f && f <= 2 ** 31 - 1 ? s = "integer" : s = "long" : a.isTimestampSchema() ? s = "timestamp" : a.isStringSchema() ? s = "string" : a.isBooleanSchema() && (s = "boolean"), f != null && (h[e] = {
|
|
124
|
+
type: s,
|
|
125
|
+
value: f
|
|
126
|
+
}, delete o[i][e]);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
if (p !== null) {
|
|
130
|
+
const e = t.getMemberSchema(p);
|
|
131
|
+
e.isBlobSchema() ? d = "application/octet-stream" : e.isStringSchema() && (d = "text/plain"), c.write(e, o[i][p]);
|
|
132
|
+
} else
|
|
133
|
+
c.write(t, o[i]);
|
|
134
|
+
} else if (t.isUnitSchema())
|
|
135
|
+
c.write(t, {});
|
|
136
|
+
else
|
|
137
|
+
throw new Error("@smithy/core/event-streams - non-struct member not supported in event stream union.");
|
|
138
|
+
} else {
|
|
139
|
+
const [t, e] = o[i];
|
|
140
|
+
y = t, c.write(15, e);
|
|
141
|
+
}
|
|
142
|
+
const S = c.flush() ?? new Uint8Array();
|
|
143
|
+
return {
|
|
144
|
+
body: typeof S == "string" ? (this.serdeContext?.utf8Decoder ?? x)(S) : S,
|
|
145
|
+
eventType: y,
|
|
146
|
+
explicitPayloadContentType: d,
|
|
147
|
+
additionalHeaders: h
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
export {
|
|
152
|
+
T as EventStreamSerde
|
|
153
|
+
};
|
|
154
|
+
//# sourceMappingURL=index-CDheCUX6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-CDheCUX6.js","sources":["../../../node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js"],"sourcesContent":["import { fromUtf8, toUtf8 } from \"@smithy/util-utf8\";\nexport class EventStreamSerde {\n marshaller;\n serializer;\n deserializer;\n serdeContext;\n defaultContentType;\n constructor({ marshaller, serializer, deserializer, serdeContext, defaultContentType, }) {\n this.marshaller = marshaller;\n this.serializer = serializer;\n this.deserializer = deserializer;\n this.serdeContext = serdeContext;\n this.defaultContentType = defaultContentType;\n }\n async serializeEventStream({ eventStream, requestSchema, initialRequest, }) {\n const marshaller = this.marshaller;\n const eventStreamMember = requestSchema.getEventStreamMember();\n const unionSchema = requestSchema.getMemberSchema(eventStreamMember);\n const serializer = this.serializer;\n const defaultContentType = this.defaultContentType;\n const initialRequestMarker = Symbol(\"initialRequestMarker\");\n const eventStreamIterable = {\n async *[Symbol.asyncIterator]() {\n if (initialRequest) {\n const headers = {\n \":event-type\": { type: \"string\", value: \"initial-request\" },\n \":message-type\": { type: \"string\", value: \"event\" },\n \":content-type\": { type: \"string\", value: defaultContentType },\n };\n serializer.write(requestSchema, initialRequest);\n const body = serializer.flush();\n yield {\n [initialRequestMarker]: true,\n headers,\n body,\n };\n }\n for await (const page of eventStream) {\n yield page;\n }\n },\n };\n return marshaller.serialize(eventStreamIterable, (event) => {\n if (event[initialRequestMarker]) {\n return {\n headers: event.headers,\n body: event.body,\n };\n }\n const unionMember = Object.keys(event).find((key) => {\n return key !== \"__type\";\n }) ?? \"\";\n const { additionalHeaders, body, eventType, explicitPayloadContentType } = this.writeEventBody(unionMember, unionSchema, event);\n const headers = {\n \":event-type\": { type: \"string\", value: eventType },\n \":message-type\": { type: \"string\", value: \"event\" },\n \":content-type\": { type: \"string\", value: explicitPayloadContentType ?? defaultContentType },\n ...additionalHeaders,\n };\n return {\n headers,\n body,\n };\n });\n }\n async deserializeEventStream({ response, responseSchema, initialResponseContainer, }) {\n const marshaller = this.marshaller;\n const eventStreamMember = responseSchema.getEventStreamMember();\n const unionSchema = responseSchema.getMemberSchema(eventStreamMember);\n const memberSchemas = unionSchema.getMemberSchemas();\n const initialResponseMarker = Symbol(\"initialResponseMarker\");\n const asyncIterable = marshaller.deserialize(response.body, async (event) => {\n const unionMember = Object.keys(event).find((key) => {\n return key !== \"__type\";\n }) ?? \"\";\n const body = event[unionMember].body;\n if (unionMember === \"initial-response\") {\n const dataObject = await this.deserializer.read(responseSchema, body);\n delete dataObject[eventStreamMember];\n return {\n [initialResponseMarker]: true,\n ...dataObject,\n };\n }\n else if (unionMember in memberSchemas) {\n const eventStreamSchema = memberSchemas[unionMember];\n if (eventStreamSchema.isStructSchema()) {\n const out = {};\n let hasBindings = false;\n for (const [name, member] of eventStreamSchema.structIterator()) {\n const { eventHeader, eventPayload } = member.getMergedTraits();\n hasBindings = hasBindings || Boolean(eventHeader || eventPayload);\n if (eventPayload) {\n if (member.isBlobSchema()) {\n out[name] = body;\n }\n else if (member.isStringSchema()) {\n out[name] = (this.serdeContext?.utf8Encoder ?? toUtf8)(body);\n }\n else if (member.isStructSchema()) {\n out[name] = await this.deserializer.read(member, body);\n }\n }\n else if (eventHeader) {\n const value = event[unionMember].headers[name]?.value;\n if (value != null) {\n if (member.isNumericSchema()) {\n if (value && typeof value === \"object\" && \"bytes\" in value) {\n out[name] = BigInt(value.toString());\n }\n else {\n out[name] = Number(value);\n }\n }\n else {\n out[name] = value;\n }\n }\n }\n }\n if (hasBindings) {\n return {\n [unionMember]: out,\n };\n }\n if (body.byteLength === 0) {\n return {\n [unionMember]: {},\n };\n }\n }\n return {\n [unionMember]: await this.deserializer.read(eventStreamSchema, body),\n };\n }\n else {\n return {\n $unknown: event,\n };\n }\n });\n const asyncIterator = asyncIterable[Symbol.asyncIterator]();\n const firstEvent = await asyncIterator.next();\n if (firstEvent.done) {\n return asyncIterable;\n }\n if (firstEvent.value?.[initialResponseMarker]) {\n if (!responseSchema) {\n throw new Error(\"@smithy::core/protocols - initial-response event encountered in event stream but no response schema given.\");\n }\n for (const [key, value] of Object.entries(firstEvent.value)) {\n initialResponseContainer[key] = value;\n }\n }\n return {\n async *[Symbol.asyncIterator]() {\n if (!firstEvent?.value?.[initialResponseMarker]) {\n yield firstEvent.value;\n }\n while (true) {\n const { done, value } = await asyncIterator.next();\n if (done) {\n break;\n }\n yield value;\n }\n },\n };\n }\n writeEventBody(unionMember, unionSchema, event) {\n const serializer = this.serializer;\n let eventType = unionMember;\n let explicitPayloadMember = null;\n let explicitPayloadContentType;\n const isKnownSchema = (() => {\n const struct = unionSchema.getSchema();\n return struct[4].includes(unionMember);\n })();\n const additionalHeaders = {};\n if (!isKnownSchema) {\n const [type, value] = event[unionMember];\n eventType = type;\n serializer.write(15, value);\n }\n else {\n const eventSchema = unionSchema.getMemberSchema(unionMember);\n if (eventSchema.isStructSchema()) {\n for (const [memberName, memberSchema] of eventSchema.structIterator()) {\n const { eventHeader, eventPayload } = memberSchema.getMergedTraits();\n if (eventPayload) {\n explicitPayloadMember = memberName;\n }\n else if (eventHeader) {\n const value = event[unionMember][memberName];\n let type = \"binary\";\n if (memberSchema.isNumericSchema()) {\n if ((-2) ** 31 <= value && value <= 2 ** 31 - 1) {\n type = \"integer\";\n }\n else {\n type = \"long\";\n }\n }\n else if (memberSchema.isTimestampSchema()) {\n type = \"timestamp\";\n }\n else if (memberSchema.isStringSchema()) {\n type = \"string\";\n }\n else if (memberSchema.isBooleanSchema()) {\n type = \"boolean\";\n }\n if (value != null) {\n additionalHeaders[memberName] = {\n type,\n value,\n };\n delete event[unionMember][memberName];\n }\n }\n }\n if (explicitPayloadMember !== null) {\n const payloadSchema = eventSchema.getMemberSchema(explicitPayloadMember);\n if (payloadSchema.isBlobSchema()) {\n explicitPayloadContentType = \"application/octet-stream\";\n }\n else if (payloadSchema.isStringSchema()) {\n explicitPayloadContentType = \"text/plain\";\n }\n serializer.write(payloadSchema, event[unionMember][explicitPayloadMember]);\n }\n else {\n serializer.write(eventSchema, event[unionMember]);\n }\n }\n else if (eventSchema.isUnitSchema()) {\n serializer.write(eventSchema, {});\n }\n else {\n throw new Error(\"@smithy/core/event-streams - non-struct member not supported in event stream union.\");\n }\n }\n const messageSerialization = serializer.flush() ?? new Uint8Array();\n const body = typeof messageSerialization === \"string\"\n ? (this.serdeContext?.utf8Decoder ?? fromUtf8)(messageSerialization)\n : messageSerialization;\n return {\n body,\n eventType,\n explicitPayloadContentType,\n additionalHeaders,\n };\n }\n}\n"],"names":["EventStreamSerde","marshaller","serializer","deserializer","serdeContext","defaultContentType","eventStream","requestSchema","initialRequest","eventStreamMember","unionSchema","initialRequestMarker","eventStreamIterable","headers","body","page","event","unionMember","key","additionalHeaders","eventType","explicitPayloadContentType","response","responseSchema","initialResponseContainer","memberSchemas","initialResponseMarker","asyncIterable","dataObject","eventStreamSchema","out","hasBindings","name","member","eventHeader","eventPayload","toUtf8","value","asyncIterator","firstEvent","done","explicitPayloadMember","isKnownSchema","eventSchema","memberName","memberSchema","type","payloadSchema","messageSerialization","fromUtf8"],"mappings":"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","x_google_ignoreList":[0]}
|