@octostar/platform-api 0.5.32 → 1.0.0

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.
Files changed (42) hide show
  1. package/dist/apis.d.ts +11 -2
  2. package/dist/apis.d.ts.map +1 -1
  3. package/dist/apis.js +12 -3
  4. package/dist/apis.js.map +1 -1
  5. package/dist/constants.d.ts +1 -1
  6. package/dist/constants.d.ts.map +1 -1
  7. package/dist/constants.js +1 -1
  8. package/dist/constants.js.map +1 -1
  9. package/dist/lib/AIClientImpl.d.ts.map +1 -1
  10. package/dist/lib/AIClientImpl.js +6 -29
  11. package/dist/lib/AIClientImpl.js.map +1 -1
  12. package/dist/lib/ApiConfig.d.ts +56 -2
  13. package/dist/lib/ApiConfig.d.ts.map +1 -1
  14. package/dist/lib/ApiConfig.js +103 -6
  15. package/dist/lib/ApiConfig.js.map +1 -1
  16. package/dist/lib/AsyncServiceLocator.d.ts +0 -3
  17. package/dist/lib/AsyncServiceLocator.d.ts.map +1 -1
  18. package/dist/lib/AsyncServiceLocator.js.map +1 -1
  19. package/dist/lib/FilesAPIImpl.d.ts +8 -2
  20. package/dist/lib/FilesAPIImpl.d.ts.map +1 -1
  21. package/dist/lib/FilesAPIImpl.js +81 -2
  22. package/dist/lib/FilesAPIImpl.js.map +1 -1
  23. package/dist/lib/FusionApi.d.ts +15 -6
  24. package/dist/lib/FusionApi.d.ts.map +1 -1
  25. package/dist/lib/FusionApi.js +24 -10
  26. package/dist/lib/FusionApi.js.map +1 -1
  27. package/dist/lib/LiveContextAPI.d.ts +1 -0
  28. package/dist/lib/LiveContextAPI.d.ts.map +1 -1
  29. package/dist/lib/LiveContextAPI.js +4 -1
  30. package/dist/lib/LiveContextAPI.js.map +1 -1
  31. package/dist/lib/SearchQueryBuilder.d.ts +61 -4
  32. package/dist/lib/SearchQueryBuilder.d.ts.map +1 -1
  33. package/dist/lib/SearchQueryBuilder.js +86 -56
  34. package/dist/lib/SearchQueryBuilder.js.map +1 -1
  35. package/dist/permissions.d.ts +5 -0
  36. package/dist/permissions.d.ts.map +1 -1
  37. package/dist/permissions.js +5 -0
  38. package/dist/permissions.js.map +1 -1
  39. package/dist/type/FusionTypes.d.ts +13 -1
  40. package/dist/type/FusionTypes.d.ts.map +1 -1
  41. package/package.json +9 -31
  42. package/dist/octostar-platform-api.js +0 -27236
package/dist/apis.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Desktop, Ontology, ExtrasApi, RemoteAppApi, SavedSearchAPIInterface } from '@octostar/platform-types';
1
+ import type { Desktop, Ontology, ExtrasApi, RemoteAppApi, ReportApi } from '@octostar/platform-types';
2
2
  import { getOctostarConnectionManager, type OctostarConnectionManager } from './factory';
3
3
  import type { ContextApi, EnsureMethodsReturnPromise } from './types';
4
4
  /**
@@ -9,7 +9,6 @@ import type { ContextApi, EnsureMethodsReturnPromise } from './types';
9
9
  export declare const desktopApi: () => EnsureMethodsReturnPromise<Desktop>;
10
10
  export declare const extrasApi: () => EnsureMethodsReturnPromise<ExtrasApi>;
11
11
  export declare const remoteAppApi: () => EnsureMethodsReturnPromise<RemoteAppApi>;
12
- export declare const savedSearchApi: () => EnsureMethodsReturnPromise<SavedSearchAPIInterface>;
13
12
  /**
14
13
  * @beta
15
14
  * Provides access to the ontology API.
@@ -37,6 +36,16 @@ export declare const getOntologyApi: () => Promise<EnsureMethodsReturnPromise<On
37
36
  * Get the context API asynchronously.
38
37
  */
39
38
  export declare const getContextApi: () => Promise<EnsureMethodsReturnPromise<ContextApi<unknown>>>;
