@superbright/indexeddb-orm 1.0.48 → 1.0.50
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/README.md +24 -1
- package/dist/api/api.generated.d.ts +146 -0
- package/dist/api/cms-schemas.generated.cjs +2 -0
- package/dist/api/cms-schemas.generated.cjs.map +1 -0
- package/dist/api/cms-schemas.generated.d.ts +3087 -0
- package/dist/api/cms-schemas.generated.mjs +133 -0
- package/dist/api/cms-schemas.generated.mjs.map +1 -0
- package/dist/api/{response-schemas.generated.cjs → embed-schemas.generated.cjs} +1 -1
- package/dist/api/embed-schemas.generated.cjs.map +1 -0
- package/dist/api/{response-schemas.generated.d.ts → embed-schemas.generated.d.ts} +744 -744
- package/dist/api/{response-schemas.generated.mjs → embed-schemas.generated.mjs} +1 -1
- package/dist/api/embed-schemas.generated.mjs.map +1 -0
- package/dist/api/schemas.generated.d.ts +262 -262
- package/dist/base/floorplan.d.ts +4 -4
- package/dist/base/furniture.d.ts +4 -4
- package/dist/base/media.d.ts +14 -14
- package/dist/base/property.d.ts +8 -8
- package/dist/base/propertylink.d.ts +2 -2
- package/dist/base/room.d.ts +2 -2
- package/dist/base/style.d.ts +2 -2
- package/dist/base/unit.d.ts +16 -16
- package/dist/base/userinquiry.d.ts +2 -2
- package/dist/base/visitor.d.ts +2 -2
- package/dist/base/visitorfilter.d.ts +2 -2
- package/dist/base/visitorquestionnaire.d.ts +2 -2
- package/dist/base/visitorunitengagement.d.ts +4 -4
- package/dist/cms-schemas.cjs +2 -0
- package/dist/cms-schemas.cjs.map +1 -0
- package/dist/cms-schemas.d.ts +1 -0
- package/dist/cms-schemas.mjs +25 -0
- package/dist/cms-schemas.mjs.map +1 -0
- package/dist/embed-schemas.cjs +2 -0
- package/dist/embed-schemas.cjs.map +1 -0
- package/dist/embed-schemas.d.ts +1 -0
- package/dist/{response-schemas.mjs → embed-schemas.mjs} +2 -2
- package/dist/embed-schemas.mjs.map +1 -0
- package/dist/features/analytics/analytics.d.ts +102 -102
- package/dist/schema.d.ts +253 -253
- package/package.json +10 -5
- package/dist/api/response-schemas.generated.cjs.map +0 -1
- package/dist/api/response-schemas.generated.mjs.map +0 -1
- package/dist/response-schemas.cjs +0 -2
- package/dist/response-schemas.cjs.map +0 -1
- package/dist/response-schemas.d.ts +0 -1
- package/dist/response-schemas.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -96,10 +96,33 @@ Each `generate:api-schema:*` script calls `scripts/generate-api-schema.mjs --url
|
|
|
96
96
|
2. Generates `src/api/api.generated.ts` — TypeScript interfaces for all paths and operations (openapi-typescript)
|
|
97
97
|
3. Runs `scripts/gen-schemas.mjs`, which emits:
|
|
98
98
|
- `src/api/schemas.generated.ts` — Zod schemas inferred from `openapi.json` component schemas (circular refs use `z.lazy()`)
|
|
99
|
-
- `src/api/
|
|
99
|
+
- `src/api/embed-schemas.generated.ts` — strict embed API response schemas from `src/scripts/embed-schema-overrides.json` (see below)
|
|
100
|
+
- `src/api/cms-schemas.generated.ts` — CMS admin API response schemas from `src/scripts/cms-schema-overrides.json` (permanent)
|
|
100
101
|
|
|
101
102
|
Never edit `*.generated.ts` files by hand — they will be overwritten on the next generation run.
|
|
102
103
|
|
|
104
|
+
### embed-schema-overrides.json
|
|
105
|
+
|
|
106
|
+
`src/scripts/embed-schema-overrides.json` is a hand-maintained JSON Schema-like file that provides strict, fully-typed Zod schemas for the embed API responses. It exists because the live OpenAPI spec is incomplete in several ways:
|
|
107
|
+
|
|
108
|
+
- **`Media` is under-specified** — the spec has all fields optional; the real response has 20+ fields with required markers, and includes `signed2180Url`, `signed1080Url`, `signed720Url` that are absent from the spec entirely.
|
|
109
|
+
- **Embed-specific schemas are missing** — `PropertyResponseData`, `BootstrapData`, `UnitsByIdsResponse`, `FiltersResponseData`, and others do not exist in the spec at all.
|
|
110
|
+
- **Embed endpoint response types are wrong** — e.g. `/embed/{slug}/filters` declares `Unit[]` but actually returns a full filters + questionnaire payload.
|
|
111
|
+
|
|
112
|
+
`gen-schemas.mjs` reads the overrides file and compiles it into `embed-schemas.generated.ts` using a small code-generator that supports a subset of JSON Schema plus two escape hatches:
|
|
113
|
+
|
|
114
|
+
- **`"x-zod": "<expr>"`** — emits a raw Zod expression verbatim. Use this for types that can't be expressed in JSON Schema (e.g. `z.record(z.unknown())`, `z.union([...])`).
|
|
115
|
+
- **`"x-coerce": true`** — on a `string`/`date-time` field, emits `z.coerce.date()` instead of `z.string()`.
|
|
116
|
+
|
|
117
|
+
Fields listed in `"required"` are emitted without `.optional()`; all others get `.optional()`. `$ref` values resolve to `<Name>Schema` within the same file. Nullable fields use `"nullable": true` alongside their type.
|
|
118
|
+
|
|
119
|
+
**To remove the overrides** once the API spec is fixed, the spec needs:
|
|
120
|
+
1. Full `Media` shape with all required fields and the `signed*Url` variants
|
|
121
|
+
2. `PropertyResponseData`, `BootstrapData`, `UnitsByIdsResponse`, `FiltersResponseData`, and the remaining embed-specific schemas added as components
|
|
122
|
+
3. Correct response types on the embed endpoints that reference those components
|
|
123
|
+
|
|
124
|
+
Once those are in place, `embed-schemas.generated.ts` can be generated directly from `schemas.generated.ts` and the overrides file and its generator path can be removed.
|
|
125
|
+
|
|
103
126
|
## Development
|
|
104
127
|
|
|
105
128
|
```bash
|
|
@@ -6543,6 +6543,71 @@ export interface paths {
|
|
|
6543
6543
|
patch?: never;
|
|
6544
6544
|
trace?: never;
|
|
6545
6545
|
};
|
|
6546
|
+
"/renders/{id}/test-status": {
|
|
6547
|
+
parameters: {
|
|
6548
|
+
query?: never;
|
|
6549
|
+
header?: never;
|
|
6550
|
+
path?: never;
|
|
6551
|
+
cookie?: never;
|
|
6552
|
+
};
|
|
6553
|
+
get?: never;
|
|
6554
|
+
/** Update testsPassed flag for a render job */
|
|
6555
|
+
put: {
|
|
6556
|
+
parameters: {
|
|
6557
|
+
query?: never;
|
|
6558
|
+
header?: never;
|
|
6559
|
+
path: {
|
|
6560
|
+
/** @description job id */
|
|
6561
|
+
id: number;
|
|
6562
|
+
};
|
|
6563
|
+
cookie?: never;
|
|
6564
|
+
};
|
|
6565
|
+
requestBody: {
|
|
6566
|
+
content: {
|
|
6567
|
+
"application/json": {
|
|
6568
|
+
floorPlanId: number;
|
|
6569
|
+
testsPassed: boolean;
|
|
6570
|
+
};
|
|
6571
|
+
};
|
|
6572
|
+
};
|
|
6573
|
+
responses: {
|
|
6574
|
+
/** @description Successfully updated testsPassed flag */
|
|
6575
|
+
200: {
|
|
6576
|
+
headers: {
|
|
6577
|
+
[name: string]: unknown;
|
|
6578
|
+
};
|
|
6579
|
+
content?: never;
|
|
6580
|
+
};
|
|
6581
|
+
/** @description Unauthorized */
|
|
6582
|
+
401: {
|
|
6583
|
+
headers: {
|
|
6584
|
+
[name: string]: unknown;
|
|
6585
|
+
};
|
|
6586
|
+
content?: never;
|
|
6587
|
+
};
|
|
6588
|
+
/** @description FloorPlan or RenderJob not found */
|
|
6589
|
+
404: {
|
|
6590
|
+
headers: {
|
|
6591
|
+
[name: string]: unknown;
|
|
6592
|
+
};
|
|
6593
|
+
content?: never;
|
|
6594
|
+
};
|
|
6595
|
+
/** @description Internal Server Error */
|
|
6596
|
+
500: {
|
|
6597
|
+
headers: {
|
|
6598
|
+
[name: string]: unknown;
|
|
6599
|
+
};
|
|
6600
|
+
content?: never;
|
|
6601
|
+
};
|
|
6602
|
+
};
|
|
6603
|
+
};
|
|
6604
|
+
post?: never;
|
|
6605
|
+
delete?: never;
|
|
6606
|
+
options?: never;
|
|
6607
|
+
head?: never;
|
|
6608
|
+
patch?: never;
|
|
6609
|
+
trace?: never;
|
|
6610
|
+
};
|
|
6546
6611
|
"/renders/{id}/delete": {
|
|
6547
6612
|
parameters: {
|
|
6548
6613
|
query?: never;
|
|
@@ -6602,6 +6667,87 @@ export interface paths {
|
|
|
6602
6667
|
patch?: never;
|
|
6603
6668
|
trace?: never;
|
|
6604
6669
|
};
|
|
6670
|
+
"/renders/get-linked-unit": {
|
|
6671
|
+
parameters: {
|
|
6672
|
+
query?: never;
|
|
6673
|
+
header?: never;
|
|
6674
|
+
path?: never;
|
|
6675
|
+
cookie?: never;
|
|
6676
|
+
};
|
|
6677
|
+
get?: never;
|
|
6678
|
+
put?: never;
|
|
6679
|
+
/**
|
|
6680
|
+
* Get preview URL for a FloorPlan and Style
|
|
6681
|
+
* @description Finds the first unit linked to the FloorPlan, links the RenderedStyle to it, and returns a preview URL. The FloorPlan must already have a unit linked to it.
|
|
6682
|
+
*/
|
|
6683
|
+
post: {
|
|
6684
|
+
parameters: {
|
|
6685
|
+
query?: never;
|
|
6686
|
+
header?: never;
|
|
6687
|
+
path?: never;
|
|
6688
|
+
cookie?: never;
|
|
6689
|
+
};
|
|
6690
|
+
requestBody: {
|
|
6691
|
+
content: {
|
|
6692
|
+
"application/json": {
|
|
6693
|
+
/** @description The FloorPlan ID */
|
|
6694
|
+
floorPlanId: number;
|
|
6695
|
+
/** @description The Style ID for the RenderedStyle */
|
|
6696
|
+
styleId: number;
|
|
6697
|
+
};
|
|
6698
|
+
};
|
|
6699
|
+
};
|
|
6700
|
+
responses: {
|
|
6701
|
+
/** @description Successfully returned preview URL */
|
|
6702
|
+
200: {
|
|
6703
|
+
headers: {
|
|
6704
|
+
[name: string]: unknown;
|
|
6705
|
+
};
|
|
6706
|
+
content: {
|
|
6707
|
+
"application/json": {
|
|
6708
|
+
data?: {
|
|
6709
|
+
/** @example https://app.inresi.com/property-slug/unit/unit-slug?style=Modern */
|
|
6710
|
+
url?: string;
|
|
6711
|
+
};
|
|
6712
|
+
};
|
|
6713
|
+
};
|
|
6714
|
+
};
|
|
6715
|
+
/** @description Bad Request - Missing required fields */
|
|
6716
|
+
400: {
|
|
6717
|
+
headers: {
|
|
6718
|
+
[name: string]: unknown;
|
|
6719
|
+
};
|
|
6720
|
+
content?: never;
|
|
6721
|
+
};
|
|
6722
|
+
/** @description Unauthorized */
|
|
6723
|
+
401: {
|
|
6724
|
+
headers: {
|
|
6725
|
+
[name: string]: unknown;
|
|
6726
|
+
};
|
|
6727
|
+
content?: never;
|
|
6728
|
+
};
|
|
6729
|
+
/** @description FloorPlan, Style, RenderedStyle, or linked Unit not found */
|
|
6730
|
+
404: {
|
|
6731
|
+
headers: {
|
|
6732
|
+
[name: string]: unknown;
|
|
6733
|
+
};
|
|
6734
|
+
content?: never;
|
|
6735
|
+
};
|
|
6736
|
+
/** @description Internal Server Error */
|
|
6737
|
+
500: {
|
|
6738
|
+
headers: {
|
|
6739
|
+
[name: string]: unknown;
|
|
6740
|
+
};
|
|
6741
|
+
content?: never;
|
|
6742
|
+
};
|
|
6743
|
+
};
|
|
6744
|
+
};
|
|
6745
|
+
delete?: never;
|
|
6746
|
+
options?: never;
|
|
6747
|
+
head?: never;
|
|
6748
|
+
patch?: never;
|
|
6749
|
+
trace?: never;
|
|
6750
|
+
};
|
|
6605
6751
|
"/styleRenders/floorPlan": {
|
|
6606
6752
|
parameters: {
|
|
6607
6753
|
query?: never;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./embed-schemas.generated.cjs"),e=require("../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.cjs"),r=e.object({IN_STOCK:e.string(),SOLD_OUT:e.string(),WAIT_LIST:e.string()}),i=e.object({USER:e.string(),ADMIN:e.string()}),o=e.object({FurnitureAvailability:r,UserRole:i}),g=e.object({data:o}),c=e.object({totalRecords:e.number().int(),totalPages:e.number().int(),currentPage:e.number().int(),perPage:e.number().int()}),s=e.object({id:e.number().int(),name:e.string(),description:e.string(),mediaId:e.number().int()}),m=e.object({furnitureId:e.number().int(),styleId:e.number().int(),style:s}),y=e.object({media:t.MediaSchema}),l=e.object({id:e.number().int(),name:e.string(),category:e.string(),width:e.string(),depth:e.string(),height:e.string(),availability:e.string(),price:e.string(),currency:e.string(),brand_name:e.string(),store_name:e.string(),external_url:e.string(),inventory_id:e.number().int(),media:t.MediaSchema,styles:e.array(m),signedUrl:e.string()}),I=e.object({data:e.array(l),page:c}),d=e.object({id:e.number().int(),name:e.string(),description:e.string(),mediaId:e.number().int().nullable().optional(),thumbnail:t.MediaSchema.nullable().optional()}),j=e.object({data:e.array(d)}),n=e.object({id:e.number().int(),name:e.string()}),a=e.object({id:e.number().int(),first_name:e.string(),last_name:e.string()}),u=e.object({id:e.number().int(),name:e.string(),description:e.string(),customerId:e.number().int().nullable().optional(),blenderVersion:e.string(),inresiVersion:e.string(),properties:e.array(n),customer:a.nullable().optional()}),p=e.object({data:e.array(u)}),S=e.object({id:e.number().int(),name:e.string(),renderGeneratedImage:e.array(t.MediaSchema),colorfulFloorPlanImage:e.null().optional()}),b=e.object({id:e.number().int(),name:e.string(),description:e.string(),customerId:e.number().int(),blenderVersion:e.string(),renderVersion:e.number().int(),inresiVersion:e.string(),properties:e.array(n),customer:a,blenderFile:t.MediaSchema,rooms:e.array(e.unknown()),styles:e.array(e.unknown()),renderedStyles:e.array(S)}),P=e.object({data:b}),h=e.object({id:e.number().int(),accountId:e.number().int(),name:e.string(),url:e.string(),secret:e.string(),isActive:e.boolean(),createdAt:e.coerce.date(),updatedAt:e.coerce.date()}),D=e.object({data:e.array(h)});exports.CustomerSchema=a;exports.EnumsDataSchema=o;exports.EnumsSchema=g;exports.FurnitureAvailabilitySchema=r;exports.IFloorPlanDetailDataSchema=b;exports.IFloorPlanDetailSchema=P;exports.IFloorPlanSchema=u;exports.IFloorPlansSchema=p;exports.MultiMediaItemSchema=y;exports.PaginationSchema=c;exports.ProductDataSchema=I;exports.ProductSchema=l;exports.PropertyRefSchema=n;exports.RenderedStyleSchema=S;exports.StyleDetailSchema=d;exports.StyleElementSchema=m;exports.StyleSchema=j;exports.StyleStyleSchema=s;exports.UserRoleSchema=i;exports.WebhooksDatumSchema=h;exports.WebhooksSchema=D;
|
|
2
|
+
//# sourceMappingURL=cms-schemas.generated.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cms-schemas.generated.cjs","sources":["../../src/api/cms-schemas.generated.ts"],"sourcesContent":["/**\n * This file was auto-generated from src/scripts/cms-schema-overrides.json.\n * Do not edit manually — run `node scripts/gen-schemas.mjs` to regenerate.\n *\n * CMS admin API response schemas — permanent, separate from the embed SDK.\n */\n\nimport { z } from 'zod';\nimport { MediaSchema } from './embed-schemas.generated';\n\nexport const FurnitureAvailabilitySchema = z.object({\n IN_STOCK: z.string(),\n SOLD_OUT: z.string(),\n WAIT_LIST: z.string(),\n});\nexport type FurnitureAvailability = z.infer<typeof FurnitureAvailabilitySchema>;\n\nexport const UserRoleSchema = z.object({\n USER: z.string(),\n ADMIN: z.string(),\n});\nexport type UserRole = z.infer<typeof UserRoleSchema>;\n\nexport const EnumsDataSchema = z.object({\n FurnitureAvailability: FurnitureAvailabilitySchema,\n UserRole: UserRoleSchema,\n});\nexport type EnumsData = z.infer<typeof EnumsDataSchema>;\n\nexport const EnumsSchema = z.object({\n data: EnumsDataSchema,\n});\nexport type Enums = z.infer<typeof EnumsSchema>;\n\nexport const PaginationSchema = z.object({\n totalRecords: z.number().int(),\n totalPages: z.number().int(),\n currentPage: z.number().int(),\n perPage: z.number().int(),\n});\nexport type Pagination = z.infer<typeof PaginationSchema>;\n\nexport const StyleStyleSchema = z.object({\n id: z.number().int(),\n name: z.string(),\n description: z.string(),\n mediaId: z.number().int(),\n});\nexport type StyleStyle = z.infer<typeof StyleStyleSchema>;\n\nexport const StyleElementSchema = z.object({\n furnitureId: z.number().int(),\n styleId: z.number().int(),\n style: StyleStyleSchema,\n});\nexport type StyleElement = z.infer<typeof StyleElementSchema>;\n\nexport const MultiMediaItemSchema = z.object({\n media: MediaSchema,\n});\nexport type MultiMediaItem = z.infer<typeof MultiMediaItemSchema>;\n\nexport const ProductSchema = z.object({\n id: z.number().int(),\n name: z.string(),\n category: z.string(),\n width: z.string(),\n depth: z.string(),\n height: z.string(),\n availability: z.string(),\n price: z.string(),\n currency: z.string(),\n brand_name: z.string(),\n store_name: z.string(),\n external_url: z.string(),\n inventory_id: z.number().int(),\n media: MediaSchema,\n styles: z.array(StyleElementSchema),\n signedUrl: z.string(),\n});\nexport type Product = z.infer<typeof ProductSchema>;\n\nexport const ProductDataSchema = z.object({\n data: z.array(ProductSchema),\n page: PaginationSchema,\n});\nexport type ProductData = z.infer<typeof ProductDataSchema>;\n\nexport const StyleDetailSchema = z.object({\n id: z.number().int(),\n name: z.string(),\n description: z.string(),\n mediaId: z.number().int().nullable().optional(),\n thumbnail: MediaSchema.nullable().optional(),\n});\nexport type StyleDetail = z.infer<typeof StyleDetailSchema>;\n\nexport const StyleSchema = z.object({\n data: z.array(StyleDetailSchema),\n});\nexport type Style = z.infer<typeof StyleSchema>;\n\nexport const PropertyRefSchema = z.object({\n id: z.number().int(),\n name: z.string(),\n});\nexport type PropertyRef = z.infer<typeof PropertyRefSchema>;\n\nexport const CustomerSchema = z.object({\n id: z.number().int(),\n first_name: z.string(),\n last_name: z.string(),\n});\nexport type Customer = z.infer<typeof CustomerSchema>;\n\nexport const IFloorPlanSchema = z.object({\n id: z.number().int(),\n name: z.string(),\n description: z.string(),\n customerId: z.number().int().nullable().optional(),\n blenderVersion: z.string(),\n inresiVersion: z.string(),\n properties: z.array(PropertyRefSchema),\n customer: CustomerSchema.nullable().optional(),\n});\nexport type IFloorPlan = z.infer<typeof IFloorPlanSchema>;\n\nexport const IFloorPlansSchema = z.object({\n data: z.array(IFloorPlanSchema),\n});\nexport type IFloorPlans = z.infer<typeof IFloorPlansSchema>;\n\nexport const RenderedStyleSchema = z.object({\n id: z.number().int(),\n name: z.string(),\n renderGeneratedImage: z.array(MediaSchema),\n colorfulFloorPlanImage: z.null().optional(),\n});\nexport type RenderedStyle = z.infer<typeof RenderedStyleSchema>;\n\nexport const IFloorPlanDetailDataSchema = z.object({\n id: z.number().int(),\n name: z.string(),\n description: z.string(),\n customerId: z.number().int(),\n blenderVersion: z.string(),\n renderVersion: z.number().int(),\n inresiVersion: z.string(),\n properties: z.array(PropertyRefSchema),\n customer: CustomerSchema,\n blenderFile: MediaSchema,\n rooms: z.array(z.unknown()),\n styles: z.array(z.unknown()),\n renderedStyles: z.array(RenderedStyleSchema),\n});\nexport type IFloorPlanDetailData = z.infer<typeof IFloorPlanDetailDataSchema>;\n\nexport const IFloorPlanDetailSchema = z.object({\n data: IFloorPlanDetailDataSchema,\n});\nexport type IFloorPlanDetail = z.infer<typeof IFloorPlanDetailSchema>;\n\nexport const WebhooksDatumSchema = z.object({\n id: z.number().int(),\n accountId: z.number().int(),\n name: z.string(),\n url: z.string(),\n secret: z.string(),\n isActive: z.boolean(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n});\nexport type WebhooksDatum = z.infer<typeof WebhooksDatumSchema>;\n\nexport const WebhooksSchema = z.object({\n data: z.array(WebhooksDatumSchema),\n});\nexport type Webhooks = z.infer<typeof WebhooksSchema>;\n"],"names":["FurnitureAvailabilitySchema","z.object","z.string","UserRoleSchema","EnumsDataSchema","EnumsSchema","PaginationSchema","z.number","StyleStyleSchema","StyleElementSchema","MultiMediaItemSchema","MediaSchema","ProductSchema","z.array","ProductDataSchema","StyleDetailSchema","StyleSchema","PropertyRefSchema","CustomerSchema","IFloorPlanSchema","IFloorPlansSchema","RenderedStyleSchema","z.null","IFloorPlanDetailDataSchema","z.unknown","IFloorPlanDetailSchema","WebhooksDatumSchema","z.boolean","z.coerce","WebhooksSchema"],"mappings":"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"}
|