@lark-apaas/dataloom 0.1.3-alpha.3 → 0.1.3-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -47,16 +47,12 @@ import { createClient } from '@lark-apaas/dataloom';
47
47
  ```ts
48
48
  import { createClient } from '@lark-apaas/dataloom';
49
49
 
50
- const client = createClient(
51
- 'https://example.com',
52
- 'dataloom-key',
53
- {
54
- global: {
55
- brandName: 'miaoda',
56
- appId: 'app_xxx',
57
- },
50
+ const client = createClient({
51
+ global: {
52
+ brandName: 'miaoda',
53
+ appId: 'app_xxx',
58
54
  },
59
- );
55
+ });
60
56
  ```
61
57
 
62
58
  创建完成后,可以通过以下入口访问能力:
@@ -70,19 +66,16 @@ const client = createClient(
70
66
  ### `createClient(...)`
71
67
 
72
68
  ```ts
73
- createClient(
74
- dataloomUrl: string,
75
- dataloomKey: string,
76
- options?: DataloomClientOptions,
77
- )
69
+ createClient(options?: DataloomClientOptions)
78
70
  ```
79
71
 
72
+ storage 网关前缀由 `options.global.appId` 自动拼接为
73
+ `/app/${appId}/__runtime__/api/v1/storage`,浏览器自动携带 session cookie 完成鉴权。
74
+
80
75
  #### 入参
81
76
 
82
77
  | 参数 | 类型 | 必填 | 说明 |
83
78
  | --- | --- | --- | --- |
84
- | `dataloomUrl` | `string` | 是 | Dataloom 服务地址 |
85
- | `dataloomKey` | `string` | 是 | 访问 Dataloom 的 key |
86
79
  | `options` | `DataloomClientOptions` | 否 | 初始化配置 |
87
80
 
88
81
  #### 返回
@@ -9,8 +9,6 @@ import type { OnRequestErrorType } from './storage/libs/types';
9
9
  * An isomorphic Javascript client for interacting with Dataloom service and storage.
10
10
  */
11
11
  export default class DataloomClient {
12
- protected dataloomUrl: string;
13
- protected dataloomKey: string;
14
12
  service: DataloomService;
15
13
  storage: StorageClient;
16
14
  protected storageUrl: string;
@@ -20,11 +18,10 @@ export default class DataloomClient {
20
18
  protected headers: Record<string, string>;
21
19
  /**
22
20
  * Create a new client for use in the browser.
23
- * @param dataloomUrl The unique Dataloom URL which is supplied when you create a new project.
24
- * @param dataloomKey The unique Dataloom Key which is supplied when you create a new project.
21
+ * @param options.global.appId 业务 appId;storage 网关前缀由此拼接。
25
22
  * @param options.global.fetch A custom fetch implementation.
26
23
  * @param options.global.headers Any additional headers to send with each network request.
27
24
  */
28
- constructor(dataloomUrl: string, dataloomKey: string, options?: DataloomClientOptions);
25
+ constructor(options?: DataloomClientOptions);
29
26
  }
30
27
  //# sourceMappingURL=DataloomClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataloomClient.d.ts","sourceRoot":"","sources":["../src/DataloomClient.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,eAAe,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAK1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IAmB/B,SAAS,CAAC,WAAW,EAAE,MAAM;IAC7B,SAAS,CAAC,WAAW,EAAE,MAAM;IAnB/B,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,aAAa,CAAC;IAEvB,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACxB,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACpC,SAAS,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAE9D,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1C;;;;;;OAMG;gBAES,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EAC7B,OAAO,CAAC,EAAE,qBAAqB;CAqDlC"}
1
+ {"version":3,"file":"DataloomClient.d.ts","sourceRoot":"","sources":["../src/DataloomClient.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,eAAe,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAK1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAS/D;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,aAAa,CAAC;IAEvB,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACxB,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACpC,SAAS,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAE9D,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1C;;;;;OAKG;gBACS,OAAO,CAAC,EAAE,qBAAqB;CA6C5C"}
@@ -2,19 +2,17 @@ import RateLimiter from "./RateLimiter.js";
2
2
  import service from "./service/index.js";
3
3
  import { StorageClient } from "./storage/index.js";
4
4
  import { DEFAULT_GLOBAL_OPTIONS } from "./utils/constants.js";
5
- import { fetchWithAuth } from "./utils/fetch.js";
6
- import { applySettingDefaults, stripTrailingSlash } from "./utils/helpers.js";
5
+ import { withCredentialsFetch } from "./utils/fetch.js";
6
+ import { applySettingDefaults } from "./utils/helpers.js";
7
7
  import { reportDataloomException } from "./utils/slardar.js";
8
+ const buildStorageUrl = (appId)=>`/app/${appId}/__runtime__/api/v1/storage`;
8
9
  class DataloomClient {
9
- constructor(dataloomUrl, dataloomKey, options){
10
- this.dataloomUrl = dataloomUrl;
11
- this.dataloomKey = dataloomKey;
12
- const normalizedDataloomUrl = stripTrailingSlash(dataloomUrl);
13
- this.storageUrl = `${normalizedDataloomUrl}/storage`;
10
+ constructor(options){
14
11
  const DEFAULTS = {
15
12
  global: DEFAULT_GLOBAL_OPTIONS
16
13
  };
17
14
  const settings = applySettingDefaults(options ?? {}, DEFAULTS);
15
+ this.storageUrl = buildStorageUrl(settings.global.appId);
18
16
  this.headers = settings.global.headers ?? {};
19
17
  this.onRequestError = (error)=>{
20
18
  reportDataloomException(error, {
@@ -25,7 +23,7 @@ class DataloomClient {
25
23
  if (settings.global.onError) settings.global.onError(error, this);
26
24
  };
27
25
  if (settings.global.requestRateLimit && settings.global.requestRateLimit > 0) this.rateLimiter = new RateLimiter(settings.global.requestRateLimit);
28
- this.fetch = fetchWithAuth(dataloomKey, this.rateLimiter, settings.global.fetch);
26
+ this.fetch = withCredentialsFetch(this.rateLimiter, settings.global.fetch);
29
27
  this.service = new service({
30
28
  accountServices: settings.global.accountServices
31
29
  });
package/lib/index.d.ts CHANGED
@@ -4,6 +4,8 @@ export { default as DataloomClient } from './DataloomClient';
4
4
  export type { DataloomClientOptions } from './utils/types';
5
5
  /**
6
6
  * Creates a new Dataloom Client.
7
+ *
8
+ * @param options 客户端配置;`options.global.appId` 决定 storage 网关前缀。
7
9
  */
8
- export declare const createClient: (dataloomUrl: string, dataloomKey: string, options?: DataloomClientOptions) => DataloomClient;
10
+ export declare const createClient: (options?: DataloomClientOptions) => DataloomClient;
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,YAAY,GACvB,aAAa,MAAM,EACnB,aAAa,MAAM,EACnB,UAAU,qBAAqB,KAC9B,cAEF,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D;;;;GAIG;AACH,eAAO,MAAM,YAAY,GACvB,UAAU,qBAAqB,KAC9B,cAEF,CAAC"}
package/lib/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import DataloomClient from "./DataloomClient.js";
2
- const createClient = (dataloomUrl, dataloomKey, options)=>new DataloomClient(dataloomUrl, dataloomKey, options);
2
+ const createClient = (options)=>new DataloomClient(options);
3
3
  export { DataloomClient, createClient };
@@ -1,16 +1,18 @@
1
- import type { AccountServicesInjection, SessionServiceShape, UserServiceShape } from './types';
1
+ import type { AccountServicesInjection } from './types';
2
2
  export interface DataloomServiceOptions {
3
3
  accountServices?: AccountServicesInjection;
4
4
  }
5
5
  /**
6
6
  * @deprecated Service 实现已迁移到 @lark-apaas/auth-sdk。
7
+ * dataloom v0.2.x 仅保留壳层做兼容(实例由 client-toolkit 在创建时注入),
8
+ * v0.3.0 计划移除。
7
9
  */
8
10
  export default class DataloomService {
9
11
  /** @deprecated 见 DataloomService 注释 */
10
- readonly user: UserServiceShape;
12
+ readonly user: unknown;
11
13
  /** @deprecated 见 DataloomService 注释 */
12
- readonly session: SessionServiceShape;
14
+ readonly session: unknown;
13
15
  constructor(options: DataloomServiceOptions);
14
16
  }
15
- export type { AccountServicesInjection, SessionServiceShape, UserServiceShape };
17
+ export type { AccountServicesInjection };
16
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,sBAAsB;IACrC,eAAe,CAAC,EAAE,wBAAwB,CAAC;CAC5C;AAwCD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;gBAE1B,OAAO,EAAE,sBAAsB;CAU5C;AAED,YAAY,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAExD,MAAM,WAAW,sBAAsB;IACrC,eAAe,CAAC,EAAE,wBAAwB,CAAC;CAC5C;AAwCD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAEd,OAAO,EAAE,sBAAsB;CAU5C;AAED,YAAY,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- const MIGRATION_HINT = "[dataloom] service.user / service.session has moved to @lark-apaas/auth-sdk\nUse `authClient` from @lark-apaas/client-toolkit/auth (or @lark-apaas/auth-sdk), e.g.:\n import { authClient } from '@lark-apaas/client-toolkit/auth';\n await authClient.user.search({ name: '张三' });\nIf you really need to keep using dataloom.service.*, ensure client-toolkit injects accountServices when constructing DataloomClient.";
1
+ const MIGRATION_HINT = "[dataloom] service.user / service.session has moved to @lark-apaas/auth-sdk in v0.2.0.\nUse `authClient` from @lark-apaas/client-toolkit/auth (or @lark-apaas/auth-sdk), e.g.:\n import { authClient } from '@lark-apaas/client-toolkit/auth';\n await authClient.user.search({ name: '张三' });\nIf you really need to keep using dataloom.service.*, ensure client-toolkit injects accountServices when constructing DataloomClient.";
2
2
  const ALLOWED_REFLECTION_KEYS = new Set([
3
3
  'constructor',
4
4
  'then',
@@ -1,40 +1,13 @@
1
1
  /**
2
- * 用户服务形状契约(结构性 interface,不 import auth-sdk 的具体实现)。
2
+ * 注入到 DataloomService account services 引用。
3
3
  *
4
- * @lark-apaas/auth-sdk 中 `UserService` 的 public 方法对齐;
5
- * 返回值故意用 `unknown` 以避免把 auth-sdk 的领域类型(如 AccountServiceResponse / UserResponse)
6
- * 反向引入 dataloom——dataloom 不关心具体返回结构,只关心"形状"。
7
- */
8
- export interface UserServiceShape {
9
- search(params: {
10
- name: string;
11
- pageSize?: number;
12
- }): Promise<unknown>;
13
- getByIds(ids: string[] | number[]): Promise<unknown>;
14
- }
15
- /**
16
- * 会话服务形状契约(结构性 interface,不 import auth-sdk 的具体实现)。
4
+ * dataloom v0.2.0 起,service.user/session 的实现迁出至 @lark-apaas/auth-sdk
5
+ * 此接口仅定义"形状契约",不 import auth-sdk,依赖方向单向解耦。
17
6
  *
18
- * 与 @lark-apaas/auth-sdk 中 `SessionService` 的 public 方法对齐。
19
- */
20
- export interface SessionServiceShape {
21
- redirectToLogin(options?: {
22
- returnUrl?: string;
23
- newTab?: boolean;
24
- }): unknown;
25
- signOut(): Promise<unknown>;
26
- getUrlWithBizSource(): string;
27
- getUserInfo(): Promise<unknown>;
28
- navigateToUserProfile(options?: {
29
- newTab?: boolean;
30
- }): unknown;
31
- }
32
- /**
33
- * 注入到 DataloomService 的 account services 引用。
34
7
  * 由 client-toolkit 在创建 DataloomClient 时通过 options.global.accountServices 注入。
35
8
  */
36
9
  export interface AccountServicesInjection {
37
- user: UserServiceShape;
38
- session: SessionServiceShape;
10
+ user: unknown;
11
+ session: unknown;
39
12
  }
40
13
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/service/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtD;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC;IAC7E,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,mBAAmB,IAAI,MAAM,CAAC;IAC9B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,qBAAqB,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC;CAChE;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,mBAAmB,CAAC;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/service/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB"}
@@ -8,6 +8,10 @@ export interface StorageClientOptions {
8
8
  onRequestError: (error: OnRequestErrorType) => void;
9
9
  }
10
10
  export declare class StorageClient {
11
+ /**
12
+ * Storage 网关前缀,形如 `/app/${appId}/__runtime__/api/v1/storage`,
13
+ * 浏览器同源 + cookie 鉴权。
14
+ */
11
15
  protected url: string;
12
16
  protected headers: {
13
17
  [key: string]: string;
@@ -1 +1 @@
1
- {"version":3,"file":"StorageClient.d.ts","sourceRoot":"","sources":["../../src/storage/StorageClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,cAAc,MAAM,2BAA2B,CAAC;AAEvD,MAAM,WAAW,oBAAoB;IACnC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACrD;AAED,qBAAa,aAAa;IACxB,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC7C,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IACvB,SAAS,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAClC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;gBAG7D,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAO,EACvC,KAAK,CAAC,EAAE,KAAK,EACb,IAAI,CAAC,EAAE,oBAAoB;IAa7B;;;;OAIG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc;CAWjC"}
1
+ {"version":3,"file":"StorageClient.d.ts","sourceRoot":"","sources":["../../src/storage/StorageClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,cAAc,MAAM,2BAA2B,CAAC;AAEvD,MAAM,WAAW,oBAAoB;IACnC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACrD;AAED,qBAAa,aAAa;IACxB;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC7C,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IACvB,SAAS,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAClC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;gBAG7D,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAO,EACvC,KAAK,CAAC,EAAE,KAAK,EACb,IAAI,CAAC,EAAE,oBAAoB;IAa7B;;;;OAIG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc;CAWjC"}
@@ -178,8 +178,9 @@ export default class StorageFileApi {
178
178
  private _isValidDownloadUrl;
179
179
  /**
180
180
  * Get the filePath from download url with format like
181
- * /spark/app/app_xxxx/runtime/api/v1/storage/object/bucket_xxx/123%2Fimage.png
182
- * or /app/app_xxxx/runtime/api/v1/storage/object/bucket_xxx/123%2Fimage.png
181
+ * /spark/app/app_xxxx/__runtime__/api/v1/storage/object/bucket_xxx/123%2Fimage.png
182
+ * or /app/app_xxxx/__runtime__/api/v1/storage/object/bucket_xxx/123%2Fimage.png
183
+ * (兼容历史 `/runtime/` 形态)
183
184
  */
184
185
  private _retrieveFilePathFromDownloadUrl;
185
186
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"StorageFileApi.d.ts","sourceRoot":"","sources":["../../../src/storage/packages/StorageFileApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StorageFileApi.d.ts","sourceRoot":"","sources":["../../../src/storage/packages/StorageFileApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EAEb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,KAAK,EAA0B,MAAM,eAAe,CAAC;AASnE,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EACR,UAAU,EACV,WAAW,EACX,aAAa,EACb,kBAAkB,EAElB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACf,MAAM,eAAe,CAAC;AAqDvB,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC7C,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IACvB,SAAS,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAClC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;gBAG7D,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAO,EACvC,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,KAAK,EACb,aAAa,CAAC,EAAE,OAAO,EACvB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI;IAWtD;;;;;;OAMG;YACW,cAAc;IAwH5B;;;;;;OAMG;IACG,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,QAAQ,EAClB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CACN;QACE,IAAI,EAAE,cAAc,CAAC;QACrB,KAAK,EAAE,IAAI,CAAC;KACb,GACD;QACE,IAAI,EAAE,IAAI,CAAC;QACX,KAAK,EAAE,YAAY,CAAC;KACrB,CACJ;IACD;;;;;OAKG;IACG,MAAM,CACV,QAAQ,EAAE,QAAQ,EAClB,WAAW,CAAC,EAAE,aAAa,GAC1B,OAAO,CACN;QACE,IAAI,EAAE,cAAc,CAAC;QACrB,KAAK,EAAE,IAAI,CAAC;KACb,GACD;QACE,IAAI,EAAE,IAAI,CAAC;QACX,KAAK,EAAE,YAAY,CAAC;KACrB,CACJ;IA4CD;;;;;OAKG;IACG,UAAU,CACd,QAAQ,EAAE,QAAQ,EAClB,WAAW,CAAC,EAAE,aAAa,GAC1B,OAAO,CACN;QACE,IAAI,EAAE,cAAc,CAAC;QACrB,KAAK,EAAE,IAAI,CAAC;KACb,GACD;QACE,IAAI,EAAE,IAAI,CAAC;QACX,KAAK,EAAE,YAAY,CAAC;KACrB,CACJ;IAQD;;;;;OAKG;IACG,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EACJ,WAAW,GACX,eAAe,GACf,IAAI,GACJ,IAAI,GACJ,QAAQ,GACR,cAAc,CAAC,UAAU,CAAC,GAC1B,eAAe,GACf,MAAM,EACV,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CACN;QACE,IAAI,EAAE,cAAc,CAAC;QACrB,KAAK,EAAE,IAAI,CAAC;KACb,GACD;QACE,IAAI,EAAE,IAAI,CAAC;QACX,KAAK,EAAE,YAAY,CAAC;KACrB,CACJ;IAID;;;;;;;OAOG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,gBAAgB,CAAA;KAAE,GACvE,OAAO,CACN;QACE,IAAI,EAAE;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;QAC5B,KAAK,EAAE,IAAI,CAAC;KACb,GACD;QACE,IAAI,EAAE,IAAI,CAAC;QACX,KAAK,EAAE,YAAY,CAAC;KACrB,CACJ;IA8BD;;;;;;;;;;OAUG;IACG,gBAAgB,CACpB,KAAK,EAAE,MAAM,EAAE,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GACxC,OAAO,CACN;QACE,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;YACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;YACpB,SAAS,EAAE,MAAM,CAAC;SACnB,EAAE,CAAC;QACJ,KAAK,EAAE,IAAI,CAAC;KACb,GACD;QACE,IAAI,EAAE,IAAI,CAAC;QACX,KAAK,EAAE,YAAY,CAAC;KACrB,CACJ;IAmCD;;;;;OAKG;IACG,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,gBAAgB,CAAA;KAAE,GAC1C,OAAO,CACN;QACE,IAAI,EAAE,IAAI,CAAC;QACX,KAAK,EAAE,IAAI,CAAC;KACb,GACD;QACE,IAAI,EAAE,IAAI,CAAC;QACX,KAAK,EAAE,YAAY,CAAC;KACrB,CACJ;IAuDD;;;;OAIG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAClC;QACE,IAAI,EAAE,UAAU,EAAE,CAAC;QACnB,KAAK,EAAE,IAAI,CAAC;KACb,GACD;QACE,IAAI,EAAE,IAAI,CAAC;QACX,KAAK,EAAE,YAAY,CAAC;KACrB,CACJ;IAoCD;;;;OAIG;IACG,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CACrC;QACE,IAAI,EAAE,cAAc,CAAC;QACrB,KAAK,EAAE,IAAI,CAAC;KACb,GACD;QACE,IAAI,EAAE,IAAI,CAAC;QACX,KAAK,EAAE,YAAY,CAAC;KACrB,CACJ;IA6FD;;;;OAIG;IACG,IAAI,CACR,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,aAAa,EACvB,UAAU,CAAC,EAAE,eAAe,GAC3B,OAAO,CACN;QACE,IAAI,EAAE,UAAU,EAAE,CAAC;QACnB,KAAK,EAAE,IAAI,CAAC;KACb,GACD;QACE,IAAI,EAAE,IAAI,CAAC;QACX,KAAK,EAAE,YAAY,CAAC;KACrB,CACJ;IAwCD,+BAA+B,CAAC,QAAQ,EAAE,MAAM;IAMhD,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI1D,QAAQ,CAAC,IAAI,EAAE,MAAM;IAOrB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,mBAAmB;IAM3B;;;;;OAKG;IACH,OAAO,CAAC,gCAAgC;IAsBxC;;OAEG;YACW,qBAAqB;CAyBpC"}
@@ -325,7 +325,7 @@ class StorageFileApi {
325
325
  }
326
326
  }
327
327
  generateDownloadUrlFromFilePath(filePath) {
328
- return `/app/${this.appId}/runtime/api/v1/storage/object/${this.bucketId}/${encodeURIComponent(this._removeEmptyFolders(filePath))}`;
328
+ return `/app/${this.appId}/__runtime__/api/v1/storage/object/${this.bucketId}/${encodeURIComponent(this._removeEmptyFolders(filePath))}`;
329
329
  }
330
330
  encodeMetadata(metadata) {
331
331
  return JSON.stringify(metadata);
@@ -343,7 +343,7 @@ class StorageFileApi {
343
343
  return path.replace(/^\/|\/$/g, '').replace(/\/+/g, '/');
344
344
  }
345
345
  _isValidDownloadUrl(url) {
346
- return /^(\/spark)?\/app\/app_[\w]+\/runtime\/api\/v1\/storage\/object\//.test(url);
346
+ return /^(\/spark)?\/app\/app_[\w]+\/(__runtime__|runtime)\/api\/v1\/storage\/object\//.test(url);
347
347
  }
348
348
  _retrieveFilePathFromDownloadUrl(url) {
349
349
  if (!this._isValidDownloadUrl(url)) return url;
@@ -359,7 +359,7 @@ class StorageFileApi {
359
359
  return '';
360
360
  }
361
361
  async _copyWithinVolcEngine(url) {
362
- const res = await post(this.fetch, `${this.url}/runtime/app/${this.appId}/object/${this.bucketId}/copy`, {
362
+ const res = await post(this.fetch, `${this.url}/object/${this.bucketId}/copy`, {
363
363
  source: {
364
364
  type: 'externalTOS',
365
365
  externalURL: url
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/storage/utils/logger.ts"],"names":[],"mappings":"AAAA,KAAK,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9D,KAAK,SAAS,GAAG;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,QAAQ,SAAS,EAAE,gBAAmB,SAoBhE,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,SAAS,MAAM,EACf,UAAU;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC3D,gBAAmB,SA0BpB,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/storage/utils/logger.ts"],"names":[],"mappings":"AAAA,KAAK,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9D,KAAK,SAAS,GAAG;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,QAAQ,SAAS,EAAE,gBAAmB,SA+BhE,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,SAAS,MAAM,EACf,UAAU;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC3D,gBAAmB,SA0BpB,CAAC"}
@@ -1,12 +1,16 @@
1
1
  const logRequest = (params, psmName = 'Storage')=>{
2
2
  const { traceId, url, method, body } = params;
3
- const decodedParams = Array.from(new URL(url).searchParams.entries()).filter(([key])=>![
4
- 'count',
5
- 'tx',
6
- 'missing',
7
- 'resolution',
8
- 'column'
9
- ].includes(key)).map(([key, value])=>`${key}=${value}`);
3
+ const base = 'undefined' != typeof window && window.location?.origin ? window.location.origin : 'http://localhost';
4
+ let decodedParams = [];
5
+ try {
6
+ decodedParams = Array.from(new URL(url, base).searchParams.entries()).filter(([key])=>![
7
+ 'count',
8
+ 'tx',
9
+ 'missing',
10
+ 'resolution',
11
+ 'column'
12
+ ].includes(key)).map(([key, value])=>`${key}=${value}`);
13
+ } catch {}
10
14
  console.log(`[Dataloom][${psmName}][Request]`, 'trace id:', traceId, 'method:', method, 'params:', decodedParams.join(','), 'body:', body);
11
15
  };
12
16
  const logResponse = (traceId, response, psmName = 'Storage')=>{
@@ -1,3 +1,7 @@
1
+ /**
2
+ * `X-Suda-Csrf-Token`(CSRF 防护)由调用方在初始化 client 时通过
3
+ * `options.global.headers` 注入,避免本包反向依赖上游的 `getCsrfToken`。
4
+ */
1
5
  export declare const DEFAULT_HEADERS: Record<string, string>;
2
6
  export declare const DEFAULT_GLOBAL_OPTIONS: {
3
7
  headers: Record<string, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAyCA,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIlD,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;CAIlC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAkBA;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGlD,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;CAIlC,CAAC"}
@@ -2,27 +2,8 @@ import { isBrowser } from "./helpers.js";
2
2
  import { version } from "./version.js";
3
3
  let JS_ENV = '';
4
4
  JS_ENV = 'undefined' != typeof Deno ? 'deno' : 'undefined' != typeof document ? 'web' : 'undefined' != typeof navigator && 'ReactNative' === navigator.product ? 'react-native' : 'node';
5
- const getToken = ()=>{
6
- if (!isBrowser()) return '';
7
- const host = window.location.host.replace(/\./g, '-');
8
- const urlParams = new URLSearchParams(window.location.search);
9
- const token = urlParams.get('suda_token');
10
- if (token) {
11
- localStorage.setItem(`suda_token_${host}`, `${token}`);
12
- const url = new URL(window.location.href);
13
- const params = new URLSearchParams(url.search);
14
- params.delete('suda_token');
15
- url.search = params.toString();
16
- history.replaceState(null, '', url.toString());
17
- return token;
18
- }
19
- const localToken = localStorage.getItem(`suda_token_${host}`);
20
- if (localToken) return localToken;
21
- return '';
22
- };
23
5
  const DEFAULT_HEADERS = {
24
6
  'X-Client-Info': `dataloom-js-${JS_ENV}/${version}`,
25
- 'X-Suda-Token': getToken(),
26
7
  'X-Suda-Referer': isBrowser() ? window.location.href : ''
27
8
  };
28
9
  const DEFAULT_GLOBAL_OPTIONS = {
@@ -1,5 +1,11 @@
1
1
  import type RateLimiter from '../RateLimiter';
2
2
  import type { Fetch } from './types';
3
3
  export declare const resolveFetch: (customFetch?: Fetch) => Fetch;
4
- export declare const fetchWithAuth: (dataloomKey: string, rateLimiter?: RateLimiter, customFetch?: Fetch) => Fetch;
4
+ /**
5
+ * 同源 cookie 鉴权下的 fetch 包装:
6
+ * - 默认注入 `credentials: 'include'`,保证浏览器自动携带 session cookie;
7
+ * 若调用方显式传入 `'omit'` / `'same-origin'`,遵循其值(兜底逻辑只在缺省时生效)。
8
+ * - 保留 RateLimiter 的 429 短路能力。
9
+ */
10
+ export declare const withCredentialsFetch: (rateLimiter?: RateLimiter, customFetch?: Fetch) => Fetch;
5
11
  //# sourceMappingURL=fetch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,eAAO,MAAM,YAAY,GAAI,cAAc,KAAK,KAAG,KAQlD,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,aAAa,MAAM,EACnB,cAAc,WAAW,EACzB,cAAc,KAAK,KAClB,KAqBF,CAAC"}
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,eAAO,MAAM,YAAY,GAAI,cAAc,KAAK,KAAG,KAQlD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,cAAc,WAAW,EACzB,cAAc,KAAK,KAClB,KAgBF,CAAC"}
@@ -3,19 +3,18 @@ const resolveFetch = (customFetch)=>{
3
3
  _fetch = customFetch ? customFetch : fetch;
4
4
  return (input, init)=>_fetch(input, init);
5
5
  };
6
- const fetchWithAuth = (dataloomKey, rateLimiter, customFetch)=>{
6
+ const withCredentialsFetch = (rateLimiter, customFetch)=>{
7
7
  const resolvedFetch = resolveFetch(customFetch);
8
8
  return async (input, init)=>{
9
9
  if (rateLimiter && !rateLimiter.canRequest()) return Promise.resolve(new Response(`{"limit": ${rateLimiter.maxRequests}}`, {
10
10
  status: 429,
11
11
  statusText: 'Too Many Requests'
12
12
  }));
13
- const headers = new Headers(init?.headers);
14
- if (!headers.has('apikey') && dataloomKey) headers.set('apikey', dataloomKey);
13
+ const credentials = init?.credentials ?? 'include';
15
14
  return resolvedFetch(input, {
16
15
  ...init,
17
- headers
16
+ credentials
18
17
  });
19
18
  };
20
19
  };
21
- export { fetchWithAuth, resolveFetch };
20
+ export { resolveFetch, withCredentialsFetch };
@@ -1,4 +1,3 @@
1
- import type { AccountServicesInjection } from '../service/types';
2
1
  export type Fetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
3
2
  export type OnError = (error: unknown, instance: unknown) => void;
4
3
  export type DataloomClientOptions = {
@@ -33,13 +32,17 @@ export type DataloomClientOptions = {
33
32
  onError?: OnError;
34
33
  /**
35
34
  * 由 client-toolkit 注入的 account services 引用(user/session)。
35
+ * dataloom v0.2.0 起,service.user/session 的实现迁出至 @lark-apaas/auth-sdk;
36
36
  * 老调用方式 `(await getDataloom()).service.user/session` 仍可用,但底层实例由本字段提供。
37
37
  *
38
38
  * 直接构造 DataloomClient(不通过 toolkit)时若未传此字段,访问 service.user/session 会抛错并指向迁移文档。
39
39
  *
40
40
  * @see docs/superpowers/specs/2026-05-13-auth-sdk-account-services-split-design.md §4.4
41
41
  */
42
- accountServices?: AccountServicesInjection;
42
+ accountServices?: {
43
+ user: unknown;
44
+ session: unknown;
45
+ };
43
46
  };
44
47
  };
45
48
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAEjE,MAAM,MAAM,KAAK,GAAG,CAClB,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,KACf,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB,MAAM,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;AAElE,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE;QACP;;WAEG;QACH,SAAS,EAAE,MAAM,CAAC;QAClB;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,KAAK,CAAC,EAAE,KAAK,CAAC;QACd;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEjC;;WAEG;QACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAE5B;;WAEG;QACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAE1B;;WAEG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;QAElB;;;;;;;WAOG;QACH,eAAe,CAAC,EAAE,wBAAwB,CAAC;KAC5C,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAExF,MAAM,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;AAElE,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE;QACP;;WAEG;QACH,SAAS,EAAE,MAAM,CAAC;QAClB;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,KAAK,CAAC,EAAE,KAAK,CAAC;QACd;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEjC;;WAEG;QACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAE5B;;WAEG;QACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAE1B;;WAEG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;QAElB;;;;;;;;WAQG;QACH,eAAe,CAAC,EAAE;YAChB,IAAI,EAAE,OAAO,CAAC;YACd,OAAO,EAAE,OAAO,CAAC;SAClB,CAAC;KACH,CAAC;CACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lark-apaas/dataloom",
3
- "version": "0.1.3-alpha.3",
3
+ "version": "0.1.3-alpha.5",
4
4
  "types": "./lib/index.d.ts",
5
5
  "main": "./lib/index.js",
6
6
  "files": [