39
+ /**
40
+ * @beta
41
+ * Provides access to the Report API.
42
+ */
43
+ export declare const reportApi: () => EnsureMethodsReturnPromise<ReportApi>;
44
+ /**
45
+ * @beta
46
+ * Get the Report API asynchronously.
47
+ */
48
+ export declare const getReportApi: () => Promise<EnsureMethodsReturnPromise<ReportApi>>;
40
49
  /**
41
50
  * @beta
42
51
  * Gets the singleton instance of OctostarConnectionManager.
@@ -1 +1 @@
1
- {"version":3,"file":"apis.d.ts","sourceRoot":"","sources":["../src/apis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEpH,OAAO,EAGL,4BAA4B,EAC5B,KAAK,yBAAyB,EAC/B,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAsCtE;;;;GAIG;AACH,eAAO,MAAM,UAAU,2CAAsE,CAAC;AAE9F,eAAO,MAAM,SAAS,6CAAqE,CAAC;AAE5F,eAAO,MAAM,YAAY,gDAAwE,CAAC;AAElG,eAAO,MAAM,cAAc,2DAA0E,CAAC;AAEtG;;;;GAIG;AACH,eAAO,MAAM,WAAW,4CAAuE,CAAC;AAEhG;;;;GAIG;AACH,eAAO,MAAM,UAAU,uDAAsE,CAAC;AAE9F;;;GAGG;AACH,eAAO,MAAM,aAAa,oDAA2D,CAAC;AAEtF;;;GAGG;AACH,eAAO,MAAM,cAAc,qDAA6D,CAAC;AAEzF;;;GAGG;AACH,eAAO,MAAM,aAAa,gEAA2D,CAAC;AAEtF;;;;GAIG;AACH,OAAO,EAAE,4BAA4B,EAAE,CAAC;AAExC;;;GAGG;AACH,YAAY,EAAE,yBAAyB,EAAE,CAAC"}
1
+ {"version":3,"file":"apis.d.ts","sourceRoot":"","sources":["../src/apis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAEtG,OAAO,EAGL,4BAA4B,EAC5B,KAAK,yBAAyB,EAC/B,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAsCtE;;;;GAIG;AACH,eAAO,MAAM,UAAU,2CAAsE,CAAC;AAE9F,eAAO,MAAM,SAAS,6CAAqE,CAAC;AAE5F,eAAO,MAAM,YAAY,gDAAwE,CAAC;AAElG;;;;GAIG;AACH,eAAO,MAAM,WAAW,4CAAuE,CAAC;AAEhG;;;;GAIG;AACH,eAAO,MAAM,UAAU,uDAAsE,CAAC;AAE9F;;;GAGG;AACH,eAAO,MAAM,aAAa,oDAA2D,CAAC;AAEtF;;;GAGG;AACH,eAAO,MAAM,cAAc,qDAA6D,CAAC;AAEzF;;;GAGG;AACH,eAAO,MAAM,aAAa,gEAA2D,CAAC;AAEtF;;;GAGG;AACH,eAAO,MAAM,SAAS,6CAAqE,CAAC;AAE5F;;;GAGG;AACH,eAAO,MAAM,YAAY,sDAAyD,CAAC;AAEnF;;;;GAIG;AACH,OAAO,EAAE,4BAA4B,EAAE,CAAC;AAExC;;;GAGG;AACH,YAAY,EAAE,yBAAyB,EAAE,CAAC"}
package/dist/apis.js CHANGED
@@ -21,8 +21,8 @@ createRemoteApiHandle({
21
21
  .registerService('remoteApp', () => createRemoteApiHandle({
22
22
  name: apiNames.remoteApp,
23
23
  }))
24
- .registerService('savedSearch', () => createRemoteApiHandle({
25
- name: apiNames.savedSearch,
24
+ .registerService('report', () => createRemoteApiHandle({
25
+ name: apiNames.report,
26
26
  }));
27
27
  /**
28
28
  * @beta
@@ -32,7 +32,6 @@ createRemoteApiHandle({
32
32
  export const desktopApi = () => forwardCallsToFutureObject(apisLocator.getService('desktop'));
33
33
  export const extrasApi = () => forwardCallsToFutureObject(apisLocator.getService('extras'));
34
34
  export const remoteAppApi = () => forwardCallsToFutureObject(apisLocator.getService('remoteApp'));
35
- export const savedSearchApi = () => forwardCallsToFutureObject(apisLocator.getService('savedSearch'));
36
35
  /**
37
36
  * @beta
38
37
  * Provides access to the ontology API.
@@ -60,6 +59,16 @@ export const getOntologyApi = async () => apisLocator.getService('ontology');
60
59
  * Get the context API asynchronously.
61
60
  */
62
61
  export const getContextApi = async () => apisLocator.getService('context');
62
+ /**
63
+ * @beta
64
+ * Provides access to the Report API.
65
+ */
66
+ export const reportApi = () => forwardCallsToFutureObject(apisLocator.getService('report'));
67
+ /**
68
+ * @beta
69
+ * Get the Report API asynchronously.
70
+ */
71
+ export const getReportApi = async () => apisLocator.getService('report');
63
72
  /**
64
73
  * @beta
65
74
  * Gets the singleton instance of OctostarConnectionManager.
package/dist/apis.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"apis.js","sourceRoot":"","sources":["../src/apis.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,4BAA4B,GAE7B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,cAAc,EAAE;IAClE,KAAK,EAAE,KAAK;CACb,CAAC;KACC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,CAC/B,qBAAqB,CAAsC;IACzD,IAAI,EAAE,QAAQ,CAAC,OAAO;CACvB,CAAC,CACH;KACA,eAAe,CAAC,UAAU,EAAE,GAAG,EAAE,CAChC,qBAAqB,CAAuC;IAC1D,IAAI,EAAE,QAAQ,CAAC,QAAQ;CACxB,CAAC,CACH;KACA,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE;AAC/B,uCAAuC;AACvC,qBAAqB,CAAkD;IACrE,IAAI,EAAE,QAAQ,CAAC,OAAO;CACvB,CAAC,CACH;KACA,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,CAC9B,qBAAqB,CAAwC;IAC3D,IAAI,EAAE,QAAQ,CAAC,MAAM;CACtB,CAAC,CACH;KACA,eAAe,CAAC,WAAW,EAAE,GAAG,EAAE,CACjC,qBAAqB,CAA2C;IAC9D,IAAI,EAAE,QAAQ,CAAC,SAAS;CACzB,CAAC,CACH;KACA,eAAe,CAAC,aAAa,EAAE,GAAG,EAAE,CACnC,qBAAqB,CAAsD;IACzE,IAAI,EAAE,QAAQ,CAAC,WAAW;CAC3B,CAAC,CACH,CAAC;AAEJ;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAE9F,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE5F,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;AAElG,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;AAEtG;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;AAEhG;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAE9F;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,UAAU,CAAY,SAAS,CAAC,CAAC;AAEtF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,UAAU,CAAa,UAAU,CAAC,CAAC;AAEzF;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,UAAU,CAAY,SAAS,CAAC,CAAC;AAEtF;;;;GAIG;AACH,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
1
+ {"version":3,"file":"apis.js","sourceRoot":"","sources":["../src/apis.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,4BAA4B,GAE7B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,cAAc,EAAE;IAClE,KAAK,EAAE,KAAK;CACb,CAAC;KACC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,CAC/B,qBAAqB,CAAsC;IACzD,IAAI,EAAE,QAAQ,CAAC,OAAO;CACvB,CAAC,CACH;KACA,eAAe,CAAC,UAAU,EAAE,GAAG,EAAE,CAChC,qBAAqB,CAAuC;IAC1D,IAAI,EAAE,QAAQ,CAAC,QAAQ;CACxB,CAAC,CACH;KACA,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE;AAC/B,uCAAuC;AACvC,qBAAqB,CAAkD;IACrE,IAAI,EAAE,QAAQ,CAAC,OAAO;CACvB,CAAC,CACH;KACA,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,CAC9B,qBAAqB,CAAwC;IAC3D,IAAI,EAAE,QAAQ,CAAC,MAAM;CACtB,CAAC,CACH;KACA,eAAe,CAAC,WAAW,EAAE,GAAG,EAAE,CACjC,qBAAqB,CAA2C;IAC9D,IAAI,EAAE,QAAQ,CAAC,SAAS;CACzB,CAAC,CACH;KACA,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,CAC9B,qBAAqB,CAAwC;IAC3D,IAAI,EAAE,QAAQ,CAAC,MAAM;CACtB,CAAC,CACH,CAAC;AAEJ;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAE9F,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE5F,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;AAElG;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;AAEhG;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAE9F;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,UAAU,CAAY,SAAS,CAAC,CAAC;AAEtF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,UAAU,CAAa,UAAU,CAAC,CAAC;AAEzF;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,UAAU,CAAY,SAAS,CAAC,CAAC;AAEtF;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE5F;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,UAAU,CAAW,QAAQ,CAAC,CAAC;AAEnF;;;;GAIG;AACH,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
@@ -14,7 +14,7 @@ export declare const getPostMessageNames: (channelId: string) => Record<"get_api
14
14
  * @beta
15
15
  * API names.
16
16
  */
