@effect-opcua/codegen 0.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +6 -0
  3. package/dist/cli.d.mts +1 -0
  4. package/dist/cli.mjs +82 -0
  5. package/dist/cli.mjs.map +1 -0
  6. package/dist/client/src/Opcua.d.mts +5 -0
  7. package/dist/client/src/OpcuaClient.d.mts +3 -0
  8. package/dist/client/src/OpcuaError.d.mts +139 -0
  9. package/dist/client/src/OpcuaError.d.mts.map +1 -0
  10. package/dist/client/src/OpcuaMethod.d.mts +78 -0
  11. package/dist/client/src/OpcuaMethod.d.mts.map +1 -0
  12. package/dist/client/src/OpcuaSession.d.mts +215 -0
  13. package/dist/client/src/OpcuaSession.d.mts.map +1 -0
  14. package/dist/client/src/OpcuaSubscription.d.mts +144 -0
  15. package/dist/client/src/OpcuaSubscription.d.mts.map +1 -0
  16. package/dist/client/src/OpcuaVariable.d.mts +140 -0
  17. package/dist/client/src/OpcuaVariable.d.mts.map +1 -0
  18. package/dist/client/src/index.d.mts +7 -0
  19. package/dist/client/src/internal/common/node-id.d.mts +1 -0
  20. package/dist/client/src/internal/events/model.d.mts +51 -0
  21. package/dist/client/src/internal/events/model.d.mts.map +1 -0
  22. package/dist/client/src/internal/monitoring/runtime.d.mts +7 -0
  23. package/dist/client/src/internal/structures/model.d.mts +18 -0
  24. package/dist/client/src/internal/structures/model.d.mts.map +1 -0
  25. package/dist/client/src/internal/structures/runtime.d.mts +5 -0
  26. package/dist/client/src/internal/values/codec.d.mts +21 -0
  27. package/dist/client/src/internal/values/codec.d.mts.map +1 -0
  28. package/dist/client/src/internal/values/normalize.d.mts +2 -0
  29. package/dist/client/src/node-opcua.d.mts +2 -0
  30. package/dist/compile/builtin-types.d.mts +10 -0
  31. package/dist/compile/builtin-types.d.mts.map +1 -0
  32. package/dist/compile/builtin-types.mjs +38 -0
  33. package/dist/compile/builtin-types.mjs.map +1 -0
  34. package/dist/compile/enums.d.mts +16 -0
  35. package/dist/compile/enums.d.mts.map +1 -0
  36. package/dist/compile/enums.mjs +81 -0
  37. package/dist/compile/enums.mjs.map +1 -0
  38. package/dist/compile/model.d.mts +10 -0
  39. package/dist/compile/model.d.mts.map +1 -0
  40. package/dist/compile/model.mjs +92 -0
  41. package/dist/compile/model.mjs.map +1 -0
  42. package/dist/compile/names.d.mts +17 -0
  43. package/dist/compile/names.d.mts.map +1 -0
  44. package/dist/compile/names.mjs +95 -0
  45. package/dist/compile/names.mjs.map +1 -0
  46. package/dist/compile/policy.d.mts +7 -0
  47. package/dist/compile/policy.d.mts.map +1 -0
  48. package/dist/compile/policy.mjs +6 -0
  49. package/dist/compile/policy.mjs.map +1 -0
  50. package/dist/compile/structures.d.mts +16 -0
  51. package/dist/compile/structures.d.mts.map +1 -0
  52. package/dist/compile/structures.mjs +220 -0
  53. package/dist/compile/structures.mjs.map +1 -0
  54. package/dist/compile/type-graph.d.mts +20 -0
  55. package/dist/compile/type-graph.d.mts.map +1 -0
  56. package/dist/compile/type-graph.mjs +78 -0
  57. package/dist/compile/type-graph.mjs.map +1 -0
  58. package/dist/compile/variables.d.mts +16 -0
  59. package/dist/compile/variables.d.mts.map +1 -0
  60. package/dist/compile/variables.mjs +110 -0
  61. package/dist/compile/variables.mjs.map +1 -0
  62. package/dist/compile.d.mts +9 -0
  63. package/dist/compile.d.mts.map +1 -0
  64. package/dist/compile.mjs +29 -0
  65. package/dist/compile.mjs.map +1 -0
  66. package/dist/config.d.mts +12 -0
  67. package/dist/config.d.mts.map +1 -0
  68. package/dist/config.mjs +158 -0
  69. package/dist/config.mjs.map +1 -0
  70. package/dist/diagnostics.d.mts +16 -0
  71. package/dist/diagnostics.d.mts.map +1 -0
  72. package/dist/diagnostics.mjs +45 -0
  73. package/dist/diagnostics.mjs.map +1 -0
  74. package/dist/discover.d.mts +23 -0
  75. package/dist/discover.d.mts.map +1 -0
  76. package/dist/discover.mjs +356 -0
  77. package/dist/discover.mjs.map +1 -0
  78. package/dist/emit.d.mts +8 -0
  79. package/dist/emit.d.mts.map +1 -0
  80. package/dist/emit.mjs +233 -0
  81. package/dist/emit.mjs.map +1 -0
  82. package/dist/errors.d.mts +27 -0
  83. package/dist/errors.d.mts.map +1 -0
  84. package/dist/errors.mjs +18 -0
  85. package/dist/errors.mjs.map +1 -0
  86. package/dist/generate.d.mts +19 -0
  87. package/dist/generate.d.mts.map +1 -0
  88. package/dist/generate.mjs +172 -0
  89. package/dist/generate.mjs.map +1 -0
  90. package/dist/index.d.mts +5 -0
  91. package/dist/index.mjs +5 -0
  92. package/dist/internal/types.d.mts +192 -0
  93. package/dist/internal/types.d.mts.map +1 -0
  94. package/dist/internal/types.mjs +1 -0
  95. package/dist/issue-codes.d.mts +119 -0
  96. package/dist/issue-codes.d.mts.map +1 -0
  97. package/dist/issue-codes.mjs +44 -0
  98. package/dist/issue-codes.mjs.map +1 -0
  99. package/dist/types.d.mts +57 -0
  100. package/dist/types.d.mts.map +1 -0
  101. package/dist/types.mjs +1 -0
  102. package/package.json +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.mjs","names":["writtenFiles: string[]","issues: CodegenIssue[]","staleFiles: string[]","missingFiles: string[]","stale: string[]"],"sources":["../src/generate.ts"],"sourcesContent":["import { mkdir, readFile, readdir, writeFile } from \"node:fs/promises\";\nimport { dirname, join, resolve } from \"node:path\";\nimport { Effect, Layer, Scope } from \"effect\";\nimport { OpcuaClient, OpcuaSession } from \"@effect-opcua/client\";\nimport type * as Client from \"@effect-opcua/client\";\n\nimport { compile } from \"./compile.js\";\nimport { normalizeConfig } from \"./config.js\";\nimport { enforceIssuePolicy, issue, sortIssues } from \"./diagnostics.js\";\nimport { discover } from \"./discover.js\";\nimport { emit, generatedHeader } from \"./emit.js\";\nimport { codegenError } from \"./errors.js\";\nimport type {\n CheckResult,\n CodegenConfig,\n CodegenIssue,\n GenerateResult,\n} from \"./types.js\";\nimport type {\n CodegenPlan,\n DiscoveryModel,\n GeneratedFile,\n NormalizedCodegenConfig,\n} from \"./internal/types.js\";\n\ntype OpcuaError = Client.OpcuaError.OpcuaError;\n\nexport const generate = (\n config: CodegenConfig,\n): Effect.Effect<\n GenerateResult,\n import(\"./errors.js\").CodegenError | OpcuaError,\n Scope.Scope\n> =>\n Effect.gen(function* () {\n const normalized = yield* normalizeConfig(config);\n return yield* generateFromNormalizedConfig(normalized);\n });\n\nexport const check = (\n config: CodegenConfig,\n): Effect.Effect<\n CheckResult,\n import(\"./errors.js\").CodegenError | OpcuaError,\n Scope.Scope\n> =>\n Effect.gen(function* () {\n const normalized = yield* normalizeConfig(config);\n return yield* checkFromNormalizedConfig(normalized);\n });\n\nexport const generateFromNormalizedConfig = (\n config: NormalizedCodegenConfig,\n): Effect.Effect<\n GenerateResult,\n import(\"./errors.js\").CodegenError | OpcuaError,\n Scope.Scope\n> =>\n Effect.gen(function* () {\n const plan = yield* planFromServer(config);\n const writeResult = yield* writeGeneratedFiles(\n config.outputDir,\n plan.files,\n );\n const issues = sortIssues([...plan.issues, ...writeResult.issues]);\n return {\n issues,\n writtenFiles: writeResult.writtenFiles,\n };\n });\n\nexport const checkFromNormalizedConfig = (\n config: NormalizedCodegenConfig,\n): Effect.Effect<\n CheckResult,\n import(\"./errors.js\").CodegenError | OpcuaError,\n Scope.Scope\n> =>\n Effect.gen(function* () {\n const plan = yield* planFromServer(config);\n const checked = yield* checkGeneratedFiles(config.outputDir, plan.files);\n const issues = sortIssues([...plan.issues, ...checked.issues]);\n return {\n issues,\n staleFiles: checked.staleFiles,\n missingFiles: checked.missingFiles,\n ok: checked.staleFiles.length === 0 && checked.missingFiles.length === 0,\n };\n });\n\nconst writeGeneratedFiles = (\n outputDir: string,\n files: readonly GeneratedFile[],\n) =>\n Effect.gen(function* () {\n const absoluteOutputDir = resolve(outputDir);\n yield* mkdirEffect(absoluteOutputDir);\n const writtenFiles: string[] = [];\n const issues: CodegenIssue[] = [];\n for (const file of files) {\n const path = join(absoluteOutputDir, file.path);\n yield* assertGeneratedOwnership(path);\n yield* mkdirEffect(dirname(path));\n yield* Effect.tryPromise({\n try: () => writeFile(path, file.contents, \"utf8\"),\n catch: (cause) =>\n codegenError({ _tag: \"Output\" }, [\n {\n severity: \"error\",\n code: \"file.writeFailed\",\n message: `Failed to write ${path}`,\n file: path,\n cause,\n },\n ]),\n });\n writtenFiles.push(path);\n issues.push(\n issue(\"file.written\", {\n message: `Wrote ${path}`,\n file: path,\n }),\n );\n }\n return { writtenFiles, issues };\n });\n\nconst checkGeneratedFiles = (\n outputDir: string,\n files: readonly GeneratedFile[],\n) =>\n Effect.gen(function* () {\n const absoluteOutputDir = resolve(outputDir);\n const staleFiles: string[] = [];\n const missingFiles: string[] = [];\n const issues: CodegenIssue[] = [];\n const expectedPaths = new Set(files.map((file) => file.path));\n for (const file of files) {\n const path = join(absoluteOutputDir, file.path);\n const existing = yield* readExistingFile(path);\n if (existing === undefined) {\n missingFiles.push(path);\n } else if (existing !== file.contents) {\n staleFiles.push(path);\n }\n issues.push(\n issue(\"file.checked\", {\n message: `Checked ${path}`,\n file: path,\n }),\n );\n }\n for (const file of yield* obsoleteGeneratedFiles(\n absoluteOutputDir,\n expectedPaths,\n )) {\n staleFiles.push(file);\n }\n return { staleFiles, missingFiles, issues };\n });\n\nexport const planFromDiscovery = (\n config: NormalizedCodegenConfig,\n discovery: DiscoveryModel,\n): Effect.Effect<CodegenPlan, import(\"./errors.js\").CodegenError> =>\n Effect.gen(function* () {\n const model = yield* compile(config, discovery);\n const issues = yield* enforceIssuePolicy(\n config.diagnostics.warningsAsErrors,\n model.issues,\n );\n return {\n model,\n files: emit(model),\n issues,\n };\n });\n\nexport const discoverFromServer = (\n config: NormalizedCodegenConfig,\n): Effect.Effect<\n DiscoveryModel,\n import(\"./errors.js\").CodegenError | OpcuaError,\n Scope.Scope\n> =>\n discover(config).pipe(\n Effect.provide(\n OpcuaSession.layer({\n userIdentity: config.userIdentity,\n }).pipe(\n Layer.provideMerge(\n OpcuaClient.layer({\n endpointUrl: config.endpointUrl,\n clientOptions: config.clientOptions,\n }),\n ),\n ),\n ),\n );\n\nexport const planFromServer = (\n config: NormalizedCodegenConfig,\n): Effect.Effect<\n CodegenPlan,\n import(\"./errors.js\").CodegenError | OpcuaError,\n Scope.Scope\n> =>\n Effect.gen(function* () {\n const discovery = yield* discoverFromServer(config);\n return yield* planFromDiscovery(config, discovery);\n });\n\nconst mkdirEffect = (path: string) =>\n Effect.tryPromise({\n try: () => mkdir(path, { recursive: true }),\n catch: (cause) =>\n codegenError({ _tag: \"Output\" }, [\n {\n severity: \"error\",\n code: \"file.mkdirFailed\",\n message: `Failed to create directory ${path}`,\n file: path,\n cause,\n },\n ]),\n });\n\nconst assertGeneratedOwnership = (path: string) =>\n Effect.gen(function* () {\n const existing = yield* readExistingFile(path);\n if (existing !== undefined && !existing.startsWith(generatedHeader)) {\n return yield* Effect.fail(\n codegenError({ _tag: \"Output\" }, [\n {\n severity: \"error\",\n code: \"file.ownershipViolation\",\n message: `Refusing to overwrite non-generated file ${path}`,\n file: path,\n },\n ]),\n );\n }\n });\n\nconst obsoleteGeneratedFiles = (\n outputDir: string,\n expectedPaths: ReadonlySet<string>,\n) =>\n Effect.gen(function* () {\n const entries = yield* Effect.tryPromise({\n try: async () => {\n try {\n return await readdir(outputDir, { withFileTypes: true });\n } catch (cause) {\n if (isNodeError(cause) && cause.code === \"ENOENT\") return [];\n throw cause;\n }\n },\n catch: (cause) =>\n codegenError({ _tag: \"Output\" }, [\n {\n severity: \"error\",\n code: \"file.readFailed\",\n message: `Failed to read directory ${outputDir}`,\n file: outputDir,\n cause,\n },\n ]),\n });\n const stale: string[] = [];\n for (const entry of entries) {\n if (!entry.isFile() || expectedPaths.has(entry.name)) continue;\n const path = join(outputDir, entry.name);\n const existing = yield* readExistingFile(path);\n if (existing?.startsWith(generatedHeader)) stale.push(path);\n }\n return stale;\n });\n\nconst readExistingFile = (path: string) =>\n Effect.tryPromise({\n try: async () => {\n try {\n return await readFile(path, \"utf8\");\n } catch (cause) {\n if (isNodeError(cause) && cause.code === \"ENOENT\") return undefined;\n throw cause;\n }\n },\n catch: (cause) =>\n codegenError({ _tag: \"Output\" }, [\n {\n severity: \"error\",\n code: \"file.readFailed\",\n message: `Failed to read ${path}`,\n file: path,\n cause,\n },\n ]),\n });\n\nconst isNodeError = (cause: unknown): cause is NodeJS.ErrnoException =>\n typeof cause === \"object\" && cause !== null && \"code\" in cause;\n"],"mappings":";;;;;;;;;;;;AA2BA,MAAa,YACX,WAMA,OAAO,IAAI,aAAa;AAEtB,QAAO,OAAO,6BADK,OAAO,gBAAgB,OAAO,CACK;EACtD;AAEJ,MAAa,SACX,WAMA,OAAO,IAAI,aAAa;AAEtB,QAAO,OAAO,0BADK,OAAO,gBAAgB,OAAO,CACE;EACnD;AAEJ,MAAa,gCACX,WAMA,OAAO,IAAI,aAAa;CACtB,MAAM,OAAO,OAAO,eAAe,OAAO;CAC1C,MAAM,cAAc,OAAO,oBACzB,OAAO,WACP,KAAK,MACN;AAED,QAAO;EACL,QAFa,WAAW,CAAC,GAAG,KAAK,QAAQ,GAAG,YAAY,OAAO,CAAC;EAGhE,cAAc,YAAY;EAC3B;EACD;AAEJ,MAAa,6BACX,WAMA,OAAO,IAAI,aAAa;CACtB,MAAM,OAAO,OAAO,eAAe,OAAO;CAC1C,MAAM,UAAU,OAAO,oBAAoB,OAAO,WAAW,KAAK,MAAM;AAExE,QAAO;EACL,QAFa,WAAW,CAAC,GAAG,KAAK,QAAQ,GAAG,QAAQ,OAAO,CAAC;EAG5D,YAAY,QAAQ;EACpB,cAAc,QAAQ;EACtB,IAAI,QAAQ,WAAW,WAAW,KAAK,QAAQ,aAAa,WAAW;EACxE;EACD;AAEJ,MAAM,uBACJ,WACA,UAEA,OAAO,IAAI,aAAa;CACtB,MAAM,oBAAoB,QAAQ,UAAU;AAC5C,QAAO,YAAY,kBAAkB;CACrC,MAAMA,eAAyB,EAAE;CACjC,MAAMC,SAAyB,EAAE;AACjC,MAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,OAAO,KAAK,mBAAmB,KAAK,KAAK;AAC/C,SAAO,yBAAyB,KAAK;AACrC,SAAO,YAAY,QAAQ,KAAK,CAAC;AACjC,SAAO,OAAO,WAAW;GACvB,WAAW,UAAU,MAAM,KAAK,UAAU,OAAO;GACjD,QAAQ,UACN,aAAa,EAAE,MAAM,UAAU,EAAE,CAC/B;IACE,UAAU;IACV,MAAM;IACN,SAAS,mBAAmB;IAC5B,MAAM;IACN;IACD,CACF,CAAC;GACL,CAAC;AACF,eAAa,KAAK,KAAK;AACvB,SAAO,KACL,MAAM,gBAAgB;GACpB,SAAS,SAAS;GAClB,MAAM;GACP,CAAC,CACH;;AAEH,QAAO;EAAE;EAAc;EAAQ;EAC/B;AAEJ,MAAM,uBACJ,WACA,UAEA,OAAO,IAAI,aAAa;CACtB,MAAM,oBAAoB,QAAQ,UAAU;CAC5C,MAAMC,aAAuB,EAAE;CAC/B,MAAMC,eAAyB,EAAE;CACjC,MAAMF,SAAyB,EAAE;CACjC,MAAM,gBAAgB,IAAI,IAAI,MAAM,KAAK,SAAS,KAAK,KAAK,CAAC;AAC7D,MAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,OAAO,KAAK,mBAAmB,KAAK,KAAK;EAC/C,MAAM,WAAW,OAAO,iBAAiB,KAAK;AAC9C,MAAI,aAAa,OACf,cAAa,KAAK,KAAK;WACd,aAAa,KAAK,SAC3B,YAAW,KAAK,KAAK;AAEvB,SAAO,KACL,MAAM,gBAAgB;GACpB,SAAS,WAAW;GACpB,MAAM;GACP,CAAC,CACH;;AAEH,MAAK,MAAM,QAAQ,OAAO,uBACxB,mBACA,cACD,CACC,YAAW,KAAK,KAAK;AAEvB,QAAO;EAAE;EAAY;EAAc;EAAQ;EAC3C;AAEJ,MAAa,qBACX,QACA,cAEA,OAAO,IAAI,aAAa;CACtB,MAAM,QAAQ,OAAO,QAAQ,QAAQ,UAAU;CAC/C,MAAM,SAAS,OAAO,mBACpB,OAAO,YAAY,kBACnB,MAAM,OACP;AACD,QAAO;EACL;EACA,OAAO,KAAK,MAAM;EAClB;EACD;EACD;AAEJ,MAAa,sBACX,WAMA,SAAS,OAAO,CAAC,KACf,OAAO,QACL,aAAa,MAAM,EACjB,cAAc,OAAO,cACtB,CAAC,CAAC,KACD,MAAM,aACJ,YAAY,MAAM;CAChB,aAAa,OAAO;CACpB,eAAe,OAAO;CACvB,CAAC,CACH,CACF,CACF,CACF;AAEH,MAAa,kBACX,WAMA,OAAO,IAAI,aAAa;AAEtB,QAAO,OAAO,kBAAkB,QADd,OAAO,mBAAmB,OAAO,CACD;EAClD;AAEJ,MAAM,eAAe,SACnB,OAAO,WAAW;CAChB,WAAW,MAAM,MAAM,EAAE,WAAW,MAAM,CAAC;CAC3C,QAAQ,UACN,aAAa,EAAE,MAAM,UAAU,EAAE,CAC/B;EACE,UAAU;EACV,MAAM;EACN,SAAS,8BAA8B;EACvC,MAAM;EACN;EACD,CACF,CAAC;CACL,CAAC;AAEJ,MAAM,4BAA4B,SAChC,OAAO,IAAI,aAAa;CACtB,MAAM,WAAW,OAAO,iBAAiB,KAAK;AAC9C,KAAI,aAAa,UAAa,CAAC,SAAS,WAAW,gBAAgB,CACjE,QAAO,OAAO,OAAO,KACnB,aAAa,EAAE,MAAM,UAAU,EAAE,CAC/B;EACE,UAAU;EACV,MAAM;EACN,SAAS,4CAA4C;EACrD,MAAM;EACP,CACF,CAAC,CACH;EAEH;AAEJ,MAAM,0BACJ,WACA,kBAEA,OAAO,IAAI,aAAa;CACtB,MAAM,UAAU,OAAO,OAAO,WAAW;EACvC,KAAK,YAAY;AACf,OAAI;AACF,WAAO,MAAM,QAAQ,WAAW,EAAE,eAAe,MAAM,CAAC;YACjD,OAAO;AACd,QAAI,YAAY,MAAM,IAAI,MAAM,SAAS,SAAU,QAAO,EAAE;AAC5D,UAAM;;;EAGV,QAAQ,UACN,aAAa,EAAE,MAAM,UAAU,EAAE,CAC/B;GACE,UAAU;GACV,MAAM;GACN,SAAS,4BAA4B;GACrC,MAAM;GACN;GACD,CACF,CAAC;EACL,CAAC;CACF,MAAMG,QAAkB,EAAE;AAC1B,MAAK,MAAM,SAAS,SAAS;AAC3B,MAAI,CAAC,MAAM,QAAQ,IAAI,cAAc,IAAI,MAAM,KAAK,CAAE;EACtD,MAAM,OAAO,KAAK,WAAW,MAAM,KAAK;AAExC,OADiB,OAAO,iBAAiB,KAAK,GAChC,WAAW,gBAAgB,CAAE,OAAM,KAAK,KAAK;;AAE7D,QAAO;EACP;AAEJ,MAAM,oBAAoB,SACxB,OAAO,WAAW;CAChB,KAAK,YAAY;AACf,MAAI;AACF,UAAO,MAAM,SAAS,MAAM,OAAO;WAC5B,OAAO;AACd,OAAI,YAAY,MAAM,IAAI,MAAM,SAAS,SAAU,QAAO;AAC1D,SAAM;;;CAGV,QAAQ,UACN,aAAa,EAAE,MAAM,UAAU,EAAE,CAC/B;EACE,UAAU;EACV,MAAM;EACN,SAAS,kBAAkB;EAC3B,MAAM;EACN;EACD,CACF,CAAC;CACL,CAAC;AAEJ,MAAM,eAAe,UACnB,OAAO,UAAU,YAAY,UAAU,QAAQ,UAAU"}
