@zuplo/cli 6.69.0 → 6.69.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/api/lib.d.ts +6 -1
- package/dist/common/api/lib.d.ts.map +1 -1
- package/dist/common/api/lib.js.map +1 -1
- package/dist/common/utils/pretty-print-environment-prompt.d.ts.map +1 -1
- package/dist/common/utils/pretty-print-environment-prompt.js +9 -15
- package/dist/common/utils/pretty-print-environment-prompt.js.map +1 -1
- package/dist/common/utils/pretty-print-environment-prompt.test.d.ts +2 -0
- package/dist/common/utils/pretty-print-environment-prompt.test.d.ts.map +1 -0
- package/dist/common/utils/pretty-print-environment-prompt.test.js +44 -0
- package/dist/common/utils/pretty-print-environment-prompt.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@zuplo/core/package.json +1 -1
- package/node_modules/@zuplo/graphql/package.json +1 -1
- package/node_modules/@zuplo/openapi-tools/package.json +1 -1
- package/node_modules/@zuplo/otel/package.json +1 -1
- package/node_modules/@zuplo/runtime/package.json +1 -1
- package/package.json +6 -10
- package/node_modules/as-table/.babelrc +0 -3
- package/node_modules/as-table/.eslintrc +0 -6
- package/node_modules/as-table/.travis.yml +0 -24
- package/node_modules/as-table/CHANGELOG.md +0 -3
- package/node_modules/as-table/LICENSE +0 -21
- package/node_modules/as-table/README.md +0 -113
- package/node_modules/as-table/as-table.d.ts +0 -32
- package/node_modules/as-table/as-table.js +0 -89
- package/node_modules/as-table/build/as-table.js +0 -86
- package/node_modules/as-table/package.json +0 -67
- package/node_modules/as-table/test.js +0 -223
- package/node_modules/printable-characters/.babelrc +0 -3
- package/node_modules/printable-characters/.eslintrc +0 -6
- package/node_modules/printable-characters/.gitattributes +0 -2
- package/node_modules/printable-characters/.npmignore +0 -8
- package/node_modules/printable-characters/.travis.yml +0 -24
- package/node_modules/printable-characters/CHANGELOG.md +0 -1
- package/node_modules/printable-characters/LICENSE +0 -24
- package/node_modules/printable-characters/README.md +0 -88
- package/node_modules/printable-characters/build/printable-characters.js +0 -53
- package/node_modules/printable-characters/package.json +0 -72
- package/node_modules/printable-characters/printable-characters.js +0 -44
- package/node_modules/printable-characters/test.js +0 -77
package/dist/common/api/lib.d.ts
CHANGED
|
@@ -12,6 +12,11 @@ export interface Environment {
|
|
|
12
12
|
projectName: string;
|
|
13
13
|
createdOn: Date | null;
|
|
14
14
|
branchName: string;
|
|
15
|
-
environmentType:
|
|
15
|
+
environmentType:
|
|
16
|
+
| "production"
|
|
17
|
+
| "preview"
|
|
18
|
+
| "development"
|
|
19
|
+
| "working_copy"
|
|
20
|
+
| "working-copy";
|
|
16
21
|
}
|
|
17
22
|
//# sourceMappingURL=lib.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../../src/common/api/lib.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../../src/common/api/lib.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EACX,YAAY,GACZ,SAAS,GACT,aAAa,GACb,cAAc,GACd,cAAc,CAAC;CACpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../src/common/api/lib.ts"],"names":[],"mappings":"","sourcesContent":["export interface Account {\n id: string;\n name: string;\n}\n\nexport interface Project {\n id: string;\n name: string;\n}\n\nexport interface Environment {\n name: string;\n accountName: string;\n projectName: string;\n createdOn: Date | null;\n branchName: string;\n environmentType
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../src/common/api/lib.ts"],"names":[],"mappings":"","sourcesContent":["export interface Account {\n id: string;\n name: string;\n}\n\nexport interface Project {\n id: string;\n name: string;\n}\n\nexport interface Environment {\n name: string;\n accountName: string;\n projectName: string;\n createdOn: Date | null;\n branchName: string;\n environmentType:\n | \"production\"\n | \"preview\"\n | \"development\"\n | \"working_copy\"\n | \"working-copy\";\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pretty-print-environment-prompt.d.ts","sourceRoot":"","sources":["../../../src/common/utils/pretty-print-environment-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,WAAW,EAChB,4BAA4B,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"pretty-print-environment-prompt.d.ts","sourceRoot":"","sources":["../../../src/common/utils/pretty-print-environment-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,WAAW,EAChB,4BAA4B,EAAE,OAAO,UAiBtC"}
|
|
@@ -1,22 +1,16 @@
|
|
|
1
1
|
export function prettyPrintEnvironmentPrompt(env, hasSingleDevelopmentInstance) {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
const environmentType = env.environmentType.toLowerCase();
|
|
3
|
+
const branchName = env.branchName;
|
|
4
|
+
const name = env.name;
|
|
5
5
|
switch (environmentType) {
|
|
6
6
|
case "working-copy":
|
|
7
7
|
case "working_copy":
|
|
8
|
-
case "development":
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
environmentType = "development";
|
|
17
|
-
branchName = "";
|
|
18
|
-
return `${name} (${environmentType})`;
|
|
19
|
-
}
|
|
8
|
+
case "development": {
|
|
9
|
+
const displayName = hasSingleDevelopmentInstance
|
|
10
|
+
? "Default for local development"
|
|
11
|
+
: name;
|
|
12
|
+
return `${displayName} (working-copy)`;
|
|
13
|
+
}
|
|
20
14
|
}
|
|
21
15
|
return `${name} (${environmentType}, ${branchName})`;
|
|
22
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pretty-print-environment-prompt.js","sourceRoot":"","sources":["../../../src/common/utils/pretty-print-environment-prompt.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,4BAA4B,CAC1C,GAAgB,EAChB,4BAAqC;IAErC,
|
|
1
|
+
{"version":3,"file":"pretty-print-environment-prompt.js","sourceRoot":"","sources":["../../../src/common/utils/pretty-print-environment-prompt.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,4BAA4B,CAC1C,GAAgB,EAChB,4BAAqC;IAErC,MAAM,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;IAC1D,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAEtB,QAAQ,eAAe,EAAE,CAAC;QACxB,KAAK,cAAc,CAAC;QACpB,KAAK,cAAc,CAAC;QACpB,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,WAAW,GAAG,4BAA4B;gBAC9C,CAAC,CAAC,+BAA+B;gBACjC,CAAC,CAAC,IAAI,CAAC;YACT,OAAO,GAAG,WAAW,iBAAiB,CAAC;QACzC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,IAAI,KAAK,eAAe,KAAK,UAAU,GAAG,CAAC;AACvD,CAAC","sourcesContent":["import { Environment } from \"../api/lib.js\";\n\nexport function prettyPrintEnvironmentPrompt(\n env: Environment,\n hasSingleDevelopmentInstance: boolean\n) {\n const environmentType = env.environmentType.toLowerCase();\n const branchName = env.branchName;\n const name = env.name;\n\n switch (environmentType) {\n case \"working-copy\":\n case \"working_copy\":\n case \"development\": {\n const displayName = hasSingleDevelopmentInstance\n ? \"Default for local development\"\n : name;\n return `${displayName} (working-copy)`;\n }\n }\n return `${name} (${environmentType}, ${branchName})`;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pretty-print-environment-prompt.test.d.ts","sourceRoot":"","sources":["../../../src/common/utils/pretty-print-environment-prompt.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import assert from "node:assert";
|
|
2
|
+
import { describe, it } from "node:test";
|
|
3
|
+
import { prettyPrintEnvironmentPrompt } from "./pretty-print-environment-prompt.js";
|
|
4
|
+
function makeEnv(environmentType, name = "my-env", branchName = "main") {
|
|
5
|
+
return {
|
|
6
|
+
name,
|
|
7
|
+
accountName: "acme",
|
|
8
|
+
projectName: "my-project",
|
|
9
|
+
createdOn: null,
|
|
10
|
+
branchName,
|
|
11
|
+
environmentType,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
describe("prettyPrintEnvironmentPrompt", () => {
|
|
15
|
+
describe("working-copy variants all display as 'working-copy'", () => {
|
|
16
|
+
const workingCopyVariants = [
|
|
17
|
+
"working_copy",
|
|
18
|
+
"working-copy",
|
|
19
|
+
"development",
|
|
20
|
+
];
|
|
21
|
+
for (const envType of workingCopyVariants) {
|
|
22
|
+
it(`shows working-copy label for environmentType="${envType}" (single instance)`, () => {
|
|
23
|
+
const result = prettyPrintEnvironmentPrompt(makeEnv(envType), true);
|
|
24
|
+
assert.ok(result.includes("(working-copy)"), `Expected "(working-copy)" in "${result}"`);
|
|
25
|
+
assert.ok(!result.includes("(development)"), `Expected no "(development)" in "${result}"`);
|
|
26
|
+
});
|
|
27
|
+
it(`shows working-copy label for environmentType="${envType}" (multiple instances)`, () => {
|
|
28
|
+
const result = prettyPrintEnvironmentPrompt(makeEnv(envType), false);
|
|
29
|
+
assert.ok(result.includes("(working-copy)"), `Expected "(working-copy)" in "${result}"`);
|
|
30
|
+
assert.ok(!result.includes("(development)"), `Expected no "(development)" in "${result}"`);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
it("shows production label unchanged", () => {
|
|
35
|
+
const result = prettyPrintEnvironmentPrompt(makeEnv("production", "prod-env", "main"), false);
|
|
36
|
+
assert.ok(result.includes("production"), `Expected "production" in "${result}"`);
|
|
37
|
+
});
|
|
38
|
+
it("shows preview label unchanged", () => {
|
|
39
|
+
const result = prettyPrintEnvironmentPrompt(makeEnv("preview", "preview-env", "feature-branch"), false);
|
|
40
|
+
assert.ok(result.includes("preview"), `Expected "preview" in "${result}"`);
|
|
41
|
+
assert.ok(result.includes("feature-branch"), `Expected branch name in "${result}"`);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=pretty-print-environment-prompt.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pretty-print-environment-prompt.test.js","sourceRoot":"","sources":["../../../src/common/utils/pretty-print-environment-prompt.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEpF,SAAS,OAAO,CACd,eAA+C,EAC/C,IAAI,GAAG,QAAQ,EACf,UAAU,GAAG,MAAM;IAEnB,OAAO;QACL,IAAI;QACJ,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,YAAY;QACzB,SAAS,EAAE,IAAI;QACf,UAAU;QACV,eAAe;KAChB,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,QAAQ,CAAC,qDAAqD,EAAE,GAAG,EAAE;QACnE,MAAM,mBAAmB,GAAqC;YAC5D,cAAc;YACd,cAAc;YACd,aAAa;SACd,CAAC;QACF,KAAK,MAAM,OAAO,IAAI,mBAAmB,EAAE,CAAC;YAC1C,EAAE,CAAC,iDAAiD,OAAO,qBAAqB,EAAE,GAAG,EAAE;gBACrF,MAAM,MAAM,GAAG,4BAA4B,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;gBAEpE,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EACjC,iCAAiC,MAAM,GAAG,CAC3C,CAAC;gBACF,MAAM,CAAC,EAAE,CACP,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,EACjC,mCAAmC,MAAM,GAAG,CAC7C,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,iDAAiD,OAAO,wBAAwB,EAAE,GAAG,EAAE;gBACxF,MAAM,MAAM,GAAG,4BAA4B,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;gBACrE,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EACjC,iCAAiC,MAAM,GAAG,CAC3C,CAAC;gBACF,MAAM,CAAC,EAAE,CACP,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,EACjC,mCAAmC,MAAM,GAAG,CAC7C,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,4BAA4B,CACzC,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,EACzC,KAAK,CACN,CAAC;QACF,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAC7B,6BAA6B,MAAM,GAAG,CACvC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,MAAM,GAAG,4BAA4B,CACzC,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,gBAAgB,CAAC,EACnD,KAAK,CACN,CAAC;QACF,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,0BAA0B,MAAM,GAAG,CAAC,CAAC;QAC3E,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EACjC,4BAA4B,MAAM,GAAG,CACtC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import assert from \"node:assert\";\nimport { describe, it } from \"node:test\";\nimport { Environment } from \"../api/lib.js\";\nimport { prettyPrintEnvironmentPrompt } from \"./pretty-print-environment-prompt.js\";\n\nfunction makeEnv(\n environmentType: Environment[\"environmentType\"],\n name = \"my-env\",\n branchName = \"main\"\n): Environment {\n return {\n name,\n accountName: \"acme\",\n projectName: \"my-project\",\n createdOn: null,\n branchName,\n environmentType,\n };\n}\n\ndescribe(\"prettyPrintEnvironmentPrompt\", () => {\n describe(\"working-copy variants all display as 'working-copy'\", () => {\n const workingCopyVariants: Environment[\"environmentType\"][] = [\n \"working_copy\",\n \"working-copy\",\n \"development\",\n ];\n for (const envType of workingCopyVariants) {\n it(`shows working-copy label for environmentType=\"${envType}\" (single instance)`, () => {\n const result = prettyPrintEnvironmentPrompt(makeEnv(envType), true);\n // The type label in parentheses must be (working-copy), not (development)\n assert.ok(\n result.includes(\"(working-copy)\"),\n `Expected \"(working-copy)\" in \"${result}\"`\n );\n assert.ok(\n !result.includes(\"(development)\"),\n `Expected no \"(development)\" in \"${result}\"`\n );\n });\n\n it(`shows working-copy label for environmentType=\"${envType}\" (multiple instances)`, () => {\n const result = prettyPrintEnvironmentPrompt(makeEnv(envType), false);\n assert.ok(\n result.includes(\"(working-copy)\"),\n `Expected \"(working-copy)\" in \"${result}\"`\n );\n assert.ok(\n !result.includes(\"(development)\"),\n `Expected no \"(development)\" in \"${result}\"`\n );\n });\n }\n });\n\n it(\"shows production label unchanged\", () => {\n const result = prettyPrintEnvironmentPrompt(\n makeEnv(\"production\", \"prod-env\", \"main\"),\n false\n );\n assert.ok(\n result.includes(\"production\"),\n `Expected \"production\" in \"${result}\"`\n );\n });\n\n it(\"shows preview label unchanged\", () => {\n const result = prettyPrintEnvironmentPrompt(\n makeEnv(\"preview\", \"preview-env\", \"feature-branch\"),\n false\n );\n assert.ok(result.includes(\"preview\"), `Expected \"preview\" in \"${result}\"`);\n assert.ok(\n result.includes(\"feature-branch\"),\n `Expected branch name in \"${result}\"`\n );\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/cli.ts","../src/internal.ts","../src/types.d.ts","../src/__tests__/archive-utils.test.ts","../src/__tests__/import-openapi.test.ts","../src/__tests__/outdated.test.ts","../src/__tests__/populate.test.ts","../src/__tests__/tsconfig-upgrader.test.ts","../src/__tests__/integration/custom-domain.integration.test.ts","../src/__tests__/integration/delete.integration.test.ts","../src/__tests__/integration/deploy.integration.test.ts","../src/__tests__/integration/get-project-param.integration.test.ts","../src/__tests__/integration/jest-mocks-setup.ts","../src/__tests__/integration/jest-setup.ts","../src/__tests__/integration/link.integration.test.ts","../src/__tests__/integration/linked-config-cascade.integration.test.ts","../src/__tests__/integration/list.integration.test.ts","../src/__tests__/integration/test-utils.ts","../src/__tests__/integration/tunnel.integration.test.ts","../src/__tests__/integration/variable.integration.test.ts","../src/__tests__/integration/whoami.integration.test.ts","../src/build/handler.ts","../src/cmds/build.ts","../src/cmds/compile.ts","../src/cmds/delete.ts","../src/cmds/deploy.ts","../src/cmds/dev.ts","../src/cmds/docs.ts","../src/cmds/editor.ts","../src/cmds/init.ts","../src/cmds/link.ts","../src/cmds/list.ts","../src/cmds/login.ts","../src/cmds/test.ts","../src/cmds/whoami.ts","../src/cmds/custom-domain/create.ts","../src/cmds/custom-domain/delete.ts","../src/cmds/custom-domain/index.ts","../src/cmds/custom-domain/list.ts","../src/cmds/custom-domain/update.ts","../src/cmds/mtls-certificates/create.ts","../src/cmds/mtls-certificates/delete.ts","../src/cmds/mtls-certificates/describe.ts","../src/cmds/mtls-certificates/disable.ts","../src/cmds/mtls-certificates/index.ts","../src/cmds/mtls-certificates/list.ts","../src/cmds/mtls-certificates/update.ts","../src/cmds/open-api/convert.ts","../src/cmds/open-api/index.ts","../src/cmds/open-api/merge.ts","../src/cmds/open-api/overlay.ts","../src/cmds/project/create.ts","../src/cmds/project/index.ts","../src/cmds/proxies/create.ts","../src/cmds/proxies/delete.ts","../src/cmds/proxies/describe.ts","../src/cmds/proxies/index.ts","../src/cmds/proxies/update.ts","../src/cmds/source/import-openapi.ts","../src/cmds/source/index.ts","../src/cmds/source/migrate.ts","../src/cmds/source/upgrade.ts","../src/cmds/tunnel/create.ts","../src/cmds/tunnel/delete.ts","../src/cmds/tunnel/describe.ts","../src/cmds/tunnel/index.ts","../src/cmds/tunnel/list.ts","../src/cmds/tunnel/rotate-token.ts","../src/cmds/tunnel/services/describe.ts","../src/cmds/tunnel/services/index.ts","../src/cmds/tunnel/services/update.ts","../src/cmds/variable/create.ts","../src/cmds/variable/index.ts","../src/cmds/variable/update.ts","../src/common/alias.ts","../src/common/args.ts","../src/common/constants.ts","../src/common/handler.ts","../src/common/logger.ts","../src/common/models.ts","../src/common/outdated.ts","../src/common/output.ts","../src/common/populate.ts","../src/common/read-linked-config.test.ts","../src/common/read-linked-config.ts","../src/common/runner.ts","../src/common/settings.ts","../src/common/terminal.test.ts","../src/common/terminal.ts","../src/common/worker-output.ts","../src/common/analytics/lib.ts","../src/common/api/lib.ts","../src/common/machine-id/lib.ts","../src/common/middleware/authentication.ts","../src/common/middleware/get-account-param.ts","../src/common/middleware/get-environment-param.ts","../src/common/middleware/get-project-param.ts","../src/common/middleware/logging.ts","../src/common/middleware/user-configuration.ts","../src/common/middleware/user-identification.ts","../src/common/middleware/validate-fleet.ts","../src/common/upgraders/lib.ts","../src/common/upgraders/package-json-upgrader.ts","../src/common/upgraders/tsconfig-upgrader.ts","../src/common/upgraders/vscode-settings-json-upgrader.ts","../src/common/utils/box.ts","../src/common/utils/branch.ts","../src/common/utils/ports.ts","../src/common/utils/prefixed-output.ts","../src/common/utils/pretty-print-environment-prompt.ts","../src/common/utils/stringify-config.test.ts","../src/common/utils/stringify-config.ts","../src/common/utils/types.ts","../src/common/utils/urls.ts","../src/common/validators/argument-validators.spec.ts","../src/common/validators/argument-validators.ts","../src/common/validators/file-system-validator.ts","../src/common/validators/lib.ts","../src/common/validators/project-name-validator.ts","../src/common/xdg/lib.ts","../src/compile/handler.ts","../src/custom-domain/models.ts","../src/custom-domain/create/handler.ts","../src/custom-domain/delete/handler.ts","../src/custom-domain/list/handler.ts","../src/custom-domain/update/handler.ts","../src/delete/handler.ts","../src/delete/poll-deployment.ts","../src/deploy/archive.local-registry.test.ts","../src/deploy/archive.test.ts","../src/deploy/archive.ts","../src/deploy/environments.ts","../src/deploy/file-upload.ts","../src/deploy/handler.ts","../src/deploy/poll-deployment.ts","../src/dev/handler.ts","../src/docs/handler.ts","../src/editor/handler.ts","../src/editor/e2e/editor.spec.ts","../src/init/handler.ts","../src/link/handler.ts","../src/list/handler.ts","../src/login/login.ts","../src/login/tokens.ts","../src/mtls-certificates/models.ts","../src/mtls-certificates/create/handler.ts","../src/mtls-certificates/delete/handler.ts","../src/mtls-certificates/describe/handler.ts","../src/mtls-certificates/disable/handler.ts","../src/mtls-certificates/list/handler.ts","../src/mtls-certificates/update/handler.ts","../src/open-api/convert/handler.spec.ts","../src/open-api/convert/handler.ts","../src/open-api/merge/handler.spec.ts","../src/open-api/merge/handler.ts","../src/open-api/overlay/handler.spec.ts","../src/open-api/overlay/handler.ts","../src/project/create/handler.ts","../src/proxies/models.ts","../src/proxies/create/handler.ts","../src/proxies/delete/handler.ts","../src/proxies/describe/handler.ts","../src/proxies/update/handler.ts","../src/source/migrate/dev-portal/handler.ts","../src/source/migrate/dev-portal/types.ts","../src/source/update/handler.ts","../src/test/esbuild-config.ts","../src/test/handler.ts","../src/test/invoke-test.ts","../src/test/test-files.test.ts","../src/test/test-files.ts","../src/test/esbuild-plugins/node-test-prep-plugin.ts","../src/tunnel/models.ts","../src/tunnel/create/handler.ts","../src/tunnel/delete/handler.ts","../src/tunnel/delete/poll-teardown-operation.ts","../src/tunnel/describe/handler.ts","../src/tunnel/list/handler.ts","../src/tunnel/rotate-token/handler.ts","../src/tunnel/services/describe/handler.ts","../src/tunnel/services/update/handler.ts","../src/tunnel/services/update/poll-provisioning-operations.ts","../src/variable/models.ts","../src/variable/create/handler.ts","../src/variable/update/handler.ts","../src/whoami/handler.ts"],"version":"5.8.2"}
|
|
1
|
+
{"root":["../src/cli.ts","../src/internal.ts","../src/types.d.ts","../src/__tests__/archive-utils.test.ts","../src/__tests__/import-openapi.test.ts","../src/__tests__/outdated.test.ts","../src/__tests__/populate.test.ts","../src/__tests__/tsconfig-upgrader.test.ts","../src/__tests__/integration/custom-domain.integration.test.ts","../src/__tests__/integration/delete.integration.test.ts","../src/__tests__/integration/deploy.integration.test.ts","../src/__tests__/integration/get-project-param.integration.test.ts","../src/__tests__/integration/jest-mocks-setup.ts","../src/__tests__/integration/jest-setup.ts","../src/__tests__/integration/link.integration.test.ts","../src/__tests__/integration/linked-config-cascade.integration.test.ts","../src/__tests__/integration/list.integration.test.ts","../src/__tests__/integration/test-utils.ts","../src/__tests__/integration/tunnel.integration.test.ts","../src/__tests__/integration/variable.integration.test.ts","../src/__tests__/integration/whoami.integration.test.ts","../src/build/handler.ts","../src/cmds/build.ts","../src/cmds/compile.ts","../src/cmds/delete.ts","../src/cmds/deploy.ts","../src/cmds/dev.ts","../src/cmds/docs.ts","../src/cmds/editor.ts","../src/cmds/init.ts","../src/cmds/link.ts","../src/cmds/list.ts","../src/cmds/login.ts","../src/cmds/test.ts","../src/cmds/whoami.ts","../src/cmds/custom-domain/create.ts","../src/cmds/custom-domain/delete.ts","../src/cmds/custom-domain/index.ts","../src/cmds/custom-domain/list.ts","../src/cmds/custom-domain/update.ts","../src/cmds/mtls-certificates/create.ts","../src/cmds/mtls-certificates/delete.ts","../src/cmds/mtls-certificates/describe.ts","../src/cmds/mtls-certificates/disable.ts","../src/cmds/mtls-certificates/index.ts","../src/cmds/mtls-certificates/list.ts","../src/cmds/mtls-certificates/update.ts","../src/cmds/open-api/convert.ts","../src/cmds/open-api/index.ts","../src/cmds/open-api/merge.ts","../src/cmds/open-api/overlay.ts","../src/cmds/project/create.ts","../src/cmds/project/index.ts","../src/cmds/proxies/create.ts","../src/cmds/proxies/delete.ts","../src/cmds/proxies/describe.ts","../src/cmds/proxies/index.ts","../src/cmds/proxies/update.ts","../src/cmds/source/import-openapi.ts","../src/cmds/source/index.ts","../src/cmds/source/migrate.ts","../src/cmds/source/upgrade.ts","../src/cmds/tunnel/create.ts","../src/cmds/tunnel/delete.ts","../src/cmds/tunnel/describe.ts","../src/cmds/tunnel/index.ts","../src/cmds/tunnel/list.ts","../src/cmds/tunnel/rotate-token.ts","../src/cmds/tunnel/services/describe.ts","../src/cmds/tunnel/services/index.ts","../src/cmds/tunnel/services/update.ts","../src/cmds/variable/create.ts","../src/cmds/variable/index.ts","../src/cmds/variable/update.ts","../src/common/alias.ts","../src/common/args.ts","../src/common/constants.ts","../src/common/handler.ts","../src/common/logger.ts","../src/common/models.ts","../src/common/outdated.ts","../src/common/output.ts","../src/common/populate.ts","../src/common/read-linked-config.test.ts","../src/common/read-linked-config.ts","../src/common/runner.ts","../src/common/settings.ts","../src/common/terminal.test.ts","../src/common/terminal.ts","../src/common/worker-output.ts","../src/common/analytics/lib.ts","../src/common/api/lib.ts","../src/common/machine-id/lib.ts","../src/common/middleware/authentication.ts","../src/common/middleware/get-account-param.ts","../src/common/middleware/get-environment-param.ts","../src/common/middleware/get-project-param.ts","../src/common/middleware/logging.ts","../src/common/middleware/user-configuration.ts","../src/common/middleware/user-identification.ts","../src/common/middleware/validate-fleet.ts","../src/common/upgraders/lib.ts","../src/common/upgraders/package-json-upgrader.ts","../src/common/upgraders/tsconfig-upgrader.ts","../src/common/upgraders/vscode-settings-json-upgrader.ts","../src/common/utils/box.ts","../src/common/utils/branch.ts","../src/common/utils/ports.ts","../src/common/utils/prefixed-output.ts","../src/common/utils/pretty-print-environment-prompt.test.ts","../src/common/utils/pretty-print-environment-prompt.ts","../src/common/utils/stringify-config.test.ts","../src/common/utils/stringify-config.ts","../src/common/utils/types.ts","../src/common/utils/urls.ts","../src/common/validators/argument-validators.spec.ts","../src/common/validators/argument-validators.ts","../src/common/validators/file-system-validator.ts","../src/common/validators/lib.ts","../src/common/validators/project-name-validator.ts","../src/common/xdg/lib.ts","../src/compile/handler.ts","../src/custom-domain/models.ts","../src/custom-domain/create/handler.ts","../src/custom-domain/delete/handler.ts","../src/custom-domain/list/handler.ts","../src/custom-domain/update/handler.ts","../src/delete/handler.ts","../src/delete/poll-deployment.ts","../src/deploy/archive.local-registry.test.ts","../src/deploy/archive.test.ts","../src/deploy/archive.ts","../src/deploy/environments.ts","../src/deploy/file-upload.ts","../src/deploy/handler.ts","../src/deploy/poll-deployment.ts","../src/dev/handler.ts","../src/docs/handler.ts","../src/editor/handler.ts","../src/editor/e2e/editor.spec.ts","../src/init/handler.ts","../src/link/handler.ts","../src/list/handler.ts","../src/login/login.ts","../src/login/tokens.ts","../src/mtls-certificates/models.ts","../src/mtls-certificates/create/handler.ts","../src/mtls-certificates/delete/handler.ts","../src/mtls-certificates/describe/handler.ts","../src/mtls-certificates/disable/handler.ts","../src/mtls-certificates/list/handler.ts","../src/mtls-certificates/update/handler.ts","../src/open-api/convert/handler.spec.ts","../src/open-api/convert/handler.ts","../src/open-api/merge/handler.spec.ts","../src/open-api/merge/handler.ts","../src/open-api/overlay/handler.spec.ts","../src/open-api/overlay/handler.ts","../src/project/create/handler.ts","../src/proxies/models.ts","../src/proxies/create/handler.ts","../src/proxies/delete/handler.ts","../src/proxies/describe/handler.ts","../src/proxies/update/handler.ts","../src/source/migrate/dev-portal/handler.ts","../src/source/migrate/dev-portal/types.ts","../src/source/update/handler.ts","../src/test/esbuild-config.ts","../src/test/handler.ts","../src/test/invoke-test.ts","../src/test/test-files.test.ts","../src/test/test-files.ts","../src/test/esbuild-plugins/node-test-prep-plugin.ts","../src/tunnel/models.ts","../src/tunnel/create/handler.ts","../src/tunnel/delete/handler.ts","../src/tunnel/delete/poll-teardown-operation.ts","../src/tunnel/describe/handler.ts","../src/tunnel/list/handler.ts","../src/tunnel/rotate-token/handler.ts","../src/tunnel/services/describe/handler.ts","../src/tunnel/services/update/handler.ts","../src/tunnel/services/update/poll-provisioning-operations.ts","../src/variable/models.ts","../src/variable/create/handler.ts","../src/variable/update/handler.ts","../src/whoami/handler.ts"],"version":"5.8.2"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zuplo/cli",
|
|
3
|
-
"version": "6.69.
|
|
3
|
+
"version": "6.69.1",
|
|
4
4
|
"repository": "https://github.com/zuplo/zuplo",
|
|
5
5
|
"author": "Zuplo, Inc.",
|
|
6
6
|
"type": "module",
|
|
@@ -29,11 +29,10 @@
|
|
|
29
29
|
"@opentelemetry/api": "1.9.0",
|
|
30
30
|
"@sentry/node": "9.22.0",
|
|
31
31
|
"@swc/core": "1.10.18",
|
|
32
|
-
"@zuplo/core": "6.69.
|
|
32
|
+
"@zuplo/core": "6.69.1",
|
|
33
33
|
"@zuplo/editor": "1.0.20821740935",
|
|
34
|
-
"@zuplo/openapi-tools": "6.69.
|
|
35
|
-
"@zuplo/runtime": "6.69.
|
|
36
|
-
"as-table": "1.0.55",
|
|
34
|
+
"@zuplo/openapi-tools": "6.69.1",
|
|
35
|
+
"@zuplo/runtime": "6.69.1",
|
|
37
36
|
"chalk": "5.4.1",
|
|
38
37
|
"chokidar": "3.5.3",
|
|
39
38
|
"cookie": "1.0.2",
|
|
@@ -64,12 +63,11 @@
|
|
|
64
63
|
"strip-ansi": "7.1.0",
|
|
65
64
|
"tar": "7.5.11",
|
|
66
65
|
"undici": "6.24.1",
|
|
67
|
-
"uuid": "^11.1.0",
|
|
68
66
|
"workerd": "1.20241230.0",
|
|
69
67
|
"yargs": "17.7.2",
|
|
70
68
|
"zod": "^3.24.1",
|
|
71
|
-
"@zuplo/graphql": "6.69.
|
|
72
|
-
"@zuplo/otel": "6.69.
|
|
69
|
+
"@zuplo/graphql": "6.69.1",
|
|
70
|
+
"@zuplo/otel": "6.69.1"
|
|
73
71
|
},
|
|
74
72
|
"bundleDependencies": [
|
|
75
73
|
"@fastify/cors",
|
|
@@ -81,7 +79,6 @@
|
|
|
81
79
|
"@zuplo/editor",
|
|
82
80
|
"@zuplo/openapi-tools",
|
|
83
81
|
"@zuplo/runtime",
|
|
84
|
-
"as-table",
|
|
85
82
|
"chalk",
|
|
86
83
|
"chokidar",
|
|
87
84
|
"cookie",
|
|
@@ -110,7 +107,6 @@
|
|
|
110
107
|
"strip-ansi",
|
|
111
108
|
"tar",
|
|
112
109
|
"undici",
|
|
113
|
-
"uuid",
|
|
114
110
|
"yargs",
|
|
115
111
|
"zod",
|
|
116
112
|
"@zuplo/graphql",
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
language: node_js
|
|
2
|
-
node_js:
|
|
3
|
-
- '8'
|
|
4
|
-
script:
|
|
5
|
-
- set -e
|
|
6
|
-
- npm run test
|
|
7
|
-
- npm run coveralls
|
|
8
|
-
after_success:
|
|
9
|
-
- git config --global user.email "travis@travis-ci.org"
|
|
10
|
-
- git config --global user.name "Travis CI"
|
|
11
|
-
- npm config set git-tag-version=false
|
|
12
|
-
- NPM_VERSION=$(npm version patch)
|
|
13
|
-
- git commit -a -m "${NPM_VERSION:1}" -m "[ci skip]"
|
|
14
|
-
- git remote remove origin
|
|
15
|
-
- git remote add origin https://${GITHUB_TOKEN}@github.com/xpl/as-table.git
|
|
16
|
-
- git push origin HEAD:master
|
|
17
|
-
deploy:
|
|
18
|
-
provider: npm
|
|
19
|
-
email: rocket.mind@gmail.com
|
|
20
|
-
api_key:
|
|
21
|
-
secure: AVxwMF+0BKyQqTvA/9Va+G+1kgsVUKQ08LgzVhqfUv2yGgh5jWY0P5/IFLQocTuC+uef066KqTlvnWR3SWqB+am5EsqiZeFPzOHmtCgxrML2aZK8crjPoY4W/3ZfPy9H00nU9YPNVguXJY7K7MwEFXZ/SVOM1aQvr+omeqMpbnP6Cl4nQ6Hzbc/uAdUHIQG1qzoEbsnkT1EuQ39v1IQLBEoiBDkUj45bmEdETZXd9Nr42BOviFMYjba0vAn8gsuUgMj+bYXeb0XXedmRwBGjtgcNx76RwwmOXPtiC2IQs6FiDmCzZtCcoYuvrWSOFYhfEgptDeeZ080x38uhBxusYq3p0iRF+XyjWlr3w1A5JaHL8FkUfmdBxKAzKhiPTS5yDqteWL8znqGKSPjR+FJNQo5pbS5+C8I67xkcDHvigMWy30lnnjvCV7tPW4FdJ85kx+F1qNmHU0vYqVfDNet4KZofgWoS0cHMYskzl1BwWC+vofwI9/sKatDtFR25ffFg8f17nW+6vTX/n9uSqIFURUI8DhfFlxqG2giDd73KCB0uZ4Fqd0dqnmcp5qg2hQt0sIftDBOmOaX7xKbVdLbGBTAQ82KZmbQCnj0In10gJQf5O/mKD7rr2dMLHi6fvbBE/cEsWy4u/o50UQ7bDzGfXT3tJ+tktxmx1HfSf6eXilA=
|
|
22
|
-
env:
|
|
23
|
-
global:
|
|
24
|
-
secure: KbUFKSmSkbuRb0mQ1kcKL5dA8TdI2SlnZAzyXwRXF/RpK5LDGI31gmPODl7DOKHPzEUTQaIeA/8dI0p8DKM9eTfHyM+pl0kZE+e6wSTdawVlI9FoxLgyBi8hz3UWnA39/YN65uFNvFX+kSYPPeOeV5zJNUaC8CT7Y3HYKR3tGrBaKrQbCnOlXIBsmyFryUHqdapBDmrqrU69Ab1uQca/djS2ztsjYvaP61aEIAKAsUZQRtDk8mP8sUQ5o15CwcpaWp/K1efeb3AuxHjcYOHH0Ci0SZmWpO9ky+wLCPeDqEeV4ZDN4Wfp9yx5dNkV0+ifevSRR5FNS9LHREPML8jz53KzOQQOXK5Fup/SsHPHU0XT6vB2TlG0YwatMSVGY4QIRCMftMkokjFwWsP8oPbuTuVCWhHQouMxRQDPQ/z3Dn/+blASG1lw16S92ksRLc8CCGA8gUZ6CrKh82gFAfyzwAUgLhoFIPEEu2e49W/VdAzeQ1VfAb/TbjwdgX9OR8F8TR48jM3Xpk8BdPANso7t9Rk9vvIw0JxR0Ir+7ufHV1dqCPsGa5KdZjaKrHHs6P/JI+Xl+w4o/6wmn3FhORSKqGuxDJqoQ8cw49Hh5OM0uf9tKfiyUyuFdsApom4vwrOTL+ZRbbD037JH/fzp24C33oaGwOCdyY0Eb/n0LI5ufRg=
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2016 Vitaly Gordon (https://github.com/xpl)
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
# as-table
|
|
2
|
-
|
|
3
|
-
[](https://travis-ci.org/xpl/as-table) [](https://coveralls.io/github/xpl/as-table) [](https://npmjs.com/package/as-table) [](https://david-dm.org/xpl/as-table) [](https://scrutinizer-ci.com/g/xpl/as-table/?branch=master)
|
|
4
|
-
|
|
5
|
-
A simple function that print objects and arrays as ASCII tables. Supports ANSI styling and weird 💩 Unicode emoji symbols (they won't break the layout), thanks to [`printable-characters`](https://github.com/xpl/printable-characters).
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install as-table
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Printing objects
|
|
12
|
-
|
|
13
|
-
```javascript
|
|
14
|
-
asTable = require ('as-table')
|
|
15
|
-
|
|
16
|
-
asTable ([ { foo: true, string: 'abcde', num: 42 },
|
|
17
|
-
{ foo: false, string: 'qwertyuiop', num: 43 },
|
|
18
|
-
{ string: null, num: 44 } ])
|
|
19
|
-
```
|
|
20
|
-
```
|
|
21
|
-
foo string num
|
|
22
|
-
----------------------
|
|
23
|
-
true abcde 42
|
|
24
|
-
false qwertyuiop 43
|
|
25
|
-
null 44
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
## Printing arrays
|
|
29
|
-
|
|
30
|
-
```javascript
|
|
31
|
-
asTable ([['qwe', '123456789', 'zxcvbnm'],
|
|
32
|
-
['qwerty', '12', 'zxcvb'],
|
|
33
|
-
['qwertyiop', '1234567', 'z']])
|
|
34
|
-
```
|
|
35
|
-
```
|
|
36
|
-
qwe 123456789 zxcvbnm
|
|
37
|
-
qwerty 12 zxcvb
|
|
38
|
-
qwertyiop 1234567 z
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Limiting total width by proportionally trimming cells + setting columns delimiter
|
|
42
|
-
|
|
43
|
-
```javascript
|
|
44
|
-
asTable.configure ({ maxTotalWidth: 22, delimiter: ' | ' }) (data)
|
|
45
|
-
```
|
|
46
|
-
```
|
|
47
|
-
qwe | 1234… | zxc…
|
|
48
|
-
qwer… | 12 | zxc…
|
|
49
|
-
qwer… | 1234… | z
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
## Right align
|
|
53
|
-
|
|
54
|
-
```javascript
|
|
55
|
-
asTable.configure ({ right: true }) (data)
|
|
56
|
-
```
|
|
57
|
-
```
|
|
58
|
-
foo bar baz
|
|
59
|
-
-----------------------------
|
|
60
|
-
qwe 123456789 zxcvbnm
|
|
61
|
-
qwerty 12 zxcvb
|
|
62
|
-
qwertyiop 1234567 z
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
## Providing a custom object printer
|
|
66
|
-
|
|
67
|
-
```javascript
|
|
68
|
-
asTable.configure ({ print: x => (typeof x === 'boolean') ? (x ? 'yes' : 'no') : String (x) }) (data)
|
|
69
|
-
```
|
|
70
|
-
```
|
|
71
|
-
foo string num
|
|
72
|
-
--------------------
|
|
73
|
-
yes abcde 42
|
|
74
|
-
no qwertyuiop 43
|
|
75
|
-
null 44
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
The callback also receives a field name (in case of objects) or a column index (in case of arrays):
|
|
79
|
-
|
|
80
|
-
```javascript
|
|
81
|
-
asTable = require ('as-table').configure ({
|
|
82
|
-
print (x, k) {
|
|
83
|
-
if (k === 'timestamp') return new Date (x).toGMTString()
|
|
84
|
-
return String (x)
|
|
85
|
-
}
|
|
86
|
-
})
|
|
87
|
-
|
|
88
|
-
asTable ([ { name: 'A', timestamp: 1561202591572 },
|
|
89
|
-
{ name: 'B', timestamp: 1558524240034 } ])
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## Obtaining a pre-configured function
|
|
93
|
-
|
|
94
|
-
```javascript
|
|
95
|
-
asTable = require ('as-table').configure ({ maxTotalWidth: 25, delimiter: ' | ' })
|
|
96
|
-
|
|
97
|
-
asTable (data)
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
## Customizing the title rendering and the header separator
|
|
101
|
-
|
|
102
|
-
With string coloring by [`ansicolor`](https://github.com/xpl/ansicolor) (just for the demo purposes, any library will fit):
|
|
103
|
-
|
|
104
|
-
```javascript
|
|
105
|
-
asTable = require ('as-table').configure ({ title: x => x.bright, delimiter: ' | '.dim.cyan, dash: '-'.bright.cyan })
|
|
106
|
-
|
|
107
|
-
console.log (
|
|
108
|
-
asTable ([ { foo: true, string: 'abcde', num: 42 },
|
|
109
|
-
{ foo: false, string: 'qwertyuiop'.bgMagenta.green.bright, num: 43 } ])
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
<img width="179" alt="screen shot 2017-07-21 at 23 46 14" src="https://user-images.githubusercontent.com/1707/28481945-dcb0f8d6-6e6e-11e7-896e-dfad40662daf.png">
|
|
113
|
-
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
declare function asTable(rows: any[][]): string
|
|
3
|
-
declare function asTable(objects: {[column: string]: any}[]): string
|
|
4
|
-
declare namespace asTable {
|
|
5
|
-
interface Config<T> {
|
|
6
|
-
maxTotalWidth: number
|
|
7
|
-
minColumnWidths?: number[]
|
|
8
|
-
delimiter?: string
|
|
9
|
-
dash: string
|
|
10
|
-
right: boolean
|
|
11
|
-
print(value: T, key?: string | number): string
|
|
12
|
-
title(value: string): string
|
|
13
|
-
}
|
|
14
|
-
type OmitPrint<T> = Pick<T, Exclude<keyof T, 'print'>> & {print: undefined}
|
|
15
|
-
type ValidValueType<O, T> = {
|
|
16
|
-
[P in keyof O]: T;
|
|
17
|
-
}
|
|
18
|
-
interface Formatter<T> extends Readonly<Config<T>> {
|
|
19
|
-
(rows: T[][]): string
|
|
20
|
-
<O extends ValidValueType<O, T>>(objects: O[]): string
|
|
21
|
-
configure(cfg: Partial<OmitPrint<Config<any>>>): Formatter<T>
|
|
22
|
-
configure<T>(cfg: Partial<Config<T>>): Formatter<T>
|
|
23
|
-
}
|
|
24
|
-
function configure<T = any>(cfg: Partial<Config<T>>): Formatter<T>
|
|
25
|
-
const maxTotalWidth: number
|
|
26
|
-
const print: StringConstructor
|
|
27
|
-
const title: StringConstructor
|
|
28
|
-
const dash: '-'
|
|
29
|
-
const right: false
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export = asTable
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const O = Object
|
|
4
|
-
, { first, strlen } = require ('printable-characters') // handles ANSI codes and invisible characters
|
|
5
|
-
, limit = (s, n) => (first (s, n - 1) + '…')
|
|
6
|
-
|
|
7
|
-
const asColumns = (rows, cfg_) => {
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
zip = (arrs, f) => arrs.reduce ((a, b) => b.map ((b, i) => [...a[i] || [], b]), []).map (args => f (...args)),
|
|
12
|
-
|
|
13
|
-
/* Convert cell data to string (converting multiline text to singleline) */
|
|
14
|
-
|
|
15
|
-
cells = rows.map (r => r.map (c => c.replace (/\n/g, '\\n'))),
|
|
16
|
-
|
|
17
|
-
/* Compute column widths (per row) and max widths (per column) */
|
|
18
|
-
|
|
19
|
-
cellWidths = cells.map (r => r.map (strlen)),
|
|
20
|
-
maxWidths = zip (cellWidths, Math.max),
|
|
21
|
-
|
|
22
|
-
/* Default config */
|
|
23
|
-
|
|
24
|
-
cfg = O.assign ({
|
|
25
|
-
delimiter: ' ',
|
|
26
|
-
minColumnWidths: maxWidths.map (x => 0),
|
|
27
|
-
maxTotalWidth: 0 }, cfg_),
|
|
28
|
-
|
|
29
|
-
delimiterLength = strlen (cfg.delimiter),
|
|
30
|
-
|
|
31
|
-
/* Project desired column widths, taking maxTotalWidth and minColumnWidths in account. */
|
|
32
|
-
|
|
33
|
-
totalWidth = maxWidths.reduce ((a, b) => a + b, 0),
|
|
34
|
-
relativeWidths = maxWidths.map (w => w / totalWidth),
|
|
35
|
-
maxTotalWidth = cfg.maxTotalWidth - (delimiterLength * (maxWidths.length - 1)),
|
|
36
|
-
excessWidth = Math.max (0, totalWidth - maxTotalWidth),
|
|
37
|
-
computedWidths = zip ([cfg.minColumnWidths, maxWidths, relativeWidths],
|
|
38
|
-
(min, max, relative) => Math.max (min, Math.floor (max - excessWidth * relative))),
|
|
39
|
-
|
|
40
|
-
/* This is how many symbols we should pad or cut (per column). */
|
|
41
|
-
|
|
42
|
-
restCellWidths = cellWidths.map (widths => zip ([computedWidths, widths], (a, b) => a - b))
|
|
43
|
-
|
|
44
|
-
/* Perform final composition. */
|
|
45
|
-
|
|
46
|
-
return zip ([cells, restCellWidths], (a, b) =>
|
|
47
|
-
zip ([a, b], (str, w) => (w >= 0)
|
|
48
|
-
? (cfg.right ? (' '.repeat (w) + str) : (str + ' '.repeat (w)))
|
|
49
|
-
: (limit (str, strlen (str) + w))).join (cfg.delimiter))
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const asTable = cfg => O.assign (arr => {
|
|
53
|
-
|
|
54
|
-
/* Print arrays */
|
|
55
|
-
|
|
56
|
-
if (arr[0] && Array.isArray (arr[0])) {
|
|
57
|
-
return asColumns (arr.map (r => r.map (
|
|
58
|
-
(c, i) => (c === undefined) ? '' : cfg.print (c, i)
|
|
59
|
-
)
|
|
60
|
-
),
|
|
61
|
-
cfg).join ('\n')
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/* Print objects */
|
|
65
|
-
|
|
66
|
-
const colNames = [...new Set ([].concat (...arr.map (O.keys)))],
|
|
67
|
-
columns = [colNames.map (cfg.title),
|
|
68
|
-
...arr.map (o => colNames.map (
|
|
69
|
-
key => (o[key] === undefined) ? '' : cfg.print (o[key], key)
|
|
70
|
-
)
|
|
71
|
-
)
|
|
72
|
-
],
|
|
73
|
-
lines = asColumns (columns, cfg)
|
|
74
|
-
|
|
75
|
-
return (cfg.dash ? [lines[0], cfg.dash.repeat (strlen (lines[0])), ...lines.slice (1)] : lines).join ('\n')
|
|
76
|
-
|
|
77
|
-
}, cfg, {
|
|
78
|
-
|
|
79
|
-
configure: newConfig => asTable (O.assign ({}, cfg, newConfig)),
|
|
80
|
-
})
|
|
81
|
-
|
|
82
|
-
module.exports = asTable ({
|
|
83
|
-
|
|
84
|
-
maxTotalWidth: Number.MAX_SAFE_INTEGER,
|
|
85
|
-
print: String,
|
|
86
|
-
title: String,
|
|
87
|
-
dash: '-',
|
|
88
|
-
right: false
|
|
89
|
-
})
|