17
- export declare const apiNames: Record<"desktop", "octostar:api-names:desktop"> & Record<"ontology", "octostar:api-names:ontology"> & Record<"context", "octostar:api-names:context"> & Record<"extras", "octostar:api-names:extras"> & Record<"remoteApp", "octostar:api-names:remoteApp"> & Record<"savedSearch", "octostar:api-names:savedSearch">;
17
+ export declare const apiNames: Record<"desktop", "octostar:api-names:desktop"> & Record<"ontology", "octostar:api-names:ontology"> & Record<"context", "octostar:api-names:context"> & Record<"extras", "octostar:api-names:extras"> & Record<"remoteApp", "octostar:api-names:remoteApp"> & Record<"report", "octostar:api-names:report">;
18
18
  /**
19
19
  * @beta
20
20
  * MIME type for drag payload containing Octostar entities.
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC;AAExD,KAAK,wBAAwB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAC1E,MAAM,CAAC,CAAC,GAAG,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,GACvE,EAAE,CAAC;AAEP;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,EAChG,WAAW,CAAC,EACZ,UAAU,CAAC,EACX,YAAY,MAAM,KACjB,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAQ/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,WAAW,MAAM,wDAC+B,CAAC;AAErF;;;GAGG;AACH,eAAO,MAAM,QAAQ,uTAIpB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,oCAAoC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC;AAExD,KAAK,wBAAwB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAC1E,MAAM,CAAC,CAAC,GAAG,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,GACvE,EAAE,CAAC;AAEP;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,EAChG,WAAW,CAAC,EACZ,UAAU,CAAC,EACX,YAAY,MAAM,KACjB,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAQ/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,WAAW,MAAM,wDAC+B,CAAC;AAErF;;;GAGG;AACH,eAAO,MAAM,QAAQ,6SAIpB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,oCAAoC,CAAC"}
package/dist/constants.js CHANGED
@@ -18,7 +18,7 @@ export const getPostMessageNames = (channelId) => createPrefixesConstants('octos
18
18
  * @beta
19
19
  * API names.
20
20
  */
