@lark-base-open/base-database-cli 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 (149) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +169 -0
  3. package/changelog/CHANGELOG-0.x.md +103 -0
  4. package/config-schema.json +28 -0
  5. package/dist/agent-guide.d.ts +18 -0
  6. package/dist/agent-guide.d.ts.map +1 -0
  7. package/dist/agent-guide.js +30 -0
  8. package/dist/agent-guide.js.map +1 -0
  9. package/dist/archive.d.ts +16 -0
  10. package/dist/archive.d.ts.map +1 -0
  11. package/dist/archive.js +162 -0
  12. package/dist/archive.js.map +1 -0
  13. package/dist/assets.d.ts +4 -0
  14. package/dist/assets.d.ts.map +1 -0
  15. package/dist/assets.js +6 -0
  16. package/dist/assets.js.map +1 -0
  17. package/dist/auth.d.ts +17 -0
  18. package/dist/auth.d.ts.map +1 -0
  19. package/dist/auth.js +63 -0
  20. package/dist/auth.js.map +1 -0
  21. package/dist/cli.d.ts +3 -0
  22. package/dist/cli.d.ts.map +1 -0
  23. package/dist/cli.js +15 -0
  24. package/dist/cli.js.map +1 -0
  25. package/dist/config.d.ts +5 -0
  26. package/dist/config.d.ts.map +1 -0
  27. package/dist/config.js +50 -0
  28. package/dist/config.js.map +1 -0
  29. package/dist/database-skill.d.ts +22 -0
  30. package/dist/database-skill.d.ts.map +1 -0
  31. package/dist/database-skill.js +135 -0
  32. package/dist/database-skill.js.map +1 -0
  33. package/dist/deploy.d.ts +28 -0
  34. package/dist/deploy.d.ts.map +1 -0
  35. package/dist/deploy.js +476 -0
  36. package/dist/deploy.js.map +1 -0
  37. package/dist/environment.d.ts +12 -0
  38. package/dist/environment.d.ts.map +1 -0
  39. package/dist/environment.js +27 -0
  40. package/dist/environment.js.map +1 -0
  41. package/dist/function-schema.d.ts +3 -0
  42. package/dist/function-schema.d.ts.map +1 -0
  43. package/dist/function-schema.js +310 -0
  44. package/dist/function-schema.js.map +1 -0
  45. package/dist/init.d.ts +77 -0
  46. package/dist/init.d.ts.map +1 -0
  47. package/dist/init.js +418 -0
  48. package/dist/init.js.map +1 -0
  49. package/dist/lark-cli.d.ts +8 -0
  50. package/dist/lark-cli.d.ts.map +1 -0
  51. package/dist/lark-cli.js +228 -0
  52. package/dist/lark-cli.js.map +1 -0
  53. package/dist/npm.d.ts +13 -0
  54. package/dist/npm.d.ts.map +1 -0
  55. package/dist/npm.js +93 -0
  56. package/dist/npm.js.map +1 -0
  57. package/dist/page-title.d.ts +3 -0
  58. package/dist/page-title.d.ts.map +1 -0
  59. package/dist/page-title.js +47 -0
  60. package/dist/page-title.js.map +1 -0
  61. package/dist/preview-receipt.d.ts +23 -0
  62. package/dist/preview-receipt.d.ts.map +1 -0
  63. package/dist/preview-receipt.js +133 -0
  64. package/dist/preview-receipt.js.map +1 -0
  65. package/dist/process.d.ts +17 -0
  66. package/dist/process.d.ts.map +1 -0
  67. package/dist/process.js +53 -0
  68. package/dist/process.js.map +1 -0
  69. package/dist/program.d.ts +12 -0
  70. package/dist/program.d.ts.map +1 -0
  71. package/dist/program.js +204 -0
  72. package/dist/program.js.map +1 -0
  73. package/dist/pull.d.ts +18 -0
  74. package/dist/pull.d.ts.map +1 -0
  75. package/dist/pull.js +324 -0
  76. package/dist/pull.js.map +1 -0
  77. package/dist/skill.d.ts +7 -0
  78. package/dist/skill.d.ts.map +1 -0
  79. package/dist/skill.js +28 -0
  80. package/dist/skill.js.map +1 -0
  81. package/dist/types.d.ts +32 -0
  82. package/dist/types.d.ts.map +1 -0
  83. package/dist/types.js +2 -0
  84. package/dist/types.js.map +1 -0
  85. package/dist/workspace-fingerprint.d.ts +8 -0
  86. package/dist/workspace-fingerprint.d.ts.map +1 -0
  87. package/dist/workspace-fingerprint.js +64 -0
  88. package/dist/workspace-fingerprint.js.map +1 -0
  89. package/package.json +54 -0
  90. package/skills/lark-base-database/SKILL.md +307 -0
  91. package/skills/lark-base-database/references/base-capability-routing.md +81 -0
  92. package/skills/lark-base-database/references/base-sql-unsupported.md +42 -0
  93. package/skills/lark-base-database/references/database-capability-skill.md +24 -0
  94. package/skills/lark-base-database/references/development.md +642 -0
  95. package/skills/lark-base-database/references/file-transfer.md +275 -0
  96. package/skills/lark-base-database/references/permission-design.md +138 -0
  97. package/skills/lark-base-database/references/release.md +81 -0
  98. package/skills/lark-base-database/references/sql-function.md +276 -0
  99. package/skills/lark-base-database/references/style-guide.md +88 -0
  100. package/templates/database-capability/SKILL.md.tmpl +41 -0
  101. package/templates/database-starter/README.md +11 -0
  102. package/templates/database-starter/gitignore +3 -0
  103. package/templates/database-starter/page/.prettierignore +4 -0
  104. package/templates/database-starter/page/.prettierrc.json +7 -0
  105. package/templates/database-starter/page/README.md +29 -0
  106. package/templates/database-starter/page/index.html +24 -0
  107. package/templates/database-starter/page/package-lock.json +2675 -0
  108. package/templates/database-starter/page/package.json +44 -0
  109. package/templates/database-starter/page/public/favicon.png +0 -0
  110. package/templates/database-starter/page/src/App.tsx +18 -0
  111. package/templates/database-starter/page/src/components/UserSelectorEditor/index.tsx +267 -0
  112. package/templates/database-starter/page/src/components/UserSelectorPanel/index.css +32 -0
  113. package/templates/database-starter/page/src/components/UserSelectorPanel/index.test.ts +24 -0
  114. package/templates/database-starter/page/src/components/UserSelectorPanel/index.tsx +478 -0
  115. package/templates/database-starter/page/src/components/UserSelectorPanel/user-search.test.ts +175 -0
  116. package/templates/database-starter/page/src/components/UserSelectorPanel/user-search.ts +201 -0
  117. package/templates/database-starter/page/src/components/database-runtime-ready.tsx +21 -0
  118. package/templates/database-starter/page/src/components/database-user-menu/index.tsx +238 -0
  119. package/templates/database-starter/page/src/components/feedback/page-state.tsx +66 -0
  120. package/templates/database-starter/page/src/components/floating-button/chatbot-entry.test.ts +23 -0
  121. package/templates/database-starter/page/src/components/floating-button/chatbot-entry.tsx +873 -0
  122. package/templates/database-starter/page/src/components/floating-button/index.tsx +196 -0
  123. package/templates/database-starter/page/src/components/floating-button/local-chat-panel.test.ts +25 -0
  124. package/templates/database-starter/page/src/components/floating-button/local-chat-panel.tsx +197 -0
  125. package/templates/database-starter/page/src/components/floating-button/utils/current-user.ts +56 -0
  126. package/templates/database-starter/page/src/components/floating-button/utils/env.ts +18 -0
  127. package/templates/database-starter/page/src/components/floating-button/utils/project-meta.test.ts +79 -0
  128. package/templates/database-starter/page/src/components/floating-button/utils/project-meta.ts +252 -0
  129. package/templates/database-starter/page/src/components/ui/button.tsx +56 -0
  130. package/templates/database-starter/page/src/index.css +67 -0
  131. package/templates/database-starter/page/src/lib/cn.test.ts +9 -0
  132. package/templates/database-starter/page/src/lib/cn.ts +7 -0
  133. package/templates/database-starter/page/src/lib/database-runtime-attachment.test.ts +168 -0
  134. package/templates/database-starter/page/src/lib/database-runtime-context.test.ts +111 -0
  135. package/templates/database-starter/page/src/lib/database-runtime.test.ts +103 -0
  136. package/templates/database-starter/page/src/lib/database-runtime.ts +389 -0
  137. package/templates/database-starter/page/src/main.tsx +34 -0
  138. package/templates/database-starter/page/src/vite-env.d.ts +1 -0
  139. package/templates/database-starter/page/tsconfig.json +23 -0
  140. package/templates/database-starter/page/vite.config.ts +13 -0
  141. package/templates/database-starter/prettierignore +1 -0
  142. package/templates/database-starter/server-functions/.prettierignore +3 -0
  143. package/templates/database-starter/server-functions/.prettierrc.json +7 -0
  144. package/templates/database-starter/server-functions/README.md +11 -0
  145. package/templates/database-starter/server-functions/package-lock.json +1687 -0
  146. package/templates/database-starter/server-functions/package.json +22 -0
  147. package/templates/database-starter/server-functions/scripts/run-tsc.mjs +50 -0
  148. package/templates/database-starter/server-functions/tsconfig.json +20 -0
  149. package/templates/database-starter/sql/README.md +8 -0
