Rocky_Mountain_Vending/.pnpm-store/v10/files/08/6392e3c95e629aa6e237c8f830048aa9a4b70d096c9c53004843d4677cd7c3b4a3b4e628bde0ce8f2bc0953be9788c142432398c6dbda1500d114ccc92bd25
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

136 lines
5.2 KiB
Text

import { determineTimestampFormat } from "@smithy/core/protocols";
import { NormalizedSchema } from "@smithy/core/schema";
import { dateToUtcString, generateIdempotencyToken, LazyJsonString, NumericValue } from "@smithy/core/serde";
import { toBase64 } from "@smithy/util-base64";
import { SerdeContextConfig } from "../../ConfigurableSerdeContext";
import { serializingStructIterator } from "../../structIterator";
export class SinglePassJsonShapeSerializer extends SerdeContextConfig {
settings;
buffer;
rootSchema;
constructor(settings) {
super();
this.settings = settings;
}
write(schema, value) {
this.rootSchema = NormalizedSchema.of(schema);
this.buffer = this.writeObject(this.rootSchema, value);
}
writeDiscriminatedDocument(schema, value) {
this.write(schema, value);
if (typeof this.buffer === "object") {
this.buffer.__type = NormalizedSchema.of(schema).getName(true);
}
}
flush() {
this.rootSchema = undefined;
return this.buffer;
}
writeObject(schema, value) {
if (value == undefined) {
return "";
}
let b = "";
const ns = NormalizedSchema.of(schema);
const sparse = !!ns.getMergedTraits().sparse;
if (Array.isArray(value) && (ns.isDocumentSchema() || ns.isListSchema())) {
b += "[";
for (let i = 0; i < value.length; ++i) {
const item = value[i];
if (item != null || sparse) {
b += this.writeValue(ns.getValueSchema(), item);
b += ",";
}
}
}
else if (ns.isStructSchema()) {
b += "{";
let didWriteMember = false;
for (const [name, member] of serializingStructIterator(ns, value)) {
const item = value[name];
const targetKey = this.settings.jsonName ? member.getMergedTraits().jsonName ?? name : name;
const serializableValue = this.writeValue(member, item);
if (item != null || member.isIdempotencyToken()) {
didWriteMember = true;
b += `"${targetKey}":${serializableValue}`;
b += ",";
}
}
if (!didWriteMember && ns.isUnionSchema()) {
const { $unknown } = value;
if (Array.isArray($unknown)) {
const [k, v] = $unknown;
b += `"${k}":${this.writeValue(15, v)}`;
}
}
}
else if (ns.isMapSchema() || ns.isDocumentSchema()) {
b += "{";
for (const [k, v] of Object.entries(value)) {
if (v != null || sparse) {
b += `"${k}":${this.writeValue(ns, v)}`;
b += ",";
}
}
}
if (b[b.length - 1] === ",") {
b = b.slice(0, -1);
}
if (b[0] === "[") {
b += "]";
}
if (b[0] === "{") {
b += "}";
}
return b;
}
writeValue(schema, value) {
const isObject = value !== null && typeof value === "object";
const ns = NormalizedSchema.of(schema);
const quote = (_) => `"${_}"`;
if ((ns.isBlobSchema() && (value instanceof Uint8Array || typeof value === "string")) ||
(ns.isDocumentSchema() && value instanceof Uint8Array)) {
return quote((this.serdeContext?.base64Encoder ?? toBase64)(value));
}
if ((ns.isTimestampSchema() || ns.isDocumentSchema()) && value instanceof Date) {
const format = determineTimestampFormat(ns, this.settings);
switch (format) {
case 5:
return quote(value.toISOString().replace(".000Z", "Z"));
case 6:
return quote(dateToUtcString(value));
case 7:
return String(value.getTime() / 1000);
default:
console.warn("Missing timestamp format, using epoch seconds", value);
return String(value.getTime() / 1000);
}
}
if (ns.isNumericSchema() && typeof value === "number") {
if (Math.abs(value) === Infinity || isNaN(value)) {
return quote(String(value));
}
}
if (ns.isStringSchema()) {
if (typeof value === "undefined" && ns.isIdempotencyToken()) {
return quote(generateIdempotencyToken());
}
if (typeof value === "string") {
const mediaType = ns.getMergedTraits().mediaType;
if (mediaType) {
const isJson = mediaType === "application/json" || mediaType.endsWith("+json");
if (isJson) {
return quote(LazyJsonString.from(value).toString());
}
}
}
}
if (value instanceof NumericValue) {
return value.string;
}
if (isObject) {
return this.writeObject(ns, value);
}
return typeof value === "string" ? quote(value) : String(value);
}
}