21
- export const apiNames = createPrefixesConstants('octostar:api-names', ['desktop', 'ontology', 'context', 'extras', 'remoteApp', 'savedSearch'], undefined);
21
+ export const apiNames = createPrefixesConstants('octostar:api-names', ['desktop', 'ontology', 'context', 'extras', 'remoteApp', 'report'], undefined);
22
22
  /**
23
23
  * @beta
24
24
  * MIME type for drag payload containing Octostar entities.
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,SAAY,EACZ,QAAW,EACX,SAAkB,EACc,EAAE;IAClC,MAAM,MAAM,GAA+C,EAAE,CAAC;IAE9D,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACzB,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC;IACnG,CAAC,CAAC,CAAC;IAEH,OAAO,MAAwC,CAAC;AAClD,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,SAAiB,EAAE,EAAE,CACvD,uBAAuB,CAAC,wBAAwB,EAAE,CAAC,SAAS,CAAU,EAAE,SAAS,CAAC,CAAC;AAErF;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,uBAAuB,CAC7C,oBAAoB,EACpB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,CAAU,EACjF,SAAS,CACV,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,iCAAiC,CAAC;AAE7E,OAAO;AACP,8BAA8B"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,SAAY,EACZ,QAAW,EACX,SAAkB,EACc,EAAE;IAClC,MAAM,MAAM,GAA+C,EAAE,CAAC;IAE9D,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACzB,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC;IACnG,CAAC,CAAC,CAAC;IAEH,OAAO,MAAwC,CAAC;AAClD,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,SAAiB,EAAE,EAAE,CACvD,uBAAuB,CAAC,wBAAwB,EAAE,CAAC,SAAS,CAAU,EAAE,SAAS,CAAC,CAAC;AAErF;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,uBAAuB,CAC7C,oBAAoB,EACpB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAU,EAC5E,SAAS,CACV,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,iCAAiC,CAAC;AAE7E,OAAO;AACP,8BAA8B"}
@@ -1 +1 @@
1
- {"version":3,"file":"AIClientImpl.d.ts","sourceRoot":"","sources":["../../src/lib/AIClientImpl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAmB,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAyBjH,qBAAa,YAAa,YAAW,QAAQ;IAC3C,OAAO,CAAC,WAAW,CAAc;IAEjC,OAAO,CAAC,MAAM,CAA0B;gBAE5B,WAAW,EAAE,WAAW;IAI9B,aAAa,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IASrC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;CA+CvE"}
1
+ {"version":3,"file":"AIClientImpl.d.ts","sourceRoot":"","sources":["../../src/lib/AIClientImpl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAmB,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAyBjH,qBAAa,YAAa,YAAW,QAAQ;IAC3C,OAAO,CAAC,WAAW,CAAc;IAEjC,OAAO,CAAC,MAAM,CAA0B;gBAE5B,WAAW,EAAE,WAAW;IAI9B,aAAa,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IASrC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;CAuBvE"}
@@ -24,45 +24,22 @@ export class AIClientImpl {
24
24
  return this.models;
25
25
  }
26
26
  async prompt(prompt, options) {
27
- const model = options?.model ?? (await this.getChatModels())[0]?.model_name;
28
- const enableRag = options?.enableRag ?? true; // getPreference is not available to this package.
29
- const contextEntities = options?.context ?? [];
30
- const messages = contextEntities.length > 0
31
- ? [
32
- {
33
- role: 'user',
34
- type: 'add_entities',
35
- hasEntity: false,
36
- content: contextEntities.map(({ entity_id, entity_label, entity_type }) => ({
37
- entity_id,
38
- entity_label,
39
- entity_type,
40
- })),
41
- id: contextEntities[0].entity_id,
42
- },
43
- ]
44
- : undefined;
45
- // TODO: Streaming is not supported yet.
27
+ if (options?.context && options.context.length > 0) {
28
+ throw new Error('[AIClientImpl] options.context is not supported in completion mode. Call /api/v2/chat directly for context-bearing prompts.');
29
+ }
46
30
  const chatMessage = await this.osAPIClient.fetchData({
47
31
  endpoint: '/api/v1/chat',
48
32
  method: 'POST',
49
- headers: {
50
- 'Content-Type': 'application/json',
51
- },
33
+ headers: { 'Content-Type': 'application/json' },
52
34
  body: JSON.stringify({
53
- model_name: model,
54
35
  prompt,
55
- api_key: options?.apiKey ?? '',
56
36
  streaming: false,
57
- enable_rag: enableRag,
58
- cohere_key: options?.cohereKey ?? '',
37
+ execution_mode: 'completion',
59
38
  temperature: typeof options?.temperature === 'number' ? options.temperature : undefined,
60
- messages,
61
39
  }),
62
40
  });
63
41
  if (options?.noThink) {
64
- const parsedResponse = extractThoughts(chatMessage.response.content);
65
- return parsedResponse.content;
42
+ return extractThoughts(chatMessage.response.content).content;
66
43
  }
67
44
  return chatMessage.response.content;
68
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AIClientImpl.js","sourceRoot":"","sources":["../../src/lib/AIClientImpl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AIClientImpl.js","sourceRoot":"","sources":["../../src/lib/AIClientImpl.ts"],"names":[],"mappings":"AAOA,SAAS,eAAe,CACtB,OAAe,EACf,YAA8B,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IAE3D,IAAI,iBAAiB,GAAW,OAAO,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACxD,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,IAAI,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5C,OAAO,eAAe,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,SAAS,CAAC,OAAO,IAAI,iBAAiB,CAAC;IACvC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,OAAO,YAAY;IAKvB,YAAY,WAAwB;QAClC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAc;gBAC1D,QAAQ,EAAE,qBAAqB;aAChC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,OAAuB;QAClD,IAAI,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,6HAA6H,CAC9H,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAkB;YACpE,QAAQ,EAAE,cAAc;YACxB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,MAAM;gBACN,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,YAAY;gBAC5B,WAAW,EAAE,OAAO,OAAO,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;aACxF,CAAC;SACH,CAAC,CAAC;QACH,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,OAAO,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;QAC/D,CAAC;QACD,OAAO,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;IACtC,CAAC;CACF"}
@@ -1,4 +1,26 @@
1
1
  import { type DeveloperSettings } from '@octostar/platform-types';
2
+ /**
3
+ * Supported backend thumbnail rungs for `getEntityThumbnailUrl`. The server
4
+ * snaps any requested `max_width` UP to one of these and caches one object
5
+ * per rung, so request the rung you actually want — an arbitrary width below
6
+ * a rung just maps to that same rung's object.
7
+ */
8
+ export declare const THUMBNAIL_WIDTHS: {
9
+ readonly SMALL: 512;
10
+ readonly LARGE: 2048;
11
+ };
12
+ /** The renderer also caps a thumbnail's height, at this multiple of its rung's width. */
13
+ export declare const THUMBNAIL_MAX_HEIGHT_FACTOR = 4;
14
+ /** True if `pathname` (or a path-only URL string) targets Octostar API attachment/image/source-bytes assets.
15
+ *
16
+ * `/files/source/bytes` is included so the navigation-fallback that strips
17
+ * scheme/host (and thus the auth headers attached at the SDK layer) does
18
+ * not silently apply to source-backed reads — same reasoning as the
19
+ * attachments path: cross-environment portability without auth loss. The v2
20
+ * entity attachment + thumbnail routes (`/api/v2/entities/.../attachment`) get
21
+ * the same treatment.
22
+ */
23
+ export declare function isOctostarApiAssetPathname(pathname: string): boolean;
2
24
  /**
3
25
  * ApiConfig
4
26
  * A generic, synchronous store for developer settings and URL construction.
@@ -18,13 +40,45 @@ export declare const ApiConfig: {
18
40
  */
19
41
  isUsingDefaultApi(): boolean;
20
42
  /**
21
- * Specifically handles the migrated attachment path.
43
+ * Specifically handles the migrated (v1) attachment path.
22
44
  * Usage: ApiConfig.getAttachmentUrl(attachmentId)
45
+ * Pass relative: true for path+query only (browser resolves against the current origin).
46
+ *
47
+ * For images/thumbnails prefer the v2 builders below
48
+ * (`getEntityAttachmentUrl` / `getEntityThumbnailUrl`).
23
49
  */
24
50
  getAttachmentUrl(path: string, options?: {
25
51
  content_type?: string;
26
52
  content_disposition?: "inline" | "attachment";
27
- cb?: number;
53
+ relative?: boolean;
28
54
  }): string;
55
+ /**
56
+ * v2 entity attachment bytes: GET /api/v2/entities/{os_workspace}/{entity_uid}/attachment.
57
+ * Streams the original inline, resolving `osfs://` / `mntfs://` source-backed
58
+ * entities server-side. Use this for raw image/file reads; for previews use
59
+ * `getEntityThumbnailUrl`.
60
+ */
61
+ getEntityAttachmentUrl(osWorkspace: string, entityUid: string, options?: {
62
+ relative?: boolean;
63
+ }): string;
64
+ /**
65
+ * v2 backend-rendered thumbnail: GET .../attachment/_thumbnail?max_width=N&v=<token>.
66
+ * A downscaled WebP for images and PDF first pages; the backend snaps
67
+ * `max_width` to a fixed rung (512 / 2048) and 302-redirects to the original
68
+ * for non-thumbnailable content. Pass `v` (e.g. the entity's
69
+ * `os_last_updated_at`) to opt into long-lived immutable caching — the URL is
70
+ * then content-versioned, so a tile seen once never re-downloads or
71
+ * revalidates; omit it to revalidate.
72
+ */
73
+ getEntityThumbnailUrl(osWorkspace: string, entityUid: string, options: {
74
+ max_width: number;
75
+ v?: number | string;
76
+ relative?: boolean;
77
+ }): string;
78
+ /**
79
+ * Strip scheme/host for Octostar API asset URLs so they stay valid across environments.
80
+ * Leaves other URLs (e.g. CDN icons) unchanged.
81
+ */
82
+ toPortableAssetPath(url: string): string;
29
83
  };
