@appthreat/caxa 2.0.7 → 2.0.9

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/build/index.d.mts CHANGED
@@ -1,9 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import fs from "fs-extra";
3
- export default function caxa({ input, output, command, force, exclude, includeNode, stub, identifier, uncompressionMessage, upx, upxArgs, }: {
3
+ /**
4
+ * Get information about the runtime.
5
+ *
6
+ * @returns {Object} Object containing the name and version of the runtime
7
+ */
8
+ export declare function getRuntimeInformation(): any;
9
+ export default function caxa({ input, output, command, metadataFile, force, exclude, includeNode, stub, identifier, uncompressionMessage, upx, upxArgs, }: {
4
10
  input: string;
5
11
  output: string;
6
12
  command: string[];
13
+ metadataFile: string;
7
14
  force?: boolean;
8
15
  exclude?: string[];
9
16
  filter?: fs.CopyFilterSync | fs.CopyFilterAsync;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../source/index.mts"],"names":[],"mappings":";AAKA,OAAO,EAAE,MAAM,UAAU,CAAC;AAsE1B,wBAA8B,IAAI,CAAC,EACjC,KAAK,EACL,MAAM,EACN,OAAO,EACP,KAAY,EACZ,OAAyB,EACzB,WAAkB,EAClB,IAKC,EACD,UAGC,EACD,oBAAoB,EACpB,GAAW,EACX,OAAY,GACb,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,EAAE,CAAC,cAAc,GAAG,EAAE,CAAC,eAAe,CAAC;IAChD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuRhB"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../source/index.mts"],"names":[],"mappings":";AAKA,OAAO,EAAE,MAAM,UAAU,CAAC;AAsE1B;;;;GAIG;AACH,wBAAgB,qBAAqB,QAuGpC;AAED,wBAA8B,IAAI,CAAC,EACjC,KAAK,EACL,MAAM,EACN,OAAO,EACP,YAAqC,EACrC,KAAY,EACZ,OAAyB,EACzB,WAAkB,EAClB,IAKC,EACD,UAGC,EACD,oBAAoB,EACpB,GAAW,EACX,OAAY,GACb,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,EAAE,CAAC,cAAc,GAAG,EAAE,CAAC,eAAe,CAAC;IAChD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2ShB"}
package/build/index.mjs CHANGED
@@ -65,7 +65,117 @@ const defaultExcludes = [
65
65
  "biome.json",
66
66
  "jest.config.js",
67
67
  ];
68
- export default async function caxa({ input, output, command, force = true, exclude = defaultExcludes, includeNode = true, stub = url.fileURLToPath(new URL(`../stubs/stub--${process.platform}--${process.arch}`, import.meta.url)), identifier = path.join(path.basename(path.basename(path.basename(output, ".exe"), ".app"), ".sh"), cryptoRandomString({ length: 10, type: "alphanumeric" }).toLowerCase()), uncompressionMessage, upx = false, upxArgs = [], }) {
68
+ /**
69
+ * Get information about the runtime.
70
+ *
71
+ * @returns {Object} Object containing the name and version of the runtime
72
+ */
73
+ export function getRuntimeInformation() {
74
+ const runtimeInfo = {
75
+ group: undefined,
76
+ name: undefined,
77
+ version: undefined,
78
+ runtime: undefined,
79
+ purl: undefined,
80
+ scope: "required",
81
+ };
82
+ // @ts-ignore
83
+ if (globalThis.Deno?.version?.deno) {
84
+ runtimeInfo.name = "deno";
85
+ runtimeInfo.runtime = "Deno";
86
+ // @ts-ignore
87
+ runtimeInfo.version = globalThis.Deno.version.deno;
88
+ runtimeInfo.purl = `pkg:generic/${runtimeInfo.name}@${runtimeInfo.version}`;
89
+ runtimeInfo["bom-ref"] = runtimeInfo.purl;
90
+ // @ts-ignore
91
+ }
92
+ else if (globalThis.Bun?.version) {
93
+ runtimeInfo.name = "bun";
94
+ runtimeInfo.runtime = "Bun";
95
+ // @ts-ignore
96
+ runtimeInfo.version = globalThis.Bun.version;
97
+ runtimeInfo.purl = `pkg:generic/${runtimeInfo.name}@${runtimeInfo.version}`;
98
+ runtimeInfo["bom-ref"] = runtimeInfo.purl;
99
+ }
100
+ else if (globalThis.process?.versions?.node) {
101
+ runtimeInfo.name = "node";
102
+ runtimeInfo.runtime = "Node.js";
103
+ runtimeInfo.version = globalThis.process.versions.node;
104
+ runtimeInfo.purl = `pkg:generic/${runtimeInfo.name}@${runtimeInfo.version}`;
105
+ runtimeInfo["bom-ref"] = runtimeInfo.purl;
106
+ const report = process.report.getReport();
107
+ // @ts-ignore
108
+ const nodeSourceUrl = report?.header?.release?.sourceUrl;
109
+ if (nodeSourceUrl) {
110
+ runtimeInfo.externalReferences = [
111
+ {
112
+ url: nodeSourceUrl,
113
+ type: "source-distribution",
114
+ comment: "Node.js release url",
115
+ },
116
+ ];
117
+ }
118
+ // Collect the bundled components in node.js
119
+ // @ts-ignore
120
+ if (report?.header?.componentVersions) {
121
+ const nodeBundledComponents = [];
122
+ for (const [name, version] of Object.entries(
123
+ // @ts-ignore
124
+ report.header.componentVersions)) {
125
+ if (name === "node") {
126
+ continue;
127
+ }
128
+ const apkg = {
129
+ name,
130
+ version,
131
+ description: `Bundled with Node.js ${runtimeInfo.version}`,
132
+ type: "library",
133
+ scope: "excluded",
134
+ purl: `pkg:generic/${name}@${version}`,
135
+ "bom-ref": `pkg:generic/${name}@${version}`,
136
+ };
137
+ if (nodeSourceUrl) {
138
+ // @ts-ignore
139
+ apkg.externalReferences = [
140
+ {
141
+ url: nodeSourceUrl,
142
+ type: "source-distribution",
143
+ comment: "Node.js release url",
144
+ },
145
+ ];
146
+ }
147
+ nodeBundledComponents.push(apkg);
148
+ }
149
+ if (nodeBundledComponents.length) {
150
+ runtimeInfo.components = nodeBundledComponents;
151
+ }
152
+ }
153
+ // @ts-ignore
154
+ if (report.sharedObjects) {
155
+ const osSharedObjects = [];
156
+ // @ts-ignore
157
+ for (const aso of report.sharedObjects) {
158
+ const name = path.basename(aso);
159
+ if (name === "node") {
160
+ continue;
161
+ }
162
+ const apkg = {
163
+ name,
164
+ type: "library",
165
+ scope: "excluded",
166
+ purl: `pkg:generic/${name}#${aso}`,
167
+ "bom-ref": `pkg:generic/${name}`,
168
+ };
169
+ osSharedObjects.push(apkg);
170
+ }
171
+ if (osSharedObjects.length) {
172
+ runtimeInfo.components = osSharedObjects;
173
+ }
174
+ }
175
+ }
176
+ return runtimeInfo;
177
+ }
178
+ export default async function caxa({ input, output, command, metadataFile = "binary-metadata.json", force = true, exclude = defaultExcludes, includeNode = true, stub = url.fileURLToPath(new URL(`../stubs/stub--${process.platform}--${process.arch}`, import.meta.url)), identifier = path.join(path.basename(path.basename(path.basename(output, ".exe"), ".app"), ".sh"), cryptoRandomString({ length: 10, type: "alphanumeric" }).toLowerCase()), uncompressionMessage, upx = false, upxArgs = [], }) {
69
179
  if (!(await fs.pathExists(input)) || !(await fs.lstat(input)).isDirectory())
70
180
  throw new Error(`Input isn’t a directory: ‘${input}’.`);
71
181
  if ((await fs.pathExists(output)) && !force)
@@ -83,8 +193,20 @@ export default async function caxa({ input, output, command, force = true, exclu
83
193
  ignore: exclude,
84
194
  followSymbolicLinks: false,
85
195
  });
196
+ const parentName = path.basename(output).replace(path.extname(output), "");
197
+ const parentComponent = {
198
+ group: "",
199
+ name: parentName,
200
+ version: undefined,
201
+ purl: `pkg:generic/${parentName}`,
202
+ "bom-ref": `pkg:generic/${parentName}`,
203
+ };
86
204
  const components = [];
87
205
  const purlLookup = new Map();
206
+ if (includeNode) {
207
+ const runtimeInfo = getRuntimeInformation();
208
+ components.push(runtimeInfo);
209
+ }
88
210
  for (const file of files) {
89
211
  if (path.basename(file) === "package.json") {
90
212
  try {
@@ -103,11 +225,18 @@ export default async function caxa({ input, output, command, force = true, exclu
103
225
  }
104
226
  purl += `${name}@${pkg.version}`;
105
227
  purlLookup.set(pkg.name, purl);
228
+ const author = pkg.author;
229
+ const authorString = author instanceof Object
230
+ ? `${author.name}${author.email ? ` <${author.email}>` : ""}${author.url ? ` (${author.url})` : ""}`
231
+ : author;
106
232
  components.push({
107
233
  group: namespace,
108
234
  name: name,
235
+ description: pkg.description,
236
+ license: pkg.license,
109
237
  version: pkg.version,
110
238
  purl: purl,
239
+ author: authorString,
111
240
  _rawDeps: pkg.dependencies,
112
241
  });
113
242
  }
@@ -136,7 +265,8 @@ export default async function caxa({ input, output, command, force = true, exclu
136
265
  });
137
266
  }
138
267
  }
139
- await fs.writeJson(path.join(path.dirname(output), "binary-metadata.json"), {
268
+ await fs.writeJson(path.join(path.dirname(output), metadataFile), {
269
+ parentComponent,
140
270
  components,
141
271
  dependencies,
142
272
  }, { spaces: 0 });
@@ -275,6 +405,7 @@ if (url.fileURLToPath(import.meta.url) === (await fs.realpath(process.argv[1])))
275
405
  .description("Package Node.js applications into executable binaries")
276
406
  .requiredOption("-i, --input <input>", "Input directory to package.")
277
407
  .requiredOption("-o, --output <output>", "Path where the executable will be produced.")
408
+ .option("--metadata-file", "Metadata file name for capturing npm components and dependencies in the bundled binary.", "binary-metadata.json")
278
409
  .option("-F, --no-force", "Don’t overwrite output if it exists.")
279
410
  .option("-e, --exclude <path...>", "Paths to exclude from the build.")
280
411
  .option("-N, --no-include-node", "Don’t copy the Node.js executable.")
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../source/index.mts"],"names":[],"mappings":";AAEA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AACvC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,KAAK,UAAU,MAAM,CAAC,IAAY,EAAE,IAAc;IAChD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE;YAC/C,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAA4B,EAAE,EAAE;YACtD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,CACJ,IAAI,KAAK,CACP,mFAAmF,CACpF,CACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAC9B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,eAAe,GAAG;IACtB,IAAI;IACJ,OAAO;IACP,cAAc;IACd,cAAc;IACd,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,gBAAgB;IAChB,OAAO;IACP,eAAe;IACf,YAAY;IACZ,OAAO;IACP,MAAM;IACN,mBAAmB;IACnB,gBAAgB;IAChB,eAAe;IACf,WAAW;IACX,UAAU;IACV,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,YAAY;IACZ,gBAAgB;CACjB,CAAC;AAEF,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,EACjC,KAAK,EACL,MAAM,EACN,OAAO,EACP,KAAK,GAAG,IAAI,EACZ,OAAO,GAAG,eAAe,EACzB,WAAW,GAAG,IAAI,EAClB,IAAI,GAAG,GAAG,CAAC,aAAa,CACtB,IAAI,GAAG,CACL,kBAAkB,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,IAAI,EAAE,EACrD,MAAM,CAAC,IAAI,CAAC,GAAG,CAChB,CACF,EACD,UAAU,GAAG,IAAI,CAAC,IAAI,CACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAC1E,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,WAAW,EAAE,CACvE,EACD,oBAAoB,EACpB,GAAG,GAAG,KAAK,EACX,OAAO,GAAG,EAAE,GAeb;IACC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE;QACzE,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,IAAI,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK;QACzC,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,IAAI,CAAC,CAAC;IACzD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAE5D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAExB,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,eAAe,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE;QACnC,GAAG,EAAE,KAAK;QACV,SAAS,EAAE,IAAI;QACf,GAAG,EAAE,IAAI;QACT,MAAM,EAAE,OAAO;QACf,mBAAmB,EAAE,KAAK;KAC3B,CAAC,CAAC;IAeH,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,cAAc,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;gBACtD,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBAC5B,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;oBACpB,IAAI,SAAS,GAAG,EAAE,CAAC;oBACnB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAC9B,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACrB,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBAED,IAAI,IAAI,GAAG,UAAU,CAAC;oBACtB,IAAI,SAAS,EAAE,CAAC;wBACd,IAAI,IAAI,GAAG,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC;oBAC9C,CAAC;oBACD,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBAEjC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAE/B,UAAU,CAAC,IAAI,CAAC;wBACd,KAAK,EAAE,SAAS;wBAChB,IAAI,EAAE,IAAI;wBACV,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,IAAI,EAAE,IAAI;wBACV,QAAQ,EAAE,GAAG,CAAC,YAAY;qBAC3B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,SAAS;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAA2B,EAAE,CAAC;IAEhD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjD,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC7C,IAAI,YAAY,EAAE,CAAC;oBACjB,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC;gBAChB,GAAG,EAAE,IAAI,CAAC,IAAI;gBACd,SAAS,EAAE,UAAU;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,sBAAsB,CAAC,EACvD;QACE,UAAU;QACV,YAAY;KACb,EACD,EAAE,MAAM,EAAE,CAAC,EAAE,CACd,CAAC;IAEF,MAAM,wBAAwB,GAAG,KAAK,EAAE,WAAmB,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE;QAC1E,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE;YAC9B,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,EAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACvE,MAAM,gBAAgB,GAAa,EAAE,CAAC;QAEtC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACvC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACnC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACjC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC3B,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC9C,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAClC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CACtB,MAAM,EACN,cAAc,EACd,MAAM,EACN,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACxB,CAAC;YACF,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACjC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC1C,CAAC;YAED,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,YAAY,GAAG,QAAQ,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC/G,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC;gBAEnE,IAAI,CAAC;oBACH,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;oBAC1C,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;oBAEpC,MAAM,aAAa,GAAG,OAAO;yBAC1B,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;yBAClC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAEnC,MAAM,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;oBAE1C,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAC/C,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACtC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,IAAI,KAAK,CACb,sCAAuC,GAAa,CAAC,OAAO,EAAE,CAC/D,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAEpC,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;YACxC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;YAC/B,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;QAEJ,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAC3D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;QAE/D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE3C,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,EAC5C,IAAI,CAAA;;6CAEmC,IAAI;OAC1C,GAAG,IAAI,EACR,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,CAAC;QAEF,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,EAChD,IAAI,CAAA;;UAEA,OAAO;aACN,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,6BAA6B,CAAC,GAAG,CACvE;aACA,IAAI,CAAC,GAAG,CAAC;OACb,GAAG,IAAI,EACR,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;QAC1E,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACtC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACxB,OAAO,EACP,cAAc,EACd,MAAM,EACN,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAChC,CAAC;YACF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC3C,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC9B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAEtE,IAAI,SAAS,GACX,IAAI,CAAA;;;0BAGgB,UAAU;;;;;;;;;YASxB,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAA,SAAS,oBAAoB,OAAO,CAAC,CAAC,CAAC,EAAE;;;;;;eAMjE,OAAO;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,aAAa,CAAC,GAAG,CAAC;aAChE,IAAI,CAAC,GAAG,CAAC;OACb,GAAG,IAAI,CAAC;QAEX,SAAS,GAAG,SAAS,CAAC,OAAO,CAC3B,WAAW,EACX,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CACrC,CAAC;QACF,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,MAAM,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,8EAA8E,IAAI,GAAG,CACtF,CAAC;QAEJ,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC9B,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/D,MAAM,aAAa,GAAG,OAAO;iBAC1B,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBAClC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACnC,MAAM,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAChD,MAAM,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,EAAE,CAAC,UAAU,CACjB,MAAM,EACN,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CACrE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,SAAS,CAAC,OAAO;SACpB,IAAI,CAAC,MAAM,CAAC;SACZ,WAAW,CAAC,uDAAuD,CAAC;SACpE,cAAc,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SACpE,cAAc,CACb,uBAAuB,EACvB,6CAA6C,CAC9C;SACA,MAAM,CAAC,gBAAgB,EAAE,sCAAsC,CAAC;SAChE,MAAM,CAAC,yBAAyB,EAAE,kCAAkC,CAAC;SACrE,MAAM,CAAC,uBAAuB,EAAE,oCAAoC,CAAC;SACrE,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;SAChD,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;SAChD,MAAM,CACL,iCAAiC,EACjC,kCAAkC,CACnC;SACA,MAAM,CACL,mCAAmC,EACnC,oCAAoC,CACrC;SACA,MAAM,CAAC,OAAO,EAAE,sCAAsC,CAAC;SACvD,MAAM,CACL,sBAAsB,EACtB,mDAAmD,CACpD;SACA,QAAQ,CAAC,cAAc,EAAE,iBAAiB,CAAC;SAC3C,OAAO,CACN,IAAI,CAAC,KAAK,CACR,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CACvE,CAAC,OAAO,CACV;SACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;SACD,kBAAkB,EAAE;SACpB,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../source/index.mts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appthreat/caxa",
3
- "version": "2.0.7",
3
+ "version": "2.0.9",
4
4
  "description": "Package Node.js applications into executable binaries",
5
5
  "author": "Team AppThreat <cloud@appthreat.com>",
6
6
  "homepage": "https://github.com/appthreat/caxa",
package/source/index.mts CHANGED
@@ -73,10 +73,121 @@ const defaultExcludes = [
73
73
  "jest.config.js",
74
74
  ];
75
75
 
76
+ /**
77
+ * Get information about the runtime.
78
+ *
79
+ * @returns {Object} Object containing the name and version of the runtime
80
+ */
81
+ export function getRuntimeInformation() {
82
+ const runtimeInfo: any = {
83
+ group: undefined,
84
+ name: undefined,
85
+ version: undefined,
86
+ runtime: undefined,
87
+ purl: undefined,
88
+ scope: "required",
89
+ };
90
+ // @ts-ignore
91
+ if (globalThis.Deno?.version?.deno) {
92
+ runtimeInfo.name = "deno";
93
+ runtimeInfo.runtime = "Deno";
94
+ // @ts-ignore
95
+ runtimeInfo.version = globalThis.Deno.version.deno;
96
+ runtimeInfo.purl = `pkg:generic/${runtimeInfo.name}@${runtimeInfo.version}`;
97
+ runtimeInfo["bom-ref"] = runtimeInfo.purl;
98
+ // @ts-ignore
99
+ } else if (globalThis.Bun?.version) {
100
+ runtimeInfo.name = "bun";
101
+ runtimeInfo.runtime = "Bun";
102
+ // @ts-ignore
103
+ runtimeInfo.version = globalThis.Bun.version;
104
+ runtimeInfo.purl = `pkg:generic/${runtimeInfo.name}@${runtimeInfo.version}`;
105
+ runtimeInfo["bom-ref"] = runtimeInfo.purl;
106
+ } else if (globalThis.process?.versions?.node) {
107
+ runtimeInfo.name = "node";
108
+ runtimeInfo.runtime = "Node.js";
109
+ runtimeInfo.version = globalThis.process.versions.node;
110
+ runtimeInfo.purl = `pkg:generic/${runtimeInfo.name}@${runtimeInfo.version}`;
111
+ runtimeInfo["bom-ref"] = runtimeInfo.purl;
112
+ const report = process.report.getReport();
113
+ // @ts-ignore
114
+ const nodeSourceUrl = report?.header?.release?.sourceUrl;
115
+ if (nodeSourceUrl) {
116
+ runtimeInfo.externalReferences = [
117
+ {
118
+ url: nodeSourceUrl,
119
+ type: "source-distribution",
120
+ comment: "Node.js release url",
121
+ },
122
+ ];
123
+ }
124
+ // Collect the bundled components in node.js
125
+ // @ts-ignore
126
+ if (report?.header?.componentVersions) {
127
+ const nodeBundledComponents = [];
128
+ for (const [name, version] of Object.entries(
129
+ // @ts-ignore
130
+ report.header.componentVersions,
131
+ )) {
132
+ if (name === "node") {
133
+ continue;
134
+ }
135
+ const apkg = {
136
+ name,
137
+ version,
138
+ description: `Bundled with Node.js ${runtimeInfo.version}`,
139
+ type: "library",
140
+ scope: "excluded",
141
+ purl: `pkg:generic/${name}@${version}`,
142
+ "bom-ref": `pkg:generic/${name}@${version}`,
143
+ };
144
+ if (nodeSourceUrl) {
145
+ // @ts-ignore
146
+ apkg.externalReferences = [
147
+ {
148
+ url: nodeSourceUrl,
149
+ type: "source-distribution",
150
+ comment: "Node.js release url",
151
+ },
152
+ ];
153
+ }
154
+ nodeBundledComponents.push(apkg);
155
+ }
156
+ if (nodeBundledComponents.length) {
157
+ runtimeInfo.components = nodeBundledComponents;
158
+ }
159
+ }
160
+ // @ts-ignore
161
+ if (report.sharedObjects) {
162
+ const osSharedObjects = [];
163
+ // @ts-ignore
164
+ for (const aso of report.sharedObjects) {
165
+ const name = path.basename(aso);
166
+ if (name === "node") {
167
+ continue;
168
+ }
169
+ const apkg = {
170
+ name,
171
+ type: "library",
172
+ scope: "excluded",
173
+ purl: `pkg:generic/${name}#${aso}`,
174
+ "bom-ref": `pkg:generic/${name}`,
175
+ };
176
+ osSharedObjects.push(apkg);
177
+ }
178
+ if (osSharedObjects.length) {
179
+ runtimeInfo.components = osSharedObjects;
180
+ }
181
+ }
182
+ }
183
+ return runtimeInfo;
184
+ }
185
+
76
186
  export default async function caxa({
77
187
  input,
78
188
  output,
79
189
  command,
190
+ metadataFile = "binary-metadata.json",
80
191
  force = true,
81
192
  exclude = defaultExcludes,
82
193
  includeNode = true,
@@ -97,6 +208,7 @@ export default async function caxa({
97
208
  input: string;
98
209
  output: string;
99
210
  command: string[];
211
+ metadataFile: string;
100
212
  force?: boolean;
101
213
  exclude?: string[];
102
214
  filter?: fs.CopyFilterSync | fs.CopyFilterAsync;
@@ -130,8 +242,11 @@ export default async function caxa({
130
242
  interface Component {
131
243
  group: string;
132
244
  name: string;
245
+ description: string;
246
+ license: string;
133
247
  version: string;
134
248
  purl: string;
249
+ author: string;
135
250
  _rawDeps?: Record<string, string>;
136
251
  }
137
252
 
@@ -139,10 +254,20 @@ export default async function caxa({
139
254
  ref: string;
140
255
  dependsOn: string[];
141
256
  }
142
-
257
+ const parentName = path.basename(output).replace(path.extname(output), "");
258
+ const parentComponent = {
259
+ group: "",
260
+ name: parentName,
261
+ version: undefined,
262
+ purl: `pkg:generic/${parentName}`,
263
+ "bom-ref": `pkg:generic/${parentName}`,
264
+ };
143
265
  const components: Component[] = [];
144
266
  const purlLookup = new Map<string, string>();
145
-
267
+ if (includeNode) {
268
+ const runtimeInfo = getRuntimeInformation();
269
+ components.push(runtimeInfo);
270
+ }
146
271
  for (const file of files) {
147
272
  if (path.basename(file) === "package.json") {
148
273
  try {
@@ -161,14 +286,22 @@ export default async function caxa({
161
286
  purl += `${encodeURIComponent(namespace)}/`;
162
287
  }
163
288
  purl += `${name}@${pkg.version}`;
164
-
165
289
  purlLookup.set(pkg.name, purl);
166
-
290
+ const author = pkg.author;
291
+ const authorString =
292
+ author instanceof Object
293
+ ? `${author.name}${author.email ? ` <${author.email}>` : ""}${
294
+ author.url ? ` (${author.url})` : ""
295
+ }`
296
+ : author;
167
297
  components.push({
168
298
  group: namespace,
169
299
  name: name,
300
+ description: pkg.description,
301
+ license: pkg.license,
170
302
  version: pkg.version,
171
303
  purl: purl,
304
+ author: authorString,
172
305
  _rawDeps: pkg.dependencies,
173
306
  });
174
307
  }
@@ -191,7 +324,6 @@ export default async function caxa({
191
324
  }
192
325
  delete comp._rawDeps;
193
326
  }
194
-
195
327
  if (childPurls.length > 0) {
196
328
  dependencies.push({
197
329
  ref: comp.purl,
@@ -199,10 +331,10 @@ export default async function caxa({
199
331
  });
200
332
  }
201
333
  }
202
-
203
334
  await fs.writeJson(
204
- path.join(path.dirname(output), "binary-metadata.json"),
335
+ path.join(path.dirname(output), metadataFile),
205
336
  {
337
+ parentComponent,
206
338
  components,
207
339
  dependencies,
208
340
  },
@@ -397,6 +529,11 @@ if (url.fileURLToPath(import.meta.url) === (await fs.realpath(process.argv[1])))
397
529
  "-o, --output <output>",
398
530
  "Path where the executable will be produced.",
399
531
  )
532
+ .option(
533
+ "--metadata-file",
534
+ "Metadata file name for capturing npm components and dependencies in the bundled binary.",
535
+ "binary-metadata.json",
536
+ )
400
537
  .option("-F, --no-force", "Don’t overwrite output if it exists.")
401
538
  .option("-e, --exclude <path...>", "Paths to exclude from the build.")
402
539
  .option("-N, --no-include-node", "Don’t copy the Node.js executable.")