package/dist/auth.js ADDED
@@ -0,0 +1,63 @@
1
+ import { ONLINE_RUNTIME_PROFILE } from './environment.js';
2
+ import { resolveLarkCliExecutable, runLarkCli } from './lark-cli.js';
3
+ import { runCommand } from './process.js';
4
+ function isNotConfigured(error) {
5
+ const message = error instanceof Error ? error.message : String(error);
6
+ return /"subtype"\s*:\s*"not_configured"/.test(message);
7
+ }
8
+ export function ensureConfiguration(env, runner = runCommand) {
9
+ const executable = resolveLarkCliExecutable(env);
10
+ try {
11
+ runner(executable, ['config', 'show'], { env, capture: true });
12
+ }
13
+ catch (error) {
14
+ if (!isNotConfigured(error))
15
+ throw error;
16
+ process.stderr.write('lark-cli is not configured for this environment; starting first-time setup...\n');
17
+ runner(executable, ['config', 'init', '--new'], { env });
18
+ }
19
+ }
20
+ export async function login(profile = ONLINE_RUNTIME_PROFILE) {
21
+ const env = await profile.commandEnvironment();
22
+ ensureConfiguration(env);
23
+ runCommand(resolveLarkCliExecutable(env), ['auth', 'login', '--domain', 'base'], { env });
24
+ }
25
+ export async function logout(profile = ONLINE_RUNTIME_PROFILE) {
26
+ const env = await profile.commandEnvironment();
27
+ runCommand(resolveLarkCliExecutable(env), ['auth', 'logout'], { env });
28
+ }
29
+ export async function whoami(profile = ONLINE_RUNTIME_PROFILE) {
30
+ const env = await profile.commandEnvironment();
31
+ return runLarkCli(['auth', 'status', '--verify'], env);
32
+ }
33
+ export async function doctor(profile = ONLINE_RUNTIME_PROFILE) {
34
+ const major = Number(process.versions.node.split('.')[0]);
35
+ if (major < 20)
36
+ throw new Error('Node.js 20 or newer is required');
37
+ const env = await profile.commandEnvironment();
38
+ runCommand(resolveLarkCliExecutable(env), ['config', 'show'], {
39
+ env,
40
+ capture: true,
41
+ });
42
+ const identity = runLarkCli(['auth', 'status', '--verify'], env);
43
+ runLarkCli([
44
+ 'api',
45
+ 'GET',
46
+ '/open-apis/base/v3/sites/list',
47
+ '--params',
48
+ '{"pageSize":1}',
49
+ ], env);
50
+ const identityData = identity.data;
51
+ const user = identityData?.identities?.user;
52
+ return {
53
+ ok: true,
54
+ environment: profile.name,
55
+ node: process.version,
56
+ user: {
57
+ status: user?.status,
58
+ available: user?.available,
59
+ verified: user?.verified,
60
+ },
61
+ };
62
+ }
63
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env node
2
+ import { readFileSync } from 'node:fs';
3
+ import { dirname, join } from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { ONLINE_RUNTIME_PROFILE } from './environment.js';
6
+ import { createBaseDatabaseProgram, runBaseDatabaseProgram, } from './program.js';
7
+ const packageRoot = join(dirname(fileURLToPath(import.meta.url)), '..');
8
+ const packageJson = JSON.parse(readFileSync(join(packageRoot, 'package.json'), 'utf8'));
9
+ runBaseDatabaseProgram(createBaseDatabaseProgram({
10
+ commandName: 'base-database-cli',
11
+ description: 'Build and deploy database applications on Lark Base',
12
+ version: packageJson.version,
13
+ runtimeProfiles: [ONLINE_RUNTIME_PROFILE],
14
+ }));
15
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EACL,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACxE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CACjC,CAAC;AAEzB,sBAAsB,CACpB,yBAAyB,CAAC;IACxB,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE,qDAAqD;IAClE,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,eAAe,EAAE,CAAC,sBAAsB,CAAC;CAC1C,CAAC,CACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { BaseDatabaseConfig } from './types.js';
2
+ export declare const CONFIG_FILE_NAME = "base-database.jsonc";
3
+ export declare function readConfig(workspace?: string): BaseDatabaseConfig;
4
+ export declare function writeConfig(workspace: string, config: BaseDatabaseConfig): string;
5
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAOrD,eAAO,MAAM,gBAAgB,wBAAwB,CAAC;AAEtD,wBAAgB,UAAU,CAAC,SAAS,SAAgB,GAAG,kBAAkB,CA8BxE;AAED,wBAAgB,WAAW,CACzB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,kBAAkB,GACzB,MAAM,CAUR"}
package/dist/config.js ADDED
@@ -0,0 +1,50 @@
1
+ import { readFileSync, writeFileSync } from 'node:fs';
2
+ import { dirname, join, resolve } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import Ajv2020 from 'ajv/dist/2020.js';
5
+ import { parse, printParseErrorCode } from 'jsonc-parser';
6
+ const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), '..');
7
+ const schema = JSON.parse(readFileSync(join(packageRoot, 'config-schema.json'), 'utf8'));
8
+ const validate = new Ajv2020({ allErrors: true }).compile(schema);
9
+ export const CONFIG_FILE_NAME = 'base-database.jsonc';
10
+ export function readConfig(workspace = process.cwd()) {
11
+ const root = resolve(workspace);
12
+ const configPath = join(root, CONFIG_FILE_NAME);
13
+ let source;
14
+ try {
15
+ source = readFileSync(configPath, 'utf8');
16
+ }
17
+ catch (error) {
18
+ if (error instanceof Error && 'code' in error && error.code === 'ENOENT') {
19
+ throw new Error(`Base Database project not found: expected ${configPath}`);
20
+ }
21
+ throw error;
22
+ }
23
+ const errors = [];
24
+ const value = parse(source, errors, { allowTrailingComma: true });
25
+ if (errors.length > 0) {
26
+ const detail = errors
27
+ .map((error) => `${printParseErrorCode(error.error)} at ${error.offset}`)
28
+ .join(', ');
29
+ throw new Error(`Invalid ${configPath}: ${detail}`);
30
+ }
31
+ if (!validate(value)) {
32
+ const detail = validate.errors
33
+ ?.map((error) => `${error.instancePath || '/'} ${error.message}`)
34
+ .join('; ');
35
+ throw new Error(`Invalid ${configPath}: ${detail}`);
36
+ }
37
+ return value;
38
+ }
39
+ export function writeConfig(workspace, config) {
40
+ if (!validate(config)) {
41
+ const detail = validate.errors
42
+ ?.map((error) => `${error.instancePath || '/'} ${error.message}`)
43
+ .join('; ');
44
+ throw new Error(`Cannot write invalid Base Database config: ${detail}`);
45
+ }
46
+ const path = join(resolve(workspace), CONFIG_FILE_NAME);
47
+ writeFileSync(path, `${JSON.stringify(config, null, 2)}\n`);
48
+ return path;
49
+ }
50
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { RuntimeProfile } from './environment.js';
2
+ export declare function databaseSkillName(token: string, environment: string): string;
3
+ export declare function databaseSkillCommandPrefix(profile: RuntimeProfile): string;
4
+ export declare function renderDatabaseSkill(options: {
5
+ appToken: string;
6
+ title: string;
7
+ profile: RuntimeProfile;
8
+ }): string;
9
+ export declare function installDatabaseSkill(options: {
10
+ appToken: string;
11
+ title: string;
12
+ profile: RuntimeProfile;
13
+ directory?: string;
14
+ }): {
15
+ status: "installed" | "updated";
16
+ name: string;
17
+ path: string;
18
+ };
19
+ export declare function discoveryArgs(appToken: string, pageSize: number, pageToken?: string): string[];
20
+ export declare function invocationArgs(appToken: string, functionId: string, params: string): string[];
21
+ export declare function runDatabaseSkillRequest(profile: RuntimeProfile, args: string[]): Promise<import("./types.js").CommandResult>;
22
+ //# sourceMappingURL=database-skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-skill.d.ts","sourceRoot":"","sources":["../src/database-skill.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAQvD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAM5E;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAI1E;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,cAAc,CAAC;CACzB,GAAG,MAAM,CA0BT;AAoCD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;;;;EAwBA;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,EAAE,CAgBV;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,MAAM,EAAE,CAgBV;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,MAAM,EAAE,+CAGf"}
@@ -0,0 +1,135 @@
1
+ import { createHash, randomUUID } from 'node:crypto';
2
+ import { lstatSync, mkdirSync, readFileSync, renameSync, unlinkSync, writeFileSync, } from 'node:fs';
3
+ import { homedir } from 'node:os';
4
+ import { join, resolve } from 'node:path';
5
+ import { packageRoot } from './assets.js';
6
+ import { runLarkCli } from './lark-cli.js';
7
+ function validateAppToken(token) {
8
+ if (!/^[A-Za-z0-9_-]{1,128}$/.test(token))
9
+ throw new Error('Invalid Application token');
10
+ }
11
+ export function databaseSkillName(token, environment) {
12
+ validateAppToken(token);
13
+ return `base-database-${createHash('sha256')
14
+ .update(JSON.stringify([environment, token]))
15
+ .digest('hex')
16
+ .slice(0, 20)}`;
17
+ }
18
+ export function databaseSkillCommandPrefix(profile) {
19
+ if (!profile.deployCommand.endsWith(' deploy'))
20
+ throw new Error('Runtime profile has no CLI command prefix');
21
+ return profile.deployCommand.slice(0, -' deploy'.length);
22
+ }
23
+ export function renderDatabaseSkill(options) {
24
+ const { appToken, profile } = options;
25
+ const name = databaseSkillName(appToken, profile.name);
26
+ if (!/^[a-z][a-z0-9-]*$/.test(profile.name))
27
+ throw new Error('Invalid runtime profile name');
28
+ const title = options.title.replace(/\s+/g, ' ').trim().slice(0, 200) || appToken;
29
+ const values = {
30
+ skill_name: name,
31
+ description_json: JSON.stringify(`当用户希望查询或操作“${title}”应用时使用。通过实时 Function 发现和参数 Schema 使用该应用业务能力;不用于修改源码或部署。应用 ${appToken},环境 ${profile.name}。`),
32
+ app_token: appToken,
33
+ environment: profile.name,
34
+ command_prefix: databaseSkillCommandPrefix(profile),
35
+ managed_marker: `<!-- base-database-managed-skill:${profile.name}:${appToken} -->`,
36
+ };
37
+ return readFileSync(join(packageRoot, 'templates/database-capability/SKILL.md.tmpl'), 'utf8').replace(/\{\{([a-z_]+)\}\}/g, (_, key) => {
38
+ const value = values[key];
39
+ if (value === undefined)
40
+ throw new Error(`Unknown Skill template field: ${key}`);
41
+ return value;
42
+ });
43
+ }
44
+ function fileStat(path) {
45
+ try {
46
+ return lstatSync(path);
47
+ }
48
+ catch (error) {
49
+ if (error.code === 'ENOENT')
50
+ return undefined;
51
+ throw error;
52
+ }
53
+ }
54
+ function assertManagedDirectory(directory, marker) {
55
+ const directoryStat = fileStat(directory);
56
+ if (!directoryStat)
57
+ return false;
58
+ if (!directoryStat.isDirectory() || directoryStat.isSymbolicLink()) {
59
+ throw new Error(`Refusing to replace non-directory or symlink: ${directory}`);
60
+ }
61
+ const path = join(directory, 'SKILL.md');
62
+ const existing = fileStat(path);
63
+ if (!existing) {
64
+ throw new Error(`Skill directory is not managed by Base Database CLI: ${directory}`);
65
+ }
66
+ if (!existing.isFile() ||
67
+ existing.isSymbolicLink() ||
68
+ !readFileSync(path, 'utf8').split('\n').includes(marker)) {
69
+ throw new Error(`Refusing to overwrite an unmanaged Skill: ${path}`);
70
+ }
71
+ return true;
72
+ }
73
+ export function installDatabaseSkill(options) {
74
+ const name = databaseSkillName(options.appToken, options.profile.name);
75
+ const root = resolve(options.directory ??
76
+ join(process.env.CODEX_HOME || join(homedir(), '.codex'), 'skills'));
77
+ const directory = join(root, name);
78
+ const path = join(directory, 'SKILL.md');
79
+ const content = renderDatabaseSkill(options);
80
+ const marker = `<!-- base-database-managed-skill:${options.profile.name}:${options.appToken} -->`;
81
+ const existing = assertManagedDirectory(directory, marker);
82
+ mkdirSync(directory, { recursive: true });
83
+ const temporary = join(directory, `.SKILL-${randomUUID()}.tmp`);
84
+ try {
85
+ writeFileSync(temporary, content, { flag: 'wx', mode: 0o600 });
86
+ renameSync(temporary, path);
87
+ }
88
+ finally {
89
+ if (fileStat(temporary))
90
+ unlinkSync(temporary);
91
+ }
92
+ return {
93
+ status: existing ? 'updated' : 'installed',
94
+ name,
95
+ path,
96
+ };
97
+ }
98
+ export function discoveryArgs(appToken, pageSize, pageToken) {
99
+ validateAppToken(appToken);
100
+ if (!Number.isSafeInteger(pageSize) || pageSize < 1)
101
+ throw new Error('page-size must be a positive integer');
102
+ return [
103
+ 'api',
104
+ 'GET',
105
+ `/open-apis/base/v3/sites/${appToken}/functions`,
106
+ '--params',
107
+ JSON.stringify({
108
+ pageSize,
109
+ ...(pageToken === undefined ? {} : { pageToken }),
110
+ }),
111
+ '--as',
112
+ 'user',
113
+ ];
114
+ }
115
+ export function invocationArgs(appToken, functionId, params) {
116
+ validateAppToken(appToken);
117
+ if (!/^[A-Za-z0-9_-]{1,64}$/.test(functionId))
118
+ throw new Error('Invalid Function ID');
119
+ const value = JSON.parse(params);
120
+ return [
121
+ 'api',
122
+ 'POST',
123
+ `/open-apis/base/v3/sites/${appToken}/invoke_function/${functionId}`,
124
+ '--params',
125
+ '{"env":"prod"}',
126
+ '--data',
127
+ JSON.stringify({ params: value }),
128
+ '--as',
129
+ 'user',
130
+ ];
131
+ }
132
+ export async function runDatabaseSkillRequest(profile, args) {
133
+ return runLarkCli(args, await profile.commandEnvironment());
134
+ }
135
+ //# sourceMappingURL=database-skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-skill.js","sourceRoot":"","sources":["../src/database-skill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { type RuntimeProfile } from './environment.js';
2
+ import { type WorkspaceNpm } from './npm.js';
3
+ import type { BaseDatabaseConfig } from './types.js';
4
+ interface ResolvedBaseBinding {
5
+ names: string[];
6
+ baseToken: string;
7
+ tableIds: string[];
8
+ }
9
+ export declare function collectBaseBinding(config: BaseDatabaseConfig, warn?: (message: string) => void): ResolvedBaseBinding | undefined;
10
+ export declare function deploymentStatus(directory: string, id: string, wait: boolean, runtimeProfile?: RuntimeProfile): Promise<{
11
+ ok: true;
12
+ environment: string;
13
+ appToken: string;
14
+ publishId: string;
15
+ status: unknown;
16
+ baseAppUrl?: string | undefined;
17
+ }>;
18
+ export interface DeployOptions {
19
+ directory: string;
20
+ install: boolean;
21
+ forceInstall?: boolean;
22
+ production: boolean;
23
+ yes: boolean;
24
+ runtimeProfile?: RuntimeProfile;
25
+ }
26
+ export declare function deployProject(options: DeployOptions, suppliedNpm?: WorkspaceNpm): Promise<Record<string, unknown>>;
27
+ export {};
28
+ //# sourceMappingURL=deploy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"AAoBA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,UAAU,CAAC;AAQlB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGrD,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAkBD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,kBAAkB,EAC1B,IAAI,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IACoB,GAC9C,mBAAmB,GAAG,SAAS,CA6DjC;AAsQD,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,EACb,cAAc,GAAE,cAAuC;;;;;;;GAuDxD;AA4FD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,GAAG,EAAE,OAAO,CAAC;IACb,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,aAAa,EACtB,WAAW,CAAC,EAAE,YAAY,oCA6K3B"}