@lark-base-open/base-database-cli 1.3.9 → 1.4.3
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/CHANGELOG.md +75 -0
- package/README.md +119 -15
- package/THIRD_PARTY_LICENSES.json +1662 -0
- package/config-schema.json +64 -3
- package/data/template-hmr-scripts.json +9 -0
- package/data/template-index-html/17e698eef687ece8f1628e3e2c4801da5e7233faa87076b3424acde8df57b825.html +24 -0
- package/dist/agent-tools-guide.d.ts +29 -0
- package/dist/agent-tools-guide.d.ts.map +1 -0
- package/dist/agent-tools-guide.js +169 -0
- package/dist/agent-tools-guide.js.map +1 -0
- package/dist/agent-tools-skill.d.ts +16 -0
- package/dist/agent-tools-skill.d.ts.map +1 -0
- package/dist/agent-tools-skill.js +183 -0
- package/dist/agent-tools-skill.js.map +1 -0
- package/dist/agent-tools.d.ts +20 -0
- package/dist/agent-tools.d.ts.map +1 -0
- package/dist/agent-tools.js +137 -0
- package/dist/agent-tools.js.map +1 -0
- package/dist/ai-functions.d.ts +10 -0
- package/dist/ai-functions.d.ts.map +1 -1
- package/dist/ai-functions.js +264 -212
- package/dist/ai-functions.js.map +1 -1
- package/dist/app-builder/core.d.mts +37 -0
- package/dist/app-builder/core.d.mts.map +1 -0
- package/dist/app-builder/core.mjs +673 -0
- package/dist/app-builder/core.mjs.map +1 -0
- package/dist/app-builder/package.json +1 -0
- package/dist/app-builder/schema.d.ts +4 -0
- package/dist/app-builder/schema.d.ts.map +1 -0
- package/dist/app-builder/schema.js +72 -0
- package/dist/app-builder/schema.js.map +1 -0
- package/dist/archive.d.ts +22 -2
- package/dist/archive.d.ts.map +1 -1
- package/dist/archive.js +311 -74
- package/dist/archive.js.map +1 -1
- package/dist/auth.d.ts +2 -2
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +13 -8
- package/dist/auth.js.map +1 -1
- package/dist/build-server.d.ts +25 -0
- package/dist/build-server.d.ts.map +1 -0
- package/dist/build-server.js +32 -0
- package/dist/build-server.js.map +1 -0
- package/dist/business-update-notice.d.ts +37 -0
- package/dist/business-update-notice.d.ts.map +1 -0
- package/dist/business-update-notice.js +24 -0
- package/dist/business-update-notice.js.map +1 -0
- package/dist/check.d.ts +11 -0
- package/dist/check.d.ts.map +1 -1
- package/dist/check.js +85 -15
- package/dist/check.js.map +1 -1
- package/dist/cloud-build-diagnostic.d.ts +9 -0
- package/dist/cloud-build-diagnostic.d.ts.map +1 -0
- package/dist/cloud-build-diagnostic.js +65 -0
- package/dist/cloud-build-diagnostic.js.map +1 -0
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +41 -11
- package/dist/config.js.map +1 -1
- package/dist/contract-extractor.d.ts +21 -0
- package/dist/contract-extractor.d.ts.map +1 -0
- package/dist/contract-extractor.js +260 -0
- package/dist/contract-extractor.js.map +1 -0
- package/dist/contract-worker.d.ts +12 -0
- package/dist/contract-worker.d.ts.map +1 -0
- package/dist/contract-worker.js +90 -0
- package/dist/contract-worker.js.map +1 -0
- package/dist/dependency-policy.d.ts.map +1 -1
- package/dist/dependency-policy.js +6 -1
- package/dist/dependency-policy.js.map +1 -1
- package/dist/deploy.d.ts +20 -1
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +181 -52
- package/dist/deploy.js.map +1 -1
- package/dist/dev-bootstrap.d.ts +5 -0
- package/dist/dev-bootstrap.d.ts.map +1 -0
- package/dist/dev-bootstrap.js +185 -0
- package/dist/dev-bootstrap.js.map +1 -0
- package/dist/dev-events.d.ts +24 -0
- package/dist/dev-events.d.ts.map +1 -0
- package/dist/dev-events.js +67 -0
- package/dist/dev-events.js.map +1 -0
- package/dist/dev-pairing.d.ts +4 -0
- package/dist/dev-pairing.d.ts.map +1 -0
- package/dist/dev-pairing.js +54 -0
- package/dist/dev-pairing.js.map +1 -0
- package/dist/dev-url.d.ts +4 -0
- package/dist/dev-url.d.ts.map +1 -0
- package/dist/dev-url.js +29 -0
- package/dist/dev-url.js.map +1 -0
- package/dist/dev-vite.d.ts +9 -0
- package/dist/dev-vite.d.ts.map +1 -0
- package/dist/dev-vite.js +237 -0
- package/dist/dev-vite.js.map +1 -0
- package/dist/dev-watch.d.ts +33 -0
- package/dist/dev-watch.d.ts.map +1 -0
- package/dist/dev-watch.js +246 -0
- package/dist/dev-watch.js.map +1 -0
- package/dist/dev.d.ts +24 -0
- package/dist/dev.d.ts.map +1 -0
- package/dist/dev.js +244 -0
- package/dist/dev.js.map +1 -0
- package/dist/development-pairing.generated.d.ts +12 -0
- package/dist/development-pairing.generated.d.ts.map +1 -0
- package/dist/development-pairing.generated.js +13 -0
- package/dist/development-pairing.generated.js.map +1 -0
- package/dist/diagnostic-platforms.d.ts +3 -0
- package/dist/diagnostic-platforms.d.ts.map +1 -0
- package/dist/diagnostic-platforms.js +3 -0
- package/dist/diagnostic-platforms.js.map +1 -0
- package/dist/diagnostic-schema.d.ts +151 -0
- package/dist/diagnostic-schema.d.ts.map +1 -0
- package/dist/diagnostic-schema.js +129 -0
- package/dist/diagnostic-schema.js.map +1 -0
- package/dist/diagnostics.d.ts +78 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +333 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/distribution-commands.d.ts.map +1 -1
- package/dist/distribution-commands.js +6 -2
- package/dist/distribution-commands.js.map +1 -1
- package/dist/distribution-npm.d.ts +2 -2
- package/dist/distribution-npm.d.ts.map +1 -1
- package/dist/distribution-npm.js +14 -1
- package/dist/distribution-npm.js.map +1 -1
- package/dist/environment-variables.d.ts.map +1 -1
- package/dist/environment-variables.js +2 -1
- package/dist/environment-variables.js.map +1 -1
- package/dist/function-contracts.d.ts +40 -0
- package/dist/function-contracts.d.ts.map +1 -0
- package/dist/function-contracts.js +357 -0
- package/dist/function-contracts.js.map +1 -0
- package/dist/function-description.d.ts +11 -4
- package/dist/function-description.d.ts.map +1 -1
- package/dist/function-description.js +22 -12
- package/dist/function-description.js.map +1 -1
- package/dist/function-input-types.d.ts +6 -4
- package/dist/function-input-types.d.ts.map +1 -1
- package/dist/function-input-types.js +97 -135
- package/dist/function-input-types.js.map +1 -1
- package/dist/function-params.d.ts +53 -0
- package/dist/function-params.d.ts.map +1 -0
- package/dist/function-params.js +184 -0
- package/dist/function-params.js.map +1 -0
- package/dist/function-schema.d.ts +14 -0
- package/dist/function-schema.d.ts.map +1 -1
- package/dist/function-schema.js +99 -9
- package/dist/function-schema.js.map +1 -1
- package/dist/init-journal.d.ts +1 -0
- package/dist/init-journal.d.ts.map +1 -1
- package/dist/init-journal.js +21 -7
- package/dist/init-journal.js.map +1 -1
- package/dist/init.d.ts +1 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +55 -5
- package/dist/init.js.map +1 -1
- package/dist/lark-cli-error.d.ts +13 -2
- package/dist/lark-cli-error.d.ts.map +1 -1
- package/dist/lark-cli-error.js +54 -13
- package/dist/lark-cli-error.js.map +1 -1
- package/dist/lark-cli-passthrough.d.ts +9 -0
- package/dist/lark-cli-passthrough.d.ts.map +1 -0
- package/dist/lark-cli-passthrough.js +101 -0
- package/dist/lark-cli-passthrough.js.map +1 -0
- package/dist/lark-cli.d.ts +5 -2
- package/dist/lark-cli.d.ts.map +1 -1
- package/dist/lark-cli.js +96 -29
- package/dist/lark-cli.js.map +1 -1
- package/dist/legacy-function-input-renderer.d.ts +6 -0
- package/dist/legacy-function-input-renderer.d.ts.map +1 -0
- package/dist/legacy-function-input-renderer.js +175 -0
- package/dist/legacy-function-input-renderer.js.map +1 -0
- package/dist/link-guard-check.d.ts +12 -0
- package/dist/link-guard-check.d.ts.map +1 -0
- package/dist/link-guard-check.js +138 -0
- package/dist/link-guard-check.js.map +1 -0
- package/dist/managed-agent-docs.d.ts +14 -0
- package/dist/managed-agent-docs.d.ts.map +1 -0
- package/dist/managed-agent-docs.js +172 -0
- package/dist/managed-agent-docs.js.map +1 -0
- package/dist/mutation-schema.d.ts +6 -0
- package/dist/mutation-schema.d.ts.map +1 -1
- package/dist/mutation-schema.js +6 -0
- package/dist/mutation-schema.js.map +1 -1
- package/dist/mutation.d.ts +4 -1
- package/dist/mutation.d.ts.map +1 -1
- package/dist/mutation.js +17 -2
- package/dist/mutation.js.map +1 -1
- package/dist/npm.d.ts +1 -0
- package/dist/npm.d.ts.map +1 -1
- package/dist/npm.js +28 -0
- package/dist/npm.js.map +1 -1
- package/dist/preview-receipt.d.ts +0 -2
- package/dist/preview-receipt.d.ts.map +1 -1
- package/dist/preview-receipt.js +0 -28
- package/dist/preview-receipt.js.map +1 -1
- package/dist/process.d.ts +1 -0
- package/dist/process.d.ts.map +1 -1
- package/dist/process.js +25 -0
- package/dist/process.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +239 -26
- package/dist/program.js.map +1 -1
- package/dist/project-build.d.ts +2 -1
- package/dist/project-build.d.ts.map +1 -1
- package/dist/project-build.js +53 -16
- package/dist/project-build.js.map +1 -1
- package/dist/project-capabilities.d.ts +8 -0
- package/dist/project-capabilities.d.ts.map +1 -0
- package/dist/project-capabilities.js +47 -0
- package/dist/project-capabilities.js.map +1 -0
- package/dist/project-context.d.ts +66 -0
- package/dist/project-context.d.ts.map +1 -1
- package/dist/project-context.js +68 -6
- package/dist/project-context.js.map +1 -1
- package/dist/project-layout.d.ts +11 -0
- package/dist/project-layout.d.ts.map +1 -1
- package/dist/project-layout.js +63 -1
- package/dist/project-layout.js.map +1 -1
- package/dist/public-exports.d.ts +5 -0
- package/dist/public-exports.d.ts.map +1 -0
- package/dist/public-exports.js +76 -0
- package/dist/public-exports.js.map +1 -0
- package/dist/public-sql-error.d.ts +3 -1
- package/dist/public-sql-error.d.ts.map +1 -1
- package/dist/public-sql-error.js +5 -2
- package/dist/public-sql-error.js.map +1 -1
- package/dist/pull.d.ts +1 -0
- package/dist/pull.d.ts.map +1 -1
- package/dist/pull.js +103 -20
- package/dist/pull.js.map +1 -1
- package/dist/sdk-codegen.d.ts +16 -0
- package/dist/sdk-codegen.d.ts.map +1 -0
- package/dist/sdk-codegen.js +181 -0
- package/dist/sdk-codegen.js.map +1 -0
- package/dist/sdk-install.d.ts +4 -0
- package/dist/sdk-install.d.ts.map +1 -0
- package/dist/sdk-install.js +33 -0
- package/dist/sdk-install.js.map +1 -0
- package/dist/skill-frontmatter.d.ts +5 -0
- package/dist/skill-frontmatter.d.ts.map +1 -0
- package/dist/skill-frontmatter.js +28 -0
- package/dist/skill-frontmatter.js.map +1 -0
- package/dist/skill.d.ts +2 -1
- package/dist/skill.d.ts.map +1 -1
- package/dist/skill.js +18 -12
- package/dist/skill.js.map +1 -1
- package/dist/source-format.d.ts +10 -0
- package/dist/source-format.d.ts.map +1 -0
- package/dist/source-format.js +49 -0
- package/dist/source-format.js.map +1 -0
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/unified-functions.d.ts +22 -0
- package/dist/unified-functions.d.ts.map +1 -0
- package/dist/unified-functions.js +114 -0
- package/dist/unified-functions.js.map +1 -0
- package/dist/updates.d.ts +13 -1
- package/dist/updates.d.ts.map +1 -1
- package/dist/updates.js +65 -29
- package/dist/updates.js.map +1 -1
- package/dist/workspace-fingerprint.d.ts.map +1 -1
- package/dist/workspace-fingerprint.js +5 -0
- package/dist/workspace-fingerprint.js.map +1 -1
- package/package.json +17 -5
- package/skills/lark-base-database/SKILL.md +21 -55
- package/skills/lark-base-database/references/agent-tool-design.md +181 -0
- package/skills/lark-base-database/references/agent-tools.md +101 -0
- package/skills/lark-base-database/references/ai-function.md +80 -186
- package/skills/lark-base-database/references/database-function-limitations.md +12 -4
- package/skills/lark-base-database/references/database-function.md +49 -21
- package/skills/lark-base-database/references/development.md +81 -109
- package/skills/lark-base-database/references/environment-variables.md +2 -2
- package/skills/lark-base-database/references/faas.md +43 -16
- package/skills/lark-base-database/references/file-transfer.md +10 -33
- package/skills/lark-base-database/references/frontend-design-guide.md +1 -1
- package/skills/lark-base-database/references/legacy-ai-function.md +120 -0
- package/skills/lark-base-database/references/legacy-development.md +156 -0
- package/skills/lark-base-database/references/legacy-file-transfer.md +68 -0
- package/skills/lark-base-database/references/mutations.md +38 -29
- package/skills/lark-base-database/references/notifications.md +1 -1
- package/skills/lark-base-database/references/permission-design.md +11 -5
- package/skills/lark-base-database/references/release.md +22 -7
- package/skills/lark-base-database/references/verification.md +55 -16
- package/skills/lark-base-database/references/workspace-migration.md +86 -0
- package/skills/lark-base-database/references/workspace.md +55 -44
- package/templates/database-starter/README.md +2 -0
- package/templates/database-starter/database-functions/README.md +2 -2
- package/templates/database-starter/mutations/README.md +2 -2
- package/templates/database-starter/page/README.md +5 -4
- package/templates/database-starter/page/src/examples/ai-function/TextStreamOperation.tsx +6 -6
- package/templates/database-starter/page/src/lib/attachment-image.tsx +19 -5
- package/templates/database-starter/page/src/lib/database-runtime-attachment.test.ts +124 -5
- package/templates/database-starter/page/src/lib/database-runtime.test.ts +2 -2
- package/templates/database-starter/page/src/lib/database-runtime.ts +77 -13
- package/templates/database-starter/server-functions/scripts/run-tsc.mjs +3 -2
- package/templates/database-starter-v2/README.md +25 -0
- package/templates/database-starter-v2/base-app.config.ts +10 -0
- package/templates/database-starter-v2/database-functions/README.md +1 -0
- package/templates/database-starter-v2/gitignore +6 -0
- package/templates/database-starter-v2/mutations/README.md +1 -0
- package/templates/database-starter-v2/package-lock.json +2239 -0
- package/templates/database-starter-v2/package.json +18 -0
- package/templates/database-starter-v2/page/index.html +2 -0
- package/templates/database-starter-v2/page/package.json +25 -0
- package/templates/database-starter-v2/page/src/App.tsx +12 -0
- package/templates/database-starter-v2/page/src/generated/README.md +1 -0
- package/templates/database-starter-v2/page/src/index.css +1 -0
- package/templates/database-starter-v2/page/src/lib/date-time.ts +61 -0
- package/templates/database-starter-v2/page/src/main.tsx +6 -0
- package/templates/database-starter-v2/page/tsconfig.json +19 -0
- package/templates/database-starter-v2/page/vite.config.ts +3 -0
- package/templates/database-starter-v2/prettierignore +3 -0
- package/templates/database-starter-v2/server/functions/README.md +1 -0
- package/templates/database-starter-v2/server/functions/hello/contract.ts +5 -0
- package/templates/database-starter-v2/server/functions/hello/index.ts +7 -0
- package/templates/database-starter-v2/server/functions/hello/meta.json +1 -0
- package/templates/database-starter-v2/server/generated/runtime-profile.ts +5 -0
- package/templates/database-starter-v2/server/package.json +17 -0
- package/templates/database-starter-v2/server/tsconfig.json +14 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { type DiagnosticPlatform } from './diagnostic-platforms.js';
|
|
2
|
+
import { diagnosticSchema } from './diagnostic-schema.js';
|
|
3
|
+
export type DiagnosticSource = (typeof diagnosticSchema.properties.source.enum)[number];
|
|
4
|
+
export interface DiagnosticRecord {
|
|
5
|
+
schemaVersion: 1;
|
|
6
|
+
event?: 'dev.host_not_connected';
|
|
7
|
+
hint?: 'DEV_HOST_NOT_CONNECTED';
|
|
8
|
+
elapsedMs?: number;
|
|
9
|
+
id: string;
|
|
10
|
+
timestamp: string;
|
|
11
|
+
source: DiagnosticSource;
|
|
12
|
+
evidence: 'local' | 'browser' | 'response' | 'platform-log';
|
|
13
|
+
application: {
|
|
14
|
+
appToken: string | null;
|
|
15
|
+
projectId: string | null;
|
|
16
|
+
};
|
|
17
|
+
environment: {
|
|
18
|
+
project: 'preview' | 'prod' | null;
|
|
19
|
+
platform: DiagnosticPlatform | null;
|
|
20
|
+
lane: string | null;
|
|
21
|
+
};
|
|
22
|
+
artifactVersion: string | null;
|
|
23
|
+
requestId: string | null;
|
|
24
|
+
logid: string | null;
|
|
25
|
+
functionId: string | null;
|
|
26
|
+
sessionId: string | null;
|
|
27
|
+
code: string | null;
|
|
28
|
+
upstreamCode: string | null;
|
|
29
|
+
category: (typeof diagnosticSchema.properties.category.enum)[number];
|
|
30
|
+
message: string;
|
|
31
|
+
retryable: boolean;
|
|
32
|
+
outcome: 'success' | 'partial' | 'failed' | 'unknown';
|
|
33
|
+
durationMs: number | null;
|
|
34
|
+
redaction: {
|
|
35
|
+
policy: 'allowlist-v1';
|
|
36
|
+
omitted: Array<(typeof diagnosticSchema.properties.redaction.properties.omitted.items.enum)[number]>;
|
|
37
|
+
truncated: boolean;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/** Date.parse alone accepts invalid calendar dates and non-RFC3339 syntax. */
|
|
41
|
+
export declare function isRFC3339(value: string): boolean;
|
|
42
|
+
export declare function sanitizeDiagnostic(raw: unknown): DiagnosticRecord;
|
|
43
|
+
export declare function newDiagnostic(source: DiagnosticSource, patch?: Partial<DiagnosticRecord>): DiagnosticRecord;
|
|
44
|
+
export declare function appendDiagnostic(workspace: string, raw: DiagnosticRecord): void;
|
|
45
|
+
export declare function localDiagnostic(workspace: string, source: DiagnosticSource, patch?: Partial<DiagnosticRecord>): void;
|
|
46
|
+
export declare function diagnosticOperation<T>(workspace: string, source: DiagnosticSource, operation: () => Promise<T>): Promise<T>;
|
|
47
|
+
/** Accept agent-browser console --json ({data:{messages:[{text:...}]}}) or explicit v1 records. */
|
|
48
|
+
export declare function importDiagnostics(workspace: string, file: string): {
|
|
49
|
+
imported: number;
|
|
50
|
+
ignored: number;
|
|
51
|
+
};
|
|
52
|
+
export interface DiagnosticQuery {
|
|
53
|
+
since?: string;
|
|
54
|
+
until?: string;
|
|
55
|
+
appToken?: string;
|
|
56
|
+
projectEnv?: 'preview' | 'prod';
|
|
57
|
+
platformEnv?: DiagnosticPlatform;
|
|
58
|
+
}
|
|
59
|
+
export declare function queryDiagnostics(workspace: string, query?: DiagnosticQuery): {
|
|
60
|
+
records: DiagnosticRecord[];
|
|
61
|
+
window: {
|
|
62
|
+
since: string;
|
|
63
|
+
until: string;
|
|
64
|
+
};
|
|
65
|
+
coverage: {
|
|
66
|
+
local: string;
|
|
67
|
+
host: string;
|
|
68
|
+
response: string;
|
|
69
|
+
faas: string;
|
|
70
|
+
};
|
|
71
|
+
warnings: string[];
|
|
72
|
+
truncated: boolean;
|
|
73
|
+
complete: false;
|
|
74
|
+
};
|
|
75
|
+
export declare function diagnosticSummary(report: ReturnType<typeof queryDiagnostics>): string;
|
|
76
|
+
/** A response is evidence, never an invented invocation ID or complete log stream. */
|
|
77
|
+
export declare function responseDiagnostic(workspace: string, appToken: string, response: unknown): void;
|
|
78
|
+
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
import { DIAGNOSTIC_PLATFORMS, } from './diagnostic-platforms.js';
|
|
2
|
+
import { randomUUID } from 'node:crypto';
|
|
3
|
+
import { appendFileSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, statSync, } from 'node:fs';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import { Ajv2020 } from 'ajv/dist/2020.js';
|
|
6
|
+
import { diagnosticSchema } from './diagnostic-schema.js';
|
|
7
|
+
import { readConfig } from './config.js';
|
|
8
|
+
const MAX_FILE = 5 * 1024 * 1024;
|
|
9
|
+
const MAX_RECORD = 16 * 1024;
|
|
10
|
+
const MAX_RECORDS = 10_000;
|
|
11
|
+
/** Date.parse alone accepts invalid calendar dates and non-RFC3339 syntax. */
|
|
12
|
+
export function isRFC3339(value) {
|
|
13
|
+
const match = /^(\d{4})-(\d{2})-(\d{2})[Tt](\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:[Zz]|([+-])(\d{2}):(\d{2}))$/.exec(value);
|
|
14
|
+
if (!match)
|
|
15
|
+
return false;
|
|
16
|
+
const [, y, m, d, h, min, sec, , oh, om] = match;
|
|
17
|
+
const year = Number(y), month = Number(m), day = Number(d);
|
|
18
|
+
const leap = year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
|
|
19
|
+
const days = [31, leap ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
|
20
|
+
return (month >= 1 &&
|
|
21
|
+
month <= 12 &&
|
|
22
|
+
day >= 1 &&
|
|
23
|
+
day <= days[month - 1] &&
|
|
24
|
+
Number(h) < 24 &&
|
|
25
|
+
Number(min) < 60 &&
|
|
26
|
+
Number(sec) < 60 &&
|
|
27
|
+
Number(oh ?? 0) < 24 &&
|
|
28
|
+
Number(om ?? 0) < 60 &&
|
|
29
|
+
Number.isFinite(Date.parse(value)));
|
|
30
|
+
}
|
|
31
|
+
const ajv = new Ajv2020({ removeAdditional: true, strict: false });
|
|
32
|
+
ajv.addFormat('date-time', { type: 'string', validate: isRFC3339 });
|
|
33
|
+
const validate = ajv.compile(diagnosticSchema);
|
|
34
|
+
const omitted = [
|
|
35
|
+
...diagnosticSchema.properties.redaction.properties.omitted.items.enum,
|
|
36
|
+
];
|
|
37
|
+
function safeId(value, length = 128) {
|
|
38
|
+
return typeof value === 'string' &&
|
|
39
|
+
value.length <= length &&
|
|
40
|
+
/^[A-Za-z0-9_.:-]+$/.test(value)
|
|
41
|
+
? value
|
|
42
|
+
: null;
|
|
43
|
+
}
|
|
44
|
+
export function sanitizeDiagnostic(raw) {
|
|
45
|
+
if (Buffer.byteLength(JSON.stringify(raw) ?? '') > MAX_RECORD)
|
|
46
|
+
throw new Error('DIAGNOSTIC_RECORD_TOO_LARGE');
|
|
47
|
+
const value = JSON.parse(JSON.stringify(raw));
|
|
48
|
+
// Public diagnostics do not disclose private platform names. Distribution
|
|
49
|
+
// builds may extend the wire vocabulary; all other names map to internal.
|
|
50
|
+
if (value &&
|
|
51
|
+
typeof value === 'object' &&
|
|
52
|
+
value.environment &&
|
|
53
|
+
typeof value.environment.platform === 'string' &&
|
|
54
|
+
!DIAGNOSTIC_PLATFORMS.includes(value.environment.platform)) {
|
|
55
|
+
value.environment.platform = 'internal';
|
|
56
|
+
}
|
|
57
|
+
if (value && value.outcome === 'unknown')
|
|
58
|
+
value.retryable = false;
|
|
59
|
+
if (!validate(value))
|
|
60
|
+
throw new Error('DIAGNOSTIC_SCHEMA_INVALID (including RFC3339 timestamp)');
|
|
61
|
+
const record = value;
|
|
62
|
+
// Unknown write outcomes never carry a safe-retry promise.
|
|
63
|
+
if (record.outcome === 'unknown')
|
|
64
|
+
record.retryable = false;
|
|
65
|
+
// Free text is never persisted, including caller-provided messages/redaction claims.
|
|
66
|
+
record.message =
|
|
67
|
+
record.source === 'cli.dev' && record.event === 'dev.host_not_connected'
|
|
68
|
+
? 'The host page has not loaded the local development server. Open the CLI link and allow local network access. If it shows the published application, use deploy to publish a Preview.'
|
|
69
|
+
: record.outcome === 'success'
|
|
70
|
+
? '操作完成。'
|
|
71
|
+
: '已采集诊断;请使用错误码及 LogID 定位。';
|
|
72
|
+
for (const key of [
|
|
73
|
+
'id',
|
|
74
|
+
'artifactVersion',
|
|
75
|
+
'requestId',
|
|
76
|
+
'logid',
|
|
77
|
+
'functionId',
|
|
78
|
+
'sessionId',
|
|
79
|
+
'code',
|
|
80
|
+
'upstreamCode',
|
|
81
|
+
]) {
|
|
82
|
+
const clean = safeId(record[key], key === 'artifactVersion' ? 256 : key === 'functionId' ? 64 : 128);
|
|
83
|
+
if (key === 'id')
|
|
84
|
+
record.id = clean ?? randomUUID();
|
|
85
|
+
else
|
|
86
|
+
record[key] = clean;
|
|
87
|
+
}
|
|
88
|
+
record.application.appToken = safeId(record.application.appToken);
|
|
89
|
+
record.application.projectId = safeId(record.application.projectId, 64);
|
|
90
|
+
record.environment.lane = safeId(record.environment.lane);
|
|
91
|
+
record.redaction = { policy: 'allowlist-v1', omitted, truncated: false };
|
|
92
|
+
return record;
|
|
93
|
+
}
|
|
94
|
+
export function newDiagnostic(source, patch = {}) {
|
|
95
|
+
return sanitizeDiagnostic({
|
|
96
|
+
schemaVersion: 1,
|
|
97
|
+
id: randomUUID(),
|
|
98
|
+
timestamp: new Date().toISOString(),
|
|
99
|
+
source,
|
|
100
|
+
evidence: 'local',
|
|
101
|
+
application: { appToken: null, projectId: null },
|
|
102
|
+
environment: { project: null, platform: null, lane: null },
|
|
103
|
+
artifactVersion: null,
|
|
104
|
+
requestId: null,
|
|
105
|
+
logid: null,
|
|
106
|
+
functionId: null,
|
|
107
|
+
sessionId: null,
|
|
108
|
+
code: null,
|
|
109
|
+
upstreamCode: null,
|
|
110
|
+
category: null,
|
|
111
|
+
message: '',
|
|
112
|
+
retryable: false,
|
|
113
|
+
outcome: 'unknown',
|
|
114
|
+
durationMs: null,
|
|
115
|
+
redaction: { policy: 'allowlist-v1', omitted, truncated: false },
|
|
116
|
+
...patch,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
function eventPath(workspace) {
|
|
120
|
+
return join(workspace, '.base-database-cli/state/diagnostics/events.ndjson');
|
|
121
|
+
}
|
|
122
|
+
export function appendDiagnostic(workspace, raw) {
|
|
123
|
+
const record = sanitizeDiagnostic(raw);
|
|
124
|
+
const path = eventPath(workspace);
|
|
125
|
+
const line = JSON.stringify(record) + '\n';
|
|
126
|
+
mkdirSync(join(workspace, '.base-database-cli/state/diagnostics'), {
|
|
127
|
+
recursive: true,
|
|
128
|
+
mode: 0o700,
|
|
129
|
+
});
|
|
130
|
+
if (existsSync(path) &&
|
|
131
|
+
statSync(path).size + Buffer.byteLength(line) > MAX_FILE) {
|
|
132
|
+
rmSync(path + '.2', { force: true });
|
|
133
|
+
if (existsSync(path + '.1'))
|
|
134
|
+
renameSync(path + '.1', path + '.2');
|
|
135
|
+
renameSync(path, path + '.1');
|
|
136
|
+
}
|
|
137
|
+
appendFileSync(path, line, { mode: 0o600 });
|
|
138
|
+
}
|
|
139
|
+
export function localDiagnostic(workspace, source, patch = {}) {
|
|
140
|
+
// Observability must never replace a business outcome or break the command.
|
|
141
|
+
try {
|
|
142
|
+
let application = {
|
|
143
|
+
appToken: null,
|
|
144
|
+
projectId: null,
|
|
145
|
+
};
|
|
146
|
+
let environment = {
|
|
147
|
+
project: null,
|
|
148
|
+
platform: null,
|
|
149
|
+
lane: null,
|
|
150
|
+
};
|
|
151
|
+
try {
|
|
152
|
+
const config = readConfig(workspace);
|
|
153
|
+
application.appToken = config.appToken;
|
|
154
|
+
const platform = config.runtimeProfile ?? 'online';
|
|
155
|
+
environment.platform = DIAGNOSTIC_PLATFORMS.includes(platform)
|
|
156
|
+
? platform
|
|
157
|
+
: 'internal';
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
/* Unknown is explicit. */
|
|
161
|
+
}
|
|
162
|
+
appendDiagnostic(workspace, newDiagnostic(source, { application, environment, ...patch }));
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
/* Best effort local collector. */
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
export async function diagnosticOperation(workspace, source, operation) {
|
|
169
|
+
const start = Date.now();
|
|
170
|
+
try {
|
|
171
|
+
const result = await operation();
|
|
172
|
+
localDiagnostic(workspace, source, {
|
|
173
|
+
outcome: 'success',
|
|
174
|
+
durationMs: Date.now() - start,
|
|
175
|
+
});
|
|
176
|
+
return result;
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
const e = error;
|
|
180
|
+
localDiagnostic(workspace, source, {
|
|
181
|
+
outcome: source === 'cli.deploy' ? 'unknown' : 'failed',
|
|
182
|
+
code: safeId(e?.report?.error?.code) ??
|
|
183
|
+
`${source.slice(4).toUpperCase()}_FAILED`,
|
|
184
|
+
logid: safeId(e?.details?.logId),
|
|
185
|
+
upstreamCode: e?.details?.code === undefined ? null : safeId(String(e.details.code)),
|
|
186
|
+
durationMs: Date.now() - start,
|
|
187
|
+
});
|
|
188
|
+
throw error;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
function recordObject(value) {
|
|
192
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
193
|
+
}
|
|
194
|
+
/** Accept agent-browser console --json ({data:{messages:[{text:...}]}}) or explicit v1 records. */
|
|
195
|
+
export function importDiagnostics(workspace, file) {
|
|
196
|
+
if (statSync(file).size > MAX_FILE)
|
|
197
|
+
throw new Error('DIAGNOSTIC_FILE_TOO_LARGE');
|
|
198
|
+
const parsed = JSON.parse(readFileSync(file, 'utf8'));
|
|
199
|
+
let entries = parsed;
|
|
200
|
+
if (recordObject(parsed))
|
|
201
|
+
entries = parsed.records ??
|
|
202
|
+
(recordObject(parsed.data) ? parsed.data.messages : undefined) ??
|
|
203
|
+
parsed.messages ?? [parsed];
|
|
204
|
+
if (!Array.isArray(entries) || entries.length > MAX_RECORDS)
|
|
205
|
+
throw new Error('DIAGNOSTIC_IMPORT_INVALID');
|
|
206
|
+
const records = [];
|
|
207
|
+
let ignored = 0;
|
|
208
|
+
for (const entry of entries) {
|
|
209
|
+
let candidate = entry;
|
|
210
|
+
if (recordObject(entry) && typeof entry.text === 'string') {
|
|
211
|
+
const prefix = '[base-app:diagnostic]';
|
|
212
|
+
if (!entry.text.startsWith(prefix)) {
|
|
213
|
+
ignored++;
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
216
|
+
if (Buffer.byteLength(entry.text) > MAX_RECORD)
|
|
217
|
+
throw new Error('DIAGNOSTIC_RECORD_TOO_LARGE');
|
|
218
|
+
candidate = JSON.parse(entry.text.slice(prefix.length).trim());
|
|
219
|
+
}
|
|
220
|
+
const record = sanitizeDiagnostic(candidate);
|
|
221
|
+
if (['host', 'sdk.page'].includes(record.source))
|
|
222
|
+
record.evidence = 'browser';
|
|
223
|
+
else if (record.evidence !== 'response' &&
|
|
224
|
+
record.evidence !== 'platform-log')
|
|
225
|
+
throw new Error('DIAGNOSTIC_IMPORT_EVIDENCE_REQUIRED');
|
|
226
|
+
records.push(record);
|
|
227
|
+
}
|
|
228
|
+
// Validate entire import before writing anything. Null app/env remains unassigned.
|
|
229
|
+
for (const record of records)
|
|
230
|
+
appendDiagnostic(workspace, record);
|
|
231
|
+
return { imported: records.length, ignored };
|
|
232
|
+
}
|
|
233
|
+
export function queryDiagnostics(workspace, query = {}) {
|
|
234
|
+
const until = query.until ?? new Date().toISOString();
|
|
235
|
+
if (!isRFC3339(until))
|
|
236
|
+
throw new Error('DIAGNOSTIC_WINDOW_INVALID: RFC3339 required');
|
|
237
|
+
const since = query.since ?? new Date(Date.parse(until) - 86_400_000).toISOString();
|
|
238
|
+
if (!isRFC3339(since) ||
|
|
239
|
+
!isRFC3339(until) ||
|
|
240
|
+
Date.parse(until) < Date.parse(since) ||
|
|
241
|
+
Date.parse(until) - Date.parse(since) > 86_400_000)
|
|
242
|
+
throw new Error('DIAGNOSTIC_WINDOW_INVALID: RFC3339, at most 24 hours');
|
|
243
|
+
if (query.appToken && !safeId(query.appToken))
|
|
244
|
+
throw new Error('DIAGNOSTIC_APP_INVALID');
|
|
245
|
+
const records = [];
|
|
246
|
+
const warnings = ['FAAS_LOG_PROVIDER_UNAVAILABLE'];
|
|
247
|
+
let truncated = false;
|
|
248
|
+
for (const suffix of ['', '.1', '.2']) {
|
|
249
|
+
const path = eventPath(workspace) + suffix;
|
|
250
|
+
if (!existsSync(path))
|
|
251
|
+
continue;
|
|
252
|
+
if (statSync(path).size > MAX_FILE) {
|
|
253
|
+
warnings.push('LOCAL_DIAGNOSTIC_FILE_TOO_LARGE');
|
|
254
|
+
continue;
|
|
255
|
+
}
|
|
256
|
+
for (const line of readFileSync(path, 'utf8').split('\n')) {
|
|
257
|
+
if (!line)
|
|
258
|
+
continue;
|
|
259
|
+
try {
|
|
260
|
+
if (Buffer.byteLength(line) > MAX_RECORD)
|
|
261
|
+
throw new Error();
|
|
262
|
+
const record = sanitizeDiagnostic(JSON.parse(line));
|
|
263
|
+
const date = Date.parse(record.timestamp);
|
|
264
|
+
if (date < Date.parse(since) ||
|
|
265
|
+
date > Date.parse(until) ||
|
|
266
|
+
(query.appToken && record.application.appToken !== query.appToken) ||
|
|
267
|
+
(query.projectEnv &&
|
|
268
|
+
record.environment.project !== query.projectEnv) ||
|
|
269
|
+
(query.platformEnv &&
|
|
270
|
+
record.environment.platform !== query.platformEnv))
|
|
271
|
+
continue;
|
|
272
|
+
if (records.length >= MAX_RECORDS) {
|
|
273
|
+
truncated = true;
|
|
274
|
+
break;
|
|
275
|
+
}
|
|
276
|
+
records.push(record);
|
|
277
|
+
}
|
|
278
|
+
catch {
|
|
279
|
+
warnings.push('LOCAL_DIAGNOSTIC_RECORD_INVALID');
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
return {
|
|
284
|
+
records: records.sort((a, b) => a.timestamp.localeCompare(b.timestamp)),
|
|
285
|
+
window: { since, until },
|
|
286
|
+
coverage: {
|
|
287
|
+
local: records.some((r) => r.evidence === 'local')
|
|
288
|
+
? 'available'
|
|
289
|
+
: 'no-local-records-in-window',
|
|
290
|
+
host: records.some((r) => r.evidence === 'browser')
|
|
291
|
+
? 'imported-partial'
|
|
292
|
+
: 'import-required',
|
|
293
|
+
response: records.some((r) => r.evidence === 'response' || r.logid !== null)
|
|
294
|
+
? 'available-partial'
|
|
295
|
+
: 'unavailable',
|
|
296
|
+
faas: records.some((r) => r.evidence === 'platform-log')
|
|
297
|
+
? 'imported-partial'
|
|
298
|
+
: 'provider-unavailable',
|
|
299
|
+
},
|
|
300
|
+
warnings: [...new Set(warnings)],
|
|
301
|
+
truncated,
|
|
302
|
+
complete: false,
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
export function diagnosticSummary(report) {
|
|
306
|
+
const unknown = report.records.filter((r) => r.outcome === 'unknown').length;
|
|
307
|
+
return `结果未知 ${unknown} 条;先核对副作用,不自动重试。\n诊断记录 ${report.records.length} 条(${report.window.since} 至 ${report.window.until})\n来源覆盖:${JSON.stringify(report.coverage)}\n数据不完整;无记录不代表没有错误。\n`;
|
|
308
|
+
}
|
|
309
|
+
/** A response is evidence, never an invented invocation ID or complete log stream. */
|
|
310
|
+
export function responseDiagnostic(workspace, appToken, response) {
|
|
311
|
+
if (!recordObject(response))
|
|
312
|
+
return;
|
|
313
|
+
const error = recordObject(response.error) ? response.error : {};
|
|
314
|
+
const data = recordObject(response.data) ? response.data : {};
|
|
315
|
+
const headers = recordObject(response.headers) ? response.headers : {};
|
|
316
|
+
const logid = safeId(response.log_id ??
|
|
317
|
+
response.logid ??
|
|
318
|
+
error.log_id ??
|
|
319
|
+
data.log_id ??
|
|
320
|
+
headers['x-tt-logid']);
|
|
321
|
+
if (!logid)
|
|
322
|
+
return;
|
|
323
|
+
const upstream = response.code ?? error.code ?? data.code;
|
|
324
|
+
// HTTP/CLI ok alone is not proof that a Function write succeeded.
|
|
325
|
+
localDiagnostic(workspace, 'devcenter', {
|
|
326
|
+
evidence: 'response',
|
|
327
|
+
application: { appToken: safeId(appToken), projectId: null },
|
|
328
|
+
logid,
|
|
329
|
+
upstreamCode: upstream === undefined ? null : safeId(String(upstream)),
|
|
330
|
+
outcome: 'unknown',
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distribution-commands.d.ts","sourceRoot":"","sources":["../src/distribution-commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"distribution-commands.d.ts","sourceRoot":"","sources":["../src/distribution-commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAK5C,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAiFjE"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { enableBusinessUpdateNotices } from './updates.js';
|
|
1
2
|
import { Option } from 'commander';
|
|
2
3
|
import { installDistribution, updateDistribution } from './install.js';
|
|
3
4
|
import { checkUpdate } from './updates.js';
|
|
4
5
|
export function addDistributionCommands(program) {
|
|
6
|
+
enableBusinessUpdateNotices(program);
|
|
5
7
|
// Let update own --version after its command name; the root --version only
|
|
6
8
|
// prints the installed version when it precedes a subcommand.
|
|
7
9
|
program.enablePositionalOptions();
|
|
@@ -26,7 +28,8 @@ export function addDistributionCommands(program) {
|
|
|
26
28
|
};
|
|
27
29
|
program
|
|
28
30
|
.command('install')
|
|
29
|
-
.
|
|
31
|
+
.option('--json', 'Machine-readable JSON (default)')
|
|
32
|
+
.description('Install this CLI version globally and its developer Skill')
|
|
30
33
|
.addOption(new Option('--target <target>', 'Agent skills location')
|
|
31
34
|
.choices(['codex', 'agents', 'claude', 'all'])
|
|
32
35
|
.default('codex'))
|
|
@@ -44,11 +47,12 @@ export function addDistributionCommands(program) {
|
|
|
44
47
|
program
|
|
45
48
|
.command('check-update')
|
|
46
49
|
.description('Check for updates without installing or prompting')
|
|
47
|
-
.option('--json', '
|
|
50
|
+
.option('--json', 'Machine-readable JSON (default)')
|
|
48
51
|
.option('--skill-dir <directory>', 'Directory of the Skill currently loaded by the Agent')
|
|
49
52
|
.action(async (opts) => printJson(await checkUpdate(opts.skillDir)));
|
|
50
53
|
program
|
|
51
54
|
.command('update')
|
|
55
|
+
.option('--json', 'Machine-readable JSON (default)')
|
|
52
56
|
.description('Upgrade the global CLI and installed user-level Skills')
|
|
53
57
|
.requiredOption('--version <version>', 'Exact version approved by the user')
|
|
54
58
|
.option('--skill-dir <directory>', 'Also update the currently loaded Skill in a custom directory')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distribution-commands.js","sourceRoot":"","sources":["../src/distribution-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,2EAA2E;IAC3E,8DAA8D;IAC9D,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAClC,4EAA4E;IAC5E,4EAA4E;IAC5E,2DAA2D;IAC3D,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CACxC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,CACxC,CAAC;IACF,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAQ,EAAE;QAChD,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACjC,OAAO,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;gBAChC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ;YAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC,CAAC;IACF,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ;QAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,CAAC,KAAc,EAAQ,EAAE;QACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9D,CAAC,CAAC;IACF,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,
|
|
1
|
+
{"version":3,"file":"distribution-commands.js","sourceRoot":"","sources":["../src/distribution-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const cliPackage: {
|
|
2
|
-
name: string;
|
|
3
|
-
version: string;
|
|
2
|
+
readonly name: string;
|
|
3
|
+
readonly version: string;
|
|
4
4
|
};
|
|
5
5
|
export declare function run(command: string, args: string[], timeout?: number): Promise<string>;
|
|
6
6
|
export declare function npmInvocation(args: string[], platform?: NodeJS.Platform): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distribution-npm.d.ts","sourceRoot":"","sources":["../src/distribution-npm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"distribution-npm.d.ts","sourceRoot":"","sources":["../src/distribution-npm.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,UAAU;aACjB,IAAI,EAAI,MAAM;aAGd,OAAO,EAAI,MAAM;CAGtB,CAAC;AAGF,wBAAsB,GAAG,CACvB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,SAAU,GAChB,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAID,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,kBAAmB,GAC1B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAWrC;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCrE;AAED,wBAAsB,SAAS;;;GAO9B;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA2BjE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;cA4BvD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,YAUvE"}
|
package/dist/distribution-npm.js
CHANGED
|
@@ -3,7 +3,20 @@ import { accessSync, constants, existsSync, readFileSync, realpathSync, } from '
|
|
|
3
3
|
import { delimiter, dirname, join, resolve, sep } from 'node:path';
|
|
4
4
|
import { promisify } from 'node:util';
|
|
5
5
|
import { packageRoot } from './assets.js';
|
|
6
|
-
|
|
6
|
+
let packageMetadata;
|
|
7
|
+
function readCliPackage() {
|
|
8
|
+
// Shared commands also load in internal build layouts. Only public install
|
|
9
|
+
// and update operations need the public package metadata at this location.
|
|
10
|
+
return (packageMetadata ??= JSON.parse(readFileSync(join(packageRoot, 'package.json'), 'utf8')));
|
|
11
|
+
}
|
|
12
|
+
export const cliPackage = {
|
|
13
|
+
get name() {
|
|
14
|
+
return readCliPackage().name;
|
|
15
|
+
},
|
|
16
|
+
get version() {
|
|
17
|
+
return readCliPackage().version;
|
|
18
|
+
},
|
|
19
|
+
};
|
|
7
20
|
const execute = promisify(execFile);
|
|
8
21
|
export async function run(command, args, timeout = 120_000) {
|
|
9
22
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distribution-npm.js","sourceRoot":"","sources":["../src/distribution-npm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,
|
|
1
|
+
{"version":3,"file":"distribution-npm.js","sourceRoot":"","sources":["../src/distribution-npm.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-variables.d.ts","sourceRoot":"","sources":["../src/environment-variables.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"environment-variables.d.ts","sourceRoot":"","sources":["../src/environment-variables.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAS1B,eAAO,MAAM,4BAA4B,YAAI,SAAS,EAAE,MAAM,CAAU,CAAC;AACzE,eAAO,MAAM,0BAA0B,YAAI,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAExE,MAAM,MAAM,yBAAyB,GACnC,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC;AAChD,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9C,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,uBAAuB,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,yBAAyB,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,uBAAuB,EAAE,CAAC;IACrC,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,iCAAiC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,yBAAyB,CAAC;IAClC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iCACf,SAAQ,iCAAiC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,uBAAuB,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,6BACf,SAAQ,iCAAiC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,+BACf,SAAQ,iCAAiC;IACzC,IAAI,EAAE,MAAM,CAAC;CACd;AAoQD,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,wBAAwB,CAAC,CAQnC;AAwBD,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,wBAAwB,CAAC,CAqCnC;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,wBAAwB,CAAC,CAkCnC;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,wBAAwB,CAAC,CAenC;AAyRD,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAyB7E;AAED,wBAAsB,8CAA8C,CAClE,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,wCAAwC,CAC5D,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAsB,gCAAgC,CACpD,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOnE"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { serverDirectory } from './project-layout.js';
|
|
1
2
|
import { existsSync, readdirSync, readFileSync } from 'node:fs';
|
|
2
3
|
import { extname, join, relative, resolve } from 'node:path';
|
|
3
4
|
import { readConfig } from './config.js';
|
|
@@ -494,7 +495,7 @@ function scanSourceFileEnvironmentVariables(workspace, file) {
|
|
|
494
495
|
return { names, unsupported };
|
|
495
496
|
}
|
|
496
497
|
export function scanEnvironmentVariableReferences(workspace) {
|
|
497
|
-
const functions = join(resolve(workspace),
|
|
498
|
+
const functions = join(resolve(workspace), serverDirectory(workspace), 'functions');
|
|
498
499
|
if (!existsSync(functions))
|
|
499
500
|
return [];
|
|
500
501
|
const names = new Set();
|