@@ -0,0 +1,5 @@
1
+ import { CheckResult, CodegenConfig, CodegenIssue, GenerateResult } from "./types.mjs";
2
+ import { CodegenError } from "./errors.mjs";
3
+ import { defineConfig } from "./config.mjs";
4
+ import { check, generate } from "./generate.mjs";
5
+ export { type CheckResult, type CodegenConfig, CodegenError, type CodegenIssue, type GenerateResult, check, defineConfig, generate };
package/dist/index.mjs ADDED
@@ -0,0 +1,5 @@
1
+ import { CodegenError } from "./errors.mjs";
2
+ import { defineConfig } from "./config.mjs";
3
+ import { check, generate } from "./generate.mjs";
4
+
5
+ export { CodegenError, check, defineConfig, generate };
@@ -0,0 +1,192 @@
1
+ import { OPCUAClientOptions, UserIdentityInfo } from "../client/src/node-opcua.mjs";
2
+ import { CodegenIssue, PathPatternSegment } from "../types.mjs";
3
+ import { OpcuaDataTypeDefinitionResult as OpcuaDataTypeDefinitionResult$1 } from "../client/src/OpcuaSession.mjs";
4
+ import "../client/src/index.mjs";
5
+
6
+ //#region src/internal/types.d.ts
7
+ type OpcuaDataTypeDefinitionResult = OpcuaDataTypeDefinitionResult$1;
8
+ type NormalizedCodegenConfig = {
9
+ readonly endpointUrl: string;
10
+ readonly clientOptions?: OPCUAClientOptions;
11
+ readonly userIdentity?: UserIdentityInfo;
12
+ readonly outputDir: string;
13
+ readonly roots: readonly NormalizedRootConfig[];
14
+ readonly exclude: readonly NormalizedExcludeRule[];
15
+ readonly discovery: {
16
+ readonly onBrowseFailure: "warn" | "fail";
17
+ };
18
+ readonly diagnostics: {
19
+ readonly warningsAsErrors: boolean;
20
+ readonly typeFallback: "fail" | "dynamic";
21
+ };
22
+ };
23
+ type NormalizedRootConfig = {
24
+ readonly path: readonly string[];
25
+ readonly nodeId?: never;
26
+ readonly exportPrefix?: string;
27
+ } | {
28
+ readonly path?: never;
29
+ readonly nodeId: string;
30
+ readonly exportPrefix: string;
31
+ };
32
+ type NormalizedExcludeRule = {
33
+ readonly _tag: "Path";
34
+ readonly path: readonly string[];
35
+ readonly mode: "prune" | "omit";
36
+ } | {
37
+ readonly _tag: "PathPattern";
38
+ readonly pathPattern: readonly PathPatternSegment[];
39
+ readonly mode: "prune" | "omit";
40
+ };
41
+ type GeneratedFile = {
42
+ readonly path: string;
43
+ readonly contents: string;
44
+ };
45
+ type DiscoveryModel = {
46
+ readonly roots: readonly DiscoveredRoot[];
47
+ readonly nodes: ReadonlyMap<NodeKey, DiscoveredNode>;
48
+ readonly references: readonly DiscoveredReference[];
49
+ readonly dataTypeDefinitions: readonly OpcuaDataTypeDefinitionResult[];
50
+ readonly issues: readonly CodegenIssue[];
51
+ };
52
+ type NodeKey = string;
53
+ type DiscoveredRoot = {
54
+ readonly rootIndex: number;
55
+ readonly nodeId: string;
56
+ readonly path: readonly string[];
57
+ readonly exportPrefix?: string;
58
+ };
59
+ type ParsedNodeId = {
60
+ readonly namespaceIndex: number;
61
+ readonly identifier: string;
62
+ };
63
+ type AccessBits = {
64
+ readonly readable: boolean;
65
+ readonly writable: boolean;
66
+ };
67
+ type DiscoveredNode = {
68
+ readonly key: NodeKey;
69
+ readonly nodeId: string;
70
+ readonly parsedNodeId: ParsedNodeId;
71
+ readonly namespaceIndex: number;
72
+ readonly namespaceUri?: string;
73
+ readonly browseName: string;
74
+ readonly browseNameNamespaceIndex?: number;
75
+ readonly path: readonly string[];
76
+ readonly allPaths: readonly (readonly string[])[];
77
+ readonly nodeClass: "Object" | "Variable" | "Method" | "DataType" | "ObjectType" | "VariableType" | "ReferenceType";
78
+ readonly displayName?: string;
79
+ readonly description?: string;
80
+ readonly dataTypeNodeId?: string;
81
+ readonly valueRank?: number;
82
+ readonly arrayDimensions?: readonly number[];
83
+ readonly accessLevel?: AccessBits;
84
+ readonly userAccessLevel?: AccessBits;
85
+ readonly parentNodeId?: string;
86
+ readonly rootIndex?: number;
87
+ };
88
+ type DiscoveredReference = {
89
+ readonly sourceNodeId: string;
90
+ readonly targetNodeId: string;
91
+ readonly referenceType: string;
92
+ readonly isForward: boolean;
93
+ readonly browseName: string;
94
+ };
95
+ type CodegenModel = {
96
+ readonly nodeIds: readonly NodeIdDefinition[];
97
+ readonly dataTypeNodeIds: readonly DataTypeNodeIdDefinition[];
98
+ readonly variables: readonly VariableDefinition[];
99
+ readonly enums: readonly EnumDefinition[];
100
+ readonly structures: readonly StructureDefinition[];
101
+ readonly issues: readonly CodegenIssue[];
102
+ };
103
+ type CodegenPlan = {
104
+ readonly model: CodegenModel;
105
+ readonly files: readonly GeneratedFile[];
106
+ readonly issues: readonly CodegenIssue[];
107
+ };
108
+ type NodeIdDefinition = {
109
+ readonly nodeId: string;
110
+ readonly path: readonly string[];
111
+ readonly generatedPath: readonly string[];
112
+ };
113
+ type DataTypeNodeIdDefinition = {
114
+ readonly nodeId: string;
115
+ readonly name: string;
116
+ };
117
+ type VariableDefinition = {
118
+ readonly path: readonly string[];
119
+ readonly generatedPath: readonly string[];
120
+ readonly nodeId: string;
121
+ readonly codec: VariableCodecExpression;
122
+ readonly access: "read" | "write" | "readWrite";
123
+ };
124
+ type EnumDefinition = {
125
+ readonly name: string;
126
+ readonly dataTypeNodeId: string;
127
+ readonly browseName: string;
128
+ readonly members: readonly EnumMemberDefinition[];
129
+ };
130
+ type EnumMemberDefinition = {
131
+ readonly name: string;
132
+ readonly value: number;
133
+ };
134
+ type StructureDefinition = {
135
+ readonly name: string;
136
+ readonly dataTypeNodeId: string;
137
+ readonly browseName: string;
138
+ readonly fields: readonly StructureFieldDefinition[];
139
+ };
140
+ type StructureFieldDefinition = {
141
+ readonly name: string;
142
+ readonly encodedName: string;
143
+ readonly originalName: string;
144
+ readonly schema: SchemaExpression;
145
+ readonly optional: boolean;
146
+ };
147
+ type ScalarSchema = "Boolean" | "Number" | "String" | "Date";
148
+ type VariableCodecExpression = {
149
+ readonly _tag: "Schema";
150
+ readonly schema: ScalarSchema;
151
+ } | {
152
+ readonly _tag: "SchemaArray";
153
+ readonly element: ScalarSchema;
154
+ } | {
155
+ readonly _tag: "Enum";
156
+ readonly name: string;
157
+ } | {
158
+ readonly _tag: "EnumArray";
159
+ readonly name: string;
160
+ } | {
161
+ readonly _tag: "Structure";
162
+ readonly name: string;
163
+ } | {
164
+ readonly _tag: "StructureArray";
165
+ readonly name: string;
166
+ } | {
167
+ readonly _tag: "Dynamic";
168
+ };
169
+ type SchemaExpression = {
170
+ readonly _tag: "Scalar";
171
+ readonly schema: ScalarSchema;
172
+ } | {
173
+ readonly _tag: "Array";
174
+ readonly item: Exclude<SchemaExpression, {
175
+ readonly _tag: "Array";
176
+ }>;
177
+ } | {
178
+ readonly _tag: "Enum";
179
+ readonly name: string;
180
+ } | {
181
+ readonly _tag: "Structure";
182
+ readonly name: string;
183
+ } | {
184
+ readonly _tag: "Unknown";
185
+ };
186
+ type GeneratedPath = {
187
+ readonly path: readonly string[];
188
+ readonly generatedPath: readonly string[];
189
+ };
190
+ //#endregion
191
+ export { AccessBits, CodegenModel, CodegenPlan, DataTypeNodeIdDefinition, DiscoveredNode, DiscoveredReference, DiscoveredRoot, DiscoveryModel, EnumDefinition, EnumMemberDefinition, GeneratedFile, GeneratedPath, NodeIdDefinition, NodeKey, NormalizedCodegenConfig, NormalizedExcludeRule, NormalizedRootConfig, ParsedNodeId, ScalarSchema, SchemaExpression, StructureDefinition, StructureFieldDefinition, VariableCodecExpression, VariableDefinition };
192
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../../src/internal/types.ts"],"sourcesContent":[],"mappings":";;;;;;KAQK,6BAAA,GAAgC;KAEzB,uBAAA;;EAFP,SAAA,aAAA,CAAA,EAIsB,kBAJO;EAEtB,SAAA,YAAA,CAAA,EAGc,gBAHS;EAER,SAAA,SAAA,EAAA,MAAA;EACD,SAAA,KAAA,EAAA,SAEC,oBAFD,EAAA;EAEC,SAAA,OAAA,EAAA,SACE,qBADF,EAAA;EACE,SAAA,SAAA,EAAA;IAAqB,SAAA,eAAA,EAAA,MAAA,GAAA,MAAA;EAUtC,CAAA;EAYA,SAAA,WAAA,EAAA;IAYA,SAAA,gBAAa,EAAA,OAAA;IAKb,SAAA,YAAc,EAAA,MAAA,GAAA,SAAA;EACC,CAAA;CACG;AAAS,KA/B3B,oBAAA,GA+B2B;EAArB,SAAA,IAAA,EAAA,SAAA,MAAA,EAAA;EACc,SAAA,MAAA,CAAA,EAAA,KAAA;EACS,SAAA,YAAA,CAAA,EAAA,MAAA;CACb,GAAA;EAAY,SAAA,IAAA,CAAA,EAAA,KAAA;EAG5B,SAAA,MAAO,EAAA,MAAA;EAEP,SAAA,YAAc,EAAA,MAAA;AAO1B,CAAA;AAKY,KAvCA,qBAAA,GAuCU;EAKV,SAAA,IAAA,EAAA,MAAc;EACV,SAAA,IAAA,EAAA,SAAA,MAAA,EAAA;EAES,SAAA,IAAA,EAAA,OAAA,GAAA,MAAA;CA0BA,GAAA;EACI,SAAA,IAAA,EAAA,aAAA;EAAU,SAAA,WAAA,EAAA,SAlEF,kBAkEE,EAAA;EAM3B,SAAA,IAAA,EAAA,OAAmB,GAAA,MAAA;AAQ/B,CAAA;AAC6B,KA7EjB,aAAA,GA6EiB;EACQ,SAAA,IAAA,EAAA,MAAA;EACN,SAAA,QAAA,EAAA,MAAA;CACJ;AACK,KA5EpB,cAAA,GA4EoB;EACJ,SAAA,KAAA,EAAA,SA5ED,cA4EC,EAAA;EAAY,SAAA,KAAA,EA3EtB,WA2EsB,CA3EV,OA2EU,EA3ED,cA2EC,CAAA;EAG5B,SAAA,UAAW,EAAA,SA7ES,mBA6ET,EAAA;EACL,SAAA,mBAAA,EAAA,SA7EuB,6BA6EvB,EAAA;EACS,SAAA,MAAA,EAAA,SA7EC,YA6ED,EAAA;CACC;AAAY,KA3E5B,OAAA,GA2E4B,MAAA;AAG5B,KA5EA,cAAA,GA4EgB;EAMhB,SAAA,SAAA,EAAA,MAAA;EAKA,SAAA,MAAA,EAAA,MAAkB;EAQlB,SAAA,IAAA,EAAA,SAAc,MAIG,EAAA;EAGjB,SAAA,YAAA,CAAA,EAAoB,MAAA;AAKhC,CAAA;AAOY,KA3GA,YAAA,GA2GA;EAQA,SAAA,cAAY,EAAA,MAAA;EAEZ,SAAA,UAAA,EAAA,MAAuB;AA6BnC,CAAA;AAGuB,KAhJX,UAAA,GAgJW;EAIM,SAAA,QAAA,EAAA,OAAA;EAAR,SAAA,QAAA,EAAA,OAAA;CAAO;AAchB,KA7JA,cAAA,GA6Ja;gBA5JT;;yBAES;;;;;;;;;;;;;yBA0BA;6BACI;;;;KAMjB,mBAAA;;;;;;;KAQA,YAAA;6BACiB;qCACQ;+BACN;2BACJ;gCACK;4BACJ;;KAGhB,WAAA;kBACM;2BACS;4BACC;;KAGhB,gBAAA;;;;;KAMA,wBAAA;;;;KAKA,kBAAA;;;;kBAIM;;;KAIN,cAAA;;;;6BAIiB;;KAGjB,oBAAA;;;;KAKA,mBAAA;;;;4BAIgB;;KAGhB,wBAAA;;;;mBAIO;;;KAIP,YAAA;KAEA,uBAAA;;mBAGW;;;oBAIC;;;;;;;;;;;;;;;;KAsBZ,gBAAA;;mBAGW;;;iBAIF,QAAQ;;;;;;;;;;;;KAcjB,aAAA"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,119 @@
1
+ //#region src/issue-codes.d.ts
2
+ type CodegenIssueSeverity = "info" | "warning" | "error";
3
+ declare const issueDefinitions: {
4
+ readonly "browse.ambiguousPath": {
5
+ readonly severity: "error";
6
+ };
7
+ readonly "browse.failure": {
8
+ readonly severity: "warning";
9
+ };
10
+ readonly "branch.pruned": {
11
+ readonly severity: "info";
12
+ };
13
+ readonly "codec.dynamicFallback": {
14
+ readonly severity: "warning";
15
+ };
16
+ readonly "codec.unsupportedArrayRank": {
17
+ readonly severity: "warning";
18
+ };
19
+ readonly "config.invalid": {
20
+ readonly severity: "error";
21
+ };
22
+ readonly "config.loadFailed": {
23
+ readonly severity: "error";
24
+ };
25
+ readonly "datatype.definitionFailure": {
26
+ readonly severity: "warning";
27
+ };
28
+ readonly "datatype.definitionMissing": {
29
+ readonly severity: "warning";
30
+ };
31
+ readonly "datatype.definitionUnsupported": {
32
+ readonly severity: "warning";
33
+ };
34
+ readonly "datatype.unionUnsupported": {
35
+ readonly severity: "warning";
36
+ };
37
+ readonly "enum.emptyName": {
38
+ readonly severity: "warning";
39
+ };
40
+ readonly "enum.memberEmptyName": {
41
+ readonly severity: "warning";
42
+ };
43
+ readonly "enum.memberNameCollision": {
44
+ readonly severity: "warning";
45
+ };
46
+ readonly "enum.nameCollision": {
47
+ readonly severity: "warning";
48
+ };
49
+ readonly "file.checked": {
50
+ readonly severity: "info";
51
+ };
52
+ readonly "file.mkdirFailed": {
53
+ readonly severity: "error";
54
+ };
55
+ readonly "file.ownershipViolation": {
56
+ readonly severity: "error";
57
+ };
58
+ readonly "file.readFailed": {
59
+ readonly severity: "error";
60
+ };
61
+ readonly "file.writeFailed": {
62
+ readonly severity: "error";
63
+ };
64
+ readonly "file.written": {
65
+ readonly severity: "info";
66
+ };
67
+ readonly "metadata.readFailed": {
68
+ readonly severity: "error";
69
+ };
70
+ readonly "node.multiPath": {
71
+ readonly severity: "warning";
72
+ };
73
+ readonly "node.omitted": {
74
+ readonly severity: "info";
75
+ };
76
+ readonly "path.branchLeafCollision": {
77
+ readonly severity: "error";
78
+ };
79
+ readonly "path.emptyGeneratedKey": {
80
+ readonly severity: "error";
81
+ };
82
+ readonly "path.generatedKeyCollision": {
83
+ readonly severity: "error";
84
+ };
85
+ readonly "path.generatedPathCollision": {
86
+ readonly severity: "error";
87
+ };
88
+ readonly "path.topLevelExportCollision": {
89
+ readonly severity: "error";
90
+ };
91
+ readonly "root.resolutionFailed": {
92
+ readonly severity: "error";
93
+ };
94
+ readonly "structure.emptyName": {
95
+ readonly severity: "warning";
96
+ };
97
+ readonly "structure.fieldEmptyName": {
98
+ readonly severity: "warning";
99
+ };
100
+ readonly "structure.fieldNameCollision": {
101
+ readonly severity: "warning";
102
+ };
103
+ readonly "structure.nameCollision": {
104
+ readonly severity: "warning";
105
+ };
106
+ readonly "structure.recursiveField": {
107
+ readonly severity: "warning";
108
+ };
109
+ readonly "structure.unsupportedField": {
110
+ readonly severity: "warning";
111
+ };
112
+ readonly "variable.notAccessibleSkipped": {
113
+ readonly severity: "warning";
114
+ };
115
+ };
116
+ type CodegenIssueCode = keyof typeof issueDefinitions;
117
+ //#endregion
118
+ export { CodegenIssueCode, CodegenIssueSeverity, issueDefinitions };
119
+ //# sourceMappingURL=issue-codes.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue-codes.d.mts","names":[],"sources":["../src/issue-codes.ts"],"sourcesContent":[],"mappings":";KAAY,oBAAA;AAAA,cAEC,gBAFmB,EAAA;EAEnB,SAAA,sBAyCZ,EAAA;IAEW,SAAA,QAAgB,EAAA,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAAhB,gBAAA,gBAAgC"}
@@ -0,0 +1,44 @@
1
+ //#region src/issue-codes.ts
2
+ const issueDefinitions = {
3
+ "browse.ambiguousPath": { severity: "error" },
4
+ "browse.failure": { severity: "warning" },
5
+ "branch.pruned": { severity: "info" },
6
+ "codec.dynamicFallback": { severity: "warning" },
7
+ "codec.unsupportedArrayRank": { severity: "warning" },
8
+ "config.invalid": { severity: "error" },
9
+ "config.loadFailed": { severity: "error" },
10
+ "datatype.definitionFailure": { severity: "warning" },
11
+ "datatype.definitionMissing": { severity: "warning" },
12
+ "datatype.definitionUnsupported": { severity: "warning" },
13
+ "datatype.unionUnsupported": { severity: "warning" },
14
+ "enum.emptyName": { severity: "warning" },
15
+ "enum.memberEmptyName": { severity: "warning" },
16
+ "enum.memberNameCollision": { severity: "warning" },
17
+ "enum.nameCollision": { severity: "warning" },
18
+ "file.checked": { severity: "info" },
19
+ "file.mkdirFailed": { severity: "error" },
20
+ "file.ownershipViolation": { severity: "error" },
21
+ "file.readFailed": { severity: "error" },
22
+ "file.writeFailed": { severity: "error" },
23
+ "file.written": { severity: "info" },
24
+ "metadata.readFailed": { severity: "error" },
25
+ "node.multiPath": { severity: "warning" },
26
+ "node.omitted": { severity: "info" },
27
+ "path.branchLeafCollision": { severity: "error" },
28
+ "path.emptyGeneratedKey": { severity: "error" },
29
+ "path.generatedKeyCollision": { severity: "error" },
30
+ "path.generatedPathCollision": { severity: "error" },
31
+ "path.topLevelExportCollision": { severity: "error" },
32
+ "root.resolutionFailed": { severity: "error" },
33
+ "structure.emptyName": { severity: "warning" },
34
+ "structure.fieldEmptyName": { severity: "warning" },
35
+ "structure.fieldNameCollision": { severity: "warning" },
36
+ "structure.nameCollision": { severity: "warning" },
37
+ "structure.recursiveField": { severity: "warning" },
38
+ "structure.unsupportedField": { severity: "warning" },
39
+ "variable.notAccessibleSkipped": { severity: "warning" }
40
+ };
41
+
42
+ //#endregion
43
+ export { issueDefinitions };
44
+ //# sourceMappingURL=issue-codes.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue-codes.mjs","names":[],"sources":["../src/issue-codes.ts"],"sourcesContent":["export type CodegenIssueSeverity = \"info\" | \"warning\" | \"error\";\n\nexport const issueDefinitions = {\n \"browse.ambiguousPath\": { severity: \"error\" },\n \"browse.failure\": { severity: \"warning\" },\n \"branch.pruned\": { severity: \"info\" },\n \"codec.dynamicFallback\": { severity: \"warning\" },\n \"codec.unsupportedArrayRank\": { severity: \"warning\" },\n \"config.invalid\": { severity: \"error\" },\n \"config.loadFailed\": { severity: \"error\" },\n \"datatype.definitionFailure\": { severity: \"warning\" },\n \"datatype.definitionMissing\": { severity: \"warning\" },\n \"datatype.definitionUnsupported\": { severity: \"warning\" },\n \"datatype.unionUnsupported\": { severity: \"warning\" },\n \"enum.emptyName\": { severity: \"warning\" },\n \"enum.memberEmptyName\": { severity: \"warning\" },\n \"enum.memberNameCollision\": { severity: \"warning\" },\n \"enum.nameCollision\": { severity: \"warning\" },\n \"file.checked\": { severity: \"info\" },\n \"file.mkdirFailed\": { severity: \"error\" },\n \"file.ownershipViolation\": { severity: \"error\" },\n \"file.readFailed\": { severity: \"error\" },\n \"file.writeFailed\": { severity: \"error\" },\n \"file.written\": { severity: \"info\" },\n \"metadata.readFailed\": { severity: \"error\" },\n \"node.multiPath\": { severity: \"warning\" },\n \"node.omitted\": { severity: \"info\" },\n \"path.branchLeafCollision\": { severity: \"error\" },\n \"path.emptyGeneratedKey\": { severity: \"error\" },\n \"path.generatedKeyCollision\": { severity: \"error\" },\n \"path.generatedPathCollision\": { severity: \"error\" },\n \"path.topLevelExportCollision\": { severity: \"error\" },\n \"root.resolutionFailed\": { severity: \"error\" },\n \"structure.emptyName\": { severity: \"warning\" },\n \"structure.fieldEmptyName\": { severity: \"warning\" },\n \"structure.fieldNameCollision\": { severity: \"warning\" },\n \"structure.nameCollision\": { severity: \"warning\" },\n \"structure.recursiveField\": { severity: \"warning\" },\n \"structure.unsupportedField\": { severity: \"warning\" },\n \"variable.notAccessibleSkipped\": { severity: \"warning\" },\n} as const satisfies Record<\n string,\n { readonly severity: CodegenIssueSeverity }\n>;\n\nexport type CodegenIssueCode = keyof typeof issueDefinitions;\n"],"mappings":";AAEA,MAAa,mBAAmB;CAC9B,wBAAwB,EAAE,UAAU,SAAS;CAC7C,kBAAkB,EAAE,UAAU,WAAW;CACzC,iBAAiB,EAAE,UAAU,QAAQ;CACrC,yBAAyB,EAAE,UAAU,WAAW;CAChD,8BAA8B,EAAE,UAAU,WAAW;CACrD,kBAAkB,EAAE,UAAU,SAAS;CACvC,qBAAqB,EAAE,UAAU,SAAS;CAC1C,8BAA8B,EAAE,UAAU,WAAW;CACrD,8BAA8B,EAAE,UAAU,WAAW;CACrD,kCAAkC,EAAE,UAAU,WAAW;CACzD,6BAA6B,EAAE,UAAU,WAAW;CACpD,kBAAkB,EAAE,UAAU,WAAW;CACzC,wBAAwB,EAAE,UAAU,WAAW;CAC/C,4BAA4B,EAAE,UAAU,WAAW;CACnD,sBAAsB,EAAE,UAAU,WAAW;CAC7C,gBAAgB,EAAE,UAAU,QAAQ;CACpC,oBAAoB,EAAE,UAAU,SAAS;CACzC,2BAA2B,EAAE,UAAU,SAAS;CAChD,mBAAmB,EAAE,UAAU,SAAS;CACxC,oBAAoB,EAAE,UAAU,SAAS;CACzC,gBAAgB,EAAE,UAAU,QAAQ;CACpC,uBAAuB,EAAE,UAAU,SAAS;CAC5C,kBAAkB,EAAE,UAAU,WAAW;CACzC,gBAAgB,EAAE,UAAU,QAAQ;CACpC,4BAA4B,EAAE,UAAU,SAAS;CACjD,0BAA0B,EAAE,UAAU,SAAS;CAC/C,8BAA8B,EAAE,UAAU,SAAS;CACnD,+BAA+B,EAAE,UAAU,SAAS;CACpD,gCAAgC,EAAE,UAAU,SAAS;CACrD,yBAAyB,EAAE,UAAU,SAAS;CAC9C,uBAAuB,EAAE,UAAU,WAAW;CAC9C,4BAA4B,EAAE,UAAU,WAAW;CACnD,gCAAgC,EAAE,UAAU,WAAW;CACvD,2BAA2B,EAAE,UAAU,WAAW;CAClD,4BAA4B,EAAE,UAAU,WAAW;CACnD,8BAA8B,EAAE,UAAU,WAAW;CACrD,iCAAiC,EAAE,UAAU,WAAW;CACzD"}
@@ -0,0 +1,57 @@
1
+ import { OPCUAClientOptions, UserIdentityInfo } from "./client/src/node-opcua.mjs";
2
+ import { CodegenIssueCode, CodegenIssueSeverity } from "./issue-codes.mjs";
3
+
4
+ //#region src/types.d.ts
5
+ type CodegenConfig = {
6
+ readonly endpointUrl: string;
7
+ readonly clientOptions?: OPCUAClientOptions;
8
+ readonly userIdentity?: UserIdentityInfo;
9
+ readonly outputDir: string;
10
+ readonly roots: readonly RootConfig[];
11
+ readonly exclude?: readonly ExcludeRuleConfig[];
12
+ readonly discovery?: DiscoveryConfig;
13
+ readonly diagnostics?: {
14
+ readonly warningsAsErrors?: boolean;
15
+ readonly typeFallback?: "fail" | "dynamic";
16
+ };
17
+ };
18
+ type RootConfig = {
19
+ readonly path: readonly string[];
20
+ readonly nodeId?: never;
21
+ readonly exportPrefix?: string;
22
+ } | {
23
+ readonly path?: never;
24
+ readonly nodeId: string;
25
+ readonly exportPrefix: string;
26
+ };
27
+ type PathPatternSegment = string | RegExp;
28
+ type ExcludeRuleConfig = {
29
+ readonly path: readonly PathPatternSegment[];
30
+ readonly mode: "prune" | "omit";
31
+ };
32
+ type DiscoveryConfig = {
33
+ readonly onBrowseFailure?: "warn" | "fail";
34
+ };
35
+ type CodegenIssue = {
36
+ readonly severity: CodegenIssueSeverity;
37
+ readonly code: CodegenIssueCode;
38
+ readonly message: string;
39
+ readonly nodeId?: string;
40
+ readonly path?: readonly string[];
41
+ readonly generatedPath?: readonly string[];
42
+ readonly file?: string;
43
+ readonly cause?: unknown;
44
+ };
45
+ type GenerateResult = {
46
+ readonly issues: readonly CodegenIssue[];
47
+ readonly writtenFiles: readonly string[];
48
+ };
49
+ type CheckResult = {
50
+ readonly issues: readonly CodegenIssue[];
51
+ readonly staleFiles: readonly string[];
52
+ readonly missingFiles: readonly string[];
53
+ readonly ok: boolean;
54
+ };
55
+ //#endregion
56
+ export { CheckResult, CodegenConfig, CodegenIssue, DiscoveryConfig, ExcludeRuleConfig, GenerateResult, PathPatternSegment, RootConfig };
57
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"sourcesContent":[],"mappings":";;;;KAMY,aAAA;;EAAA,SAAA,aAAa,CAAA,EAEE,kBAFF;EAEE,SAAA,YAAA,CAAA,EACD,gBADC;EACD,SAAA,SAAA,EAAA,MAAA;EAEC,SAAA,KAAA,EAAA,SAAA,UAAA,EAAA;EACG,SAAA,OAAA,CAAA,EAAA,SAAA,iBAAA,EAAA;EACP,SAAA,SAAA,CAAA,EAAA,eAAA;EAAe,SAAA,WAAA,CAAA,EAAA;IAO1B,SAAU,gBAAA,CAAA,EAAA,OAAA;IAYV,SAAA,YAAkB,CAAA,EAAA,MAAY,GAAA,SAAM;EAEpC,CAAA;AAKZ,CAAA;AAIY,KAvBA,UAAA,GAuBY;EAWZ,SAAA,IAAA,EAAA,SAAc,MACE,EAAA;EAIhB,SAAA,MAAW,CAAA,EAAA,KAAA;;;;;;;KA3BX,kBAAA,YAA8B;KAE9B,iBAAA;0BACc;;;KAId,eAAA;;;KAIA,YAAA;qBACS;iBACJ;;;;;;;;KASL,cAAA;4BACgB;;;KAIhB,WAAA;4BACgB"}
package/dist/types.mjs ADDED
@@ -0,0 +1 @@
1
+ export { };
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "@effect-opcua/codegen",
3
+ "version": "0.1.0-alpha.0",
4
+ "description": "Effect OPC-UA client code generator",
5
+ "license": "Apache-2.0",
6
+ "sideEffects": false,
7
+ "type": "module",
8
+ "files": [
9
+ "LICENSE",
10
+ "README.md",
11
+ "dist",
12
+ "package.json"
13
+ ],
14
+ "engines": {
15
+ "node": ">=22"
16
+ },
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/bastikohn/effect-opcua.git",
20
+ "directory": "packages/codegen"
21
+ },
22
+ "bugs": {
23
+ "url": "https://github.com/bastikohn/effect-opcua/issues"
24
+ },
25
+ "publishConfig": {
26
+ "access": "public"
27
+ },
28
+ "exports": {
29
+ ".": {
30
+ "types": "./dist/index.d.mts",
31
+ "default": "./dist/index.mjs"
32
+ },
33
+ "./package.json": "./package.json",
34
+ "./internal/*": null
35
+ },
36
+ "bin": {
37
+ "effect-opcua-codegen": "dist/cli.mjs"
38
+ },
39
+ "main": "./dist/index.mjs",
40
+ "module": "./dist/index.mjs",
41
+ "types": "./dist/index.d.mts",
42
+ "scripts": {
43
+ "build": "tsdown --config-loader unrun",
44
+ "dev": "tsdown --watch --config-loader unrun",
45
+ "typecheck": "tsc --noEmit --project tsconfig.json",
46
+ "test": "vitest run --passWithNoTests",
47
+ "clean": "rm -rf dist coverage node_modules"
48
+ },
49
+ "peerDependencies": {
50
+ "effect": "4.0.0-beta.79"
51
+ },
52
+ "dependencies": {
53
+ "@effect-opcua/client": "workspace:*",
54
+ "@effect/platform-node": "4.0.0-beta.79",
55
+ "unrun": "^0.3.0"
56
+ },
57
+ "devDependencies": {}
58
+ }