@alagoni97/cli 0.72.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/LICENSE +201 -0
- package/README.md +336 -0
- package/bin/dev.cmd +3 -0
- package/bin/dev.mjs +3 -0
- package/bin/run.cmd +3 -0
- package/bin/run.mjs +4 -0
- package/dist/LoggingInterface.d.ts +123 -0
- package/dist/LoggingInterface.js +300 -0
- package/dist/PersistedConfig.d.ts +46 -0
- package/dist/PersistedConfig.js +94 -0
- package/dist/browser/adapters/output.d.ts +69 -0
- package/dist/browser/adapters/output.js +91 -0
- package/dist/browser/config.d.ts +18 -0
- package/dist/browser/config.js +59 -0
- package/dist/browser/generate.d.ts +20 -0
- package/dist/browser/generate.js +129 -0
- package/dist/browser/index.d.ts +17 -0
- package/dist/browser/index.js +26 -0
- package/dist/browser/parser.d.ts +9 -0
- package/dist/browser/parser.js +61 -0
- package/dist/browser/shims/asyncapi-parser.d.ts +30 -0
- package/dist/browser/shims/asyncapi-parser.js +52 -0
- package/dist/browser/shims/fs.d.ts +190 -0
- package/dist/browser/shims/fs.js +188 -0
- package/dist/browser/shims/json-schema-ref-parser.d.ts +73 -0
- package/dist/browser/shims/json-schema-ref-parser.js +246 -0
- package/dist/browser/shims/swagger-parser.d.ts +20 -0
- package/dist/browser/shims/swagger-parser.js +40 -0
- package/dist/codegen/configurationSchemaBuilder.d.ts +15 -0
- package/dist/codegen/configurationSchemaBuilder.js +48 -0
- package/dist/codegen/configurations.d.ts +29 -0
- package/dist/codegen/configurations.js +260 -0
- package/dist/codegen/detection.d.ts +19 -0
- package/dist/codegen/detection.js +174 -0
- package/dist/codegen/errors.d.ts +111 -0
- package/dist/codegen/errors.js +352 -0
- package/dist/codegen/generators/generic/custom.d.ts +75 -0
- package/dist/codegen/generators/generic/custom.js +66 -0
- package/dist/codegen/generators/index.d.ts +14 -0
- package/dist/codegen/generators/index.js +42 -0
- package/dist/codegen/generators/typescript/channels/asyncapi.d.ts +10 -0
- package/dist/codegen/generators/typescript/channels/asyncapi.js +131 -0
- package/dist/codegen/generators/typescript/channels/index.d.ts +8 -0
- package/dist/codegen/generators/typescript/channels/index.js +142 -0
- package/dist/codegen/generators/typescript/channels/openapi.d.ts +9 -0
- package/dist/codegen/generators/typescript/channels/openapi.js +168 -0
- package/dist/codegen/generators/typescript/channels/protocols/amqp/index.d.ts +7 -0
- package/dist/codegen/generators/typescript/channels/protocols/amqp/index.js +149 -0
- package/dist/codegen/generators/typescript/channels/protocols/amqp/publishExchange.d.ts +5 -0
- package/dist/codegen/generators/typescript/channels/protocols/amqp/publishExchange.js +106 -0
- package/dist/codegen/generators/typescript/channels/protocols/amqp/publishQueue.d.ts +3 -0
- package/dist/codegen/generators/typescript/channels/protocols/amqp/publishQueue.js +102 -0
- package/dist/codegen/generators/typescript/channels/protocols/amqp/subscribeQueue.d.ts +3 -0
- package/dist/codegen/generators/typescript/channels/protocols/amqp/subscribeQueue.js +133 -0
- package/dist/codegen/generators/typescript/channels/protocols/eventsource/express.d.ts +3 -0
- package/dist/codegen/generators/typescript/channels/protocols/eventsource/express.js +100 -0
- package/dist/codegen/generators/typescript/channels/protocols/eventsource/fetch.d.ts +5 -0
- package/dist/codegen/generators/typescript/channels/protocols/eventsource/fetch.js +144 -0
- package/dist/codegen/generators/typescript/channels/protocols/eventsource/index.d.ts +6 -0
- package/dist/codegen/generators/typescript/channels/protocols/eventsource/index.js +132 -0
- package/dist/codegen/generators/typescript/channels/protocols/http/client.d.ts +10 -0
- package/dist/codegen/generators/typescript/channels/protocols/http/client.js +224 -0
- package/dist/codegen/generators/typescript/channels/protocols/http/common-types.d.ts +14 -0
- package/dist/codegen/generators/typescript/channels/protocols/http/common-types.js +800 -0
- package/dist/codegen/generators/typescript/channels/protocols/http/index.d.ts +8 -0
- package/dist/codegen/generators/typescript/channels/protocols/http/index.js +96 -0
- package/dist/codegen/generators/typescript/channels/protocols/http/security.d.ts +48 -0
- package/dist/codegen/generators/typescript/channels/protocols/http/security.js +491 -0
- package/dist/codegen/generators/typescript/channels/protocols/kafka/index.d.ts +6 -0
- package/dist/codegen/generators/typescript/channels/protocols/kafka/index.js +127 -0
- package/dist/codegen/generators/typescript/channels/protocols/kafka/publish.d.ts +3 -0
- package/dist/codegen/generators/typescript/channels/protocols/kafka/publish.js +108 -0
- package/dist/codegen/generators/typescript/channels/protocols/kafka/subscribe.d.ts +3 -0
- package/dist/codegen/generators/typescript/channels/protocols/kafka/subscribe.js +154 -0
- package/dist/codegen/generators/typescript/channels/protocols/kafka/utils.d.ts +11 -0
- package/dist/codegen/generators/typescript/channels/protocols/kafka/utils.js +58 -0
- package/dist/codegen/generators/typescript/channels/protocols/mqtt/index.d.ts +6 -0
- package/dist/codegen/generators/typescript/channels/protocols/mqtt/index.js +113 -0
- package/dist/codegen/generators/typescript/channels/protocols/mqtt/publish.d.ts +3 -0
- package/dist/codegen/generators/typescript/channels/protocols/mqtt/publish.js +99 -0
- package/dist/codegen/generators/typescript/channels/protocols/mqtt/subscribe.d.ts +3 -0
- package/dist/codegen/generators/typescript/channels/protocols/mqtt/subscribe.js +186 -0
- package/dist/codegen/generators/typescript/channels/protocols/nats/corePublish.d.ts +3 -0
- package/dist/codegen/generators/typescript/channels/protocols/nats/corePublish.js +90 -0
- package/dist/codegen/generators/typescript/channels/protocols/nats/coreReply.d.ts +3 -0
- package/dist/codegen/generators/typescript/channels/protocols/nats/coreReply.js +142 -0
- package/dist/codegen/generators/typescript/channels/protocols/nats/coreRequest.d.ts +3 -0
- package/dist/codegen/generators/typescript/channels/protocols/nats/coreRequest.js +100 -0
- package/dist/codegen/generators/typescript/channels/protocols/nats/coreSubscribe.d.ts +3 -0
- package/dist/codegen/generators/typescript/channels/protocols/nats/coreSubscribe.js +143 -0
- package/dist/codegen/generators/typescript/channels/protocols/nats/index.d.ts +11 -0
- package/dist/codegen/generators/typescript/channels/protocols/nats/index.js +224 -0
- package/dist/codegen/generators/typescript/channels/protocols/nats/jetstreamPublish.d.ts +3 -0
- package/dist/codegen/generators/typescript/channels/protocols/nats/jetstreamPublish.js +89 -0
- package/dist/codegen/generators/typescript/channels/protocols/nats/jetstreamPullSubscribe.d.ts +3 -0
- package/dist/codegen/generators/typescript/channels/protocols/nats/jetstreamPullSubscribe.js +146 -0
- package/dist/codegen/generators/typescript/channels/protocols/nats/jetstreamPushSubscription.d.ts +3 -0
- package/dist/codegen/generators/typescript/channels/protocols/nats/jetstreamPushSubscription.js +149 -0
- package/dist/codegen/generators/typescript/channels/protocols/nats/utils.d.ts +35 -0
- package/dist/codegen/generators/typescript/channels/protocols/nats/utils.js +120 -0
- package/dist/codegen/generators/typescript/channels/protocols/websocket/index.d.ts +7 -0
- package/dist/codegen/generators/typescript/channels/protocols/websocket/index.js +152 -0
- package/dist/codegen/generators/typescript/channels/protocols/websocket/publish.d.ts +3 -0
- package/dist/codegen/generators/typescript/channels/protocols/websocket/publish.js +64 -0
- package/dist/codegen/generators/typescript/channels/protocols/websocket/register.d.ts +3 -0
- package/dist/codegen/generators/typescript/channels/protocols/websocket/register.js +115 -0
- package/dist/codegen/generators/typescript/channels/protocols/websocket/subscribe.d.ts +3 -0
- package/dist/codegen/generators/typescript/channels/protocols/websocket/subscribe.js +151 -0
- package/dist/codegen/generators/typescript/channels/types.d.ts +181 -0
- package/dist/codegen/generators/typescript/channels/types.js +131 -0
- package/dist/codegen/generators/typescript/channels/utils.d.ts +64 -0
- package/dist/codegen/generators/typescript/channels/utils.js +163 -0
- package/dist/codegen/generators/typescript/client/index.d.ts +8 -0
- package/dist/codegen/generators/typescript/client/index.js +61 -0
- package/dist/codegen/generators/typescript/client/protocols/nats/corePublish.d.ts +6 -0
- package/dist/codegen/generators/typescript/client/protocols/nats/corePublish.js +53 -0
- package/dist/codegen/generators/typescript/client/protocols/nats/coreSubscribe.d.ts +6 -0
- package/dist/codegen/generators/typescript/client/protocols/nats/coreSubscribe.js +90 -0
- package/dist/codegen/generators/typescript/client/protocols/nats/jetStreamPullSubscription.d.ts +6 -0
- package/dist/codegen/generators/typescript/client/protocols/nats/jetStreamPullSubscription.js +83 -0
- package/dist/codegen/generators/typescript/client/protocols/nats/jetstreamPublish.d.ts +6 -0
- package/dist/codegen/generators/typescript/client/protocols/nats/jetstreamPublish.js +54 -0
- package/dist/codegen/generators/typescript/client/protocols/nats/jetstreamPushSubscription.d.ts +6 -0
- package/dist/codegen/generators/typescript/client/protocols/nats/jetstreamPushSubscription.js +82 -0
- package/dist/codegen/generators/typescript/client/protocols/nats.d.ts +2 -0
- package/dist/codegen/generators/typescript/client/protocols/nats.js +182 -0
- package/dist/codegen/generators/typescript/client/types.d.ts +49 -0
- package/dist/codegen/generators/typescript/client/types.js +37 -0
- package/dist/codegen/generators/typescript/headers.d.ts +54 -0
- package/dist/codegen/generators/typescript/headers.js +138 -0
- package/dist/codegen/generators/typescript/index.d.ts +7 -0
- package/dist/codegen/generators/typescript/index.js +38 -0
- package/dist/codegen/generators/typescript/models.d.ts +21761 -0
- package/dist/codegen/generators/typescript/models.js +64 -0
- package/dist/codegen/generators/typescript/parameters.d.ts +37 -0
- package/dist/codegen/generators/typescript/parameters.js +101 -0
- package/dist/codegen/generators/typescript/payloads.d.ts +73 -0
- package/dist/codegen/generators/typescript/payloads.js +250 -0
- package/dist/codegen/generators/typescript/types.d.ts +34 -0
- package/dist/codegen/generators/typescript/types.js +70 -0
- package/dist/codegen/generators/typescript/utils.d.ts +38 -0
- package/dist/codegen/generators/typescript/utils.js +195 -0
- package/dist/codegen/index.d.ts +7 -0
- package/dist/codegen/index.js +38 -0
- package/dist/codegen/inputs/asyncapi/generators/headers.d.ts +3 -0
- package/dist/codegen/inputs/asyncapi/generators/headers.js +41 -0
- package/dist/codegen/inputs/asyncapi/generators/parameters.d.ts +14 -0
- package/dist/codegen/inputs/asyncapi/generators/parameters.js +120 -0
- package/dist/codegen/inputs/asyncapi/generators/payloads.d.ts +16 -0
- package/dist/codegen/inputs/asyncapi/generators/payloads.js +124 -0
- package/dist/codegen/inputs/asyncapi/generators/types.d.ts +9 -0
- package/dist/codegen/inputs/asyncapi/generators/types.js +61 -0
- package/dist/codegen/inputs/asyncapi/index.d.ts +1 -0
- package/dist/codegen/inputs/asyncapi/index.js +7 -0
- package/dist/codegen/inputs/asyncapi/parser.d.ts +4 -0
- package/dist/codegen/inputs/asyncapi/parser.js +90 -0
- package/dist/codegen/inputs/index.d.ts +3 -0
- package/dist/codegen/inputs/index.js +19 -0
- package/dist/codegen/inputs/jsonschema/generators/index.d.ts +1 -0
- package/dist/codegen/inputs/jsonschema/generators/index.js +5 -0
- package/dist/codegen/inputs/jsonschema/generators/models.d.ts +7 -0
- package/dist/codegen/inputs/jsonschema/generators/models.js +26 -0
- package/dist/codegen/inputs/jsonschema/index.d.ts +1 -0
- package/dist/codegen/inputs/jsonschema/index.js +7 -0
- package/dist/codegen/inputs/jsonschema/parser.d.ts +31 -0
- package/dist/codegen/inputs/jsonschema/parser.js +128 -0
- package/dist/codegen/inputs/openapi/generators/headers.d.ts +3 -0
- package/dist/codegen/inputs/openapi/generators/headers.js +101 -0
- package/dist/codegen/inputs/openapi/generators/parameters.d.ts +10 -0
- package/dist/codegen/inputs/openapi/generators/parameters.js +852 -0
- package/dist/codegen/inputs/openapi/generators/payloads.d.ts +3 -0
- package/dist/codegen/inputs/openapi/generators/payloads.js +231 -0
- package/dist/codegen/inputs/openapi/generators/types.d.ts +9 -0
- package/dist/codegen/inputs/openapi/generators/types.js +86 -0
- package/dist/codegen/inputs/openapi/index.d.ts +2 -0
- package/dist/codegen/inputs/openapi/index.js +8 -0
- package/dist/codegen/inputs/openapi/parser.d.ts +4 -0
- package/dist/codegen/inputs/openapi/parser.js +115 -0
- package/dist/codegen/inputs/openapi/security.d.ts +56 -0
- package/dist/codegen/inputs/openapi/security.js +193 -0
- package/dist/codegen/modelina/index.d.ts +2 -0
- package/dist/codegen/modelina/index.js +20 -0
- package/dist/codegen/modelina/presets/index.d.ts +3 -0
- package/dist/codegen/modelina/presets/index.js +14 -0
- package/dist/codegen/modelina/presets/primitives.d.ts +34 -0
- package/dist/codegen/modelina/presets/primitives.js +211 -0
- package/dist/codegen/modelina/presets/union.d.ts +33 -0
- package/dist/codegen/modelina/presets/union.js +197 -0
- package/dist/codegen/modelina/presets/validation.d.ts +66 -0
- package/dist/codegen/modelina/presets/validation.js +183 -0
- package/dist/codegen/modelina/types.d.ts +61845 -0
- package/dist/codegen/modelina/types.js +412 -0
- package/dist/codegen/output/filesystem.d.ts +30 -0
- package/dist/codegen/output/filesystem.js +61 -0
- package/dist/codegen/output/index.d.ts +16 -0
- package/dist/codegen/output/index.js +57 -0
- package/dist/codegen/output/memory.d.ts +54 -0
- package/dist/codegen/output/memory.js +81 -0
- package/dist/codegen/output/modelina.d.ts +30 -0
- package/dist/codegen/output/modelina.js +30 -0
- package/dist/codegen/output/types.d.ts +47 -0
- package/dist/codegen/output/types.js +6 -0
- package/dist/codegen/renderer.d.ts +13 -0
- package/dist/codegen/renderer.js +309 -0
- package/dist/codegen/schemaPostProcess.d.ts +25 -0
- package/dist/codegen/schemaPostProcess.js +38 -0
- package/dist/codegen/types.d.ts +285187 -0
- package/dist/codegen/types.js +177 -0
- package/dist/codegen/utils.d.ts +126 -0
- package/dist/codegen/utils.js +373 -0
- package/dist/commands/base.d.ts +18 -0
- package/dist/commands/base.js +59 -0
- package/dist/commands/generate.d.ts +46 -0
- package/dist/commands/generate.js +305 -0
- package/dist/commands/init.d.ts +55 -0
- package/dist/commands/init.js +544 -0
- package/dist/commands/telemetry.d.ts +25 -0
- package/dist/commands/telemetry.js +115 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.js +35 -0
- package/dist/telemetry/anonymize.d.ts +19 -0
- package/dist/telemetry/anonymize.js +73 -0
- package/dist/telemetry/collector.d.ts +26 -0
- package/dist/telemetry/collector.js +57 -0
- package/dist/telemetry/config.d.ts +32 -0
- package/dist/telemetry/config.js +97 -0
- package/dist/telemetry/events.d.ts +72 -0
- package/dist/telemetry/events.js +5 -0
- package/dist/telemetry/index.d.ts +46 -0
- package/dist/telemetry/index.js +91 -0
- package/dist/telemetry/notice.d.ts +8 -0
- package/dist/telemetry/notice.js +50 -0
- package/dist/telemetry/sender.d.ts +14 -0
- package/dist/telemetry/sender.js +125 -0
- package/dist/utils/gitignore.d.ts +66 -0
- package/dist/utils/gitignore.js +111 -0
- package/dist/utils/inputSource.d.ts +3 -0
- package/dist/utils/inputSource.js +26 -0
- package/dist/utils/refResolvers.d.ts +29 -0
- package/dist/utils/refResolvers.js +83 -0
- package/dist/utils/remoteFetch.d.ts +18 -0
- package/dist/utils/remoteFetch.js +64 -0
- package/oclif.manifest.json +510 -0
- package/package.json +155 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export { run } from '@oclif/core';
|
|
2
|
+
export { AsyncAPIDocumentInterface } from '@asyncapi/parser';
|
|
3
|
+
export { defaultTypeScriptChannelsGenerator, defaultTypeScriptParametersOptions, defaultTypeScriptPayloadGenerator, defaultTypeScriptClientGenerator, defaultCustomGenerator, TypeScriptClientGenerator, TypeScriptChannelsGenerator, TypeScriptPayloadGenerator, TypescriptParametersGenerator, generateTypeScriptChannels, generateTypescriptParameters, generateTypescriptPayload, RunGeneratorContext, SupportedLanguages, PresetTypes, TheCodegenConfiguration, TheCodegenConfigurationInternal, zodAsyncAPICodegenConfiguration, zodAsyncAPIGenerators, zodAsyncAPITypeScriptGenerators, zodTheCodegenConfiguration, Generators, GenericCodegenContext, LoadArgument, ParameterRenderType, PayloadRenderType, SingleFunctionRenderType, runGenerators, loadAsyncapi, loadJsonSchema, getDefaultConfiguration, renderGenerator, realizeConfiguration, loadAndRealizeConfigFile, loadConfigFile, realizeGeneratorContext, ChannelFunctionTypes } from './codegen';
|
|
4
|
+
export declare const modelina: {
|
|
5
|
+
TS_COMMON_PRESET: Partial<{
|
|
6
|
+
class: import("@asyncapi/modelina/lib/types/generators/typescript/TypeScriptPreset").ClassPresetType<import("@asyncapi/modelina").TypeScriptCommonPresetOptions>;
|
|
7
|
+
interface: import("@asyncapi/modelina/lib/types/generators/typescript/TypeScriptPreset").InterfacePresetType<import("@asyncapi/modelina").TypeScriptCommonPresetOptions>;
|
|
8
|
+
enum: import("@asyncapi/modelina/lib/types/generators/typescript/TypeScriptPreset").EnumPresetType<import("@asyncapi/modelina").TypeScriptCommonPresetOptions>;
|
|
9
|
+
type: import("@asyncapi/modelina/lib/types/generators/typescript/TypeScriptPreset").TypePresetType<import("@asyncapi/modelina").TypeScriptCommonPresetOptions>;
|
|
10
|
+
}>;
|
|
11
|
+
TS_DESCRIPTION_PRESET: Partial<{
|
|
12
|
+
class: import("@asyncapi/modelina/lib/types/generators/typescript/TypeScriptPreset").ClassPresetType<any>;
|
|
13
|
+
interface: import("@asyncapi/modelina/lib/types/generators/typescript/TypeScriptPreset").InterfacePresetType<any>;
|
|
14
|
+
enum: import("@asyncapi/modelina/lib/types/generators/typescript/TypeScriptPreset").EnumPresetType<any>;
|
|
15
|
+
type: import("@asyncapi/modelina/lib/types/generators/typescript/TypeScriptPreset").TypePresetType<any>;
|
|
16
|
+
}>;
|
|
17
|
+
TS_DEFAULT_PRESET: Partial<{
|
|
18
|
+
class: import("@asyncapi/modelina/lib/types/generators/typescript/TypeScriptPreset").ClassPresetType<import("@asyncapi/modelina").TypeScriptOptions>;
|
|
19
|
+
interface: import("@asyncapi/modelina/lib/types/generators/typescript/TypeScriptPreset").InterfacePresetType<import("@asyncapi/modelina").TypeScriptOptions>;
|
|
20
|
+
enum: import("@asyncapi/modelina/lib/types/generators/typescript/TypeScriptPreset").EnumPresetType<import("@asyncapi/modelina").TypeScriptOptions>;
|
|
21
|
+
type: import("@asyncapi/modelina/lib/types/generators/typescript/TypeScriptPreset").TypePresetType<import("@asyncapi/modelina").TypeScriptOptions>;
|
|
22
|
+
}>;
|
|
23
|
+
TS_JSONBINPACK_PRESET: Partial<{
|
|
24
|
+
class: import("@asyncapi/modelina/lib/types/generators/typescript/TypeScriptPreset").ClassPresetType<any>;
|
|
25
|
+
interface: import("@asyncapi/modelina/lib/types/generators/typescript/TypeScriptPreset").InterfacePresetType<any>;
|
|
26
|
+
enum: import("@asyncapi/modelina/lib/types/generators/typescript/TypeScriptPreset").EnumPresetType<any>;
|
|
27
|
+
type: import("@asyncapi/modelina/lib/types/generators/typescript/TypeScriptPreset").TypePresetType<any>;
|
|
28
|
+
}>;
|
|
29
|
+
};
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.modelina = exports.ChannelFunctionTypes = exports.realizeGeneratorContext = exports.loadConfigFile = exports.loadAndRealizeConfigFile = exports.realizeConfiguration = exports.renderGenerator = exports.getDefaultConfiguration = exports.loadJsonSchema = exports.loadAsyncapi = exports.runGenerators = exports.zodTheCodegenConfiguration = exports.zodAsyncAPITypeScriptGenerators = exports.zodAsyncAPIGenerators = exports.zodAsyncAPICodegenConfiguration = exports.generateTypescriptPayload = exports.generateTypescriptParameters = exports.generateTypeScriptChannels = exports.defaultCustomGenerator = exports.defaultTypeScriptClientGenerator = exports.defaultTypeScriptPayloadGenerator = exports.defaultTypeScriptParametersOptions = exports.defaultTypeScriptChannelsGenerator = exports.run = void 0;
|
|
4
|
+
var core_1 = require("@oclif/core");
|
|
5
|
+
Object.defineProperty(exports, "run", { enumerable: true, get: function () { return core_1.run; } });
|
|
6
|
+
var codegen_1 = require("./codegen");
|
|
7
|
+
Object.defineProperty(exports, "defaultTypeScriptChannelsGenerator", { enumerable: true, get: function () { return codegen_1.defaultTypeScriptChannelsGenerator; } });
|
|
8
|
+
Object.defineProperty(exports, "defaultTypeScriptParametersOptions", { enumerable: true, get: function () { return codegen_1.defaultTypeScriptParametersOptions; } });
|
|
9
|
+
Object.defineProperty(exports, "defaultTypeScriptPayloadGenerator", { enumerable: true, get: function () { return codegen_1.defaultTypeScriptPayloadGenerator; } });
|
|
10
|
+
Object.defineProperty(exports, "defaultTypeScriptClientGenerator", { enumerable: true, get: function () { return codegen_1.defaultTypeScriptClientGenerator; } });
|
|
11
|
+
Object.defineProperty(exports, "defaultCustomGenerator", { enumerable: true, get: function () { return codegen_1.defaultCustomGenerator; } });
|
|
12
|
+
Object.defineProperty(exports, "generateTypeScriptChannels", { enumerable: true, get: function () { return codegen_1.generateTypeScriptChannels; } });
|
|
13
|
+
Object.defineProperty(exports, "generateTypescriptParameters", { enumerable: true, get: function () { return codegen_1.generateTypescriptParameters; } });
|
|
14
|
+
Object.defineProperty(exports, "generateTypescriptPayload", { enumerable: true, get: function () { return codegen_1.generateTypescriptPayload; } });
|
|
15
|
+
Object.defineProperty(exports, "zodAsyncAPICodegenConfiguration", { enumerable: true, get: function () { return codegen_1.zodAsyncAPICodegenConfiguration; } });
|
|
16
|
+
Object.defineProperty(exports, "zodAsyncAPIGenerators", { enumerable: true, get: function () { return codegen_1.zodAsyncAPIGenerators; } });
|
|
17
|
+
Object.defineProperty(exports, "zodAsyncAPITypeScriptGenerators", { enumerable: true, get: function () { return codegen_1.zodAsyncAPITypeScriptGenerators; } });
|
|
18
|
+
Object.defineProperty(exports, "zodTheCodegenConfiguration", { enumerable: true, get: function () { return codegen_1.zodTheCodegenConfiguration; } });
|
|
19
|
+
Object.defineProperty(exports, "runGenerators", { enumerable: true, get: function () { return codegen_1.runGenerators; } });
|
|
20
|
+
Object.defineProperty(exports, "loadAsyncapi", { enumerable: true, get: function () { return codegen_1.loadAsyncapi; } });
|
|
21
|
+
Object.defineProperty(exports, "loadJsonSchema", { enumerable: true, get: function () { return codegen_1.loadJsonSchema; } });
|
|
22
|
+
Object.defineProperty(exports, "getDefaultConfiguration", { enumerable: true, get: function () { return codegen_1.getDefaultConfiguration; } });
|
|
23
|
+
Object.defineProperty(exports, "renderGenerator", { enumerable: true, get: function () { return codegen_1.renderGenerator; } });
|
|
24
|
+
Object.defineProperty(exports, "realizeConfiguration", { enumerable: true, get: function () { return codegen_1.realizeConfiguration; } });
|
|
25
|
+
Object.defineProperty(exports, "loadAndRealizeConfigFile", { enumerable: true, get: function () { return codegen_1.loadAndRealizeConfigFile; } });
|
|
26
|
+
Object.defineProperty(exports, "loadConfigFile", { enumerable: true, get: function () { return codegen_1.loadConfigFile; } });
|
|
27
|
+
Object.defineProperty(exports, "realizeGeneratorContext", { enumerable: true, get: function () { return codegen_1.realizeGeneratorContext; } });
|
|
28
|
+
Object.defineProperty(exports, "ChannelFunctionTypes", { enumerable: true, get: function () { return codegen_1.ChannelFunctionTypes; } });
|
|
29
|
+
const modelina_1 = require("@asyncapi/modelina");
|
|
30
|
+
exports.modelina = {
|
|
31
|
+
TS_COMMON_PRESET: modelina_1.TS_COMMON_PRESET,
|
|
32
|
+
TS_DESCRIPTION_PRESET: modelina_1.TS_DESCRIPTION_PRESET,
|
|
33
|
+
TS_DEFAULT_PRESET: modelina_1.TS_DEFAULT_PRESET,
|
|
34
|
+
TS_JSONBINPACK_PRESET: modelina_1.TS_JSONBINPACK_PRESET
|
|
35
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Re-export the canonical helper from `src/utils/inputSource.ts`. The
|
|
3
|
+
* telemetry surface is unchanged; the helper now lives next to the rest
|
|
4
|
+
* of the URL-detection code so it can be shared with the input loaders.
|
|
5
|
+
*/
|
|
6
|
+
export { getInputSourceType } from '../utils/inputSource';
|
|
7
|
+
/**
|
|
8
|
+
* Detect if running in a CI environment.
|
|
9
|
+
* Checks common CI environment variables.
|
|
10
|
+
*/
|
|
11
|
+
export declare function isCIEnvironment(): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Categorize an error for telemetry purposes.
|
|
14
|
+
* Only returns the error category, not the actual error message or details.
|
|
15
|
+
*
|
|
16
|
+
* @param error - The error to categorize
|
|
17
|
+
* @returns Error category string
|
|
18
|
+
*/
|
|
19
|
+
export declare function categorizeError(error: unknown): string;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.categorizeError = exports.isCIEnvironment = exports.getInputSourceType = void 0;
|
|
4
|
+
/* eslint-disable no-undef */
|
|
5
|
+
/**
|
|
6
|
+
* Re-export the canonical helper from `src/utils/inputSource.ts`. The
|
|
7
|
+
* telemetry surface is unchanged; the helper now lives next to the rest
|
|
8
|
+
* of the URL-detection code so it can be shared with the input loaders.
|
|
9
|
+
*/
|
|
10
|
+
var inputSource_1 = require("../utils/inputSource");
|
|
11
|
+
Object.defineProperty(exports, "getInputSourceType", { enumerable: true, get: function () { return inputSource_1.getInputSourceType; } });
|
|
12
|
+
/**
|
|
13
|
+
* Detect if running in a CI environment.
|
|
14
|
+
* Checks common CI environment variables.
|
|
15
|
+
*/
|
|
16
|
+
function isCIEnvironment() {
|
|
17
|
+
return Boolean(process.env.CI || // Generic CI indicator
|
|
18
|
+
process.env.GITHUB_ACTIONS ||
|
|
19
|
+
process.env.GITLAB_CI ||
|
|
20
|
+
process.env.CIRCLECI ||
|
|
21
|
+
process.env.TRAVIS ||
|
|
22
|
+
process.env.JENKINS_URL ||
|
|
23
|
+
process.env.BITBUCKET_PIPELINE_UUID ||
|
|
24
|
+
process.env.CODEBUILD_BUILD_ID ||
|
|
25
|
+
process.env.TEAMCITY_VERSION ||
|
|
26
|
+
process.env.BUILDKITE);
|
|
27
|
+
}
|
|
28
|
+
exports.isCIEnvironment = isCIEnvironment;
|
|
29
|
+
/**
|
|
30
|
+
* Categorize an error for telemetry purposes.
|
|
31
|
+
* Only returns the error category, not the actual error message or details.
|
|
32
|
+
*
|
|
33
|
+
* @param error - The error to categorize
|
|
34
|
+
* @returns Error category string
|
|
35
|
+
*/
|
|
36
|
+
function categorizeError(error) {
|
|
37
|
+
if (!error) {
|
|
38
|
+
return 'unknown_error';
|
|
39
|
+
}
|
|
40
|
+
const errorMessage = error instanceof Error
|
|
41
|
+
? error.message.toLowerCase()
|
|
42
|
+
: String(error).toLowerCase();
|
|
43
|
+
// Configuration errors
|
|
44
|
+
if (errorMessage.includes('config') ||
|
|
45
|
+
errorMessage.includes('configuration')) {
|
|
46
|
+
return 'configuration_error';
|
|
47
|
+
}
|
|
48
|
+
// File system errors
|
|
49
|
+
if (errorMessage.includes('enoent') ||
|
|
50
|
+
errorMessage.includes('file not found')) {
|
|
51
|
+
return 'file_not_found';
|
|
52
|
+
}
|
|
53
|
+
// Network errors
|
|
54
|
+
if (errorMessage.includes('network') ||
|
|
55
|
+
errorMessage.includes('fetch') ||
|
|
56
|
+
errorMessage.includes('http')) {
|
|
57
|
+
return 'network_error';
|
|
58
|
+
}
|
|
59
|
+
// Parse errors
|
|
60
|
+
if (errorMessage.includes('parse') || errorMessage.includes('syntax')) {
|
|
61
|
+
return 'parse_error';
|
|
62
|
+
}
|
|
63
|
+
// Validation errors
|
|
64
|
+
if (errorMessage.includes('validation') || errorMessage.includes('invalid')) {
|
|
65
|
+
return 'validation_error';
|
|
66
|
+
}
|
|
67
|
+
// Permission errors
|
|
68
|
+
if (errorMessage.includes('permission') || errorMessage.includes('eacces')) {
|
|
69
|
+
return 'permission_error';
|
|
70
|
+
}
|
|
71
|
+
return 'unknown_error';
|
|
72
|
+
}
|
|
73
|
+
exports.categorizeError = categorizeError;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get CLI version from package.json
|
|
3
|
+
*/
|
|
4
|
+
export declare function getCliVersion(): string;
|
|
5
|
+
/**
|
|
6
|
+
* Get Node.js version
|
|
7
|
+
*/
|
|
8
|
+
export declare function getNodeVersion(): string;
|
|
9
|
+
/**
|
|
10
|
+
* Get operating system platform
|
|
11
|
+
*/
|
|
12
|
+
export declare function getOSPlatform(): string;
|
|
13
|
+
/**
|
|
14
|
+
* Check if running in CI environment
|
|
15
|
+
*/
|
|
16
|
+
export declare function isCI(): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Collect common system information for telemetry events.
|
|
19
|
+
* This data is added to all telemetry events.
|
|
20
|
+
*/
|
|
21
|
+
export declare function collectSystemInfo(): {
|
|
22
|
+
cli_version: string;
|
|
23
|
+
node_version: string;
|
|
24
|
+
os: string;
|
|
25
|
+
ci: boolean;
|
|
26
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.collectSystemInfo = exports.isCI = exports.getOSPlatform = exports.getNodeVersion = exports.getCliVersion = void 0;
|
|
7
|
+
/* eslint-disable no-undef */
|
|
8
|
+
const os_1 = __importDefault(require("os"));
|
|
9
|
+
const anonymize_1 = require("./anonymize");
|
|
10
|
+
/**
|
|
11
|
+
* Get CLI version from package.json
|
|
12
|
+
*/
|
|
13
|
+
function getCliVersion() {
|
|
14
|
+
try {
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
16
|
+
const packageJson = require('../../package.json');
|
|
17
|
+
return packageJson.version || 'unknown';
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return 'unknown';
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.getCliVersion = getCliVersion;
|
|
24
|
+
/**
|
|
25
|
+
* Get Node.js version
|
|
26
|
+
*/
|
|
27
|
+
function getNodeVersion() {
|
|
28
|
+
return process.version;
|
|
29
|
+
}
|
|
30
|
+
exports.getNodeVersion = getNodeVersion;
|
|
31
|
+
/**
|
|
32
|
+
* Get operating system platform
|
|
33
|
+
*/
|
|
34
|
+
function getOSPlatform() {
|
|
35
|
+
return os_1.default.platform();
|
|
36
|
+
}
|
|
37
|
+
exports.getOSPlatform = getOSPlatform;
|
|
38
|
+
/**
|
|
39
|
+
* Check if running in CI environment
|
|
40
|
+
*/
|
|
41
|
+
function isCI() {
|
|
42
|
+
return (0, anonymize_1.isCIEnvironment)();
|
|
43
|
+
}
|
|
44
|
+
exports.isCI = isCI;
|
|
45
|
+
/**
|
|
46
|
+
* Collect common system information for telemetry events.
|
|
47
|
+
* This data is added to all telemetry events.
|
|
48
|
+
*/
|
|
49
|
+
function collectSystemInfo() {
|
|
50
|
+
return {
|
|
51
|
+
cli_version: getCliVersion(),
|
|
52
|
+
node_version: getNodeVersion(),
|
|
53
|
+
os: getOSPlatform(),
|
|
54
|
+
ci: isCI()
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
exports.collectSystemInfo = collectSystemInfo;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { TelemetryConfig } from '../PersistedConfig';
|
|
2
|
+
import { ProjectTelemetryConfig } from '../codegen/types';
|
|
3
|
+
/**
|
|
4
|
+
* Get telemetry configuration with proper priority order.
|
|
5
|
+
* This function never throws - returns disabled config on any error.
|
|
6
|
+
*
|
|
7
|
+
* Priority order (highest to lowest):
|
|
8
|
+
* 1. Environment variable overrides (highest priority):
|
|
9
|
+
* - CODEGEN_TELEMETRY_DISABLED / DO_NOT_TRACK: disable telemetry
|
|
10
|
+
* - CODEGEN_TELEMETRY_ENDPOINT: custom analytics endpoint
|
|
11
|
+
* - CODEGEN_TELEMETRY_ID: custom tracking ID
|
|
12
|
+
* - CODEGEN_TELEMETRY_API_SECRET: custom API secret
|
|
13
|
+
* 2. Project-level config (from codegen.config.js)
|
|
14
|
+
* 3. Global config file (~/.the-codegen-project/config.json)
|
|
15
|
+
*
|
|
16
|
+
* @param projectConfig - Optional project-level telemetry config from codegen.config.js
|
|
17
|
+
* @returns Promise resolving to telemetry configuration
|
|
18
|
+
*/
|
|
19
|
+
export declare function getTelemetryConfig(projectConfig?: ProjectTelemetryConfig): Promise<TelemetryConfig>;
|
|
20
|
+
/**
|
|
21
|
+
* Enable telemetry.
|
|
22
|
+
* Updates the global config file to enable telemetry.
|
|
23
|
+
* This function never throws - fails silently on errors.
|
|
24
|
+
*/
|
|
25
|
+
export declare function setTelemetryEnabled(enabled: boolean): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Check if telemetry is enabled.
|
|
28
|
+
* Checks environment variables and global config.
|
|
29
|
+
*
|
|
30
|
+
* @returns Promise resolving to true if telemetry is enabled, false otherwise
|
|
31
|
+
*/
|
|
32
|
+
export declare function isTelemetryEnabled(): Promise<boolean>;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isTelemetryEnabled = exports.setTelemetryEnabled = exports.getTelemetryConfig = void 0;
|
|
4
|
+
/* eslint-disable no-undef */
|
|
5
|
+
/* eslint-disable no-console */
|
|
6
|
+
const LoggingInterface_1 = require("../LoggingInterface");
|
|
7
|
+
const PersistedConfig_1 = require("../PersistedConfig");
|
|
8
|
+
/**
|
|
9
|
+
* Get telemetry configuration with proper priority order.
|
|
10
|
+
* This function never throws - returns disabled config on any error.
|
|
11
|
+
*
|
|
12
|
+
* Priority order (highest to lowest):
|
|
13
|
+
* 1. Environment variable overrides (highest priority):
|
|
14
|
+
* - CODEGEN_TELEMETRY_DISABLED / DO_NOT_TRACK: disable telemetry
|
|
15
|
+
* - CODEGEN_TELEMETRY_ENDPOINT: custom analytics endpoint
|
|
16
|
+
* - CODEGEN_TELEMETRY_ID: custom tracking ID
|
|
17
|
+
* - CODEGEN_TELEMETRY_API_SECRET: custom API secret
|
|
18
|
+
* 2. Project-level config (from codegen.config.js)
|
|
19
|
+
* 3. Global config file (~/.the-codegen-project/config.json)
|
|
20
|
+
*
|
|
21
|
+
* @param projectConfig - Optional project-level telemetry config from codegen.config.js
|
|
22
|
+
* @returns Promise resolving to telemetry configuration
|
|
23
|
+
*/
|
|
24
|
+
async function getTelemetryConfig(projectConfig) {
|
|
25
|
+
try {
|
|
26
|
+
const globalConfig = await (0, PersistedConfig_1.getGlobalConfig)();
|
|
27
|
+
const telemetryConfig = {
|
|
28
|
+
...globalConfig.telemetry,
|
|
29
|
+
...(projectConfig ?? {})
|
|
30
|
+
};
|
|
31
|
+
// Apply environment variable overrides (highest priority)
|
|
32
|
+
if (process.env.CODEGEN_TELEMETRY_DISABLED === '1' ||
|
|
33
|
+
process.env.DO_NOT_TRACK) {
|
|
34
|
+
telemetryConfig.enabled = false;
|
|
35
|
+
}
|
|
36
|
+
if (process.env.CODEGEN_TELEMETRY_ENDPOINT) {
|
|
37
|
+
telemetryConfig.endpoint = process.env.CODEGEN_TELEMETRY_ENDPOINT;
|
|
38
|
+
}
|
|
39
|
+
if (process.env.CODEGEN_TELEMETRY_ID) {
|
|
40
|
+
telemetryConfig.trackingId = process.env.CODEGEN_TELEMETRY_ID;
|
|
41
|
+
}
|
|
42
|
+
if (process.env.CODEGEN_TELEMETRY_API_SECRET) {
|
|
43
|
+
telemetryConfig.apiSecret = process.env.CODEGEN_TELEMETRY_API_SECRET;
|
|
44
|
+
}
|
|
45
|
+
return telemetryConfig;
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
// On any error, return disabled config
|
|
49
|
+
if (process.env.CODEGEN_TELEMETRY_DEBUG === '1') {
|
|
50
|
+
LoggingInterface_1.Logger.error('Failed to get telemetry config:', error);
|
|
51
|
+
}
|
|
52
|
+
return createDisabledTelemetryConfig();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.getTelemetryConfig = getTelemetryConfig;
|
|
56
|
+
/**
|
|
57
|
+
* Enable telemetry.
|
|
58
|
+
* Updates the global config file to enable telemetry.
|
|
59
|
+
* This function never throws - fails silently on errors.
|
|
60
|
+
*/
|
|
61
|
+
async function setTelemetryEnabled(enabled) {
|
|
62
|
+
try {
|
|
63
|
+
const globalConfig = await (0, PersistedConfig_1.getGlobalConfig)();
|
|
64
|
+
globalConfig.telemetry.enabled = enabled;
|
|
65
|
+
await (0, PersistedConfig_1.updateGlobalConfig)(globalConfig);
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
if (process.env.CODEGEN_TELEMETRY_DEBUG === '1') {
|
|
69
|
+
LoggingInterface_1.Logger.error('Failed to set telemetry enabled state:', error);
|
|
70
|
+
}
|
|
71
|
+
// Fail silently
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.setTelemetryEnabled = setTelemetryEnabled;
|
|
75
|
+
/**
|
|
76
|
+
* Check if telemetry is enabled.
|
|
77
|
+
* Checks environment variables and global config.
|
|
78
|
+
*
|
|
79
|
+
* @returns Promise resolving to true if telemetry is enabled, false otherwise
|
|
80
|
+
*/
|
|
81
|
+
async function isTelemetryEnabled() {
|
|
82
|
+
const config = await getTelemetryConfig();
|
|
83
|
+
return config.enabled;
|
|
84
|
+
}
|
|
85
|
+
exports.isTelemetryEnabled = isTelemetryEnabled;
|
|
86
|
+
/**
|
|
87
|
+
* Create a disabled telemetry configuration.
|
|
88
|
+
*/
|
|
89
|
+
function createDisabledTelemetryConfig() {
|
|
90
|
+
return {
|
|
91
|
+
enabled: false,
|
|
92
|
+
anonymousId: '',
|
|
93
|
+
endpoint: '',
|
|
94
|
+
trackingId: '',
|
|
95
|
+
apiSecret: ''
|
|
96
|
+
};
|
|
97
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Telemetry event type definitions
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Base telemetry event interface
|
|
6
|
+
*/
|
|
7
|
+
export interface TelemetryEvent {
|
|
8
|
+
event: string;
|
|
9
|
+
[key: string]: any;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Command execution event
|
|
13
|
+
*/
|
|
14
|
+
export interface CommandExecutedEvent extends TelemetryEvent {
|
|
15
|
+
event: 'command_executed';
|
|
16
|
+
command: string;
|
|
17
|
+
flags: string[];
|
|
18
|
+
input_source?: 'remote_url' | 'local_relative' | 'local_absolute';
|
|
19
|
+
input_type?: 'asyncapi' | 'openapi' | 'jsonschema';
|
|
20
|
+
generators?: string[];
|
|
21
|
+
generator_count?: number;
|
|
22
|
+
duration: number;
|
|
23
|
+
success: boolean;
|
|
24
|
+
error_type?: string;
|
|
25
|
+
cli_version: string;
|
|
26
|
+
node_version: string;
|
|
27
|
+
os: string;
|
|
28
|
+
ci: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Generator usage event
|
|
32
|
+
*/
|
|
33
|
+
export interface GeneratorUsedEvent extends TelemetryEvent {
|
|
34
|
+
event: 'generator_used';
|
|
35
|
+
generator_type: string;
|
|
36
|
+
input_type: 'asyncapi' | 'openapi' | 'jsonschema';
|
|
37
|
+
input_source?: 'remote_url' | 'local_relative' | 'local_absolute';
|
|
38
|
+
language: string;
|
|
39
|
+
options: Record<string, any>;
|
|
40
|
+
duration: number;
|
|
41
|
+
success: boolean;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Init command event
|
|
45
|
+
*/
|
|
46
|
+
export interface InitExecutedEvent extends TelemetryEvent {
|
|
47
|
+
event: 'init_executed';
|
|
48
|
+
config_type: 'esm' | 'json' | 'yaml' | 'ts';
|
|
49
|
+
input_type?: string;
|
|
50
|
+
generators: string[];
|
|
51
|
+
language?: string;
|
|
52
|
+
completed: boolean;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Error event
|
|
56
|
+
*/
|
|
57
|
+
export interface ErrorOccurredEvent extends TelemetryEvent {
|
|
58
|
+
event: 'error_occurred';
|
|
59
|
+
command: string;
|
|
60
|
+
error_type: string;
|
|
61
|
+
error_code?: string;
|
|
62
|
+
cli_version: string;
|
|
63
|
+
node_version: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Watch mode event
|
|
67
|
+
*/
|
|
68
|
+
export interface WatchModeEvent extends TelemetryEvent {
|
|
69
|
+
event: 'watch_mode_started';
|
|
70
|
+
command: string;
|
|
71
|
+
watch_duration?: number;
|
|
72
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { TelemetryEvent } from './events';
|
|
2
|
+
import { ProjectTelemetryConfig } from '../codegen/types';
|
|
3
|
+
export * from './events';
|
|
4
|
+
export * from './config';
|
|
5
|
+
export * from './anonymize';
|
|
6
|
+
export * from './collector';
|
|
7
|
+
/**
|
|
8
|
+
* Track a telemetry event.
|
|
9
|
+
*
|
|
10
|
+
* **IMPORTANT**: This function is designed to NEVER throw or reject.
|
|
11
|
+
* It is safe to call without .catch() or try/catch.
|
|
12
|
+
* All errors are handled internally and logged only in debug mode.
|
|
13
|
+
*
|
|
14
|
+
* The function automatically:
|
|
15
|
+
* - Shows first-run notice if needed
|
|
16
|
+
* - Adds system information to the event
|
|
17
|
+
* - Applies project-level config overrides if provided
|
|
18
|
+
* - Sends the event to the configured endpoint
|
|
19
|
+
* - Handles all errors gracefully
|
|
20
|
+
*
|
|
21
|
+
* Priority order for configuration:
|
|
22
|
+
* 1. Environment variables (highest priority)
|
|
23
|
+
* 2. Project-level config (from codegen.config.js)
|
|
24
|
+
* 3. Global config (from ~/.the-codegen-project/config.json)
|
|
25
|
+
*
|
|
26
|
+
* @param event - The event data to track
|
|
27
|
+
* @param projectConfig - Optional project-level telemetry config from codegen.config.js
|
|
28
|
+
* @returns Promise that always resolves (never rejects)
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* // Fire and forget - safe to call without await or .catch()
|
|
33
|
+
* void trackEvent({
|
|
34
|
+
* event: 'command_executed',
|
|
35
|
+
* command: 'generate',
|
|
36
|
+
* success: true
|
|
37
|
+
* });
|
|
38
|
+
*
|
|
39
|
+
* // With project config override
|
|
40
|
+
* void trackEvent({
|
|
41
|
+
* event: 'generator_used',
|
|
42
|
+
* generator_type: 'payloads'
|
|
43
|
+
* }, config.telemetry);
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare function trackEvent(event: TelemetryEvent, projectConfig?: ProjectTelemetryConfig): Promise<void>;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.trackEvent = void 0;
|
|
18
|
+
/* eslint-disable no-undef */
|
|
19
|
+
/* eslint-disable no-console */
|
|
20
|
+
const sender_1 = require("./sender");
|
|
21
|
+
const notice_1 = require("./notice");
|
|
22
|
+
const collector_1 = require("./collector");
|
|
23
|
+
const LoggingInterface_1 = require("../LoggingInterface");
|
|
24
|
+
__exportStar(require("./events"), exports);
|
|
25
|
+
__exportStar(require("./config"), exports);
|
|
26
|
+
__exportStar(require("./anonymize"), exports);
|
|
27
|
+
__exportStar(require("./collector"), exports);
|
|
28
|
+
/**
|
|
29
|
+
* Track a telemetry event.
|
|
30
|
+
*
|
|
31
|
+
* **IMPORTANT**: This function is designed to NEVER throw or reject.
|
|
32
|
+
* It is safe to call without .catch() or try/catch.
|
|
33
|
+
* All errors are handled internally and logged only in debug mode.
|
|
34
|
+
*
|
|
35
|
+
* The function automatically:
|
|
36
|
+
* - Shows first-run notice if needed
|
|
37
|
+
* - Adds system information to the event
|
|
38
|
+
* - Applies project-level config overrides if provided
|
|
39
|
+
* - Sends the event to the configured endpoint
|
|
40
|
+
* - Handles all errors gracefully
|
|
41
|
+
*
|
|
42
|
+
* Priority order for configuration:
|
|
43
|
+
* 1. Environment variables (highest priority)
|
|
44
|
+
* 2. Project-level config (from codegen.config.js)
|
|
45
|
+
* 3. Global config (from ~/.the-codegen-project/config.json)
|
|
46
|
+
*
|
|
47
|
+
* @param event - The event data to track
|
|
48
|
+
* @param projectConfig - Optional project-level telemetry config from codegen.config.js
|
|
49
|
+
* @returns Promise that always resolves (never rejects)
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* // Fire and forget - safe to call without await or .catch()
|
|
54
|
+
* void trackEvent({
|
|
55
|
+
* event: 'command_executed',
|
|
56
|
+
* command: 'generate',
|
|
57
|
+
* success: true
|
|
58
|
+
* });
|
|
59
|
+
*
|
|
60
|
+
* // With project config override
|
|
61
|
+
* void trackEvent({
|
|
62
|
+
* event: 'generator_used',
|
|
63
|
+
* generator_type: 'payloads'
|
|
64
|
+
* }, config.telemetry);
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
async function trackEvent(event, projectConfig) {
|
|
68
|
+
try {
|
|
69
|
+
// Debug mode: log the event being tracked
|
|
70
|
+
if (process.env.CODEGEN_TELEMETRY_DEBUG === '1') {
|
|
71
|
+
LoggingInterface_1.Logger.info('[Telemetry Debug] Tracking event:', JSON.stringify(event, null, 2));
|
|
72
|
+
}
|
|
73
|
+
// Show notice on first run (also safe, never throws)
|
|
74
|
+
await (0, notice_1.showTelemetryNoticeIfNeeded)();
|
|
75
|
+
// Add system information to event
|
|
76
|
+
const enrichedEvent = {
|
|
77
|
+
...event,
|
|
78
|
+
...(0, collector_1.collectSystemInfo)()
|
|
79
|
+
};
|
|
80
|
+
// Send event with project config (also safe, never throws)
|
|
81
|
+
await (0, sender_1.sendEvent)(enrichedEvent, projectConfig);
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
// This should never happen, but just in case
|
|
85
|
+
if (process.env.CODEGEN_TELEMETRY_DEBUG === '1') {
|
|
86
|
+
LoggingInterface_1.Logger.error('[Telemetry Debug] Unexpected error in trackEvent:', error);
|
|
87
|
+
}
|
|
88
|
+
// Always resolve
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exports.trackEvent = trackEvent;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Show telemetry notice on first run.
|
|
3
|
+
* This function never throws - fails silently on errors.
|
|
4
|
+
*
|
|
5
|
+
* The notice informs users that telemetry is enabled and how to disable it.
|
|
6
|
+
* After showing the notice once, it sets a flag to prevent showing it again.
|
|
7
|
+
*/
|
|
8
|
+
export declare function showTelemetryNoticeIfNeeded(): Promise<void>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.showTelemetryNoticeIfNeeded = void 0;
|
|
4
|
+
/* eslint-disable no-undef */
|
|
5
|
+
/* eslint-disable no-console */
|
|
6
|
+
const PersistedConfig_1 = require("../PersistedConfig");
|
|
7
|
+
const LoggingInterface_1 = require("../LoggingInterface");
|
|
8
|
+
/**
|
|
9
|
+
* Show telemetry notice on first run.
|
|
10
|
+
* This function never throws - fails silently on errors.
|
|
11
|
+
*
|
|
12
|
+
* The notice informs users that telemetry is enabled and how to disable it.
|
|
13
|
+
* After showing the notice once, it sets a flag to prevent showing it again.
|
|
14
|
+
*/
|
|
15
|
+
async function showTelemetryNoticeIfNeeded() {
|
|
16
|
+
try {
|
|
17
|
+
const globalConfig = await (0, PersistedConfig_1.getGlobalConfig)();
|
|
18
|
+
// Skip if already shown or if telemetry is disabled
|
|
19
|
+
if (globalConfig.hasShownTelemetryNotice ||
|
|
20
|
+
!globalConfig.telemetry.enabled) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
// Skip in CI environments (no need to show notice)
|
|
24
|
+
if (process.env.CI === 'true' || process.env.CI === '1') {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
// Show the notice
|
|
28
|
+
LoggingInterface_1.Logger.info(`
|
|
29
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
30
|
+
│ │
|
|
31
|
+
│ The Codegen Project CLI collects anonymous usage data │
|
|
32
|
+
│ to help us improve the tool. │
|
|
33
|
+
│ │
|
|
34
|
+
│ To disable: codegen telemetry disable │
|
|
35
|
+
│ Learn more: https://the-codegen-project.org/docs/telemetry │
|
|
36
|
+
│ │
|
|
37
|
+
└─────────────────────────────────────────────────────────────┘
|
|
38
|
+
`);
|
|
39
|
+
// Mark as shown
|
|
40
|
+
globalConfig.hasShownTelemetryNotice = true;
|
|
41
|
+
await (0, PersistedConfig_1.updateGlobalConfig)(globalConfig);
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
// Fail silently - notice is not critical
|
|
45
|
+
if (process.env.CODEGEN_TELEMETRY_DEBUG === '1') {
|
|
46
|
+
LoggingInterface_1.Logger.error('[Telemetry Debug] Failed to show notice:', error);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.showTelemetryNoticeIfNeeded = showTelemetryNoticeIfNeeded;
|