@alliumcloud/configurator-service 1.5.1-testing.0 → 1.5.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/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -53,7 +53,7 @@ var debugLog = (category, message, data) => {
|
|
|
53
53
|
};
|
|
54
54
|
|
|
55
55
|
// src/core/http.ts
|
|
56
|
-
var PROD_BASE_URL = "https://api-gw-
|
|
56
|
+
var PROD_BASE_URL = "https://api-gw-prod.2x22.com/configurator/api/v1";
|
|
57
57
|
function createHttpClient(config) {
|
|
58
58
|
const BASE_URL = config._devBaseUrl ?? PROD_BASE_URL;
|
|
59
59
|
if (!BASE_URL) {
|
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(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"]}
|
|
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
|
@@ -45,7 +45,7 @@ var debugLog = (category, message, data) => {
|
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
// src/core/http.ts
|
|
48
|
-
var PROD_BASE_URL = "https://api-gw-
|
|
48
|
+
var PROD_BASE_URL = "https://api-gw-prod.2x22.com/configurator/api/v1";
|
|
49
49
|
function createHttpClient(config) {
|
|
50
50
|
const BASE_URL = config._devBaseUrl ?? PROD_BASE_URL;
|
|
51
51
|
if (!BASE_URL) {
|
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(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"]}
|
|
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.5.1
|
|
3
|
+
"version": "1.5.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",
|