30
84
  //# sourceMappingURL=ApiConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApiConfig.d.ts","sourceRoot":"","sources":["../../src/lib/ApiConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAQlE;;;GAGG;AACH,eAAO,MAAM,SAAS;cAEJ,iBAAiB;IAEjC;;OAEG;qBACc,MAAM;IAcvB;;;;;;OAMG;yBACkB,OAAO;IAc5B;;;OAGG;2BAEK,MAAM,YACF;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9F,MAAM;CAaV,CAAC"}
1
+ {"version":3,"file":"ApiConfig.d.ts","sourceRoot":"","sources":["../../src/lib/ApiConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;CAAuC,CAAC;AAErE,yFAAyF;AACzF,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOpE;AAQD;;;GAGG;AACH,eAAO,MAAM,SAAS;cAEJ,iBAAiB;IAEjC;;OAEG;qBACc,MAAM;IAcvB;;;;;;OAMG;yBACkB,OAAO;IAc5B;;;;;;;OAOG;2BAEK,MAAM,YACF;QACR,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,mBAAmB,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;QAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,GACA,MAAM;IAoBT;;;;;OAKG;wCACiC,MAAM,aAAa,MAAM,YAAY;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM;IASxG;;;;;;;;OAQG;uCAEY,MAAM,aACR,MAAM,WACR;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,GACA,MAAM;IAmBT;;;OAGG;6BACsB,MAAM,GAAG,MAAM;CAezC,CAAC"}
@@ -1,3 +1,27 @@
1
+ /**
2
+ * Supported backend thumbnail rungs for `getEntityThumbnailUrl`. The server
3
+ * snaps any requested `max_width` UP to one of these and caches one object
4
+ * per rung, so request the rung you actually want — an arbitrary width below
5
+ * a rung just maps to that same rung's object.
6
+ */
7
+ export const THUMBNAIL_WIDTHS = { SMALL: 512, LARGE: 2048 };
8
+ /** The renderer also caps a thumbnail's height, at this multiple of its rung's width. */
9
+ export const THUMBNAIL_MAX_HEIGHT_FACTOR = 4;
10
+ /** True if `pathname` (or a path-only URL string) targets Octostar API attachment/image/source-bytes assets.
11
+ *
12
+ * `/files/source/bytes` is included so the navigation-fallback that strips
13
+ * scheme/host (and thus the auth headers attached at the SDK layer) does
14
+ * not silently apply to source-backed reads — same reasoning as the
15
+ * attachments path: cross-environment portability without auth loss. The v2
16
+ * entity attachment + thumbnail routes (`/api/v2/entities/.../attachment`) get
17
+ * the same treatment.
18
+ */
19
+ export function isOctostarApiAssetPathname(pathname) {
20
+ return (pathname.includes('/api/v1/files/attachments') ||
21
+ pathname.includes('/api/v1/octostar/image/') ||
22
+ pathname.includes('/api/v1/files/source/bytes') ||
23
+ (pathname.includes('/api/v2/entities/') && pathname.includes('/attachment')));
24
+ }
1
25
  // FIXME: TEAM-4235 To be removed when superset is gone.
2
26
  function getDefaultBaseUrl() {
3
27
  if (typeof window === 'undefined')
@@ -50,19 +74,92 @@ export const ApiConfig = {
50
74
  }
51
75
  },
52
76
  /**
53
- * Specifically handles the migrated attachment path.
77
+ * Specifically handles the migrated (v1) attachment path.
54
78
  * Usage: ApiConfig.getAttachmentUrl(attachmentId)
79
+ * Pass relative: true for path+query only (browser resolves against the current origin).
80
+ *
81
+ * For images/thumbnails prefer the v2 builders below
82
+ * (`getEntityAttachmentUrl` / `getEntityThumbnailUrl`).
55
83
  */
56
84
  getAttachmentUrl(path, options) {
85
+ const { relative, ...queryFields } = options ?? {};
57
86
  const base = this.getApiBaseUrl().replace(/\/$/, '');
58
87
  const suffix = path.startsWith('/') ? path : `/${path}`;
59
88
  const query = new URLSearchParams();
60
89
  const url = `${base}/api/v1/files/attachments${suffix}`;
61
- if (options) {
62
- Object.keys(options).forEach(key => {
63
- query.set(key, String(options[key]));
64
- });
65
- return `${url}?${query.toString()}`;
90
+ for (const key of Object.keys(queryFields)) {
91
+ const value = queryFields[key];
92
+ if (value !== undefined) {
93
+ query.set(key, String(value));
94
+ }
95
+ }
96
+ const full = query.toString() ? `${url}?${query.toString()}` : url;
97
+ if (relative) {
98
+ const { pathname, search } = new URL(full);
99
+ return `${pathname}${search}`;
100
+ }
101
+ return full;
102
+ },
103
+ /**
104
+ * v2 entity attachment bytes: GET /api/v2/entities/{os_workspace}/{entity_uid}/attachment.
105
+ * Streams the original inline, resolving `osfs://` / `mntfs://` source-backed
106
+ * entities server-side. Use this for raw image/file reads; for previews use
107
+ * `getEntityThumbnailUrl`.
108
+ */
109
+ getEntityAttachmentUrl(osWorkspace, entityUid, options) {
110
+ const base = this.getApiBaseUrl().replace(/\/$/, '');
111
+ const full = `${base}/api/v2/entities/${encodeURIComponent(osWorkspace)}/${encodeURIComponent(entityUid)}/attachment`;
112
+ if (options?.relative) {
113
+ return new URL(full).pathname;
114
+ }
115
+ return full;
116
+ },
117
+ /**
118
+ * v2 backend-rendered thumbnail: GET .../attachment/_thumbnail?max_width=N&v=<token>.
119
+ * A downscaled WebP for images and PDF first pages; the backend snaps
120
+ * `max_width` to a fixed rung (512 / 2048) and 302-redirects to the original
121
+ * for non-thumbnailable content. Pass `v` (e.g. the entity's
122
+ * `os_last_updated_at`) to opt into long-lived immutable caching — the URL is
123
+ * then content-versioned, so a tile seen once never re-downloads or
124
+ * revalidates; omit it to revalidate.
125
+ */
126
+ getEntityThumbnailUrl(osWorkspace, entityUid, options) {
127
+ const { relative, ...queryFields } = options;
128
+ const base = this.getApiBaseUrl().replace(/\/$/, '');
129
+ const url = `${base}/api/v2/entities/${encodeURIComponent(osWorkspace)}/${encodeURIComponent(entityUid)}/attachment/_thumbnail`;
130
+ const query = new URLSearchParams();
131
+ for (const key of Object.keys(queryFields)) {
132
+ const value = queryFields[key];
133
+ if (value !== undefined) {
134
+ query.set(key, String(value));
135
+ }
136
+ }
137
+ const full = `${url}?${query.toString()}`;
138
+ if (relative) {
139
+ const { pathname, search } = new URL(full);
140
+ return `${pathname}${search}`;
141
+ }
142
+ return full;
143
+ },
144
+ /**
145
+ * Strip scheme/host for Octostar API asset URLs so they stay valid across environments.
146
+ * Leaves other URLs (e.g. CDN icons) unchanged.
147
+ */
148
+ toPortableAssetPath(url) {
149
+ if (!url)
150
+ return url;
151
+ const t = url.trim();
152
+ if (t.startsWith('/'))
153
+ return t;
154
+ try {
155
+ const u = new URL(t);
156
+ const { pathname, search } = u;
157
+ if (isOctostarApiAssetPathname(pathname)) {
158
+ return `${pathname}${search}`;
159
+ }
160
+ }
161
+ catch {
162
+ /* ignore */
66
163
  }
67
164
  return url;
68
165
  },
@@ -1 +1 @@
1
- {"version":3,"file":"ApiConfig.js","sourceRoot":"","sources":["../../src/lib/ApiConfig.ts"],"names":[],"mappings":"AAEA,wDAAwD;AACxD,SAAS,iBAAiB;IACxB,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,EAAE,CAAC;IAC7C,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,wDAAwD;IACxD,QAAQ,EAAE,EAAuB;IAEjC;;OAEG;IACH,aAAa;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACjD,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC9B,2CAA2C;gBAC3C,OAAO,GAAG,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACP,0CAA0C;YAC5C,CAAC;QACH,CAAC;QACD,OAAO,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAED;;;;;;OAMG;IACH,iBAAiB;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;YACvC,OAAO,GAAG,WAAW,CAAC,QAAQ,KAAK,WAAW,CAAC,IAAI,EAAE,KAAK,UAAU,CAAC;QACvE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,gBAAgB,CACd,IAAY,EACZ,OAA+F;QAE/F,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,GAAG,IAAI,4BAA4B,MAAM,EAAE,CAAC;QACxD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACjC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAA2B,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"ApiConfig.js","sourceRoot":"","sources":["../../src/lib/ApiConfig.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,6 @@
1
1
  type DependencyFactoryGeneral = (locator: unknown) => Promise<any>;
2
2
  type DependencyFactory<T, S extends Record<string, DependencyFactoryGeneral>> = (locator: AsyncServiceLocator<S>) => Promise<T>;
3
3
  type GetServiceResult<T> = Promise<T extends (...args: any) => infer R ? Awaited<R> : never>;
4
- export interface ReadOnlyAsyncServiceLocator<T, I = T extends AsyncServiceLocator<infer S> ? S : never> {
5
- getService: <K extends keyof I>(name: K) => GetServiceResult<I[K]>;
6
- }
7
4
  interface AsyncServiceLocatorOptions {
8
5
  cache: boolean;
9
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncServiceLocator.d.ts","sourceRoot":"","sources":["../../src/lib/AsyncServiceLocator.ts"],"names":[],"mappings":"AAAA,KAAK,wBAAwB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAEnE,KAAK,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAC9E,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAC5B,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB,KAAK,gBAAgB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AAE7F,MAAM,WAAW,2BAA2B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;IACpG,UAAU,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACpE;AAED,UAAU,0BAA0B;IAClC,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,mBAAmB,CAC9B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAE1F,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAI;IAE7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAE7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;gBAEzC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,0BAA0B;IAMzF,MAAM,CAAC,SAAS,EAAE,MAAM,CACtB,MAAM,EACN,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC,CACtG,CAAM;IAEP,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B;IAYnE,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,EACnE,IAAI,EAAE,CAAC,EACP,cAAc,EAAE,CAAC,GAChB,mBAAmB,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAWlC,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,EAChC,IAAI,EAAE,CAAC,GAEN,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAc1B"}
1
+ {"version":3,"file":"AsyncServiceLocator.d.ts","sourceRoot":"","sources":["../../src/lib/AsyncServiceLocator.ts"],"names":[],"mappings":"AAAA,KAAK,wBAAwB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAEnE,KAAK,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAC9E,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAC5B,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB,KAAK,gBAAgB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AAE7F,UAAU,0BAA0B;IAClC,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,mBAAmB,CAC9B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAE1F,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAI;IAE7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAE7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;gBAEzC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,0BAA0B;IAMzF,MAAM,CAAC,SAAS,EAAE,MAAM,CACtB,MAAM,EACN,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC,CACtG,CAAM;IAEP,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B;IAYnE,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,EACnE,IAAI,EAAE,CAAC,EACP,cAAc,EAAE,CAAC,GAChB,mBAAmB,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAWlC,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,EAChC,IAAI,EAAE,CAAC,GAEN,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAc1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncServiceLocator.js","sourceRoot":"","sources":["../../src/lib/AsyncServiceLocator.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,mBAAmB;IAS9B,YAAY,QAAW,EAAE,KAA2B,EAAE,OAAmC;QACvF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAOD,MAAM,CAAC,WAAW,CAAC,GAAW,EAAE,OAAmC;QACjE,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,GAAG,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAElD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,mBAAmB,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAED,uCAAuC;IACvC,eAAe,CACb,IAAO,EACP,cAAiB;QAEjB,OAAO,IAAI,mBAAmB,CAC5B;YACE,GAAG,IAAI,CAAC,QAAQ;YAChB,CAAC,IAAI,CAAC,EAAE,cAAc;SACvB,EACD,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAS,EAAE,sBAAsB;QACnE,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CACd,IAAO;IACP,4EAA4E;;QAE5E,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC7C,uCAAuC;YACvC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;;AA/CM,6BAAS,GAGZ,EAAE,CAAC;AA+CT,eAAe;AACf,iDAAiD;AACjD,EAAE;AACF,oBAAoB;AACpB,qBAAqB;AACrB,MAAM;AACN,IAAI;AACJ,EAAE;AACF,gBAAgB;AAChB,iDAAiD;AACjD,EAAE;AACF,uBAAuB;AACvB,sBAAsB;AACtB,MAAM;AACN,EAAE;AACF,oBAAoB;AACpB,sBAAsB;AACtB,MAAM;AACN,IAAI;AACJ,EAAE;AACF,iEAAiE;AACjE,qDAAqD;AACrD,gDAAgD;AAChD,sBAAsB;AACtB,eAAe;AACf,oEAAoE;AACpE,OAAO;AACP,4DAA4D;AAC5D,8DAA8D;AAC9D,EAAE;AACF,sBAAsB;AACtB,0BAA0B"}
1
+ {"version":3,"file":"AsyncServiceLocator.js","sourceRoot":"","sources":["../../src/lib/AsyncServiceLocator.ts"],"names":[],"mappings":"AAYA,MAAM,OAAO,mBAAmB;IAS9B,YAAY,QAAW,EAAE,KAA2B,EAAE,OAAmC;QACvF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAOD,MAAM,CAAC,WAAW,CAAC,GAAW,EAAE,OAAmC;QACjE,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,GAAG,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAElD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,mBAAmB,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAED,uCAAuC;IACvC,eAAe,CACb,IAAO,EACP,cAAiB;QAEjB,OAAO,IAAI,mBAAmB,CAC5B;YACE,GAAG,IAAI,CAAC,QAAQ;YAChB,CAAC,IAAI,CAAC,EAAE,cAAc;SACvB,EACD,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAS,EAAE,sBAAsB;QACnE,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CACd,IAAO;IACP,4EAA4E;;QAE5E,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC7C,uCAAuC;YACvC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;;AA/CM,6BAAS,GAGZ,EAAE,CAAC;AA+CT,eAAe;AACf,iDAAiD;AACjD,EAAE;AACF,oBAAoB;AACpB,qBAAqB;AACrB,MAAM;AACN,IAAI;AACJ,EAAE;AACF,gBAAgB;AAChB,iDAAiD;AACjD,EAAE;AACF,uBAAuB;AACvB,sBAAsB;AACtB,MAAM;AACN,EAAE;AACF,oBAAoB;AACpB,sBAAsB;AACtB,MAAM;AACN,IAAI;AACJ,EAAE;AACF,iEAAiE;AACjE,qDAAqD;AACrD,gDAAgD;AAChD,sBAAsB;AACtB,eAAe;AACf,oEAAoE;AACpE,OAAO;AACP,4DAA4D;AAC5D,8DAA8D;AAC9D,EAAE;AACF,sBAAsB;AACtB,0BAA0B"}
@@ -1,4 +1,4 @@
1
- import type { FilesAPIClient, FileListResponse, OsAPIClient, WorkspaceItem, MoveOptions, MoveResponse, MkdirResponse, DeleteResponse, DownloadOptions, ListFolderOptions, S3UploadResponse, UploadOptions, UnzipOptions } from '@octostar/platform-types';
1
+ import type { FilesAPIClient, FileListResponse, OsAPIClient, WorkspaceItem, MoveOptions, MoveResponse, MkdirResponse, DeleteResponse, DownloadOptions, ListFolderOptions, PeekSourceOptions, PeekSourceTarget, S3UploadResponse, SourceExportRequest, SourceExportResponse, SourcePeekResponse, UploadOptions, UnzipOptions, UploadFromUrlRequest, UploadFromUrlResponse } from '@octostar/platform-types';
2
2
  export declare class FilesAPIImpl implements FilesAPIClient {
3
3
  private osAPIClient;
4
4
  constructor(osAPIClient: OsAPIClient);
@@ -10,7 +10,9 @@ export declare class FilesAPIImpl implements FilesAPIClient {
10
10
  listFolder(os_workspace: string, options?: ListFolderOptions): Promise<FileListResponse>;
11
11
  moveOrRename(os_workspace: string, path: string, { entity_id, new_name, new_os_parent_folder, force }: MoveOptions): Promise<MoveResponse>;
12
12
  getDownloadUrl(os_workspace: string, path: string, { content_type, content_disposition, redirect }?: DownloadOptions): Promise<string>;
13
- createFile(item: WorkspaceItem): Promise<MkdirResponse>;
13
+ createFile(item: WorkspaceItem, options?: {
14
+ clientKey?: string;
15
+ }): Promise<MkdirResponse>;
14
16
  mkdir(item: WorkspaceItem): Promise<MkdirResponse>;
15
17
  deleteFile(os_workspace: string, path: string): Promise<DeleteResponse>;
16
18
  deleteRecursive(os_workspace: string, path: string): Promise<DeleteResponse>;
@@ -18,6 +20,10 @@ export declare class FilesAPIImpl implements FilesAPIClient {
18
20
  tracking_id: string;
19
21
  status_url: string;
20
22
  }>;
23
+ uploadFromUrl(os_workspace: string, body: UploadFromUrlRequest, signal?: AbortSignal): Promise<UploadFromUrlResponse>;
21
24
  getUploadUrl(os_workspace: string, entity_id: string, options: UploadOptions): Promise<S3UploadResponse>;
25
+ peekSource(os_workspace: string, target: PeekSourceTarget, options?: PeekSourceOptions): Promise<SourcePeekResponse>;
26
+ private buildPeekSourceUrl;
27
+ bulkExportSourceSubtree(os_workspace: string, body: SourceExportRequest): Promise<SourceExportResponse>;
22
28
  }
23
29
  //# sourceMappingURL=FilesAPIImpl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilesAPIImpl.d.ts","sourceRoot":"","sources":["../../src/lib/FilesAPIImpl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,eAAe,EACf,iBAAiB,EAEjB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACb,MAAM,0BAA0B,CAAC;AAGlC,qBAAa,YAAa,YAAW,cAAc;IACjD,OAAO,CAAC,WAAW,CAAc;gBAErB,WAAW,EAAE,WAAW;IAIpC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAajE,OAAO,CAAC,gBAAgB;YAiBV,UAAU;YAYV,kBAAkB;YAelB,QAAQ;IAWhB,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAYxF,YAAY,CAChB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,EAAE,SAAS,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAa,EAAE,EAAE,WAAW,GACxE,OAAO,CAAC,YAAY,CAAC;IAclB,cAAc,CAClB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,EAAE,YAAY,EAAE,mBAA8B,EAAE,QAAe,EAAE,GAAE,eAAoB,GACtF,OAAO,CAAC,MAAM,CAAC;IAoBZ,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAuBvD,KAAK,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAclD,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAQvE,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAQ5E,aAAa,CACjB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAmBjD,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAc/G"}
1
+ {"version":3,"file":"FilesAPIImpl.d.ts","sourceRoot":"","sources":["../../src/lib/FilesAPIImpl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,eAAe,EACf,iBAAiB,EAEjB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EAEtB,MAAM,0BAA0B,CAAC;AAGlC,qBAAa,YAAa,YAAW,cAAc;IACjD,OAAO,CAAC,WAAW,CAAc;gBAErB,WAAW,EAAE,WAAW;IAIpC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAajE,OAAO,CAAC,gBAAgB;YAiBV,UAAU;YAYV,kBAAkB;YAelB,QAAQ;IAWhB,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAYxF,YAAY,CAChB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,EAAE,SAAS,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAa,EAAE,EAAE,WAAW,GACxE,OAAO,CAAC,YAAY,CAAC;IAclB,cAAc,CAClB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,EAAE,YAAY,EAAE,mBAA8B,EAAE,QAAe,EAAE,GAAE,eAAoB,GACtF,OAAO,CAAC,MAAM,CAAC;IAoBZ,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAyB7F,KAAK,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAclD,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAQvE,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAQ5E,aAAa,CACjB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAmBjD,aAAa,CACjB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,oBAAoB,EAC1B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,qBAAqB,CAAC;IAc3B,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAexG,UAAU,CACd,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,kBAAkB,CAAC;IAS9B,OAAO,CAAC,kBAAkB;IAgBpB,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAQ9G"}
@@ -87,8 +87,10 @@ export class FilesAPIImpl {
87
87
  });
88
88
  return signedUrl;
89
89
  }
90
- async createFile(item) {
91
- const url = `/api/v1/files/create/${item.os_workspace}`;
90
+ async createFile(item, options = {}) {
91
+ const base = `/api/v1/files/create/${item.os_workspace}`;
92
+ // The pipeline groups every request of one upload action under its `client_key`.
93
+ const url = options.clientKey ? `${base}?client_key=${encodeURIComponent(options.clientKey)}` : base;
92
94
  return this.osAPIClient.fetchData({
93
95
  endpoint: url,
94
96
  method: 'POST',
@@ -148,6 +150,19 @@ export class FilesAPIImpl {
148
150
  },
149
151
  });
150
152
  }
153
+ async uploadFromUrl(os_workspace, body, signal) {
154
+ const endpoint = `/api/v2/files/upload-from-url/${encodeURIComponent(os_workspace)}`;
155
+ const response = await this.osAPIClient.fetch(endpoint, {
156
+ method: 'POST',
157
+ headers: { 'Content-Type': 'application/json' },
158
+ body: JSON.stringify(body),
159
+ signal,
160
+ });
161
+ if (!response.ok) {
162
+ throw await parseUploadFromUrlError(response);
163
+ }
164
+ return (await response.json());
165
+ }
151
166
  async getUploadUrl(os_workspace, entity_id, options) {
152
167
  const { content_type, ttl_minutes = 60 } = options;
153
168
  const ttl = ttl_minutes * 60;
@@ -161,5 +176,69 @@ export class FilesAPIImpl {
161
176
  },
162
177
  });
163
178
  }
179
+ async peekSource(os_workspace, target, options) {
180
+ const url = this.buildPeekSourceUrl(os_workspace, target, options);
181
+ return this.osAPIClient.fetchData({
182
+ endpoint: url,
183
+ method: 'GET',
184
+ headers: { 'Content-Type': 'application/json' },
185
+ });
186
+ }
187
+ buildPeekSourceUrl(os_workspace, target, options) {
188
+ // Path mode requires a non-empty path; an empty string would produce
189
+ // `.../source/list/{ws}/` which the backend can't route. The type
190
+ // signature does not (and cannot) encode non-empty at compile time.
191
+ if (target.path !== undefined && target.path !== '') {
192
+ const query = this.buildQueryParams({ inner: options?.inner });
193
+ const encodedPath = encodeURIComponent(target.path);
194
+ return `/api/v1/files/source/list/${os_workspace}/${encodedPath}${query ? `?${query}` : ''}`;
195
+ }
196
+ if (target.entity_id !== undefined && target.entity_id !== '') {
197
+ const query = this.buildQueryParams({ entity_id: target.entity_id, inner: options?.inner });
198
+ return `/api/v1/files/source/list/${os_workspace}${query ? `?${query}` : ''}`;
199
+ }
200
+ throw new Error('peekSource: target must include a non-empty `path` or `entity_id`.');
201
+ }
202
+ async bulkExportSourceSubtree(os_workspace, body) {
203
+ return this.osAPIClient.fetchData({
204
+ endpoint: `/api/v1/files/source/export/${os_workspace}`,
205
+ method: 'POST',
206
+ body,
207
+ headers: { 'Content-Type': 'application/json' },
208
+ });
209
+ }
210
+ }
211
+ /**
212
+ * Parse a non-2xx response from `uploadFromUrl` into an `UploadFromUrlError`
213
+ * carrying the API's `{ detail: { error_code, message } }` envelope when present.
214
+ * Falls back gracefully when the body isn't JSON (e.g. nginx 502 page).
215
+ */
216
+ async function parseUploadFromUrlError(response) {
217
+ let code;
218
+ let detailMessage;
219
+ try {
220
+ const parsed = (await response.json());
221
+ const detail = parsed?.detail;
222
+ if (detail && typeof detail === 'object') {
223
+ const obj = detail;
224
+ if (typeof obj.error_code === 'string')
225
+ code = obj.error_code;
226
+ if (typeof obj.message === 'string')
227
+ detailMessage = obj.message;
228
+ }
229
+ else if (typeof detail === 'string') {
230
+ detailMessage = detail;
231
+ }
232
+ }
233
+ catch {
234
+ // Non-JSON body — leave code/detailMessage undefined.
235
+ }
236
+ const error = new Error(detailMessage ?? `Upload from URL failed: ${String(response.status)}`);
237
+ error.status = response.status;
238
+ if (code !== undefined)
239
+ error.code = code;
240
+ if (detailMessage !== undefined)
241
+ error.detailMessage = detailMessage;
242
+ return error;
164
243
  }
165
244
  //# sourceMappingURL=FilesAPIImpl.js.map