@alliumcloud/configurator-service 1.0.0 → 1.3.1
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 +4 -0
- package/dist/index.d.mts +8 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +1 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -372,6 +372,10 @@ await sdk.media.updateStream("item-id", {
|
|
|
372
372
|
| `spaceItemId` | `string` | Yes | Space item ID. |
|
|
373
373
|
| `audioOnly` | `boolean` | No | Play audio only. |
|
|
374
374
|
| `curvature` | `number` | No | Screen curvature (−100 to 100). |
|
|
375
|
+
| `brightness` | `number` | No | Screen brightness (0.0 to 5.0). |
|
|
376
|
+
| `contrast` | `number` | No | Screen contrast (0.5 to 1.5). |
|
|
377
|
+
| `saturation` | `number` | No | Screen saturation (0.0 to 3.0). |
|
|
378
|
+
| `gamma` | `number` | No | Screen gamma (0.1 to 3.0). |
|
|
375
379
|
| `aspectRatio` | `"4:3" \| "16:9"` | No | Screen aspect ratio. |
|
|
376
380
|
| `attenuation` | `number` | No | Audio attenuation distance (200–10000). |
|
|
377
381
|
| `volume` | `number` | No | Volume level (0–100). |
|
package/dist/index.d.mts
CHANGED
|
@@ -80,6 +80,10 @@ type CreateStreamInput = Omit<SpaceContext, "type"> & {
|
|
|
80
80
|
attenuation?: number;
|
|
81
81
|
volume?: number;
|
|
82
82
|
audioOnly?: boolean;
|
|
83
|
+
brightness?: number;
|
|
84
|
+
contrast?: number;
|
|
85
|
+
saturation?: number;
|
|
86
|
+
gamma?: number;
|
|
83
87
|
};
|
|
84
88
|
type UpdateStreamInput = {
|
|
85
89
|
orgId: string;
|
|
@@ -90,6 +94,10 @@ type UpdateStreamInput = {
|
|
|
90
94
|
aspectRatio?: "4:3" | "16:9";
|
|
91
95
|
attenuation?: number;
|
|
92
96
|
volume?: number;
|
|
97
|
+
brightness?: number;
|
|
98
|
+
contrast?: number;
|
|
99
|
+
saturation?: number;
|
|
100
|
+
gamma?: number;
|
|
93
101
|
};
|
|
94
102
|
|
|
95
103
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -80,6 +80,10 @@ type CreateStreamInput = Omit<SpaceContext, "type"> & {
|
|
|
80
80
|
attenuation?: number;
|
|
81
81
|
volume?: number;
|
|
82
82
|
audioOnly?: boolean;
|
|
83
|
+
brightness?: number;
|
|
84
|
+
contrast?: number;
|
|
85
|
+
saturation?: number;
|
|
86
|
+
gamma?: number;
|
|
83
87
|
};
|
|
84
88
|
type UpdateStreamInput = {
|
|
85
89
|
orgId: string;
|
|
@@ -90,6 +94,10 @@ type UpdateStreamInput = {
|
|
|
90
94
|
aspectRatio?: "4:3" | "16:9";
|
|
91
95
|
attenuation?: number;
|
|
92
96
|
volume?: number;
|
|
97
|
+
brightness?: number;
|
|
98
|
+
contrast?: number;
|
|
99
|
+
saturation?: number;
|
|
100
|
+
gamma?: number;
|
|
93
101
|
};
|
|
94
102
|
|
|
95
103
|
/**
|
package/dist/index.js
CHANGED
|
@@ -25,12 +25,7 @@ function createRequestError(message, cause) {
|
|
|
25
25
|
return makeError("AlliumRequestError", "REQUEST_ERROR", message, cause);
|
|
26
26
|
}
|
|
27
27
|
function createValidationError(message, cause) {
|
|
28
|
-
return makeError(
|
|
29
|
-
"AlliumValidationError",
|
|
30
|
-
"VALIDATION_ERROR",
|
|
31
|
-
message,
|
|
32
|
-
cause
|
|
33
|
-
);
|
|
28
|
+
return makeError("AlliumValidationError", "VALIDATION_ERROR", message, cause);
|
|
34
29
|
}
|
|
35
30
|
function createUploadError(message, cause) {
|
|
36
31
|
return makeError("AlliumUploadError", "UPLOAD_ERROR", message, cause);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/errors.ts","../src/utils/debug.ts","../src/core/http.ts","../src/modules/media.ts","../src/modules/sketchfab.ts","../src/modules/transform.ts","../src/modules/layer.ts","../src/modules/configuratorItems.ts","../src/modules/configuratorObjects.ts","../src/index.ts"],"names":["axios"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * SDK Error factories.\n */\n\nexport interface AlliumError extends Error {\n readonly code: string;\n}\n\nfunction makeError(\n name: string,\n code: string,\n message: string,\n cause?: unknown,\n): AlliumError {\n const err = new Error(message) as AlliumError;\n err.name = name;\n (err as any).code = code;\n if (cause !== undefined) (err as any).cause = cause;\n return err;\n}\n\n/** Generic SDK error — use when no specific category fits */\nexport function createSDKError(\n message: string,\n code = \"SDK_ERROR\",\n cause?: unknown,\n): AlliumError {\n return makeError(\"AlliumSDKError\", code, message, cause);\n}\n\n/** Thrown when the API key is missing, invalid, or rejected by the server */\nexport function createAuthError(\n message: string,\n cause?: unknown,\n): AlliumError {\n return makeError(\"AlliumAuthError\", \"AUTH_ERROR\", message, cause);\n}\n\n/** Thrown when the HTTP request itself fails (network, timeout, 5xx) */\nexport function createRequestError(\n message: string,\n cause?: unknown,\n): AlliumError {\n return makeError(\"AlliumRequestError\", \"REQUEST_ERROR\", message, cause);\n}\n\n/** Thrown when the server returns a 4xx for bad input data */\nexport function createValidationError(\n message: string,\n cause?: unknown,\n): AlliumError {\n return makeError(\n \"AlliumValidationError\",\n \"VALIDATION_ERROR\",\n message,\n cause,\n );\n}\n\n/** Thrown for upload-specific failures (initiate, complete, abort) */\nexport function createUploadError(\n message: string,\n cause?: unknown,\n): AlliumError {\n return makeError(\"AlliumUploadError\", \"UPLOAD_ERROR\", message, cause);\n}\n\n/** Thrown when SDK_BASE_URL or apiKey is not configured correctly */\nexport function createConfigError(\n message: string,\n cause?: unknown,\n): AlliumError {\n return makeError(\"AlliumConfigError\", \"INVALID_CONFIG\", message, cause);\n}\n\n/** Type guard — works for all Allium error factories */\nexport function isAlliumError(err: unknown): err is AlliumError {\n return err instanceof Error && \"code\" in err;\n}\n","/**\n * Centralised debug logging utility.\n */\n\ndeclare global {\n interface Window {\n ALLIUM_DEBUG?: boolean;\n }\n}\n\nexport const isDebugEnabled = (): boolean => {\n // Node.js environment\n if (typeof process !== \"undefined\" && process.env?.ALLIUM_DEBUG === \"true\") {\n return true;\n }\n // Browser environment\n if (typeof window !== \"undefined\" && window.ALLIUM_DEBUG === true) {\n return true;\n }\n return false;\n};\n\nexport const debugLog = (\n category: string,\n message: string,\n data?: unknown,\n): void => {\n if (!isDebugEnabled()) return;\n const timestamp = new Date().toISOString().slice(11, 23);\n if (data !== undefined) {\n } else {\n }\n};\n","/**\n * HTTP client factory.\n *\n * Creates and configures the axios instance used by all modules.\n * Handles:\n * - Base URL (baked in at build time)\n * - API key injection on every request via header\n * - Timeout\n * - Response unwrapping (your backend wraps all responses in { data: ... })\n * - Error normalization into AlliumError types\n */\n\nimport axios, { AxiosInstance, AxiosError } from \"axios\";\nimport { ConfiguratorServiceSDKConfig } from \"../types/common\";\nimport {\n createAuthError,\n createConfigError,\n createRequestError,\n createValidationError,\n createUploadError,\n} from \"../errors\";\nimport { debugLog } from \"../utils\";\n\n// ─── Build-time URL ───────────────────────────────────────────────────────────\n\ndeclare const process: { env: { CONFIGURATOR_SERVICE_BASE_URL: string } };\nconst PROD_BASE_URL: string = process.env.CONFIGURATOR_SERVICE_BASE_URL;\n\n// ─── Factory ──────────────────────────────────────────────────────────────────\n\nexport function createHttpClient(\n config: ConfiguratorServiceSDKConfig,\n): AxiosInstance {\n const BASE_URL = config._devBaseUrl ?? PROD_BASE_URL;\n if (!BASE_URL) {\n throw createConfigError(\n \"[SDK] Base URL not configured. This SDK build is missing CONFIGURATOR_SERVICE_BASE_URL.\",\n );\n }\n\n if (\n !config.apiKey ||\n typeof config.apiKey !== \"string\" ||\n !config.apiKey.trim()\n ) {\n throw createConfigError(\"[SDK] A valid apiKey is required.\");\n }\n\n if (typeof config.accessTokenProvider !== \"function\")\n throw createConfigError(\"[SDK] accessTokenProvider must be a function.\");\n\n const client = axios.create({\n baseURL: BASE_URL,\n timeout: config.timeout ?? 30_000,\n headers: {\n \"Content-Type\": \"application/json\",\n \"x-sdk-key\": config.apiKey.trim(),\n ...(config.jwksUri?.trim() && { \"x-jwks-uri\": config.jwksUri.trim() }),\n },\n });\n\n // ── Request interceptor — debug logging ───────────────────────────────────\n client.interceptors.request.use(async (req) => {\n const token = await config.accessTokenProvider();\n if (token) {\n req.headers[\"Authorization\"] = `Bearer ${token}`;\n }\n debugLog(\n \"HTTP\",\n `→ ${req.method?.toUpperCase()} ${req.url}`,\n req.params ?? req.data,\n );\n return req;\n });\n\n // ── Response interceptor — unwrap + normalize errors ──────────────────────\n client.interceptors.response.use(\n (res) => {\n debugLog(\"HTTP\", `← ${res.status} ${res.config.url}`);\n return res;\n },\n (err: AxiosError) => {\n const status = err.response?.status;\n const message =\n (err.response?.data as any)?.message ?? err.message ?? \"Unknown error\";\n const url = err.config?.url ?? \"\";\n\n debugLog(\"HTTP\", `← ERROR ${status ?? \"network\"} ${url}`, message);\n\n if (!status) {\n // Network error — no response received at all\n throw createRequestError(\n `[SDK] Network error reaching ${url}: ${message}`,\n err,\n );\n }\n\n if (status === 401 || status === 403) {\n throw createAuthError(\n `[SDK] Authentication failed (${status}): ${message}`,\n err,\n );\n }\n\n if (status === 422 || status === 400) {\n throw createValidationError(\n `[SDK] Validation error (${status}): ${message}`,\n err,\n );\n }\n\n if (url.includes(\"/uploader\")) {\n throw createUploadError(\n `[SDK] Upload operation failed (${status}): ${message}`,\n err,\n );\n }\n\n throw createRequestError(\n `[SDK] Request failed (${status}): ${message}`,\n err,\n );\n },\n );\n\n return client;\n}\n","/**\n * Media Module - Operations\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n CreateLinkInput,\n CreateStreamInput,\n CreateVideoInput,\n UpdateLinkInput,\n UpdateStreamInput,\n UpdateVideoInput,\n} from \"../types/media\";\nimport { debugLog } from \"../utils\";\n\nexport interface MediaHandle {\n addVideo(data: CreateVideoInput): Promise<void>;\n updateVideo(spaceItemId: string, data: UpdateVideoInput): Promise<void>;\n addStream(data: CreateStreamInput): Promise<void>;\n updateStream(spaceItemId: string, data: UpdateStreamInput): Promise<void>;\n addLink(data: CreateLinkInput): Promise<void>;\n updateLink(spaceItemId: string, data: UpdateLinkInput): Promise<void>;\n}\n\nexport function createMediaModule(http: AxiosInstance): MediaHandle {\n async function addVideo(data: CreateVideoInput): Promise<void> {\n await http.post(\"/media/video\", data);\n debugLog(\"Media\", \"addVideo\", data);\n }\n\n async function updateVideo(\n spaceItemId: string,\n data: UpdateVideoInput,\n ): Promise<void> {\n await http.patch(`/media/video/${spaceItemId}`, data);\n debugLog(\"Media\", \"updateVideo\", data);\n }\n\n async function addStream(data: CreateStreamInput): Promise<void> {\n await http.post(\"/media/stream\", data);\n debugLog(\"Media\", \"addStream\", data);\n }\n\n async function updateStream(\n spaceItemId: string,\n data: UpdateStreamInput,\n ): Promise<void> {\n await http.patch(`/media/stream/${spaceItemId}`, data);\n debugLog(\"Media\", \"updateStream\", data);\n }\n\n async function addLink(data: CreateLinkInput): Promise<void> {\n await http.post(\"/media/link\", data);\n debugLog(\"Media\", \"addLink\", data);\n }\n\n async function updateLink(\n spaceItemId: string,\n data: UpdateLinkInput,\n ): Promise<void> {\n await http.patch(`/media/link/${spaceItemId}`, data);\n debugLog(\"Media\", \"updateLink\", data);\n }\n\n return {\n addVideo,\n updateVideo,\n addStream,\n updateStream,\n addLink,\n updateLink,\n };\n}\n","/**\n * Sketchfab Module - 3D Object Operations\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n CreateSketchfabObjectInput,\n UpdateSketchfabObjectInput,\n} from \"../types/sketchfab\";\nimport { debugLog } from \"../utils\";\n\nexport interface SketchfabHandle {\n addObject(data: CreateSketchfabObjectInput): Promise<void>;\n updateObject(\n spaceItemId: string,\n data: UpdateSketchfabObjectInput,\n ): Promise<void>;\n}\n\nexport function createSketchfabModule(http: AxiosInstance): SketchfabHandle {\n async function addObject(data: CreateSketchfabObjectInput): Promise<void> {\n await http.post(\"/sketchfab/object\", data);\n debugLog(\"Sketchfab\", \"addObject\", data);\n }\n\n async function updateObject(\n spaceItemId: string,\n data: UpdateSketchfabObjectInput,\n ): Promise<void> {\n await http.patch(`/sketchfab/${spaceItemId}`, data);\n debugLog(\"Sketchfab\", \"updateObject\", data);\n }\n\n return { addObject, updateObject };\n}\n","/**\n * Transform Module - Position, Rotation, Scale Operations\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n UpdatePositionInput,\n UpdateRotationInput,\n UpdateScaleInput,\n SnapToGroundInput,\n} from \"../types/transform\";\nimport { debugLog } from \"../utils\";\n\nexport interface TransformHandle {\n updatePosition(spaceItemId: string, data: UpdatePositionInput): Promise<void>;\n updateRotation(spaceItemId: string, data: UpdateRotationInput): Promise<void>;\n updateScale(spaceItemId: string, data: UpdateScaleInput): Promise<void>;\n snapToGround(spaceItemId: string, data: SnapToGroundInput): Promise<void>;\n}\n\nexport function createTransformModule(http: AxiosInstance): TransformHandle {\n async function updatePosition(\n spaceItemId: string,\n data: UpdatePositionInput,\n ): Promise<void> {\n await http.patch(`/transform/${spaceItemId}/position`, data);\n debugLog(\"Transform\", \"updatePosition\", data);\n }\n\n async function updateRotation(\n spaceItemId: string,\n data: UpdateRotationInput,\n ): Promise<void> {\n await http.patch(`/transform/${spaceItemId}/rotation`, data);\n debugLog(\"Transform\", \"updateRotation\", data);\n }\n\n async function updateScale(\n spaceItemId: string,\n data: UpdateScaleInput,\n ): Promise<void> {\n await http.patch(`/transform/${spaceItemId}/scale`, data);\n debugLog(\"Transform\", \"updateScale\", data);\n }\n\n async function snapToGround(\n spaceItemId: string,\n data: SnapToGroundInput,\n ): Promise<void> {\n await http.post(`/transform/${spaceItemId}/snap`, data);\n debugLog(\"Transform\", \"snapToGround\", data);\n }\n\n return { updatePosition, updateRotation, updateScale, snapToGround };\n}\n","/**\n * Layer Module - Lock, Rename, Delete Operations\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n LockLayerItemInput,\n RenameLayerItemInput,\n DeleteLayerItemInput,\n DeleteAllLayerItemsInput,\n} from \"../types/layer\";\nimport { debugLog } from \"../utils\";\n\nexport interface LayerHandle {\n lockItem(spaceItemId: string, data: LockLayerItemInput): Promise<void>;\n renameItem(spaceItemId: string, data: RenameLayerItemInput): Promise<void>;\n deleteItem(spaceItemId: string, data: DeleteLayerItemInput): Promise<void>;\n deleteAll(data: DeleteAllLayerItemsInput): Promise<void>;\n}\n\nexport function createLayerModule(http: AxiosInstance): LayerHandle {\n async function lockItem(\n spaceItemId: string,\n data: LockLayerItemInput,\n ): Promise<void> {\n await http.patch(`/layer/${spaceItemId}/lock`, data);\n debugLog(\"Layer\", \"lockItem\", data);\n }\n\n async function renameItem(\n spaceItemId: string,\n data: RenameLayerItemInput,\n ): Promise<void> {\n await http.patch(`/layer/${spaceItemId}/rename`, data);\n debugLog(\"Layer\", \"renameItem\", data);\n }\n\n async function deleteItem(\n spaceItemId: string,\n data: DeleteLayerItemInput,\n ): Promise<void> {\n await http.delete(`/layer/${spaceItemId}`, { data });\n debugLog(\"Layer\", \"deleteItem\", data);\n }\n\n async function deleteAll(data: DeleteAllLayerItemsInput): Promise<void> {\n await http.delete(\"/layer\", { data });\n debugLog(\"Layer\", \"deleteAll\", data);\n }\n\n return { lockItem, renameItem, deleteItem, deleteAll };\n}\n","/**\n * Configurator Items Module - Level-wide property operations\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n CreateConfiguratorItemInput,\n UpdateConfiguratorItemStateInput,\n} from \"../types/configuratorItems\";\nimport { debugLog } from \"../utils\";\n\nexport interface ConfiguratorItemsHandle {\n create(data: CreateConfiguratorItemInput): Promise<void>;\n updateState(\n spaceItemId: string,\n data: UpdateConfiguratorItemStateInput,\n ): Promise<void>;\n}\n\nexport function createConfiguratorItemsModule(\n http: AxiosInstance,\n): ConfiguratorItemsHandle {\n async function create(data: CreateConfiguratorItemInput): Promise<void> {\n await http.post(\"/configurator_items\", data);\n debugLog(\"ConfiguratorItems\", \"create\", data);\n }\n\n async function updateState(\n spaceItemId: string,\n data: UpdateConfiguratorItemStateInput,\n ): Promise<void> {\n await http.patch(`/configurator_items/${spaceItemId}/state`, data);\n debugLog(\"ConfiguratorItems\", \"updateState\", data);\n }\n\n return { create, updateState };\n}\n","/**\n * Configurator Objects Module - UE Actor placement and configuration\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n CreateConfiguratorObjectInput,\n UpdateConfiguratorObjectConfigInput,\n} from \"../types/configuratorObjects\";\nimport { debugLog } from \"../utils\";\n\nexport interface ConfiguratorObjectsHandle {\n create(data: CreateConfiguratorObjectInput): Promise<void>;\n updateConfiguration(\n spaceItemId: string,\n data: UpdateConfiguratorObjectConfigInput,\n ): Promise<void>;\n}\n\nexport function createConfiguratorObjectsModule(\n http: AxiosInstance,\n): ConfiguratorObjectsHandle {\n async function create(data: CreateConfiguratorObjectInput): Promise<void> {\n await http.post(\"/configurator_objects\", data);\n debugLog(\"ConfiguratorObjects\", \"create\", data);\n }\n\n async function updateConfiguration(\n spaceItemId: string,\n data: UpdateConfiguratorObjectConfigInput,\n ): Promise<void> {\n await http.patch(\n `/configurator_objects/${spaceItemId}/configuration`,\n data,\n );\n debugLog(\"ConfiguratorObjects\", \"updateConfiguration\", data);\n }\n\n return { create, updateConfiguration };\n}\n","import { createHttpClient } from \"./core/http\";\nimport { createMediaModule, MediaHandle } from \"./modules/media\";\nimport { createSketchfabModule, SketchfabHandle } from \"./modules/sketchfab\";\nimport { createTransformModule, TransformHandle } from \"./modules/transform\";\nimport { createLayerModule, LayerHandle } from \"./modules/layer\";\nimport {\n createConfiguratorItemsModule,\n ConfiguratorItemsHandle,\n} from \"./modules/configuratorItems\";\nimport {\n createConfiguratorObjectsModule,\n ConfiguratorObjectsHandle,\n} from \"./modules/configuratorObjects\";\nimport { ConfiguratorServiceSDKConfig } from \"./types/common\";\nimport { debugLog } from \"./utils\";\n\n// ─── Public handle interface ──────────────────────────────────────────────────\n\nexport interface ConfiguratorSDKHandle {\n media: MediaHandle;\n sketchfab: SketchfabHandle;\n transform: TransformHandle;\n layer: LayerHandle;\n configuratorItems: ConfiguratorItemsHandle;\n configuratorObjects: ConfiguratorObjectsHandle;\n}\n\n// ─── Factory function ─────────────────────────────────────────────────────────\n\nexport function createConfiguratorSDK(\n config: ConfiguratorServiceSDKConfig,\n): ConfiguratorSDKHandle {\n const http = createHttpClient(config);\n\n debugLog(\"ConfiguratorSDK\", \"Initialized\", {\n timeout: config.timeout ?? 30_000,\n });\n\n return {\n media: createMediaModule(http),\n sketchfab: createSketchfabModule(http),\n transform: createTransformModule(http),\n layer: createLayerModule(http),\n configuratorItems: createConfiguratorItemsModule(http),\n configuratorObjects: createConfiguratorObjectsModule(http),\n };\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n\nconst ConfiguratorSDK = {\n /**\n * Create a new SDK client instance.\n * @param config SDK configuration — apiKey is required, timeout is optional.\n */\n create(config: ConfiguratorServiceSDKConfig): ConfiguratorSDKHandle {\n return createConfiguratorSDK(config);\n },\n} as const;\n\nexport default ConfiguratorSDK;\n\n// ─── Type exports ─────────────────────────────────────────────────────────────\n\nexport type { ConfiguratorServiceSDKConfig } from \"./types/common\";\n\n// Media\nexport type {\n CreateVideoInput,\n UpdateVideoInput,\n CreateLinkInput,\n UpdateLinkInput,\n CreateStreamInput,\n UpdateStreamInput,\n} from \"./types/media\";\n\n// Sketchfab\nexport type {\n CreateSketchfabObjectInput,\n UpdateSketchfabObjectInput,\n} from \"./types/sketchfab\";\n\n// Transform\nexport type {\n UpdatePositionInput,\n UpdateRotationInput,\n UpdateScaleInput,\n SnapToGroundInput,\n} from \"./types/transform\";\n\n// Layer\nexport type {\n LockLayerItemInput,\n RenameLayerItemInput,\n DeleteLayerItemInput,\n DeleteAllLayerItemsInput,\n} from \"./types/layer\";\n\n// Configurator\nexport type {\n CreateConfiguratorItemInput,\n UpdateConfiguratorItemStateInput,\n} from \"./types/configuratorItems\";\n\nexport type {\n CreateConfiguratorObjectInput,\n UpdateConfiguratorObjectConfigInput,\n} from \"./types/configuratorObjects\";\n\nexport { isAlliumError } from \"./errors\";\nexport type { AlliumError } from \"./errors\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/errors.ts","../src/utils/debug.ts","../src/core/http.ts","../src/modules/media.ts","../src/modules/sketchfab.ts","../src/modules/transform.ts","../src/modules/layer.ts","../src/modules/configuratorItems.ts","../src/modules/configuratorObjects.ts","../src/index.ts"],"names":["axios"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * SDK Error factories.\n */\n\nexport interface AlliumError extends Error {\n readonly code: string;\n}\n\nfunction makeError(\n name: string,\n code: string,\n message: string,\n cause?: unknown,\n): AlliumError {\n const err = new Error(message) as AlliumError;\n err.name = name;\n (err as any).code = code;\n if (cause !== undefined) (err as any).cause = cause;\n return err;\n}\n\n/** Generic SDK error — use when no specific category fits */\nexport function createSDKError(\n message: string,\n code = \"SDK_ERROR\",\n cause?: unknown,\n): AlliumError {\n return makeError(\"AlliumSDKError\", code, message, cause);\n}\n\n/** Thrown when the API key is missing, invalid, or rejected by the server */\nexport function createAuthError(message: string, cause?: unknown): AlliumError {\n return makeError(\"AlliumAuthError\", \"AUTH_ERROR\", message, cause);\n}\n\n/** Thrown when the HTTP request itself fails (network, timeout, 5xx) */\nexport function createRequestError(\n message: string,\n cause?: unknown,\n): AlliumError {\n return makeError(\"AlliumRequestError\", \"REQUEST_ERROR\", message, cause);\n}\n\n/** Thrown when the server returns a 4xx for bad input data */\nexport function createValidationError(\n message: string,\n cause?: unknown,\n): AlliumError {\n return makeError(\"AlliumValidationError\", \"VALIDATION_ERROR\", message, cause);\n}\n\n/** Thrown for upload-specific failures (initiate, complete, abort) */\nexport function createUploadError(\n message: string,\n cause?: unknown,\n): AlliumError {\n return makeError(\"AlliumUploadError\", \"UPLOAD_ERROR\", message, cause);\n}\n\n/** Thrown when SDK_BASE_URL or apiKey is not configured correctly */\nexport function createConfigError(\n message: string,\n cause?: unknown,\n): AlliumError {\n return makeError(\"AlliumConfigError\", \"INVALID_CONFIG\", message, cause);\n}\n\n/** Type guard — works for all Allium error factories */\nexport function isAlliumError(err: unknown): err is AlliumError {\n return err instanceof Error && \"code\" in err;\n}\n","/**\n * Centralised debug logging utility.\n */\n\ndeclare global {\n interface Window {\n ALLIUM_DEBUG?: boolean;\n }\n}\n\nexport const isDebugEnabled = (): boolean => {\n // Node.js environment\n if (typeof process !== \"undefined\" && process.env?.ALLIUM_DEBUG === \"true\") {\n return true;\n }\n // Browser environment\n if (typeof window !== \"undefined\" && window.ALLIUM_DEBUG === true) {\n return true;\n }\n return false;\n};\n\nexport const debugLog = (\n category: string,\n message: string,\n data?: unknown,\n): void => {\n if (!isDebugEnabled()) return;\n const timestamp = new Date().toISOString().slice(11, 23);\n if (data !== undefined) {\n } else {\n }\n};\n","/**\n * HTTP client factory.\n *\n * Creates and configures the axios instance used by all modules.\n * Handles:\n * - Base URL (baked in at build time)\n * - API key injection on every request via header\n * - Timeout\n * - Response unwrapping (your backend wraps all responses in { data: ... })\n * - Error normalization into AlliumError types\n */\n\nimport axios, { AxiosInstance, AxiosError } from \"axios\";\nimport { ConfiguratorServiceSDKConfig } from \"../types/common\";\nimport {\n createAuthError,\n createConfigError,\n createRequestError,\n createValidationError,\n createUploadError,\n} from \"../errors\";\nimport { debugLog } from \"../utils\";\n\n// ─── Build-time URL ───────────────────────────────────────────────────────────\n\ndeclare const process: { env: { CONFIGURATOR_SERVICE_BASE_URL: string } };\nconst PROD_BASE_URL: string = process.env.CONFIGURATOR_SERVICE_BASE_URL;\n\n// ─── Factory ──────────────────────────────────────────────────────────────────\n\nexport function createHttpClient(\n config: ConfiguratorServiceSDKConfig,\n): AxiosInstance {\n const BASE_URL = config._devBaseUrl ?? PROD_BASE_URL;\n if (!BASE_URL) {\n throw createConfigError(\n \"[SDK] Base URL not configured. This SDK build is missing CONFIGURATOR_SERVICE_BASE_URL.\",\n );\n }\n\n if (\n !config.apiKey ||\n typeof config.apiKey !== \"string\" ||\n !config.apiKey.trim()\n ) {\n throw createConfigError(\"[SDK] A valid apiKey is required.\");\n }\n\n if (typeof config.accessTokenProvider !== \"function\")\n throw createConfigError(\"[SDK] accessTokenProvider must be a function.\");\n\n const client = axios.create({\n baseURL: BASE_URL,\n timeout: config.timeout ?? 30_000,\n headers: {\n \"Content-Type\": \"application/json\",\n \"x-sdk-key\": config.apiKey.trim(),\n ...(config.jwksUri?.trim() && { \"x-jwks-uri\": config.jwksUri.trim() }),\n },\n });\n\n // ── Request interceptor — debug logging ───────────────────────────────────\n client.interceptors.request.use(async (req) => {\n const token = await config.accessTokenProvider();\n if (token) {\n req.headers[\"Authorization\"] = `Bearer ${token}`;\n }\n debugLog(\n \"HTTP\",\n `→ ${req.method?.toUpperCase()} ${req.url}`,\n req.params ?? req.data,\n );\n return req;\n });\n\n // ── Response interceptor — unwrap + normalize errors ──────────────────────\n client.interceptors.response.use(\n (res) => {\n debugLog(\"HTTP\", `← ${res.status} ${res.config.url}`);\n return res;\n },\n (err: AxiosError) => {\n const status = err.response?.status;\n const message =\n (err.response?.data as any)?.message ?? err.message ?? \"Unknown error\";\n const url = err.config?.url ?? \"\";\n\n debugLog(\"HTTP\", `← ERROR ${status ?? \"network\"} ${url}`, message);\n\n if (!status) {\n // Network error — no response received at all\n throw createRequestError(\n `[SDK] Network error reaching ${url}: ${message}`,\n err,\n );\n }\n\n if (status === 401 || status === 403) {\n throw createAuthError(\n `[SDK] Authentication failed (${status}): ${message}`,\n err,\n );\n }\n\n if (status === 422 || status === 400) {\n throw createValidationError(\n `[SDK] Validation error (${status}): ${message}`,\n err,\n );\n }\n\n if (url.includes(\"/uploader\")) {\n throw createUploadError(\n `[SDK] Upload operation failed (${status}): ${message}`,\n err,\n );\n }\n\n throw createRequestError(\n `[SDK] Request failed (${status}): ${message}`,\n err,\n );\n },\n );\n\n return client;\n}\n","/**\n * Media Module - Operations\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n CreateLinkInput,\n CreateStreamInput,\n CreateVideoInput,\n UpdateLinkInput,\n UpdateStreamInput,\n UpdateVideoInput,\n} from \"../types/media\";\nimport { debugLog } from \"../utils\";\n\nexport interface MediaHandle {\n addVideo(data: CreateVideoInput): Promise<void>;\n updateVideo(spaceItemId: string, data: UpdateVideoInput): Promise<void>;\n addStream(data: CreateStreamInput): Promise<void>;\n updateStream(spaceItemId: string, data: UpdateStreamInput): Promise<void>;\n addLink(data: CreateLinkInput): Promise<void>;\n updateLink(spaceItemId: string, data: UpdateLinkInput): Promise<void>;\n}\n\nexport function createMediaModule(http: AxiosInstance): MediaHandle {\n async function addVideo(data: CreateVideoInput): Promise<void> {\n await http.post(\"/media/video\", data);\n debugLog(\"Media\", \"addVideo\", data);\n }\n\n async function updateVideo(\n spaceItemId: string,\n data: UpdateVideoInput,\n ): Promise<void> {\n await http.patch(`/media/video/${spaceItemId}`, data);\n debugLog(\"Media\", \"updateVideo\", data);\n }\n\n async function addStream(data: CreateStreamInput): Promise<void> {\n await http.post(\"/media/stream\", data);\n debugLog(\"Media\", \"addStream\", data);\n }\n\n async function updateStream(\n spaceItemId: string,\n data: UpdateStreamInput,\n ): Promise<void> {\n await http.patch(`/media/stream/${spaceItemId}`, data);\n debugLog(\"Media\", \"updateStream\", data);\n }\n\n async function addLink(data: CreateLinkInput): Promise<void> {\n await http.post(\"/media/link\", data);\n debugLog(\"Media\", \"addLink\", data);\n }\n\n async function updateLink(\n spaceItemId: string,\n data: UpdateLinkInput,\n ): Promise<void> {\n await http.patch(`/media/link/${spaceItemId}`, data);\n debugLog(\"Media\", \"updateLink\", data);\n }\n\n return {\n addVideo,\n updateVideo,\n addStream,\n updateStream,\n addLink,\n updateLink,\n };\n}\n","/**\n * Sketchfab Module - 3D Object Operations\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n CreateSketchfabObjectInput,\n UpdateSketchfabObjectInput,\n} from \"../types/sketchfab\";\nimport { debugLog } from \"../utils\";\n\nexport interface SketchfabHandle {\n addObject(data: CreateSketchfabObjectInput): Promise<void>;\n updateObject(\n spaceItemId: string,\n data: UpdateSketchfabObjectInput,\n ): Promise<void>;\n}\n\nexport function createSketchfabModule(http: AxiosInstance): SketchfabHandle {\n async function addObject(data: CreateSketchfabObjectInput): Promise<void> {\n await http.post(\"/sketchfab/object\", data);\n debugLog(\"Sketchfab\", \"addObject\", data);\n }\n\n async function updateObject(\n spaceItemId: string,\n data: UpdateSketchfabObjectInput,\n ): Promise<void> {\n await http.patch(`/sketchfab/${spaceItemId}`, data);\n debugLog(\"Sketchfab\", \"updateObject\", data);\n }\n\n return { addObject, updateObject };\n}\n","/**\n * Transform Module - Position, Rotation, Scale Operations\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n UpdatePositionInput,\n UpdateRotationInput,\n UpdateScaleInput,\n SnapToGroundInput,\n} from \"../types/transform\";\nimport { debugLog } from \"../utils\";\n\nexport interface TransformHandle {\n updatePosition(spaceItemId: string, data: UpdatePositionInput): Promise<void>;\n updateRotation(spaceItemId: string, data: UpdateRotationInput): Promise<void>;\n updateScale(spaceItemId: string, data: UpdateScaleInput): Promise<void>;\n snapToGround(spaceItemId: string, data: SnapToGroundInput): Promise<void>;\n}\n\nexport function createTransformModule(http: AxiosInstance): TransformHandle {\n async function updatePosition(\n spaceItemId: string,\n data: UpdatePositionInput,\n ): Promise<void> {\n await http.patch(`/transform/${spaceItemId}/position`, data);\n debugLog(\"Transform\", \"updatePosition\", data);\n }\n\n async function updateRotation(\n spaceItemId: string,\n data: UpdateRotationInput,\n ): Promise<void> {\n await http.patch(`/transform/${spaceItemId}/rotation`, data);\n debugLog(\"Transform\", \"updateRotation\", data);\n }\n\n async function updateScale(\n spaceItemId: string,\n data: UpdateScaleInput,\n ): Promise<void> {\n await http.patch(`/transform/${spaceItemId}/scale`, data);\n debugLog(\"Transform\", \"updateScale\", data);\n }\n\n async function snapToGround(\n spaceItemId: string,\n data: SnapToGroundInput,\n ): Promise<void> {\n await http.post(`/transform/${spaceItemId}/snap`, data);\n debugLog(\"Transform\", \"snapToGround\", data);\n }\n\n return { updatePosition, updateRotation, updateScale, snapToGround };\n}\n","/**\n * Layer Module - Lock, Rename, Delete Operations\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n LockLayerItemInput,\n RenameLayerItemInput,\n DeleteLayerItemInput,\n DeleteAllLayerItemsInput,\n} from \"../types/layer\";\nimport { debugLog } from \"../utils\";\n\nexport interface LayerHandle {\n lockItem(spaceItemId: string, data: LockLayerItemInput): Promise<void>;\n renameItem(spaceItemId: string, data: RenameLayerItemInput): Promise<void>;\n deleteItem(spaceItemId: string, data: DeleteLayerItemInput): Promise<void>;\n deleteAll(data: DeleteAllLayerItemsInput): Promise<void>;\n}\n\nexport function createLayerModule(http: AxiosInstance): LayerHandle {\n async function lockItem(\n spaceItemId: string,\n data: LockLayerItemInput,\n ): Promise<void> {\n await http.patch(`/layer/${spaceItemId}/lock`, data);\n debugLog(\"Layer\", \"lockItem\", data);\n }\n\n async function renameItem(\n spaceItemId: string,\n data: RenameLayerItemInput,\n ): Promise<void> {\n await http.patch(`/layer/${spaceItemId}/rename`, data);\n debugLog(\"Layer\", \"renameItem\", data);\n }\n\n async function deleteItem(\n spaceItemId: string,\n data: DeleteLayerItemInput,\n ): Promise<void> {\n await http.delete(`/layer/${spaceItemId}`, { data });\n debugLog(\"Layer\", \"deleteItem\", data);\n }\n\n async function deleteAll(data: DeleteAllLayerItemsInput): Promise<void> {\n await http.delete(\"/layer\", { data });\n debugLog(\"Layer\", \"deleteAll\", data);\n }\n\n return { lockItem, renameItem, deleteItem, deleteAll };\n}\n","/**\n * Configurator Items Module - Level-wide property operations\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n CreateConfiguratorItemInput,\n UpdateConfiguratorItemStateInput,\n} from \"../types/configuratorItems\";\nimport { debugLog } from \"../utils\";\n\nexport interface ConfiguratorItemsHandle {\n create(data: CreateConfiguratorItemInput): Promise<void>;\n updateState(\n spaceItemId: string,\n data: UpdateConfiguratorItemStateInput,\n ): Promise<void>;\n}\n\nexport function createConfiguratorItemsModule(\n http: AxiosInstance,\n): ConfiguratorItemsHandle {\n async function create(data: CreateConfiguratorItemInput): Promise<void> {\n await http.post(\"/configurator_items\", data);\n debugLog(\"ConfiguratorItems\", \"create\", data);\n }\n\n async function updateState(\n spaceItemId: string,\n data: UpdateConfiguratorItemStateInput,\n ): Promise<void> {\n await http.patch(`/configurator_items/${spaceItemId}/state`, data);\n debugLog(\"ConfiguratorItems\", \"updateState\", data);\n }\n\n return { create, updateState };\n}\n","/**\n * Configurator Objects Module - UE Actor placement and configuration\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n CreateConfiguratorObjectInput,\n UpdateConfiguratorObjectConfigInput,\n} from \"../types/configuratorObjects\";\nimport { debugLog } from \"../utils\";\n\nexport interface ConfiguratorObjectsHandle {\n create(data: CreateConfiguratorObjectInput): Promise<void>;\n updateConfiguration(\n spaceItemId: string,\n data: UpdateConfiguratorObjectConfigInput,\n ): Promise<void>;\n}\n\nexport function createConfiguratorObjectsModule(\n http: AxiosInstance,\n): ConfiguratorObjectsHandle {\n async function create(data: CreateConfiguratorObjectInput): Promise<void> {\n await http.post(\"/configurator_objects\", data);\n debugLog(\"ConfiguratorObjects\", \"create\", data);\n }\n\n async function updateConfiguration(\n spaceItemId: string,\n data: UpdateConfiguratorObjectConfigInput,\n ): Promise<void> {\n await http.patch(\n `/configurator_objects/${spaceItemId}/configuration`,\n data,\n );\n debugLog(\"ConfiguratorObjects\", \"updateConfiguration\", data);\n }\n\n return { create, updateConfiguration };\n}\n","import { createHttpClient } from \"./core/http\";\nimport { createMediaModule, MediaHandle } from \"./modules/media\";\nimport { createSketchfabModule, SketchfabHandle } from \"./modules/sketchfab\";\nimport { createTransformModule, TransformHandle } from \"./modules/transform\";\nimport { createLayerModule, LayerHandle } from \"./modules/layer\";\nimport {\n createConfiguratorItemsModule,\n ConfiguratorItemsHandle,\n} from \"./modules/configuratorItems\";\nimport {\n createConfiguratorObjectsModule,\n ConfiguratorObjectsHandle,\n} from \"./modules/configuratorObjects\";\nimport { ConfiguratorServiceSDKConfig } from \"./types/common\";\nimport { debugLog } from \"./utils\";\n\n// ─── Public handle interface ──────────────────────────────────────────────────\n\nexport interface ConfiguratorSDKHandle {\n media: MediaHandle;\n sketchfab: SketchfabHandle;\n transform: TransformHandle;\n layer: LayerHandle;\n configuratorItems: ConfiguratorItemsHandle;\n configuratorObjects: ConfiguratorObjectsHandle;\n}\n\n// ─── Factory function ─────────────────────────────────────────────────────────\n\nexport function createConfiguratorSDK(\n config: ConfiguratorServiceSDKConfig,\n): ConfiguratorSDKHandle {\n const http = createHttpClient(config);\n\n debugLog(\"ConfiguratorSDK\", \"Initialized\", {\n timeout: config.timeout ?? 30_000,\n });\n\n return {\n media: createMediaModule(http),\n sketchfab: createSketchfabModule(http),\n transform: createTransformModule(http),\n layer: createLayerModule(http),\n configuratorItems: createConfiguratorItemsModule(http),\n configuratorObjects: createConfiguratorObjectsModule(http),\n };\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n\nconst ConfiguratorSDK = {\n /**\n * Create a new SDK client instance.\n * @param config SDK configuration — apiKey is required, timeout is optional.\n */\n create(config: ConfiguratorServiceSDKConfig): ConfiguratorSDKHandle {\n return createConfiguratorSDK(config);\n },\n} as const;\n\nexport default ConfiguratorSDK;\n\n// ─── Type exports ─────────────────────────────────────────────────────────────\n\nexport type { ConfiguratorServiceSDKConfig } from \"./types/common\";\n\n// Media\nexport type {\n CreateVideoInput,\n UpdateVideoInput,\n CreateLinkInput,\n UpdateLinkInput,\n CreateStreamInput,\n UpdateStreamInput,\n} from \"./types/media\";\n\n// Sketchfab\nexport type {\n CreateSketchfabObjectInput,\n UpdateSketchfabObjectInput,\n} from \"./types/sketchfab\";\n\n// Transform\nexport type {\n UpdatePositionInput,\n UpdateRotationInput,\n UpdateScaleInput,\n SnapToGroundInput,\n} from \"./types/transform\";\n\n// Layer\nexport type {\n LockLayerItemInput,\n RenameLayerItemInput,\n DeleteLayerItemInput,\n DeleteAllLayerItemsInput,\n} from \"./types/layer\";\n\n// Configurator\nexport type {\n CreateConfiguratorItemInput,\n UpdateConfiguratorItemStateInput,\n} from \"./types/configuratorItems\";\n\nexport type {\n CreateConfiguratorObjectInput,\n UpdateConfiguratorObjectConfigInput,\n} from \"./types/configuratorObjects\";\n\nexport { isAlliumError } from \"./errors\";\nexport type { AlliumError } from \"./errors\";\n"]}
|
package/dist/index.mjs
CHANGED
|
@@ -17,12 +17,7 @@ function createRequestError(message, cause) {
|
|
|
17
17
|
return makeError("AlliumRequestError", "REQUEST_ERROR", message, cause);
|
|
18
18
|
}
|
|
19
19
|
function createValidationError(message, cause) {
|
|
20
|
-
return makeError(
|
|
21
|
-
"AlliumValidationError",
|
|
22
|
-
"VALIDATION_ERROR",
|
|
23
|
-
message,
|
|
24
|
-
cause
|
|
25
|
-
);
|
|
20
|
+
return makeError("AlliumValidationError", "VALIDATION_ERROR", message, cause);
|
|
26
21
|
}
|
|
27
22
|
function createUploadError(message, cause) {
|
|
28
23
|
return makeError("AlliumUploadError", "UPLOAD_ERROR", message, cause);
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/errors.ts","../src/utils/debug.ts","../src/core/http.ts","../src/modules/media.ts","../src/modules/sketchfab.ts","../src/modules/transform.ts","../src/modules/layer.ts","../src/modules/configuratorItems.ts","../src/modules/configuratorObjects.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * SDK Error factories.\n */\n\nexport interface AlliumError extends Error {\n readonly code: string;\n}\n\nfunction makeError(\n name: string,\n code: string,\n message: string,\n cause?: unknown,\n): AlliumError {\n const err = new Error(message) as AlliumError;\n err.name = name;\n (err as any).code = code;\n if (cause !== undefined) (err as any).cause = cause;\n return err;\n}\n\n/** Generic SDK error — use when no specific category fits */\nexport function createSDKError(\n message: string,\n code = \"SDK_ERROR\",\n cause?: unknown,\n): AlliumError {\n return makeError(\"AlliumSDKError\", code, message, cause);\n}\n\n/** Thrown when the API key is missing, invalid, or rejected by the server */\nexport function createAuthError(\n message: string,\n cause?: unknown,\n): AlliumError {\n return makeError(\"AlliumAuthError\", \"AUTH_ERROR\", message, cause);\n}\n\n/** Thrown when the HTTP request itself fails (network, timeout, 5xx) */\nexport function createRequestError(\n message: string,\n cause?: unknown,\n): AlliumError {\n return makeError(\"AlliumRequestError\", \"REQUEST_ERROR\", message, cause);\n}\n\n/** Thrown when the server returns a 4xx for bad input data */\nexport function createValidationError(\n message: string,\n cause?: unknown,\n): AlliumError {\n return makeError(\n \"AlliumValidationError\",\n \"VALIDATION_ERROR\",\n message,\n cause,\n );\n}\n\n/** Thrown for upload-specific failures (initiate, complete, abort) */\nexport function createUploadError(\n message: string,\n cause?: unknown,\n): AlliumError {\n return makeError(\"AlliumUploadError\", \"UPLOAD_ERROR\", message, cause);\n}\n\n/** Thrown when SDK_BASE_URL or apiKey is not configured correctly */\nexport function createConfigError(\n message: string,\n cause?: unknown,\n): AlliumError {\n return makeError(\"AlliumConfigError\", \"INVALID_CONFIG\", message, cause);\n}\n\n/** Type guard — works for all Allium error factories */\nexport function isAlliumError(err: unknown): err is AlliumError {\n return err instanceof Error && \"code\" in err;\n}\n","/**\n * Centralised debug logging utility.\n */\n\ndeclare global {\n interface Window {\n ALLIUM_DEBUG?: boolean;\n }\n}\n\nexport const isDebugEnabled = (): boolean => {\n // Node.js environment\n if (typeof process !== \"undefined\" && process.env?.ALLIUM_DEBUG === \"true\") {\n return true;\n }\n // Browser environment\n if (typeof window !== \"undefined\" && window.ALLIUM_DEBUG === true) {\n return true;\n }\n return false;\n};\n\nexport const debugLog = (\n category: string,\n message: string,\n data?: unknown,\n): void => {\n if (!isDebugEnabled()) return;\n const timestamp = new Date().toISOString().slice(11, 23);\n if (data !== undefined) {\n } else {\n }\n};\n","/**\n * HTTP client factory.\n *\n * Creates and configures the axios instance used by all modules.\n * Handles:\n * - Base URL (baked in at build time)\n * - API key injection on every request via header\n * - Timeout\n * - Response unwrapping (your backend wraps all responses in { data: ... })\n * - Error normalization into AlliumError types\n */\n\nimport axios, { AxiosInstance, AxiosError } from \"axios\";\nimport { ConfiguratorServiceSDKConfig } from \"../types/common\";\nimport {\n createAuthError,\n createConfigError,\n createRequestError,\n createValidationError,\n createUploadError,\n} from \"../errors\";\nimport { debugLog } from \"../utils\";\n\n// ─── Build-time URL ───────────────────────────────────────────────────────────\n\ndeclare const process: { env: { CONFIGURATOR_SERVICE_BASE_URL: string } };\nconst PROD_BASE_URL: string = process.env.CONFIGURATOR_SERVICE_BASE_URL;\n\n// ─── Factory ──────────────────────────────────────────────────────────────────\n\nexport function createHttpClient(\n config: ConfiguratorServiceSDKConfig,\n): AxiosInstance {\n const BASE_URL = config._devBaseUrl ?? PROD_BASE_URL;\n if (!BASE_URL) {\n throw createConfigError(\n \"[SDK] Base URL not configured. This SDK build is missing CONFIGURATOR_SERVICE_BASE_URL.\",\n );\n }\n\n if (\n !config.apiKey ||\n typeof config.apiKey !== \"string\" ||\n !config.apiKey.trim()\n ) {\n throw createConfigError(\"[SDK] A valid apiKey is required.\");\n }\n\n if (typeof config.accessTokenProvider !== \"function\")\n throw createConfigError(\"[SDK] accessTokenProvider must be a function.\");\n\n const client = axios.create({\n baseURL: BASE_URL,\n timeout: config.timeout ?? 30_000,\n headers: {\n \"Content-Type\": \"application/json\",\n \"x-sdk-key\": config.apiKey.trim(),\n ...(config.jwksUri?.trim() && { \"x-jwks-uri\": config.jwksUri.trim() }),\n },\n });\n\n // ── Request interceptor — debug logging ───────────────────────────────────\n client.interceptors.request.use(async (req) => {\n const token = await config.accessTokenProvider();\n if (token) {\n req.headers[\"Authorization\"] = `Bearer ${token}`;\n }\n debugLog(\n \"HTTP\",\n `→ ${req.method?.toUpperCase()} ${req.url}`,\n req.params ?? req.data,\n );\n return req;\n });\n\n // ── Response interceptor — unwrap + normalize errors ──────────────────────\n client.interceptors.response.use(\n (res) => {\n debugLog(\"HTTP\", `← ${res.status} ${res.config.url}`);\n return res;\n },\n (err: AxiosError) => {\n const status = err.response?.status;\n const message =\n (err.response?.data as any)?.message ?? err.message ?? \"Unknown error\";\n const url = err.config?.url ?? \"\";\n\n debugLog(\"HTTP\", `← ERROR ${status ?? \"network\"} ${url}`, message);\n\n if (!status) {\n // Network error — no response received at all\n throw createRequestError(\n `[SDK] Network error reaching ${url}: ${message}`,\n err,\n );\n }\n\n if (status === 401 || status === 403) {\n throw createAuthError(\n `[SDK] Authentication failed (${status}): ${message}`,\n err,\n );\n }\n\n if (status === 422 || status === 400) {\n throw createValidationError(\n `[SDK] Validation error (${status}): ${message}`,\n err,\n );\n }\n\n if (url.includes(\"/uploader\")) {\n throw createUploadError(\n `[SDK] Upload operation failed (${status}): ${message}`,\n err,\n );\n }\n\n throw createRequestError(\n `[SDK] Request failed (${status}): ${message}`,\n err,\n );\n },\n );\n\n return client;\n}\n","/**\n * Media Module - Operations\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n CreateLinkInput,\n CreateStreamInput,\n CreateVideoInput,\n UpdateLinkInput,\n UpdateStreamInput,\n UpdateVideoInput,\n} from \"../types/media\";\nimport { debugLog } from \"../utils\";\n\nexport interface MediaHandle {\n addVideo(data: CreateVideoInput): Promise<void>;\n updateVideo(spaceItemId: string, data: UpdateVideoInput): Promise<void>;\n addStream(data: CreateStreamInput): Promise<void>;\n updateStream(spaceItemId: string, data: UpdateStreamInput): Promise<void>;\n addLink(data: CreateLinkInput): Promise<void>;\n updateLink(spaceItemId: string, data: UpdateLinkInput): Promise<void>;\n}\n\nexport function createMediaModule(http: AxiosInstance): MediaHandle {\n async function addVideo(data: CreateVideoInput): Promise<void> {\n await http.post(\"/media/video\", data);\n debugLog(\"Media\", \"addVideo\", data);\n }\n\n async function updateVideo(\n spaceItemId: string,\n data: UpdateVideoInput,\n ): Promise<void> {\n await http.patch(`/media/video/${spaceItemId}`, data);\n debugLog(\"Media\", \"updateVideo\", data);\n }\n\n async function addStream(data: CreateStreamInput): Promise<void> {\n await http.post(\"/media/stream\", data);\n debugLog(\"Media\", \"addStream\", data);\n }\n\n async function updateStream(\n spaceItemId: string,\n data: UpdateStreamInput,\n ): Promise<void> {\n await http.patch(`/media/stream/${spaceItemId}`, data);\n debugLog(\"Media\", \"updateStream\", data);\n }\n\n async function addLink(data: CreateLinkInput): Promise<void> {\n await http.post(\"/media/link\", data);\n debugLog(\"Media\", \"addLink\", data);\n }\n\n async function updateLink(\n spaceItemId: string,\n data: UpdateLinkInput,\n ): Promise<void> {\n await http.patch(`/media/link/${spaceItemId}`, data);\n debugLog(\"Media\", \"updateLink\", data);\n }\n\n return {\n addVideo,\n updateVideo,\n addStream,\n updateStream,\n addLink,\n updateLink,\n };\n}\n","/**\n * Sketchfab Module - 3D Object Operations\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n CreateSketchfabObjectInput,\n UpdateSketchfabObjectInput,\n} from \"../types/sketchfab\";\nimport { debugLog } from \"../utils\";\n\nexport interface SketchfabHandle {\n addObject(data: CreateSketchfabObjectInput): Promise<void>;\n updateObject(\n spaceItemId: string,\n data: UpdateSketchfabObjectInput,\n ): Promise<void>;\n}\n\nexport function createSketchfabModule(http: AxiosInstance): SketchfabHandle {\n async function addObject(data: CreateSketchfabObjectInput): Promise<void> {\n await http.post(\"/sketchfab/object\", data);\n debugLog(\"Sketchfab\", \"addObject\", data);\n }\n\n async function updateObject(\n spaceItemId: string,\n data: UpdateSketchfabObjectInput,\n ): Promise<void> {\n await http.patch(`/sketchfab/${spaceItemId}`, data);\n debugLog(\"Sketchfab\", \"updateObject\", data);\n }\n\n return { addObject, updateObject };\n}\n","/**\n * Transform Module - Position, Rotation, Scale Operations\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n UpdatePositionInput,\n UpdateRotationInput,\n UpdateScaleInput,\n SnapToGroundInput,\n} from \"../types/transform\";\nimport { debugLog } from \"../utils\";\n\nexport interface TransformHandle {\n updatePosition(spaceItemId: string, data: UpdatePositionInput): Promise<void>;\n updateRotation(spaceItemId: string, data: UpdateRotationInput): Promise<void>;\n updateScale(spaceItemId: string, data: UpdateScaleInput): Promise<void>;\n snapToGround(spaceItemId: string, data: SnapToGroundInput): Promise<void>;\n}\n\nexport function createTransformModule(http: AxiosInstance): TransformHandle {\n async function updatePosition(\n spaceItemId: string,\n data: UpdatePositionInput,\n ): Promise<void> {\n await http.patch(`/transform/${spaceItemId}/position`, data);\n debugLog(\"Transform\", \"updatePosition\", data);\n }\n\n async function updateRotation(\n spaceItemId: string,\n data: UpdateRotationInput,\n ): Promise<void> {\n await http.patch(`/transform/${spaceItemId}/rotation`, data);\n debugLog(\"Transform\", \"updateRotation\", data);\n }\n\n async function updateScale(\n spaceItemId: string,\n data: UpdateScaleInput,\n ): Promise<void> {\n await http.patch(`/transform/${spaceItemId}/scale`, data);\n debugLog(\"Transform\", \"updateScale\", data);\n }\n\n async function snapToGround(\n spaceItemId: string,\n data: SnapToGroundInput,\n ): Promise<void> {\n await http.post(`/transform/${spaceItemId}/snap`, data);\n debugLog(\"Transform\", \"snapToGround\", data);\n }\n\n return { updatePosition, updateRotation, updateScale, snapToGround };\n}\n","/**\n * Layer Module - Lock, Rename, Delete Operations\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n LockLayerItemInput,\n RenameLayerItemInput,\n DeleteLayerItemInput,\n DeleteAllLayerItemsInput,\n} from \"../types/layer\";\nimport { debugLog } from \"../utils\";\n\nexport interface LayerHandle {\n lockItem(spaceItemId: string, data: LockLayerItemInput): Promise<void>;\n renameItem(spaceItemId: string, data: RenameLayerItemInput): Promise<void>;\n deleteItem(spaceItemId: string, data: DeleteLayerItemInput): Promise<void>;\n deleteAll(data: DeleteAllLayerItemsInput): Promise<void>;\n}\n\nexport function createLayerModule(http: AxiosInstance): LayerHandle {\n async function lockItem(\n spaceItemId: string,\n data: LockLayerItemInput,\n ): Promise<void> {\n await http.patch(`/layer/${spaceItemId}/lock`, data);\n debugLog(\"Layer\", \"lockItem\", data);\n }\n\n async function renameItem(\n spaceItemId: string,\n data: RenameLayerItemInput,\n ): Promise<void> {\n await http.patch(`/layer/${spaceItemId}/rename`, data);\n debugLog(\"Layer\", \"renameItem\", data);\n }\n\n async function deleteItem(\n spaceItemId: string,\n data: DeleteLayerItemInput,\n ): Promise<void> {\n await http.delete(`/layer/${spaceItemId}`, { data });\n debugLog(\"Layer\", \"deleteItem\", data);\n }\n\n async function deleteAll(data: DeleteAllLayerItemsInput): Promise<void> {\n await http.delete(\"/layer\", { data });\n debugLog(\"Layer\", \"deleteAll\", data);\n }\n\n return { lockItem, renameItem, deleteItem, deleteAll };\n}\n","/**\n * Configurator Items Module - Level-wide property operations\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n CreateConfiguratorItemInput,\n UpdateConfiguratorItemStateInput,\n} from \"../types/configuratorItems\";\nimport { debugLog } from \"../utils\";\n\nexport interface ConfiguratorItemsHandle {\n create(data: CreateConfiguratorItemInput): Promise<void>;\n updateState(\n spaceItemId: string,\n data: UpdateConfiguratorItemStateInput,\n ): Promise<void>;\n}\n\nexport function createConfiguratorItemsModule(\n http: AxiosInstance,\n): ConfiguratorItemsHandle {\n async function create(data: CreateConfiguratorItemInput): Promise<void> {\n await http.post(\"/configurator_items\", data);\n debugLog(\"ConfiguratorItems\", \"create\", data);\n }\n\n async function updateState(\n spaceItemId: string,\n data: UpdateConfiguratorItemStateInput,\n ): Promise<void> {\n await http.patch(`/configurator_items/${spaceItemId}/state`, data);\n debugLog(\"ConfiguratorItems\", \"updateState\", data);\n }\n\n return { create, updateState };\n}\n","/**\n * Configurator Objects Module - UE Actor placement and configuration\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n CreateConfiguratorObjectInput,\n UpdateConfiguratorObjectConfigInput,\n} from \"../types/configuratorObjects\";\nimport { debugLog } from \"../utils\";\n\nexport interface ConfiguratorObjectsHandle {\n create(data: CreateConfiguratorObjectInput): Promise<void>;\n updateConfiguration(\n spaceItemId: string,\n data: UpdateConfiguratorObjectConfigInput,\n ): Promise<void>;\n}\n\nexport function createConfiguratorObjectsModule(\n http: AxiosInstance,\n): ConfiguratorObjectsHandle {\n async function create(data: CreateConfiguratorObjectInput): Promise<void> {\n await http.post(\"/configurator_objects\", data);\n debugLog(\"ConfiguratorObjects\", \"create\", data);\n }\n\n async function updateConfiguration(\n spaceItemId: string,\n data: UpdateConfiguratorObjectConfigInput,\n ): Promise<void> {\n await http.patch(\n `/configurator_objects/${spaceItemId}/configuration`,\n data,\n );\n debugLog(\"ConfiguratorObjects\", \"updateConfiguration\", data);\n }\n\n return { create, updateConfiguration };\n}\n","import { createHttpClient } from \"./core/http\";\nimport { createMediaModule, MediaHandle } from \"./modules/media\";\nimport { createSketchfabModule, SketchfabHandle } from \"./modules/sketchfab\";\nimport { createTransformModule, TransformHandle } from \"./modules/transform\";\nimport { createLayerModule, LayerHandle } from \"./modules/layer\";\nimport {\n createConfiguratorItemsModule,\n ConfiguratorItemsHandle,\n} from \"./modules/configuratorItems\";\nimport {\n createConfiguratorObjectsModule,\n ConfiguratorObjectsHandle,\n} from \"./modules/configuratorObjects\";\nimport { ConfiguratorServiceSDKConfig } from \"./types/common\";\nimport { debugLog } from \"./utils\";\n\n// ─── Public handle interface ──────────────────────────────────────────────────\n\nexport interface ConfiguratorSDKHandle {\n media: MediaHandle;\n sketchfab: SketchfabHandle;\n transform: TransformHandle;\n layer: LayerHandle;\n configuratorItems: ConfiguratorItemsHandle;\n configuratorObjects: ConfiguratorObjectsHandle;\n}\n\n// ─── Factory function ─────────────────────────────────────────────────────────\n\nexport function createConfiguratorSDK(\n config: ConfiguratorServiceSDKConfig,\n): ConfiguratorSDKHandle {\n const http = createHttpClient(config);\n\n debugLog(\"ConfiguratorSDK\", \"Initialized\", {\n timeout: config.timeout ?? 30_000,\n });\n\n return {\n media: createMediaModule(http),\n sketchfab: createSketchfabModule(http),\n transform: createTransformModule(http),\n layer: createLayerModule(http),\n configuratorItems: createConfiguratorItemsModule(http),\n configuratorObjects: createConfiguratorObjectsModule(http),\n };\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n\nconst ConfiguratorSDK = {\n /**\n * Create a new SDK client instance.\n * @param config SDK configuration — apiKey is required, timeout is optional.\n */\n create(config: ConfiguratorServiceSDKConfig): ConfiguratorSDKHandle {\n return createConfiguratorSDK(config);\n },\n} as const;\n\nexport default ConfiguratorSDK;\n\n// ─── Type exports ─────────────────────────────────────────────────────────────\n\nexport type { ConfiguratorServiceSDKConfig } from \"./types/common\";\n\n// Media\nexport type {\n CreateVideoInput,\n UpdateVideoInput,\n CreateLinkInput,\n UpdateLinkInput,\n CreateStreamInput,\n UpdateStreamInput,\n} from \"./types/media\";\n\n// Sketchfab\nexport type {\n CreateSketchfabObjectInput,\n UpdateSketchfabObjectInput,\n} from \"./types/sketchfab\";\n\n// Transform\nexport type {\n UpdatePositionInput,\n UpdateRotationInput,\n UpdateScaleInput,\n SnapToGroundInput,\n} from \"./types/transform\";\n\n// Layer\nexport type {\n LockLayerItemInput,\n RenameLayerItemInput,\n DeleteLayerItemInput,\n DeleteAllLayerItemsInput,\n} from \"./types/layer\";\n\n// Configurator\nexport type {\n CreateConfiguratorItemInput,\n UpdateConfiguratorItemStateInput,\n} from \"./types/configuratorItems\";\n\nexport type {\n CreateConfiguratorObjectInput,\n UpdateConfiguratorObjectConfigInput,\n} from \"./types/configuratorObjects\";\n\nexport { isAlliumError } from \"./errors\";\nexport type { AlliumError } from \"./errors\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/errors.ts","../src/utils/debug.ts","../src/core/http.ts","../src/modules/media.ts","../src/modules/sketchfab.ts","../src/modules/transform.ts","../src/modules/layer.ts","../src/modules/configuratorItems.ts","../src/modules/configuratorObjects.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * SDK Error factories.\n */\n\nexport interface AlliumError extends Error {\n readonly code: string;\n}\n\nfunction makeError(\n name: string,\n code: string,\n message: string,\n cause?: unknown,\n): AlliumError {\n const err = new Error(message) as AlliumError;\n err.name = name;\n (err as any).code = code;\n if (cause !== undefined) (err as any).cause = cause;\n return err;\n}\n\n/** Generic SDK error — use when no specific category fits */\nexport function createSDKError(\n message: string,\n code = \"SDK_ERROR\",\n cause?: unknown,\n): AlliumError {\n return makeError(\"AlliumSDKError\", code, message, cause);\n}\n\n/** Thrown when the API key is missing, invalid, or rejected by the server */\nexport function createAuthError(message: string, cause?: unknown): AlliumError {\n return makeError(\"AlliumAuthError\", \"AUTH_ERROR\", message, cause);\n}\n\n/** Thrown when the HTTP request itself fails (network, timeout, 5xx) */\nexport function createRequestError(\n message: string,\n cause?: unknown,\n): AlliumError {\n return makeError(\"AlliumRequestError\", \"REQUEST_ERROR\", message, cause);\n}\n\n/** Thrown when the server returns a 4xx for bad input data */\nexport function createValidationError(\n message: string,\n cause?: unknown,\n): AlliumError {\n return makeError(\"AlliumValidationError\", \"VALIDATION_ERROR\", message, cause);\n}\n\n/** Thrown for upload-specific failures (initiate, complete, abort) */\nexport function createUploadError(\n message: string,\n cause?: unknown,\n): AlliumError {\n return makeError(\"AlliumUploadError\", \"UPLOAD_ERROR\", message, cause);\n}\n\n/** Thrown when SDK_BASE_URL or apiKey is not configured correctly */\nexport function createConfigError(\n message: string,\n cause?: unknown,\n): AlliumError {\n return makeError(\"AlliumConfigError\", \"INVALID_CONFIG\", message, cause);\n}\n\n/** Type guard — works for all Allium error factories */\nexport function isAlliumError(err: unknown): err is AlliumError {\n return err instanceof Error && \"code\" in err;\n}\n","/**\n * Centralised debug logging utility.\n */\n\ndeclare global {\n interface Window {\n ALLIUM_DEBUG?: boolean;\n }\n}\n\nexport const isDebugEnabled = (): boolean => {\n // Node.js environment\n if (typeof process !== \"undefined\" && process.env?.ALLIUM_DEBUG === \"true\") {\n return true;\n }\n // Browser environment\n if (typeof window !== \"undefined\" && window.ALLIUM_DEBUG === true) {\n return true;\n }\n return false;\n};\n\nexport const debugLog = (\n category: string,\n message: string,\n data?: unknown,\n): void => {\n if (!isDebugEnabled()) return;\n const timestamp = new Date().toISOString().slice(11, 23);\n if (data !== undefined) {\n } else {\n }\n};\n","/**\n * HTTP client factory.\n *\n * Creates and configures the axios instance used by all modules.\n * Handles:\n * - Base URL (baked in at build time)\n * - API key injection on every request via header\n * - Timeout\n * - Response unwrapping (your backend wraps all responses in { data: ... })\n * - Error normalization into AlliumError types\n */\n\nimport axios, { AxiosInstance, AxiosError } from \"axios\";\nimport { ConfiguratorServiceSDKConfig } from \"../types/common\";\nimport {\n createAuthError,\n createConfigError,\n createRequestError,\n createValidationError,\n createUploadError,\n} from \"../errors\";\nimport { debugLog } from \"../utils\";\n\n// ─── Build-time URL ───────────────────────────────────────────────────────────\n\ndeclare const process: { env: { CONFIGURATOR_SERVICE_BASE_URL: string } };\nconst PROD_BASE_URL: string = process.env.CONFIGURATOR_SERVICE_BASE_URL;\n\n// ─── Factory ──────────────────────────────────────────────────────────────────\n\nexport function createHttpClient(\n config: ConfiguratorServiceSDKConfig,\n): AxiosInstance {\n const BASE_URL = config._devBaseUrl ?? PROD_BASE_URL;\n if (!BASE_URL) {\n throw createConfigError(\n \"[SDK] Base URL not configured. This SDK build is missing CONFIGURATOR_SERVICE_BASE_URL.\",\n );\n }\n\n if (\n !config.apiKey ||\n typeof config.apiKey !== \"string\" ||\n !config.apiKey.trim()\n ) {\n throw createConfigError(\"[SDK] A valid apiKey is required.\");\n }\n\n if (typeof config.accessTokenProvider !== \"function\")\n throw createConfigError(\"[SDK] accessTokenProvider must be a function.\");\n\n const client = axios.create({\n baseURL: BASE_URL,\n timeout: config.timeout ?? 30_000,\n headers: {\n \"Content-Type\": \"application/json\",\n \"x-sdk-key\": config.apiKey.trim(),\n ...(config.jwksUri?.trim() && { \"x-jwks-uri\": config.jwksUri.trim() }),\n },\n });\n\n // ── Request interceptor — debug logging ───────────────────────────────────\n client.interceptors.request.use(async (req) => {\n const token = await config.accessTokenProvider();\n if (token) {\n req.headers[\"Authorization\"] = `Bearer ${token}`;\n }\n debugLog(\n \"HTTP\",\n `→ ${req.method?.toUpperCase()} ${req.url}`,\n req.params ?? req.data,\n );\n return req;\n });\n\n // ── Response interceptor — unwrap + normalize errors ──────────────────────\n client.interceptors.response.use(\n (res) => {\n debugLog(\"HTTP\", `← ${res.status} ${res.config.url}`);\n return res;\n },\n (err: AxiosError) => {\n const status = err.response?.status;\n const message =\n (err.response?.data as any)?.message ?? err.message ?? \"Unknown error\";\n const url = err.config?.url ?? \"\";\n\n debugLog(\"HTTP\", `← ERROR ${status ?? \"network\"} ${url}`, message);\n\n if (!status) {\n // Network error — no response received at all\n throw createRequestError(\n `[SDK] Network error reaching ${url}: ${message}`,\n err,\n );\n }\n\n if (status === 401 || status === 403) {\n throw createAuthError(\n `[SDK] Authentication failed (${status}): ${message}`,\n err,\n );\n }\n\n if (status === 422 || status === 400) {\n throw createValidationError(\n `[SDK] Validation error (${status}): ${message}`,\n err,\n );\n }\n\n if (url.includes(\"/uploader\")) {\n throw createUploadError(\n `[SDK] Upload operation failed (${status}): ${message}`,\n err,\n );\n }\n\n throw createRequestError(\n `[SDK] Request failed (${status}): ${message}`,\n err,\n );\n },\n );\n\n return client;\n}\n","/**\n * Media Module - Operations\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n CreateLinkInput,\n CreateStreamInput,\n CreateVideoInput,\n UpdateLinkInput,\n UpdateStreamInput,\n UpdateVideoInput,\n} from \"../types/media\";\nimport { debugLog } from \"../utils\";\n\nexport interface MediaHandle {\n addVideo(data: CreateVideoInput): Promise<void>;\n updateVideo(spaceItemId: string, data: UpdateVideoInput): Promise<void>;\n addStream(data: CreateStreamInput): Promise<void>;\n updateStream(spaceItemId: string, data: UpdateStreamInput): Promise<void>;\n addLink(data: CreateLinkInput): Promise<void>;\n updateLink(spaceItemId: string, data: UpdateLinkInput): Promise<void>;\n}\n\nexport function createMediaModule(http: AxiosInstance): MediaHandle {\n async function addVideo(data: CreateVideoInput): Promise<void> {\n await http.post(\"/media/video\", data);\n debugLog(\"Media\", \"addVideo\", data);\n }\n\n async function updateVideo(\n spaceItemId: string,\n data: UpdateVideoInput,\n ): Promise<void> {\n await http.patch(`/media/video/${spaceItemId}`, data);\n debugLog(\"Media\", \"updateVideo\", data);\n }\n\n async function addStream(data: CreateStreamInput): Promise<void> {\n await http.post(\"/media/stream\", data);\n debugLog(\"Media\", \"addStream\", data);\n }\n\n async function updateStream(\n spaceItemId: string,\n data: UpdateStreamInput,\n ): Promise<void> {\n await http.patch(`/media/stream/${spaceItemId}`, data);\n debugLog(\"Media\", \"updateStream\", data);\n }\n\n async function addLink(data: CreateLinkInput): Promise<void> {\n await http.post(\"/media/link\", data);\n debugLog(\"Media\", \"addLink\", data);\n }\n\n async function updateLink(\n spaceItemId: string,\n data: UpdateLinkInput,\n ): Promise<void> {\n await http.patch(`/media/link/${spaceItemId}`, data);\n debugLog(\"Media\", \"updateLink\", data);\n }\n\n return {\n addVideo,\n updateVideo,\n addStream,\n updateStream,\n addLink,\n updateLink,\n };\n}\n","/**\n * Sketchfab Module - 3D Object Operations\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n CreateSketchfabObjectInput,\n UpdateSketchfabObjectInput,\n} from \"../types/sketchfab\";\nimport { debugLog } from \"../utils\";\n\nexport interface SketchfabHandle {\n addObject(data: CreateSketchfabObjectInput): Promise<void>;\n updateObject(\n spaceItemId: string,\n data: UpdateSketchfabObjectInput,\n ): Promise<void>;\n}\n\nexport function createSketchfabModule(http: AxiosInstance): SketchfabHandle {\n async function addObject(data: CreateSketchfabObjectInput): Promise<void> {\n await http.post(\"/sketchfab/object\", data);\n debugLog(\"Sketchfab\", \"addObject\", data);\n }\n\n async function updateObject(\n spaceItemId: string,\n data: UpdateSketchfabObjectInput,\n ): Promise<void> {\n await http.patch(`/sketchfab/${spaceItemId}`, data);\n debugLog(\"Sketchfab\", \"updateObject\", data);\n }\n\n return { addObject, updateObject };\n}\n","/**\n * Transform Module - Position, Rotation, Scale Operations\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n UpdatePositionInput,\n UpdateRotationInput,\n UpdateScaleInput,\n SnapToGroundInput,\n} from \"../types/transform\";\nimport { debugLog } from \"../utils\";\n\nexport interface TransformHandle {\n updatePosition(spaceItemId: string, data: UpdatePositionInput): Promise<void>;\n updateRotation(spaceItemId: string, data: UpdateRotationInput): Promise<void>;\n updateScale(spaceItemId: string, data: UpdateScaleInput): Promise<void>;\n snapToGround(spaceItemId: string, data: SnapToGroundInput): Promise<void>;\n}\n\nexport function createTransformModule(http: AxiosInstance): TransformHandle {\n async function updatePosition(\n spaceItemId: string,\n data: UpdatePositionInput,\n ): Promise<void> {\n await http.patch(`/transform/${spaceItemId}/position`, data);\n debugLog(\"Transform\", \"updatePosition\", data);\n }\n\n async function updateRotation(\n spaceItemId: string,\n data: UpdateRotationInput,\n ): Promise<void> {\n await http.patch(`/transform/${spaceItemId}/rotation`, data);\n debugLog(\"Transform\", \"updateRotation\", data);\n }\n\n async function updateScale(\n spaceItemId: string,\n data: UpdateScaleInput,\n ): Promise<void> {\n await http.patch(`/transform/${spaceItemId}/scale`, data);\n debugLog(\"Transform\", \"updateScale\", data);\n }\n\n async function snapToGround(\n spaceItemId: string,\n data: SnapToGroundInput,\n ): Promise<void> {\n await http.post(`/transform/${spaceItemId}/snap`, data);\n debugLog(\"Transform\", \"snapToGround\", data);\n }\n\n return { updatePosition, updateRotation, updateScale, snapToGround };\n}\n","/**\n * Layer Module - Lock, Rename, Delete Operations\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n LockLayerItemInput,\n RenameLayerItemInput,\n DeleteLayerItemInput,\n DeleteAllLayerItemsInput,\n} from \"../types/layer\";\nimport { debugLog } from \"../utils\";\n\nexport interface LayerHandle {\n lockItem(spaceItemId: string, data: LockLayerItemInput): Promise<void>;\n renameItem(spaceItemId: string, data: RenameLayerItemInput): Promise<void>;\n deleteItem(spaceItemId: string, data: DeleteLayerItemInput): Promise<void>;\n deleteAll(data: DeleteAllLayerItemsInput): Promise<void>;\n}\n\nexport function createLayerModule(http: AxiosInstance): LayerHandle {\n async function lockItem(\n spaceItemId: string,\n data: LockLayerItemInput,\n ): Promise<void> {\n await http.patch(`/layer/${spaceItemId}/lock`, data);\n debugLog(\"Layer\", \"lockItem\", data);\n }\n\n async function renameItem(\n spaceItemId: string,\n data: RenameLayerItemInput,\n ): Promise<void> {\n await http.patch(`/layer/${spaceItemId}/rename`, data);\n debugLog(\"Layer\", \"renameItem\", data);\n }\n\n async function deleteItem(\n spaceItemId: string,\n data: DeleteLayerItemInput,\n ): Promise<void> {\n await http.delete(`/layer/${spaceItemId}`, { data });\n debugLog(\"Layer\", \"deleteItem\", data);\n }\n\n async function deleteAll(data: DeleteAllLayerItemsInput): Promise<void> {\n await http.delete(\"/layer\", { data });\n debugLog(\"Layer\", \"deleteAll\", data);\n }\n\n return { lockItem, renameItem, deleteItem, deleteAll };\n}\n","/**\n * Configurator Items Module - Level-wide property operations\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n CreateConfiguratorItemInput,\n UpdateConfiguratorItemStateInput,\n} from \"../types/configuratorItems\";\nimport { debugLog } from \"../utils\";\n\nexport interface ConfiguratorItemsHandle {\n create(data: CreateConfiguratorItemInput): Promise<void>;\n updateState(\n spaceItemId: string,\n data: UpdateConfiguratorItemStateInput,\n ): Promise<void>;\n}\n\nexport function createConfiguratorItemsModule(\n http: AxiosInstance,\n): ConfiguratorItemsHandle {\n async function create(data: CreateConfiguratorItemInput): Promise<void> {\n await http.post(\"/configurator_items\", data);\n debugLog(\"ConfiguratorItems\", \"create\", data);\n }\n\n async function updateState(\n spaceItemId: string,\n data: UpdateConfiguratorItemStateInput,\n ): Promise<void> {\n await http.patch(`/configurator_items/${spaceItemId}/state`, data);\n debugLog(\"ConfiguratorItems\", \"updateState\", data);\n }\n\n return { create, updateState };\n}\n","/**\n * Configurator Objects Module - UE Actor placement and configuration\n */\n\nimport { AxiosInstance } from \"axios\";\nimport {\n CreateConfiguratorObjectInput,\n UpdateConfiguratorObjectConfigInput,\n} from \"../types/configuratorObjects\";\nimport { debugLog } from \"../utils\";\n\nexport interface ConfiguratorObjectsHandle {\n create(data: CreateConfiguratorObjectInput): Promise<void>;\n updateConfiguration(\n spaceItemId: string,\n data: UpdateConfiguratorObjectConfigInput,\n ): Promise<void>;\n}\n\nexport function createConfiguratorObjectsModule(\n http: AxiosInstance,\n): ConfiguratorObjectsHandle {\n async function create(data: CreateConfiguratorObjectInput): Promise<void> {\n await http.post(\"/configurator_objects\", data);\n debugLog(\"ConfiguratorObjects\", \"create\", data);\n }\n\n async function updateConfiguration(\n spaceItemId: string,\n data: UpdateConfiguratorObjectConfigInput,\n ): Promise<void> {\n await http.patch(\n `/configurator_objects/${spaceItemId}/configuration`,\n data,\n );\n debugLog(\"ConfiguratorObjects\", \"updateConfiguration\", data);\n }\n\n return { create, updateConfiguration };\n}\n","import { createHttpClient } from \"./core/http\";\nimport { createMediaModule, MediaHandle } from \"./modules/media\";\nimport { createSketchfabModule, SketchfabHandle } from \"./modules/sketchfab\";\nimport { createTransformModule, TransformHandle } from \"./modules/transform\";\nimport { createLayerModule, LayerHandle } from \"./modules/layer\";\nimport {\n createConfiguratorItemsModule,\n ConfiguratorItemsHandle,\n} from \"./modules/configuratorItems\";\nimport {\n createConfiguratorObjectsModule,\n ConfiguratorObjectsHandle,\n} from \"./modules/configuratorObjects\";\nimport { ConfiguratorServiceSDKConfig } from \"./types/common\";\nimport { debugLog } from \"./utils\";\n\n// ─── Public handle interface ──────────────────────────────────────────────────\n\nexport interface ConfiguratorSDKHandle {\n media: MediaHandle;\n sketchfab: SketchfabHandle;\n transform: TransformHandle;\n layer: LayerHandle;\n configuratorItems: ConfiguratorItemsHandle;\n configuratorObjects: ConfiguratorObjectsHandle;\n}\n\n// ─── Factory function ─────────────────────────────────────────────────────────\n\nexport function createConfiguratorSDK(\n config: ConfiguratorServiceSDKConfig,\n): ConfiguratorSDKHandle {\n const http = createHttpClient(config);\n\n debugLog(\"ConfiguratorSDK\", \"Initialized\", {\n timeout: config.timeout ?? 30_000,\n });\n\n return {\n media: createMediaModule(http),\n sketchfab: createSketchfabModule(http),\n transform: createTransformModule(http),\n layer: createLayerModule(http),\n configuratorItems: createConfiguratorItemsModule(http),\n configuratorObjects: createConfiguratorObjectsModule(http),\n };\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n\nconst ConfiguratorSDK = {\n /**\n * Create a new SDK client instance.\n * @param config SDK configuration — apiKey is required, timeout is optional.\n */\n create(config: ConfiguratorServiceSDKConfig): ConfiguratorSDKHandle {\n return createConfiguratorSDK(config);\n },\n} as const;\n\nexport default ConfiguratorSDK;\n\n// ─── Type exports ─────────────────────────────────────────────────────────────\n\nexport type { ConfiguratorServiceSDKConfig } from \"./types/common\";\n\n// Media\nexport type {\n CreateVideoInput,\n UpdateVideoInput,\n CreateLinkInput,\n UpdateLinkInput,\n CreateStreamInput,\n UpdateStreamInput,\n} from \"./types/media\";\n\n// Sketchfab\nexport type {\n CreateSketchfabObjectInput,\n UpdateSketchfabObjectInput,\n} from \"./types/sketchfab\";\n\n// Transform\nexport type {\n UpdatePositionInput,\n UpdateRotationInput,\n UpdateScaleInput,\n SnapToGroundInput,\n} from \"./types/transform\";\n\n// Layer\nexport type {\n LockLayerItemInput,\n RenameLayerItemInput,\n DeleteLayerItemInput,\n DeleteAllLayerItemsInput,\n} from \"./types/layer\";\n\n// Configurator\nexport type {\n CreateConfiguratorItemInput,\n UpdateConfiguratorItemStateInput,\n} from \"./types/configuratorItems\";\n\nexport type {\n CreateConfiguratorObjectInput,\n UpdateConfiguratorObjectConfigInput,\n} from \"./types/configuratorObjects\";\n\nexport { isAlliumError } from \"./errors\";\nexport type { AlliumError } from \"./errors\";\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alliumcloud/configurator-service",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"description": "Allium Configurator SDK - manages sketchfab 3D object , manages live stream, video and links and manages position,scale,rotation of all objects",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|